{"id":654,"date":"2026-02-06T14:50:09","date_gmt":"2026-02-06T13:50:09","guid":{"rendered":"https:\/\/kayhelena.work\/%e5%b7%a5%e5%85%b7\/"},"modified":"2026-02-08T07:25:21","modified_gmt":"2026-02-08T06:25:21","slug":"%e5%b7%a5%e5%85%b7","status":"publish","type":"page","link":"https:\/\/kayhelena.work\/zh-hans\/%e9%99%b6%e7%93%b7\/%e5%b7%a5%e5%85%b7\/","title":{"rendered":"\u5de5\u5177"},"content":{"rendered":"\n<div class=\"wp-block-group alignwide has-global-padding is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>\u9664\u4e86\u5927\u91cf\u7684\u4e66\u7c4d\u3001\u535a\u7269\u9986\u53c2\u89c2\u3001\u5e38\u89c1\u7684 Instagram\uff08<a href=\"http:\/\/instagram.com\/kayhelenawahdan\">\u6211\u7684\u4e2a\u4eba\u8d44\u6599<\/a>\uff09\u548c YouTube\uff08<a href=\"https:\/\/youtube.com\/@kayhelenawahdan\">\u6211\u7684\u4e2a\u4eba\u8d44\u6599<\/a>\uff09\u4e4b\u5916\uff0c\u6211\u8fd8\u53ef\u4ee5\u5efa\u8bae\u4f60\u5173\u6ce8 <a href=\"https:\/\/glazy.org\">Glazy.org<\/a>\uff08<a href=\"https:\/\/glazy.org\/u\/tiffanyachings\/\">\u6211\u7684\u4e2a\u4eba\u8d44\u6599<\/a>\uff09\u3001<a href=\"https:\/\/digitalfire.com\/\">digitalfire<\/a> \u548c <a href=\"https:\/\/www.kalkspatz.de\/\">Kalkspatz e.V.<\/a>\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u4f60\u6765\u81ea\u591a\u7279\u8499\u5fb7\u9644\u8fd1\uff0c\u6211\u771f\u5fc3\u63a8\u8350\u4f60 <a href=\"https:\/\/www.ruhrpott-keramik.de\/\">\u9c81\u5c14\u533a\u9676\u74f7<\/a>\u3002 \u8fd9\u4e0d\u4ec5\u4ec5\u662f\u4e00\u5bb6\u5546\u5e97\u2014\u2014\u9c81\u5c14\u533a\u9676\u74f7\u662f\u7ecf\u9a8c\u548c\u4eba\u8109\u7684\u771f\u6b63\u4ea4\u6d41\u573a\u6240\u3002<\/p>\n\n\n\n<p>\u8fd8\u6709\uff1a\u4e0e\u4ed6\u4eba\u4ea4\u6d41\u3002\u4f60\u7684\u751f\u547d\u4e0d\u591f\u957f\uff0c\u65e0\u6cd5\u81ea\u5df1\u83b7\u5f97\u6bcf\u4e00\u79cd\u7ecf\u9a8c\u548c\u77e5\u8bc6\u3002 <\/p>\n\n\n\n<p>\u6211\u8fd8\u60f3\u7ed9\u4f60\u4e00\u4e9b\u6211\u5f00\u53d1\u7684\u5de5\u5177\u2014\u2014<strong>\u8bf7\u6ce8\u610f\uff1a\u60a8\u5fc5\u987b\u81ea\u884c\u627f\u62c5\u4f7f\u7528\u8fd9\u4e9b\u5de5\u5177\u7684\u98ce\u9669\u3002<\/strong><\/p>\n\n\n\n<div data-wp-context=\"{ &quot;autoclose&quot;: false, &quot;accordionItems&quot;: [] }\" data-wp-interactive=\"core\/accordion\" role=\"group\" class=\"wp-block-accordion alignwide is-layout-flow wp-block-accordion-is-layout-flow\">\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-1&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item has-border-color is-layout-flow wp-block-accordion-item-is-layout-flow\" style=\"border-color:#1a1a1a;border-width:2px;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem\">\n<h3 class=\"wp-block-accordion-heading\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-1-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-1\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">\u9525\u5f62\u676f\u8ba1\u7b97<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-1\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-1-panel\" role=\"region\" class=\"wp-block-accordion-panel has-border-color is-layout-flow wp-block-accordion-panel-is-layout-flow\" style=\"border-color:#303D10;border-width:1px;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem\"><div id=\"helenas-keramik-tool-1\" class=\"helenas-keramik-tool\" data-module=\"becher2\"><style>#helenas-keramik-tool-1 \/**\r\n * Becherabwicklung - Styles\r\n * Modul-spezifische Styles f\u00fcr Becher2-Tool\r\n *\/\r\n\r\n*{\r\n  box-sizing: border-box;\r\n}#helenas-keramik-tool-1 .controls{\r\n  display: grid;\r\n  grid-template-columns: repeat(auto-fit, minmax(350px, 2fr));\r\n  gap: 15px;\r\n  margin-bottom: 20px;\r\n}#helenas-keramik-tool-1 .control{\r\n  display: flex;\r\n  flex-direction: column;\r\n}#helenas-keramik-tool-1 .control label{\r\n  font-weight: bold;\r\n  margin-bottom: 5px;\r\n  font-size: 1.5rem;\r\n}#helenas-keramik-tool-1 .control input{\r\n  font-size: 1.5rem;\r\n  margin-bottom: 0.5rem;\r\n}#helenas-keramik-tool-1 .control button{\r\n  font-size: 1.5rem;\r\n  margin-bottom: 0.5rem;\r\n}#helenas-keramik-tool-1 .control input[type=\"range\"]{\r\n  height: 1rem;\r\n}#helenas-keramik-tool-1 .canvas-container{\r\n  display: flex;\r\n  gap: 20px;\r\n  justify-content: center;\r\n  align-items: center;\r\n  flex-wrap: wrap;\r\n}#helenas-keramik-tool-1 .canvas-box{\r\n  text-align: center;\r\n}#helenas-keramik-tool-1 .canvas-box h3{\r\n  margin: 0 0 5px;\r\n  font-size: 2rem;\r\n}#helenas-keramik-tool-1 .canvas-wrapper{\r\n  width: min(65vw, 65vh);\r\n  aspect-ratio: 1 \/ 1;\r\n  position: relative;\r\n}#helenas-keramik-tool-1 .canvas-wrapper canvas{\r\n  position: absolute;\r\n  inset: 0;\r\n  width: 100%;\r\n  height: 100%;\r\n  background: #fff;\r\n}\r\n<\/style><!-- Eingabefelder -->\r\n<div class=\"controls\">\r\n  <div class=\"control\">\r\n    <label for=\"dTop\">\u4e0a\u76f4\u5f84 D\u2092 (mm)<\/label>\r\n    <input id=\"dTop\"  type=\"number\" min=\"1\" max=\"1000\" step=\"1\" value=\"120\">\r\n    <input id=\"dTopR\" type=\"range\"  min=\"1\" max=\"1000\" step=\"1\" value=\"120\">\r\n  <\/div>\r\n  <div class=\"control\">\r\n    <label for=\"dBot\">\u4e0b\u76f4\u5f84 D\u1d64 (mm)<\/label>\r\n    <input id=\"dBot\"  type=\"number\" min=\"1\" max=\"1000\" step=\"1\" value=\"80\">\r\n    <input id=\"dBotR\" type=\"range\"  min=\"1\" max=\"1000\" step=\"1\" value=\"80\">\r\n  <\/div>\r\n  <div class=\"control\">\r\n    <label for=\"height\">\u9ad8\u5ea6 H (mm)<\/label>\r\n    <input id=\"height\"  type=\"number\" min=\"1\" max=\"1000\" step=\"1\" value=\"100\">\r\n    <input id=\"heightR\" type=\"range\"  min=\"1\" max=\"1000\" step=\"1\" value=\"100\">\r\n  <\/div>\r\n  <div class=\"control\">\r\n    <label for=\"thick\">\u6750\u6599\u539a\u5ea6 t (mm)<\/label>\r\n    <input id=\"thick\"  type=\"number\" min=\"0.1\" max=\"100\" step=\"0.1\" value=\"5\">\r\n    <input id=\"thickR\" type=\"range\"  min=\"0.1\" max=\"100\" step=\"0.1\" value=\"5\">\r\n  <\/div>\r\n  <div class=\"control\">\r\n    <label for=\"shrink\">\u6536\u7f29\u7387 S (%)<\/label>\r\n    <input id=\"shrink\"  type=\"number\" min=\"0\" max=\"30\" step=\"0.1\" value=\"0\">\r\n    <input id=\"shrinkR\" type=\"range\"  min=\"0\" max=\"30\" step=\"0.1\" value=\"0\">\r\n  <\/div>\r\n  <div class=\"control\">\r\n    <label for=\"target\">\u76ee\u6807\u4f53\u79ef Vt (ml)<\/label>\r\n    <input id=\"target\"  type=\"number\" min=\"10\" max=\"1500\" step=\"1\" value=\"10\">\r\n    <input id=\"targetR\" type=\"range\"  min=\"10\" max=\"1500\" step=\"1\" value=\"10\">\r\n  <\/div>\r\n  <div class=\"control\">\r\n    <label for=\"startSearch\">\u76ee\u6807\u641c\u7d22<\/label>\r\n    <button id=\"startSearch\" type=\"button\">\u5f00\u59cb<\/button>\r\n  <\/div>\r\n<\/div>\r\n\r\n<!-- Canvas-Bereich -->\r\n<div class=\"canvas-container\">\r\n  <div class=\"canvas-box\">\r\n    <h3>\u6536\u7f29\u540e\u7684\u6a2a\u622a\u9762<\/h3>\r\n    <div class=\"canvas-wrapper\"><canvas id=\"cross\"><\/canvas><\/div>\r\n  <\/div>\r\n  <div class=\"canvas-box\">\r\n    <h3>\u6536\u7f29\u524d\u7684\u5c55\u5f00\u56fe<\/h3>\r\n    <div class=\"canvas-wrapper\"><canvas id=\"dev\"><\/canvas><\/div>\r\n  <\/div>\r\n  <div class=\"canvas-box\">\r\n    <h3>\u6536\u7f29\u524d\u7684\u5c3a\u5bf8<\/h3>\r\n    <div class=\"canvas-wrapper\"><canvas id=\"info\"><\/canvas><\/div>\r\n  <\/div>\r\n<\/div>\r\n<\/div><script>(function(){try{var b=atob(\"KGZ1bmN0aW9uKCkgewogIGNvbnN0IGJsb2NrQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbGVuYXMta2VyYW1pay10b29sLTEnKTsKICBpZiAoIWJsb2NrQ29udGFpbmVyKSB7CiAgICBjb25zb2xlLmVycm9yKCdLZXJhbWlrIFRvb2xzOiBCbG9jayBjb250YWluZXIgbm90IGZvdW5kOicsICdoZWxlbmFzLWtlcmFtaWstdG9vbC0xJyk7CiAgICByZXR1cm47CiAgfQoKICAvLyBTY29wZWQgZ2V0RWxlbWVudEJ5SWQgZnVuY3Rpb24KICBmdW5jdGlvbiBnZXRFbGVtZW50QnlJZChpZCkgewogICAgcmV0dXJuIGJsb2NrQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyMnICsgaWQpOwogIH0KCiAgLy8gRXhlY3V0ZSBtb2R1bGUgc2NyaXB0CiAgdHJ5IHsKLyoqDQogKiBCZWNoZXJhYndpY2tsdW5nIC0gU2NyaXB0DQogKiBKYXZhU2NyaXB0LUxvZ2lrIGbDvHIgQmVjaGVyMi1Ub29sDQogKi8NCg0KLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogICBIaWxmc2Z1bmt0aW9uZW4NCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KZnVuY3Rpb24gbGluayhudW0sIHJhbmdlKSB7DQogIG51bS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsICgpID0+IHsgcmFuZ2UudmFsdWUgPSBudW0udmFsdWU7IGRyYXdBbGwoKTsgfSk7DQogIHJhbmdlLmFkZEV2ZW50TGlzdGVuZXIoJ2lucHV0JywgKCkgPT4geyBudW0udmFsdWUgPSByYW5nZS52YWx1ZTsgZHJhd0FsbCgpOyB9KTsNCn0NCg0KZnVuY3Rpb24gZml0Q2FudmFzKGMpIHsNCiAgY29uc3QgZHByID0gd2luZG93LmRldmljZVBpeGVsUmF0aW8gfHwgMTsNCiAgY29uc3QgciAgID0gYy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsNCiAgYy53aWR0aCAgPSByLndpZHRoICAqIGRwcjsNCiAgYy5oZWlnaHQgPSByLmhlaWdodCAqIGRwcjsNCiAgY29uc3QgY3R4ID0gYy5nZXRDb250ZXh0KCcyZCcpOw0KICBjdHgucmVzZXRUcmFuc2Zvcm0oKTsNCiAgY3R4LnNjYWxlKGRwciwgZHByKTsNCn0NCg0KZnVuY3Rpb24gZmxvb3IodmFsdWUsIGRpZ2l0cyA9IDApIHsNCiAgY29uc3QgZmFjdG9yID0gMTAgKiogZGlnaXRzOw0KICByZXR1cm4gTWF0aC5mbG9vcih2YWx1ZSAqIGZhY3RvcikgLyBmYWN0b3I7DQp9DQoNCmZ1bmN0aW9uIHNjYWxlTXVnKCkgew0KICAvL0Vpbmdhbmdzd2VydGUNCiAgY29uc3QgROKCkiA9ICtkVG9wLnZhbHVlLA0KICAgICAgICBE4bWkID0gK2RCb3QudmFsdWUsDQogICAgICAgIEggICA9ICtoZWlnaHQudmFsdWUsDQogICAgICAgIHQgICA9ICt0aGljay52YWx1ZSwNCiAgICAgICAgUyAgID0gK3Nocmluay52YWx1ZSAvIDEwMCwNCiAgICAgICAgdDAgID0gdCAvKDEtUyksDQogICAgICAgIFZ0ICA9ICt0YXJnZXQudmFsdWU7DQoNCiAgLy8gYWt0dWVsbGVzIE51dHp2b2x1bWVuDQogIGxldCBWbnV0eiA9IDA7DQogICAgaWYgKChE4oKSIC0gMiAqIHQpID4gMCAmJiAoROG1pCAtIDIgKiB0KSA+IDAgJiYgKEggLSB0IC0gMjApID4gMCkgew0KICAgICAgY29uc3QgclRvcEkgPSAoROKCkiAtIDIgKiB0KSAvIDI7DQogICAgICBjb25zdCByQm90SSA9IChE4bWkIC0gMiAqIHQpIC8gMjsNCiAgICAgIGNvbnN0IGhOdXR6ID0gSCAtIHQgLSAyMDsNCiAgICAgIGNvbnN0IHJGaWxsID0gclRvcEkgLSAoclRvcEkgLSByQm90SSkgKiAoMjAgLyAoSCAtIHQpKTsNCiAgICAgIGNvbnN0IFZtbTMgID0gTWF0aC5QSSAqIGhOdXR6ICoNCiAgICAgICAgICAgICAgICAgICAgKHJGaWxsICogckZpbGwgKyByRmlsbCAqIHJCb3RJICsgckJvdEkgKiByQm90SSkgLyAzOw0KICAgICAgVm51dHogPSBWbW0zIC8gMTAwMDsNCiAgICB9DQoNCiAgICBsZXQgayA9IGtGb3JBbHBoYShE4oKSLCBE4bWkLCBILCB0LCBWdC9WbnV0eiwgMWUtMTIsIDUwMCk7DQoNCiAgICBsZXQgRG9OZXUgPSBrICogKETigpIgLSAyICogdCkgKyAyICogdCwNCiAgICAgICAgRHVOZXUgPSBrICogKEThtaQgLSAyICogdCkgKyAyICogdCwNCiAgICAgICAgSE5ldSAgPSBrICogKEggLSAgdCkgKyB0Ow0KDQogICAgZFRvcC52YWx1ZSA9IGZsb29yKERvTmV1KTsNCiAgICBkQm90LnZhbHVlID0gZmxvb3IoRHVOZXUpOw0KICAgIGhlaWdodC52YWx1ZSA9IGZsb29yKEhOZXUpOw0KfQ0KDQovKioNCiAqIEJlc3RpbW10IGRlbiBTa2FsaWVydW5nc2Zha3RvciBrIGF1cyBHbGVpY2h1bmcgKDQpIG1pdHRlbHMgTmV3dG9uLVZlcmZhaHJlbi4NCiAqDQogKiBHZWdlYmVuIHNpbmQgZGllIHVyc3Byw7xuZ2xpY2hlbiBBYm1lc3N1bmdlbiAoZDEsIGQyLCBoKSBlaW5lciBXYW5kdW5nDQogKiBtaXQgV2FuZGRpY2tlIHQuIEdlc3VjaHQgaXN0IGRlciBGYWt0b3IgaywgbWl0IGRlbSBkaWUgV2FuZGRpY2tlIHQNCiAqIHNrYWxpZXJ0IHdlcmRlbiBtdXNzLCBkYW1pdCBzaWNoIGRhcyBWb2x1bWVuIHVtIGRlbiBGYWt0b3IgYWxwaGEgw6RuZGVydC4NCiAqDQogKiBAcGFyYW0ge251bWJlcn0gZDEgICAgICAtIEF1w59lbmR1cmNobWVzc2VyIDEgKG1tKQ0KICogQHBhcmFtIHtudW1iZXJ9IGQyICAgICAgLSBBdcOfZW5kdXJjaG1lc3NlciAyIChtbSkNCiAqIEBwYXJhbSB7bnVtYmVyfSBoICAgICAgIC0gSMO2aGUgZGVyIFdhbmR1bmcgKG1tKQ0KICogQHBhcmFtIHtudW1iZXJ9IHQgICAgICAgLSBXYW5kZGlja2UgKG1tKQ0KICogQHBhcmFtIHtudW1iZXJ9IGFscGhhICAgLSBaaWVsLVZvbHVtZW5mYWt0b3IgKHouIEIuIDIgPSBWZXJkb3BwbHVuZykNCiAqIEBwYXJhbSB7bnVtYmVyfSBbdG9sPTFlLTEyXSAgICAtIEFiYnJ1Y2hrcml0ZXJpdW0gfGYoayl8IDwgdG9sDQogKiBAcGFyYW0ge251bWJlcn0gW21heEl0ZXI9MTAwXSAgLSBNYXhpbWFsZSBOZXd0b24tSXRlcmF0aW9uZW4NCiAqIEByZXR1cm5zIHtudW1iZXJ9ICAgICAgICAgICAgICAtIEdlZnVuZGVuZXIgU2thbGllcnVuZ3NmYWt0b3Igaw0KICogQHRocm93cyB7RXJyb3J9ICAgICAgICAgICAgICAgIC0gRmFsbHMga2VpbmUgS29udmVyZ2VueiBlcnJlaWNodCB3aXJkDQogKg0KICogRm9ybWVsaGlud2VpczoNCiAqICAgRihrKSA9IChoMSAvIGgpICogKGHCsiArIGHCt2IgKyBiwrIpIC8gKGQxwrIgKyBkMcK3ZDIgKyBkMsKyKSDiiJIgYWxwaGEgPSAwLA0KICogICB3b2JlaQ0KICogICAgIGgxID0ga8K3KGggKyB0KSDiiJIgdCwNCiAqICAgICBhICA9IGvCtyhkMSArIDLCt3QpIOKIkiAywrd0LA0KICogICAgIGIgID0ga8K3KGQyICsgMsK3dCkg4oiSIDLCt3QuDQogKg0KICogRGllIEFibGVpdHVuZyB2b24gRihrKSB3aXJkIGhpZXIgbnVtZXJpc2NoIG1pdCBlaW5lcg0KICoga2xlaW5lbiBTY2hyaXR0d2VpdGUgzrQgYmVyZWNobmV0Lg0KICovDQpmdW5jdGlvbiBrRm9yQWxwaGEoDQogIGQxLA0KICBkMiwNCiAgaCwNCiAgdCwNCiAgYWxwaGEsDQogIHRvbCA9IDFlLTEyLA0KICBtYXhJdGVyID0gMTAwDQopIHsNCiAgLyoqDQogICAqIElubmVyZSBIaWxmc2Z1bmt0aW9uIEYoaykgZ2Vtw6TDnyBvYmlnZXIgRGVmaW5pdGlvbi4NCiAgICogQHBhcmFtIHtudW1iZXJ9IGsgLSBBa3R1ZWxsZXIgU2Now6R0endlcnQNCiAgICogQHJldHVybnMge251bWJlcn0gLSBGdW5rdGlvbnN3ZXJ0IEYoaykNCiAgICovDQogIGNvbnN0IEYgPSAoaykgPT4gew0KICAgIGNvbnN0IGgxID0gayAqIChoICsgdCkgLSB0Ow0KICAgIGNvbnN0IGEgPSBrICogKGQxICsgMiAqIHQpIC0gMiAqIHQ7DQogICAgY29uc3QgYiA9IGsgKiAoZDIgKyAyICogdCkgLSAyICogdDsNCg0KICAgIGNvbnN0IG51bWVyYXRvciA9IChoMSAvIGgpICogKGEgKiBhICsgYSAqIGIgKyBiICogYik7DQogICAgY29uc3QgZGVub21pbmF0b3IgPSBkMSAqIGQxICsgZDEgKiBkMiArIGQyICogZDI7DQoNCiAgICByZXR1cm4gbnVtZXJhdG9yIC8gZGVub21pbmF0b3IgLSBhbHBoYTsNCiAgfTsNCg0KICAvLyAtLS0gU3RhcnR3ZXJ0OiBLdWJpa3d1cnplbCB2b24gYWxwaGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICBsZXQgayA9IE1hdGguY2JydChhbHBoYSk7DQoNCiAgLy8gLS0tIE5ld3Rvbi1JdGVyYXRpb24gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQogIGZvciAobGV0IGkgPSAwOyBpIDwgbWF4SXRlcjsgaSsrKSB7DQogICAgY29uc3QgZiA9IEYoayk7DQoNCiAgICAvLyBQcsO8ZmUgQWJicnVjaGtyaXRlcml1bSB8ZihrKXwgPCB0b2wNCiAgICBpZiAoTWF0aC5hYnMoZikgPCB0b2wpIHsNCiAgICAgIHJldHVybiBrOw0KICAgIH0NCg0KICAgIC8vIE51bWVyaXNjaGUgQWJsZWl0dW5nIEYnKGspIOKJiCAoRihrICsgzrQpIOKIkiBGKGspKSAvIM60DQogICAgY29uc3QgZGVsdGEgPSAxZS04Ow0KICAgIGNvbnN0IGZEZWx0YSA9IEYoayArIGRlbHRhKTsNCiAgICBjb25zdCBkZXJpdmF0aXZlID0gKGZEZWx0YSAtIGYpIC8gZGVsdGE7DQoNCiAgICAvLyBVcGRhdGUtU2Nocml0dDoga197bisxfSA9IGtfbiDiiJIgZihrX24pIC8gRicoa19uKQ0KICAgIGsgLT0gZiAvIGRlcml2YXRpdmU7DQogIH0NCg0KICAvLyBOYWNoIG1heEl0ZXIga2VpbmUgS29udmVyZ2VueiDih5IgRmVobGVyIGF1c2zDtnNlbg0KICB0aHJvdyBuZXcgRXJyb3IoImsgbmljaHQga29udmVyZ2llcnQgKG1heEl0ZXIgZXJyZWljaHQpIik7DQp9DQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgSGF1cHRyb3V0aW5lIGRyYXdBbGwoKQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQpmdW5jdGlvbiBkcmF3QWxsKCkgew0KDQogIC8qID09PT09IEVpbmdhYmVuID09PT09ICovDQogIGNvbnN0IETigpIgPSArZFRvcC52YWx1ZSwNCiAgICAgICAgROG1pCA9ICtkQm90LnZhbHVlLA0KICAgICAgICBIICAgPSAraGVpZ2h0LnZhbHVlLA0KICAgICAgICB0ICAgPSArdGhpY2sudmFsdWUsDQogICAgICAgIFMgICA9ICtzaHJpbmsudmFsdWUgLyAxMDAsDQogICAgICAgIHQwICA9IHQgLygxLVMpOw0KDQogIC8qID09PT09IEFid2lja2x1bmcgKHVudmVyw6RuZGVydCkgPT09PT0gKi8NCiAgY29uc3QgUm8gPSBE4oKSIC8gMiwgUnUgPSBE4bWkIC8gMjsNCiAgY29uc3QgUm8wID0gUm8gLyAoMSAtIFMpLCBSdTAgPSBSdSAvICgxIC0gUyk7DQogIGNvbnN0IM6UUiA9IE1hdGguYWJzKFJvMCAtIFJ1MCk7DQogIGNvbnN0IG0gID0gTWF0aC5oeXBvdCjOlFIsIEggLyAoMSAtIFMpKTsNCiAgY29uc3QgcjEgPSBNYXRoLm1pbihSbzAsIFJ1MCkgKiBtIC8gzpRSOw0KICBjb25zdCByMiA9IE1hdGgubWF4KFJvMCwgUnUwKSAqIG0gLyDOlFI7DQogIGNvbnN0IM6xICA9IDIgKiBNYXRoLlBJICogTWF0aC5tYXgoUm8wLCBSdTApIC8gcjI7DQogIGNvbnN0IM6xZGVnID0gzrEgKiAxODAgLyBNYXRoLlBJLCBoYSA9IM6xIC8gMjsNCg0KICBjb25zdCB4TWluICAgPSBNYXRoLm1pbihyMiAqIE1hdGguY29zKCBoYSksIHIyICogTWF0aC5jb3MoLWhhKSwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgcjEgKiBNYXRoLmNvcyggaGEpLCByMSAqIE1hdGguY29zKC1oYSkpOw0KICBjb25zdCB4TWF4ICAgPSByMjsNCiAgY29uc3QgeUV4dCAgID0gKM6xIDwgTWF0aC5QSSkNCiAgICA\/IE1hdGgubWF4KE1hdGguYWJzKHIyICogTWF0aC5zaW4oaGEpKSwNCiAgICAgICAgICAgICAgIE1hdGguYWJzKHIxICogTWF0aC5zaW4oaGEpKSkNCiAgICA6IHIyOw0KICBjb25zdCB5TWluICAgPSAteUV4dCwgeU1heCA9IHlFeHQ7DQogIGNvbnN0IHNoYXBlVyA9IHhNYXggLSB4TWluLCBzaGFwZUggPSB5TWF4IC0geU1pbjsNCg0KICAvKiA9PT09PSBDYW52YXMgYW5wYXNzZW4gPT09PT0gKi8NCiAgW2Nyb3NzLCBkZXYsIGluZm9dLmZvckVhY2goZml0Q2FudmFzKTsNCg0KICAvKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQogICAgIDEpIFF1ZXJzY2huaXR0DQogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCiAgew0KICAgIGNvbnN0IGN0eCA9IGNyb3NzLmdldENvbnRleHQoJzJkJyk7DQogICAgY29uc3QgVyAgID0gY3Jvc3MuY2xpZW50V2lkdGg7DQogICAgY29uc3QgSGMgID0gY3Jvc3MuY2xpZW50SGVpZ2h0Ow0KICAgIGN0eC5jbGVhclJlY3QoMCwgMCwgVywgSGMpOw0KDQogICAgLyogLS0tIFNrYWxpZXJ1bmcsIE9mZnNldHMgLS0tICovDQogICAgY29uc3Qgc2NhbGUgPSBNYXRoLm1pbigoVyAtIDIwKSAvIE1hdGgubWF4KETigpIsIEThtaQpLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgKEhjIC0gMjApIC8gSCk7DQogICAgY29uc3Qgb3ggPSAoVyAtIE1hdGgubWF4KETigpIsIEThtaQpICogc2NhbGUpIC8gMjsNCiAgICBjb25zdCBveSA9IChIYyAtIEggKiBzY2FsZSkgLyAyOw0KDQogICAgLyogLS0tIEF1w59lbmtvbnR1ciAoS29vcmRpbmF0ZW4pIC0tLSAqLw0KICAgIGNvbnN0IHdUb3AgPSBE4oKSICogc2NhbGUsDQogICAgICAgICAgd0JvdCA9IEThtaQgKiBzY2FsZSwNCiAgICAgICAgICBoVG90ID0gSCAgICogc2NhbGU7DQogICAgY29uc3QgeFRvcCA9IG94ICsgKE1hdGgubWF4KETigpIsIEThtaQpICogc2NhbGUgLSB3VG9wKSAvIDIsDQogICAgICAgICAgeEJvdCA9IG94ICsgKE1hdGgubWF4KETigpIsIEThtaQpICogc2NhbGUgLSB3Qm90KSAvIDI7DQogICAgY29uc3QgeVRvcCA9IG95LA0KICAgICAgICAgIHlCb3QgPSBveSArIGhUb3Q7DQoNCiAgICAvKiAtLS0gSW5uZW5rb250dXIgKEtvb3JkaW5hdGVuKSAtLS0gKi8NCiAgICBjb25zdCBE4oKS4bWiID0gROKCkiAtIDIgKiB0LA0KICAgICAgICAgIEThtaThtaIgPSBE4bWkIC0gMiAqIHQsDQogICAgICAgICAgSOG1oiAgPSBIICAtIHQ7DQogICAgY29uc3Qgd1RvcEkgPSBNYXRoLm1heChE4oKS4bWiLCAwKSAqIHNjYWxlLA0KICAgICAgICAgIHdCb3RJID0gTWF0aC5tYXgoROG1pOG1oiwgMCkgKiBzY2FsZTsNCiAgICBjb25zdCB4VG9wSSA9IG94ICsgKE1hdGgubWF4KETigpIsIEThtaQpICogc2NhbGUgLSB3VG9wSSkgLyAyLA0KICAgICAgICAgIHhCb3RJID0gb3ggKyAoTWF0aC5tYXgoROKCkiwgROG1pCkgKiBzY2FsZSAtIHdCb3RJKSAvIDI7DQogICAgY29uc3QgeUJvdEkgPSBveSArIGhUb3QgLSB0ICogc2NhbGU7DQoNCiAgICAvKiAtLS0gRsO8bGxsaW5pZSAyMCBtbSB1bnRlciBSYW5kIC0tLSAqLw0KICAgIGNvbnN0IGZpbGxHYXAgPSAyMDsNCiAgICBjb25zdCBoRmlsbCAgID0gTWF0aC5tYXgoSOG1oiAtIGZpbGxHYXAsIDApOw0KICAgIGNvbnN0IGhGaWxsUHggPSBmaWxsR2FwICogc2NhbGU7DQogICAgY29uc3QgeUZpbGwgICA9IHlUb3AgKyBoRmlsbFB4Ow0KDQogICAgLyogLS0tIFdhbmR2b2x1bWVuIGF1c2bDvGxsZW4gLS0tICovDQogICAgY3R4LnNhdmUoKTsNCiAgICBjdHguZmlsbFN0eWxlID0gJyNlZWUnOw0KICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICBjdHgubW92ZVRvKHhCb3QsIHlCb3QpOw0KICAgIGN0eC5saW5lVG8oeEJvdCArIHdCb3QsIHlCb3QpOw0KICAgIGN0eC5saW5lVG8oeFRvcCArIHdUb3AsIHlUb3ApOw0KICAgIGN0eC5saW5lVG8oeFRvcCwgeVRvcCk7DQogICAgY3R4LmNsb3NlUGF0aCgpOw0KICAgIGN0eC5maWxsKCk7DQoNCiAgICBjdHguZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ2Rlc3RpbmF0aW9uLW91dCc7DQogICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgIGN0eC5tb3ZlVG8oeEJvdEksIHlCb3RJKTsNCiAgICBjdHgubGluZVRvKHhCb3RJICsgd0JvdEksIHlCb3RJKTsNCiAgICBjdHgubGluZVRvKHhUb3BJICsgd1RvcEksIHlUb3ApOw0KICAgIGN0eC5saW5lVG8oeFRvcEksIHlUb3ApOw0KICAgIGN0eC5jbG9zZVBhdGgoKTsNCiAgICBjdHguZmlsbCgpOw0KICAgIGN0eC5yZXN0b3JlKCk7DQoNCiAgICAvKiAtLS0gS29udHVyZW4gemVpY2huZW4gLS0tICovDQogICAgY3R4LnN0cm9rZVN0eWxlID0gJyMwMDAnOw0KICAgIGN0eC5saW5lV2lkdGggPSAxOw0KICAgIGN0eC5iZWdpblBhdGgoKTsNCiAgICBjdHgubW92ZVRvKHhCb3QsIHlCb3QpOw0KICAgIGN0eC5saW5lVG8oeEJvdCArIHdCb3QsIHlCb3QpOw0KICAgIGN0eC5saW5lVG8oeFRvcCArIHdUb3AsIHlUb3ApOw0KICAgIGN0eC5saW5lVG8oeFRvcCwgeVRvcCk7DQogICAgY3R4LmNsb3NlUGF0aCgpOw0KICAgIGN0eC5zdHJva2UoKTsNCg0KICAgIGlmIChE4oKS4bWiID4gMCAmJiBE4bWk4bWiID4gMCAmJiBI4bWiID4gMCkgew0KICAgICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgICAgY3R4Lm1vdmVUbyh4Qm90SSwgeUJvdEkpOw0KICAgICAgY3R4LmxpbmVUbyh4Qm90SSArIHdCb3RJLCB5Qm90SSk7DQogICAgICBjdHgubGluZVRvKHhUb3BJICsgd1RvcEksIHlUb3ApOw0KICAgICAgY3R4LmxpbmVUbyh4VG9wSSwgeVRvcCk7DQogICAgICBjdHguY2xvc2VQYXRoKCk7DQogICAgICBjdHguc3Ryb2tlKCk7DQogICAgfQ0KDQogICAgLyogLS0tIE51dHp2b2x1bWVuIChoZWxsYmxhdSkgKyBGw7xsbGxpbmllIC0tLSAqLw0KICAgIGlmIChoRmlsbCA+IDAgJiYgROKCkuG1oiA+IDAgJiYgROG1pOG1oiA+IDApIHsNCiAgICAgIGNvbnN0IHdGaWxsID0gd1RvcEkgLSAod1RvcEkgLSB3Qm90SSkgKiAoZmlsbEdhcCAvIEjhtaIpOw0KICAgICAgY29uc3QgeEZpbGwgPSBveCArIChNYXRoLm1heChE4oKSLCBE4bWkKSAqIHNjYWxlIC0gd0ZpbGwpIC8gMjsNCg0KICAgICAgY3R4LmZpbGxTdHlsZSA9ICdyZ2JhKDE3MywgMjE2LCAyMzAsIDAuNCknOw0KICAgICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgICAgY3R4Lm1vdmVUbyh4Qm90SSwgeUJvdEkpOw0KICAgICAgY3R4LmxpbmVUbyh4Qm90SSArIHdCb3RJLCB5Qm90SSk7DQogICAgICBjdHgubGluZVRvKHhGaWxsICsgd0ZpbGwsIHlGaWxsKTsNCiAgICAgIGN0eC5saW5lVG8oeEZpbGwsIHlGaWxsKTsNCiAgICAgIGN0eC5jbG9zZVBhdGgoKTsNCiAgICAgIGN0eC5maWxsKCk7DQoNCiAgICAgIGN0eC5zdHJva2VTdHlsZSA9ICcjMDA3N2ZmJzsNCiAgICAgIGN0eC5zZXRMaW5lRGFzaChbNiwgM10pOw0KICAgICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgICAgY3R4Lm1vdmVUbyh4RmlsbCwgeUZpbGwpOw0KICAgICAgY3R4LmxpbmVUbyh4RmlsbCArIHdGaWxsLCB5RmlsbCk7DQogICAgICBjdHguc3Ryb2tlKCk7DQogICAgICBjdHguc2V0TGluZURhc2goW10pOw0KICAgIH0NCg0KICAgIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgICAgID4+PiAgIE5FVTogVmVyYmluZHVuZ3NzdHJlY2tlbiBmw7xyIFBsYXR0ZW50ZWNobmlrICAgPDw8DQogICAgICAgVm9uICAoSW5uZW5ib2RlbiDiiKkgSW5uZW5tYW50ZWwpICDinpwgIChBdcOfZW5ib2RlbiDiiKkgQXXDn2VubWFudGVsKQ0KICAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqLw0KICAgIGlmIChE4oKS4bWiID4gMCAmJiBE4bWk4bWiID4gMCAmJiBI4bWiID4gMCkgew0KICAgICAgY3R4LnN0cm9rZVN0eWxlID0gJyNmZjAwMDAnOw0KICAgICAgY3R4LmxpbmVXaWR0aCAgID0gMTsNCiAgICAgIGN0eC5zZXRMaW5lRGFzaChbMiwgMl0pOw0KDQogICAgICAvKiBsaW5rZSBTZWl0ZSAqLw0KICAgICAgY3R4LmJlZ2luUGF0aCgpOw0KICAgICAgY3R4Lm1vdmVUbyh4Qm90SSwgICAgICAgICAgICAgeUJvdEkpOyAvLyBJbm5lbmJvZGVu4oipSW5uZW5tYW50ZWwNCiAgICAgIGN0eC5saW5lVG8oeEJvdCwgICAgICAgICAgICAgIHlCb3QgKTsgLy8gQXXDn2VuYm9kZW7iiKlBdcOfZW5tYW50ZWwNCiAgICAgIGN0eC5zdHJva2UoKTsNCg0KICAgICAgLyogcmVjaHRlIFNlaXRlICovDQogICAgICBjdHguYmVnaW5QYXRoKCk7DQogICAgICBjdHgubW92ZVRvKHhCb3RJICsgd0JvdEksICAgICB5Qm90SSk7IC8vIElubmVuYm9kZW7iiKlJbm5lbm1hbnRlbA0KICAgICAgY3R4LmxpbmVUbyh4Qm90ICArIHdCb3QsICAgICAgeUJvdCApOyAvLyBBdcOfZW5ib2RlbuKIqUF1w59lbm1hbnRlbA0KICAgICAgY3R4LnN0cm9rZSgpOw0KDQogICAgICBjdHguc2V0TGluZURhc2goW10pOw0KICAgIH0NCiAgfSAvLyAtLS0gRW5kZSBRdWVyc2Nobml0dCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KDQogIC8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCiAgICAgMikgQWJ3aWNrbHVuZyB2b3IgU2Nod2luZHVuZyAodW52ZXLDpG5kZXJ0KQ0KICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovDQogIHsNCiAgICBjb25zdCBjdHggPSBkZXYuZ2V0Q29udGV4dCgnMmQnKTsNCiAgICBjb25zdCBXICAgPSBkZXYuY2xpZW50V2lkdGg7DQogICAgY29uc3QgSGMgID0gZGV2LmNsaWVudEhlaWdodDsNCiAgICBjdHguY2xlYXJSZWN0KDAsIDAsIFcsIEhjKTsNCg0KICAgIGNvbnN0IHNjYWxlID0gTWF0aC5taW4oKFcgLSAyMCkgLyBzaGFwZVcsIChIYyAtIDIwKSAvIHNoYXBlSCk7DQogICAgY29uc3Qgc3cgPSBzaGFwZVcgKiBzY2FsZSwgc2ggPSBzaGFwZUggKiBzY2FsZTsNCiAgICBjb25zdCBjeCA9IFcgLyAyLCBjeSA9IEhjIC8gMjsNCiAgICBjb25zdCBiYlggPSBjeCAtIHN3IC8gMiwgYmJZID0gY3kgLSBzaCAvIDI7DQoNCiAgICBjdHguc2V0TGluZURhc2goWzUsIDNdKTsNCiAgICBjdHguc3Ryb2tlUmVjdChiYlgsIGJiWSwgc3csIHNoKTsNCiAgICBjdHguc2V0TGluZURhc2goW10pOw0KDQogICAgY3R4LnNhdmUoKTsNCiAgICBjdHgudHJhbnNsYXRlKGJiWCAtIHhNaW4gKiBzY2FsZSwgYmJZIC0geU1pbiAqIHNjYWxlKTsNCiAgICBjdHguc2NhbGUoc2NhbGUsIHNjYWxlKTsNCiAgICBjdHguYmVnaW5QYXRoKCk7DQogICAgY3R4LmFyYygwLCAwLCByMiwgLWhhLCAgaGEpOw0KICAgIGN0eC5hcmMoMCwgMCwgcjEsICBoYSwgLWhhLCB0cnVlKTsNCiAgICBjdHguY2xvc2VQYXRoKCk7DQogICAgY3R4LmZpbGxTdHlsZSA9ICcjZWVlJzsNCiAgICBjdHguZmlsbCgpOw0KICAgIGN0eC5zdHJva2VTdHlsZSA9ICcjMDAwJzsNCiAgICBjdHgubGluZVdpZHRoID0gMSAvIHNjYWxlOw0KICAgIGN0eC5zdHJva2UoKTsNCiAgICBjdHgucmVzdG9yZSgpOw0KICB9DQoNCiAgLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KICAgICAzKSBJbmZvLUNhbnZhcyAoaW5rbC4gTnV0enZvbHVtZW4pDQogID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi8NCiAgew0KICAgIGNvbnN0IGN0eCA9IGluZm8uZ2V0Q29udGV4dCgnMmQnKTsNCiAgICBjb25zdCBXICA9IGluZm8uY2xpZW50V2lkdGgsIEhjID0gaW5mby5jbGllbnRIZWlnaHQ7DQogICAgY3R4LmNsZWFyUmVjdCgwLCAwLCBXLCBIYyk7DQogICAgY3R4LmZvbnQgPSAnMTRweCBBcmlhbCc7DQogICAgY3R4LmZpbGxTdHlsZSA9ICcjMDAwJzsNCiAgICBjdHgudGV4dEFsaWduID0gJ2xlZnQnOw0KDQogICAgLyogTnV0enZvbHVtZW4gYmVyZWNobmVuIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqLw0KICAgIGxldCBWbnV0eiA9IDA7DQogICAgaWYgKChE4oKSIC0gMiAqIHQpID4gMCAmJiAoROG1pCAtIDIgKiB0KSA+IDAgJiYgKEggLSB0IC0gMjApID4gMCkgew0KICAgICAgY29uc3QgclRvcEkgPSAoROKCkiAtIDIgKiB0KSAvIDI7DQogICAgICBjb25zdCByQm90SSA9IChE4bWkIC0gMiAqIHQpIC8gMjsNCiAgICAgIGNvbnN0IGhOdXR6ID0gSCAtIHQgLSAyMDsNCiAgICAgIGNvbnN0IHJGaWxsID0gclRvcEkgLSAoclRvcEkgLSByQm90SSkgKiAoMjAgLyAoSCAtIHQpKTsNCiAgICAgIGNvbnN0IFZtbTMgID0gTWF0aC5QSSAqIGhOdXR6ICoNCiAgICAgICAgICAgICAgICAgICAgKHJGaWxsICogckZpbGwgKyByRmlsbCAqIHJCb3RJICsgckJvdEkgKiByQm90SSkgLyAzOw0KICAgICAgVm51dHogPSBWbW0zIC8gMTAwMDsNCiAgICB9DQoNCiAgICAvKiBUZXh0YXVzZ2FiZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovDQogICAgY29uc3QgdG9wUGFkID0gMzA7DQogICAgbGV0IGxoID0gKEhjIC0gMip0b3BQYWQpLzE3Ow0KICAgIGxldCBmcyA9IGxoKjAuOTsNCiAgICBjdHguZm9udD1gJHtmc31weCBtb25vc3BhY2VgOw0KICAgIFsNCiAgICAgIGB0MDogICAke3QwLnRvRml4ZWQoMil9IG1tYCwNCiAgICAgIGAgICAgICAoIE1hdGVyaWFsc3TDpHJrZSApYCwNCiAgICAgIGBTOiAgICAkeyhTICogMTAwKS50b0ZpeGVkKDEpfSAlYCwNCiAgICAgIGAgICAgICAoIFNjaHdpbmR1bmcgKWAsDQogICAgICBgbTogICAgJHttLnRvRml4ZWQoMil9IG1tYCwNCiAgICAgIGAgICAgICAoIE1hbnRlbGjDtmhlIClgLA0KICAgICAgYFJpOiAgICR7cjEudG9GaXhlZCgyKX0gbW1gLA0KICAgICAgYCAgICAgICggSW5uZW5yYWRpdXMgKWAsDQogICAgICBgUmE6ICAgJHtyMi50b0ZpeGVkKDIpfSBtbWAsDQogICAgICBgICAgICAgKCBBdcOfZW5yYWRpdXMgKWAsDQogICAgICBgzrE6ICAgICR7zrFkZWcudG9GaXhlZCgyKX3CsGAsDQogICAgICBgICAgICAgKCBTZWt0b3J3aW5rZWwgKWAsDQogICAgICBgQkJveDogJHtzaGFwZUgudG9GaXhlZCgyKX0gw5cgJHtzaGFwZVcudG9GaXhlZCgyKX0gbW1gLA0KICAgICAgYCAgICAgICggSMO8bGxmbMOkY2hlIClgLA0KICAgICAgJycsDQogICAgICBgVm46ICAgJHtWbnV0ei50b0ZpeGVkKDApfSBtbGAsDQogICAgICBgICAgICAgKCBuYWNoIFNjaHdpbmR1bmcgKWAsDQogICAgICBgICAgICAgKCAyY20gQWJzdC4genVtIFJhbmQgKWANCiAgICBdLmZvckVhY2goKHR4dCwgaSkgPT4gY3R4LmZpbGxUZXh0KHR4dCwgMjUsIHRvcFBhZCArIGxoICogaSkpOw0KICB9DQp9IC8vIEVuZGUgZHJhd0FsbCgpDQoNCi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KICAgSW5pdGlhbGlzaWVydW5nDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi8NCmNvbnN0IGRUb3AgICA9IGdldEVsZW1lbnRCeUlkKCdkVG9wJyksDQogICAgICBkQm90ICAgPSBnZXRFbGVtZW50QnlJZCgnZEJvdCcpLA0KICAgICAgaGVpZ2h0ID0gZ2V0RWxlbWVudEJ5SWQoJ2hlaWdodCcpLA0KICAgICAgc2hyaW5rID0gZ2V0RWxlbWVudEJ5SWQoJ3NocmluaycpLA0KICAgICAgdGhpY2sgID0gZ2V0RWxlbWVudEJ5SWQoJ3RoaWNrJyksDQogICAgICBjcm9zcyAgPSBnZXRFbGVtZW50QnlJZCgnY3Jvc3MnKSwNCiAgICAgIGRldiAgICA9IGdldEVsZW1lbnRCeUlkKCdkZXYnKSwNCiAgICAgIGluZm8gICA9IGdldEVsZW1lbnRCeUlkKCdpbmZvJyksDQogICAgICB0YXJnZXQgPSBnZXRFbGVtZW50QnlJZCgndGFyZ2V0Jyk7DQoNCmxpbmsoZFRvcCwgICBnZXRFbGVtZW50QnlJZCgnZFRvcFInKSk7DQpsaW5rKGRCb3QsICAgZ2V0RWxlbWVudEJ5SWQoJ2RCb3RSJykpOw0KbGluayhoZWlnaHQsIGdldEVsZW1lbnRCeUlkKCdoZWlnaHRSJykpOw0KbGluayhzaHJpbmssIGdldEVsZW1lbnRCeUlkKCdzaHJpbmtSJykpOw0KbGluayh0aGljaywgIGdldEVsZW1lbnRCeUlkKCd0aGlja1InKSk7DQpsaW5rKHRhcmdldCwgZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldFInKSk7DQoNCi8vIEJ1dHRvbiBmw7xyIFppZWx3ZXJ0c3VjaGUNCmNvbnN0IHN0YXJ0U2VhcmNoQnRuID0gZ2V0RWxlbWVudEJ5SWQoJ3N0YXJ0U2VhcmNoJyk7DQppZiAoc3RhcnRTZWFyY2hCdG4pIHsNCiAgc3RhcnRTZWFyY2hCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBzY2FsZU11Zyk7DQp9DQoNCi8vIEluaXRpYWwgZHJhdyBtaXQgVmVyesO2Z2VydW5nIGbDvHIgQ2FudmFzLURpbWVuc2lvbmVuDQpmdW5jdGlvbiBpbml0RHJhdygpIHsNCiAgLy8gUHLDvGZlIG9iIENhbnZhcyBEaW1lbnNpb25lbiBoYXQNCiAgaWYgKGNyb3NzLmNsaWVudFdpZHRoID4gMCAmJiBjcm9zcy5jbGllbnRIZWlnaHQgPiAwKSB7DQogICAgZHJhd0FsbCgpOw0KICB9IGVsc2Ugew0KICAgIC8vIFdhcnRlIGJpcyBDYW52YXMgRGltZW5zaW9uZW4gaGF0DQogICAgc2V0VGltZW91dChpbml0RHJhdywgNTApOw0KICB9DQp9DQoNCi8vIFN0YXJ0ZSBpbml0aWFsZW4gRHJhdw0Kc2V0VGltZW91dChpbml0RHJhdywgMTApOw0KDQovLyBSZXNpemUgaGFuZGxlcg0KaWYgKHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKSB7DQogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBkcmF3QWxsKTsNCn0NCgogIH0gY2F0Y2goZXJyb3IpIHsKICAgIGNvbnNvbGUuZXJyb3IoJ0tlcmFtaWsgVG9vbHM6IFNjcmlwdCBlcnJvcjonLCBlcnJvcik7CiAgfQp9KSgpOw==\");var s=decodeURIComponent(escape(b));eval(s);}catch(e){console.error(\"Keramik Tools Script Error:\",e);}})();<\/script><\/div>\n<\/div>\n\n\n\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-2&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item has-border-color is-layout-flow wp-block-accordion-item-is-layout-flow\" style=\"border-color:#1a1a1a;border-width:2px;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem\">\n<h3 class=\"wp-block-accordion-heading\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-2-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-2\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">REM-EDX \u5206\u6790\u4eea\u53cd\u9988<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-2\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-2-panel\" role=\"region\" class=\"wp-block-accordion-panel has-border-color is-layout-flow wp-block-accordion-panel-is-layout-flow\" style=\"border-color:#1a1a1a;border-width:1px;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem\"><div id=\"helenas-keramik-tool-2\" class=\"helenas-keramik-tool\" data-module=\"rem-edx_oxide\"><style>#helenas-keramik-tool-2 .main-grid{\r\n\tdisplay: grid;\r\n\tgrid-template-columns: 1fr 1fr;\r\n\tgap: 30px;\r\n}#helenas-keramik-tool-2 .input-section{\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f8f9fa);\r\n\tpadding: 20px;\r\n\tborder-radius: 10px;\r\n}#helenas-keramik-tool-2 .section-title{\r\n\tfont-size: 18px;\r\n\tfont-weight: 600;\r\n\tcolor: var(--wp--preset--color--foreground, #333);\r\n\tmargin-bottom: 15px;\r\n\tpadding-bottom: 10px;\r\n\tborder-bottom: 2px solid var(--wp--preset--color--primary, #667eea);\r\n}#helenas-keramik-tool-2 .element-row{\r\n\tdisplay: grid;\r\n\tgrid-template-columns: 2fr 1fr auto;\r\n\tgap: 10px;\r\n\tmargin-bottom: 12px;\r\n\talign-items: center;\r\n\tbackground: var(--wp--preset--color--base, white);\r\n\tpadding: 12px;\r\n\tborder-radius: 8px;\r\n\tbox-shadow: 0 2px 5px rgba(0,0,0,0.05);\r\n}#helenas-keramik-tool-2 .element-select, #helenas-keramik-tool-2 .element-row select, #helenas-keramik-tool-2 .element-row input{\r\n\tpadding: 10px;\r\n\tborder: 2px solid var(--wp--preset--color--contrast, #ddd);\r\n\tborder-radius: 6px;\r\n\tfont-size: 14px;\r\n\ttransition: border-color 0.3s;\r\n}#helenas-keramik-tool-2 .element-select:focus, #helenas-keramik-tool-2 .element-row select:focus, #helenas-keramik-tool-2 .element-row input:focus{\r\n\toutline: none;\r\n\tborder-color: var(--wp--preset--color--primary, #667eea);\r\n}#helenas-keramik-tool-2 .element-row input[type=\"text\"]{\r\n\ttext-align: right;\r\n}#helenas-keramik-tool-2 .remove-btn{\r\n\tbackground: #dc3545;\r\n\tcolor: white;\r\n\tborder: none;\r\n\tpadding: 10px 15px;\r\n\tborder-radius: 6px;\r\n\tcursor: pointer;\r\n\tfont-size: 14px;\r\n\ttransition: background 0.3s;\r\n}#helenas-keramik-tool-2 .remove-btn:hover{\r\n\tbackground: #c82333;\r\n}#helenas-keramik-tool-2 .add-btn{\r\n\tbackground: #28a745;\r\n\tcolor: white;\r\n\tborder: none;\r\n\tpadding: 12px 20px;\r\n\tborder-radius: 6px;\r\n\tcursor: pointer;\r\n\tfont-size: 14px;\r\n\tmargin-top: 10px;\r\n\ttransition: background 0.3s;\r\n}#helenas-keramik-tool-2 .add-btn:hover{\r\n\tbackground: #218838;\r\n}#helenas-keramik-tool-2 .output-section{\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f8f9fa);\r\n\tpadding: 20px;\r\n\tborder-radius: 10px;\r\n}#helenas-keramik-tool-2 .result-table{\r\n\twidth: 100%;\r\n\tbackground: var(--wp--preset--color--base, white);\r\n\tborder-radius: 8px;\r\n\toverflow: hidden;\r\n\tbox-shadow: 0 2px 5px rgba(0,0,0,0.05);\r\n}#helenas-keramik-tool-2 .result-table table{\r\n\twidth: 100%;\r\n\tborder-collapse: collapse;\r\n}#helenas-keramik-tool-2 .result-table th{\r\n\tbackground: var(--wp--preset--color--primary, #667eea);\r\n\tcolor: white;\r\n\tpadding: 12px;\r\n\ttext-align: left;\r\n\tfont-weight: 600;\r\n}#helenas-keramik-tool-2 .result-table td{\r\n\tpadding: 10px 12px;\r\n\tborder-bottom: 1px solid #eee;\r\n}#helenas-keramik-tool-2 .result-table tr:last-child td{\r\n\tborder-bottom: none;\r\n}#helenas-keramik-tool-2 .result-table tr:nth-child(even){\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f8f9fa);\r\n}#helenas-keramik-tool-2 .total-row{\r\n\tfont-weight: 700;\r\n\tbackground: #e7f3ff !important;\r\n\tborder-top: 2px solid var(--wp--preset--color--primary, #667eea);\r\n}#helenas-keramik-tool-2 .warning{\r\n\tbackground: #fff3cd;\r\n\tborder: 1px solid #ffc107;\r\n\tpadding: 12px;\r\n\tborder-radius: 6px;\r\n\tmargin-top: 15px;\r\n\tcolor: #856404;\r\n\tfont-size: 14px;\r\n}#helenas-keramik-tool-2 .info{\r\n\tbackground: #d1ecf1;\r\n\tborder: 1px solid #17a2b8;\r\n\tpadding: 12px;\r\n\tborder-radius: 6px;\r\n\tmargin-bottom: 15px;\r\n\tcolor: #0c5460;\r\n\tfont-size: 13px;\r\n}#helenas-keramik-tool-2 .import-btn{\r\n\tbackground: #17a2b8;\r\n\tcolor: white;\r\n\tborder: none;\r\n\tpadding: 12px 20px;\r\n\tborder-radius: 6px;\r\n\tcursor: pointer;\r\n\tfont-size: 14px;\r\n\tmargin-top: 10px;\r\n\tmargin-left: 10px;\r\n\ttransition: background 0.3s;\r\n}#helenas-keramik-tool-2 .import-btn:hover{\r\n\tbackground: #138496;\r\n}#helenas-keramik-tool-2 .clear-btn{\r\n\tbackground: #ffc107;\r\n\tcolor: #333;\r\n\tborder: none;\r\n\tpadding: 12px 20px;\r\n\tborder-radius: 6px;\r\n\tcursor: pointer;\r\n\tfont-size: 14px;\r\n\tmargin-top: 10px;\r\n\tmargin-left: 10px;\r\n\ttransition: background 0.3s;\r\n}#helenas-keramik-tool-2 .clear-btn:hover{\r\n\tbackground: #e0a800;\r\n}#helenas-keramik-tool-2 .modal{\r\n\tdisplay: none;\r\n\tposition: fixed;\r\n\tz-index: 1000;\r\n\tleft: 0;\r\n\ttop: 0;\r\n\twidth: 100%;\r\n\theight: 100%;\r\n\tbackground-color: rgba(0,0,0,0.5);\r\n\tanimation: fadeIn 0.3s;\r\n}@keyframes fadeIn{#helenas-keramik-tool-2 from{ opacity: 0; }#helenas-keramik-tool-2 to{ opacity: 1; }\r\n}#helenas-keramik-tool-2 .modal-content{\r\n\tbackground-color: var(--wp--preset--color--base, white);\r\n\tmargin: 5% auto;\r\n\tpadding: 30px;\r\n\tborder-radius: 15px;\r\n\twidth: 80%;\r\n\tmax-width: 700px;\r\n\tbox-shadow: 0 20px 60px rgba(0,0,0,0.3);\r\n\tanimation: slideIn 0.3s;\r\n}@keyframes slideIn{#helenas-keramik-tool-2 from{ transform: translateY(-50px); opacity: 0; }#helenas-keramik-tool-2 to{ transform: translateY(0); opacity: 1; }\r\n}#helenas-keramik-tool-2 .modal-header{\r\n\tfont-size: 20px;\r\n\tfont-weight: 600;\r\n\tcolor: var(--wp--preset--color--foreground, #333);\r\n\tmargin-bottom: 20px;\r\n\tpadding-bottom: 10px;\r\n\tborder-bottom: 2px solid #17a2b8;\r\n}#helenas-keramik-tool-2 .preview-table{\r\n\twidth: 100%;\r\n\tmargin: 20px 0;\r\n\tborder-collapse: collapse;\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f8f9fa);\r\n\tborder-radius: 8px;\r\n\toverflow: hidden;\r\n}#helenas-keramik-tool-2 .preview-table th{\r\n\tbackground: #17a2b8;\r\n\tcolor: white;\r\n\tpadding: 10px;\r\n\ttext-align: left;\r\n}#helenas-keramik-tool-2 .preview-table td{\r\n\tpadding: 8px 10px;\r\n\tborder-bottom: 1px solid #ddd;\r\n}#helenas-keramik-tool-2 .preview-table tr:last-child td{\r\n\tborder-bottom: none;\r\n}#helenas-keramik-tool-2 .modal-buttons{\r\n\tdisplay: flex;\r\n\tgap: 10px;\r\n\tjustify-content: flex-end;\r\n\tmargin-top: 20px;\r\n}#helenas-keramik-tool-2 .modal-btn{\r\n\tpadding: 10px 20px;\r\n\tborder: none;\r\n\tborder-radius: 6px;\r\n\tcursor: pointer;\r\n\tfont-size: 14px;\r\n\ttransition: background 0.3s;\r\n}#helenas-keramik-tool-2 .modal-btn-confirm{\r\n\tbackground: #28a745;\r\n\tcolor: white;\r\n}#helenas-keramik-tool-2 .modal-btn-confirm:hover{\r\n\tbackground: #218838;\r\n}#helenas-keramik-tool-2 .modal-btn-cancel{\r\n\tbackground: #6c757d;\r\n\tcolor: white;\r\n}#helenas-keramik-tool-2 .modal-btn-cancel:hover{\r\n\tbackground: #5a6268;\r\n}#helenas-keramik-tool-2 .loi-row{\r\n\tbackground: #fff8e1 !important;\r\n\tfont-weight: 600;\r\n}@media (max-width: 1024px){#helenas-keramik-tool-2 .main-grid{\r\n\t\tgrid-template-columns: 1fr;\r\n\t}\r\n}\r\n<\/style><div class=\"main-grid\">\r\n\t<div class=\"input-section\">\r\n\t\t<div class=\"section-title\">\u8f93\u5165\uff1a\u5143\u7d20\u5206\u6790 (\u6469\u5c14-%)<\/div>\r\n\t\t<div class=\"info\">\r\n\t\t\t<strong>\u6ce8\u610f\uff1a<\/strong> <span>\u4ece REM\/EDX \u5206\u6790\u4e2d\u9009\u62e9\u5143\u7d20\u5e76\u8f93\u5165\u6469\u5c14\u767e\u5206\u6bd4\u3002\u5b83\u5c06\u81ea\u52a8\u8f6c\u6362\u4e3a\u6c27\u5316\u7269\u91cd\u91cf\u3002 <\/span><br>\r\n\t\t\t<strong>\u6c27\uff1a<\/strong> <span>\u5982\u679c\u6307\u5b9a\u4e86 O\uff0c\u5219\u4f1a\u8003\u8651\u6c27\u5e73\u8861\u3002\u73b0\u6709\u6c27\u4e0e\u6240\u9700\u6c27\u4e4b\u95f4\u7684\u5dee\u5f02\u5c06\u8bb0\u5f55\u5728 LOI \u4e2d\u3002 <\/span>\r\n\t\t<\/div>\r\n\t\t<div id=\"elementInputs\">\r\n\t\t\t<!-- Element rows will be added here dynamically -->\r\n\t\t<\/div>\r\n\t\t<button class=\"add-btn\" id=\"addElementBtn\" type=\"button\">+ \u6dfb\u52a0\u5143\u7d20<\/button>\r\n\t\t<button class=\"import-btn\" id=\"importBtn\" type=\"button\">\ud83d\udccb \u4ece\u526a\u8d34\u677f\u5bfc\u5165<\/button>\r\n\t\t<button class=\"clear-btn\" id=\"clearBtn\" type=\"button\">\ud83d\uddd1 \u5168\u90e8\u5220\u9664<\/button>\r\n\t<\/div>\r\n\r\n\t<div class=\"output-section\">\r\n\t\t<div class=\"section-title\">\u8f93\u51fa\uff1a\u6c27\u5316\u7269 (\u91cd\u91cf-%)<\/div>\r\n\t\t<div class=\"result-table\">\r\n\t\t\t<table>\r\n\t\t\t\t<thead>\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<th>\u6c27\u5316\u7269<\/th>\r\n\t\t\t\t\t\t<th style=\"text-align: right;\">\u91cd\u91cf (%)<\/th>\r\n\t\t\t\t\t<\/tr>\r\n\t\t\t\t<\/thead>\r\n\t\t\t\t<tbody id=\"resultTableBody\">\r\n\t\t\t\t\t<tr>\r\n\t\t\t\t\t\t<td colspan=\"2\" style=\"text-align: center; color: #999;\">\u672a\u8f93\u5165\u6570\u636e<\/td>\r\n\t\t\t\t\t<\/tr>\r\n\t\t\t\t<\/tbody>\r\n\t\t\t<\/table>\r\n\t\t<\/div>\r\n\t\t<div id=\"warningDiv\"><\/div>\r\n\t<\/div>\r\n<\/div>\r\n\r\n<!-- Modal f\u00fcr Clipboard Import -->\r\n<div id=\"importModal\" class=\"modal\">\r\n\t<div class=\"modal-content\">\r\n\t\t<div class=\"modal-header\">\u4ece\u526a\u8d34\u677f\u5bfc\u5165\u6570\u636e<\/div>\r\n\t\t<div class=\"info\">\r\n\t\t\t<span>\u68c0\u6d4b\u5230\u4ee5\u4e0b\u6570\u636e\u3002\u4f60\u60f3\u5bfc\u5165\u5b83\u4eec\u5417\uff1f <\/span>\r\n\t\t<\/div>\r\n\t\t<div id=\"previewContainer\"><\/div>\r\n\t\t<div class=\"modal-buttons\">\r\n\t\t\t<button class=\"modal-btn modal-btn-cancel\" id=\"modalCancelBtn\" type=\"button\">\u53d6\u6d88<\/button>\r\n\t\t\t<button class=\"modal-btn modal-btn-confirm\" id=\"modalConfirmBtn\" type=\"button\">\u5bfc\u5165\u6570\u636e<\/button>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div>\r\n<\/div><script>(function(){try{var b=atob(\"KGZ1bmN0aW9uKCkgewogIGNvbnN0IGJsb2NrQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbGVuYXMta2VyYW1pay10b29sLTInKTsKICBpZiAoIWJsb2NrQ29udGFpbmVyKSB7CiAgICBjb25zb2xlLmVycm9yKCdLZXJhbWlrIFRvb2xzOiBCbG9jayBjb250YWluZXIgbm90IGZvdW5kOicsICdoZWxlbmFzLWtlcmFtaWstdG9vbC0yJyk7CiAgICByZXR1cm47CiAgfQoKICAvLyBTY29wZWQgZ2V0RWxlbWVudEJ5SWQgZnVuY3Rpb24KICBmdW5jdGlvbiBnZXRFbGVtZW50QnlJZChpZCkgewogICAgcmV0dXJuIGJsb2NrQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyMnICsgaWQpOwogIH0KCiAgLy8gRXhlY3V0ZSBtb2R1bGUgc2NyaXB0CiAgdHJ5IHsKLy8gVm9sbHN0w6RuZGlnZXMgUGVyaW9kZW5zeXN0ZW0gKG9obmUgcmFkaW9ha3RpdmUgRWxlbWVudGUpDQovLyBRdWVsbGU6IElVUEFDIEF0b21pYyBXZWlnaHRzIDIwMjENCi8vIEdydXBwaWVydW5nIG5hY2gga2xhc3Npc2NoZXIgUFNFLUdydXBwZW5laW50ZWlsdW5nDQpjb25zdCBlbGVtZW50cyA9IHsNCgkvLyBHcnVwcGUgMTogQWxrYWxpbWV0YWxsZQ0KCSdIJzogeyBuYW1lOiAnV2Fzc2Vyc3RvZmYnLCBtb2xhck1hc3M6IDEuMDA4LCBjb21tb25PeGlkZTogJ0xPSScsIGlzVm9sYXRpbGU6IHRydWUsIGdyb3VwOiAxLCBhdG9taWNOdW1iZXI6IDEgfSwNCgknTGknOiB7IG5hbWU6ICdMaXRoaXVtJywgbW9sYXJNYXNzOiA2Ljk0LCBjb21tb25PeGlkZTogJ0xpMk8nLCBncm91cDogMSwgYXRvbWljTnVtYmVyOiAzIH0sDQoJJ05hJzogeyBuYW1lOiAnTmF0cml1bScsIG1vbGFyTWFzczogMjIuOTkwLCBjb21tb25PeGlkZTogJ05hMk8nLCBncm91cDogMSwgYXRvbWljTnVtYmVyOiAxMSB9LA0KCSdLJzogeyBuYW1lOiAnS2FsaXVtJywgbW9sYXJNYXNzOiAzOS4wOTgsIGNvbW1vbk94aWRlOiAnSzJPJywgZ3JvdXA6IDEsIGF0b21pY051bWJlcjogMTkgfSwNCgknUmInOiB7IG5hbWU6ICdSdWJpZGl1bScsIG1vbGFyTWFzczogODUuNDY4LCBjb21tb25PeGlkZTogJ1JiMk8nLCBncm91cDogMSwgYXRvbWljTnVtYmVyOiAzNyB9LA0KCSdDcyc6IHsgbmFtZTogJ0PDpHNpdW0nLCBtb2xhck1hc3M6IDEzMi45MDUsIGNvbW1vbk94aWRlOiAnQ3MyTycsIGdyb3VwOiAxLCBhdG9taWNOdW1iZXI6IDU1IH0sDQoNCgkvLyBHcnVwcGUgMjogRXJkYWxrYWxpbWV0YWxsZQ0KCSdCZSc6IHsgbmFtZTogJ0JlcnlsbGl1bScsIG1vbGFyTWFzczogOS4wMTIsIGNvbW1vbk94aWRlOiAnQmVPJywgZ3JvdXA6IDIsIGF0b21pY051bWJlcjogNCB9LA0KCSdNZyc6IHsgbmFtZTogJ01hZ25lc2l1bScsIG1vbGFyTWFzczogMjQuMzA1LCBjb21tb25PeGlkZTogJ01nTycsIGdyb3VwOiAyLCBhdG9taWNOdW1iZXI6IDEyIH0sDQoJJ0NhJzogeyBuYW1lOiAnQ2FsY2l1bScsIG1vbGFyTWFzczogNDAuMDc4LCBjb21tb25PeGlkZTogJ0NhTycsIGdyb3VwOiAyLCBhdG9taWNOdW1iZXI6IDIwIH0sDQoJJ1NyJzogeyBuYW1lOiAnU3Ryb250aXVtJywgbW9sYXJNYXNzOiA4Ny42MiwgY29tbW9uT3hpZGU6ICdTck8nLCBncm91cDogMiwgYXRvbWljTnVtYmVyOiAzOCB9LA0KCSdCYSc6IHsgbmFtZTogJ0Jhcml1bScsIG1vbGFyTWFzczogMTM3LjMyNywgY29tbW9uT3hpZGU6ICdCYU8nLCBncm91cDogMiwgYXRvbWljTnVtYmVyOiA1NiB9LA0KDQoJLy8gR3J1cHBlIDM6IFNjYW5kaXVtZ3J1cHBlDQoJJ1NjJzogeyBuYW1lOiAnU2NhbmRpdW0nLCBtb2xhck1hc3M6IDQ0Ljk1NiwgY29tbW9uT3hpZGU6ICdTYzJPMycsIGdyb3VwOiAzLCBhdG9taWNOdW1iZXI6IDIxIH0sDQoJJ1knOiB7IG5hbWU6ICdZdHRyaXVtJywgbW9sYXJNYXNzOiA4OC45MDYsIGNvbW1vbk94aWRlOiAnWTJPMycsIGdyb3VwOiAzLCBhdG9taWNOdW1iZXI6IDM5IH0sDQoNCgkvLyBHcnVwcGUgNDogVGl0YW5ncnVwcGUNCgknVGknOiB7IG5hbWU6ICdUaXRhbicsIG1vbGFyTWFzczogNDcuODY3LCBjb21tb25PeGlkZTogJ1RpTzInLCBncm91cDogNCwgYXRvbWljTnVtYmVyOiAyMiB9LA0KCSdacic6IHsgbmFtZTogJ1ppcmtvbml1bScsIG1vbGFyTWFzczogOTEuMjI0LCBjb21tb25PeGlkZTogJ1pyTzInLCBncm91cDogNCwgYXRvbWljTnVtYmVyOiA0MCB9LA0KCSdIZic6IHsgbmFtZTogJ0hhZm5pdW0nLCBtb2xhck1hc3M6IDE3OC40OSwgY29tbW9uT3hpZGU6ICdIZk8yJywgZ3JvdXA6IDQsIGF0b21pY051bWJlcjogNzIgfSwNCg0KCS8vIEdydXBwZSA1OiBWYW5hZGl1bWdydXBwZQ0KCSdWJzogeyBuYW1lOiAnVmFuYWRpdW0nLCBtb2xhck1hc3M6IDUwLjk0MiwgY29tbW9uT3hpZGU6ICdWMk81JywgZ3JvdXA6IDUsIGF0b21pY051bWJlcjogMjMgfSwNCgknTmInOiB7IG5hbWU6ICdOaW9iJywgbW9sYXJNYXNzOiA5Mi45MDYsIGNvbW1vbk94aWRlOiAnTmIyTzUnLCBncm91cDogNSwgYXRvbWljTnVtYmVyOiA0MSB9LA0KCSdUYSc6IHsgbmFtZTogJ1RhbnRhbCcsIG1vbGFyTWFzczogMTgwLjk0OCwgY29tbW9uT3hpZGU6ICdUYTJPNScsIGdyb3VwOiA1LCBhdG9taWNOdW1iZXI6IDczIH0sDQoNCgkvLyBHcnVwcGUgNjogQ2hyb21ncnVwcGUNCgknQ3InOiB7IG5hbWU6ICdDaHJvbScsIG1vbGFyTWFzczogNTEuOTk2LCBjb21tb25PeGlkZTogJ0NyMk8zJywgZ3JvdXA6IDYsIGF0b21pY051bWJlcjogMjQgfSwNCgknTW8nOiB7IG5hbWU6ICdNb2x5YmTDpG4nLCBtb2xhck1hc3M6IDk1Ljk1LCBjb21tb25PeGlkZTogJ01vTzMnLCBncm91cDogNiwgYXRvbWljTnVtYmVyOiA0MiB9LA0KCSdXJzogeyBuYW1lOiAnV29sZnJhbScsIG1vbGFyTWFzczogMTgzLjg0LCBjb21tb25PeGlkZTogJ1dPMycsIGdyb3VwOiA2LCBhdG9taWNOdW1iZXI6IDc0IH0sDQoNCgkvLyBHcnVwcGUgNzogTWFuZ2FuZ3J1cHBlDQoJJ01uJzogeyBuYW1lOiAnTWFuZ2FuJywgbW9sYXJNYXNzOiA1NC45MzgsIGNvbW1vbk94aWRlOiAnTW5PJywgZ3JvdXA6IDcsIGF0b21pY051bWJlcjogMjUgfSwNCgknUmUnOiB7IG5hbWU6ICdSaGVuaXVtJywgbW9sYXJNYXNzOiAxODYuMjA3LCBjb21tb25PeGlkZTogJ1JlMk83JywgZ3JvdXA6IDcsIGF0b21pY051bWJlcjogNzUgfSwNCg0KCS8vIEdydXBwZSA4OiBFaXNlbmdydXBwZQ0KCSdGZSc6IHsgbmFtZTogJ0Vpc2VuJywgbW9sYXJNYXNzOiA1NS44NDUsIGNvbW1vbk94aWRlOiAnRmUyTzMnLCBncm91cDogOCwgYXRvbWljTnVtYmVyOiAyNiB9LA0KCSdSdSc6IHsgbmFtZTogJ1J1dGhlbml1bScsIG1vbGFyTWFzczogMTAxLjA3LCBjb21tb25PeGlkZTogJ1J1TzInLCBncm91cDogOCwgYXRvbWljTnVtYmVyOiA0NCB9LA0KCSdPcyc6IHsgbmFtZTogJ09zbWl1bScsIG1vbGFyTWFzczogMTkwLjIzLCBjb21tb25PeGlkZTogJ09zTzQnLCBncm91cDogOCwgYXRvbWljTnVtYmVyOiA3NiB9LA0KDQoJLy8gR3J1cHBlIDk6IEtvYmFsdGdydXBwZQ0KCSdDbyc6IHsgbmFtZTogJ0tvYmFsdCcsIG1vbGFyTWFzczogNTguOTMzLCBjb21tb25PeGlkZTogJ0NvTycsIGdyb3VwOiA5LCBhdG9taWNOdW1iZXI6IDI3IH0sDQoJJ1JoJzogeyBuYW1lOiAnUmhvZGl1bScsIG1vbGFyTWFzczogMTAyLjkwNiwgY29tbW9uT3hpZGU6ICdSaDJPMycsIGdyb3VwOiA5LCBhdG9taWNOdW1iZXI6IDQ1IH0sDQoJJ0lyJzogeyBuYW1lOiAnSXJpZGl1bScsIG1vbGFyTWFzczogMTkyLjIxNywgY29tbW9uT3hpZGU6ICdJcjJPMycsIGdyb3VwOiA5LCBhdG9taWNOdW1iZXI6IDc3IH0sDQoNCgkvLyBHcnVwcGUgMTA6IE5pY2tlbGdydXBwZQ0KCSdOaSc6IHsgbmFtZTogJ05pY2tlbCcsIG1vbGFyTWFzczogNTguNjkzLCBjb21tb25PeGlkZTogJ05pTycsIGdyb3VwOiAxMCwgYXRvbWljTnVtYmVyOiAyOCB9LA0KCSdQZCc6IHsgbmFtZTogJ1BhbGxhZGl1bScsIG1vbGFyTWFzczogMTA2LjQyLCBjb21tb25PeGlkZTogJ1BkTycsIGdyb3VwOiAxMCwgYXRvbWljTnVtYmVyOiA0NiB9LA0KCSdQdCc6IHsgbmFtZTogJ1BsYXRpbicsIG1vbGFyTWFzczogMTk1LjA4NCwgY29tbW9uT3hpZGU6ICdQdE8yJywgZ3JvdXA6IDEwLCBhdG9taWNOdW1iZXI6IDc4IH0sDQoNCgkvLyBHcnVwcGUgMTE6IEt1cGZlcmdydXBwZQ0KCSdDdSc6IHsgbmFtZTogJ0t1cGZlcicsIG1vbGFyTWFzczogNjMuNTQ2LCBjb21tb25PeGlkZTogJ0N1TycsIGdyb3VwOiAxMSwgYXRvbWljTnVtYmVyOiAyOSB9LA0KCSdBZyc6IHsgbmFtZTogJ1NpbGJlcicsIG1vbGFyTWFzczogMTA3Ljg2OCwgY29tbW9uT3hpZGU6ICdBZzJPJywgZ3JvdXA6IDExLCBhdG9taWNOdW1iZXI6IDQ3IH0sDQoJJ0F1JzogeyBuYW1lOiAnR29sZCcsIG1vbGFyTWFzczogMTk2Ljk2NywgY29tbW9uT3hpZGU6ICdBdTJPMycsIGdyb3VwOiAxMSwgYXRvbWljTnVtYmVyOiA3OSB9LA0KDQoJLy8gR3J1cHBlIDEyOiBaaW5rZ3J1cHBlDQoJJ1puJzogeyBuYW1lOiAnWmluaycsIG1vbGFyTWFzczogNjUuMzgsIGNvbW1vbk94aWRlOiAnWm5PJywgZ3JvdXA6IDEyLCBhdG9taWNOdW1iZXI6IDMwIH0sDQoJJ0NkJzogeyBuYW1lOiAnQ2FkbWl1bScsIG1vbGFyTWFzczogMTEyLjQxNCwgY29tbW9uT3hpZGU6ICdDZE8nLCBncm91cDogMTIsIGF0b21pY051bWJlcjogNDggfSwNCgknSGcnOiB7IG5hbWU6ICdRdWVja3NpbGJlcicsIG1vbGFyTWFzczogMjAwLjU5MiwgY29tbW9uT3hpZGU6ICdIZ08nLCBncm91cDogMTIsIGF0b21pY051bWJlcjogODAgfSwNCg0KCS8vIEdydXBwZSAxMzogQm9yZ3J1cHBlDQoJJ0InOiB7IG5hbWU6ICdCb3InLCBtb2xhck1hc3M6IDEwLjgxLCBjb21tb25PeGlkZTogJ0IyTzMnLCBncm91cDogMTMsIGF0b21pY051bWJlcjogNSB9LA0KCSdBbCc6IHsgbmFtZTogJ0FsdW1pbml1bScsIG1vbGFyTWFzczogMjYuOTgyLCBjb21tb25PeGlkZTogJ0FsMk8zJywgZ3JvdXA6IDEzLCBhdG9taWNOdW1iZXI6IDEzIH0sDQoJJ0dhJzogeyBuYW1lOiAnR2FsbGl1bScsIG1vbGFyTWFzczogNjkuNzIzLCBjb21tb25PeGlkZTogJ0dhMk8zJywgZ3JvdXA6IDEzLCBhdG9taWNOdW1iZXI6IDMxIH0sDQoJJ0luJzogeyBuYW1lOiAnSW5kaXVtJywgbW9sYXJNYXNzOiAxMTQuODE4LCBjb21tb25PeGlkZTogJ0luMk8zJywgZ3JvdXA6IDEzLCBhdG9taWNOdW1iZXI6IDQ5IH0sDQoJJ1RsJzogeyBuYW1lOiAnVGhhbGxpdW0nLCBtb2xhck1hc3M6IDIwNC4zOCwgY29tbW9uT3hpZGU6ICdUbDJPMycsIGdyb3VwOiAxMywgYXRvbWljTnVtYmVyOiA4MSB9LA0KDQoJLy8gR3J1cHBlIDE0OiBLb2hsZW5zdG9mZmdydXBwZQ0KCSdDJzogeyBuYW1lOiAnS29obGVuc3RvZmYnLCBtb2xhck1hc3M6IDEyLjAxMSwgY29tbW9uT3hpZGU6ICdMT0knLCBpc1ZvbGF0aWxlOiB0cnVlLCBncm91cDogMTQsIGF0b21pY051bWJlcjogNiB9LA0KCSdTaSc6IHsgbmFtZTogJ1NpbGl6aXVtJywgbW9sYXJNYXNzOiAyOC4wODUsIGNvbW1vbk94aWRlOiAnU2lPMicsIGdyb3VwOiAxNCwgYXRvbWljTnVtYmVyOiAxNCB9LA0KCSdHZSc6IHsgbmFtZTogJ0dlcm1hbml1bScsIG1vbGFyTWFzczogNzIuNjMwLCBjb21tb25PeGlkZTogJ0dlTzInLCBncm91cDogMTQsIGF0b21pY051bWJlcjogMzIgfSwNCgknU24nOiB7IG5hbWU6ICdaaW5uJywgbW9sYXJNYXNzOiAxMTguNzEwLCBjb21tb25PeGlkZTogJ1NuTzInLCBncm91cDogMTQsIGF0b21pY051bWJlcjogNTAgfSwNCgknUGInOiB7IG5hbWU6ICdCbGVpJywgbW9sYXJNYXNzOiAyMDcuMiwgY29tbW9uT3hpZGU6ICdQYk8nLCBncm91cDogMTQsIGF0b21pY051bWJlcjogODIgfSwNCg0KCS8vIEdydXBwZSAxNTogU3RpY2tzdG9mZmdydXBwZQ0KCSdOJzogeyBuYW1lOiAnU3RpY2tzdG9mZicsIG1vbGFyTWFzczogMTQuMDA3LCBjb21tb25PeGlkZTogJ0xPSScsIGlzVm9sYXRpbGU6IHRydWUsIGdyb3VwOiAxNSwgYXRvbWljTnVtYmVyOiA3IH0sDQoJJ1AnOiB7IG5hbWU6ICdQaG9zcGhvcicsIG1vbGFyTWFzczogMzAuOTc0LCBjb21tb25PeGlkZTogJ1AyTzUnLCBncm91cDogMTUsIGF0b21pY051bWJlcjogMTUgfSwNCgknQXMnOiB7IG5hbWU6ICdBcnNlbicsIG1vbGFyTWFzczogNzQuOTIyLCBjb21tb25PeGlkZTogJ0FzMk8zJywgZ3JvdXA6IDE1LCBhdG9taWNOdW1iZXI6IDMzIH0sDQoJJ1NiJzogeyBuYW1lOiAnQW50aW1vbicsIG1vbGFyTWFzczogMTIxLjc2MCwgY29tbW9uT3hpZGU6ICdTYjJPMycsIGdyb3VwOiAxNSwgYXRvbWljTnVtYmVyOiA1MSB9LA0KCSdCaSc6IHsgbmFtZTogJ0Jpc211dCcsIG1vbGFyTWFzczogMjA4Ljk4MCwgY29tbW9uT3hpZGU6ICdCaTJPMycsIGdyb3VwOiAxNSwgYXRvbWljTnVtYmVyOiA4MyB9LA0KDQoJLy8gR3J1cHBlIDE2OiBDaGFsa29nZW5lDQoJJ08nOiB7IG5hbWU6ICdTYXVlcnN0b2ZmJywgbW9sYXJNYXNzOiAxNS45OTksIGNvbW1vbk94aWRlOiBudWxsLCBncm91cDogMTYsIGF0b21pY051bWJlcjogOCB9LA0KCSdTJzogeyBuYW1lOiAnU2Nod2VmZWwnLCBtb2xhck1hc3M6IDMyLjA2LCBjb21tb25PeGlkZTogJ0xPSScsIGlzVm9sYXRpbGU6IHRydWUsIGdyb3VwOiAxNiwgYXRvbWljTnVtYmVyOiAxNiB9LA0KCSdTZSc6IHsgbmFtZTogJ1NlbGVuJywgbW9sYXJNYXNzOiA3OC45NzEsIGNvbW1vbk94aWRlOiAnU2VPMicsIGdyb3VwOiAxNiwgYXRvbWljTnVtYmVyOiAzNCB9LA0KCSdUZSc6IHsgbmFtZTogJ1RlbGx1cicsIG1vbGFyTWFzczogMTI3LjYwLCBjb21tb25PeGlkZTogJ1RlTzInLCBncm91cDogMTYsIGF0b21pY051bWJlcjogNTIgfSwNCg0KCS8vIEdydXBwZSAxNzogSGFsb2dlbmUNCgknRic6IHsgbmFtZTogJ0ZsdW9yJywgbW9sYXJNYXNzOiAxOC45OTgsIGNvbW1vbk94aWRlOiAnTE9JJywgaXNWb2xhdGlsZTogdHJ1ZSwgZ3JvdXA6IDE3LCBhdG9taWNOdW1iZXI6IDkgfSwNCgknQ2wnOiB7IG5hbWU6ICdDaGxvcicsIG1vbGFyTWFzczogMzUuNDUsIGNvbW1vbk94aWRlOiAnTE9JJywgaXNWb2xhdGlsZTogdHJ1ZSwgZ3JvdXA6IDE3LCBhdG9taWNOdW1iZXI6IDE3IH0sDQoJJ0JyJzogeyBuYW1lOiAnQnJvbScsIG1vbGFyTWFzczogNzkuOTA0LCBjb21tb25PeGlkZTogJ0xPSScsIGlzVm9sYXRpbGU6IHRydWUsIGdyb3VwOiAxNywgYXRvbWljTnVtYmVyOiAzNSB9LA0KCSdJJzogeyBuYW1lOiAnSW9kJywgbW9sYXJNYXNzOiAxMjYuOTA0LCBjb21tb25PeGlkZTogJ0xPSScsIGlzVm9sYXRpbGU6IHRydWUsIGdyb3VwOiAxNywgYXRvbWljTnVtYmVyOiA1MyB9LA0KDQoJLy8gR3J1cHBlIDE4OiBFZGVsZ2FzZSAobm9ybWFsZXJ3ZWlzZSBuaWNodCBpbiBPeGlkZW4pDQoJJ0hlJzogeyBuYW1lOiAnSGVsaXVtJywgbW9sYXJNYXNzOiA0LjAwMywgY29tbW9uT3hpZGU6ICdMT0knLCBpc1ZvbGF0aWxlOiB0cnVlLCBncm91cDogMTgsIGF0b21pY051bWJlcjogMiB9LA0KCSdOZSc6IHsgbmFtZTogJ05lb24nLCBtb2xhck1hc3M6IDIwLjE4MCwgY29tbW9uT3hpZGU6ICdMT0knLCBpc1ZvbGF0aWxlOiB0cnVlLCBncm91cDogMTgsIGF0b21pY051bWJlcjogMTAgfSwNCgknQXInOiB7IG5hbWU6ICdBcmdvbicsIG1vbGFyTWFzczogMzkuOTQ4LCBjb21tb25PeGlkZTogJ0xPSScsIGlzVm9sYXRpbGU6IHRydWUsIGdyb3VwOiAxOCwgYXRvbWljTnVtYmVyOiAxOCB9LA0KCSdLcic6IHsgbmFtZTogJ0tyeXB0b24nLCBtb2xhck1hc3M6IDgzLjc5OCwgY29tbW9uT3hpZGU6ICdMT0knLCBpc1ZvbGF0aWxlOiB0cnVlLCBncm91cDogMTgsIGF0b21pY051bWJlcjogMzYgfSwNCgknWGUnOiB7IG5hbWU6ICdYZW5vbicsIG1vbGFyTWFzczogMTMxLjI5MywgY29tbW9uT3hpZGU6ICdMT0knLCBpc1ZvbGF0aWxlOiB0cnVlLCBncm91cDogMTgsIGF0b21pY051bWJlcjogNTQgfSwNCg0KCS8vIExhbnRoYW5vaWRlDQoJJ0xhJzogeyBuYW1lOiAnTGFudGhhbicsIG1vbGFyTWFzczogMTM4LjkwNSwgY29tbW9uT3hpZGU6ICdMYTJPMycsIGdyb3VwOiAnTGFudGhhbm9pZGUnLCBhdG9taWNOdW1iZXI6IDU3IH0sDQoJJ0NlJzogeyBuYW1lOiAnQ2VyJywgbW9sYXJNYXNzOiAxNDAuMTE2LCBjb21tb25PeGlkZTogJ0NlTzInLCBncm91cDogJ0xhbnRoYW5vaWRlJywgYXRvbWljTnVtYmVyOiA1OCB9LA0KCSdQcic6IHsgbmFtZTogJ1ByYXNlb2R5bScsIG1vbGFyTWFzczogMTQwLjkwOCwgY29tbW9uT3hpZGU6ICdQcjJPMycsIGdyb3VwOiAnTGFudGhhbm9pZGUnLCBhdG9taWNOdW1iZXI6IDU5IH0sDQoJJ05kJzogeyBuYW1lOiAnTmVvZHltJywgbW9sYXJNYXNzOiAxNDQuMjQyLCBjb21tb25PeGlkZTogJ05kMk8zJywgZ3JvdXA6ICdMYW50aGFub2lkZScsIGF0b21pY051bWJlcjogNjAgfSwNCgknU20nOiB7IG5hbWU6ICdTYW1hcml1bScsIG1vbGFyTWFzczogMTUwLjM2LCBjb21tb25PeGlkZTogJ1NtMk8zJywgZ3JvdXA6ICdMYW50aGFub2lkZScsIGF0b21pY051bWJlcjogNjIgfSwNCgknRXUnOiB7IG5hbWU6ICdFdXJvcGl1bScsIG1vbGFyTWFzczogMTUxLjk2NCwgY29tbW9uT3hpZGU6ICdFdTJPMycsIGdyb3VwOiAnTGFudGhhbm9pZGUnLCBhdG9taWNOdW1iZXI6IDYzIH0sDQoJJ0dkJzogeyBuYW1lOiAnR2Fkb2xpbml1bScsIG1vbGFyTWFzczogMTU3LjI1LCBjb21tb25PeGlkZTogJ0dkMk8zJywgZ3JvdXA6ICdMYW50aGFub2lkZScsIGF0b21pY051bWJlcjogNjQgfSwNCgknVGInOiB7IG5hbWU6ICdUZXJiaXVtJywgbW9sYXJNYXNzOiAxNTguOTI1LCBjb21tb25PeGlkZTogJ1RiMk8zJywgZ3JvdXA6ICdMYW50aGFub2lkZScsIGF0b21pY051bWJlcjogNjUgfSwNCgknRHknOiB7IG5hbWU6ICdEeXNwcm9zaXVtJywgbW9sYXJNYXNzOiAxNjIuNTAwLCBjb21tb25PeGlkZTogJ0R5Mk8zJywgZ3JvdXA6ICdMYW50aGFub2lkZScsIGF0b21pY051bWJlcjogNjYgfSwNCgknSG8nOiB7IG5hbWU6ICdIb2xtaXVtJywgbW9sYXJNYXNzOiAxNjQuOTMwLCBjb21tb25PeGlkZTogJ0hvMk8zJywgZ3JvdXA6ICdMYW50aGFub2lkZScsIGF0b21pY051bWJlcjogNjcgfSwNCgknRXInOiB7IG5hbWU6ICdFcmJpdW0nLCBtb2xhck1hc3M6IDE2Ny4yNTksIGNvbW1vbk94aWRlOiAnRXIyTzMnLCBncm91cDogJ0xhbnRoYW5vaWRlJywgYXRvbWljTnVtYmVyOiA2OCB9LA0KCSdUbSc6IHsgbmFtZTogJ1RodWxpdW0nLCBtb2xhck1hc3M6IDE2OC45MzQsIGNvbW1vbk94aWRlOiAnVG0yTzMnLCBncm91cDogJ0xhbnRoYW5vaWRlJywgYXRvbWljTnVtYmVyOiA2OSB9LA0KCSdZYic6IHsgbmFtZTogJ1l0dGVyYml1bScsIG1vbGFyTWFzczogMTczLjA0NSwgY29tbW9uT3hpZGU6ICdZYjJPMycsIGdyb3VwOiAnTGFudGhhbm9pZGUnLCBhdG9taWNOdW1iZXI6IDcwIH0sDQoJJ0x1JzogeyBuYW1lOiAnTHV0ZXRpdW0nLCBtb2xhck1hc3M6IDE3NC45NjcsIGNvbW1vbk94aWRlOiAnTHUyTzMnLCBncm91cDogJ0xhbnRoYW5vaWRlJywgYXRvbWljTnVtYmVyOiA3MSB9DQp9Ow0KDQovLyBHcnVwcGVuYmV6ZWljaG51bmdlbiBmw7xyIERyb3Bkb3duDQpjb25zdCBncm91cE5hbWVzID0gew0KCTE6ICdHcnVwcGUgMSAtIEFsa2FsaW1ldGFsbGUnLA0KCTI6ICdHcnVwcGUgMiAtIEVyZGFsa2FsaW1ldGFsbGUnLA0KCTM6ICdHcnVwcGUgMyAtIFNjYW5kaXVtZ3J1cHBlJywNCgk0OiAnR3J1cHBlIDQgLSBUaXRhbmdydXBwZScsDQoJNTogJ0dydXBwZSA1IC0gVmFuYWRpdW1ncnVwcGUnLA0KCTY6ICdHcnVwcGUgNiAtIENocm9tZ3J1cHBlJywNCgk3OiAnR3J1cHBlIDcgLSBNYW5nYW5ncnVwcGUnLA0KCTg6ICdHcnVwcGUgOCAtIEVpc2VuZ3J1cHBlJywNCgk5OiAnR3J1cHBlIDkgLSBLb2JhbHRncnVwcGUnLA0KCTEwOiAnR3J1cHBlIDEwIC0gTmlja2VsZ3J1cHBlJywNCgkxMTogJ0dydXBwZSAxMSAtIEt1cGZlcmdydXBwZScsDQoJMTI6ICdHcnVwcGUgMTIgLSBaaW5rZ3J1cHBlJywNCgkxMzogJ0dydXBwZSAxMyAtIEJvcmdydXBwZScsDQoJMTQ6ICdHcnVwcGUgMTQgLSBLb2hsZW5zdG9mZmdydXBwZScsDQoJMTU6ICdHcnVwcGUgMTUgLSBTdGlja3N0b2ZmZ3J1cHBlJywNCgkxNjogJ0dydXBwZSAxNiAtIENoYWxrb2dlbmUnLA0KCTE3OiAnR3J1cHBlIDE3IC0gSGFsb2dlbmUnLA0KCTE4OiAnR3J1cHBlIDE4IC0gRWRlbGdhc2UnLA0KCSdMYW50aGFub2lkZSc6ICdMYW50aGFub2lkZScNCn07DQoNCi8vIE94aWQtRm9ybWVsbiB1bmQgaWhyZSBNb2xtYXNzZW4NCi8vIEJlcmVjaG51bmc6IChBbnphaGxfTWV0YWxsIMOXIE1vbG1hc3NlX01ldGFsbCkgKyAoQW56YWhsX08gw5cgTW9sbWFzc2VfTykNCmNvbnN0IG94aWRlcyA9IHsNCgknTGkyTyc6IHsgbWV0YWxDb3VudDogMiwgb3h5Z2VuQ291bnQ6IDEsIG1vbGFyTWFzczogMjkuODc5IH0sDQoJJ0JlTyc6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDEsIG1vbGFyTWFzczogMjUuMDExIH0sDQoJJ0IyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDY5LjYxOCB9LA0KCSdOYTJPJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA2MS45NzkgfSwNCgknTWdPJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA0MC4zMDQgfSwNCgknQWwyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDEwMS45NjEgfSwNCgknU2lPMic6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDIsIG1vbGFyTWFzczogNjAuMDgzIH0sDQoJJ1AyTzUnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiA1LCBtb2xhck1hc3M6IDE0MS45NDUgfSwNCgknSzJPJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA5NC4xOTYgfSwNCgknQ2FPJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA1Ni4wNzcgfSwNCgknU2MyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDEzNy45MDkgfSwNCgknVGlPMic6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDIsIG1vbGFyTWFzczogNzkuODY1IH0sDQoJJ1YyTzUnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiA1LCBtb2xhck1hc3M6IDE4MS44ODAgfSwNCgknQ3IyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDE1MS45ODkgfSwNCgknTW5PJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA3MC45MzcgfSwNCgknRmUyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDE1OS42ODcgfSwNCgknQ29PJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA3NC45MzIgfSwNCgknTmlPJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA3NC42OTIgfSwNCgknQ3VPJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA3OS41NDUgfSwNCgknWm5PJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiA4MS4zNzkgfSwNCgknR2EyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDE4Ny40NDMgfSwNCgknR2VPMic6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDIsIG1vbGFyTWFzczogMTA0LjYyOCB9LA0KCSdBczJPMyc6IHsgbWV0YWxDb3VudDogMiwgb3h5Z2VuQ291bnQ6IDMsIG1vbGFyTWFzczogMTk3Ljg0MSB9LA0KCSdTZU8yJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMiwgbW9sYXJNYXNzOiAxMTAuOTY5IH0sDQoJJ1JiMk8nOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAxLCBtb2xhck1hc3M6IDE4Ni45MzUgfSwNCgknU3JPJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiAxMDMuNjE5IH0sDQoJJ1kyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDIyNS44MDkgfSwNCgknWnJPMic6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDIsIG1vbGFyTWFzczogMTIzLjIyMiB9LA0KCSdOYjJPNSc6IHsgbWV0YWxDb3VudDogMiwgb3h5Z2VuQ291bnQ6IDUsIG1vbGFyTWFzczogMjY1LjgxMCB9LA0KCSdNb08zJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAxNDMuOTQ3IH0sDQoJJ1J1TzInOiB7IG1ldGFsQ291bnQ6IDEsIG94eWdlbkNvdW50OiAyLCBtb2xhck1hc3M6IDEzMy4wNjggfSwNCgknUmgyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDI1My44MDkgfSwNCgknUGRPJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiAxMjIuNDE5IH0sDQoJJ0FnMk8nOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAxLCBtb2xhck1hc3M6IDIzMS43MzUgfSwNCgknQ2RPJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiAxMjguNDEzIH0sDQoJJ0luMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAyNzcuNjMzIH0sDQoJJ1NuTzInOiB7IG1ldGFsQ291bnQ6IDEsIG94eWdlbkNvdW50OiAyLCBtb2xhck1hc3M6IDE1MC43MDggfSwNCgknU2IyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDI5MS41MTcgfSwNCgknVGVPMic6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDIsIG1vbGFyTWFzczogMTU5LjU5OCB9LA0KCSdDczJPJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiAyODEuODA5IH0sDQoJJ0JhTyc6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDEsIG1vbGFyTWFzczogMTUzLjMyNiB9LA0KCSdMYTJPMyc6IHsgbWV0YWxDb3VudDogMiwgb3h5Z2VuQ291bnQ6IDMsIG1vbGFyTWFzczogMzI1LjgwNyB9LA0KCSdDZU8yJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMiwgbW9sYXJNYXNzOiAxNzIuMTE0IH0sDQoJJ1ByMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzMjkuODEzIH0sDQoJJ05kMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzMzYuNDgxIH0sDQoJJ1NtMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzNDguNzE3IH0sDQoJJ0V1Mk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzNTEuOTI1IH0sDQoJJ0dkMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzNjIuNDk3IH0sDQoJJ1RiMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzNjUuODQ3IH0sDQoJJ0R5Mk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzNzIuOTk3IH0sDQoJJ0hvMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzNzcuODU3IH0sDQoJJ0VyMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzODIuNTE1IH0sDQoJJ1RtMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzODUuODY1IH0sDQoJJ1liMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzOTQuMDg3IH0sDQoJJ0x1Mk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAzOTcuOTMxIH0sDQoJJ0hmTzInOiB7IG1ldGFsQ291bnQ6IDEsIG94eWdlbkNvdW50OiAyLCBtb2xhck1hc3M6IDIxMC40ODggfSwNCgknVGEyTzUnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiA1LCBtb2xhck1hc3M6IDQ0MS44OTMgfSwNCgknV08zJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiAyMzEuODM3IH0sDQoJJ1JlMk83JzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogNywgbW9sYXJNYXNzOiA0ODQuNDA3IH0sDQoJJ09zTzQnOiB7IG1ldGFsQ291bnQ6IDEsIG94eWdlbkNvdW50OiA0LCBtb2xhck1hc3M6IDI1NC4yMjYgfSwNCgknSXIyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDQzMi40MzEgfSwNCgknUHRPMic6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDIsIG1vbGFyTWFzczogMjI3LjA4MiB9LA0KCSdBdTJPMyc6IHsgbWV0YWxDb3VudDogMiwgb3h5Z2VuQ291bnQ6IDMsIG1vbGFyTWFzczogNDQxLjkzMSB9LA0KCSdIZ08nOiB7IG1ldGFsQ291bnQ6IDEsIG94eWdlbkNvdW50OiAxLCBtb2xhck1hc3M6IDIxNi41OTEgfSwNCgknVGwyTzMnOiB7IG1ldGFsQ291bnQ6IDIsIG94eWdlbkNvdW50OiAzLCBtb2xhck1hc3M6IDQ1Ni43NTcgfSwNCgknUGJPJzogeyBtZXRhbENvdW50OiAxLCBveHlnZW5Db3VudDogMSwgbW9sYXJNYXNzOiAyMjMuMTk5IH0sDQoJJ0JpMk8zJzogeyBtZXRhbENvdW50OiAyLCBveHlnZW5Db3VudDogMywgbW9sYXJNYXNzOiA0NjUuOTU3IH0sDQoJJ0xPSSc6IHsgbWV0YWxDb3VudDogMSwgb3h5Z2VuQ291bnQ6IDAsIG1vbGFyTWFzczogMSB9DQp9Ow0KDQpsZXQgcm93Q291bnRlciA9IDA7DQpsZXQgY2xpcGJvYXJkRGF0YSA9IG51bGw7DQoNCmZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRTZWxlY3QoKSB7DQoJY29uc3Qgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2VsZWN0Jyk7DQoJc2VsZWN0LmNsYXNzTmFtZSA9ICdlbGVtZW50LXNlbGVjdCc7DQoNCgljb25zdCBkZWZhdWx0T3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQoJZGVmYXVsdE9wdGlvbi52YWx1ZSA9ICcnOw0KCWRlZmF1bHRPcHRpb24udGV4dENvbnRlbnQgPSAnLS0gRWxlbWVudCB3w6RobGVuIC0tJzsNCglzZWxlY3QuYXBwZW5kQ2hpbGQoZGVmYXVsdE9wdGlvbik7DQoNCgkvLyBHcnVwcGllcmUgRWxlbWVudGUgbmFjaCBQU0UtR3J1cHBlbg0KCWNvbnN0IGdyb3VwZWRFbGVtZW50cyA9IHt9Ow0KCWZvciAoY29uc3Qgc3ltYm9sIGluIGVsZW1lbnRzKSB7DQoJCWNvbnN0IGVsZW1lbnQgPSBlbGVtZW50c1tzeW1ib2xdOw0KCQkvLyBaZWlnZSBhbGxlIEVsZW1lbnRlIGVpbnNjaGxpZcOfbGljaCBTYXVlcnN0b2ZmDQoJCWNvbnN0IGdyb3VwID0gZWxlbWVudC5ncm91cDsNCgkJaWYgKCFncm91cGVkRWxlbWVudHNbZ3JvdXBdKSB7DQoJCQlncm91cGVkRWxlbWVudHNbZ3JvdXBdID0gW107DQoJCX0NCgkJZ3JvdXBlZEVsZW1lbnRzW2dyb3VwXS5wdXNoKHsNCgkJCXN5bWJvbDogc3ltYm9sLA0KCQkJbmFtZTogZWxlbWVudC5uYW1lLA0KCQkJYXRvbWljTnVtYmVyOiBlbGVtZW50LmF0b21pY051bWJlcg0KCQl9KTsNCgl9DQoNCgkvLyBTb3J0aWVyZSBHcnVwcGVuIGluIGxvZ2lzY2hlciBSZWloZW5mb2xnZQ0KCWNvbnN0IGdyb3VwT3JkZXIgPSBbMSwgMiwgMTMsIDE0LCAxNSwgMTYsIDE3LCAxOCwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTAsIDExLCAxMiwgJ0xhbnRoYW5vaWRlJ107DQoNCglmb3IgKGNvbnN0IGdyb3VwS2V5IG9mIGdyb3VwT3JkZXIpIHsNCgkJaWYgKGdyb3VwZWRFbGVtZW50c1tncm91cEtleV0pIHsNCgkJCS8vIFNvcnRpZXJlIEVsZW1lbnRlIGlubmVyaGFsYiBkZXIgR3J1cHBlIG5hY2ggT3JkbnVuZ3N6YWhsDQoJCQlncm91cGVkRWxlbWVudHNbZ3JvdXBLZXldLnNvcnQoKGEsIGIpID0+IGEuYXRvbWljTnVtYmVyIC0gYi5hdG9taWNOdW1iZXIpOw0KDQoJCQkvLyBFcnN0ZWxsZSBvcHRncm91cCBmw7xyIEdydXBwZQ0KCQkJY29uc3Qgb3B0Z3JvdXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRncm91cCcpOw0KCQkJb3B0Z3JvdXAubGFiZWwgPSBncm91cE5hbWVzW2dyb3VwS2V5XTsNCg0KCQkJZm9yIChjb25zdCBlbGVtZW50IG9mIGdyb3VwZWRFbGVtZW50c1tncm91cEtleV0pIHsNCgkJCQljb25zdCBvcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdvcHRpb24nKTsNCgkJCQlvcHRpb24udmFsdWUgPSBlbGVtZW50LnN5bWJvbDsNCgkJCQlvcHRpb24udGV4dENvbnRlbnQgPSBgJHtlbGVtZW50LnN5bWJvbH0gKCR7ZWxlbWVudC5hdG9taWNOdW1iZXJ9KSAtICR7ZWxlbWVudC5uYW1lfWA7DQoJCQkJb3B0Z3JvdXAuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCgkJCX0NCg0KCQkJc2VsZWN0LmFwcGVuZENoaWxkKG9wdGdyb3VwKTsNCgkJfQ0KCX0NCg0KCXJldHVybiBzZWxlY3Q7DQp9DQoNCmZ1bmN0aW9uIGFkZEVsZW1lbnRSb3coKSB7DQoJY29uc3QgY29udGFpbmVyID0gZ2V0RWxlbWVudEJ5SWQoJ2VsZW1lbnRJbnB1dHMnKTsNCgljb25zdCByb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsNCglyb3cuY2xhc3NOYW1lID0gJ2VsZW1lbnQtcm93JzsNCglyb3cuaWQgPSBgcm93LSR7cm93Q291bnRlcn1gOw0KDQoJY29uc3Qgc2VsZWN0ID0gY3JlYXRlRWxlbWVudFNlbGVjdCgpOw0KCXNlbGVjdC5pZCA9IGBlbGVtZW50LSR7cm93Q291bnRlcn1gOw0KCXNlbGVjdC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCBjYWxjdWxhdGVPeGlkZXMpOw0KDQoJY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KCWlucHV0LnR5cGUgPSAndGV4dCc7DQoJaW5wdXQucGxhY2Vob2xkZXIgPSAnTW9sLSUnOw0KCWlucHV0LmlkID0gYG1vbHBlcmNlbnQtJHtyb3dDb3VudGVyfWA7DQoJaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBmdW5jdGlvbihlKSB7DQoJCS8vIEVyc2V0emUgS29tbWEgZHVyY2ggUHVua3QgZsO8ciBEZXppbWFsemFobGVuDQoJCWUudGFyZ2V0LnZhbHVlID0gZS50YXJnZXQudmFsdWUucmVwbGFjZSgnLCcsICcuJyk7DQoJCWNhbGN1bGF0ZU94aWRlcygpOw0KCX0pOw0KCWlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbihlKSB7DQoJCS8vIE5vcm1hbGlzaWVyZSBkZW4gV2VydCBiZWltIFZlcmxhc3NlbiBkZXMgRmVsZGVzDQoJCWNvbnN0IHZhbCA9IHBhcnNlRmxvYXQoZS50YXJnZXQudmFsdWUpOw0KCQlpZiAoIWlzTmFOKHZhbCkpIHsNCgkJCWUudGFyZ2V0LnZhbHVlID0gdmFsLnRvRml4ZWQoMik7DQoJCX0NCgl9KTsNCg0KCWNvbnN0IHJlbW92ZUJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOw0KCXJlbW92ZUJ0bi5jbGFzc05hbWUgPSAncmVtb3ZlLWJ0bic7DQoJcmVtb3ZlQnRuLnRleHRDb250ZW50ID0gJ+KclSc7DQoJcmVtb3ZlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7DQoJCXJvdy5yZW1vdmUoKTsNCgkJY2FsY3VsYXRlT3hpZGVzKCk7DQoJfSk7DQoNCglyb3cuYXBwZW5kQ2hpbGQoc2VsZWN0KTsNCglyb3cuYXBwZW5kQ2hpbGQoaW5wdXQpOw0KCXJvdy5hcHBlbmRDaGlsZChyZW1vdmVCdG4pOw0KDQoJY29udGFpbmVyLmFwcGVuZENoaWxkKHJvdyk7DQoJcm93Q291bnRlcisrOw0KfQ0KDQpmdW5jdGlvbiBjYWxjdWxhdGVPeGlkZXMoKSB7DQoJY29uc3Qgcm93cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy5lbGVtZW50LXJvdycpOw0KCWNvbnN0IGVsZW1lbnRNb2xzID0ge307DQoJbGV0IHRvdGFsTW9sUGVyY2VudCA9IDA7DQoJbGV0IG94eWdlbk1vbElucHV0ID0gMDsNCg0KCS8vIFNhbW1sZSBhbGxlIEVpbmdhYmVuIC0gZXJzdCBhbGxlIEVsZW1lbnRlIGVyZmFzc2VuDQoJcm93cy5mb3JFYWNoKHJvdyA9PiB7DQoJCWNvbnN0IHNlbGVjdCA9IHJvdy5xdWVyeVNlbGVjdG9yKCdzZWxlY3QnKTsNCgkJY29uc3QgaW5wdXQgPSByb3cucXVlcnlTZWxlY3RvcignaW5wdXRbdHlwZT0idGV4dCJdJyk7DQoNCgkJY29uc3QgZWxlbWVudCA9IHNlbGVjdC52YWx1ZTsNCgkJY29uc3QgbW9sUGVyY2VudCA9IHBhcnNlRmxvYXQoaW5wdXQudmFsdWUpIHx8IDA7DQoNCgkJaWYgKGVsZW1lbnQgJiYgbW9sUGVyY2VudCA+IDApIHsNCgkJCWlmICghZWxlbWVudE1vbHNbZWxlbWVudF0pIHsNCgkJCQllbGVtZW50TW9sc1tlbGVtZW50XSA9IDA7DQoJCQl9DQoJCQllbGVtZW50TW9sc1tlbGVtZW50XSArPSBtb2xQZXJjZW50Ow0KCQkJdG90YWxNb2xQZXJjZW50ICs9IG1vbFBlcmNlbnQ7DQoNCgkJCS8vIFNwZWljaGVyZSBTYXVlcnN0b2ZmLUVpbmdhYmUgc2VwYXJhdA0KCQkJaWYgKGVsZW1lbnQgPT09ICdPJykgew0KCQkJCW94eWdlbk1vbElucHV0ID0gbW9sUGVyY2VudDsNCgkJCX0NCgkJfQ0KCX0pOw0KDQoJLy8gQmVyZWNobmUgYmVuw7Z0aWd0ZSBPeGlkZSB1bmQgYmVuw7Z0aWd0ZW4gU2F1ZXJzdG9mZg0KCWNvbnN0IG94aWRlRGF0YSA9IHt9Ow0KCWxldCBveHlnZW5OZWVkZWRNb2wgPSAwOw0KCWxldCB2b2xhdGlsZUVsZW1lbnRXZWlnaHQgPSAwOw0KDQoJZm9yIChjb25zdCBlbGVtZW50IGluIGVsZW1lbnRNb2xzKSB7DQoJCWlmIChlbGVtZW50ID09PSAnTycpIGNvbnRpbnVlOyAvLyBTYXVlcnN0b2ZmIHNlcGFyYXQgYmVoYW5kZWxuDQoNCgkJY29uc3QgZWxlbWVudERhdGEgPSBlbGVtZW50c1tlbGVtZW50XTsNCgkJY29uc3QgbW9sUGVyY2VudCA9IGVsZW1lbnRNb2xzW2VsZW1lbnRdOw0KCQljb25zdCBveGlkZSA9IGVsZW1lbnREYXRhLmNvbW1vbk94aWRlOw0KDQoJCS8vIFByw7xmZSBvYiBmbMO8Y2h0aWdlcyBFbGVtZW50IChMT0kpDQoJCWlmIChlbGVtZW50RGF0YS5pc1ZvbGF0aWxlKSB7DQoJCQkvLyBGbMO8Y2h0aWdlIEVsZW1lbnRlOiBCZXJlY2huZSBpaHIgR2V3aWNodA0KCQkJdm9sYXRpbGVFbGVtZW50V2VpZ2h0ICs9IG1vbFBlcmNlbnQgKiBlbGVtZW50RGF0YS5tb2xhck1hc3M7DQoNCgkJCS8vIEVpbmlnZSBmbMO8Y2h0aWdlIEVsZW1lbnRlIGJlbsO2dGlnZW4gU2F1ZXJzdG9mZiBiZWltIEVudHdlaWNoZW4NCgkJCS8vIEMgLT4gQ08yIGJlbsO2dGlndCAyIE8gcHJvIEMNCgkJCS8vIFMgLT4gU08yL1NPMyBiZW7DtnRpZ3QgMi0zIE8gcHJvIFMgKG5laG1lbiB3aXIgMi41IGltIER1cmNoc2Nobml0dCkNCgkJCWlmIChlbGVtZW50ID09PSAnQycpIHsNCgkJCQlveHlnZW5OZWVkZWRNb2wgKz0gbW9sUGVyY2VudCAqIDI7IC8vIENPMg0KCQkJfSBlbHNlIGlmIChlbGVtZW50ID09PSAnUycpIHsNCgkJCQlveHlnZW5OZWVkZWRNb2wgKz0gbW9sUGVyY2VudCAqIDIuNTsgLy8gU08yL1NPMyBEdXJjaHNjaG5pdHQNCgkJCX0gZWxzZSBpZiAoZWxlbWVudCA9PT0gJ04nKSB7DQoJCQkJb3h5Z2VuTmVlZGVkTW9sICs9IG1vbFBlcmNlbnQgKiAxLjU7IC8vIE5PL05PMiBEdXJjaHNjaG5pdHQNCgkJCX0NCgkJCS8vIEgsIEYsIENsIGJlbsO2dGlnZW4ga2VpbmVuIHp1c8OkdHpsaWNoZW4gU2F1ZXJzdG9mZiB6dW0gRW50d2VpY2hlbg0KDQoJCX0gZWxzZSB7DQoJCQljb25zdCBveGlkZUluZm8gPSBveGlkZXNbb3hpZGVdOw0KDQoJCQkvLyBCZXJlY2huZSBkaWUgTW9sIGRlcyBPeGlkcw0KCQkJY29uc3QgbW9sT3hpZGUgPSBtb2xQZXJjZW50IC8gb3hpZGVJbmZvLm1ldGFsQ291bnQ7DQoNCgkJCWlmICghb3hpZGVEYXRhW294aWRlXSkgew0KCQkJCW94aWRlRGF0YVtveGlkZV0gPSAwOw0KCQkJfQ0KCQkJb3hpZGVEYXRhW294aWRlXSArPSBtb2xPeGlkZTsNCg0KCQkJLy8gQmVyZWNobmUgYmVuw7Z0aWd0ZW4gU2F1ZXJzdG9mZiBmw7xyIGRpZXNlcyBPeGlkDQoJCQlveHlnZW5OZWVkZWRNb2wgKz0gbW9sT3hpZGUgKiBveGlkZUluZm8ub3h5Z2VuQ291bnQ7DQoJCX0NCgl9DQoNCgkvLyBTYXVlcnN0b2ZmYmlsYW56IGJlcmVjaG5lbg0KCS8vIFBvc2l0aXYgPSBTYXVlcnN0b2ZmIHdpcmQgYXVmZ2Vub21tZW4gKGZlaGx0IGluIEFuYWx5c2UpDQoJLy8gTmVnYXRpdiA9IFNhdWVyc3RvZmYgd2lyZCBhYmdlZ2ViZW4gKHp1IHZpZWwgaW4gQW5hbHlzZSkNCgljb25zdCBveHlnZW5CYWxhbmNlID0gb3h5Z2VuTmVlZGVkTW9sIC0gb3h5Z2VuTW9sSW5wdXQ7DQoJY29uc3Qgb3h5Z2VuQmFsYW5jZVdlaWdodCA9IG94eWdlbkJhbGFuY2UgKiBlbGVtZW50c1snTyddLm1vbGFyTWFzczsNCg0KCS8vIExPSSA9IEdld2ljaHQgZGVyIGZsw7xjaHRpZ2VuIEVsZW1lbnRlICsgR2V3aWNodCBkZXMgYWJnZWdlYmVuZW4vYXVmZ2Vub21tZW5lbiBTYXVlcnN0b2Zmcw0KCWxldCBsb2lXZWlnaHQgPSB2b2xhdGlsZUVsZW1lbnRXZWlnaHQgKyBveHlnZW5CYWxhbmNlV2VpZ2h0Ow0KDQoJLy8gQmVyZWNobmUgR2V3aWNodHNwcm96ZW50ZSBmw7xyIE94aWRlDQoJY29uc3Qgd2VpZ2h0RGF0YSA9IHt9Ow0KCWxldCB0b3RhbFdlaWdodCA9IGxvaVdlaWdodDsNCg0KCWZvciAoY29uc3Qgb3hpZGUgaW4gb3hpZGVEYXRhKSB7DQoJCWNvbnN0IG1vbE94aWRlID0gb3hpZGVEYXRhW294aWRlXTsNCgkJY29uc3QgbW9sYXJNYXNzID0gb3hpZGVzW294aWRlXS5tb2xhck1hc3M7DQoJCWNvbnN0IHdlaWdodCA9IG1vbE94aWRlICogbW9sYXJNYXNzOw0KCQl3ZWlnaHREYXRhW294aWRlXSA9IHdlaWdodDsNCgkJdG90YWxXZWlnaHQgKz0gd2VpZ2h0Ow0KCX0NCg0KCS8vIEbDvGdlIExPSSBoaW56dSB3ZW5uIHZvcmhhbmRlbiAoa2FubiBwb3NpdGl2IG9kZXIgbmVnYXRpdiBzZWluKQ0KCWlmIChNYXRoLmFicyhsb2lXZWlnaHQpID4gMC4wMDEpIHsNCgkJd2VpZ2h0RGF0YVsnTE9JJ10gPSBsb2lXZWlnaHQ7DQoJfQ0KDQoJLy8gTm9ybWFsaXNpZXJlIGF1ZiAxMDAlDQoJY29uc3Qgbm9ybWFsaXplZFdlaWdodHMgPSB7fTsNCglmb3IgKGNvbnN0IG94aWRlIGluIHdlaWdodERhdGEpIHsNCgkJbm9ybWFsaXplZFdlaWdodHNbb3hpZGVdID0gKHdlaWdodERhdGFbb3hpZGVdIC8gdG90YWxXZWlnaHQpICogMTAwOw0KCX0NCg0KCS8vIEFrdHVhbGlzaWVyZSBkaWUgVGFiZWxsZSBtaXQgU2F1ZXJzdG9mZmJpbGFuei1JbmZvDQoJdXBkYXRlUmVzdWx0VGFibGUobm9ybWFsaXplZFdlaWdodHMsIHRvdGFsTW9sUGVyY2VudCwgb3h5Z2VuQmFsYW5jZSwgb3h5Z2VuTW9sSW5wdXQsIG94eWdlbk5lZWRlZE1vbCk7DQp9DQoNCmZ1bmN0aW9uIHVwZGF0ZVJlc3VsdFRhYmxlKHdlaWdodHMsIHRvdGFsTW9sUGVyY2VudCwgb3h5Z2VuQmFsYW5jZSwgb3h5Z2VuSW5wdXQsIG94eWdlbk5lZWRlZCkgew0KCWNvbnN0IHRib2R5ID0gZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdFRhYmxlQm9keScpOw0KCWNvbnN0IHdhcm5pbmdEaXYgPSBnZXRFbGVtZW50QnlJZCgnd2FybmluZ0RpdicpOw0KDQoJdGJvZHkuaW5uZXJIVE1MID0gJyc7DQoNCglpZiAoT2JqZWN0LmtleXMod2VpZ2h0cykubGVuZ3RoID09PSAwKSB7DQoJCWNvbnN0IHJvdyA9IHRib2R5Lmluc2VydFJvdygpOw0KCQljb25zdCBjZWxsID0gcm93Lmluc2VydENlbGwoKTsNCgkJY2VsbC5jb2xTcGFuID0gMjsNCgkJY2VsbC5zdHlsZS50ZXh0QWxpZ24gPSAnY2VudGVyJzsNCgkJY2VsbC5zdHlsZS5jb2xvciA9ICcjOTk5JzsNCgkJY2VsbC50ZXh0Q29udGVudCA9ICdLZWluZSBEYXRlbiBlaW5nZWdlYmVuJzsNCgkJd2FybmluZ0Rpdi5pbm5lckhUTUwgPSAnJzsNCgkJcmV0dXJuOw0KCX0NCg0KCS8vIFNvcnRpZXJlIE94aWRlOiBMT0kgenVsZXR6dCwgc29uc3QgbmFjaCBHZXdpY2h0c3Byb3plbnQgKGFic3RlaWdlbmQpDQoJY29uc3Qgc29ydGVkT3hpZGVzID0gT2JqZWN0LmVudHJpZXMod2VpZ2h0cykuc29ydCgoYSwgYikgPT4gew0KCQlpZiAoYVswXSA9PT0gJ0xPSScpIHJldHVybiAxOw0KCQlpZiAoYlswXSA9PT0gJ0xPSScpIHJldHVybiAtMTsNCgkJcmV0dXJuIGJbMV0gLSBhWzFdOw0KCX0pOw0KDQoJbGV0IHRvdGFsID0gMDsNCglmb3IgKGNvbnN0IFtveGlkZSwgd2VpZ2h0XSBvZiBzb3J0ZWRPeGlkZXMpIHsNCgkJY29uc3Qgcm93ID0gdGJvZHkuaW5zZXJ0Um93KCk7DQoJCWNvbnN0IGNlbGxPeGlkZSA9IHJvdy5pbnNlcnRDZWxsKCk7DQoJCWNvbnN0IGNlbGxXZWlnaHQgPSByb3cuaW5zZXJ0Q2VsbCgpOw0KDQoJCS8vIE1hcmtpZXJlIExPSS1aZWlsZQ0KCQlpZiAob3hpZGUgPT09ICdMT0knKSB7DQoJCQlyb3cuY2xhc3NOYW1lID0gJ2xvaS1yb3cnOw0KCQl9DQoNCgkJY2VsbE94aWRlLnRleHRDb250ZW50ID0gb3hpZGU7DQoJCWNlbGxXZWlnaHQudGV4dENvbnRlbnQgPSB3ZWlnaHQudG9GaXhlZCgyKTsNCgkJY2VsbFdlaWdodC5zdHlsZS50ZXh0QWxpZ24gPSAncmlnaHQnOw0KDQoJCXRvdGFsICs9IHdlaWdodDsNCgl9DQoNCgkvLyBTdW1tZW56ZWlsZQ0KCWNvbnN0IHRvdGFsUm93ID0gdGJvZHkuaW5zZXJ0Um93KCk7DQoJdG90YWxSb3cuY2xhc3NOYW1lID0gJ3RvdGFsLXJvdyc7DQoJY29uc3QgdG90YWxDZWxsTGFiZWwgPSB0b3RhbFJvdy5pbnNlcnRDZWxsKCk7DQoJY29uc3QgdG90YWxDZWxsVmFsdWUgPSB0b3RhbFJvdy5pbnNlcnRDZWxsKCk7DQoNCgl0b3RhbENlbGxMYWJlbC50ZXh0Q29udGVudCA9ICdTdW1tZSc7DQoJdG90YWxDZWxsVmFsdWUudGV4dENvbnRlbnQgPSB0b3RhbC50b0ZpeGVkKDIpOw0KCXRvdGFsQ2VsbFZhbHVlLnN0eWxlLnRleHRBbGlnbiA9ICdyaWdodCc7DQoNCgkvLyBXYXJudW5nZW4gdW5kIEluZm9ybWF0aW9uZW4NCglsZXQgaW5mb0hUTUwgPSAnJzsNCg0KCS8vIFdhcm51bmcgd2VubiBNb2wtJSBuaWNodCAxMDAlIGVyZ2ViZW4NCglpZiAoTWF0aC5hYnModG90YWxNb2xQZXJjZW50IC0gMTAwKSA+IDAuMSkgew0KCQlpbmZvSFRNTCArPSBgDQoJCQk8ZGl2IGNsYXNzPSJ3YXJuaW5nIj4NCgkJCQk8c3Ryb25nPkhpbndlaXM6PC9zdHJvbmc+IERpZSBTdW1tZSBkZXIgTW9sLSUgYmV0csOkZ3QgJHt0b3RhbE1vbFBlcmNlbnQudG9GaXhlZCgyKX0lLg0KCQkJCUbDvHIgZWluZSB2b2xsc3TDpG5kaWdlIEFuYWx5c2Ugc29sbHRlIGRpZSBTdW1tZSAxMDAlIGJldHJhZ2VuLg0KCQkJPC9kaXY+DQoJCWA7DQoJfQ0KDQoJLy8gSW5mb3JtYXRpb25lbiB6dXIgU2F1ZXJzdG9mZmJpbGFueg0KCWlmIChveHlnZW5CYWxhbmNlICE9PSB1bmRlZmluZWQgJiYgKG94eWdlbklucHV0ID4gMCB8fCBveHlnZW5OZWVkZWQgPiAwKSkgew0KCQlsZXQgb3h5Z2VuSW5mbyA9ICc8ZGl2IGNsYXNzPSJpbmZvIj48c3Ryb25nPlNhdWVyc3RvZmZiaWxhbno6PC9zdHJvbmc+PGJyPic7DQoJCW94eWdlbkluZm8gKz0gYE8gaW4gQW5hbHlzZTogJHtveHlnZW5JbnB1dC50b0ZpeGVkKDIpfSBNb2wtJTxicj5gOw0KCQlveHlnZW5JbmZvICs9IGBPIGJlbsO2dGlndCBmw7xyIE94aWRlOiAke294eWdlbk5lZWRlZC50b0ZpeGVkKDIpfSBNb2wtJTxicj5gOw0KDQoJCWlmIChNYXRoLmFicyhveHlnZW5CYWxhbmNlKSA8IDAuMDEpIHsNCgkJCW94eWdlbkluZm8gKz0gYOKckyA8c3Ryb25nPkF1c2dlZ2xpY2hlbjwvc3Ryb25nPiAoRGlmZmVyZW56OiAke294eWdlbkJhbGFuY2UudG9GaXhlZCgyKX0gTW9sLSUpYDsNCgkJfSBlbHNlIGlmIChveHlnZW5CYWxhbmNlID4gMCkgew0KCQkJb3h5Z2VuSW5mbyArPSBg4oaRIDxzdHJvbmc+U2F1ZXJzdG9mZmF1Zm5haG1lOjwvc3Ryb25nPiAke294eWdlbkJhbGFuY2UudG9GaXhlZCgyKX0gTW9sLSUgYXVzIGRlciBVbWdlYnVuZzxicj5gOw0KCQkJb3h5Z2VuSW5mbyArPSBgKExPSSB3aXJkIHVtICR7KG94eWdlbkJhbGFuY2UgKiAxNS45OTkpLnRvRml4ZWQoMil9IGcvbW9sIGVyaMO2aHQpYDsNCgkJfSBlbHNlIHsNCgkJCW94eWdlbkluZm8gKz0gYOKGkyA8c3Ryb25nPlNhdWVyc3RvZmZhYmdhYmU6PC9zdHJvbmc+ICR7TWF0aC5hYnMob3h5Z2VuQmFsYW5jZSkudG9GaXhlZCgyKX0gTW9sLSUgd2lyZCBmcmVpZ2VzZXR6dDxicj5gOw0KCQkJb3h5Z2VuSW5mbyArPSBgKExPSSB3aXJkIHVtICR7TWF0aC5hYnMob3h5Z2VuQmFsYW5jZSAqIDE1Ljk5OSkudG9GaXhlZCgyKX0gZy9tb2wgcmVkdXppZXJ0KWA7DQoJCX0NCgkJb3h5Z2VuSW5mbyArPSAnPC9kaXY+JzsNCgkJaW5mb0hUTUwgKz0gb3h5Z2VuSW5mbzsNCgl9DQoNCgl3YXJuaW5nRGl2LmlubmVySFRNTCA9IGluZm9IVE1MOw0KfQ0KDQovLyBGdW5rdGlvbiB6dW0gTMO2c2NoZW4gYWxsZXIgRWluZ2FiZW4NCmZ1bmN0aW9uIGNsZWFyQWxsSW5wdXRzKCkgew0KCWNvbnN0IGNvbnRhaW5lciA9IGdldEVsZW1lbnRCeUlkKCdlbGVtZW50SW5wdXRzJyk7DQoJY29udGFpbmVyLmlubmVySFRNTCA9ICcnOw0KCXJvd0NvdW50ZXIgPSAwOw0KCWFkZEVsZW1lbnRSb3coKTsNCgljYWxjdWxhdGVPeGlkZXMoKTsNCn0NCg0KLy8gRnVua3Rpb24genVtIFBhcnNlbiB2b24gQ2xpcGJvYXJkLURhdGVuDQpmdW5jdGlvbiBwYXJzZUNsaXBib2FyZERhdGEodGV4dCkgew0KCWNvbnN0IGxpbmVzID0gdGV4dC50cmltKCkuc3BsaXQoJ1xuJyk7DQoJY29uc3QgcGFyc2VkRGF0YSA9IFtdOw0KDQoJZm9yIChjb25zdCBsaW5lIG9mIGxpbmVzKSB7DQoJCS8vIEVyc2V0emUgS29tbWEgZHVyY2ggUHVua3QgZsO8ciBEZXppbWFsemFobGVuDQoJCWNvbnN0IG5vcm1hbGl6ZWRMaW5lID0gbGluZS5yZXBsYWNlKC8sL2csICcuJyk7DQoNCgkJLy8gVGVpbGUgWmVpbGUgYW4gbmljaHQtYWxwaGFudW1lcmlzY2hlbiBaZWljaGVuIChhdcOfZXIgUHVua3QgZsO8ciBEZXppbWFsemFobGVuKQ0KCQljb25zdCBwYXJ0cyA9IG5vcm1hbGl6ZWRMaW5lLnNwbGl0KC9bXmEtekEtWjAtOS5dKy8pLmZpbHRlcihwID0+IHAubGVuZ3RoID4gMCk7DQoNCgkJaWYgKHBhcnRzLmxlbmd0aCA+PSAyKSB7DQoJCQkvLyBTdWNoZSBuYWNoIEVsZW1lbnRzeW1ib2wgdW5kIFphaGwNCgkJCWZvciAobGV0IGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrKSB7DQoJCQkJY29uc3QgZWxlbWVudFN5bWJvbCA9IHBhcnRzW2ldOw0KCQkJCWNvbnN0IHZhbHVlID0gcGFyc2VGbG9hdChwYXJ0c1tpICsgMV0pOw0KDQoJCQkJLy8gUHLDvGZlIG9iIGVzIGVpbiBnw7xsdGlnZXMgRWxlbWVudCBpc3QNCgkJCQlpZiAoZWxlbWVudHNbZWxlbWVudFN5bWJvbF0gJiYgIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+IDAgJiYgdmFsdWUgPD0gMTAwKSB7DQoJCQkJCXBhcnNlZERhdGEucHVzaCh7DQoJCQkJCQllbGVtZW50OiBlbGVtZW50U3ltYm9sLA0KCQkJCQkJdmFsdWU6IHZhbHVlDQoJCQkJCX0pOw0KCQkJCQlicmVhazsgLy8gTnVyIGVpbiBXZXJ0IHBybyBaZWlsZQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCg0KCXJldHVybiBwYXJzZWREYXRhOw0KfQ0KDQovLyBGdW5rdGlvbiB6dW0gw5ZmZm5lbiBkZXMgSW1wb3J0LURpYWxvZ3MNCmFzeW5jIGZ1bmN0aW9uIG9wZW5JbXBvcnREaWFsb2coKSB7DQoJdHJ5IHsNCgkJY29uc3QgdGV4dCA9IGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQucmVhZFRleHQoKTsNCgkJY29uc3QgcGFyc2VkRGF0YSA9IHBhcnNlQ2xpcGJvYXJkRGF0YSh0ZXh0KTsNCg0KCQlpZiAocGFyc2VkRGF0YS5sZW5ndGggPT09IDApIHsNCgkJCWFsZXJ0KCdLZWluZSBnw7xsdGlnZW4gRWxlbWVudC1EYXRlbiBpbiBkZXIgWndpc2NoZW5hYmxhZ2UgZ2VmdW5kZW4uXG5cbkVyd2FydGV0ZXMgRm9ybWF0OlxuRWxlbWVudCBXZXJ0ICh6LkIuICJDYSAxMi41IiBvZGVyICJGZVx0OCwzIiknKTsNCgkJCXJldHVybjsNCgkJfQ0KDQoJCS8vIFNwZWljaGVyZSBnZXBhcnN0ZSBEYXRlbg0KCQljbGlwYm9hcmREYXRhID0gcGFyc2VkRGF0YTsNCg0KCQkvLyBFcnN0ZWxsZSBWb3JzY2hhdS1UYWJlbGxlDQoJCWNvbnN0IHByZXZpZXdDb250YWluZXIgPSBnZXRFbGVtZW50QnlJZCgncHJldmlld0NvbnRhaW5lcicpOw0KCQlsZXQgdGFibGVIVE1MID0gJzx0YWJsZSBjbGFzcz0icHJldmlldy10YWJsZSI+PHRoZWFkPjx0cj48dGg+RWxlbWVudDwvdGg+PHRoPk1vbC0lPC90aD48L3RyPjwvdGhlYWQ+PHRib2R5Pic7DQoNCgkJZm9yIChjb25zdCBpdGVtIG9mIHBhcnNlZERhdGEpIHsNCgkJCWNvbnN0IGVsZW1lbnROYW1lID0gZWxlbWVudHNbaXRlbS5lbGVtZW50XS5uYW1lOw0KCQkJdGFibGVIVE1MICs9IGA8dHI+PHRkPiR7aXRlbS5lbGVtZW50fSAtICR7ZWxlbWVudE5hbWV9PC90ZD48dGQ+JHtpdGVtLnZhbHVlLnRvRml4ZWQoMil9PC90ZD48L3RyPmA7DQoJCX0NCg0KCQl0YWJsZUhUTUwgKz0gJzwvdGJvZHk+PC90YWJsZT4nOw0KCQlwcmV2aWV3Q29udGFpbmVyLmlubmVySFRNTCA9IHRhYmxlSFRNTDsNCg0KCQkvLyBaZWlnZSBNb2RhbA0KCQlnZXRFbGVtZW50QnlJZCgnaW1wb3J0TW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ2Jsb2NrJzsNCg0KCX0gY2F0Y2ggKGVycm9yKSB7DQoJCWFsZXJ0KCdGZWhsZXIgYmVpbSBadWdyaWZmIGF1ZiBkaWUgWndpc2NoZW5hYmxhZ2UuIEJpdHRlIHN0ZWxsZW4gU2llIHNpY2hlciwgZGFzcyBTaWUgZGllIEJlcmVjaHRpZ3VuZyBlcnRlaWx0IGhhYmVuLicpOw0KCQljb25zb2xlLmVycm9yKCdDbGlwYm9hcmQgZXJyb3I6JywgZXJyb3IpOw0KCX0NCn0NCg0KLy8gRnVua3Rpb24genVtIFNjaGxpZcOfZW4gZGVzIEltcG9ydC1EaWFsb2dzDQpmdW5jdGlvbiBjbG9zZUltcG9ydERpYWxvZygpIHsNCglnZXRFbGVtZW50QnlJZCgnaW1wb3J0TW9kYWwnKS5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnOw0KCWNsaXBib2FyZERhdGEgPSBudWxsOw0KfQ0KDQovLyBGdW5rdGlvbiB6dW0gQmVzdMOkdGlnZW4gdW5kIEltcG9ydGllcmVuIGRlciBEYXRlbg0KZnVuY3Rpb24gY29uZmlybUltcG9ydCgpIHsNCglpZiAoIWNsaXBib2FyZERhdGEgfHwgY2xpcGJvYXJkRGF0YS5sZW5ndGggPT09IDApIHsNCgkJY2xvc2VJbXBvcnREaWFsb2coKTsNCgkJcmV0dXJuOw0KCX0NCg0KCS8vIEzDtnNjaGUgYmVzdGVoZW5kZSBFaW5nYWJlbg0KCWNsZWFyQWxsSW5wdXRzKCk7DQoNCgkvLyBFbnRmZXJuZSBkaWUgYXV0b21hdGlzY2ggaGluenVnZWbDvGd0ZSBsZWVyZSBaZWlsZQ0KCWNvbnN0IGNvbnRhaW5lciA9IGdldEVsZW1lbnRCeUlkKCdlbGVtZW50SW5wdXRzJyk7DQoJY29udGFpbmVyLmlubmVySFRNTCA9ICcnOw0KDQoJLy8gRsO8Z2UgbmV1ZSBaZWlsZW4gbWl0IERhdGVuIGhpbnp1DQoJZm9yIChjb25zdCBpdGVtIG9mIGNsaXBib2FyZERhdGEpIHsNCgkJY29uc3Qgcm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7DQoJCXJvdy5jbGFzc05hbWUgPSAnZWxlbWVudC1yb3cnOw0KCQlyb3cuaWQgPSBgcm93LSR7cm93Q291bnRlcn1gOw0KDQoJCWNvbnN0IHNlbGVjdCA9IGNyZWF0ZUVsZW1lbnRTZWxlY3QoKTsNCgkJc2VsZWN0LmlkID0gYGVsZW1lbnQtJHtyb3dDb3VudGVyfWA7DQoJCXNlbGVjdC52YWx1ZSA9IGl0ZW0uZWxlbWVudDsNCgkJc2VsZWN0LmFkZEV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIGNhbGN1bGF0ZU94aWRlcyk7DQoNCgkJY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpOw0KCQlpbnB1dC50eXBlID0gJ3RleHQnOw0KCQlpbnB1dC5wbGFjZWhvbGRlciA9ICdNb2wtJSc7DQoJCWlucHV0LmlkID0gYG1vbHBlcmNlbnQtJHtyb3dDb3VudGVyfWA7DQoJCWlucHV0LnZhbHVlID0gaXRlbS52YWx1ZS50b0ZpeGVkKDIpOw0KCQlpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGZ1bmN0aW9uKGUpIHsNCgkJCWUudGFyZ2V0LnZhbHVlID0gZS50YXJnZXQudmFsdWUucmVwbGFjZSgnLCcsICcuJyk7DQoJCQljYWxjdWxhdGVPeGlkZXMoKTsNCgkJfSk7DQoJCWlucHV0LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCBmdW5jdGlvbihlKSB7DQoJCQljb25zdCB2YWwgPSBwYXJzZUZsb2F0KGUudGFyZ2V0LnZhbHVlKTsNCgkJCWlmICghaXNOYU4odmFsKSkgew0KCQkJCWUudGFyZ2V0LnZhbHVlID0gdmFsLnRvRml4ZWQoMik7DQoJCQl9DQoJCX0pOw0KDQoJCWNvbnN0IHJlbW92ZUJ0biA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2J1dHRvbicpOw0KCQlyZW1vdmVCdG4uY2xhc3NOYW1lID0gJ3JlbW92ZS1idG4nOw0KCQlyZW1vdmVCdG4udGV4dENvbnRlbnQgPSAn4pyVJzsNCgkJcmVtb3ZlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7DQoJCQlyb3cucmVtb3ZlKCk7DQoJCQljYWxjdWxhdGVPeGlkZXMoKTsNCgkJfSk7DQoNCgkJcm93LmFwcGVuZENoaWxkKHNlbGVjdCk7DQoJCXJvdy5hcHBlbmRDaGlsZChpbnB1dCk7DQoJCXJvdy5hcHBlbmRDaGlsZChyZW1vdmVCdG4pOw0KDQoJCWNvbnRhaW5lci5hcHBlbmRDaGlsZChyb3cpOw0KCQlyb3dDb3VudGVyKys7DQoJfQ0KDQoJLy8gQmVyZWNobmUgT3hpZGUNCgljYWxjdWxhdGVPeGlkZXMoKTsNCg0KCS8vIFNjaGxpZcOfZSBNb2RhbA0KCWNsb3NlSW1wb3J0RGlhbG9nKCk7DQp9DQoNCi8vIEV2ZW50LUxpc3RlbmVyIGbDvHIgQnV0dG9ucw0KY29uc3QgYWRkRWxlbWVudEJ0biA9IGdldEVsZW1lbnRCeUlkKCdhZGRFbGVtZW50QnRuJyk7DQppZiAoYWRkRWxlbWVudEJ0bikgew0KCWFkZEVsZW1lbnRCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBhZGRFbGVtZW50Um93KTsNCn0NCg0KY29uc3QgaW1wb3J0QnRuID0gZ2V0RWxlbWVudEJ5SWQoJ2ltcG9ydEJ0bicpOw0KaWYgKGltcG9ydEJ0bikgew0KCWltcG9ydEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIG9wZW5JbXBvcnREaWFsb2cpOw0KfQ0KDQpjb25zdCBjbGVhckJ0biA9IGdldEVsZW1lbnRCeUlkKCdjbGVhckJ0bicpOw0KaWYgKGNsZWFyQnRuKSB7DQoJY2xlYXJCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbGVhckFsbElucHV0cyk7DQp9DQoNCmNvbnN0IG1vZGFsQ2FuY2VsQnRuID0gZ2V0RWxlbWVudEJ5SWQoJ21vZGFsQ2FuY2VsQnRuJyk7DQppZiAobW9kYWxDYW5jZWxCdG4pIHsNCgltb2RhbENhbmNlbEJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsb3NlSW1wb3J0RGlhbG9nKTsNCn0NCg0KY29uc3QgbW9kYWxDb25maXJtQnRuID0gZ2V0RWxlbWVudEJ5SWQoJ21vZGFsQ29uZmlybUJ0bicpOw0KaWYgKG1vZGFsQ29uZmlybUJ0bikgew0KCW1vZGFsQ29uZmlybUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNvbmZpcm1JbXBvcnQpOw0KfQ0KDQovLyBTY2hsaWXDn2UgTW9kYWwgYmVpbSBLbGljayBhdcOfZXJoYWxiDQp3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbihldmVudCkgew0KCWNvbnN0IG1vZGFsID0gZ2V0RWxlbWVudEJ5SWQoJ2ltcG9ydE1vZGFsJyk7DQoJaWYgKGV2ZW50LnRhcmdldCA9PT0gbW9kYWwpIHsNCgkJY2xvc2VJbXBvcnREaWFsb2coKTsNCgl9DQp9KTsNCg0KLy8gSW5pdGlhbGlzaWVyZSBtaXQgZWluZXIgWmVpbGUNCmFkZEVsZW1lbnRSb3coKTsNCgogIH0gY2F0Y2goZXJyb3IpIHsKICAgIGNvbnNvbGUuZXJyb3IoJ0tlcmFtaWsgVG9vbHM6IFNjcmlwdCBlcnJvcjonLCBlcnJvcik7CiAgfQp9KSgpOw==\");var s=decodeURIComponent(escape(b));eval(s);}catch(e){console.error(\"Keramik Tools Script Error:\",e);}})();<\/script><\/div>\n<\/div>\n\n\n\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-3&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item has-border-color is-layout-flow wp-block-accordion-item-is-layout-flow\" style=\"border-color:#1a1a1a;border-width:2px;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem\">\n<h3 class=\"wp-block-accordion-heading\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-3-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-3\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">\u6c27\u5316\u7269\u66ff\u4ee3\u54c1\uff08\u6bd2\u6027\u8f83\u4f4e\uff09<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-3\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-3-panel\" role=\"region\" class=\"wp-block-accordion-panel has-border-color is-layout-flow wp-block-accordion-panel-is-layout-flow\" style=\"border-color:#1a1a1a;border-width:1px;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem\"><div id=\"helenas-keramik-tool-3\" class=\"helenas-keramik-tool\" data-module=\"oxid-ersatz\"><style>#helenas-keramik-tool-3 .header-section{\r\n\ttext-align: center;\r\n\tmargin-bottom: 30px;\r\n}#helenas-keramik-tool-3 .main-title{\r\n\tcolor: var(--wp--preset--color--foreground, #2c3e50);\r\n\tfont-size: clamp(1.5rem, 4vw, 2.5rem);\r\n\tmargin-bottom: 10px;\r\n}#helenas-keramik-tool-3 .subtitle{\r\n\tcolor: var(--wp--preset--color--contrast, #666);\r\n\tfont-size: 1.1em;\r\n}#helenas-keramik-tool-3 .calculator-section{\r\n\tdisplay: grid;\r\n\tgrid-template-columns: 1fr 1fr;\r\n\tgap: 30px;\r\n\tmargin-bottom: 30px;\r\n}@media (max-width: 768px){#helenas-keramik-tool-3 .calculator-section{\r\n\t\tgrid-template-columns: 1fr;\r\n\t}\r\n}#helenas-keramik-tool-3 .card{\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f8f9fa);\r\n\tborder-radius: 15px;\r\n\tpadding: 25px;\r\n\tbox-shadow: 0 5px 15px rgba(0,0,0,0.1);\r\n}#helenas-keramik-tool-3 .card h2{\r\n\tcolor: var(--wp--preset--color--foreground, #333);\r\n\tmargin-bottom: 20px;\r\n\tfont-size: 1.5em;\r\n\tborder-bottom: 3px solid var(--wp--preset--color--primary, #667eea);\r\n\tpadding-bottom: 10px;\r\n}#helenas-keramik-tool-3 .input-group{\r\n\tmargin-bottom: 20px;\r\n}#helenas-keramik-tool-3 .input-group label{\r\n\tdisplay: block;\r\n\tmargin-bottom: 8px;\r\n\tcolor: var(--wp--preset--color--contrast, #555);\r\n\tfont-weight: 600;\r\n}#helenas-keramik-tool-3 .input-group select, #helenas-keramik-tool-3 .input-group input{\r\n\twidth: 100%;\r\n\tpadding: 12px;\r\n\tborder: 2px solid var(--wp--preset--color--contrast, #ddd);\r\n\tborder-radius: 8px;\r\n\tfont-size: 16px;\r\n\ttransition: border-color 0.3s;\r\n}#helenas-keramik-tool-3 .input-group select:focus, #helenas-keramik-tool-3 .input-group input:focus{\r\n\toutline: none;\r\n\tborder-color: var(--wp--preset--color--primary, #667eea);\r\n}#helenas-keramik-tool-3 .button-group{\r\n\tdisplay: flex;\r\n\tgap: 10px;\r\n\tmargin-top: 20px;\r\n\tflex-wrap: wrap;\r\n}#helenas-keramik-tool-3 .button-group button, #helenas-keramik-tool-3 .export-buttons button{\r\n\tflex: 1;\r\n\tpadding: 12px 24px;\r\n\tbackground: linear-gradient(135deg, var(--wp--preset--color--primary, #667eea) 0%, #764ba2 100%);\r\n\tcolor: white;\r\n\tborder: none;\r\n\tborder-radius: 8px;\r\n\tfont-size: 16px;\r\n\tfont-weight: 600;\r\n\tcursor: pointer;\r\n\ttransition: transform 0.3s, box-shadow 0.3s;\r\n\tmin-width: fit-content;\r\n}#helenas-keramik-tool-3 .button-group button:hover, #helenas-keramik-tool-3 .export-buttons button:hover{\r\n\ttransform: translateY(-2px);\r\n\tbox-shadow: 0 5px 20px rgba(102, 126, 234, 0.4);\r\n}#helenas-keramik-tool-3 .button-group button:active, #helenas-keramik-tool-3 .export-buttons button:active{\r\n\ttransform: translateY(0);\r\n}#helenas-keramik-tool-3 .export-buttons{\r\n\tdisplay: flex;\r\n\tgap: 10px;\r\n\tmargin-top: 12px;\r\n}#helenas-keramik-tool-3 .result-display{\r\n\tbackground: var(--wp--preset--color--base, white);\r\n\tborder-radius: 10px;\r\n\tpadding: 20px;\r\n\tmargin-top: 20px;\r\n\tborder: 2px solid #e0e0e0;\r\n\tmin-height: 100px;\r\n}#helenas-keramik-tool-3 .result-display h3{\r\n\tcolor: var(--wp--preset--color--primary, #667eea);\r\n\tmargin-bottom: 15px;\r\n}#helenas-keramik-tool-3 .result-value{\r\n\tfont-size: 1.3em;\r\n\tfont-weight: bold;\r\n\tcolor: var(--wp--preset--color--foreground, #333);\r\n\tmargin: 10px 0;\r\n}#helenas-keramik-tool-3 .formula{\r\n\tfont-family: 'Courier New', monospace;\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f0f0f0);\r\n\tpadding: 10px;\r\n\tborder-radius: 5px;\r\n\tmargin: 10px 0;\r\n}#helenas-keramik-tool-3 .placeholder{\r\n\tcolor: #999;\r\n}#helenas-keramik-tool-3 .safety-info{\r\n\tmargin-top: 30px;\r\n}#helenas-keramik-tool-3 .safety-card{\r\n\tborder-radius: 10px;\r\n\tpadding: 20px;\r\n\tmargin-bottom: 15px;\r\n\tposition: relative;\r\n\toverflow: hidden;\r\n}#helenas-keramik-tool-3 .safety-green{\r\n\tbackground: linear-gradient(135deg, #d4f1d4 0%, #a8e6a8 100%);\r\n\tborder-left: 5px solid #4caf50;\r\n}#helenas-keramik-tool-3 .safety-yellow{\r\n\tbackground: linear-gradient(135deg, #fff4d4 0%, #ffe8a8 100%);\r\n\tborder-left: 5px solid #ff9800;\r\n}#helenas-keramik-tool-3 .safety-red{\r\n\tbackground: linear-gradient(135deg, #ffd4d4 0%, #ffa8a8 100%);\r\n\tborder-left: 5px solid #f44336;\r\n}#helenas-keramik-tool-3 .safety-header{\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n\talign-items: center;\r\n\tmargin-bottom: 15px;\r\n\tflex-wrap: wrap;\r\n\tgap: 10px;\r\n}#helenas-keramik-tool-3 .safety-header h3{\r\n\tfont-size: 1.3em;\r\n\tmargin: 0;\r\n\tcolor: var(--wp--preset--color--foreground, #333);\r\n}#helenas-keramik-tool-3 .safety-badge{\r\n\tpadding: 5px 15px;\r\n\tborder-radius: 20px;\r\n\tfont-weight: 600;\r\n\tfont-size: 0.9em;\r\n}#helenas-keramik-tool-3 .badge-green{\r\n\tbackground: #4caf50;\r\n\tcolor: white;\r\n}#helenas-keramik-tool-3 .badge-yellow{\r\n\tbackground: #ff9800;\r\n\tcolor: white;\r\n}#helenas-keramik-tool-3 .badge-red{\r\n\tbackground: #f44336;\r\n\tcolor: white;\r\n}#helenas-keramik-tool-3 .safety-content{\r\n\tdisplay: grid;\r\n\tgap: 15px;\r\n}#helenas-keramik-tool-3 .safety-row{\r\n\tdisplay: grid;\r\n\tgrid-template-columns: 150px 1fr;\r\n\tgap: 10px;\r\n\talign-items: start;\r\n}#helenas-keramik-tool-3 .safety-row strong{\r\n\tcolor: var(--wp--preset--color--foreground, #555);\r\n}#helenas-keramik-tool-3 .sources-table{\r\n\twidth: 100%;\r\n\tborder-collapse: collapse;\r\n\tmargin-top: 10px;\r\n}#helenas-keramik-tool-3 .sources-table th, #helenas-keramik-tool-3 .sources-table td{\r\n\tpadding: 10px;\r\n\ttext-align: left;\r\n\tborder-bottom: 1px solid #ddd;\r\n}#helenas-keramik-tool-3 .sources-table th{\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f5f5f5);\r\n\tfont-weight: 600;\r\n\tcolor: var(--wp--preset--color--contrast, #555);\r\n}#helenas-keramik-tool-3 .sources-table tr:hover{\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f9f9f9);\r\n}#helenas-keramik-tool-3 .ppe-requirements{\r\n\tdisplay: flex;\r\n\tgap: 20px;\r\n\tmargin-top: 15px;\r\n\tflex-wrap: wrap;\r\n}#helenas-keramik-tool-3 .ppe-item{\r\n\tdisplay: flex;\r\n\talign-items: center;\r\n\tgap: 10px;\r\n\tpadding: 10px;\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f5f5f5);\r\n\tborder-radius: 5px;\r\n}#helenas-keramik-tool-3 .ppe-icon{\r\n\tfont-size: 24px;\r\n}#helenas-keramik-tool-3 .footnotes{\r\n\tmargin-top: 40px;\r\n\tpadding-top: 20px;\r\n\tborder-top: 2px solid #eee;\r\n\tfont-size: 0.9em;\r\n\tcolor: var(--wp--preset--color--contrast, #666);\r\n}#helenas-keramik-tool-3 .footnotes h3{\r\n\tcolor: var(--wp--preset--color--foreground, #333);\r\n\tmargin-bottom: 15px;\r\n}#helenas-keramik-tool-3 .footnote-item{\r\n\tmargin-bottom: 10px;\r\n\tpadding-left: 20px;\r\n}#helenas-keramik-tool-3 .small{\r\n\tfont-size: 0.9em;\r\n\tcolor: var(--wp--preset--color--contrast, #555);\r\n}@media (max-width: 768px){#helenas-keramik-tool-3 .button-group{\r\n\t\tflex-direction: column;\r\n\t}#helenas-keramik-tool-3 .button-group button{\r\n\t\twidth: 100%;\r\n\t}#helenas-keramik-tool-3 .safety-row{\r\n\t\tgrid-template-columns: 1fr;\r\n\t}#helenas-keramik-tool-3 .ppe-requirements{\r\n\t\tflex-direction: column;\r\n\t}\r\n}\r\n<\/style><div class=\"header-section\">\r\n\t<h1 class=\"main-title\">\ud83e\uddea \u9676\u74f7\u6c27\u5316\u7269\u8f6c\u6362\u5668<\/h1>\r\n\t<p class=\"subtitle\">\u6700\u7ec8\u6c27\u5316\u7269\u4e0e\u8d77\u59cb\u6750\u6599\u4e4b\u95f4\u7684\u8f6c\u6362\uff0c\u9644\u5e26\u5b89\u5168\u4fe1\u606f<\/p>\r\n<\/div>\r\n\r\n<div class=\"calculator-section\">\r\n\t<div class=\"card\">\r\n\t\t<h2>\u6700\u7ec8\u6c27\u5316\u7269 \u2192 \u8d77\u59cb\u6750\u6599<\/h2>\r\n\t\t<div class=\"input-group\">\r\n\t\t\t<label for=\"oxide-select\">\u9009\u62e9\u6700\u7ec8\u6c27\u5316\u7269\uff1a<\/label>\r\n\t\t\t<select id=\"oxide-select\">\r\n\t\t\t\t<option value=\"\">\u2014 Bitte w\u00e4hlen \u2014<\/option>\r\n\t\t\t\t<optgroup label=\"Flussmittel (RO\/R\u2082O)\">\r\n\t\t\t\t\t<option value=\"Na2O\">Na\u2082O &#8211; Natriumoxid<\/option>\r\n\t\t\t\t\t<option value=\"K2O\">K\u2082O &#8211; Kaliumoxid<\/option>\r\n\t\t\t\t\t<option value=\"Li2O\">Li\u2082O &#8211; Lithiumoxid<\/option>\r\n\t\t\t\t\t<option value=\"CaO\">CaO &#8211; Calciumoxid<\/option>\r\n\t\t\t\t\t<option value=\"MgO\">MgO &#8211; Magnesiumoxid<\/option>\r\n\t\t\t\t\t<option value=\"BaO\">BaO &#8211; Bariumoxid<\/option>\r\n\t\t\t\t\t<option value=\"SrO\">SrO &#8211; Strontiumoxid<\/option>\r\n\t\t\t\t\t<option value=\"ZnO\">ZnO &#8211; Zinkoxid<\/option>\r\n\t\t\t\t<\/optgroup>\r\n\t\t\t\t<optgroup label=\"Stabilisatoren (R\u2082O\u2083)\">\r\n\t\t\t\t\t<option value=\"Al2O3\">Al\u2082O\u2083 &#8211; Aluminiumoxid<\/option>\r\n\t\t\t\t\t<option value=\"B2O3\">B\u2082O\u2083 &#8211; Boroxid<\/option>\r\n\t\t\t\t<\/optgroup>\r\n\t\t\t\t<optgroup label=\"Glasbildner (RO\u2082)\">\r\n\t\t\t\t\t<option value=\"SiO2\">SiO\u2082 &#8211; Siliciumdioxid<\/option>\r\n\t\t\t\t\t<option value=\"TiO2\">TiO\u2082 &#8211; Titanoxid<\/option>\r\n\t\t\t\t\t<option value=\"SnO2\">SnO\u2082 &#8211; Zinnoxid<\/option>\r\n\t\t\t\t<\/optgroup>\r\n\t\t\t\t<optgroup label=\"Farboxide\">\r\n\t\t\t\t\t<option value=\"Fe2O3\">Fe\u2082O\u2083 &#8211; Eisenoxid (rot)<\/option>\r\n\t\t\t\t\t<option value=\"CoO\">CoO &#8211; Kobaltoxid<\/option>\r\n\t\t\t\t\t<option value=\"CuO\">CuO &#8211; Kupferoxid<\/option>\r\n\t\t\t\t\t<option value=\"Cr2O3\">Cr\u2082O\u2083 &#8211; Chromoxid<\/option>\r\n\t\t\t\t\t<option value=\"MnO2\">MnO\u2082 &#8211; Mangandioxid<\/option>\r\n\t\t\t\t\t<option value=\"NiO\">NiO &#8211; Nickeloxid<\/option>\r\n\t\t\t\t<\/optgroup>\r\n\t\t\t\t<optgroup label=\"Seltene Erden\">\r\n\t\t\t\t\t<option value=\"La2O3\">La\u2082O\u2083 &#8211; Lanthanoxid<\/option>\r\n\t\t\t\t\t<option value=\"Sc2O3\">Sc\u2082O\u2083 &#8211; Scandiumoxid<\/option>\r\n\t\t\t\t\t<option value=\"Ga2O3\">Ga\u2082O\u2083 &#8211; Galliumoxid<\/option>\r\n\t\t\t\t<\/optgroup>\r\n\t\t\t<\/select>\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"input-group\">\r\n\t\t\t<label for=\"oxide-weight\">\u6700\u7ec8\u6c27\u5316\u7269\u91cd\u91cf (g)\uff1a<\/label>\r\n\t\t\t<input type=\"number\" id=\"oxide-weight\" step=\"0.01\" min=\"0\" placeholder=\"z.B. 10.00\">\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"button-group\">\r\n\t\t\t<button id=\"btn-calc-oxide\" type=\"button\">\u8ba1\u7b97<\/button>\r\n\t\t\t<button id=\"btn-clear-oxide\" type=\"button\">\u91cd\u7f6e<\/button>\r\n\t\t\t<button id=\"btn-export-pdf\" type=\"button\">\ud83d\udcc4 \u5bfc\u51fa\u4e3a PDF<\/button>\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"export-buttons\">\r\n\t\t\t<button id=\"btn-export-csv-oxide\" type=\"button\">\ud83d\udcca \u5bfc\u51fa\u4e3a CSV<\/button>\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"result-display\" id=\"oxide-result\">\r\n\t\t\t<h3>\u7ed3\u679c\uff1a<\/h3>\r\n\t\t\t<div id=\"oxide-result-content\">\r\n\t\t\t\t<p class=\"placeholder\">\u8bf7\u9009\u62e9\u4e00\u4e2a\u6700\u7ec8\u6c27\u5316\u7269\u5e76\u8f93\u5165\u91cd\u91cf\u3002<\/p>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n\r\n\t<div class=\"card\">\r\n\t\t<h2>\u8d77\u59cb\u6750\u6599 \u2192 \u6700\u7ec8\u6c27\u5316\u7269<\/h2>\r\n\t\t<div class=\"input-group\">\r\n\t\t\t<label for=\"material-select\">\u9009\u62e9\u8d77\u59cb\u6750\u6599\uff1a<\/label>\r\n\t\t\t<select id=\"material-select\">\r\n\t\t\t\t<option value=\"\">\u2014 Bitte w\u00e4hlen \u2014<\/option>\r\n\t\t\t<\/select>\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"input-group\">\r\n\t\t\t<label for=\"material-weight\">\u8d77\u59cb\u6750\u6599\u91cd\u91cf (g)\uff1a<\/label>\r\n\t\t\t<input type=\"number\" id=\"material-weight\" step=\"0.01\" min=\"0\" placeholder=\"z.B. 10.00\">\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"button-group\">\r\n\t\t\t<button id=\"btn-calc-material\" type=\"button\">\u8ba1\u7b97<\/button>\r\n\t\t\t<button id=\"btn-clear-material\" type=\"button\">\u91cd\u7f6e<\/button>\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"export-buttons\">\r\n\t\t\t<button id=\"btn-export-csv-material\" type=\"button\">\ud83d\udcca \u5bfc\u51fa\u4e3a CSV<\/button>\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"result-display\" id=\"material-result\">\r\n\t\t\t<h3>\u7ed3\u679c\uff1a<\/h3>\r\n\t\t\t<div id=\"material-result-content\">\r\n\t\t\t\t<p class=\"placeholder\">\u8bf7\u9009\u62e9\u4e00\u4e2a\u8d77\u59cb\u6750\u6599\u5e76\u8f93\u5165\u91cd\u91cf\u3002<\/p>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t<\/div>\r\n<\/div>\r\n\r\n<div class=\"safety-info\" id=\"safety-info\">\r\n\t<!-- Safety information will be dynamically inserted here -->\r\n<\/div>\r\n\r\n<div class=\"footnotes\">\r\n\t<h3>\u6765\u6e90\u4e0e\u63d0\u793a<\/h3>\r\n\t<div class=\"footnote-item\">\r\n\t\t<strong>LD50\uff1a<\/strong>\r\n\t\t<span>\u5bfc\u81f4 50% \u6d4b\u8bd5\u7fa4\u4f53\u6b7b\u4ea1\u7684\u81f4\u6b7b\u5242\u91cf\uff08\u53e3\u670d\uff0c\u5927\u9f20\uff09<\/span>\r\n\t<\/div>\r\n\t<div class=\"footnote-item\">\r\n\t\t<strong>DTI\uff1a<\/strong>\r\n\t\t<span>Daily Tolerable Intake &#8211; T\u00e4glich tolerierbare Aufnahmemenge pro kg K\u00f6rpergewicht<\/span>\r\n\t<\/div>\r\n\t<div class=\"footnote-item\">\r\n\t\t<strong>\u514d\u8d23\u58f0\u660e\uff1a<\/strong>\r\n\t\t<span>\u6240\u6709\u4fe1\u606f\u5747\u4e0d\u4fdd\u8bc1\u51c6\u786e\u3002\u5236\u9020\u5546\u7684\u5b89\u5168\u6570\u636e\u8868\u5177\u6709\u7ea6\u675f\u529b\u3002 <\/span>\r\n\t<\/div>\r\n<\/div>\r\n<\/div><script src=\"https:\/\/kayhelena.work\/wp-content\/plugins\/helenas-keramik-tools\/assets\/vendor\/jspdf.umd.min.js\"><\/script><script>(function(){try{var b=atob(\"KGZ1bmN0aW9uKCkgewogIGNvbnN0IGJsb2NrQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbGVuYXMta2VyYW1pay10b29sLTMnKTsKICBpZiAoIWJsb2NrQ29udGFpbmVyKSB7CiAgICBjb25zb2xlLmVycm9yKCdLZXJhbWlrIFRvb2xzOiBCbG9jayBjb250YWluZXIgbm90IGZvdW5kOicsICdoZWxlbmFzLWtlcmFtaWstdG9vbC0zJyk7CiAgICByZXR1cm47CiAgfQoKICAvLyBTY29wZWQgZ2V0RWxlbWVudEJ5SWQgZnVuY3Rpb24KICBmdW5jdGlvbiBnZXRFbGVtZW50QnlJZChpZCkgewogICAgcmV0dXJuIGJsb2NrQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyMnICsgaWQpOwogIH0KCiAgLy8gRXhlY3V0ZSBtb2R1bGUgc2NyaXB0CiAgdHJ5IHsKLy8gVm9sbHN0w6RuZGlnZSBEYXRlbmJhbmsgbWl0IGFsbGVuIE94aWRlbiB1bmQgaWhyZW4gRWlnZW5zY2hhZnRlbg0KY29uc3QgY29tcG91bmRzID0gew0KCSdOYTJPJzogew0KCQltb2xhck1hc3M6IDYxLjk4LA0KCQlzb3VyY2VzOiBbDQoJCQl7IG5hbWU6ICdOYeKCgkNP4oKDIChTb2RhKScsIGZvcm11bGE6ICdOYTJDTzMnLCBtb2xhck1hc3M6IDEwNS45OSwgZmFjdG9yOiAwLjU4NSB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICd5ZWxsb3cnLA0KCQkJbGQ1MDogJ2tlaW5lIERhdGVuJywNCgkJCWR0aTogJ2tlaW5lIERhdGVuJywNCgkJCXJQaHJhc2VzOiBbJ1IzNSddLA0KCQkJc1BocmFzZXM6IFsnUzI2JywgJ1MzNy8zOScsICdTNDUnXSwNCgkJCWhhemFyZHM6ICfDhHR6ZW5kLCByZWFnaWVydCBoZWZ0aWcgbWl0IFdhc3NlcicsDQoJCQlwcGU6IFsnZ2xvdmVzJywgJ2dvZ2dsZXMnLCAnbWFzayddDQoJCX0NCgl9LA0KCSdLMk8nOiB7DQoJCW1vbGFyTWFzczogOTQuMjAsDQoJCXNvdXJjZXM6IFsNCgkJCXsgbmFtZTogJ0vigoJDT+KCgyAoUG90dGFzY2hlKScsIGZvcm11bGE6ICdLMkNPMycsIG1vbGFyTWFzczogMTM4LjIxLCBmYWN0b3I6IDAuNjgyIH0NCgkJXSwNCgkJc2FmZXR5OiB7DQoJCQljbGFzc2lmaWNhdGlvbjogJ3llbGxvdycsDQoJCQlsZDUwOiAna2VpbmUgRGF0ZW4nLA0KCQkJZHRpOiAna2VpbmUgRGF0ZW4nLA0KCQkJclBocmFzZXM6IFsnUjM1J10sDQoJCQlzUGhyYXNlczogWydTMjYnLCAnUzM3LzM5JywgJ1M0NSddLA0KCQkJaGF6YXJkczogJ8OEdHplbmQsIHJlYWdpZXJ0IGhlZnRpZyBtaXQgV2Fzc2VyJywNCgkJCXBwZTogWydnbG92ZXMnLCAnZ29nZ2xlcycsICdtYXNrJ10NCgkJfQ0KCX0sDQoJJ0xpMk8nOiB7DQoJCW1vbGFyTWFzczogMjkuODgsDQoJCXNvdXJjZXM6IFsNCgkJCXsgbmFtZTogJ0xp4oKCQ0\/igoMnLCBmb3JtdWxhOiAnTGkyQ08zJywgbW9sYXJNYXNzOiA3My44OSwgZmFjdG9yOiAwLjQwNCB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICd5ZWxsb3cnLA0KCQkJbGQ1MDogJzUyNSBtZy9rZycsDQoJCQlkdGk6ICcwLjAyIG1nL2tnJywNCgkJCXJQaHJhc2VzOiBbJ1IyMicsICdSMzYvMzcvMzgnXSwNCgkJCXNQaHJhc2VzOiBbJ1MyMicsICdTMjYnLCAnUzM2LzM3J10sDQoJCQloYXphcmRzOiAnR2VzdW5kaGVpdHNzY2jDpGRsaWNoIGJlaW0gVmVyc2NobHVja2VuLCByZWl6dCBBdWdlbiB1bmQgSGF1dCcsDQoJCQlwcGU6IFsnZ2xvdmVzJywgJ2dvZ2dsZXMnLCAnbWFzayddDQoJCX0NCgl9LA0KCSdDYU8nOiB7DQoJCW1vbGFyTWFzczogNTYuMDgsDQoJCXNvdXJjZXM6IFsNCgkJCXsgbmFtZTogJ0NhQ0\/igoMgKEthbGspJywgZm9ybXVsYTogJ0NhQ08zJywgbW9sYXJNYXNzOiAxMDAuMDksIGZhY3RvcjogMC41NjAgfSwNCgkJCXsgbmFtZTogJ0NhU2lP4oKDIChXb2xsYXN0b25pdCknLCBmb3JtdWxhOiAnQ2FTaU8zJywgbW9sYXJNYXNzOiAxMTYuMTYsIGZhY3RvcjogMC40ODMgfQ0KCQldLA0KCQlzYWZldHk6IHsNCgkJCWNsYXNzaWZpY2F0aW9uOiAneWVsbG93JywNCgkJCWxkNTA6ICc3MzQwIG1nL2tnJywNCgkJCWR0aTogJ2tlaW5lIEJlc2NocsOkbmt1bmcnLA0KCQkJclBocmFzZXM6IFsnUjM3LzM4JywgJ1I0MSddLA0KCQkJc1BocmFzZXM6IFsnUzI2JywgJ1MzNy8zOSddLA0KCQkJaGF6YXJkczogJ1JlaXp0IEF0ZW13ZWdlIHVuZCBIYXV0LCBHZWZhaHIgZXJuc3RlciBBdWdlbnNjaMOkZGVuJywNCgkJCXBwZTogWydnbG92ZXMnLCAnZ29nZ2xlcycsICdtYXNrJ10NCgkJfQ0KCX0sDQoJJ01nTyc6IHsNCgkJbW9sYXJNYXNzOiA0MC4zMCwNCgkJc291cmNlczogWw0KCQkJeyBuYW1lOiAnTWdDT+KCgycsIGZvcm11bGE6ICdNZ0NPMycsIG1vbGFyTWFzczogODQuMzEsIGZhY3RvcjogMC40NzggfQ0KCQldLA0KCQlzYWZldHk6IHsNCgkJCWNsYXNzaWZpY2F0aW9uOiAnZ3JlZW4nLA0KCQkJbGQ1MDogJz4gNTAwMCBtZy9rZycsDQoJCQlkdGk6ICdrZWluZSBCZXNjaHLDpG5rdW5nJywNCgkJCXJQaHJhc2VzOiBbXSwNCgkJCXNQaHJhc2VzOiBbJ1MyMiddLA0KCQkJaGF6YXJkczogJ1ByYWt0aXNjaCB1bmdpZnRpZycsDQoJCQlwcGU6IFsnbWFzayddDQoJCX0NCgl9LA0KCSdCYU8nOiB7DQoJCW1vbGFyTWFzczogMTUzLjMzLA0KCQlzb3VyY2VzOiBbDQoJCQl7IG5hbWU6ICdCYUNP4oKDJywgZm9ybXVsYTogJ0JhQ08zJywgbW9sYXJNYXNzOiAxOTcuMzQsIGZhY3RvcjogMC43NzcgfQ0KCQldLA0KCQlzYWZldHk6IHsNCgkJCWNsYXNzaWZpY2F0aW9uOiAncmVkJywNCgkJCWxkNTA6ICc0MTggbWcva2cgKGFscyBCYUNP4oKDKScsDQoJCQlkdGk6ICcwLjAyIG1nL2tnJywNCgkJCXJQaHJhc2VzOiBbJ1IyMC8yMicsICdSMjUnXSwNCgkJCXNQaHJhc2VzOiBbJ1MyOCcsICdTNDUnXSwNCgkJCWhhemFyZHM6ICdHaWZ0aWcgYmVpbSBFaW5hdG1lbiB1bmQgVmVyc2NobHVja2VuJywNCgkJCXBwZTogWydnbG92ZXMnLCAnZ29nZ2xlcycsICdtYXNrJywgJ2NvYXQnXQ0KCQl9DQoJfSwNCgknU3JPJzogew0KCQltb2xhck1hc3M6IDEwMy42MiwNCgkJc291cmNlczogWw0KCQkJeyBuYW1lOiAnU3JDT+KCgycsIGZvcm11bGE6ICdTckNPMycsIG1vbGFyTWFzczogMTQ3LjYzLCBmYWN0b3I6IDAuNzAyIH0NCgkJXSwNCgkJc2FmZXR5OiB7DQoJCQljbGFzc2lmaWNhdGlvbjogJ3llbGxvdycsDQoJCQlsZDUwOiAnMTgyNiBtZy9rZycsDQoJCQlkdGk6ICcwLjYgbWcva2cnLA0KCQkJclBocmFzZXM6IFsnUjM2LzM3LzM4J10sDQoJCQlzUGhyYXNlczogWydTMjYnLCAnUzM2J10sDQoJCQloYXphcmRzOiAnUmVpenQgQXVnZW4sIEF0bXVuZ3NvcmdhbmUgdW5kIEhhdXQnLA0KCQkJcHBlOiBbJ2dsb3ZlcycsICdnb2dnbGVzJywgJ21hc2snXQ0KCQl9DQoJfSwNCgknWm5PJzogew0KCQltb2xhck1hc3M6IDgxLjM4LA0KCQlzb3VyY2VzOiBbDQoJCQl7IG5hbWU6ICdabk8gKGRpcmVrdCknLCBmb3JtdWxhOiAnWm5PJywgbW9sYXJNYXNzOiA4MS4zOCwgZmFjdG9yOiAxLjAwMCB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICdncmVlbicsDQoJCQlsZDUwOiAnPiA1MDAwIG1nL2tnJywNCgkJCWR0aTogJzAuNSBtZy9rZycsDQoJCQlyUGhyYXNlczogWydSNTAvNTMnXSwNCgkJCXNQaHJhc2VzOiBbJ1M2MCcsICdTNjEnXSwNCgkJCWhhemFyZHM6ICdTZWhyIGdpZnRpZyBmw7xyIFdhc3Nlcm9yZ2FuaXNtZW4nLA0KCQkJcHBlOiBbJ21hc2snXQ0KCQl9DQoJfSwNCgknQWwyTzMnOiB7DQoJCW1vbGFyTWFzczogMTAxLjk2LA0KCQlzb3VyY2VzOiBbDQoJCQl7IG5hbWU6ICdBbOKCgk\/igoPCtzNI4oKCTyAoQWx1bWluaXVtaHlkcm94aWQpJywgZm9ybXVsYTogJ0FsMk8zLjNIMk8nLCBtb2xhck1hc3M6IDE1Ni4wMSwgZmFjdG9yOiAwLjY1NCB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICdncmVlbicsDQoJCQlsZDUwOiAnPiA1MDAwIG1nL2tnJywNCgkJCWR0aTogJ2tlaW5lIEJlc2NocsOkbmt1bmcnLA0KCQkJclBocmFzZXM6IFtdLA0KCQkJc1BocmFzZXM6IFsnUzIyJ10sDQoJCQloYXphcmRzOiAnUHJha3Rpc2NoIHVuZ2lmdGlnLCBTdGF1Ym1hc2tlIGVtcGZvaGxlbicsDQoJCQlwcGU6IFsnbWFzayddDQoJCX0NCgl9LA0KCSdCMk8zJzogew0KCQltb2xhck1hc3M6IDY5LjYyLA0KCQlzb3VyY2VzOiBbDQoJCQl7IG5hbWU6ICdI4oKDQk\/igoMgKEJvcnPDpHVyZSknLCBmb3JtdWxhOiAnSDNCTzMnLCBtb2xhck1hc3M6IDYxLjgzLCBmYWN0b3I6IDAuNTYzIH0sDQoJCQl7IG5hbWU6ICdOYeKCgkLigoRP4oKHwrcxMEjigoJPIChCb3JheCknLCBmb3JtdWxhOiAnTmEyQjRPNy4xMEgyTycsIG1vbGFyTWFzczogMzgxLjM3LCBmYWN0b3I6IDAuMzY1IH0NCgkJXSwNCgkJc2FmZXR5OiB7DQoJCQljbGFzc2lmaWNhdGlvbjogJ3llbGxvdycsDQoJCQlsZDUwOiAnMjY2MCBtZy9rZycsDQoJCQlkdGk6ICcwLjIgbWcva2cnLA0KCQkJclBocmFzZXM6IFsnUjYwJywgJ1I2MSddLA0KCQkJc1BocmFzZXM6IFsnUzUzJywgJ1M0NSddLA0KCQkJaGF6YXJkczogJ0thbm4gZGllIEZvcnRwZmxhbnp1bmdzZsOkaGlna2VpdCBiZWVpbnRyw6RjaHRpZ2VuJywNCgkJCXBwZTogWydnbG92ZXMnLCAnZ29nZ2xlcycsICdtYXNrJ10NCgkJfQ0KCX0sDQoJJ1NpTzInOiB7DQoJCW1vbGFyTWFzczogNjAuMDgsDQoJCXNvdXJjZXM6IFsNCgkJCXsgbmFtZTogJ1NpT+KCgiAoUXVhcnovRmxpbnQpJywgZm9ybXVsYTogJ1NpTzInLCBtb2xhck1hc3M6IDYwLjA4LCBmYWN0b3I6IDEuMDAwIH0sDQoJCQl7IG5hbWU6ICdDYVNpT+KCgyAoV29sbGFzdG9uaXQpJywgZm9ybXVsYTogJ0NhU2lPMycsIG1vbGFyTWFzczogMTE2LjE2LCBmYWN0b3I6IDAuNTE3IH0NCgkJXSwNCgkJc2FmZXR5OiB7DQoJCQljbGFzc2lmaWNhdGlvbjogJ3llbGxvdycsDQoJCQlsZDUwOiAnPiA1MDAwIG1nL2tnJywNCgkJCWR0aTogJ2tlaW5lIERhdGVuJywNCgkJCXJQaHJhc2VzOiBbJ1I0OC8yMCddLA0KCQkJc1BocmFzZXM6IFsnUzIyJ10sDQoJCQloYXphcmRzOiAnU2lsaWtvc2UtR2VmYWhyIGJlaSBFaW5hdG11bmcgdm9uIEZlaW5zdGF1YicsDQoJCQlwcGU6IFsnbWFzaycsICdnb2dnbGVzJ10NCgkJfQ0KCX0sDQoJJ1RpTzInOiB7DQoJCW1vbGFyTWFzczogNzkuODcsDQoJCXNvdXJjZXM6IFsNCgkJCXsgbmFtZTogJ1RpT+KCgiAoZGlyZWt0KScsIGZvcm11bGE6ICdUaU8yJywgbW9sYXJNYXNzOiA3OS44NywgZmFjdG9yOiAxLjAwMCB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICdncmVlbicsDQoJCQlsZDUwOiAnPiAxMDAwMCBtZy9rZycsDQoJCQlkdGk6ICdrZWluZSBCZXNjaHLDpG5rdW5nJywNCgkJCXJQaHJhc2VzOiBbXSwNCgkJCXNQaHJhc2VzOiBbJ1MyMiddLA0KCQkJaGF6YXJkczogJ1ByYWt0aXNjaCB1bmdpZnRpZycsDQoJCQlwcGU6IFsnbWFzayddDQoJCX0NCgl9LA0KCSdTbk8yJzogew0KCQltb2xhck1hc3M6IDE1MC43MSwNCgkJc291cmNlczogWw0KCQkJeyBuYW1lOiAnU25P4oKCIChkaXJla3QpJywgZm9ybXVsYTogJ1NuTzInLCBtb2xhck1hc3M6IDE1MC43MSwgZmFjdG9yOiAxLjAwMCB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICdncmVlbicsDQoJCQlsZDUwOiAnPiAyMDAwMCBtZy9rZycsDQoJCQlkdGk6ICdrZWluZSBCZXNjaHLDpG5rdW5nJywNCgkJCXJQaHJhc2VzOiBbXSwNCgkJCXNQaHJhc2VzOiBbJ1MyMiddLA0KCQkJaGF6YXJkczogJ1ByYWt0aXNjaCB1bmdpZnRpZycsDQoJCQlwcGU6IFsnbWFzayddDQoJCX0NCgl9LA0KCSdGZTJPMyc6IHsNCgkJbW9sYXJNYXNzOiAxNTkuNjksDQoJCXNvdXJjZXM6IFsNCgkJCXsgbmFtZTogJ0Zl4oKCT+KCgyAoZGlyZWt0KScsIGZvcm11bGE6ICdGZTJPMycsIG1vbGFyTWFzczogMTU5LjY5LCBmYWN0b3I6IDEuMDAwIH0NCgkJXSwNCgkJc2FmZXR5OiB7DQoJCQljbGFzc2lmaWNhdGlvbjogJ2dyZWVuJywNCgkJCWxkNTA6ICc+IDEwMDAwIG1nL2tnJywNCgkJCWR0aTogJ2tlaW5lIEJlc2NocsOkbmt1bmcnLA0KCQkJclBocmFzZXM6IFtdLA0KCQkJc1BocmFzZXM6IFsnUzIyJ10sDQoJCQloYXphcmRzOiAnUHJha3Rpc2NoIHVuZ2lmdGlnJywNCgkJCXBwZTogWydtYXNrJ10NCgkJfQ0KCX0sDQoJJ0NvTyc6IHsNCgkJbW9sYXJNYXNzOiA3NC45MywNCgkJc291cmNlczogWw0KCQkJeyBuYW1lOiAnQ29DT+KCgycsIGZvcm11bGE6ICdDb0NPMycsIG1vbGFyTWFzczogMTE4Ljk0LCBmYWN0b3I6IDAuNjMwIH0NCgkJXSwNCgkJc2FmZXR5OiB7DQoJCQljbGFzc2lmaWNhdGlvbjogJ3JlZCcsDQoJCQlsZDUwOiAnNjQwIG1nL2tnJywNCgkJCWR0aTogJzAuMDAxNCBtZy9rZycsDQoJCQlyUGhyYXNlczogWydSNDknLCAnUjIyJywgJ1I0Mi80MycsICdSNTAvNTMnXSwNCgkJCXNQaHJhc2VzOiBbJ1M1MycsICdTNDUnLCAnUzYwJywgJ1M2MSddLA0KCQkJaGF6YXJkczogJ0thbm4gS3JlYnMgZXJ6ZXVnZW4gYmVpbSBFaW5hdG1lbiwgQ01SLVN0b2ZmJywNCgkJCXBwZTogWydnbG92ZXMnLCAnZ29nZ2xlcycsICdtYXNrJywgJ2NvYXQnXQ0KCQl9DQoJfSwNCgknQ3VPJzogew0KCQltb2xhck1hc3M6IDc5LjU1LA0KCQlzb3VyY2VzOiBbDQoJCQl7IG5hbWU6ICdDdUNP4oKDwrdDdShPSCnigoInLCBmb3JtdWxhOiAnQ3VDTzMuQ3UoT0gpMicsIG1vbGFyTWFzczogMjIxLjEyLCBmYWN0b3I6IDAuNzIwIH0NCgkJXSwNCgkJc2FmZXR5OiB7DQoJCQljbGFzc2lmaWNhdGlvbjogJ3llbGxvdycsDQoJCQlsZDUwOiAnMTM4NSBtZy9rZycsDQoJCQlkdGk6ICcwLjUgbWcva2cnLA0KCQkJclBocmFzZXM6IFsnUjIyJywgJ1IzNi8zOCcsICdSNTAvNTMnXSwNCgkJCXNQaHJhc2VzOiBbJ1MyNicsICdTNjAnLCAnUzYxJ10sDQoJCQloYXphcmRzOiAnR2VzdW5kaGVpdHNzY2jDpGRsaWNoIGJlaW0gVmVyc2NobHVja2VuJywNCgkJCXBwZTogWydnbG92ZXMnLCAnZ29nZ2xlcycsICdtYXNrJ10NCgkJfQ0KCX0sDQoJJ0NyMk8zJzogew0KCQltb2xhck1hc3M6IDE1MS45OSwNCgkJc291cmNlczogWw0KCQkJeyBuYW1lOiAnQ3LigoJP4oKDIChkaXJla3QpJywgZm9ybXVsYTogJ0NyMk8zJywgbW9sYXJNYXNzOiAxNTEuOTksIGZhY3RvcjogMS4wMDAgfQ0KCQldLA0KCQlzYWZldHk6IHsNCgkJCWNsYXNzaWZpY2F0aW9uOiAncmVkJywNCgkJCWxkNTA6ICc+IDUwMDAgbWcva2cnLA0KCQkJZHRpOiAnMC4wMDMgbWcva2cgKENyIFZJKScsDQoJCQlyUGhyYXNlczogWydSNDMnLCAnUjQ5J10sDQoJCQlzUGhyYXNlczogWydTNTMnLCAnUzQ1JywgJ1M2MCcsICdTNjEnXSwNCgkJCWhhemFyZHM6ICdLYW5uIEtyZWJzIGVyemV1Z2VuIGJlaW0gRWluYXRtZW4gKENyIFZJKScsDQoJCQlwcGU6IFsnZ2xvdmVzJywgJ2dvZ2dsZXMnLCAnbWFzaycsICdjb2F0J10NCgkJfQ0KCX0sDQoJJ01uTzInOiB7DQoJCW1vbGFyTWFzczogODYuOTQsDQoJCXNvdXJjZXM6IFsNCgkJCXsgbmFtZTogJ01uQ0\/igoMnLCBmb3JtdWxhOiAnTW5DTzMnLCBtb2xhck1hc3M6IDExNC45NSwgZmFjdG9yOiAwLjc1NiB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICd5ZWxsb3cnLA0KCQkJbGQ1MDogJz4gMzAwMCBtZy9rZycsDQoJCQlkdGk6ICcwLjE0IG1nL2tnJywNCgkJCXJQaHJhc2VzOiBbJ1IyMC8yMiddLA0KCQkJc1BocmFzZXM6IFsnUzI1JywgJ1MzOCddLA0KCQkJaGF6YXJkczogJ0dlc3VuZGhlaXRzc2Now6RkbGljaCBiZWltIEVpbmF0bWVuIHVuZCBWZXJzY2hsdWNrZW4nLA0KCQkJcHBlOiBbJ2dsb3ZlcycsICdnb2dnbGVzJywgJ21hc2snXQ0KCQl9DQoJfSwNCgknTmlPJzogew0KCQltb2xhck1hc3M6IDc0LjY5LA0KCQlzb3VyY2VzOiBbDQoJCQl7IG5hbWU6ICdOaU8gKGRpcmVrdCknLCBmb3JtdWxhOiAnTmlPJywgbW9sYXJNYXNzOiA3NC42OSwgZmFjdG9yOiAxLjAwMCB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICdyZWQnLA0KCQkJbGQ1MDogJz4gNTAwMCBtZy9rZycsDQoJCQlkdGk6ICcwLjAwNSBtZy9rZycsDQoJCQlyUGhyYXNlczogWydSNDknLCAnUjQzJywgJ1I1MC81MyddLA0KCQkJc1BocmFzZXM6IFsnUzUzJywgJ1M0NScsICdTNjAnLCAnUzYxJ10sDQoJCQloYXphcmRzOiAnS2FubiBLcmVicyBlcnpldWdlbiBiZWltIEVpbmF0bWVuLCBzdGFya2VzIEFsbGVyZ2VuJywNCgkJCXBwZTogWydnbG92ZXMnLCAnZ29nZ2xlcycsICdtYXNrJywgJ2NvYXQnXQ0KCQl9DQoJfSwNCgknTGEyTzMnOiB7DQoJCW1vbGFyTWFzczogMzI1LjgxLA0KCQlzb3VyY2VzOiBbDQoJCQl7IG5hbWU6ICdMYW50aGFuKElJSSktQ2FyYm9uYXQnLCBmb3JtdWxhOiAnTGEyKENPMykzJywgbW9sYXJNYXNzOiA0NTcuODQsIGZhY3RvcjogMC43MTIgfQ0KCQldLA0KCQlzYWZldHk6IHsNCgkJCWNsYXNzaWZpY2F0aW9uOiAneWVsbG93JywNCgkJCWxkNTA6ICdrZWluZSBEYXRlbicsDQoJCQlkdGk6ICdrZWluZSBEYXRlbicsDQoJCQlyUGhyYXNlczogWydSMzYvMzcnXSwNCgkJCXNQaHJhc2VzOiBbJ1MyMiddLA0KCQkJaGF6YXJkczogJ1N0YXViIHJlaXplbmQsIHNlbHRlbmUgRXJkZW4ga8O2bm5lbiBiaW9ha2t1bXVsaWVyZW4nLA0KCQkJcHBlOiBbJ21hc2snLCAnZ2xvdmVzJ10NCgkJfQ0KCX0sDQoJJ1NjMk8zJzogew0KCQltb2xhck1hc3M6IDEzNy45MSwNCgkJc291cmNlczogWw0KCQkJeyBuYW1lOiAnU2NhbmRpdW0oSUlJKS1DYXJib25hdCcsIGZvcm11bGE6ICdTYzIoQ08zKTMnLCBtb2xhck1hc3M6IDI3OC45NCwgZmFjdG9yOiAwLjQ5NCB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICd5ZWxsb3cnLA0KCQkJbGQ1MDogJ2tlaW5lIERhdGVuJywNCgkJCWR0aTogJ2tlaW5lIERhdGVuJywNCgkJCXJQaHJhc2VzOiBbJ1IzNiddLA0KCQkJc1BocmFzZXM6IFsnUzIyJ10sDQoJCQloYXphcmRzOiAnU3RhdWIgcmVpemVuZCwgRGF0ZW5sYWdlIGzDvGNrZW5oYWZ0JywNCgkJCXBwZTogWydtYXNrJ10NCgkJfQ0KCX0sDQoJJ0dhMk8zJzogew0KCQltb2xhck1hc3M6IDE4Ny40NCwNCgkJc291cmNlczogWw0KCQkJeyBuYW1lOiAnR2FsbGl1bShJSUkpLUh5ZHJveGlkJywgZm9ybXVsYTogJ0dhKE9IKTMnLCBtb2xhck1hc3M6IDEyMC43MywgZmFjdG9yOiAxLjU1MyB9DQoJCV0sDQoJCXNhZmV0eTogew0KCQkJY2xhc3NpZmljYXRpb246ICd5ZWxsb3cnLA0KCQkJbGQ1MDogJ2tlaW5lIERhdGVuJywNCgkJCWR0aTogJ2tlaW5lIERhdGVuJywNCgkJCXJQaHJhc2VzOiBbJ1IzNi8zNyddLA0KCQkJc1BocmFzZXM6IFsnUzIyJ10sDQoJCQloYXphcmRzOiAnUmVpemVuZCwgU3RhdWIgdmVybWVpZGVuJywNCgkJCXBwZTogWydtYXNrJywgJ2dsb3ZlcyddDQoJCX0NCgl9DQp9Ow0KDQovLyBSLVPDpHR6ZSBEZWZpbml0aW9uZW4NCmNvbnN0IHJQaHJhc2VzID0gew0KCSdSMjAnOiAnR2VzdW5kaGVpdHNzY2jDpGRsaWNoIGJlaW0gRWluYXRtZW4nLA0KCSdSMjAvMjInOiAnR2VzdW5kaGVpdHNzY2jDpGRsaWNoIGJlaW0gRWluYXRtZW4gdW5kIFZlcnNjaGx1Y2tlbicsDQoJJ1IyMic6ICdHZXN1bmRoZWl0c3NjaMOkZGxpY2ggYmVpbSBWZXJzY2hsdWNrZW4nLA0KCSdSMjUnOiAnR2lmdGlnIGJlaW0gVmVyc2NobHVja2VuJywNCgknUjM1JzogJ1ZlcnVyc2FjaHQgc2Nod2VyZSBWZXLDpHR6dW5nZW4nLA0KCSdSMzYnOiAnUmVpenQgZGllIEF1Z2VuJywNCgknUjM2LzM3JzogJ1JlaXp0IGRpZSBBdWdlbiB1bmQgQXRtdW5nc29yZ2FuZScsDQoJJ1IzNi8zNy8zOCc6ICdSZWl6dCBkaWUgQXVnZW4sIEF0bXVuZ3NvcmdhbmUgdW5kIGRpZSBIYXV0JywNCgknUjM2LzM4JzogJ1JlaXp0IGRpZSBBdWdlbiB1bmQgZGllIEhhdXQnLA0KCSdSMzcvMzgnOiAnUmVpenQgZGllIEF0bXVuZ3NvcmdhbmUgdW5kIGRpZSBIYXV0JywNCgknUjQxJzogJ0dlZmFociBlcm5zdGVyIEF1Z2Vuc2Now6RkZW4nLA0KCSdSNDIvNDMnOiAnU2Vuc2liaWxpc2llcnVuZyBkdXJjaCBFaW5hdG1lbiB1bmQgSGF1dGtvbnRha3QgbcO2Z2xpY2gnLA0KCSdSNDMnOiAnU2Vuc2liaWxpc2llcnVuZyBkdXJjaCBIYXV0a29udGFrdCBtw7ZnbGljaCcsDQoJJ1I0OC8yMCc6ICdHZXN1bmRoZWl0c3NjaMOkZGxpY2g6IEdlZmFociBlcm5zdGVyIEdlc3VuZGhlaXRzc2Now6RkZW4gYmVpIGzDpG5nZXJlciBFeHBvc2l0aW9uIGR1cmNoIEVpbmF0bWVuJywNCgknUjQ5JzogJ0thbm4gS3JlYnMgZXJ6ZXVnZW4gYmVpbSBFaW5hdG1lbicsDQoJJ1I1MC81Myc6ICdTZWhyIGdpZnRpZyBmw7xyIFdhc3Nlcm9yZ2FuaXNtZW4sIGthbm4gaW4gR2V3w6Rzc2VybiBsw6RuZ2VyZnJpc3RpZyBzY2jDpGRsaWNoZSBXaXJrdW5nZW4gaGFiZW4nLA0KCSdSNjAnOiAnS2FubiBkaWUgRm9ydHBmbGFuenVuZ3Nmw6RoaWdrZWl0IGJlZWludHLDpGNodGlnZW4nLA0KCSdSNjEnOiAnS2FubiBkYXMgS2luZCBpbSBNdXR0ZXJsZWliIHNjaMOkZGlnZW4nDQp9Ow0KDQovLyBTLVPDpHR6ZSBEZWZpbml0aW9uZW4NCmNvbnN0IHNQaHJhc2VzID0gew0KCSdTMjInOiAnU3RhdWIgbmljaHQgZWluYXRtZW4nLA0KCSdTMjUnOiAnQmVyw7xocnVuZyBtaXQgZGVuIEF1Z2VuIHZlcm1laWRlbicsDQoJJ1MyNic6ICdCZWkgQmVyw7xocnVuZyBtaXQgZGVuIEF1Z2VuIHNvZm9ydCBncsO8bmRsaWNoIG1pdCBXYXNzZXIgYWJzcMO8bGVuIHVuZCBBcnp0IGtvbnN1bHRpZXJlbicsDQoJJ1MyOCc6ICdCZWkgQmVyw7xocnVuZyBtaXQgZGVyIEhhdXQgc29mb3J0IGFid2FzY2hlbiBtaXQgdmllbCBXYXNzZXInLA0KCSdTMzYnOiAnQmVpIGRlciBBcmJlaXQgZ2VlaWduZXRlIFNjaHV0emtsZWlkdW5nIHRyYWdlbicsDQoJJ1MzNi8zNyc6ICdCZWkgZGVyIEFyYmVpdCBnZWVpZ25ldGUgU2NodXR6aGFuZHNjaHVoZSB1bmQgU2NodXR6a2xlaWR1bmcgdHJhZ2VuJywNCgknUzM3LzM5JzogJ0JlaSBkZXIgQXJiZWl0IGdlZWlnbmV0ZSBTY2h1dHpoYW5kc2NodWhlIHVuZCBTY2h1dHpicmlsbGUvR2VzaWNodHNzY2h1dHogdHJhZ2VuJywNCgknUzM4JzogJ0JlaSB1bnp1cmVpY2hlbmRlciBCZWzDvGZ0dW5nIEF0ZW1zY2h1dHpnZXLDpHQgYW5sZWdlbicsDQoJJ1M0NSc6ICdCZWkgVW5mYWxsIG9kZXIgVW53b2hsc2VpbiBzb2ZvcnQgQXJ6dCBoaW56dXppZWhlbicsDQoJJ1M1Myc6ICdFeHBvc2l0aW9uIHZlcm1laWRlbiAtIHZvciBHZWJyYXVjaCBiZXNvbmRlcmUgQW53ZWlzdW5nZW4gZWluaG9sZW4nLA0KCSdTNjAnOiAnRGllc2VyIFN0b2ZmIHVuZCBzZWluIEJlaMOkbHRlciBzaW5kIGFscyBnZWbDpGhybGljaGVyIEFiZmFsbCB6dSBlbnRzb3JnZW4nLA0KCSdTNjEnOiAnRnJlaXNldHp1bmcgaW4gZGllIFVtd2VsdCB2ZXJtZWlkZW4uIEJlc29uZGVyZSBBbndlaXN1bmdlbiBlaW5ob2xlbi9TaWNoZXJoZWl0c2RhdGVuYmxhdHQgenUgUmF0ZSB6aWVoZW4nDQp9Ow0KDQovLyBQUEUtSWNvbnMNCmNvbnN0IHBwZUljb25zID0gew0KCSdnbG92ZXMnOiAn8J+npCcsDQoJJ2dvZ2dsZXMnOiAn8J+lvScsDQoJJ21hc2snOiAn8J+YtycsDQoJJ2NvYXQnOiAn8J+lvCcNCn07DQoNCmNvbnN0IHBwZVRpdGxlcyA9IHsNCgknZ2xvdmVzJzogJ1NjaHV0emhhbmRzY2h1aGUnLA0KCSdnb2dnbGVzJzogJ1NjaHV0emJyaWxsZScsDQoJJ21hc2snOiAnQXRlbXNjaHV0eicsDQoJJ2NvYXQnOiAnTGFib3JraXR0ZWwnDQp9Ow0KDQovLyBHbG9iYWwgdmFyaWFibGVzDQpsZXQgY3VycmVudE94aWRlRGF0YSA9IG51bGw7DQpsZXQgY3VycmVudE1hdGVyaWFsRGF0YSA9IG51bGw7DQoNCi8vIEluaXRpYWxpemUgbWF0ZXJpYWwgc2VsZWN0DQpmdW5jdGlvbiBpbml0aWFsaXplTWF0ZXJpYWxTZWxlY3QoKSB7DQoJY29uc3QgbWF0ZXJpYWxTZWxlY3QgPSBnZXRFbGVtZW50QnlJZCgnbWF0ZXJpYWwtc2VsZWN0Jyk7DQoJbWF0ZXJpYWxTZWxlY3QuaW5uZXJIVE1MID0gJzxvcHRpb24gdmFsdWU9IiI+LS0gQml0dGUgd8OkaGxlbiAtLTwvb3B0aW9uPic7DQoNCgkvLyBDb2xsZWN0IGFsbCB1bmlxdWUgc291cmNlcw0KCWNvbnN0IHNvdXJjZXMgPSBbXTsNCglmb3IgKGNvbnN0IG94aWRlIGluIGNvbXBvdW5kcykgew0KCQlmb3IgKGNvbnN0IHNvdXJjZSBvZiBjb21wb3VuZHNbb3hpZGVdLnNvdXJjZXMpIHsNCgkJCXNvdXJjZXMucHVzaCh7DQoJCQkJb3hpZGU6IG94aWRlLA0KCQkJCS4uLnNvdXJjZQ0KCQkJfSk7DQoJCX0NCgl9DQoNCgkvLyBTb3J0IGJ5IG5hbWUNCglzb3VyY2VzLnNvcnQoKGEsIGIpID0+IGEubmFtZS5sb2NhbGVDb21wYXJlKGIubmFtZSkpOw0KDQoJLy8gQWRkIHRvIHNlbGVjdA0KCWZvciAoY29uc3Qgc291cmNlIG9mIHNvdXJjZXMpIHsNCgkJY29uc3Qgb3B0aW9uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnb3B0aW9uJyk7DQoJCW9wdGlvbi52YWx1ZSA9IEpTT04uc3RyaW5naWZ5KHsgb3hpZGU6IHNvdXJjZS5veGlkZSwgZm9ybXVsYTogc291cmNlLmZvcm11bGEgfSk7DQoJCW9wdGlvbi50ZXh0Q29udGVudCA9IGAke3NvdXJjZS5uYW1lfSDihpIgJHtzb3VyY2Uub3hpZGV9YDsNCgkJbWF0ZXJpYWxTZWxlY3QuYXBwZW5kQ2hpbGQob3B0aW9uKTsNCgl9DQp9DQoNCi8vIENhbGN1bGF0ZSBmcm9tIG94aWRlDQpmdW5jdGlvbiBjYWxjdWxhdGVGcm9tT3hpZGUoKSB7DQoJY29uc3Qgb3hpZGVTZWxlY3QgPSBnZXRFbGVtZW50QnlJZCgnb3hpZGUtc2VsZWN0Jyk7DQoJY29uc3Qgb3hpZGVXZWlnaHQgPSBwYXJzZUZsb2F0KGdldEVsZW1lbnRCeUlkKCdveGlkZS13ZWlnaHQnKS52YWx1ZSk7DQoJY29uc3QgcmVzdWx0Q29udGVudCA9IGdldEVsZW1lbnRCeUlkKCdveGlkZS1yZXN1bHQtY29udGVudCcpOw0KDQoJaWYgKCFveGlkZVNlbGVjdC52YWx1ZSB8fCAhb3hpZGVXZWlnaHQgfHwgb3hpZGVXZWlnaHQgPD0gMCkgew0KCQlyZXN1bHRDb250ZW50LmlubmVySFRNTCA9ICc8cCBjbGFzcz0icGxhY2Vob2xkZXIiPkJpdHRlIHfDpGhsZW4gU2llIGVpbiBFbmRveGlkIHVuZCBnZWJlbiBTaWUgZWluIGfDvGx0aWdlcyBHZXdpY2h0IGVpbi48L3A+JzsNCgkJcmV0dXJuOw0KCX0NCg0KCWNvbnN0IG94aWRlID0gb3hpZGVTZWxlY3QudmFsdWU7DQoJY29uc3QgY29tcG91bmQgPSBjb21wb3VuZHNbb3hpZGVdOw0KDQoJbGV0IGh0bWwgPSBgPGRpdiBjbGFzcz0icmVzdWx0LXZhbHVlIj5Gw7xyICR7b3hpZGVXZWlnaHQudG9GaXhlZCgyKX1nICR7b3hpZGV9IGJlbsO2dGlnZW4gU2llOjwvZGl2PmA7DQoNCglmb3IgKGNvbnN0IHNvdXJjZSBvZiBjb21wb3VuZC5zb3VyY2VzKSB7DQoJCWNvbnN0IG1hdGVyaWFsV2VpZ2h0ID0gb3hpZGVXZWlnaHQgLyBzb3VyY2UuZmFjdG9yOw0KCQlodG1sICs9IGANCgkJCTxkaXYgY2xhc3M9ImZvcm11bGEiPg0KCQkJCSR7c291cmNlLm5hbWV9OiA8c3Ryb25nPiR7bWF0ZXJpYWxXZWlnaHQudG9GaXhlZCgyKX1nPC9zdHJvbmc+DQoJCQkJPGRpdiBjbGFzcz0ic21hbGwiIHN0eWxlPSJtYXJnaW4tdG9wOiA1cHg7Ij5VbXJlY2hudW5nc2Zha3RvcjogJHtzb3VyY2UuZmFjdG9yLnRvRml4ZWQoMyl9PC9kaXY+DQoJCQk8L2Rpdj4NCgkJYDsNCgl9DQoNCglyZXN1bHRDb250ZW50LmlubmVySFRNTCA9IGh0bWw7DQoJY3VycmVudE94aWRlRGF0YSA9IHsgb3hpZGUsIHdlaWdodDogb3hpZGVXZWlnaHQsIGNvbXBvdW5kIH07DQoNCgkvLyBEaXNwbGF5IHNhZmV0eSBpbmZvDQoJZGlzcGxheVNhZmV0eUluZm8oY29tcG91bmQuc2FmZXR5LCBveGlkZSk7DQp9DQoNCi8vIENhbGN1bGF0ZSBmcm9tIG1hdGVyaWFsDQpmdW5jdGlvbiBjYWxjdWxhdGVGcm9tTWF0ZXJpYWwoKSB7DQoJY29uc3QgbWF0ZXJpYWxTZWxlY3QgPSBnZXRFbGVtZW50QnlJZCgnbWF0ZXJpYWwtc2VsZWN0Jyk7DQoJY29uc3QgbWF0ZXJpYWxXZWlnaHQgPSBwYXJzZUZsb2F0KGdldEVsZW1lbnRCeUlkKCdtYXRlcmlhbC13ZWlnaHQnKS52YWx1ZSk7DQoJY29uc3QgcmVzdWx0Q29udGVudCA9IGdldEVsZW1lbnRCeUlkKCdtYXRlcmlhbC1yZXN1bHQtY29udGVudCcpOw0KDQoJaWYgKCFtYXRlcmlhbFNlbGVjdC52YWx1ZSB8fCAhbWF0ZXJpYWxXZWlnaHQgfHwgbWF0ZXJpYWxXZWlnaHQgPD0gMCkgew0KCQlyZXN1bHRDb250ZW50LmlubmVySFRNTCA9ICc8cCBjbGFzcz0icGxhY2Vob2xkZXIiPkJpdHRlIHfDpGhsZW4gU2llIGVpbmVuIEF1c2dhbmdzc3RvZmYgdW5kIGdlYmVuIFNpZSBlaW4gZ8O8bHRpZ2VzIEdld2ljaHQgZWluLjwvcD4nOw0KCQlyZXR1cm47DQoJfQ0KDQoJY29uc3QgZGF0YSA9IEpTT04ucGFyc2UobWF0ZXJpYWxTZWxlY3QudmFsdWUpOw0KCWNvbnN0IGNvbXBvdW5kID0gY29tcG91bmRzW2RhdGEub3hpZGVdOw0KCWNvbnN0IHNvdXJjZSA9IGNvbXBvdW5kLnNvdXJjZXMuZmluZChzID0+IHMuZm9ybXVsYSA9PT0gZGF0YS5mb3JtdWxhKTsNCg0KCWNvbnN0IG94aWRlV2VpZ2h0ID0gbWF0ZXJpYWxXZWlnaHQgKiBzb3VyY2UuZmFjdG9yOw0KDQoJbGV0IGh0bWwgPSBgDQoJCTxkaXYgY2xhc3M9InJlc3VsdC12YWx1ZSI+QXVzICR7bWF0ZXJpYWxXZWlnaHQudG9GaXhlZCgyKX1nICR7c291cmNlLm5hbWV9IGVyaGFsdGVuIFNpZTo8L2Rpdj4NCgkJPGRpdiBjbGFzcz0iZm9ybXVsYSI+DQoJCQkke2RhdGEub3hpZGV9OiA8c3Ryb25nPiR7b3hpZGVXZWlnaHQudG9GaXhlZCgyKX1nPC9zdHJvbmc+DQoJCQk8ZGl2IGNsYXNzPSJzbWFsbCIgc3R5bGU9Im1hcmdpbi10b3A6IDVweDsiPlVtcmVjaG51bmdzZmFrdG9yOiAke3NvdXJjZS5mYWN0b3IudG9GaXhlZCgzKX08L2Rpdj4NCgkJPC9kaXY+DQoJYDsNCg0KCXJlc3VsdENvbnRlbnQuaW5uZXJIVE1MID0gaHRtbDsNCgljdXJyZW50TWF0ZXJpYWxEYXRhID0geyBveGlkZTogZGF0YS5veGlkZSwgbWF0ZXJpYWw6IHNvdXJjZS5uYW1lLCB3ZWlnaHQ6IG1hdGVyaWFsV2VpZ2h0LCBveGlkZVdlaWdodCwgY29tcG91bmQgfTsNCg0KCS8vIERpc3BsYXkgc2FmZXR5IGluZm8NCglkaXNwbGF5U2FmZXR5SW5mbyhjb21wb3VuZC5zYWZldHksIGRhdGEub3hpZGUpOw0KfQ0KDQovLyBEaXNwbGF5IHNhZmV0eSBpbmZvcm1hdGlvbg0KZnVuY3Rpb24gZGlzcGxheVNhZmV0eUluZm8oc2FmZXR5LCBveGlkZU5hbWUpIHsNCgljb25zdCBzYWZldHlJbmZvID0gZ2V0RWxlbWVudEJ5SWQoJ3NhZmV0eS1pbmZvJyk7DQoJY29uc3QgY2xhc3NpZmljYXRpb24gPSBzYWZldHkuY2xhc3NpZmljYXRpb247DQoJY29uc3QgY2xhc3NDb2xvciA9IGNsYXNzaWZpY2F0aW9uID09PSAnZ3JlZW4nID8gJ2dyZWVuJyA6IGNsYXNzaWZpY2F0aW9uID09PSAneWVsbG93JyA\/ICd5ZWxsb3cnIDogJ3JlZCc7DQoNCglsZXQgaHRtbCA9IGANCgkJPGRpdiBjbGFzcz0ic2FmZXR5LWNhcmQgc2FmZXR5LSR7Y2xhc3NDb2xvcn0iPg0KCQkJPGRpdiBjbGFzcz0ic2FmZXR5LWhlYWRlciI+DQoJCQkJPGgzPlNpY2hlcmhlaXRzaW5mb3JtYXRpb25lbjogJHtveGlkZU5hbWV9PC9oMz4NCgkJCQk8c3BhbiBjbGFzcz0ic2FmZXR5LWJhZGdlIGJhZGdlLSR7Y2xhc3NDb2xvcn0iPg0KCQkJCQkke2NsYXNzaWZpY2F0aW9uID09PSAnZ3JlZW4nID8gJ+KckyBTaWNoZXInIDogY2xhc3NpZmljYXRpb24gPT09ICd5ZWxsb3cnID8gJ+KaoCBWb3JzaWNodCcgOiAn4puUIEdlZsOkaHJsaWNoJ30NCgkJCQk8L3NwYW4+DQoJCQk8L2Rpdj4NCgkJCTxkaXYgY2xhc3M9InNhZmV0eS1jb250ZW50Ij4NCgkJCQk8ZGl2IGNsYXNzPSJzYWZldHktcm93Ij4NCgkJCQkJPHN0cm9uZz5MRDUwIChvcmFsLCBSYXR0ZSk6PC9zdHJvbmc+DQoJCQkJCTxzcGFuPiR7c2FmZXR5LmxkNTB9PC9zcGFuPg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9InNhZmV0eS1yb3ciPg0KCQkJCQk8c3Ryb25nPkRUSTo8L3N0cm9uZz4NCgkJCQkJPHNwYW4+JHtzYWZldHkuZHRpfTwvc3Bhbj4NCgkJCQk8L2Rpdj4NCgkJCQk8ZGl2IGNsYXNzPSJzYWZldHktcm93Ij4NCgkJCQkJPHN0cm9uZz5HZWZhaHJlbjo8L3N0cm9uZz4NCgkJCQkJPHNwYW4+JHtzYWZldHkuaGF6YXJkc308L3NwYW4+DQoJCQkJPC9kaXY+DQoJYDsNCg0KCWlmIChzYWZldHkuclBocmFzZXMubGVuZ3RoID4gMCkgew0KCQlodG1sICs9IGANCgkJCTxkaXYgY2xhc3M9InNhZmV0eS1yb3ciPg0KCQkJCTxzdHJvbmc+Ui1Tw6R0emU6PC9zdHJvbmc+DQoJCQkJPGRpdj4NCgkJCQkJJHtzYWZldHkuclBocmFzZXMubWFwKHIgPT4gYDxkaXY+PHN0cm9uZz4ke3J9Ojwvc3Ryb25nPiAke3JQaHJhc2VzW3JdIHx8IHJ9PC9kaXY+YCkuam9pbignJyl9DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJYDsNCgl9DQoNCglpZiAoc2FmZXR5LnNQaHJhc2VzLmxlbmd0aCA+IDApIHsNCgkJaHRtbCArPSBgDQoJCQk8ZGl2IGNsYXNzPSJzYWZldHktcm93Ij4NCgkJCQk8c3Ryb25nPlMtU8OkdHplOjwvc3Ryb25nPg0KCQkJCTxkaXY+DQoJCQkJCSR7c2FmZXR5LnNQaHJhc2VzLm1hcChzID0+IGA8ZGl2PjxzdHJvbmc+JHtzfTo8L3N0cm9uZz4gJHtzUGhyYXNlc1tzXSB8fCBzfTwvZGl2PmApLmpvaW4oJycpfQ0KCQkJCTwvZGl2Pg0KCQkJPC9kaXY+DQoJCWA7DQoJfQ0KDQoJaHRtbCArPSBgDQoJCQkJPGRpdiBjbGFzcz0ic2FmZXR5LXJvdyI+DQoJCQkJCTxzdHJvbmc+UGVyc8O2bmxpY2hlIFNjaHV0emF1c3LDvHN0dW5nOjwvc3Ryb25nPg0KCQkJCQk8ZGl2IGNsYXNzPSJwcGUtcmVxdWlyZW1lbnRzIj4NCgkJCQkJCSR7c2FmZXR5LnBwZS5tYXAocCA9PiBgDQoJCQkJCQkJPGRpdiBjbGFzcz0icHBlLWl0ZW0iPg0KCQkJCQkJCQk8c3BhbiBjbGFzcz0icHBlLWljb24iPiR7cHBlSWNvbnNbcF19PC9zcGFuPg0KCQkJCQkJCQk8c3Bhbj4ke3BwZVRpdGxlc1twXX08L3NwYW4+DQoJCQkJCQkJPC9kaXY+DQoJCQkJCQlgKS5qb2luKCcnKX0NCgkJCQkJPC9kaXY+DQoJCQkJPC9kaXY+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJYDsNCg0KCXNhZmV0eUluZm8uaW5uZXJIVE1MID0gaHRtbDsNCn0NCg0KLy8gQ2xlYXIgb3hpZGUgZm9ybQ0KZnVuY3Rpb24gY2xlYXJPeGlkZUZvcm0oKSB7DQoJZ2V0RWxlbWVudEJ5SWQoJ294aWRlLXNlbGVjdCcpLnZhbHVlID0gJyc7DQoJZ2V0RWxlbWVudEJ5SWQoJ294aWRlLXdlaWdodCcpLnZhbHVlID0gJyc7DQoJZ2V0RWxlbWVudEJ5SWQoJ294aWRlLXJlc3VsdC1jb250ZW50JykuaW5uZXJIVE1MID0gJzxwIGNsYXNzPSJwbGFjZWhvbGRlciI+Qml0dGUgd8OkaGxlbiBTaWUgZWluIEVuZG94aWQgdW5kIGdlYmVuIFNpZSBlaW4gR2V3aWNodCBlaW4uPC9wPic7DQoJZ2V0RWxlbWVudEJ5SWQoJ3NhZmV0eS1pbmZvJykuaW5uZXJIVE1MID0gJyc7DQoJY3VycmVudE94aWRlRGF0YSA9IG51bGw7DQp9DQoNCi8vIENsZWFyIG1hdGVyaWFsIGZvcm0NCmZ1bmN0aW9uIGNsZWFyTWF0ZXJpYWxGb3JtKCkgew0KCWdldEVsZW1lbnRCeUlkKCdtYXRlcmlhbC1zZWxlY3QnKS52YWx1ZSA9ICcnOw0KCWdldEVsZW1lbnRCeUlkKCdtYXRlcmlhbC13ZWlnaHQnKS52YWx1ZSA9ICcnOw0KCWdldEVsZW1lbnRCeUlkKCdtYXRlcmlhbC1yZXN1bHQtY29udGVudCcpLmlubmVySFRNTCA9ICc8cCBjbGFzcz0icGxhY2Vob2xkZXIiPkJpdHRlIHfDpGhsZW4gU2llIGVpbmVuIEF1c2dhbmdzc3RvZmYgdW5kIGdlYmVuIFNpZSBlaW4gR2V3aWNodCBlaW4uPC9wPic7DQoJZ2V0RWxlbWVudEJ5SWQoJ3NhZmV0eS1pbmZvJykuaW5uZXJIVE1MID0gJyc7DQoJY3VycmVudE1hdGVyaWFsRGF0YSA9IG51bGw7DQp9DQoNCi8vIEV4cG9ydCByZXN1bHRzIGFzIFBERg0KZnVuY3Rpb24gZXhwb3J0UmVzdWx0c0FzUERGKCkgew0KCWlmICghY3VycmVudE94aWRlRGF0YSAmJiAhY3VycmVudE1hdGVyaWFsRGF0YSkgew0KCQlhbGVydCgnQml0dGUgZsO8aHJlbiBTaWUgenVlcnN0IGVpbmUgQmVyZWNobnVuZyBkdXJjaC4nKTsNCgkJcmV0dXJuOw0KCX0NCg0KCS8vIENoZWNrIGlmIGpzUERGIGlzIGxvYWRlZA0KCWlmICh0eXBlb2Ygd2luZG93LmpzcGRmID09PSAndW5kZWZpbmVkJykgew0KCQlhbGVydCgnUERGLUV4cG9ydCBiZW7DtnRpZ3QgZGllIGpzUERGLUJpYmxpb3RoZWsuIEJpdHRlIHdlbmRlbiBTaWUgc2ljaCBhbiBkZW4gQWRtaW5pc3RyYXRvci4nKTsNCgkJcmV0dXJuOw0KCX0NCg0KCWNvbnN0IHsganNQREYgfSA9IHdpbmRvdy5qc3BkZjsNCgljb25zdCBkb2MgPSBuZXcganNQREYoKTsNCg0KCWRvYy5zZXRGb250U2l6ZSgxNik7DQoJZG9jLnRleHQoJ0tlcmFtaWstT3hpZCBVbXJlY2huZXInLCAyMCwgMjApOw0KCWRvYy5zZXRGb250U2l6ZSgxMik7DQoJZG9jLnRleHQoJ0JlcmVjaG51bmdzZXJnZWJuaXMgbWl0IFNpY2hlcmhlaXRzaW5mb3JtYXRpb25lbicsIDIwLCAzMCk7DQoNCglsZXQgeVBvcyA9IDQ1Ow0KDQoJaWYgKGN1cnJlbnRPeGlkZURhdGEpIHsNCgkJY29uc3QgeyBveGlkZSwgd2VpZ2h0LCBjb21wb3VuZCB9ID0gY3VycmVudE94aWRlRGF0YTsNCgkJZG9jLnNldEZvbnRTaXplKDE0KTsNCgkJZG9jLnRleHQoYEVuZG94aWQ6ICR7b3hpZGV9ICgke3dlaWdodC50b0ZpeGVkKDIpfWcpYCwgMjAsIHlQb3MpOw0KCQl5UG9zICs9IDEwOw0KDQoJCWRvYy5zZXRGb250U2l6ZSgxMik7DQoJCWRvYy50ZXh0KCdCZW7DtnRpZ3RlIEF1c2dhbmdzc3RvZmZlOicsIDIwLCB5UG9zKTsNCgkJeVBvcyArPSA4Ow0KDQoJCWZvciAoY29uc3Qgc291cmNlIG9mIGNvbXBvdW5kLnNvdXJjZXMpIHsNCgkJCWNvbnN0IG1hdGVyaWFsV2VpZ2h0ID0gd2VpZ2h0IC8gc291cmNlLmZhY3RvcjsNCgkJCWRvYy50ZXh0KGAgICR7c291cmNlLm5hbWV9OiAke21hdGVyaWFsV2VpZ2h0LnRvRml4ZWQoMil9Z2AsIDI1LCB5UG9zKTsNCgkJCXlQb3MgKz0gNjsNCgkJfQ0KCX0NCg0KCWlmIChjdXJyZW50TWF0ZXJpYWxEYXRhKSB7DQoJCWNvbnN0IHsgb3hpZGUsIG1hdGVyaWFsLCB3ZWlnaHQsIG94aWRlV2VpZ2h0IH0gPSBjdXJyZW50TWF0ZXJpYWxEYXRhOw0KCQlkb2Muc2V0Rm9udFNpemUoMTQpOw0KCQlkb2MudGV4dChgQXVzZ2FuZ3NzdG9mZjogJHttYXRlcmlhbH0gKCR7d2VpZ2h0LnRvRml4ZWQoMil9ZylgLCAyMCwgeVBvcyk7DQoJCXlQb3MgKz0gMTA7DQoNCgkJZG9jLnNldEZvbnRTaXplKDEyKTsNCgkJZG9jLnRleHQoYEVyZ2lidDogJHtveGlkZX0gKCR7b3hpZGVXZWlnaHQudG9GaXhlZCgyKX1nKWAsIDIwLCB5UG9zKTsNCgkJeVBvcyArPSAxMDsNCgl9DQoNCgkvLyBBZGQgc2FmZXR5IGluZm9ybWF0aW9uDQoJY29uc3Qgc2FmZXR5ID0gY3VycmVudE94aWRlRGF0YSA\/IGN1cnJlbnRPeGlkZURhdGEuY29tcG91bmQuc2FmZXR5IDogY3VycmVudE1hdGVyaWFsRGF0YS5jb21wb3VuZC5zYWZldHk7DQoJeVBvcyArPSAxMDsNCglkb2Muc2V0Rm9udFNpemUoMTQpOw0KCWRvYy50ZXh0KCdTaWNoZXJoZWl0c2luZm9ybWF0aW9uZW46JywgMjAsIHlQb3MpOw0KCXlQb3MgKz0gODsNCg0KCWRvYy5zZXRGb250U2l6ZSgxMSk7DQoJZG9jLnRleHQoYExENTA6ICR7c2FmZXR5LmxkNTB9YCwgMjAsIHlQb3MpOw0KCXlQb3MgKz0gNjsNCglkb2MudGV4dChgRFRJOiAke3NhZmV0eS5kdGl9YCwgMjAsIHlQb3MpOw0KCXlQb3MgKz0gNjsNCglkb2MudGV4dChgR2VmYWhyZW46ICR7c2FmZXR5LmhhemFyZHN9YCwgMjAsIHlQb3MsIHsgbWF4V2lkdGg6IDE3MCB9KTsNCg0KCWRvYy5zYXZlKCdrZXJhbWlrLW94aWQtdW1yZWNobnVuZy5wZGYnKTsNCn0NCg0KLy8gRXhwb3J0IENTVg0KZnVuY3Rpb24gZXhwb3J0T3hpZGVSZXN1bHRDU1YoKSB7DQoJaWYgKCFjdXJyZW50T3hpZGVEYXRhKSB7DQoJCWFsZXJ0KCdCaXR0ZSBmw7xocmVuIFNpZSB6dWVyc3QgZWluZSBCZXJlY2hudW5nIGR1cmNoLicpOw0KCQlyZXR1cm47DQoJfQ0KDQoJY29uc3QgeyBveGlkZSwgd2VpZ2h0LCBjb21wb3VuZCB9ID0gY3VycmVudE94aWRlRGF0YTsNCglsZXQgY3N2ID0gJ0VuZG94aWQsR2V3aWNodCAoZyksQXVzZ2FuZ3NzdG9mZixCZW7DtnRpZ3QgKGcpLEZha3RvclxuJzsNCg0KCWZvciAoY29uc3Qgc291cmNlIG9mIGNvbXBvdW5kLnNvdXJjZXMpIHsNCgkJY29uc3QgbWF0ZXJpYWxXZWlnaHQgPSB3ZWlnaHQgLyBzb3VyY2UuZmFjdG9yOw0KCQljc3YgKz0gYCR7b3hpZGV9LCR7d2VpZ2h0LnRvRml4ZWQoMil9LCR7c291cmNlLm5hbWV9LCR7bWF0ZXJpYWxXZWlnaHQudG9GaXhlZCgyKX0sJHtzb3VyY2UuZmFjdG9yLnRvRml4ZWQoMyl9XG5gOw0KCX0NCg0KCWRvd25sb2FkQ1NWKGNzdiwgJ294aWQtdW1yZWNobnVuZy5jc3YnKTsNCn0NCg0KZnVuY3Rpb24gZXhwb3J0TWF0ZXJpYWxSZXN1bHRDU1YoKSB7DQoJaWYgKCFjdXJyZW50TWF0ZXJpYWxEYXRhKSB7DQoJCWFsZXJ0KCdCaXR0ZSBmw7xocmVuIFNpZSB6dWVyc3QgZWluZSBCZXJlY2hudW5nIGR1cmNoLicpOw0KCQlyZXR1cm47DQoJfQ0KDQoJY29uc3QgeyBveGlkZSwgbWF0ZXJpYWwsIHdlaWdodCwgb3hpZGVXZWlnaHQgfSA9IGN1cnJlbnRNYXRlcmlhbERhdGE7DQoJY29uc3QgY3N2ID0gYEF1c2dhbmdzc3RvZmYsR2V3aWNodCAoZyksRW5kb3hpZCxFcmdpYnQgKGcpXG4ke21hdGVyaWFsfSwke3dlaWdodC50b0ZpeGVkKDIpfSwke294aWRlfSwke294aWRlV2VpZ2h0LnRvRml4ZWQoMil9XG5gOw0KDQoJZG93bmxvYWRDU1YoY3N2LCAnbWF0ZXJpYWwtdW1yZWNobnVuZy5jc3YnKTsNCn0NCg0KZnVuY3Rpb24gZG93bmxvYWRDU1YoY3N2LCBmaWxlbmFtZSkgew0KCWNvbnN0IGJsb2IgPSBuZXcgQmxvYihbY3N2XSwgeyB0eXBlOiAndGV4dC9jc3Y7Y2hhcnNldD11dGYtODsnIH0pOw0KCWNvbnN0IGxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdhJyk7DQoJbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTsNCglsaW5rLmRvd25sb2FkID0gZmlsZW5hbWU7DQoJbGluay5jbGljaygpOw0KfQ0KDQovLyBFdmVudCBsaXN0ZW5lcnMNCmNvbnN0IGJ0bkNhbGNPeGlkZSA9IGdldEVsZW1lbnRCeUlkKCdidG4tY2FsYy1veGlkZScpOw0KaWYgKGJ0bkNhbGNPeGlkZSkgew0KCWJ0bkNhbGNPeGlkZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNhbGN1bGF0ZUZyb21PeGlkZSk7DQp9DQoNCmNvbnN0IGJ0bkNsZWFyT3hpZGUgPSBnZXRFbGVtZW50QnlJZCgnYnRuLWNsZWFyLW94aWRlJyk7DQppZiAoYnRuQ2xlYXJPeGlkZSkgew0KCWJ0bkNsZWFyT3hpZGUuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBjbGVhck94aWRlRm9ybSk7DQp9DQoNCmNvbnN0IGJ0bkV4cG9ydFBkZiA9IGdldEVsZW1lbnRCeUlkKCdidG4tZXhwb3J0LXBkZicpOw0KaWYgKGJ0bkV4cG9ydFBkZikgew0KCWJ0bkV4cG9ydFBkZi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV4cG9ydFJlc3VsdHNBc1BERik7DQp9DQoNCmNvbnN0IGJ0bkV4cG9ydENzdk94aWRlID0gZ2V0RWxlbWVudEJ5SWQoJ2J0bi1leHBvcnQtY3N2LW94aWRlJyk7DQppZiAoYnRuRXhwb3J0Q3N2T3hpZGUpIHsNCglidG5FeHBvcnRDc3ZPeGlkZS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGV4cG9ydE94aWRlUmVzdWx0Q1NWKTsNCn0NCg0KY29uc3QgYnRuQ2FsY01hdGVyaWFsID0gZ2V0RWxlbWVudEJ5SWQoJ2J0bi1jYWxjLW1hdGVyaWFsJyk7DQppZiAoYnRuQ2FsY01hdGVyaWFsKSB7DQoJYnRuQ2FsY01hdGVyaWFsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2FsY3VsYXRlRnJvbU1hdGVyaWFsKTsNCn0NCg0KY29uc3QgYnRuQ2xlYXJNYXRlcmlhbCA9IGdldEVsZW1lbnRCeUlkKCdidG4tY2xlYXItbWF0ZXJpYWwnKTsNCmlmIChidG5DbGVhck1hdGVyaWFsKSB7DQoJYnRuQ2xlYXJNYXRlcmlhbC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsZWFyTWF0ZXJpYWxGb3JtKTsNCn0NCg0KY29uc3QgYnRuRXhwb3J0Q3N2TWF0ZXJpYWwgPSBnZXRFbGVtZW50QnlJZCgnYnRuLWV4cG9ydC1jc3YtbWF0ZXJpYWwnKTsNCmlmIChidG5FeHBvcnRDc3ZNYXRlcmlhbCkgew0KCWJ0bkV4cG9ydENzdk1hdGVyaWFsLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZXhwb3J0TWF0ZXJpYWxSZXN1bHRDU1YpOw0KfQ0KDQovLyBJbml0aWFsaXplDQppbml0aWFsaXplTWF0ZXJpYWxTZWxlY3QoKTsNCgogIH0gY2F0Y2goZXJyb3IpIHsKICAgIGNvbnNvbGUuZXJyb3IoJ0tlcmFtaWsgVG9vbHM6IFNjcmlwdCBlcnJvcjonLCBlcnJvcik7CiAgfQp9KSgpOw==\");var s=decodeURIComponent(escape(b));eval(s);}catch(e){console.error(\"Keramik Tools Script Error:\",e);}})();<\/script><\/div>\n<\/div>\n\n\n\n<div data-wp-class--is-open=\"state.isOpen\" data-wp-context=\"{ &quot;id&quot;: &quot;accordion-item-4&quot;, &quot;openByDefault&quot;: false }\" data-wp-init=\"callbacks.initAccordionItems\" data-wp-on-window--hashchange=\"callbacks.hashChange\" class=\"wp-block-accordion-item has-border-color is-layout-flow wp-block-accordion-item-is-layout-flow\" style=\"border-color:#1a1a1a;border-width:2px;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem\">\n<h3 class=\"wp-block-accordion-heading\"><button aria-expanded=\"false\" aria-controls=\"accordion-item-4-panel\" data-wp-bind--aria-expanded=\"state.isOpen\" data-wp-on--click=\"actions.toggle\" data-wp-on--keydown=\"actions.handleKeyDown\" id=\"accordion-item-4\" type=\"button\" class=\"wp-block-accordion-heading__toggle\"><span class=\"wp-block-accordion-heading__toggle-title\">\u98df\u54c1\u63a5\u89e6\u5206\u6790\u5efa\u8bae<\/span><span class=\"wp-block-accordion-heading__toggle-icon\" aria-hidden=\"true\">+<\/span><\/button><\/h3>\n\n\n\n<div inert aria-labelledby=\"accordion-item-4\" data-wp-bind--inert=\"!state.isOpen\" id=\"accordion-item-4-panel\" role=\"region\" class=\"wp-block-accordion-panel has-border-color is-layout-flow wp-block-accordion-panel-is-layout-flow\" style=\"border-color:#1a1a1a;border-width:1px;border-top-left-radius:0.5rem;border-top-right-radius:0.5rem;border-bottom-left-radius:0.5rem;border-bottom-right-radius:0.5rem\"><div id=\"helenas-keramik-tool-4\" class=\"helenas-keramik-tool\" data-module=\"grenzwerte\"><style>#helenas-keramik-tool-4 h1{\r\n\tcolor: var(--wp--preset--color--foreground, #2c3e50);\r\n\tborder-bottom: 3px solid var(--wp--preset--color--primary, #3498db);\r\n\tpadding-bottom: 1rem;\r\n\tmargin-bottom: 1.5rem;\r\n\tfont-size: clamp(1.5rem, 4vw, 2.5rem);\r\n}#helenas-keramik-tool-4 h2{\r\n\tcolor: var(--wp--preset--color--foreground, #34495e);\r\n\tfont-size: clamp(1.2rem, 3vw, 1.8rem);\r\n\tmargin: 1.5rem 0 1rem 0;\r\n}#helenas-keramik-tool-4 h3{\r\n\tcolor: var(--wp--preset--color--foreground, #2c3e50);\r\n\tfont-size: clamp(1rem, 2.5vw, 1.4rem);\r\n\tmargin: 1rem 0;\r\n}#helenas-keramik-tool-4 .calculator-container, #helenas-keramik-tool-4 .yaml-import-section, #helenas-keramik-tool-4 .limits-table-section{\r\n\tbackground: var(--wp--preset--color--base, #ffffff);\r\n\tborder-radius: 8px;\r\n\tpadding: 1rem;\r\n\tmargin-bottom: 1rem;\r\n\tbox-shadow: 0 2px 10px rgba(0,0,0,0.1);\r\n}#helenas-keramik-tool-4 .calculator-header{\r\n\tdisplay: flex;\r\n\tjustify-content: space-between;\r\n\talign-items: center;\r\n\tcursor: pointer;\r\n\tuser-select: none;\r\n\tpadding: 10px;\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f0f0f0);\r\n\tborder-radius: 5px;\r\n\tmargin-bottom: 15px;\r\n}#helenas-keramik-tool-4 .calculator-header:hover{\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #e0e0e0);\r\n}#helenas-keramik-tool-4 .calculator-header h3{\r\n\tmargin: 0;\r\n}#helenas-keramik-tool-4 .toggle-icon{\r\n\ttransition: transform 0.3s;\r\n\tfont-size: 1.2em;\r\n}#helenas-keramik-tool-4 .calculator-header.open .toggle-icon{\r\n\ttransform: rotate(180deg);\r\n}#helenas-keramik-tool-4 .calculator-content{\r\n\tmax-height: 0;\r\n\toverflow: hidden;\r\n\ttransition: max-height 0.3s ease-out;\r\n}#helenas-keramik-tool-4 .calculator-content.open{\r\n\tmax-height: 2000px;\r\n\ttransition: max-height 0.5s ease-in;\r\n}#helenas-keramik-tool-4 .calculator-intro{\r\n\tpadding: 1rem;\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #e3f2fd);\r\n\tborder-left: 4px solid var(--wp--preset--color--primary, #3498db);\r\n\tmargin-bottom: 1rem;\r\n\tborder-radius: 4px;\r\n}#helenas-keramik-tool-4 .calculator-grid{\r\n\tdisplay: grid;\r\n\tgrid-template-columns: 1fr 1fr;\r\n\tgap: 15px;\r\n\tmargin-bottom: 20px;\r\n}#helenas-keramik-tool-4 .input-group{\r\n\tdisplay: flex;\r\n\tflex-direction: column;\r\n}#helenas-keramik-tool-4 .input-group label{\r\n\tmargin-bottom: 8px;\r\n\tcolor: var(--wp--preset--color--contrast, #555);\r\n\tfont-weight: 600;\r\n}#helenas-keramik-tool-4 .input-group input, #helenas-keramik-tool-4 .metal-select, #helenas-keramik-tool-4 .lab-value-input{\r\n\tpadding: 10px;\r\n\tborder: 2px solid var(--wp--preset--color--contrast, #ddd);\r\n\tborder-radius: 6px;\r\n\tfont-size: 16px;\r\n}#helenas-keramik-tool-4 .input-group input:focus, #helenas-keramik-tool-4 .metal-select:focus, #helenas-keramik-tool-4 .lab-value-input:focus{\r\n\toutline: none;\r\n\tborder-color: var(--wp--preset--color--primary, #3498db);\r\n}#helenas-keramik-tool-4 .lab-value-row{\r\n\tdisplay: grid;\r\n\tgrid-template-columns: 2fr 1fr auto;\r\n\tgap: 10px;\r\n\tmargin-bottom: 12px;\r\n\talign-items: center;\r\n}#helenas-keramik-tool-4 .remove-lab-btn{\r\n\tbackground: #dc3545;\r\n\tcolor: white;\r\n\tborder: none;\r\n\tpadding: 10px 15px;\r\n\tborder-radius: 6px;\r\n\tcursor: pointer;\r\n\tfont-size: 14px;\r\n\ttransition: background 0.3s;\r\n}#helenas-keramik-tool-4 .remove-lab-btn:hover{\r\n\tbackground: #c82333;\r\n}#helenas-keramik-tool-4 .add-btn, #helenas-keramik-tool-4 .calculate-btn, #helenas-keramik-tool-4 .parse-btn{\r\n\tbackground: linear-gradient(135deg, var(--wp--preset--color--primary, #3498db) 0%, #2980b9 100%);\r\n\tcolor: white;\r\n\tborder: none;\r\n\tpadding: 12px 24px;\r\n\tborder-radius: 8px;\r\n\tfont-size: 16px;\r\n\tfont-weight: 600;\r\n\tcursor: pointer;\r\n\tmargin-top: 10px;\r\n\ttransition: transform 0.3s, box-shadow 0.3s;\r\n}#helenas-keramik-tool-4 .add-btn:hover, #helenas-keramik-tool-4 .calculate-btn:hover, #helenas-keramik-tool-4 .parse-btn:hover{\r\n\ttransform: translateY(-2px);\r\n\tbox-shadow: 0 5px 20px rgba(52, 152, 219, 0.4);\r\n}#helenas-keramik-tool-4 .calculate-btn{\r\n\twidth: 100%;\r\n\tmargin-top: 20px;\r\n}#helenas-keramik-tool-4 .result-display{\r\n\tbackground: var(--wp--preset--color--base, white);\r\n\tborder: 2px solid #e0e0e0;\r\n\tborder-radius: 10px;\r\n\tpadding: 20px;\r\n\tmargin-top: 20px;\r\n\tmin-height: 50px;\r\n}#helenas-keramik-tool-4 .result-safe{\r\n\tborder-left: 5px solid #27ae60;\r\n\tbackground: #d4f1d4;\r\n}#helenas-keramik-tool-4 .result-warning{\r\n\tborder-left: 5px solid #f39c12;\r\n\tbackground: #fff4d4;\r\n}#helenas-keramik-tool-4 .result-critical{\r\n\tborder-left: 5px solid #e74c3c;\r\n\tbackground: #ffd4d4;\r\n}#helenas-keramik-tool-4 .import-methods{\r\n\tdisplay: flex;\r\n\tgap: 0;\r\n\tmargin-bottom: 20px;\r\n\tborder-bottom: 2px solid #e0e0e0;\r\n}#helenas-keramik-tool-4 .tab-btn{\r\n\tpadding: 12px 24px;\r\n\tbackground: none;\r\n\tborder: none;\r\n\tborder-bottom: 3px solid transparent;\r\n\tcursor: pointer;\r\n\tfont-weight: 600;\r\n\tcolor: var(--wp--preset--color--contrast, #666);\r\n\ttransition: all 0.3s;\r\n}#helenas-keramik-tool-4 .tab-btn.active{\r\n\tborder-bottom-color: var(--wp--preset--color--primary, #3498db);\r\n\tcolor: var(--wp--preset--color--primary, #3498db);\r\n}#helenas-keramik-tool-4 .tab-btn:hover{\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f5f5f5);\r\n}#helenas-keramik-tool-4 .tab-content{\r\n\tpadding: 20px 0;\r\n}#helenas-keramik-tool-4 .tab-content.hidden{\r\n\tdisplay: none;\r\n}#helenas-keramik-tool-4 .help-text{\r\n\tcolor: var(--wp--preset--color--contrast, #666);\r\n\tmargin-bottom: 10px;\r\n}#helenas-keramik-tool-4 #yamlInput{\r\n\twidth: 100%;\r\n\tpadding: 12px;\r\n\tborder: 2px solid var(--wp--preset--color--contrast, #ddd);\r\n\tborder-radius: 6px;\r\n\tfont-family: 'Courier New', monospace;\r\n\tfont-size: 0.9rem;\r\n\tmargin-bottom: 10px;\r\n}#helenas-keramik-tool-4 #yamlFileInput{\r\n\tpadding: 10px;\r\n\tborder: 2px solid var(--wp--preset--color--contrast, #ddd);\r\n\tborder-radius: 6px;\r\n\twidth: 100%;\r\n\tmargin-bottom: 10px;\r\n}#helenas-keramik-tool-4 .yaml-result{\r\n\tmargin-top: 20px;\r\n\tpadding: 15px;\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f8f9fa);\r\n\tborder-radius: 8px;\r\n\tborder: 2px solid #e0e0e0;\r\n}#helenas-keramik-tool-4 .table-responsive{\r\n\toverflow-x: auto;\r\n\tmargin: 20px 0;\r\n}#helenas-keramik-tool-4 .limits-table{\r\n\twidth: 100%;\r\n\tborder-collapse: collapse;\r\n\tbackground: var(--wp--preset--color--base, white);\r\n}#helenas-keramik-tool-4 .limits-table th, #helenas-keramik-tool-4 .limits-table td{\r\n\tpadding: 12px;\r\n\ttext-align: left;\r\n\tborder-bottom: 1px solid #ddd;\r\n}#helenas-keramik-tool-4 .limits-table th{\r\n\tbackground: var(--wp--preset--color--primary, #3498db);\r\n\tcolor: white;\r\n\tfont-weight: 600;\r\n\tposition: sticky;\r\n\ttop: 0;\r\n}#helenas-keramik-tool-4 .limits-table tr:hover{\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #f9f9f9);\r\n}#helenas-keramik-tool-4 .limits-table .lowest{\r\n\tbackground: color-mix(in srgb, var(--wp--preset--color--custom-bgr-indiv, #f9f9f9) 50%, #ffeb3b 50%);\r\n\tfont-weight: 600;\r\n}#helenas-keramik-tool-4 .limits-table .tdi-info{\r\n\tfont-size: 0.85em;\r\n\tcolor: var(--wp--preset--color--contrast, #666);\r\n}#helenas-keramik-tool-4 .table-notes{\r\n\tmargin-top: 20px;\r\n\tpadding: 15px;\r\n\tbackground: var(--wp--preset--color--custom-bgr-indiv, #e3f2fd);\r\n\tborder-left: 4px solid var(--wp--preset--color--primary, #3498db);\r\n\tborder-radius: 4px;\r\n}#helenas-keramik-tool-4 .table-notes h3{\r\n\tmargin-top: 0;\r\n}#helenas-keramik-tool-4 .table-notes ul{\r\n\tmargin-left: 20px;\r\n}#helenas-keramik-tool-4 .table-notes li{\r\n\tmargin-bottom: 8px;\r\n}@media (max-width: 768px){#helenas-keramik-tool-4 .calculator-grid{\r\n\t\tgrid-template-columns: 1fr;\r\n\t}#helenas-keramik-tool-4 .lab-value-row{\r\n\t\tgrid-template-columns: 1fr;\r\n\t}#helenas-keramik-tool-4 .remove-lab-btn{\r\n\t\twidth: 100%;\r\n\t}#helenas-keramik-tool-4 .import-methods{\r\n\t\tflex-direction: column;\r\n\t}#helenas-keramik-tool-4 .tab-btn{\r\n\t\twidth: 100%;\r\n\t\ttext-align: center;\r\n\t}#helenas-keramik-tool-4 .limits-table{\r\n\t\tfont-size: 0.85em;\r\n\t}#helenas-keramik-tool-4 .limits-table th, #helenas-keramik-tool-4 .limits-table td{\r\n\t\tpadding: 8px;\r\n\t}\r\n}\r\n<\/style><h1>\u9676\u74f7\u4e2d\u91cd\u91d1\u5c5e\u7684\u9650\u503c<\/h1>\r\n\r\n<div class=\"calculator-container\">\r\n\t<div class=\"calculator-header\" id=\"calculatorHeader\" role=\"button\" tabindex=\"0\">\r\n\t\t<h3>\u5b9e\u9a8c\u5ba4\u503c\u9650\u503c\u8ba1\u7b97\u5668<\/h3>\r\n\t\t<span class=\"toggle-icon\">\u25bc<\/span>\r\n\t<\/div>\r\n\t<div class=\"calculator-content\" id=\"calculatorContent\">\r\n\t\t<div class=\"calculator-intro\">\r\n\t\t\t<p>\u6839\u636e\u4f60\u7684\u4f53\u91cd\u548c\u9002\u7528\u9650\u503c\u8ba1\u7b97\u5143\u7d20\u7684\u6700\u5927\u5141\u8bb8\u91cf\u3002<\/p>\r\n\t\t<\/div>\r\n\r\n\t\t<div class=\"calculator-grid\">\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<label for=\"bodyWeight\">\u4f53\u91cd (kg)\uff1a<\/label>\r\n\t\t\t\t<input type=\"number\" id=\"bodyWeight\" min=\"1\" step=\"1\" value=\"60\">\r\n\t\t\t<\/div>\r\n\r\n\t\t\t<div class=\"input-group\">\r\n\t\t\t\t<label for=\"cupsPerDay\">\u6bcf\u5929\u676f\u6570\uff1a<\/label>\r\n\t\t\t\t<input type=\"number\" id=\"cupsPerDay\" min=\"1\" step=\"1\" value=\"3\">\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\r\n\t\t<div id=\"labValuesContainer\">\r\n\t\t\t<div class=\"lab-value-row\">\r\n\t\t\t\t<select class=\"metal-select\">\r\n\t\t\t\t\t<option value=\"\">\u2014 Metall w\u00e4hlen \u2014<\/option>\r\n\t\t\t\t\t<option value=\"Pb\">Blei (Pb)<\/option>\r\n\t\t\t\t\t<option value=\"Cd\">Cadmium (Cd)<\/option>\r\n\t\t\t\t\t<option value=\"As\">Arsen (As)<\/option>\r\n\t\t\t\t\t<option value=\"Ba\">Barium (Ba)<\/option>\r\n\t\t\t\t\t<option value=\"Cr\">Chrom (Cr)<\/option>\r\n\t\t\t\t\t<option value=\"Co\">Cobalt (Co)<\/option>\r\n\t\t\t\t\t<option value=\"Ni\">Nickel (Ni)<\/option>\r\n\t\t\t\t\t<option value=\"Al\">Aluminium (Al)<\/option>\r\n\t\t\t\t<\/select>\r\n\t\t\t\t<input type=\"number\" class=\"lab-value-input\" placeholder=\"\u03bcg\/kg\" step=\"0.01\" min=\"0\">\r\n\t\t\t\t<button type=\"button\" class=\"remove-lab-btn\">\u2715<\/button>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\r\n\t\t<button type=\"button\" id=\"addLabValueBtn\" class=\"add-btn\">+ \u6dfb\u52a0\u91d1\u5c5e<\/button>\r\n\r\n\t\t<button type=\"button\" id=\"calculateBtn\" class=\"calculate-btn\">\u8ba1\u7b97<\/button>\r\n\r\n\t\t<div id=\"calculatorResult\" class=\"result-display\"><\/div>\r\n\t<\/div>\r\n<\/div>\r\n\r\n<section class=\"yaml-import-section\">\r\n\t<h2>\ud83e\uddea \u91c9\u6599\u5206\u6790 (Glazy \u5bfc\u5165)<\/h2>\r\n\r\n\t<div class=\"import-methods\">\r\n\t\t<button class=\"tab-btn active\" data-tab=\"yaml-paste\">\u7c98\u8d34 YAML<\/button>\r\n\t\t<button class=\"tab-btn\" data-tab=\"yaml-file\">\u4e0a\u4f20 YAML \u6587\u4ef6<\/button>\r\n\t<\/div>\r\n\r\n\t<div class=\"tab-content\" id=\"yaml-paste\">\r\n\t\t<p class=\"help-text\">\u5728\u6b64\u5904\u7c98\u8d34 Glazy \u7684 YAML \u5bfc\u51fa\uff1a<\/p>\r\n\t\t<textarea id=\"yamlInput\" rows=\"10\" placeholder=\"recipe:\r\n  name: Meine Glasur\r\n  oxides:\r\n    SiO2: 65.5\r\n    Al2O3: 15.2\r\n    ...\"><\/textarea>\r\n\t\t<button type=\"button\" id=\"parseYamlBtn\" class=\"parse-btn\">\u89e3\u6790 YAML<\/button>\r\n\t<\/div>\r\n\r\n\t<div class=\"tab-content hidden\" id=\"yaml-file\">\r\n\t\t<p class=\"help-text\">\u4ece Glazy \u4e0a\u4f20 YAML \u6587\u4ef6\uff1a<\/p>\r\n\t\t<input type=\"file\" id=\"yamlFileInput\" accept=\".yaml,.yml\">\r\n\t\t<button type=\"button\" id=\"parseFileBtn\" class=\"parse-btn\">\u89e3\u6790\u6587\u4ef6<\/button>\r\n\t<\/div>\r\n\r\n\t<div id=\"yamlResult\" class=\"yaml-result\"><\/div>\r\n<\/section>\r\n\r\n<section class=\"limits-table-section\">\r\n\t<h2>\ud83d\udcca \u9650\u503c\u6982\u89c8<\/h2>\r\n\r\n\t<div class=\"table-responsive\">\r\n\t\t<table class=\"limits-table\">\r\n\t\t\t<thead>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<th>\u91d1\u5c5e \/ \u5143\u7d20<\/th>\r\n\t\t\t\t\t<th>\u6b27\u76df (\u6700\u4f4e\u503c)<\/th>\r\n\t\t\t\t\t<th>\u7f8e\u56fd (FDA)<\/th>\r\n\t\t\t\t\t<th>\u8377\u5170<\/th>\r\n\t\t\t\t\t<th>TDI \/ BMDL<\/th>\r\n\t\t\t\t<\/tr>\r\n\t\t\t<\/thead>\r\n\t\t\t<tbody>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><strong>Blei (Pb)<\/strong><\/td>\r\n\t\t\t\t\t<td class=\"lowest\">330 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>4000 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>500 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td class=\"tdi-info\">BMDL\u2080\u2081: 0,5 \u03bcg\/kg\/Tag<\/td>\r\n\t\t\t\t<\/tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><strong>Cadmium (Cd)<\/strong><\/td>\r\n\t\t\t\t\t<td class=\"lowest\">170 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>300 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>50 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td class=\"tdi-info\">TWI: 2,5 \u03bcg\/kg bw<br>= 0,36 \u03bcg\/kg\/Tag<\/td>\r\n\t\t\t\t<\/tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><strong>Arsen (As)<\/strong><\/td>\r\n\t\t\t\t\t<td class=\"lowest\">1700 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td class=\"tdi-info\">BMDL: 0,3-8 \u03bcg\/kg\/Tag<\/td>\r\n\t\t\t\t<\/tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><strong>Barium (Ba)<\/strong><\/td>\r\n\t\t\t\t\t<td class=\"lowest\">1000 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td class=\"tdi-info\">TDI: 200 \u03bcg\/kg\/Tag<\/td>\r\n\t\t\t\t<\/tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><strong>Chrom (Cr)<\/strong><\/td>\r\n\t\t\t\t\t<td class=\"lowest\">1700 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td class=\"tdi-info\">TDI: 300 \u03bcg\/kg\/Tag<\/td>\r\n\t\t\t\t<\/tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><strong>Cobalt (Co)<\/strong><\/td>\r\n\t\t\t\t\t<td class=\"lowest\">3,3 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td>10 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td class=\"tdi-info\">TDI: 1,6 \u03bcg\/kg\/Tag<\/td>\r\n\t\t\t\t<\/tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><strong>Nickel (Ni)<\/strong><\/td>\r\n\t\t\t\t\t<td class=\"lowest\">140 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td class=\"tdi-info\">TDI: 2,8 \u03bcg\/kg\/Tag<\/td>\r\n\t\t\t\t<\/tr>\r\n\t\t\t\t<tr>\r\n\t\t\t\t\t<td><strong>Aluminium (Al)<\/strong><\/td>\r\n\t\t\t\t\t<td class=\"lowest\">17.000 \u03bcg\/kg<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td>\u2014<\/td>\r\n\t\t\t\t\t<td class=\"tdi-info\">TWI: 1 mg\/kg bw<\/td>\r\n\t\t\t\t<\/tr>\r\n\t\t\t<\/tbody>\r\n\t\t<\/table>\r\n\t<\/div>\r\n\r\n\t<div class=\"table-notes\">\r\n\t\t<h3>\u6ce8\u610f\uff1a<\/h3>\r\n\t\t<ul>\r\n\t\t\t<li><strong>\u6b27\u76df\uff1a<\/strong>\u6cd5\u89c4 (EU) 2023\/923 (\u81ea 2026 \u5e74 1 \u6708 1 \u65e5\u8d77\u751f\u6548)<\/li>\r\n\t\t\t<li><strong>TDI\uff1a<\/strong>\u6bcf\u65e5\u53ef\u8010\u53d7\u6444\u5165\u91cf<\/li>\r\n\t\t\t<li><strong>TWI\uff1a<\/strong>\u6bcf\u5468\u53ef\u8010\u53d7\u6444\u5165\u91cf<\/li>\r\n\t\t\t<li><strong>BMDL\uff1a<\/strong>\u57fa\u51c6\u5242\u91cf\u4e0b\u9650<\/li>\r\n\t\t<\/ul>\r\n\t<\/div>\r\n<\/section>\r\n<\/div><script src=\"https:\/\/kayhelena.work\/wp-content\/plugins\/helenas-keramik-tools\/assets\/vendor\/js-yaml.min.js\"><\/script><script>(function(){try{var b=atob(\"KGZ1bmN0aW9uKCkgewogIGNvbnN0IGJsb2NrQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2hlbGVuYXMta2VyYW1pay10b29sLTQnKTsKICBpZiAoIWJsb2NrQ29udGFpbmVyKSB7CiAgICBjb25zb2xlLmVycm9yKCdLZXJhbWlrIFRvb2xzOiBCbG9jayBjb250YWluZXIgbm90IGZvdW5kOicsICdoZWxlbmFzLWtlcmFtaWstdG9vbC00Jyk7CiAgICByZXR1cm47CiAgfQoKICAvLyBTY29wZWQgZ2V0RWxlbWVudEJ5SWQgZnVuY3Rpb24KICBmdW5jdGlvbiBnZXRFbGVtZW50QnlJZChpZCkgewogICAgcmV0dXJuIGJsb2NrQ29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJyMnICsgaWQpOwogIH0KCiAgLy8gRXhlY3V0ZSBtb2R1bGUgc2NyaXB0CiAgdHJ5IHsKLy8gVERJL0JNREwtV2VydGUgKM68Zy9rZyBLw7ZycGVyZ2V3aWNodC9UYWcpDQpjb25zdCB0ZGlWYWx1ZXMgPSB7DQoJJ1BiJzogMC41LCAgICAgLy8gQk1ETDAxDQoJJ0NkJzogMC4zNiwgICAgLy8gVFdJOiAyLDUgzrxnL2tnIGJ3IC8gNyBUYWdlDQoJJ0FzJzogMC4zLCAgICAgLy8gQk1ETCB1bnRlcmVyIFdlcnQNCgknQmEnOiAyMDAsDQoJJ0NyJzogMzAwLA0KCSdDbyc6IDEuNiwNCgknTmknOiAyLjgsDQoJJ0FsJzogMTQyLjg2ICAgLy8gVFdJOiAxIG1nL2tnIGJ3IC8gNyBUYWdlID0gMTAwMCDOvGcgLyA3DQp9Ow0KDQovLyBFVS1HcmVuendlcnRlIChuaWVkcmlnc3RlIEthdGVnb3JpZSwgzrxnL2tnKQ0KY29uc3QgZXVMaW1pdHMgPSB7DQoJJ1BiJzogMzMwLA0KCSdDZCc6IDE3MCwNCgknQXMnOiAxNzAwLA0KCSdCYSc6IDEwMDAsDQoJJ0NyJzogMTcwMCwNCgknQ28nOiAzLjMsDQoJJ05pJzogMTQwLA0KCSdBbCc6IDE3MDAwDQp9Ow0KDQovLyBUb2dnbGUgY2FsY3VsYXRvcg0KY29uc3QgY2FsY3VsYXRvckhlYWRlciA9IGdldEVsZW1lbnRCeUlkKCdjYWxjdWxhdG9ySGVhZGVyJyk7DQpjb25zdCBjYWxjdWxhdG9yQ29udGVudCA9IGdldEVsZW1lbnRCeUlkKCdjYWxjdWxhdG9yQ29udGVudCcpOw0KDQppZiAoY2FsY3VsYXRvckhlYWRlciAmJiBjYWxjdWxhdG9yQ29udGVudCkgew0KCWNhbGN1bGF0b3JIZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsNCgkJdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCdvcGVuJyk7DQoJCWNhbGN1bGF0b3JDb250ZW50LmNsYXNzTGlzdC50b2dnbGUoJ29wZW4nKTsNCgl9KTsNCg0KCS8vIEFsc28gaGFuZGxlIEVudGVyL1NwYWNlIGtleXMNCgljYWxjdWxhdG9ySGVhZGVyLmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCBmdW5jdGlvbihlKSB7DQoJCWlmIChlLmtleSA9PT0gJ0VudGVyJyB8fCBlLmtleSA9PT0gJyAnKSB7DQoJCQllLnByZXZlbnREZWZhdWx0KCk7DQoJCQl0aGlzLmNsaWNrKCk7DQoJCX0NCgl9KTsNCn0NCg0KLy8gQWRkIGxhYiB2YWx1ZSByb3cNCmNvbnN0IGFkZExhYlZhbHVlQnRuID0gZ2V0RWxlbWVudEJ5SWQoJ2FkZExhYlZhbHVlQnRuJyk7DQppZiAoYWRkTGFiVmFsdWVCdG4pIHsNCglhZGRMYWJWYWx1ZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KCQljb25zdCBjb250YWluZXIgPSBnZXRFbGVtZW50QnlJZCgnbGFiVmFsdWVzQ29udGFpbmVyJyk7DQoJCWNvbnN0IHJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOw0KCQlyb3cuY2xhc3NOYW1lID0gJ2xhYi12YWx1ZS1yb3cnOw0KCQlyb3cuaW5uZXJIVE1MID0gYA0KCQkJPHNlbGVjdCBjbGFzcz0ibWV0YWwtc2VsZWN0Ij4NCgkJCQk8b3B0aW9uIHZhbHVlPSIiPi0tIE1ldGFsbCB3w6RobGVuIC0tPC9vcHRpb24+DQoJCQkJPG9wdGlvbiB2YWx1ZT0iUGIiPkJsZWkgKFBiKTwvb3B0aW9uPg0KCQkJCTxvcHRpb24gdmFsdWU9IkNkIj5DYWRtaXVtIChDZCk8L29wdGlvbj4NCgkJCQk8b3B0aW9uIHZhbHVlPSJBcyI+QXJzZW4gKEFzKTwvb3B0aW9uPg0KCQkJCTxvcHRpb24gdmFsdWU9IkJhIj5CYXJpdW0gKEJhKTwvb3B0aW9uPg0KCQkJCTxvcHRpb24gdmFsdWU9IkNyIj5DaHJvbSAoQ3IpPC9vcHRpb24+DQoJCQkJPG9wdGlvbiB2YWx1ZT0iQ28iPkNvYmFsdCAoQ28pPC9vcHRpb24+DQoJCQkJPG9wdGlvbiB2YWx1ZT0iTmkiPk5pY2tlbCAoTmkpPC9vcHRpb24+DQoJCQkJPG9wdGlvbiB2YWx1ZT0iQWwiPkFsdW1pbml1bSAoQWwpPC9vcHRpb24+DQoJCQk8L3NlbGVjdD4NCgkJCTxpbnB1dCB0eXBlPSJudW1iZXIiIGNsYXNzPSJsYWItdmFsdWUtaW5wdXQiIHBsYWNlaG9sZGVyPSLOvGcva2ciIHN0ZXA9IjAuMDEiIG1pbj0iMCI+DQoJCQk8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgY2xhc3M9InJlbW92ZS1sYWItYnRuIj7inJU8L2J1dHRvbj4NCgkJYDsNCg0KCQljb25zdCByZW1vdmVCdG4gPSByb3cucXVlcnlTZWxlY3RvcignLnJlbW92ZS1sYWItYnRuJyk7DQoJCXJlbW92ZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KCQkJcm93LnJlbW92ZSgpOw0KCQl9KTsNCg0KCQljb250YWluZXIuYXBwZW5kQ2hpbGQocm93KTsNCgl9KTsNCn0NCg0KLy8gUmVtb3ZlIGluaXRpYWwgbGFiIHZhbHVlIHJvdw0KY29uc3QgbGFiVmFsdWVzQ29udGFpbmVyID0gZ2V0RWxlbWVudEJ5SWQoJ2xhYlZhbHVlc0NvbnRhaW5lcicpOw0KaWYgKGxhYlZhbHVlc0NvbnRhaW5lcikgew0KCWNvbnN0IGluaXRpYWxSZW1vdmVCdG4gPSBsYWJWYWx1ZXNDb250YWluZXIucXVlcnlTZWxlY3RvcignLnJlbW92ZS1sYWItYnRuJyk7DQoJaWYgKGluaXRpYWxSZW1vdmVCdG4pIHsNCgkJaW5pdGlhbFJlbW92ZUJ0bi5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGZ1bmN0aW9uKCkgew0KCQkJdGhpcy5jbG9zZXN0KCcubGFiLXZhbHVlLXJvdycpLnJlbW92ZSgpOw0KCQl9KTsNCgl9DQp9DQoNCi8vIENhbGN1bGF0ZSBsaW1pdHMNCmNvbnN0IGNhbGN1bGF0ZUJ0biA9IGdldEVsZW1lbnRCeUlkKCdjYWxjdWxhdGVCdG4nKTsNCmlmIChjYWxjdWxhdGVCdG4pIHsNCgljYWxjdWxhdGVCdG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsNCgkJY29uc3QgYm9keVdlaWdodCA9IHBhcnNlRmxvYXQoZ2V0RWxlbWVudEJ5SWQoJ2JvZHlXZWlnaHQnKS52YWx1ZSk7DQoJCWNvbnN0IGN1cHNQZXJEYXkgPSBwYXJzZUZsb2F0KGdldEVsZW1lbnRCeUlkKCdjdXBzUGVyRGF5JykudmFsdWUpOw0KCQljb25zdCByZXN1bHREaXYgPSBnZXRFbGVtZW50QnlJZCgnY2FsY3VsYXRvclJlc3VsdCcpOw0KDQoJCWlmICghYm9keVdlaWdodCB8fCBib2R5V2VpZ2h0IDw9IDAgfHwgIWN1cHNQZXJEYXkgfHwgY3Vwc1BlckRheSA8PSAwKSB7DQoJCQlyZXN1bHREaXYuaW5uZXJIVE1MID0gJzxwIHN0eWxlPSJjb2xvcjogIzk5OTsiPkJpdHRlIGdlYmVuIFNpZSBnw7xsdGlnZSBXZXJ0ZSBlaW4uPC9wPic7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQljb25zdCByb3dzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnLmxhYi12YWx1ZS1yb3cnKTsNCgkJY29uc3QgcmVzdWx0cyA9IFtdOw0KCQlsZXQgaGFzVmFsdWVzID0gZmFsc2U7DQoNCgkJcm93cy5mb3JFYWNoKHJvdyA9PiB7DQoJCQljb25zdCBtZXRhbCA9IHJvdy5xdWVyeVNlbGVjdG9yKCcubWV0YWwtc2VsZWN0JykudmFsdWU7DQoJCQljb25zdCB2YWx1ZSA9IHBhcnNlRmxvYXQocm93LnF1ZXJ5U2VsZWN0b3IoJy5sYWItdmFsdWUtaW5wdXQnKS52YWx1ZSk7DQoNCgkJCWlmIChtZXRhbCAmJiB2YWx1ZSAmJiB2YWx1ZSA+IDApIHsNCgkJCQloYXNWYWx1ZXMgPSB0cnVlOw0KCQkJCWNvbnN0IHRkaSA9IHRkaVZhbHVlc1ttZXRhbF07DQoJCQkJY29uc3QgZXVMaW1pdCA9IGV1TGltaXRzW21ldGFsXTsNCg0KCQkJCS8vIEJlcmVjaG51bmcgZGVyIG1heGltYWwgenVsw6Rzc2lnZW4gQXVmbmFobWUgcHJvIFRhZyAozrxnKQ0KCQkJCWNvbnN0IG1heEludGFrZVBlckRheSA9IHRkaSAqIGJvZHlXZWlnaHQ7DQoNCgkJCQkvLyBBbm5haG1lOiAyNTBtbCBwcm8gVGFzc2UNCgkJCQljb25zdCBjdXBWb2x1bWUgPSAyNTA7IC8vIG1sDQoJCQkJY29uc3QgdG90YWxWb2x1bWUgPSBjdXBWb2x1bWUgKiBjdXBzUGVyRGF5OyAvLyBtbA0KDQoJCQkJLy8gQXVmbmFobWUgcHJvIFRhZyBhdXMgS2VyYW1payAozrxnKQ0KCQkJCWNvbnN0IGludGFrZUZyb21DZXJhbWljcyA9ICh2YWx1ZSAqIHRvdGFsVm9sdW1lKSAvIDEwMDA7DQoNCgkJCQkvLyBQcm96ZW50IGRlciBUREkNCgkJCQljb25zdCBwZXJjZW50T2ZUZGkgPSAoaW50YWtlRnJvbUNlcmFtaWNzIC8gbWF4SW50YWtlUGVyRGF5KSAqIDEwMDsNCg0KCQkJCS8vIFN0YXR1cw0KCQkJCWxldCBzdGF0dXMgPSAnc2FmZSc7DQoJCQkJbGV0IHN0YXR1c1RleHQgPSAn4pyTIFNpY2hlcic7DQoJCQkJaWYgKHBlcmNlbnRPZlRkaSA+IDEwMCkgew0KCQkJCQlzdGF0dXMgPSAnY3JpdGljYWwnOw0KCQkJCQlzdGF0dXNUZXh0ID0gJ+KblCBLcml0aXNjaCc7DQoJCQkJfSBlbHNlIGlmIChwZXJjZW50T2ZUZGkgPiA1MCkgew0KCQkJCQlzdGF0dXMgPSAnd2FybmluZyc7DQoJCQkJCXN0YXR1c1RleHQgPSAn4pqgIFZvcnNpY2h0JzsNCgkJCQl9DQoNCgkJCQkvLyBFVS1HcmVuendlcnQtQ2hlY2sNCgkJCQljb25zdCBleGNlZWRzRVUgPSB2YWx1ZSA+IGV1TGltaXQ7DQoNCgkJCQlyZXN1bHRzLnB1c2goew0KCQkJCQltZXRhbCwNCgkJCQkJdmFsdWUsDQoJCQkJCW1heEludGFrZVBlckRheSwNCgkJCQkJaW50YWtlRnJvbUNlcmFtaWNzLA0KCQkJCQlwZXJjZW50T2ZUZGksDQoJCQkJCWV1TGltaXQsDQoJCQkJCWV4Y2VlZHNFVSwNCgkJCQkJc3RhdHVzLA0KCQkJCQlzdGF0dXNUZXh0DQoJCQkJfSk7DQoJCQl9DQoJCX0pOw0KDQoJCWlmICghaGFzVmFsdWVzKSB7DQoJCQlyZXN1bHREaXYuaW5uZXJIVE1MID0gJzxwIHN0eWxlPSJjb2xvcjogIzk5OTsiPkJpdHRlIGbDvGdlbiBTaWUgbWluZGVzdGVucyBlaW5lbiBMYWJvcndlcnQgaGluenUuPC9wPic7DQoJCQlyZXR1cm47DQoJCX0NCg0KCQkvLyBEaXNwbGF5IHJlc3VsdHMNCgkJbGV0IGh0bWwgPSAnPGgzPkJlcmVjaG51bmdzZXJnZWJuaXM6PC9oMz4nOw0KCQlodG1sICs9IGA8cD48c3Ryb25nPkvDtnJwZXJnZXdpY2h0Ojwvc3Ryb25nPiAke2JvZHlXZWlnaHR9IGtnIHwgPHN0cm9uZz5UYXNzZW4vVGFnOjwvc3Ryb25nPiAke2N1cHNQZXJEYXl9PC9wPjxicj5gOw0KDQoJCWZvciAoY29uc3QgcmVzdWx0IG9mIHJlc3VsdHMpIHsNCgkJCWNvbnN0IG1ldGFsTmFtZXMgPSB7DQoJCQkJJ1BiJzogJ0JsZWknLA0KCQkJCSdDZCc6ICdDYWRtaXVtJywNCgkJCQknQXMnOiAnQXJzZW4nLA0KCQkJCSdCYSc6ICdCYXJpdW0nLA0KCQkJCSdDcic6ICdDaHJvbScsDQoJCQkJJ0NvJzogJ0NvYmFsdCcsDQoJCQkJJ05pJzogJ05pY2tlbCcsDQoJCQkJJ0FsJzogJ0FsdW1pbml1bScNCgkJCX07DQoNCgkJCWh0bWwgKz0gYA0KCQkJCTxkaXYgY2xhc3M9InJlc3VsdC0ke3Jlc3VsdC5zdGF0dXN9IiBzdHlsZT0icGFkZGluZzogMTVweDsgbWFyZ2luLWJvdHRvbTogMTVweDsgYm9yZGVyLXJhZGl1czogOHB4OyI+DQoJCQkJCTxoND48c3Ryb25nPiR7bWV0YWxOYW1lc1tyZXN1bHQubWV0YWxdfSAoJHtyZXN1bHQubWV0YWx9KTwvc3Ryb25nPiAke3Jlc3VsdC5zdGF0dXNUZXh0fTwvaDQ+DQoJCQkJCTxwPjxzdHJvbmc+TGFib3J3ZXJ0Ojwvc3Ryb25nPiAke3Jlc3VsdC52YWx1ZS50b0ZpeGVkKDIpfSDOvGcva2c8L3A+DQoJCQkJCTxwPjxzdHJvbmc+RVUtR3Jlbnp3ZXJ0Ojwvc3Ryb25nPiAke3Jlc3VsdC5ldUxpbWl0fSDOvGcva2cgJHtyZXN1bHQuZXhjZWVkc0VVID8gJyjimqAgw5xCRVJTQ0hSSVRURU4hKScgOiAnKOKckyBlaW5nZWhhbHRlbiknfTwvcD4NCgkJCQkJPHA+PHN0cm9uZz5NYXguIEF1Zm5haG1lL1RhZzo8L3N0cm9uZz4gJHtyZXN1bHQubWF4SW50YWtlUGVyRGF5LnRvRml4ZWQoMil9IM68ZyAoYmFzaWVyZW5kIGF1ZiBUREkvQk1ETCk8L3A+DQoJCQkJCTxwPjxzdHJvbmc+QXVmbmFobWUgYXVzIEtlcmFtaWs6PC9zdHJvbmc+ICR7cmVzdWx0LmludGFrZUZyb21DZXJhbWljcy50b0ZpeGVkKDIpfSDOvGcvVGFnPC9wPg0KCQkJCQk8cD48c3Ryb25nPkFudGVpbCBhbiBUREkvQk1ETDo8L3N0cm9uZz4gJHtyZXN1bHQucGVyY2VudE9mVGRpLnRvRml4ZWQoMSl9JTwvcD4NCgkJCQk8L2Rpdj4NCgkJCWA7DQoJCX0NCg0KCQlyZXN1bHREaXYuaW5uZXJIVE1MID0gaHRtbDsNCgkJcmVzdWx0RGl2LmNsYXNzTmFtZSA9ICdyZXN1bHQtZGlzcGxheSc7DQoJfSk7DQp9DQoNCi8vIFlBTUwgVGFiIHN3aXRjaGluZw0KY29uc3QgdGFiQnRucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJy50YWItYnRuJyk7DQp0YWJCdG5zLmZvckVhY2goYnRuID0+IHsNCglidG4uYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCBmdW5jdGlvbigpIHsNCgkJY29uc3QgdGFiID0gdGhpcy5kYXRhc2V0LnRhYjsNCg0KCQkvLyBSZW1vdmUgYWN0aXZlIGZyb20gYWxsDQoJCXRhYkJ0bnMuZm9yRWFjaChiID0+IGIuY2xhc3NMaXN0LnJlbW92ZSgnYWN0aXZlJykpOw0KCQlkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcudGFiLWNvbnRlbnQnKS5mb3JFYWNoKGMgPT4gYy5jbGFzc0xpc3QuYWRkKCdoaWRkZW4nKSk7DQoNCgkJLy8gQWRkIGFjdGl2ZSB0byBjbGlja2VkDQoJCXRoaXMuY2xhc3NMaXN0LmFkZCgnYWN0aXZlJyk7DQoJCWdldEVsZW1lbnRCeUlkKHRhYikuY2xhc3NMaXN0LnJlbW92ZSgnaGlkZGVuJyk7DQoJfSk7DQp9KTsNCg0KLy8gUGFyc2UgWUFNTCBmcm9tIHRleHRhcmVhDQpjb25zdCBwYXJzZVlhbWxCdG4gPSBnZXRFbGVtZW50QnlJZCgncGFyc2VZYW1sQnRuJyk7DQppZiAocGFyc2VZYW1sQnRuKSB7DQoJcGFyc2VZYW1sQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7DQoJCWNvbnN0IHlhbWxJbnB1dCA9IGdldEVsZW1lbnRCeUlkKCd5YW1sSW5wdXQnKS52YWx1ZTsNCgkJY29uc3QgcmVzdWx0RGl2ID0gZ2V0RWxlbWVudEJ5SWQoJ3lhbWxSZXN1bHQnKTsNCg0KCQlpZiAoIXlhbWxJbnB1dC50cmltKCkpIHsNCgkJCXJlc3VsdERpdi5pbm5lckhUTUwgPSAnPHAgc3R5bGU9ImNvbG9yOiAjOTk5OyI+Qml0dGUgZ2ViZW4gU2llIFlBTUwtRGF0ZW4gZWluLjwvcD4nOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJdHJ5IHsNCgkJCS8vIENoZWNrIGlmIGpzLXlhbWwgaXMgbG9hZGVkDQoJCQlpZiAodHlwZW9mIGpzeWFtbCA9PT0gJ3VuZGVmaW5lZCcpIHsNCgkJCQlyZXN1bHREaXYuaW5uZXJIVE1MID0gJzxwIHN0eWxlPSJjb2xvcjogI2U3NGMzYzsiPjxzdHJvbmc+RmVobGVyOjwvc3Ryb25nPiBZQU1MLVBhcnNlciBuaWNodCBnZWxhZGVuLiBCaXR0ZSBrb250YWt0aWVyZW4gU2llIGRlbiBBZG1pbmlzdHJhdG9yLjwvcD4nOw0KCQkJCXJldHVybjsNCgkJCX0NCg0KCQkJY29uc3QgZGF0YSA9IGpzeWFtbC5sb2FkKHlhbWxJbnB1dCk7DQoJCQlkaXNwbGF5WWFtbFJlc3VsdChkYXRhLCByZXN1bHREaXYpOw0KCQl9IGNhdGNoIChlcnJvcikgew0KCQkJcmVzdWx0RGl2LmlubmVySFRNTCA9IGA8cCBzdHlsZT0iY29sb3I6ICNlNzRjM2M7Ij48c3Ryb25nPkZlaGxlciBiZWltIFBhcnNlbjo8L3N0cm9uZz4gJHtlcnJvci5tZXNzYWdlfTwvcD5gOw0KCQl9DQoJfSk7DQp9DQoNCi8vIFBhcnNlIFlBTUwgZnJvbSBmaWxlDQpjb25zdCBwYXJzZUZpbGVCdG4gPSBnZXRFbGVtZW50QnlJZCgncGFyc2VGaWxlQnRuJyk7DQppZiAocGFyc2VGaWxlQnRuKSB7DQoJcGFyc2VGaWxlQnRuLmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgZnVuY3Rpb24oKSB7DQoJCWNvbnN0IGZpbGVJbnB1dCA9IGdldEVsZW1lbnRCeUlkKCd5YW1sRmlsZUlucHV0Jyk7DQoJCWNvbnN0IHJlc3VsdERpdiA9IGdldEVsZW1lbnRCeUlkKCd5YW1sUmVzdWx0Jyk7DQoNCgkJaWYgKCFmaWxlSW5wdXQuZmlsZXMgfHwgZmlsZUlucHV0LmZpbGVzLmxlbmd0aCA9PT0gMCkgew0KCQkJcmVzdWx0RGl2LmlubmVySFRNTCA9ICc8cCBzdHlsZT0iY29sb3I6ICM5OTk7Ij5CaXR0ZSB3w6RobGVuIFNpZSBlaW5lIFlBTUwtRGF0ZWkgYXVzLjwvcD4nOw0KCQkJcmV0dXJuOw0KCQl9DQoNCgkJY29uc3QgZmlsZSA9IGZpbGVJbnB1dC5maWxlc1swXTsNCgkJY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsNCg0KCQlyZWFkZXIub25sb2FkID0gZnVuY3Rpb24oZSkgew0KCQkJY29uc3QgeWFtbENvbnRlbnQgPSBlLnRhcmdldC5yZXN1bHQ7DQoNCgkJCXRyeSB7DQoJCQkJLy8gQ2hlY2sgaWYganMteWFtbCBpcyBsb2FkZWQNCgkJCQlpZiAodHlwZW9mIGpzeWFtbCA9PT0gJ3VuZGVmaW5lZCcpIHsNCgkJCQkJcmVzdWx0RGl2LmlubmVySFRNTCA9ICc8cCBzdHlsZT0iY29sb3I6ICNlNzRjM2M7Ij48c3Ryb25nPkZlaGxlcjo8L3N0cm9uZz4gWUFNTC1QYXJzZXIgbmljaHQgZ2VsYWRlbi4gQml0dGUga29udGFrdGllcmVuIFNpZSBkZW4gQWRtaW5pc3RyYXRvci48L3A+JzsNCgkJCQkJcmV0dXJuOw0KCQkJCX0NCg0KCQkJCWNvbnN0IGRhdGEgPSBqc3lhbWwubG9hZCh5YW1sQ29udGVudCk7DQoJCQkJZGlzcGxheVlhbWxSZXN1bHQoZGF0YSwgcmVzdWx0RGl2KTsNCgkJCX0gY2F0Y2ggKGVycm9yKSB7DQoJCQkJcmVzdWx0RGl2LmlubmVySFRNTCA9IGA8cCBzdHlsZT0iY29sb3I6ICNlNzRjM2M7Ij48c3Ryb25nPkZlaGxlciBiZWltIFBhcnNlbjo8L3N0cm9uZz4gJHtlcnJvci5tZXNzYWdlfTwvcD5gOw0KCQkJfQ0KCQl9Ow0KDQoJCXJlYWRlci5vbmVycm9yID0gZnVuY3Rpb24oKSB7DQoJCQlyZXN1bHREaXYuaW5uZXJIVE1MID0gJzxwIHN0eWxlPSJjb2xvcjogI2U3NGMzYzsiPjxzdHJvbmc+RmVobGVyOjwvc3Ryb25nPiBEYXRlaSBrb25udGUgbmljaHQgZ2VsZXNlbiB3ZXJkZW4uPC9wPic7DQoJCX07DQoNCgkJcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7DQoJfSk7DQp9DQoNCi8vIERpc3BsYXkgWUFNTCByZXN1bHQNCmZ1bmN0aW9uIGRpc3BsYXlZYW1sUmVzdWx0KGRhdGEsIHJlc3VsdERpdikgew0KCWxldCBodG1sID0gJzxoMz5HZXBhcnN0ZSBHbGFzdXItRGF0ZW46PC9oMz4nOw0KDQoJaWYgKGRhdGEucmVjaXBlICYmIGRhdGEucmVjaXBlLm5hbWUpIHsNCgkJaHRtbCArPSBgPHA+PHN0cm9uZz5OYW1lOjwvc3Ryb25nPiAke2RhdGEucmVjaXBlLm5hbWV9PC9wPmA7DQoJfQ0KDQoJaWYgKGRhdGEucmVjaXBlICYmIGRhdGEucmVjaXBlLm94aWRlcykgew0KCQlodG1sICs9ICc8aDQ+T3hpZGUgKEdldy4tJSk6PC9oND48dWw+JzsNCgkJZm9yIChjb25zdCBveGlkZSBpbiBkYXRhLnJlY2lwZS5veGlkZXMpIHsNCgkJCWNvbnN0IHZhbHVlID0gZGF0YS5yZWNpcGUub3hpZGVzW294aWRlXTsNCgkJCWh0bWwgKz0gYDxsaT48c3Ryb25nPiR7b3hpZGV9Ojwvc3Ryb25nPiAke3ZhbHVlfSU8L2xpPmA7DQoJCX0NCgkJaHRtbCArPSAnPC91bD4nOw0KCX0NCg0KCWlmIChkYXRhLnJlY2lwZSAmJiBkYXRhLnJlY2lwZS5tYXRlcmlhbHMpIHsNCgkJaHRtbCArPSAnPGg0Pk1hdGVyaWFsaWVuOjwvaDQ+PHVsPic7DQoJCWZvciAoY29uc3QgbWF0ZXJpYWwgaW4gZGF0YS5yZWNpcGUubWF0ZXJpYWxzKSB7DQoJCQljb25zdCB2YWx1ZSA9IGRhdGEucmVjaXBlLm1hdGVyaWFsc1ttYXRlcmlhbF07DQoJCQlodG1sICs9IGA8bGk+PHN0cm9uZz4ke21hdGVyaWFsfTo8L3N0cm9uZz4gJHt2YWx1ZX0lPC9saT5gOw0KCQl9DQoJCWh0bWwgKz0gJzwvdWw+JzsNCgl9DQoNCglodG1sICs9ICc8cCBzdHlsZT0iY29sb3I6ICMyN2FlNjA7IG1hcmdpbi10b3A6IDE1cHg7Ij7inJMgWUFNTCBlcmZvbGdyZWljaCBnZXBhcnN0ITwvcD4nOw0KCXJlc3VsdERpdi5pbm5lckhUTUwgPSBodG1sOw0KfQ0KCiAgfSBjYXRjaChlcnJvcikgewogICAgY29uc29sZS5lcnJvcignS2VyYW1payBUb29sczogU2NyaXB0IGVycm9yOicsIGVycm9yKTsKICB9Cn0pKCk7\");var s=decodeURIComponent(escape(b));eval(s);}catch(e){console.error(\"Keramik Tools Script Error:\",e);}})();<\/script><\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u9664\u4e86\u5927\u91cf\u7684\u4e66\u7c4d\u3001\u535a\u7269\u9986\u53c2\u89c2\u3001\u5e38\u89c1\u7684 Instagram\uff08\u6211\u7684\u4e2a\u4eba\u8d44\u6599\uff09\u548c YouTube\uff08\u6211\u7684\u4e2a\u4eba\u8d44\u6599\uff09\u4e4b\u5916\uff0c [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":339,"menu_order":3,"comment_status":"closed","ping_status":"closed","template":"","meta":{"iawp_total_views":0,"footnotes":""},"class_list":["post-654","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/pages\/654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/comments?post=654"}],"version-history":[{"count":17,"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/pages\/654\/revisions"}],"predecessor-version":[{"id":847,"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/pages\/654\/revisions\/847"}],"up":[{"embeddable":true,"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/pages\/339"}],"wp:attachment":[{"href":"https:\/\/kayhelena.work\/zh-hans\/wp-json\/wp\/v2\/media?parent=654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}