{"id":21738,"date":"2026-05-17T06:16:20","date_gmt":"2026-05-17T06:16:20","guid":{"rendered":"https:\/\/arttao.org\/?page_id=21738"},"modified":"2026-05-17T06:16:20","modified_gmt":"2026-05-17T06:16:20","slug":"lecon-272-garder-une-voix-douce-dans-un-groupe","status":"publish","type":"page","link":"https:\/\/arttao.org\/fr\/%e7%ac%ac272%e8%af%be%ef%bc%9a%e5%9c%a8%e7%be%a4%e4%bd%93%e4%b8%ad%e4%bf%9d%e6%8c%81%e8%bd%bb%e5%ba%a6%e5%8f%91%e5%a3%b0%e5%8f%82%e4%b8%8e\/","title":{"rendered":"Le\u00e7on 272 : Garder une voix douce dans un groupe"},"content":{"rendered":"        <article class=\"arttao-cpb-course\" data-unit=\"7\" data-lesson=\"272\">\n            <h2 class=\"arttao-cpb-main-title\">\u7b2c272\u8bfe\uff1a\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e<\/h2>\n            <p class=\"arttao-cpb-duration\"><strong>\u65f6\u957f\uff1a<\/strong>70\u5206\u949f<\/p>\n\n                            <div class=\"arttao-cpb-intro\"><p><strong>\u4e3b\u9898\u7b80\u4ecb\uff1a<\/strong>\u8bbe\u7f6e\u6bcf\u6b21\u4f1a\u8bae\u6216\u5c0f\u7ec4\u81f3\u5c11\u8bf4\u4e00\u53e5\u7684\u6700\u5c0f\u76ee\u6807\uff0c\u5148\u8bfb\u7a3f\uff0c\u518d\u8131\u7a3f\uff0c\u9010\u6b65\u63d0\u5347\u5728\u7fa4\u4f53\u4e2d\u7684\u8bed\u8a00\u53c2\u4e0e\u5ea6\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002<\/p><\/div>\n            \n            <section class=\"arttao-cpb-section arttao-cpb-section-tts\" id=\"arttao-cpb-tts-272-514386\"><h3 class=\"arttao-cpb-section-title\">\u25cb \u8bfe\u7a0b\u4e3b\u9898\u8bed\u97f3<\/h3><div style=\"margin:12px 0;padding:14px;border:1px solid #F5DEB3;border-radius:18px;background:#F7FFFF;\"><p style=\"margin:0 0 10px;font-weight:600;color:#004494;\">\u7b2c272\u8bfe\uff1a\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e<\/p><audio id=\"arttao-cpb-tts-272-514386-audio\" controls preload=\"none\" style=\"width:100%;max-width:800px;\"><\/audio><div style=\"margin:10px 0;display:flex;gap:8px;flex-wrap:wrap;\"><button type=\"button\" id=\"arttao-cpb-tts-272-514386-btn\" style=\"cursor:pointer;border:1px solid #F5DEB3;background:#D9FFFF;color:#222;border-radius:20px;padding:8px 16px;font-size:14px;\">\u751f\u6210\u5e76\u64ad\u653e\u672c\u8bfe\u8bed\u97f3<\/button><button type=\"button\" id=\"arttao-cpb-tts-272-514386-stop\" style=\"cursor:pointer;border:1px solid #F5DEB3;background:#fff;color:#222;border-radius:20px;padding:8px 16px;font-size:14px;\">\u505c\u6b62<\/button><\/div><div id=\"arttao-cpb-tts-272-514386-status\" style=\"font-size:13px;margin-top:6px;color:#555;\">\u7b49\u5f85\u70b9\u51fb\u201c\u751f\u6210\u5e76\u64ad\u653e\u672c\u8bfe\u8bed\u97f3\u201d\u3002<\/div><details style=\"margin-top:12px;background:#fff;border:1px solid #eee;border-radius:14px;padding:10px;\"><summary style=\"cursor:pointer;color:#004494;font-weight:600;\">\u70b9\u51fb\u67e5\u770b\u6717\u8bfb\u6587\u5b57<\/summary><div style=\"padding:12px 4px;line-height:1.8;color:#444;\"><p>\u5b66\u4e60\u201c\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u201d\u65f6\uff0c\u8bf7\u5148\u628a\u7f9e\u803b\u611f\u653e\u5728\u4e00\u8fb9\u3002\u9009\u62e9\u6027\u7f04\u9ed8\u4e0d\u662f\u6545\u610f\u4e0d\u8bf4\uff0c\u4e5f\u4e0d\u662f\u6ca1\u6709\u793c\u8c8c\uff0c\u800c\u662f\u7126\u8651\u8ba9\u8bed\u8a00\u7cfb\u7edf\u3001\u5589\u90e8\u808c\u8089\u548c\u793e\u4ea4\u5b89\u5168\u611f\u540c\u65f6\u8fdb\u5165\u51bb\u7ed3\u72b6\u6001\u3002\u8bbe\u7f6e\u6bcf\u6b21\u4f1a\u8bae\u81f3\u5c11\u8bf4\u4e00\u53e5\u7684\u6700\u5c0f\u76ee\u6807\uff0c\u5148\u8bfb\u7a3f\uff0c\u518d\u8131\u7a3f\uff0c\u9010\u6b65\u63d0\u5347\u53c2\u4e0e\u5ea6\u3002\u5f53\u8bed\u8a00\u51bb\u7ed3\u51fa\u73b0\u65f6\uff0c\u5934\u8111\u53ef\u80fd\u5f88\u6e05\u695a\u81ea\u5df1\u60f3\u8bf4\u4ec0\u4e48\uff0c\u53ef\u662f\u5589\u5499\u50cf\u88ab\u5173\u4f4f\uff0c\u5634\u5507\u53d1\u7d27\uff0c\u8138\u90e8\u50f5\u786c\uff0c\u5fc3\u8df3\u53d8\u5feb\uff0c\u8d8a\u6709\u4eba\u7b49\u5f85\uff0c\u8d8a\u8bf4\u4e0d\u51fa\u6765\u3002\u8bf7\u8bb0\u4f4f\uff0c\u8fd9\u4e0d\u662f\u4f60\u4e0d\u52aa\u529b\uff0c\u4e5f\u4e0d\u662f\u4f60\u6545\u610f\u8ba9\u522b\u4eba\u5c34\u5c2c\uff0c\u800c\u662f\u795e\u7ecf\u7cfb\u7edf\u628a\u5f00\u53e3\u8bef\u8ba4\u4e3a\u9ad8\u98ce\u9669\u4e8b\u4ef6\u3002\u672c\u8bfe\u7684\u7b2c\u4e00\u6b65\uff0c\u662f\u628a\u201c\u5fc5\u987b\u8bf4\u8bdd\u201d\u7684\u538b\u529b\u6539\u6210\u201c\u5148\u5141\u8bb8\u8868\u8fbe\u5b58\u5728\u201d\u3002\u8868\u8fbe\u4e0d\u53ea\u6709\u5b8c\u6574\u53e5\u5b50\uff0c\u4e5f\u53ef\u4ee5\u662f\u70b9\u5934\u3001\u624b\u52bf\u3001\u5199\u5b57\u3001\u773c\u795e\u3001\u53e3\u578b\u3001\u8033\u8bed\u3001\u4e00\u4e2a\u8bcd\uff0c\u6216\u4e00\u53e5\u4e8b\u5148\u51c6\u5907\u597d\u7684\u77ed\u53e5\u3002\u6bcf\u4e00\u79cd\u5c0f\u8868\u8fbe\uff0c\u90fd\u662f\u5728\u544a\u8bc9\u8eab\u4f53\uff1a\u6211\u53ef\u4ee5\u88ab\u770b\u89c1\uff0c\u4f46\u4e0d\u5fc5\u4e00\u4e0b\u5b50\u66b4\u9732\u5230\u6781\u9650\u3002\u7b2c\u4e8c\u6b65\uff0c\u662f\u5efa\u7acb\u53d1\u58f0\u524d\u7684\u5b89\u5168\u6d41\u7a0b\u3002\u4f60\u53ef\u4ee5\u5148\u6162\u6162\u547c\u6c14\uff0c\u653e\u677e\u4e0b\u988c\u548c\u80a9\u9888\uff0c\u8f7b\u8f7b\u89e6\u78b0\u80f8\u53e3\u6216\u9501\u9aa8\uff0c\u518d\u7ed9\u81ea\u5df1\u4e00\u53e5\u8bb8\u53ef\u8bed\uff1a\u6211\u53ef\u4ee5\u53ea\u8bf4\u4e00\u4e2a\u8bcd\uff0c\u6211\u4e0d\u9700\u8981\u8bf4\u5f97\u5b8c\u7f8e\u3002\u7136\u540e\u9009\u62e9\u4e00\u4e2a\u6700\u4f4e\u5f3a\u5ea6\u76ee\u6807\uff0c\u4f8b\u5982\u8bfb\u4e00\u53e5\u51c6\u5907\u597d\u7684\u8bdd\uff0c\u6216\u5411\u5b89\u5168\u4eba\u7269\u8bf4\u51fa\u4e00\u4e2a\u5173\u952e\u8bcd\u3002\u7b2c\u4e09\u6b65\uff0c\u662f\u590d\u76d8\u6210\u529f\uff0c\u800c\u4e0d\u662f\u53ea\u76ef\u7740\u6ca1\u8bf4\u51fa\u6765\u7684\u90e8\u5206\u3002\u8bf7\u8bb0\u5f55\u4eca\u5929\u4f60\u6709\u6ca1\u6709\u505a\u51fa\u4e00\u4e2a\u5c0f\u4fe1\u53f7\u3001\u6709\u6ca1\u6709\u5c1d\u8bd5\u53d1\u58f0\u3001\u6709\u6ca1\u6709\u6bd4\u4e0a\u6b21\u591a\u505c\u7559\u51e0\u79d2\u3002\u8bed\u8a00\u6062\u590d\u4e0d\u662f\u9760\u4e00\u6b21\u7a81\u7834\u5b8c\u6210\uff0c\u800c\u662f\u9760\u53cd\u590d\u7684\u5c0f\u6210\u529f\u6162\u6162\u91cd\u5efa\u795e\u7ecf\u901a\u8def\u3002\u5982\u679c\u7f04\u9ed8\u4f34\u968f\u5f3a\u70c8\u60ca\u6050\u3001\u6821\u56ed\u6216\u804c\u573a\u660e\u663e\u53d7\u635f\u3001\u957f\u671f\u56de\u907f\u3001\u521b\u4f24\u8bb0\u5fc6\u6216\u4e25\u91cd\u81ea\u8d23\uff0c\u8bf7\u5bfb\u6c42\u5fc3\u7406\u5e08\u3001\u533b\u751f\u3001\u6559\u5e08\u3001\u5bb6\u4eba\u6216\u53ef\u4fe1\u4efb\u652f\u6301\u8005\u7684\u5e2e\u52a9\u3002\u8bfe\u7a0b\u7ec3\u4e60\u9002\u5408\u7528\u4e8e\u5b66\u4e60\u548c\u81ea\u6211\u652f\u6301\uff0c\u4f46\u4e0d\u80fd\u66ff\u4ee3\u4e13\u4e1a\u8bc4\u4f30\u548c\u6cbb\u7597\u3002\u6700\u540e\uff0c\u8bf7\u7ed9\u81ea\u5df1\u4e00\u53e5\u7a33\u5b9a\u63d0\u9192\uff1a\u6211\u7684\u6c89\u9ed8\u66fe\u7ecf\u4fdd\u62a4\u8fc7\u6211\uff0c\u4f46\u73b0\u5728\u6211\u53ef\u4ee5\u5b66\u4e60\u65b0\u7684\u4fdd\u62a4\u65b9\u5f0f\u3002\u4eca\u5929\u53ea\u8981\u5b8c\u6210\u4e00\u4e2a\u975e\u8bed\u8a00\u8868\u8fbe\u3001\u4e00\u4e2a\u4f4e\u97f3\u91cf\u7ec3\u4e60\uff0c\u6216\u4e00\u6b21\u6e29\u67d4\u590d\u76d8\uff0c\u5c31\u5df2\u7ecf\u662f\u5728\u9760\u8fd1\u8bed\u8a00\u81ea\u4fe1\u3002\u6717\u8bfb\u7ed3\u675f\u540e\uff0c\u8bf7\u5199\u4e0b\u4e00\u4e2a\u6700\u4f4e\u5f3a\u5ea6\u7684\u8868\u8fbe\u4efb\u52a1\uff0c\u4ee5\u53ca\u4e00\u4e2a\u53ef\u4ee5\u5e2e\u52a9\u8eab\u4f53\u653e\u677e\u7684\u52a8\u4f5c\u3002\u4e0b\u6b21\u5f00\u53e3\u524d\uff0c\u4e0d\u5fc5\u8ffd\u6c42\u5b8c\u6574\u81ea\u7136\uff0c\u53ea\u8981\u5148\u547c\u5438\u3001\u5141\u8bb8\u3001\u8bf4\u4e00\u4e2a\u6700\u5c0f\u5355\u4f4d\u3002\u4f60\u6b63\u5728\u5b66\u4e60\u7684\u4e0d\u662f\u8ba8\u597d\u522b\u4eba\uff0c\u800c\u662f\u5728\u5b89\u5168\u8303\u56f4\u5185\u628a\u81ea\u5df1\u4e00\u70b9\u70b9\u5e26\u51fa\u6765\u3002\u6bcf\u4e00\u6b21\u5c0f\u58f0\u8868\u8fbe\uff0c\u90fd\u4f1a\u4e3a\u5927\u8111\u589e\u52a0\u4e00\u4e2a\u65b0\u8bc1\u636e\uff1a\u58f0\u97f3\u51fa\u6765\u4e5f\u53ef\u4ee5\u5b89\u5168\u3002\u6717\u8bfb\u7ed3\u675f\u540e\uff0c\u8bf7\u5199\u4e0b\u4e00\u4e2a\u6700\u4f4e\u5f3a\u5ea6\u7684\u8868\u8fbe\u4efb\u52a1\uff0c\u4ee5\u53ca\u4e00\u4e2a\u53ef\u4ee5\u5e2e\u52a9\u8eab\u4f53\u653e\u677e\u7684\u52a8\u4f5c\u3002\u4e0b\u6b21\u5f00\u53e3\u524d\uff0c\u4e0d\u5fc5\u8ffd\u6c42\u5b8c\u6574\u81ea\u7136\uff0c\u53ea\u8981\u5148\u547c\u5438\u3001\u5141\u8bb8\u3001\u8bf4\u4e00\u4e2a\u6700\u5c0f\u5355\u4f4d\u3002\u4f60\u6b63\u5728\u5b66\u4e60\u7684\u4e0d\u662f\u8ba8\u597d\u522b\u4eba\uff0c\u800c\u662f\u5728\u5b89\u5168\u8303\u56f4\u5185\u628a\u81ea\u5df1\u4e00\u70b9\u70b9\u5e26\u51fa\u6765\u3002<\/p>\n<\/div><\/details><textarea id=\"arttao-cpb-tts-272-514386-text\" style=\"display:none;\">\u5b66\u4e60\u201c\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u201d\u65f6\uff0c\u8bf7\u5148\u628a\u7f9e\u803b\u611f\u653e\u5728\u4e00\u8fb9\u3002\u9009\u62e9\u6027\u7f04\u9ed8\u4e0d\u662f\u6545\u610f\u4e0d\u8bf4\uff0c\u4e5f\u4e0d\u662f\u6ca1\u6709\u793c\u8c8c\uff0c\u800c\u662f\u7126\u8651\u8ba9\u8bed\u8a00\u7cfb\u7edf\u3001\u5589\u90e8\u808c\u8089\u548c\u793e\u4ea4\u5b89\u5168\u611f\u540c\u65f6\u8fdb\u5165\u51bb\u7ed3\u72b6\u6001\u3002\u8bbe\u7f6e\u6bcf\u6b21\u4f1a\u8bae\u81f3\u5c11\u8bf4\u4e00\u53e5\u7684\u6700\u5c0f\u76ee\u6807\uff0c\u5148\u8bfb\u7a3f\uff0c\u518d\u8131\u7a3f\uff0c\u9010\u6b65\u63d0\u5347\u53c2\u4e0e\u5ea6\u3002\u5f53\u8bed\u8a00\u51bb\u7ed3\u51fa\u73b0\u65f6\uff0c\u5934\u8111\u53ef\u80fd\u5f88\u6e05\u695a\u81ea\u5df1\u60f3\u8bf4\u4ec0\u4e48\uff0c\u53ef\u662f\u5589\u5499\u50cf\u88ab\u5173\u4f4f\uff0c\u5634\u5507\u53d1\u7d27\uff0c\u8138\u90e8\u50f5\u786c\uff0c\u5fc3\u8df3\u53d8\u5feb\uff0c\u8d8a\u6709\u4eba\u7b49\u5f85\uff0c\u8d8a\u8bf4\u4e0d\u51fa\u6765\u3002\u8bf7\u8bb0\u4f4f\uff0c\u8fd9\u4e0d\u662f\u4f60\u4e0d\u52aa\u529b\uff0c\u4e5f\u4e0d\u662f\u4f60\u6545\u610f\u8ba9\u522b\u4eba\u5c34\u5c2c\uff0c\u800c\u662f\u795e\u7ecf\u7cfb\u7edf\u628a\u5f00\u53e3\u8bef\u8ba4\u4e3a\u9ad8\u98ce\u9669\u4e8b\u4ef6\u3002\u672c\u8bfe\u7684\u7b2c\u4e00\u6b65\uff0c\u662f\u628a\u201c\u5fc5\u987b\u8bf4\u8bdd\u201d\u7684\u538b\u529b\u6539\u6210\u201c\u5148\u5141\u8bb8\u8868\u8fbe\u5b58\u5728\u201d\u3002\u8868\u8fbe\u4e0d\u53ea\u6709\u5b8c\u6574\u53e5\u5b50\uff0c\u4e5f\u53ef\u4ee5\u662f\u70b9\u5934\u3001\u624b\u52bf\u3001\u5199\u5b57\u3001\u773c\u795e\u3001\u53e3\u578b\u3001\u8033\u8bed\u3001\u4e00\u4e2a\u8bcd\uff0c\u6216\u4e00\u53e5\u4e8b\u5148\u51c6\u5907\u597d\u7684\u77ed\u53e5\u3002\u6bcf\u4e00\u79cd\u5c0f\u8868\u8fbe\uff0c\u90fd\u662f\u5728\u544a\u8bc9\u8eab\u4f53\uff1a\u6211\u53ef\u4ee5\u88ab\u770b\u89c1\uff0c\u4f46\u4e0d\u5fc5\u4e00\u4e0b\u5b50\u66b4\u9732\u5230\u6781\u9650\u3002\u7b2c\u4e8c\u6b65\uff0c\u662f\u5efa\u7acb\u53d1\u58f0\u524d\u7684\u5b89\u5168\u6d41\u7a0b\u3002\u4f60\u53ef\u4ee5\u5148\u6162\u6162\u547c\u6c14\uff0c\u653e\u677e\u4e0b\u988c\u548c\u80a9\u9888\uff0c\u8f7b\u8f7b\u89e6\u78b0\u80f8\u53e3\u6216\u9501\u9aa8\uff0c\u518d\u7ed9\u81ea\u5df1\u4e00\u53e5\u8bb8\u53ef\u8bed\uff1a\u6211\u53ef\u4ee5\u53ea\u8bf4\u4e00\u4e2a\u8bcd\uff0c\u6211\u4e0d\u9700\u8981\u8bf4\u5f97\u5b8c\u7f8e\u3002\u7136\u540e\u9009\u62e9\u4e00\u4e2a\u6700\u4f4e\u5f3a\u5ea6\u76ee\u6807\uff0c\u4f8b\u5982\u8bfb\u4e00\u53e5\u51c6\u5907\u597d\u7684\u8bdd\uff0c\u6216\u5411\u5b89\u5168\u4eba\u7269\u8bf4\u51fa\u4e00\u4e2a\u5173\u952e\u8bcd\u3002\u7b2c\u4e09\u6b65\uff0c\u662f\u590d\u76d8\u6210\u529f\uff0c\u800c\u4e0d\u662f\u53ea\u76ef\u7740\u6ca1\u8bf4\u51fa\u6765\u7684\u90e8\u5206\u3002\u8bf7\u8bb0\u5f55\u4eca\u5929\u4f60\u6709\u6ca1\u6709\u505a\u51fa\u4e00\u4e2a\u5c0f\u4fe1\u53f7\u3001\u6709\u6ca1\u6709\u5c1d\u8bd5\u53d1\u58f0\u3001\u6709\u6ca1\u6709\u6bd4\u4e0a\u6b21\u591a\u505c\u7559\u51e0\u79d2\u3002\u8bed\u8a00\u6062\u590d\u4e0d\u662f\u9760\u4e00\u6b21\u7a81\u7834\u5b8c\u6210\uff0c\u800c\u662f\u9760\u53cd\u590d\u7684\u5c0f\u6210\u529f\u6162\u6162\u91cd\u5efa\u795e\u7ecf\u901a\u8def\u3002\u5982\u679c\u7f04\u9ed8\u4f34\u968f\u5f3a\u70c8\u60ca\u6050\u3001\u6821\u56ed\u6216\u804c\u573a\u660e\u663e\u53d7\u635f\u3001\u957f\u671f\u56de\u907f\u3001\u521b\u4f24\u8bb0\u5fc6\u6216\u4e25\u91cd\u81ea\u8d23\uff0c\u8bf7\u5bfb\u6c42\u5fc3\u7406\u5e08\u3001\u533b\u751f\u3001\u6559\u5e08\u3001\u5bb6\u4eba\u6216\u53ef\u4fe1\u4efb\u652f\u6301\u8005\u7684\u5e2e\u52a9\u3002\u8bfe\u7a0b\u7ec3\u4e60\u9002\u5408\u7528\u4e8e\u5b66\u4e60\u548c\u81ea\u6211\u652f\u6301\uff0c\u4f46\u4e0d\u80fd\u66ff\u4ee3\u4e13\u4e1a\u8bc4\u4f30\u548c\u6cbb\u7597\u3002\u6700\u540e\uff0c\u8bf7\u7ed9\u81ea\u5df1\u4e00\u53e5\u7a33\u5b9a\u63d0\u9192\uff1a\u6211\u7684\u6c89\u9ed8\u66fe\u7ecf\u4fdd\u62a4\u8fc7\u6211\uff0c\u4f46\u73b0\u5728\u6211\u53ef\u4ee5\u5b66\u4e60\u65b0\u7684\u4fdd\u62a4\u65b9\u5f0f\u3002\u4eca\u5929\u53ea\u8981\u5b8c\u6210\u4e00\u4e2a\u975e\u8bed\u8a00\u8868\u8fbe\u3001\u4e00\u4e2a\u4f4e\u97f3\u91cf\u7ec3\u4e60\uff0c\u6216\u4e00\u6b21\u6e29\u67d4\u590d\u76d8\uff0c\u5c31\u5df2\u7ecf\u662f\u5728\u9760\u8fd1\u8bed\u8a00\u81ea\u4fe1\u3002\u6717\u8bfb\u7ed3\u675f\u540e\uff0c\u8bf7\u5199\u4e0b\u4e00\u4e2a\u6700\u4f4e\u5f3a\u5ea6\u7684\u8868\u8fbe\u4efb\u52a1\uff0c\u4ee5\u53ca\u4e00\u4e2a\u53ef\u4ee5\u5e2e\u52a9\u8eab\u4f53\u653e\u677e\u7684\u52a8\u4f5c\u3002\u4e0b\u6b21\u5f00\u53e3\u524d\uff0c\u4e0d\u5fc5\u8ffd\u6c42\u5b8c\u6574\u81ea\u7136\uff0c\u53ea\u8981\u5148\u547c\u5438\u3001\u5141\u8bb8\u3001\u8bf4\u4e00\u4e2a\u6700\u5c0f\u5355\u4f4d\u3002\u4f60\u6b63\u5728\u5b66\u4e60\u7684\u4e0d\u662f\u8ba8\u597d\u522b\u4eba\uff0c\u800c\u662f\u5728\u5b89\u5168\u8303\u56f4\u5185\u628a\u81ea\u5df1\u4e00\u70b9\u70b9\u5e26\u51fa\u6765\u3002\u6bcf\u4e00\u6b21\u5c0f\u58f0\u8868\u8fbe\uff0c\u90fd\u4f1a\u4e3a\u5927\u8111\u589e\u52a0\u4e00\u4e2a\u65b0\u8bc1\u636e\uff1a\u58f0\u97f3\u51fa\u6765\u4e5f\u53ef\u4ee5\u5b89\u5168\u3002\u6717\u8bfb\u7ed3\u675f\u540e\uff0c\u8bf7\u5199\u4e0b\u4e00\u4e2a\u6700\u4f4e\u5f3a\u5ea6\u7684\u8868\u8fbe\u4efb\u52a1\uff0c\u4ee5\u53ca\u4e00\u4e2a\u53ef\u4ee5\u5e2e\u52a9\u8eab\u4f53\u653e\u677e\u7684\u52a8\u4f5c\u3002\u4e0b\u6b21\u5f00\u53e3\u524d\uff0c\u4e0d\u5fc5\u8ffd\u6c42\u5b8c\u6574\u81ea\u7136\uff0c\u53ea\u8981\u5148\u547c\u5438\u3001\u5141\u8bb8\u3001\u8bf4\u4e00\u4e2a\u6700\u5c0f\u5355\u4f4d\u3002\u4f60\u6b63\u5728\u5b66\u4e60\u7684\u4e0d\u662f\u8ba8\u597d\u522b\u4eba\uff0c\u800c\u662f\u5728\u5b89\u5168\u8303\u56f4\u5185\u628a\u81ea\u5df1\u4e00\u70b9\u70b9\u5e26\u51fa\u6765\u3002<\/textarea><\/div>\n    <script>\n    (function(){\n        var boxId = \"arttao-cpb-tts-272-514386\";\n        var restUrl = \"https:\\\/\\\/arttao.org\\\/fr\\\/wp-json\\\/arttao-tts\\\/v1\\\/speech\";\n        var nonce = \"e571b9ac36\";\n\n        var btn = document.getElementById(boxId + '-btn');\n        var stopBtn = document.getElementById(boxId + '-stop');\n        var audio = document.getElementById(boxId + '-audio');\n        var statusBox = document.getElementById(boxId + '-status');\n        var textBox = document.getElementById(boxId + '-text');\n\n        if (!btn || !audio || !statusBox || !textBox) return;\n\n        function setStatus(msg, color) {\n            statusBox.innerHTML = msg;\n            statusBox.style.color = color || '#555';\n        }\n\n        function fetchAudioUrl(text, retryCount) {\n            retryCount = retryCount || 0;\n\n            if (retryCount > 20) {\n                return Promise.reject(new Error('\u751f\u6210\u8d85\u65f6\uff0c\u8bf7\u7a0d\u540e\u91cd\u8bd5'));\n            }\n\n            if (retryCount === 0) {\n                setStatus('\u5df2\u70b9\u51fb\uff0c\u6b63\u5728\u8fde\u63a5 AI \u751f\u6210\u8bed\u97f3\uff0c\u8bf7\u7b49\u5f85...', '#004494');\n            }\n\n            return fetch(restUrl, {\n                method: 'POST',\n                headers: {\n                    'Content-Type': 'application\/json',\n                    'X-WP-Nonce': nonce\n                },\n                body: JSON.stringify({\n                    text: text,\n                    lang: 'auto'\n                })\n            }).then(function(response) {\n                return response.json().then(function(data) {\n\n                    if (response.ok && data && data.url) {\n                        if (data.cached) {\n                            setStatus('\u5df2\u8bfb\u53d6\u7f13\u5b58\u8bed\u97f3\uff0c\u6b63\u5728\u64ad\u653e...', '#008000');\n                        } else {\n                            setStatus('AI \u8bed\u97f3\u751f\u6210\u5b8c\u6210\uff0c\u6b63\u5728\u64ad\u653e...', '#008000');\n                        }\n                        return data.url;\n                    }\n\n                    if (response.status === 202) {\n                        var waitMs = data && data.retry_after_ms ? data.retry_after_ms : 1500;\n                        setStatus('AI \u6b63\u5728\u751f\u6210 MP3\uff0c\u8bf7\u7b49\u5f85... \u7b2c ' + (retryCount + 1) + ' \u6b21\u68c0\u67e5', '#004494');\n\n                        return new Promise(function(resolve) {\n                            setTimeout(function() {\n                                resolve();\n                            }, waitMs);\n                        }).then(function() {\n                            return fetchAudioUrl(text, retryCount + 1);\n                        });\n                    }\n\n                    throw new Error(data && data.error ? data.error : 'API \u8bf7\u6c42\u5931\u8d25');\n                });\n            });\n        }\n\n        btn.addEventListener('click', function(e) {\n            if (e && e.preventDefault) e.preventDefault();\n\n            var text = textBox.value || '';\n            text = text.replace(\/\\s+\/g, ' ').trim();\n\n            if (!text) {\n                setStatus('\u6ca1\u6709\u8bfb\u53d6\u5230\u6717\u8bfb\u6587\u5b57\u3002', '#b00020');\n                return;\n            }\n\n            btn.disabled = true;\n            btn.innerHTML = '\u6b63\u5728\u751f\u6210\uff0c\u8bf7\u7b49\u5f85...';\n\n            try {\n                audio.pause();\n                audio.removeAttribute('src');\n                audio.load();\n            } catch(err) {}\n\n            fetchAudioUrl(text, 0).then(function(url) {\n                audio.src = url;\n                audio.load();\n\n                var p = audio.play();\n\n                if (p && typeof p.catch === 'function') {\n                    p.catch(function() {\n                        setStatus('\u97f3\u9891\u5df2\u751f\u6210\u3002\u6d4f\u89c8\u5668\u963b\u6b62\u81ea\u52a8\u64ad\u653e\uff0c\u8bf7\u70b9\u51fb\u64ad\u653e\u5668\u4e0a\u7684\u64ad\u653e\u6309\u94ae\u3002', '#b00020');\n                    });\n                }\n\n                btn.disabled = false;\n                btn.innerHTML = '\u91cd\u65b0\u751f\u6210\/\u64ad\u653e\u672c\u8bfe\u8bed\u97f3';\n\n            }).catch(function(err) {\n                setStatus('\u9519\u8bef\uff1a' + (err && err.message ? err.message : err), '#b00020');\n                btn.disabled = false;\n                btn.innerHTML = '\u751f\u6210\u5e76\u64ad\u653e\u672c\u8bfe\u8bed\u97f3';\n            });\n        });\n\n        stopBtn.addEventListener('click', function(e) {\n            if (e && e.preventDefault) e.preventDefault();\n\n            try {\n                audio.pause();\n                audio.currentTime = 0;\n            } catch(err) {}\n\n            setStatus('\u5df2\u505c\u6b62\u64ad\u653e\u3002', '#555');\n        });\n\n        audio.addEventListener('ended', function() {\n            setStatus('\u64ad\u653e\u7ed3\u675f\u3002', '#555');\n        });\n\n        audio.addEventListener('error', function() {\n            setStatus('\u97f3\u9891\u64ad\u653e\u5931\u8d25\uff0c\u8bf7\u91cd\u65b0\u70b9\u51fb\u751f\u6210\u3002', '#b00020');\n        });\n    })();\n    <\/script>\n\n    <\/section>\n                    <section class=\"arttao-cpb-section arttao-cpb-section-ai\">\n            <h3 class=\"arttao-cpb-section-title\">\u25cb AI\u7597\u6108\u7b54\u7591<\/h3>\n            <div class=\"arttao-cpb-section-text\"><p>\u56f4\u7ed5\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\uff0c\u4f60\u53ef\u4ee5\u628a\u6700\u5bb9\u6613\u6c89\u9ed8\u7684\u573a\u666f\u3001\u9762\u5bf9\u7684\u4eba\u3001\u8eab\u4f53\u53cd\u5e94\u548c\u6700\u5bb3\u6015\u7684\u7ed3\u679c\u544a\u8bc9AI\u3002\u6211\u4eec\u5148\u62c6\u5206\u89e6\u53d1\u70b9\u3001\u8bed\u8a00\u7b49\u7ea7\u548c\u5b89\u5168\u652f\u6301\uff0c\u518d\u8bbe\u8ba1\u4e00\u4e2a\u6700\u4f4e\u538b\u529b\u7684\u8868\u8fbe\u6b65\u9aa4\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002<\/p><\/div>            <div class=\"arttao-cpb-shortcode\">    <div id=\"psych-ai-chat-container\">\n        <button id=\"toggle-chatbox\" style=\"font-size:1rem; background:#F0F8FF; padding:8px 20px; border: 1px solid #F5DEB3; border-radius:18px;\">\u5fc3\u7406\u7b54\u7591<\/button>\n\n    <!-- \u5bf9\u8bdd\u6846\u533a\u57df\uff1a\u9ed8\u8ba4\u9690\u85cf -->\n   \n   <div id=\"psych-ai-chat-container\" style=\"margin: 40px 0;\">\n   \n    <div id=\"psych-ai-chat\" style=\"\n        display: none;\n        margin-top: 20px;\n        border: 1px solid #F5DEB3;\n        padding: 8px;\n        background: white;\n        max-width: 750px;\n        border-radius: 30px;\n        box-shadow: 0 2px 10px rgba(0,0,0,0.05);\n    \">\n        <div id=\"chat-window\" style=\"\n            height: 300px;\n            overflow-y: auto;\n            background: #ffffff;\n            padding: 8px;\n            border: 1px solid #ddd;\n            white-space: pre-wrap;\n            font-size: 16px;\n            border-radius: 30px;\n        \"><\/div>\n\n        <div style=\"margin-top: 10px;\">\n            <textarea id=\"chat-input\" placeholder=\"\u270d \u8f93\u5165\u4f60\u7684\u95ee\u9898\u2026\" style=\"\n                width: 95%;\n                height: 60px;\n                border-radius: 20px;\n                padding: 8px;\n                font-size: 15px;\n                border: 1px solid #F5DEB3;\n            \"><\/textarea>\n            <button id=\"chat-submit\" style=\"\n                margin-top: 3px;\n                padding: 8px 16px;\n                background-color: #F0F8FF;\n                color: #2C003E;\n                border: none;\n                border-radius: 20px;\n                font-size: 14px;\n                cursor: pointer;\n            \">\u53d1\u9001<\/button>\n            \n            <!-- \u2705 \u65b0\u589e\uff1a\u4fdd\u5b58\u8bb0\u5f55\u6309\u94ae -->\n<button id=\"chat-save\" style=\"\n    margin-top: 8px;\n    padding: 8px 16px;\n    background-color: #e1ffe1;\n    color: #333;\n    border: none;\n    border-radius: 20px;\n    font-size: 14px;\n    cursor: pointer;\n\">\ud83d\udcbe \u4fdd\u5b58\u8bb0\u5f55<\/button>\n\n<!-- \u2705 \u4fdd\u5b58\u63d0\u793a\u6587\u5b57 -->\n<p id=\"save-notice\" style=\"display:none; color:green; margin-top:10px; font-weight:bold;\">\ud83d\udcbe \u6b63\u5728\u4fdd\u5b58\uff0c\u8bf7\u7a0d\u5019\u2026<\/p>\n\n\n        <\/div>\n    <\/div>\n<\/div>\n\n\n\n<script>\n\n\/\/ \u4fdd\u5b58\u8bb0\u5f55\u6309\u94ae\u903b\u8f91\nconst saveBtn = document.getElementById(\"chat-save\");\nconst saveNotice = document.getElementById(\"save-notice\");\n\nsaveBtn.addEventListener(\"click\", function () {\n    const content = document.getElementById(\"chat-window\").innerText.trim();\n    if (!content) {\n        alert(\"\u5f53\u524d\u6ca1\u6709\u5bf9\u8bdd\u5185\u5bb9\u53ef\u4fdd\u5b58\u3002\");\n        return;\n    }\n\n    saveNotice.style.display = \"block\";\n\n    const data = new URLSearchParams();\n    data.append(\"action\", \"psych_save_manual_report\");\n    data.append(\"content\", content);\n    data.append(\"nonce\", \"ad07d33073\");\n\n    fetch(\"https:\/\/arttao.org\/wp-admin\/admin-ajax.php\", {\n        method: \"POST\",\n        headers: { \"Content-Type\": \"application\/x-www-form-urlencoded\" },\n        body: data.toString()\n    })\n    .then(res => res.text())\n    .then(txt => {\n        alert(txt);\n        saveNotice.style.display = \"none\";\n    })\n    .catch(() => {\n        alert(\"\u274c \u4fdd\u5b58\u5931\u8d25\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002\");\n        saveNotice.style.display = \"none\";\n    });\n});\n\n\n    document.addEventListener(\"DOMContentLoaded\", function () {\n        const toggle = document.getElementById(\"toggle-chatbox\");\n        const box = document.getElementById(\"psych-ai-chat\");\n        const win = document.getElementById(\"chat-window\");\n        const input = document.getElementById(\"chat-input\");\n        const submit = document.getElementById(\"chat-submit\");\n\n        toggle.onclick = () => {\n            box.style.display = box.style.display === \"none\" ? \"block\" : \"none\";\n        };\n\n        function append(role, text) {\n            const div = document.createElement(\"div\");\n            div.textContent = (role === 'user' ? '\ud83e\uddd1 ' : '\ud83e\udd16 ') + text;\n            div.style.margin = \"8px 0\";\n            win.appendChild(div);\n            win.scrollTop = win.scrollHeight;\n        }\n\n        submit.addEventListener(\"click\", function () {\n            const text = input.value.trim();\n            if (!text) return;\n            append('user', text);\n            input.value = \"\";\n\n            const data = new URLSearchParams();\n            data.append(\"action\", \"psych_ai_chat_ajax\");\n            data.append(\"query\", text);\n            data.append(\"nonce\", \"ad07d33073\");\n\n            fetch(\"https:\/\/arttao.org\/wp-admin\/admin-ajax.php\", {\n                method: \"POST\",\n                headers: { \"Content-Type\": \"application\/x-www-form-urlencoded\" },\n                body: data.toString()\n            })\n            .then(res => res.text())\n            .then(txt => append('ai', txt))\n            .catch(() => append('ai', '\u274c \u7f51\u7edc\u9519\u8bef\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002'));\n        });\n    });\n    <\/script>\n    <\/div>        <\/section>\n                            <section class=\"arttao-cpb-section arttao-cpb-section-music\">\n            <h3 class=\"arttao-cpb-section-title\">\u25cb \u97f3\u4e50\u7597\u6108\u5f15\u5bfc<\/h3>\n            <div class=\"arttao-cpb-section-text\"><p>\u5b66\u4e60\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u540e\uff0c\u5efa\u8bae\u9009\u62e9\u7f13\u6162\u3001\u6e29\u67d4\u3001\u8282\u594f\u7a33\u5b9a\u7684\u97f3\u4e50\uff0c\u8ba9\u5589\u5499\u3001\u80a9\u9888\u548c\u547c\u5438\u6162\u6162\u677e\u5f00\u3002\u8046\u542c\u65f6\u4e0d\u5206\u6790\u65cb\u5f8b\uff0c\u53ea\u89c2\u5bdf\u8eab\u4f53\u662f\u5426\u4ece\u51bb\u7ed3\u72b6\u6001\u56de\u5230\u53ef\u8868\u8fbe\u72b6\u6001\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002<\/p><\/div>            <div class=\"arttao-cpb-shortcode\"><div style='clear: both; height: 30px;'><\/div><div style=\"text-align: left; max-width: 800px; margin: 0 auto 20px auto; font-family: Georgia, serif; padding-left: 10px;\"><div style=\"font-size: 22px; margin-bottom: 5px;\">\ud83c\udfb5 \u7b2c 272 \u8bfe\uff1a\u97f3\u9891\u64ad\u653e&nbsp;&nbsp;<\/div><div style=\"font-size: 15px; color: #444; line-height: 1.6; margin-top: 5px;\">\u8282\u594f\u5982\u6f6e\uff0c\u629a\u6170\u4f60\u8d77\u4f0f\u7684\u60c5\u7eea\u6ce2\u6f9c\u3002<\/div><\/div><div style=\"max-width: 850px; margin: 20px auto 15px auto; padding: 20px; background-color: #ffffff; border: 1px solid #aaa; border-radius: 30px; text-align: center; box-sizing: border-box;\"><audio id=\"audio_waveform_6a10dd24bd904_audio\" controls loop style=\"width: 100%; max-width: 800px; height: 30px; border-radius: 30px; display: block; margin: 0 auto; border: none;\"><source src=\"https:\/\/arttao.org\/wp-content\/uploads\/audio\/ES272.mp3\" type=\"audio\/mpeg\">\u60a8\u7684\u6d4f\u89c8\u5668\u4e0d\u652f\u6301\u97f3\u9891\u64ad\u653e\u3002<\/audio><\/div><div style=\"max-width: 850px; margin: 0 auto 30px auto;\"><canvas id=\"audio_waveform_6a10dd24bd904_canvas\" height=\"100\" style=\"width: 100%; background-color: white; border-radius: 8px; display: none;\"><\/canvas><\/div><script>\n    document.addEventListener('DOMContentLoaded', function () {\n        const isMobile = \/iPhone|iPad|iPod|Android\/i.test(navigator.userAgent);\n        const audio = document.getElementById('audio_waveform_6a10dd24bd904_audio');\n        const canvas = document.getElementById('audio_waveform_6a10dd24bd904_canvas');\n\n        if (isMobile) return;\n\n        canvas.style.display = 'block';\n        canvas.width = canvas.offsetWidth;\n        const ctx = canvas.getContext('2d');\n        let audioContext = null;\n        let analyser = null;\n        let source = null;\n        let dataArray = null;\n        let bufferLength = 0;\n        let contextInitialized = false;\n\n        function initContextAndVisualizer() {\n            if (contextInitialized) return;\n            contextInitialized = true;\n            audioContext = new (window.AudioContext || window.webkitAudioContext)();\n            analyser = audioContext.createAnalyser();\n            source = audioContext.createMediaElementSource(audio);\n            source.connect(analyser);\n            analyser.connect(audioContext.destination);\n            analyser.fftSize = 2048;\n            bufferLength = analyser.fftSize;\n            dataArray = new Uint8Array(bufferLength);\n            draw();\n        }\n\n        function draw() {\n            if (!analyser || !ctx) return;\n            requestAnimationFrame(draw);\n            analyser.getByteTimeDomainData(dataArray);\n            ctx.clearRect(0, 0, canvas.width, canvas.height);\n            ctx.lineWidth = 0.2;\n            ctx.strokeStyle = '#003344';\n            ctx.beginPath();\n            const sliceWidth = canvas.width \/ bufferLength;\n            let x = 0;\n            for (let i = 0; i < bufferLength; i++) {\n                const v = dataArray[i] \/ 128.0;\n                const y = v * canvas.height \/ 2;\n                i === 0 ? ctx.moveTo(x, y) : ctx.lineTo(x, y);\n                x += sliceWidth;\n            }\n            ctx.lineTo(canvas.width, canvas.height \/ 2);\n            ctx.stroke();\n        }\n\n        ['play', 'click', 'touchstart'].forEach(evt => {\n            audio.addEventListener(evt, () => {\n                if (!audioContext) {\n                    initContextAndVisualizer();\n                } else if (audioContext.state === 'suspended') {\n                    audioContext.resume().then(initContextAndVisualizer);\n                }\n            }, { passive: true });\n        });\n\n        audio.addEventListener('playing', () => {\n            if (!contextInitialized) initContextAndVisualizer();\n        });\n    });\n    <\/script><\/div>        <\/section>\n        \n            <section class=\"arttao-cpb-section arttao-cpb-section-tea\">\n                <h3 class=\"arttao-cpb-section-title\">\u25cb \u4e1c\u897f\u7597\u6108\u996e\u8336<\/h3>\n                <div class=\"arttao-cpb-section-text\"><p>\u672c\u8bfe\u996e\u8336\u5efa\u8bae\u9009\u62e9\u6e29\u548c\u3001\u4f4e\u523a\u6fc0\u7684\u70ed\u996e\uff0c\u5e2e\u52a9\u5b66\u4e60\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u540e\u7a33\u5b9a\u8eab\u4f53\u8282\u594f\u3002\u53ef\u7528\u6de1\u7ea2\u8336\u3001\u6842\u82b1\u4e4c\u9f99\u3001\u6d0b\u7518\u83ca\u8336\u6216\u6e29\u6c34\u5c11\u91cf\u6162\u996e\uff0c\u8ba9\u5589\u5499\u548c\u547c\u5438\u5148\u83b7\u5f97\u5b89\u5168\u611f\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002<\/p><\/div>            <\/section>\n\n            <section class=\"arttao-cpb-section arttao-cpb-section-recipe\">\n                <h3 class=\"arttao-cpb-section-title\">\u25cb \u7597\u6108\u98df\u8c31<\/h3>\n                        <article class=\"arttao-cpb-recipe-card\">\n                            <h3 class=\"medit-h\">\u716e\u80e1\u841d\u535c\u4f50\u9999\u8349<\/h3>\n                <div class=\"medit-hr\">&nbsp;<\/div>\n            \n                            <p>\u716e\u80e1\u841d\u535c\u4f50\u9999\u8349\u9002\u5408\u4f5c\u4e3a\u672c\u8bfe\u540e\u7684\u7597\u6108\u98df\u8c31\u3002\u80e1\u841d\u535c\u716e\u81f3\u67d4\u8f6f\u540e\u52a0\u5165\u6a44\u6984\u6cb9\u3001\u6b27\u82b9\u548c\u5c11\u91cf\u67e0\u6aac\u6c41\uff0c\u5473\u9053\u6e05\u6de1\u81ea\u7136\u3002\u5b83\u9002\u5408\u4f5c\u4e3a\u80c3\u90e8\u8f83\u654f\u611f\u65f6\u7684\u6e29\u548c\u914d\u83dc\uff0c\u4e5f\u9002\u5408\u4e0e\u9c7c\u8089\u6216\u8c37\u7269\u642d\u914d\u3002\u8fdb\u98df\u65f6\u8bf7\u611f\u53d7\u751c\u9999\u3001\u67d4\u8f6f\u4e0e\u8eab\u4f53\u5b89\u7a33\u3002<\/p>\n            \n                            <div><span class=\"medit-tag\">\u67d4\u8f6f\u914d\u83dc\u3001\u81ea\u7136\u751c\u5473\u3001\u6e29\u548c\u5b89\u7a33<\/span><\/div>\n            \n                    <\/article>\n                        <div class=\"arttao-cpb-shortcode\">        <div class=\"arttao-cookbook-box\" id=\"arttao_cookbook_23543\">\r\n            <button type=\"button\" class=\"arttao-cookbook-btn\">\r\n                \u6253\u5f00\u7597\u6108\u98df\u8c31            <\/button>\r\n\r\n            <div class=\"arttao-cookbook-panel\">\r\n                                    <iframe\r\n                        class=\"arttao-cookbook-frame\"\r\n                        src=\"https:\/\/arttao.org\/wp-content\/uploads\/cookbook\/272-%E7%85%AE%E8%83%A1%E8%90%9D%E5%8D%9C%E4%BD%90%E9%A6%99%E8%8D%89.html\"\r\n                        width=\"100%\"\r\n                        height=\"1200\"\r\n                        scrolling=\"no\"\r\n                        loading=\"lazy\">\r\n                    <\/iframe>\r\n                            <\/div>\r\n        <\/div>\r\n\r\n        <style>\r\n            #arttao_cookbook_23543.arttao-cookbook-box{\r\n                margin:18px 0;\r\n                padding:14px;\r\n                text-align:center;\r\n                border:1px solid #F5DEB3;\r\n                background:#fff;\r\n                border-radius:14px;\r\n                box-sizing:border-box;\r\n            }\r\n\r\n            #arttao_cookbook_23543 .arttao-cookbook-btn{\r\n                padding:10px 22px;\r\n                border-radius:999px;\r\n                border:1px solid #F5DEB3;\r\n                background:#FDF5E6;\r\n                color:#5a3b18;\r\n                font-size:15px;\r\n                cursor:pointer;\r\n            }\r\n\r\n            #arttao_cookbook_23543 .arttao-cookbook-panel{\r\n                display:none;\r\n                margin-top:16px;\r\n                overflow:hidden;\r\n                border:1px solid #F5DEB3;\r\n                background:#FDF5E6;\r\n                border-radius:12px;\r\n                box-sizing:border-box;\r\n            }\r\n\r\n            #arttao_cookbook_23543 .arttao-cookbook-frame{\r\n                display:block;\r\n                width:100%;\r\n                border:0;\r\n                background:#FDF5E6;\r\n                overflow:hidden;\r\n            }\r\n\r\n            #arttao_cookbook_23543 .arttao-cookbook-inline{\r\n                width:100%;\r\n                background:#FDF5E6;\r\n                text-align:left;\r\n                box-sizing:border-box;\r\n                overflow:hidden;\r\n            }\r\n\r\n            #arttao_cookbook_23543 .arttao-cookbook-error{\r\n                text-align:left;\r\n                color:#b00020;\r\n                background:#fff7f7;\r\n                border:1px solid #ffd6d6;\r\n                border-radius:10px;\r\n                padding:12px;\r\n                line-height:1.7;\r\n                font-size:13px;\r\n            }\r\n\r\n            #arttao_cookbook_23543 .arttao-cookbook-error code{\r\n                color:#555;\r\n                font-size:12px;\r\n            }\r\n        <\/style>\r\n\r\n        <script>\r\n        (function(){\r\n            var box = document.getElementById('arttao_cookbook_23543');\r\n            if(!box) return;\r\n\r\n            var btn = box.querySelector('.arttao-cookbook-btn');\r\n            var panel = box.querySelector('.arttao-cookbook-panel');\r\n            var frame = box.querySelector('.arttao-cookbook-frame');\r\n\r\n            if(!btn || !panel) return;\r\n\r\n            function resizeFrame(){\r\n                if(!frame) return;\r\n                try{\r\n                    var doc = frame.contentWindow.document;\r\n                    doc.documentElement.style.overflow = 'hidden';\r\n                    doc.body.style.overflow = 'hidden';\r\n                    doc.body.style.background = '#FDF5E6';\r\n\r\n                    var h = Math.max(\r\n                        doc.body.scrollHeight,\r\n                        doc.documentElement.scrollHeight\r\n                    );\r\n                    frame.style.height = h + 'px';\r\n                }catch(e){\r\n                    frame.style.height = '1200px';\r\n                }\r\n            }\r\n\r\n            btn.addEventListener('click', function(){\r\n                var isOpen = panel.style.display === 'block';\r\n                panel.style.display = isOpen ? 'none' : 'block';\r\n                btn.textContent = isOpen ? '\u6253\u5f00\u7597\u6108\u98df\u8c31' : '\u6536\u8d77\u7597\u6108\u98df\u8c31';\r\n\r\n                if(!isOpen && frame){\r\n                    setTimeout(resizeFrame, 500);\r\n                }\r\n            });\r\n\r\n            if(frame){\r\n                frame.addEventListener('load', resizeFrame);\r\n            }\r\n        })();\r\n        <\/script>\r\n        <\/div>            <\/section>\n\n                    <section class=\"arttao-cpb-section arttao-cpb-section-mandala\">\n            <h3 class=\"arttao-cpb-section-title\">\u25cb \u66fc\u9640\u7f57\u7597\u6108<\/h3>\n            <div class=\"arttao-cpb-section-text\"><p>\u5b8c\u6210\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u540e\uff0c\u8bf7\u5b89\u9759\u89c2\u770b\u66fc\u9640\u7f57\u56fe\u50cf\u3002\u4e0d\u8981\u6025\u7740\u5206\u6790\u989c\u8272\u548c\u5f62\u72b6\uff0c\u53ea\u8ba9\u89c6\u7ebf\u5728\u4e2d\u5fc3\u3001\u8fb9\u7f18\u4e0e\u91cd\u590d\u8282\u594f\u4e4b\u95f4\u79fb\u52a8\uff0c\u5e2e\u52a9\u51bb\u7ed3\u7684\u6ce8\u610f\u529b\u6162\u6162\u56de\u5230\u7a33\u5b9a\u79e9\u5e8f\u4e2d\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002<\/p><\/div>            <div class=\"arttao-cpb-shortcode\">    <style>\r\n        .amc-launcher-amc_eng_6a10dd24bd9c9 {\r\n            max-width: 1100px; margin: 20px auto;\r\n            background: #F0F8FF;border:1px solid #AEE5E5;\r\n            border-radius: 30px; padding: 12px; text-align: center; cursor: pointer;\r\n            color: #fff; box-shadow: 0 15px 35px rgba(0,0,0,0.15); transition: all 0.4s ease;\r\n        }\r\n        .amc-launcher-amc_eng_6a10dd24bd9c9:hover {\r\n            transform: translateY(-3px); box-shadow: 0 18px 40px rgba(0,0,0,0.2);\r\n        }\r\n        .amc-main-container-amc_eng_6a10dd24bd9c9 {\r\n            max-width: 1000px; margin: 0 auto; overflow: hidden;\r\n            max-height: 0;\r\n            transition: max-height 0.8s ease;\r\n            background: #E5FFFF; border-radius: 25px;\r\n                    }\r\n        .amc-main-container-amc_eng_6a10dd24bd9c9.is-open {\r\n            max-height: 4000px; margin-top: 20px; border: 1px solid #FFCCFF;\r\n        }\r\n        .amc-head-bar {\r\n            display: flex; justify-content: space-between; padding: 16px 20px;\r\n            background: #AEE5E5; color: #0000FF; font-size: 13px; font-family: monospace;\r\n        }\r\n        .amc-tabs-nav {\r\n            padding: 10px; background: #f5f5f5; border-bottom: 1px solid #FFCCFF;\r\n            display: flex; gap: 6px; overflow-x: auto; white-space: nowrap;\r\n        }\r\n        .amc-tab-btn {\r\n            flex: 0 0 36px; height: 36px; background: #fff; border: 1px solid #FFCCFF;\r\n            border-radius: 10px; font-size: 12px; font-weight: bold; cursor: pointer;\r\n            display: flex; align-items: center; justify-content: center; transition: all 0.2s;\r\n        }\r\n        .amc-tab-btn:hover { background: #eee; }\r\n        .amc-tab-btn.active { background: #2A5CAA !important; color: #fff !important; border-color: #2A5CAA !important; }\r\n        .amc-body { padding: 20px; text-align: center; }\r\n        .amc-canvas-box {\r\n            width: 100%; aspect-ratio: 1\/1; background: #4682B4;\r\n            border: 1px solid rgba(198,247,247,0.22); margin-bottom: 15px; border-radius: 8px;\r\n            overflow: hidden; box-shadow: inset 0 0 24px rgba(198,247,247,0.08), 0 0 18px rgba(0,0,0,0.28);\r\n        }\r\n        .amc-canvas-box canvas { width: 100%; height: 100%; display: block; background: #4682B4; }\r\n        .amc-status-note { font-size: 12px; color: #666; margin-top: 10px; font-family: monospace; }\r\n        .amc-music-button-amc_eng_6a10dd24bd9c9{\r\n            margin-top:10px; padding:6px 16px; border-radius:16px; border:1px solid #FFCCFF;\r\n            background:#D9FFFF; color:#330000; cursor:pointer; font-size:12px; font-weight:bold;\r\n        }\r\n        .amc-music-button-amc_eng_6a10dd24bd9c9.ready{background:#AEE5E5;color:#000080;}\r\n        .amc-gate-notice{\r\n            display:none; margin:0 0 14px; padding:12px 14px;\r\n            border:1px solid #f5deb3; border-radius:14px; background:#fffaf2;\r\n            color:#7a4f01; line-height:1.6; text-align:left;\r\n        }\r\n    <\/style>\r\n\r\n   <div class=\"amc-launcher-amc_eng_6a10dd24bd9c9\" id=\"launch-amc_eng_6a10dd24bd9c9\" style=\"display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:70px;\"> \r\n    <h2 class=\"amc-main-title\" style=\"margin:0; font-size:24px; text-align:center;\">\u25cf AI \u5e73\u8861\u5fc3\u7406\u6a21\u62df\u5f15\u64ce \u25cf<\/h2>\r\n    <p class=\"amc-main-subtitle\" style=\"margin:10px 0 0; opacity:.8; font-size:13px; text-align:center; color:#8B5A2B;\">AI \u5e73\u8861\u5fc3\u7406\u6a21\u62df\u5668<\/p>\r\n<\/div>\r\n\r\n    <div class=\"amc-main-container-amc_eng_6a10dd24bd9c9 \" id=\"main-amc_eng_6a10dd24bd9c9\" data-amc-root=\"1\">\r\n        <div class=\"amc-head-bar\">\r\n            <span>STRUCTURE: <strong id=\"cur-letter-amc_eng_6a10dd24bd9c9\">A<\/strong><\/span>\r\n            <span style=\"cursor:pointer\" id=\"toggle-amc_eng_6a10dd24bd9c9\">\u8fd4\u56de\u5c01\u9762 \u2715<\/span>\r\n        <\/div>\r\n\r\n        <div class=\"amc-tabs-nav\">\r\n                            <button type=\"button\" class=\"amc-tab-btn active\" data-letter=\"A\">\r\n                    A                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"B\">\r\n                    B                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"C\">\r\n                    C                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"D\">\r\n                    D                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"E\">\r\n                    E                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"F\">\r\n                    F                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"G\">\r\n                    G                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"H\">\r\n                    H                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"I\">\r\n                    I                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"J\">\r\n                    J                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"K\">\r\n                    K                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"L\">\r\n                    L                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"M\">\r\n                    M                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"N\">\r\n                    N                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"O\">\r\n                    O                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"P\">\r\n                    P                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"Q\">\r\n                    Q                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"R\">\r\n                    R                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"S\">\r\n                    S                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"T\">\r\n                    T                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"U\">\r\n                    U                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"V\">\r\n                    V                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"W\">\r\n                    W                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"X\">\r\n                    X                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"Y\">\r\n                    Y                <\/button>\r\n                            <button type=\"button\" class=\"amc-tab-btn \" data-letter=\"Z\">\r\n                    Z                <\/button>\r\n                    <\/div>\r\n\r\n        <div class=\"amc-body\">\r\n            <div class=\"amc-gate-notice\" id=\"notice-amc_eng_6a10dd24bd9c9\"><\/div>\r\n            <div class=\"amc-canvas-box\">\r\n                <canvas id=\"cv-amc_eng_6a10dd24bd9c9\"><\/canvas>\r\n            <\/div>\r\n            <div class=\"amc-status-note\" id=\"note-amc_eng_6a10dd24bd9c9\">Ready<\/div>\r\n            <button type=\"button\" class=\"amc-music-button-amc_eng_6a10dd24bd9c9\" id=\"music-btn-amc_eng_6a10dd24bd9c9\">\u5f00\u542f\u97f3\u4e50 \/ Test Music<\/button>\r\n            <audio id=\"music-amc_eng_6a10dd24bd9c9\" src=\"https:\/\/arttao.org\/wp-content\/uploads\/2026\/05\/ES266.mp3\" preload=\"auto\" playsinline><\/audio>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n    (function(){\r\n        \"use strict\";\r\n\r\n        var uid = \"amc_eng_6a10dd24bd9c9\";\r\n        var AJAX_URL = \"https:\/\/arttao.org\/wp-admin\/admin-ajax.php\";\r\n        var AJAX_NONCE = \"4398cdf297\";\r\n        var PAUSE_MS = 5000;\r\n        var MUSIC_MAP = {\"A\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES266.mp3\",\"B\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES2.mp3\",\"C\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES3.mp3\",\"D\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES4.mp3\",\"E\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES6.mp3\",\"F\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES265.mp3\",\"G\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES7.mp3\",\"H\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES9.mp3\",\"I\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES10.mp3\",\"J\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES11.mp3\",\"K\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES12.mp3\",\"L\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES13.mp3\",\"M\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES14.mp3\",\"N\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES15.mp3\",\"O\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES16.mp3\",\"P\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES17.mp3\",\"Q\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES20.mp3\",\"R\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES21.mp3\",\"S\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES22.mp3\",\"T\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES23.mp3\",\"U\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES24.mp3\",\"V\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES25.mp3\",\"W\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES264.mp3\",\"X\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES263.mp3\",\"Y\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES262.mp3\",\"Z\":\"https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/ES261.mp3\"} || {};\r\n        var HAS_ANY_CUSTOM_MUSIC = true;\r\n\r\n        var launcher = document.getElementById('launch-' + uid);\r\n        var mainContainer = document.getElementById('main-' + uid);\r\n        var toggleBtn = document.getElementById('toggle-' + uid);\r\n        var canvas = document.getElementById('cv-' + uid);\r\n        var curLetterLabel = document.getElementById('cur-letter-' + uid);\r\n        var note = document.getElementById('note-' + uid);\r\n        var notice = document.getElementById('notice-' + uid);\r\n        var music = document.getElementById('music-' + uid);\r\n        var musicBtn = document.getElementById('music-btn-' + uid);\r\n\r\n        if(!canvas || !mainContainer) return;\r\n        var ctx = canvas.getContext('2d');\r\n        if(!ctx) return;\r\n\r\n        var LOGICAL = 1000;\r\n        var SPEED = 0.006;\r\n        var REPEAT_TOTAL = 3;\r\n\r\n        var BG_COLOR = \"#003344\";\r\n        var LINE_COLOR = \"#FFFF99\";\r\n        var RUNNER_COLOR = \"#FF5C7A\";\r\n        var LINEW = 1.6;\r\n\r\n        var activeLetter = \"A\";\r\n        var currentIndex = 0;\r\n        var progress = 0;\r\n        var repeatIndex = 1;\r\n        var raf = 0;\r\n        var pauseTimer = 0;\r\n        var musicReady = false;\r\n        var unlockedMusicSrc = '';\r\n        var audioUnlocked = false;\r\n        var audioCtx = null;\r\n        var builtInMusicTimers = [];\r\n        var builtInMusicNodes = [];\r\n\r\n        var unlocked = false;\r\n        var unlockPending = false;\r\n        var stopped = false;\r\n\r\n        function clearPauseTimer(){\r\n            if (pauseTimer) {\r\n                clearTimeout(pauseTimer);\r\n                pauseTimer = 0;\r\n            }\r\n        }\r\n\r\n        function getAudioContext(){\r\n            if (audioCtx) return audioCtx;\r\n            var AC = window.AudioContext || window.webkitAudioContext;\r\n            if (!AC) return null;\r\n            audioCtx = new AC();\r\n            return audioCtx;\r\n        }\r\n\r\n        function markMusicReady(text){\r\n            if (musicBtn) {\r\n                musicBtn.classList.add('ready');\r\n                musicBtn.textContent = text || '\u97f3\u4e50\u5df2\u5f00\u542f \/ Music Ready';\r\n            }\r\n        }\r\n\r\n        function unlockBuiltInMusic(){\r\n            var ac = getAudioContext();\r\n            if (!ac) return false;\r\n\r\n            function ping(){\r\n                try {\r\n                    var osc = ac.createOscillator();\r\n                    var gain = ac.createGain();\r\n                    gain.gain.setValueAtTime(0.0001, ac.currentTime);\r\n                    osc.frequency.setValueAtTime(440, ac.currentTime);\r\n                    osc.connect(gain);\r\n                    gain.connect(ac.destination);\r\n                    osc.start(ac.currentTime);\r\n                    osc.stop(ac.currentTime + 0.035);\r\n                    setTimeout(function(){\r\n                        try { osc.disconnect(); } catch(e) {}\r\n                        try { gain.disconnect(); } catch(e) {}\r\n                    }, 120);\r\n                } catch(e) {}\r\n            }\r\n\r\n            if (ac.state === 'suspended' && ac.resume) {\r\n                ac.resume().then(function(){\r\n                    audioUnlocked = true;\r\n                    ping();\r\n                    markMusicReady();\r\n                }).catch(function(){});\r\n            } else {\r\n                audioUnlocked = true;\r\n                ping();\r\n                markMusicReady();\r\n            }\r\n            return true;\r\n        }\r\n\r\n        function getCurrentMusicUrl(){\r\n            return (MUSIC_MAP && MUSIC_MAP[activeLetter]) ? MUSIC_MAP[activeLetter] : '';\r\n        }\r\n\r\n        function setCurrentMusicSrc(){\r\n            if (!music) return '';\r\n            var src = getCurrentMusicUrl();\r\n            if (src && music.getAttribute('src') !== src) {\r\n                try {\r\n                    music.pause();\r\n                    music.currentTime = 0;\r\n                } catch(e) {}\r\n                music.setAttribute('src', src);\r\n                musicReady = false;\r\n                unlockedMusicSrc = '';\r\n            }\r\n            return src;\r\n        }\r\n\r\n        function unlockCustomMusic(){\r\n            var currentSrc = setCurrentMusicSrc();\r\n            if (!music || !currentSrc || (musicReady && unlockedMusicSrc === currentSrc)) return;\r\n            try {\r\n                music.load();\r\n                music.muted = false;\r\n                music.volume = 0.01;\r\n                var p = music.play();\r\n                if (p && typeof p.then === 'function') {\r\n                    p.then(function(){\r\n                        setTimeout(function(){\r\n                            try {\r\n                                music.pause();\r\n                                music.currentTime = 0;\r\n                                music.volume = 0.85;\r\n                                musicReady = true;\r\n                                unlockedMusicSrc = currentSrc;\r\n                                markMusicReady();\r\n                            } catch(e) {}\r\n                        }, 80);\r\n                    }).catch(function(){\r\n                        \/\/ \u81ea\u5b9a\u4e49 MP3 \u88ab\u6d4f\u89c8\u5668\u62e6\u622a\u65f6\uff0c\u6700\u540e\u4f1a\u81ea\u52a8\u9000\u56de\u5185\u7f6e\u97f3\u4e50\u3002\r\n                    });\r\n                } else {\r\n                    setTimeout(function(){\r\n                        try {\r\n                            music.pause();\r\n                            music.currentTime = 0;\r\n                            music.volume = 0.85;\r\n                            musicReady = true;\r\n                            unlockedMusicSrc = currentSrc;\r\n                            markMusicReady();\r\n                        } catch(e) {}\r\n                    }, 80);\r\n                }\r\n            } catch(e) {}\r\n        }\r\n\r\n        function stopBuiltInMusic(){\r\n            builtInMusicTimers.forEach(function(t){ clearTimeout(t); });\r\n            builtInMusicTimers = [];\r\n            builtInMusicNodes.forEach(function(n){\r\n                try { n.stop(0); } catch(e) {}\r\n                try { n.disconnect(); } catch(e) {}\r\n            });\r\n            builtInMusicNodes = [];\r\n        }\r\n\r\n        function stopMusic(){\r\n            stopBuiltInMusic();\r\n            if (!music) return;\r\n            try {\r\n                music.pause();\r\n                music.currentTime = 0;\r\n            } catch(e) {}\r\n        }\r\n\r\n        function unlockMusicByFirstClick(){\r\n            if (audioUnlocked && musicReady) return;\r\n            unlockBuiltInMusic();\r\n            unlockCustomMusic();\r\n        }\r\n\r\n        function playBuiltInMusic(){\r\n            var ac = getAudioContext();\r\n            if (!ac) {\r\n                if (note) note.textContent = 'This browser does not support built-in audio.';\r\n                return false;\r\n            }\r\n\r\n            if (ac.state === 'suspended') {\r\n                if (note) note.textContent = 'Music is blocked. Click \u201c\u5f00\u542f\u97f3\u4e50 \/ Test Music\u201d, then run again.';\r\n                return false;\r\n            }\r\n\r\n            stopBuiltInMusic();\r\n\r\n            var notes = [\r\n                261.63, 329.63, 392.00, 523.25,\r\n                392.00, 329.63, 293.66, 349.23,\r\n                440.00, 392.00, 329.63, 261.63\r\n            ];\r\n            var now = ac.currentTime + 0.08;\r\n\r\n            notes.forEach(function(freq, i){\r\n                var start = now + i * 0.50;\r\n                var osc = ac.createOscillator();\r\n                var gain = ac.createGain();\r\n\r\n                osc.type = 'sine';\r\n                osc.frequency.setValueAtTime(freq, start);\r\n\r\n                gain.gain.setValueAtTime(0.0001, start);\r\n                gain.gain.exponentialRampToValueAtTime(0.32, start + 0.07);\r\n                gain.gain.exponentialRampToValueAtTime(0.0001, start + 0.46);\r\n\r\n                osc.connect(gain);\r\n                gain.connect(ac.destination);\r\n\r\n                osc.start(start);\r\n                osc.stop(start + 0.50);\r\n                builtInMusicNodes.push(osc);\r\n\r\n                var timer = setTimeout(function(){\r\n                    try { osc.disconnect(); } catch(e) {}\r\n                    try { gain.disconnect(); } catch(e) {}\r\n                }, (i * 500) + 900);\r\n                builtInMusicTimers.push(timer);\r\n            });\r\n\r\n            if (note) note.textContent = 'Simulation Complete: ' + activeLetter + ' | music playing';\r\n            return true;\r\n        }\r\n\r\n        function playCompleteMusic(){\r\n            stopBuiltInMusic();\r\n\r\n            var currentSrc = setCurrentMusicSrc();\r\n            if (currentSrc && music && music.getAttribute('src')) {\r\n                try {\r\n                    music.pause();\r\n                    music.currentTime = 0;\r\n                    music.muted = false;\r\n                    music.volume = 0.85;\r\n                    var p = music.play();\r\n                    if (p && typeof p.then === 'function') {\r\n                        p.then(function(){\r\n                            if (note) note.textContent = 'Simulation Complete: ' + activeLetter + ' | MP3 music playing';\r\n                        }).catch(function(){\r\n                            playBuiltInMusic();\r\n                        });\r\n                    }\r\n                    return;\r\n                } catch(e) {\r\n                    playBuiltInMusic();\r\n                    return;\r\n                }\r\n            }\r\n\r\n            playBuiltInMusic();\r\n        }\r\n\r\n        var TPL = {\r\n            \r\n            'A': [\r\n                {x:921,y:94},{x:386,y:642}, {x:386,y:642},{x:921,y:893},\r\n                {x:921,y:893},{x:920,y:94}, {x:920,y:94},{x:344,y:95},\r\n                {x:344,y:95},{x:628,y:346}, {x:628,y:346},{x:91,y:95},\r\n                {x:91,y:95},{x:88,y:894}, {x:88,y:894},{x:422,y:419},\r\n                {x:422,y:419},{x:91,y:96}, {x:91,y:96},{x:346,y:95},\r\n                {x:346,y:95},{x:88,y:894}, {x:88,y:894},{x:628,y:347},\r\n                {x:628,y:347},{x:88,y:894}, {x:88,y:894},{x:670,y:893},\r\n                {x:670,y:893},{x:920,y:96}, {x:920,y:96},{x:588,y:573},\r\n                {x:588,y:573},{x:920,y:893}, {x:920,y:893},{x:387,y:642},\r\n                {x:387,y:642},{x:669,y:893}\r\n            ]\r\n        };\r\nTPL['B'] = [\r\n  {x:60,y:336},{x:273,y:817}, {x:273,y:817},{x:201,y:926},\r\n  {x:201,y:926},{x:57,y:601}, {x:57,y:601},{x:132,y:496},\r\n  {x:132,y:496},{x:563,y:654}, {x:563,y:654},{x:348,y:179},\r\n  {x:348,y:179},{x:207,y:125}, {x:207,y:125},{x:60,y:334},\r\n  {x:60,y:334},{x:205,y:387}, {x:205,y:387},{x:420,y:72},\r\n  {x:420,y:72},{x:491,y:229}, {x:491,y:229},{x:419,y:336},\r\n  {x:419,y:336},{x:853,y:491}, {x:853,y:491},{x:924,y:386},\r\n  {x:924,y:386},{x:776,y:68}, {x:776,y:68},{x:706,y:175},\r\n  {x:706,y:175},{x:420,y:73}, {x:420,y:73},{x:491,y:229},\r\n  {x:491,y:229},{x:924,y:387}, {x:924,y:387},{x:854,y:491},\r\n  {x:854,y:491},{x:926,y:652}, {x:926,y:652},{x:781,y:598},\r\n  {x:781,y:598},{x:563,y:926}, {x:563,y:926},{x:130,y:763},\r\n  {x:130,y:763},{x:58,y:602}, {x:58,y:602},{x:491,y:761},\r\n  {x:491,y:761},{x:563,y:653}, {x:563,y:653},{x:638,y:816},\r\n  {x:638,y:816},{x:778,y:881}, {x:778,y:881},{x:925,y:652},\r\n  {x:925,y:652},{x:782,y:598}, {x:782,y:598},{x:705,y:437},\r\n  {x:705,y:437},{x:560,y:387}, {x:560,y:387},{x:709,y:706},\r\n  {x:709,y:706},{x:563,y:926}, {x:563,y:926},{x:275,y:284},\r\n  {x:275,y:284},{x:205,y:387}, {x:205,y:387},{x:411,y:869},\r\n  {x:563,y:926},{x:782,y:598}, {x:782,y:598},{x:706,y:438},\r\n  {x:706,y:438},{x:855,y:492}, {x:855,y:492},{x:706,y:176},\r\n  {x:706,y:176},{x:851,y:228}\r\n];\r\nTPL['C'] = [\r\n  {x:379,y:2},{x:882,y:335}, {x:882,y:335},{x:817,y:919},\r\n  {x:817,y:919},{x:187,y:920}, {x:187,y:920},{x:443,y:250},\r\n  {x:443,y:250},{x:189,y:80}, {x:189,y:80},{x:125,y:670},\r\n  {x:125,y:670},{x:377,y:840}, {x:377,y:840},{x:442,y:250},\r\n  {x:442,y:250},{x:567,y:335}, {x:567,y:335},{x:567,y:755},\r\n  {x:567,y:755},{x:629,y:168}, {x:629,y:168},{x:816,y:919},\r\n  {x:816,y:919},{x:440,y:670}, {x:440,y:670},{x:442,y:249},\r\n  {x:442,y:249},{x:190,y:80}, {x:190,y:80},{x:377,y:839},\r\n  {x:377,y:839},{x:620,y:999}, {x:620,y:999},{x:881,y:334},\r\n  {x:881,y:334},{x:818,y:918}, {x:818,y:918},{x:817,y:84},\r\n  {x:817,y:84},{x:190,y:80}, {x:190,y:80},{x:187,y:919},\r\n  {x:187,y:919},{x:567,y:755}, {x:567,y:755},{x:817,y:84},\r\n  {x:817,y:84},{x:379,y:3}, {x:379,y:3},{x:126,y:672},\r\n  {x:126,y:672},{x:250,y:755}, {x:250,y:755},{x:443,y:250},\r\n  {x:443,y:250},{x:817,y:84}, {x:817,y:84},{x:817,y:84},\r\n  {x:817,y:84},{x:818,y:87}\r\n];\r\nTPL['D'] = [\r\n  {x:180,y:68},{x:189,y:715}, {x:189,y:715},{x:311,y:715},\r\n  {x:311,y:715},{x:308,y:68}, {x:308,y:68},{x:182,y:69},\r\n  {x:182,y:69},{x:60,y:189}, {x:60,y:189},{x:61,y:762},\r\n  {x:61,y:762},{x:639,y:765}, {x:639,y:765},{x:560,y:681},\r\n  {x:560,y:681},{x:343,y:684}, {x:343,y:684},{x:313,y:715},\r\n  {x:313,y:715},{x:189,y:715}, {x:189,y:715},{x:61,y:763},\r\n  {x:61,y:763},{x:192,y:880}, {x:192,y:880},{x:638,y:882},\r\n  {x:638,y:882},{x:639,y:765}, {x:639,y:765},{x:689,y:820},\r\n  {x:689,y:820},{x:688,y:945}, {x:688,y:945},{x:812,y:946},\r\n  {x:812,y:946},{x:940,y:820}, {x:940,y:820},{x:940,y:262},\r\n  {x:940,y:262},{x:820,y:137}, {x:820,y:137},{x:359,y:137},\r\n  {x:359,y:137},{x:361,y:262}, {x:361,y:262},{x:940,y:262},\r\n  {x:940,y:262},{x:818,y:311}, {x:818,y:311},{x:812,y:946},\r\n  {x:812,y:946},{x:688,y:945}, {x:688,y:945},{x:691,y:311},\r\n  {x:691,y:311},{x:819,y:311}, {x:819,y:311},{x:691,y:311},\r\n  {x:691,y:311},{x:561,y:437}, {x:561,y:437},{x:560,y:682},\r\n  {x:560,y:682},{x:344,y:684}, {x:344,y:684},{x:435,y:594},\r\n  {x:435,y:594},{x:436,y:342}, {x:436,y:342},{x:309,y:210},\r\n  {x:309,y:210},{x:436,y:343}, {x:436,y:343},{x:659,y:343}\r\n];\r\nTPL['E'] = [\r\n  {x:150,y:406},{x:264,y:359}, {x:264,y:359},{x:261,y:144},\r\n  {x:261,y:144},{x:149,y:146}, {x:149,y:146},{x:150,y:409},\r\n  {x:150,y:409},{x:607,y:920}, {x:607,y:920},{x:350,y:308},\r\n  {x:350,y:308},{x:722,y:147}, {x:722,y:147},{x:608,y:919},\r\n  {x:608,y:919},{x:832,y:917}, {x:832,y:917},{x:723,y:147},\r\n  {x:723,y:147},{x:267,y:85}, {x:267,y:85},{x:831,y:85},\r\n  {x:831,y:85},{x:834,y:917}, {x:834,y:917},{x:155,y:916},\r\n  {x:155,y:916},{x:150,y:407}, {x:150,y:407},{x:275,y:550},\r\n  {x:275,y:550},{x:156,y:916}, {x:153,y:918},{x:150,y:145}, \r\n  {x:150,y:145},{x:264,y:84},  {x:264,y:84},{x:261,y:145}, \r\n  {x:261,y:145},{x:348,y:307}\r\n];\r\nTPL['F'] = [\r\n  {x:56,y:53},{x:949,y:56}, {x:949,y:56},{x:946,y:944},\r\n  {x:946,y:944},{x:608,y:944}, {x:608,y:944},{x:919,y:256},\r\n  {x:919,y:256},{x:412,y:29}, {x:412,y:29},{x:87,y:758},\r\n  {x:87,y:758},{x:588,y:981}, {x:588,y:981},{x:609,y:944},\r\n  {x:609,y:944},{x:56,y:946}, {x:56,y:946},{x:54,y:53},\r\n  {x:54,y:53},{x:400,y:54}, {x:400,y:54},{x:341,y:188},\r\n  {x:341,y:188},{x:84,y:322}, {x:84,y:322},{x:81,y:760},\r\n  {x:81,y:760},{x:341,y:629}, {x:341,y:629},{x:340,y:191},\r\n  {x:340,y:191},{x:665,y:335}, {x:665,y:335},{x:664,y:822},\r\n  {x:664,y:822},{x:915,y:690}, {x:915,y:690},{x:919,y:254},\r\n  {x:919,y:254},{x:665,y:386}, {x:665,y:386},{x:340,y:239},\r\n  {x:340,y:239},{x:341,y:629}, {x:341,y:629},{x:665,y:775},\r\n  {x:665,y:775},{x:665,y:822}, {x:665,y:822},{x:341,y:680},\r\n  {x:341,y:680},{x:341,y:630}\r\n];\r\nTPL['G'] = [\r\n  {x:71,y:47},{x:357,y:287}, {x:357,y:287},{x:651,y:290},\r\n  {x:651,y:290},{x:930,y:47}, {x:930,y:47},{x:73,y:47},\r\n  {x:73,y:47},{x:72,y:287}, {x:72,y:287},{x:360,y:287},\r\n  {x:360,y:287},{x:791,y:639}, {x:791,y:639},{x:789,y:836},\r\n  {x:789,y:836},{x:653,y:719}, {x:653,y:719},{x:359,y:718},\r\n  {x:359,y:718},{x:357,y:295}, {x:357,y:295},{x:73,y:295},\r\n  {x:73,y:295},{x:71,y:952}, {x:71,y:952},{x:359,y:718},\r\n  {x:359,y:718},{x:653,y:718}, {x:653,y:718},{x:652,y:47},\r\n  {x:652,y:47},{x:931,y:47}, {x:931,y:47},{x:937,y:951},\r\n  {x:937,y:951},{x:359,y:952}, {x:359,y:952},{x:359,y:835},\r\n  {x:359,y:835},{x:788,y:837}, {x:788,y:837},{x:937,y:951},\r\n  {x:937,y:951},{x:79,y:955}, {x:79,y:955},{x:359,y:728},\r\n  {x:359,y:728},{x:359,y:954}, {x:359,y:954},{x:359,y:954},\r\n  {x:359,y:954},{x:653,y:953}, {x:653,y:953},{x:654,y:719},\r\n  {x:654,y:719},{x:654,y:720}\r\n];\r\nTPL['H'] = [\r\n  {x:32,y:35},{x:964,y:35}, {x:964,y:35},{x:963,y:180},\r\n  {x:963,y:180},{x:842,y:181}, {x:842,y:181},{x:502,y:366},\r\n  {x:502,y:366},{x:501,y:637}, {x:501,y:637},{x:667,y:637},\r\n  {x:667,y:637},{x:665,y:94}, {x:665,y:94},{x:167,y:364},\r\n  {x:167,y:364},{x:503,y:365}, {x:503,y:365},{x:501,y:639},\r\n  {x:501,y:639},{x:165,y:818}, {x:165,y:818},{x:166,y:364},\r\n  {x:166,y:364},{x:30,y:364}, {x:30,y:364},{x:34,y:966},\r\n  {x:34,y:966},{x:964,y:966}, {x:964,y:966},{x:964,y:180},\r\n  {x:964,y:180},{x:843,y:181}, {x:843,y:181},{x:842,y:637},\r\n  {x:842,y:637},{x:331,y:911}, {x:331,y:911},{x:334,y:365},\r\n  {x:334,y:365},{x:666,y:365}, {x:666,y:365},{x:666,y:636},\r\n  {x:666,y:636},{x:964,y:637}, {x:964,y:637},{x:964,y:35},\r\n  {x:964,y:35},{x:30,y:35}, {x:30,y:35},{x:30,y:364},\r\n  {x:30,y:364},{x:33,y:819}, {x:33,y:819},{x:165,y:819}\r\n];\r\nTPL['I'] = [\r\n  {x:39,y:27},{x:329,y:228}, {x:329,y:228},{x:626,y:28},\r\n  {x:626,y:28},{x:41,y:27}, {x:41,y:27},{x:42,y:235},\r\n  {x:42,y:235},{x:326,y:435}, {x:326,y:435},{x:329,y:228},\r\n  {x:329,y:228},{x:624,y:441}, {x:624,y:441},{x:326,y:434},\r\n  {x:326,y:434},{x:327,y:914}, {x:327,y:914},{x:521,y:839},\r\n  {x:521,y:839},{x:521,y:761}, {x:521,y:761},{x:624,y:761},\r\n  {x:624,y:761},{x:625,y:442}, {x:625,y:442},{x:676,y:479},\r\n  {x:676,y:479},{x:677,y:919}, {x:677,y:919},{x:328,y:916},\r\n  {x:328,y:916},{x:42,y:721}, {x:42,y:721},{x:42,y:234},\r\n  {x:42,y:234},{x:41,y:977}, {x:41,y:977},{x:677,y:971},\r\n  {x:677,y:971},{x:676,y:481}, {x:676,y:481},{x:625,y:442},\r\n  {x:625,y:442},{x:710,y:442}, {x:710,y:442},{x:713,y:763},\r\n  {x:713,y:763},{x:872,y:764}, {x:872,y:764},{x:867,y:95},\r\n  {x:867,y:95},{x:798,y:44}, {x:798,y:44},{x:603,y:43},\r\n  {x:603,y:43},{x:627,y:28}, {x:627,y:28},{x:962,y:28},\r\n  {x:962,y:28},{x:962,y:970}, {x:962,y:970},{x:872,y:916},\r\n  {x:872,y:916},{x:678,y:919}, {x:678,y:919},{x:714,y:763},\r\n  {x:714,y:763},{x:873,y:763}, {x:873,y:763},{x:874,y:917},\r\n  {x:874,y:917},{x:962,y:970}, {x:962,y:970},{x:677,y:971},\r\n  {x:677,y:971},{x:678,y:970}\r\n];\r\nTPL['J'] = [\r\n  {x:93,y:164},{x:117,y:190}, {x:117,y:190},{x:887,y:188},\r\n  {x:887,y:188},{x:886,y:807}, {x:886,y:807},{x:460,y:634},\r\n  {x:460,y:634},{x:282,y:777}, {x:282,y:777},{x:202,y:738},\r\n  {x:202,y:738},{x:377,y:600}, {x:377,y:600},{x:460,y:634},\r\n  {x:460,y:634},{x:545,y:567}, {x:545,y:567},{x:804,y:672},\r\n  {x:804,y:672},{x:804,y:807}, {x:804,y:807},{x:115,y:809},\r\n  {x:115,y:809},{x:203,y:738}, {x:203,y:738},{x:202,y:223},\r\n  {x:202,y:223},{x:546,y:363}, {x:546,y:363},{x:547,y:566},\r\n  {x:547,y:566},{x:461,y:634}, {x:461,y:634},{x:460,y:432},\r\n  {x:460,y:432},{x:725,y:223}, {x:725,y:223},{x:803,y:257},\r\n  {x:803,y:257},{x:630,y:397}, {x:630,y:397},{x:546,y:363},\r\n  {x:546,y:363},{x:460,y:432}, {x:460,y:432},{x:116,y:292},\r\n  {x:116,y:292},{x:117,y:809}, {x:117,y:809},{x:804,y:807},\r\n  {x:804,y:807},{x:804,y:256}, {x:804,y:256},{x:887,y:188},\r\n  {x:887,y:188},{x:912,y:165}, {x:912,y:165},{x:910,y:833},\r\n  {x:910,y:833},{x:92,y:836}, {x:92,y:836},{x:94,y:166},\r\n  {x:94,y:166},{x:912,y:163}, {x:912,y:163},{x:910,y:715},\r\n  {x:910,y:715},{x:804,y:673}, {x:804,y:673},{x:804,y:773},\r\n  {x:804,y:773},{x:886,y:808}, {x:886,y:808},{x:804,y:806},\r\n  {x:804,y:806},{x:804,y:833}, {x:804,y:833},{x:92,y:836},\r\n  {x:92,y:836},{x:94,y:166}, {x:94,y:166},{x:117,y:190},\r\n  {x:117,y:190},{x:117,y:809}, {x:117,y:809},{x:92,y:830}\r\n];\r\nTPL['K'] = [\r\n  {x:317,y:164},{x:573,y:337}, {x:573,y:337},{x:665,y:293},\r\n  {x:665,y:293},{x:602,y:40}, {x:602,y:40},{x:126,y:250},\r\n  {x:126,y:250},{x:189,y:507}, {x:189,y:507},{x:318,y:166},\r\n  {x:318,y:166},{x:392,y:416}, {x:392,y:416},{x:188,y:507},\r\n  {x:188,y:507},{x:444,y:676}, {x:444,y:676},{x:825,y:505},\r\n  {x:825,y:505},{x:571,y:336}, {x:571,y:336},{x:189,y:508},\r\n  {x:189,y:508},{x:298,y:942}, {x:298,y:942},{x:411,y:971},\r\n  {x:411,y:971},{x:349,y:718}, {x:349,y:718},{x:445,y:677},\r\n  {x:445,y:677},{x:698,y:841}, {x:698,y:841},{x:410,y:971},\r\n  {x:410,y:971},{x:887,y:755}, {x:887,y:755},{x:824,y:506},\r\n  {x:824,y:506},{x:700,y:841}, {x:700,y:841},{x:620,y:597},\r\n  {x:620,y:597},{x:824,y:504}, {x:824,y:504},{x:717,y:77},\r\n  {x:717,y:77},{x:602,y:40}\r\n];\r\nTPL['L'] = [\r\n  {x:692,y:443},{x:793,y:41}, {x:793,y:41},{x:443,y:192},\r\n  {x:443,y:192},{x:561,y:500}, {x:561,y:500},{x:911,y:348},\r\n  {x:911,y:348},{x:794,y:808}, {x:794,y:808},{x:443,y:959},\r\n  {x:443,y:959},{x:410,y:873}, {x:410,y:873},{x:210,y:960},\r\n  {x:210,y:960},{x:310,y:558}, {x:310,y:558},{x:90,y:654},\r\n  {x:90,y:654},{x:208,y:193}, {x:208,y:193},{x:559,y:41},\r\n  {x:559,y:41},{x:594,y:127}, {x:594,y:127},{x:443,y:192},\r\n  {x:443,y:192},{x:443,y:500}, {x:443,y:500},{x:309,y:559},\r\n  {x:309,y:559},{x:443,y:500}, {x:443,y:500},{x:561,y:809},\r\n  {x:561,y:809},{x:410,y:873}, {x:410,y:873},{x:443,y:960},\r\n  {x:443,y:960},{x:472,y:847}, {x:472,y:847},{x:561,y:809},\r\n  {x:561,y:809},{x:561,y:501}, {x:561,y:501},{x:443,y:192},\r\n  {x:443,y:192},{x:531,y:154}, {x:531,y:154},{x:559,y:42},\r\n  {x:559,y:42},{x:559,y:42}\r\n];\r\n\r\nTPL['M'] = [\r\n  {x:432,y:189},{x:432,y:506}, {x:432,y:506},{x:141,y:593},\r\n  {x:141,y:593},{x:256,y:111}, {x:256,y:111},{x:551,y:25},\r\n  {x:551,y:25},{x:672,y:350}, {x:672,y:350},{x:376,y:436},\r\n  {x:376,y:436},{x:264,y:121}, {x:264,y:121},{x:149,y:604},\r\n  {x:149,y:604},{x:260,y:923}, {x:260,y:923},{x:397,y:880},\r\n  {x:397,y:880},{x:320,y:676}, {x:320,y:676},{x:610,y:590},\r\n  {x:610,y:590},{x:729,y:102}, {x:729,y:102},{x:433,y:188},\r\n  {x:433,y:188},{x:551,y:506}, {x:551,y:506},{x:841,y:422},\r\n  {x:841,y:422},{x:729,y:102}, {x:729,y:102},{x:610,y:590},\r\n  {x:610,y:590},{x:552,y:608}, {x:552,y:608},{x:552,y:505},\r\n  {x:552,y:505},{x:552,y:836}, {x:552,y:836},{x:398,y:882},\r\n  {x:398,y:882},{x:439,y:994}, {x:439,y:994},{x:731,y:912},\r\n  {x:731,y:912},{x:840,y:422}, {x:840,y:422},{x:731,y:914},\r\n  {x:731,y:914},{x:610,y:590}, {x:610,y:590},{x:479,y:630},\r\n  {x:479,y:630},{x:552,y:836}, {x:552,y:836},{x:433,y:505},\r\n  {x:433,y:505},{x:433,y:420}, {x:433,y:420},{x:378,y:436},\r\n  {x:378,y:436},{x:261,y:922}\r\n];\r\nTPL['N'] = [\r\n  {x:191,y:836},{x:569,y:671}, {x:569,y:671},{x:440,y:336},\r\n  {x:440,y:336},{x:65,y:87}, {x:65,y:87},{x:64,y:752},\r\n  {x:64,y:752},{x:316,y:919}, {x:316,y:919},{x:319,y:84},\r\n  {x:319,y:84},{x:694,y:84}, {x:694,y:84},{x:692,y:755},\r\n  {x:692,y:755},{x:940,y:920}, {x:940,y:920},{x:942,y:254},\r\n  {x:942,y:254},{x:694,y:84}, {x:694,y:84},{x:818,y:168},\r\n  {x:818,y:168},{x:441,y:335}, {x:441,y:335},{x:569,y:671},\r\n  {x:569,y:671},{x:693,y:756}, {x:693,y:756},{x:317,y:920}\r\n];\r\nTPL['O'] = [\r\n  {x:831,y:134},{x:505,y:11}, {x:505,y:11},{x:339,y:377},\r\n  {x:339,y:377},{x:175,y:255}, {x:175,y:255},{x:505,y:379},\r\n  {x:505,y:379},{x:667,y:499}, {x:667,y:499},{x:831,y:132},\r\n  {x:831,y:132},{x:995,y:378}, {x:995,y:378},{x:830,y:746},\r\n  {x:830,y:746},{x:666,y:623}, {x:666,y:623},{x:502,y:992},\r\n  {x:502,y:992},{x:172,y:869}, {x:172,y:869},{x:339,y:502},\r\n  {x:339,y:502},{x:503,y:623}, {x:503,y:623},{x:831,y:746},\r\n  {x:831,y:746},{x:666,y:623}, {x:666,y:623},{x:340,y:502},\r\n  {x:340,y:502},{x:174,y:869}, {x:174,y:869},{x:8,y:623},\r\n  {x:8,y:623},{x:342,y:749}, {x:342,y:749},{x:480,y:431},\r\n  {x:480,y:431},{x:665,y:499}, {x:665,y:499},{x:339,y:379},\r\n  {x:339,y:379},{x:573,y:464}, {x:573,y:464},{x:669,y:256},\r\n  {x:669,y:256},{x:995,y:378}, {x:995,y:378},{x:672,y:256},\r\n  {x:672,y:256},{x:504,y:11}, {x:504,y:11},{x:340,y:378},\r\n  {x:340,y:378},{x:174,y:254}, {x:174,y:254},{x:7,y:623},\r\n  {x:7,y:623},{x:344,y:751}, {x:344,y:751},{x:501,y:993},\r\n  {x:501,y:993},{x:402,y:841}, {x:402,y:841},{x:670,y:254},\r\n  {x:670,y:254},{x:670,y:254}\r\n];\r\nTPL['P'] = [\r\n  {x:319,y:170},{x:252,y:747}, {x:252,y:747},{x:505,y:914},\r\n  {x:505,y:914},{x:570,y:337}, {x:570,y:337},{x:319,y:170},\r\n  {x:319,y:170},{x:127,y:253}, {x:127,y:253},{x:314,y:996},\r\n  {x:314,y:996},{x:695,y:832}, {x:695,y:832},{x:442,y:668},\r\n  {x:442,y:668},{x:320,y:170}, {x:320,y:170},{x:509,y:88},\r\n  {x:509,y:88},{x:761,y:255}, {x:761,y:255},{x:695,y:832},\r\n  {x:695,y:832},{x:442,y:668}, {x:442,y:668},{x:509,y:88},\r\n  {x:509,y:88},{x:696,y:7}, {x:696,y:7},{x:763,y:255},\r\n  {x:763,y:255},{x:571,y:337}, {x:571,y:337},{x:696,y:832},\r\n  {x:696,y:832},{x:893,y:747}, {x:893,y:747},{x:764,y:254},\r\n  {x:764,y:254},{x:570,y:338}, {x:570,y:338},{x:487,y:282},\r\n  {x:487,y:282},{x:442,y:668}, {x:442,y:668},{x:252,y:748}\r\n];\r\nTPL['Q'] = [\r\n  {x:203,y:53},{x:101,y:662}, {x:101,y:662},{x:45,y:612},\r\n  {x:45,y:612},{x:51,y:53}, {x:51,y:53},{x:473,y:53},\r\n  {x:473,y:53},{x:611,y:167}, {x:611,y:167},{x:956,y:167},\r\n  {x:956,y:167},{x:954,y:863}, {x:954,y:863},{x:588,y:865},\r\n  {x:588,y:865},{x:675,y:339}, {x:675,y:339},{x:413,y:118},\r\n  {x:413,y:118},{x:265,y:120}, {x:265,y:120},{x:173,y:638},\r\n  {x:173,y:638},{x:435,y:863}, {x:435,y:863},{x:458,y:752},\r\n  {x:458,y:752},{x:761,y:754}, {x:761,y:754},{x:849,y:232},\r\n  {x:849,y:232},{x:391,y:230}, {x:391,y:230},{x:326,y:641},\r\n  {x:326,y:641},{x:589,y:865}, {x:589,y:865},{x:435,y:863},\r\n  {x:435,y:863},{x:418,y:940}, {x:418,y:940},{x:102,y:661},\r\n  {x:102,y:661},{x:56,y:941}, {x:56,y:941},{x:798,y:938},\r\n  {x:798,y:938},{x:942,y:54}, {x:942,y:54},{x:475,y:54}\r\n];\r\nTPL['R'] = [\r\n  {x:623,y:577},{x:745,y:271}, {x:745,y:271},{x:924,y:197},\r\n  {x:924,y:197},{x:684,y:47}, {x:684,y:47},{x:320,y:198},\r\n  {x:320,y:198},{x:198,y:122}, {x:198,y:122},{x:380,y:46},\r\n  {x:380,y:46},{x:198,y:499}, {x:198,y:499},{x:77,y:424},\r\n  {x:77,y:424},{x:200,y:122}, {x:200,y:122},{x:379,y:46},\r\n  {x:379,y:46},{x:684,y:47}, {x:684,y:47},{x:562,y:348},\r\n  {x:562,y:348},{x:198,y:500}, {x:198,y:500},{x:75,y:801},\r\n  {x:75,y:801},{x:257,y:725}, {x:257,y:725},{x:379,y:425},\r\n  {x:379,y:425},{x:505,y:500}, {x:505,y:500},{x:316,y:954},\r\n  {x:316,y:954},{x:76,y:803}, {x:76,y:803},{x:257,y:725},\r\n  {x:257,y:725},{x:318,y:575}, {x:318,y:575},{x:441,y:653},\r\n  {x:441,y:653},{x:804,y:497}, {x:804,y:497},{x:925,y:575},\r\n  {x:925,y:575},{x:803,y:877}, {x:803,y:877},{x:620,y:954},\r\n  {x:620,y:954},{x:315,y:955}, {x:315,y:955},{x:683,y:804},\r\n  {x:683,y:804},{x:803,y:878}, {x:803,y:878},{x:622,y:953},\r\n  {x:622,y:953},{x:924,y:198}, {x:924,y:198},{x:805,y:498},\r\n  {x:805,y:498},{x:562,y:348}\r\n];\r\nTPL['S'] = [\r\n  {x:69,y:169},{x:440,y:336}, {x:440,y:336},{x:687,y:170},\r\n  {x:687,y:170},{x:689,y:586}, {x:689,y:586},{x:934,y:419},\r\n  {x:934,y:419},{x:935,y:835}, {x:935,y:835},{x:565,y:669},\r\n  {x:565,y:669},{x:316,y:835}, {x:316,y:835},{x:316,y:419},\r\n  {x:316,y:419},{x:68,y:586}, {x:68,y:586},{x:69,y:170},\r\n  {x:69,y:170},{x:315,y:5}, {x:315,y:5},{x:687,y:170},\r\n  {x:687,y:170},{x:687,y:308}, {x:687,y:308},{x:934,y:420},\r\n  {x:934,y:420},{x:689,y:586}, {x:689,y:586},{x:317,y:419},\r\n  {x:317,y:419},{x:69,y:585}, {x:69,y:585},{x:316,y:696},\r\n  {x:316,y:696},{x:316,y:835}, {x:316,y:835},{x:688,y:995},\r\n  {x:688,y:995},{x:934,y:834}\r\n];\r\nTPL['T'] = [\r\n  {x:687,y:1},{x:118,y:250}, {x:118,y:250},{x:313,y:999},\r\n  {x:313,y:999},{x:880,y:746}, {x:880,y:746},{x:687,y:2},\r\n  {x:687,y:2},{x:562,y:331}, {x:562,y:331},{x:247,y:332},\r\n  {x:247,y:332},{x:310,y:167}, {x:310,y:167},{x:625,y:166},\r\n  {x:625,y:166},{x:755,y:665}, {x:755,y:665},{x:440,y:669},\r\n  {x:440,y:669},{x:309,y:168}, {x:309,y:168},{x:247,y:332},\r\n  {x:247,y:332},{x:377,y:836}, {x:377,y:836},{x:692,y:830},\r\n  {x:692,y:830},{x:562,y:331}, {x:562,y:331},{x:625,y:167},\r\n  {x:625,y:167},{x:247,y:332}, {x:247,y:332},{x:183,y:499},\r\n  {x:183,y:499},{x:181,y:81}, {x:181,y:81},{x:815,y:79},\r\n  {x:815,y:79},{x:820,y:916}, {x:820,y:916},{x:187,y:919},\r\n  {x:187,y:919},{x:182,y:498}, {x:182,y:498},{x:187,y:920},\r\n  {x:187,y:920},{x:502,y:81}, {x:502,y:81},{x:814,y:79},\r\n  {x:814,y:79},{x:495,y:918}, {x:495,y:918},{x:313,y:998},\r\n  {x:313,y:998},{x:441,y:669}, {x:441,y:669},{x:756,y:664},\r\n  {x:756,y:664},{x:378,y:836}, {x:378,y:836},{x:694,y:831},\r\n  {x:694,y:831},{x:818,y:501}\r\n];\r\nTPL['U'] = [\r\n  {x:670,y:129},{x:915,y:131}, {x:915,y:131},{x:904,y:888},\r\n  {x:904,y:888},{x:78,y:881}, {x:78,y:881},{x:91,y:123},\r\n  {x:91,y:123},{x:668,y:129}, {x:668,y:129},{x:2,y:375},\r\n  {x:2,y:375},{x:327,y:882}, {x:327,y:882},{x:990,y:638},\r\n  {x:990,y:638},{x:667,y:130}, {x:667,y:130},{x:171,y:312},\r\n  {x:171,y:312},{x:86,y:501}, {x:86,y:501},{x:663,y:445},\r\n  {x:663,y:445},{x:749,y:258}, {x:749,y:258},{x:338,y:251},\r\n  {x:338,y:251},{x:164,y:627}, {x:164,y:627},{x:745,y:572},\r\n  {x:745,y:572},{x:663,y:446}, {x:663,y:446},{x:250,y:440},\r\n  {x:250,y:440},{x:829,y:384}, {x:829,y:384},{x:659,y:760},\r\n  {x:659,y:760},{x:247,y:757}, {x:247,y:757},{x:826,y:699},\r\n  {x:826,y:699},{x:909,y:514}, {x:909,y:514},{x:332,y:568},\r\n  {x:332,y:568},{x:171,y:314}, {x:171,y:314},{x:749,y:258},\r\n  {x:749,y:258},{x:663,y:446}, {x:663,y:446},{x:745,y:572},\r\n  {x:745,y:572},{x:332,y:569}, {x:332,y:569},{x:247,y:757},\r\n  {x:247,y:757},{x:825,y:699}, {x:825,y:699},{x:744,y:570}\r\n];\r\nTPL['V'] = [\r\n  {x:203,y:496},{x:53,y:316}, {x:53,y:316},{x:56,y:51},\r\n  {x:56,y:51},{x:950,y:54}, {x:950,y:54},{x:953,y:496},\r\n  {x:953,y:496},{x:882,y:497}, {x:882,y:497},{x:653,y:228},\r\n  {x:653,y:228},{x:277,y:228}, {x:277,y:228},{x:278,y:587},\r\n  {x:278,y:587},{x:427,y:759}, {x:427,y:759},{x:808,y:762},\r\n  {x:808,y:762},{x:804,y:139}, {x:804,y:139},{x:203,y:139},\r\n  {x:203,y:139},{x:204,y:496}, {x:204,y:496},{x:278,y:583},\r\n  {x:278,y:583},{x:281,y:853}, {x:281,y:853},{x:878,y:853},\r\n  {x:878,y:853},{x:881,y:496}, {x:881,y:496},{x:654,y:497},\r\n  {x:654,y:497},{x:655,y:945}, {x:655,y:945},{x:951,y:945},\r\n  {x:951,y:945},{x:953,y:496}, {x:953,y:496},{x:804,y:139},\r\n  {x:804,y:139},{x:202,y:139}, {x:202,y:139},{x:53,y:316},\r\n  {x:53,y:316},{x:55,y:943}, {x:55,y:943},{x:655,y:945},\r\n  {x:655,y:945},{x:654,y:853}, {x:654,y:853},{x:205,y:854},\r\n  {x:205,y:854},{x:203,y:496}, {x:203,y:496},{x:56,y:943},\r\n  {x:56,y:943},{x:205,y:854}, {x:205,y:854},{x:205,y:943},\r\n  {x:205,y:943},{x:951,y:945}, {x:951,y:945},{x:807,y:762},\r\n  {x:807,y:762},{x:806,y:497}, {x:806,y:497},{x:203,y:497},\r\n  {x:203,y:497},{x:653,y:228}, {x:653,y:228},{x:654,y:497},\r\n  {x:654,y:497},{x:429,y:760}\r\n];\r\nTPL['W'] = [\r\n  {x:453,y:109},{x:452,y:752}, {x:452,y:752},{x:218,y:827},\r\n  {x:218,y:827},{x:220,y:254}, {x:220,y:254},{x:564,y:200},\r\n  {x:564,y:200},{x:563,y:891}, {x:563,y:891},{x:218,y:827},\r\n  {x:218,y:827},{x:453,y:752}, {x:453,y:752},{x:564,y:774},\r\n  {x:564,y:774},{x:792,y:702}, {x:792,y:702},{x:463,y:647},\r\n  {x:463,y:647},{x:462,y:108}, {x:462,y:108},{x:780,y:56},\r\n  {x:780,y:56},{x:783,y:690}, {x:783,y:690},{x:473,y:637},\r\n  {x:473,y:637},{x:472,y:223}, {x:472,y:223},{x:891,y:156},\r\n  {x:891,y:156},{x:896,y:832}, {x:896,y:832},{x:575,y:777},\r\n  {x:575,y:777},{x:571,y:198}, {x:571,y:198},{x:792,y:163},\r\n  {x:792,y:163},{x:793,y:703}, {x:793,y:703},{x:555,y:663},\r\n  {x:555,y:663},{x:554,y:763}, {x:554,y:763},{x:227,y:706},\r\n  {x:227,y:706},{x:232,y:262}, {x:232,y:262},{x:442,y:228},\r\n  {x:442,y:228},{x:441,y:743}, {x:441,y:743},{x:115,y:687},\r\n  {x:115,y:687},{x:118,y:159}, {x:118,y:159},{x:454,y:110}\r\n];\r\nTPL['X'] = [\r\n  {x:502,y:415},{x:754,y:79}, {x:754,y:79},{x:753,y:417},\r\n  {x:753,y:417},{x:375,y:415}, {x:375,y:415},{x:377,y:76},\r\n  {x:377,y:76},{x:120,y:416}, {x:120,y:416},{x:119,y:753},\r\n  {x:119,y:753},{x:505,y:246}, {x:505,y:246},{x:878,y:250},\r\n  {x:878,y:250},{x:880,y:590}, {x:880,y:590},{x:624,y:929},\r\n  {x:624,y:929},{x:626,y:587}, {x:626,y:587},{x:248,y:583},\r\n  {x:248,y:583},{x:246,y:923}, {x:246,y:923},{x:499,y:586},\r\n  {x:499,y:586},{x:627,y:587}, {x:627,y:587},{x:877,y:250},\r\n  {x:877,y:250},{x:506,y:246}, {x:506,y:246},{x:119,y:754},\r\n  {x:119,y:754},{x:498,y:757}, {x:498,y:757},{x:626,y:588}\r\n];\r\nTPL['Y'] = [\r\n  {x:319,y:165},{x:825,y:504}, {x:825,y:504},{x:698,y:841},\r\n  {x:698,y:841},{x:189,y:507}, {x:189,y:507},{x:666,y:294},\r\n  {x:666,y:294},{x:602,y:39}, {x:602,y:39},{x:318,y:165},\r\n  {x:318,y:165},{x:189,y:507}, {x:189,y:507},{x:313,y:1000},\r\n  {x:313,y:1000},{x:341,y:1000}, {x:341,y:1000},{x:888,y:755},\r\n  {x:888,y:755},{x:698,y:1}, {x:698,y:1},{x:687,y:1},\r\n  {x:687,y:1},{x:126,y:251}, {x:126,y:251},{x:313,y:1000},\r\n  {x:313,y:1000},{x:344,y:998}, {x:344,y:998},{x:411,y:968},\r\n  {x:411,y:968},{x:348,y:717}, {x:348,y:717},{x:825,y:504}\r\n];\r\nTPL['Z'] = [\r\n  {x:112,y:752},{x:178,y:500}, {x:178,y:500},{x:435,y:334},\r\n  {x:435,y:334},{x:563,y:670}, {x:563,y:670},{x:822,y:507},\r\n  {x:822,y:507},{x:885,y:257}, {x:885,y:257},{x:344,y:12},\r\n  {x:344,y:12},{x:285,y:12}, {x:285,y:12},{x:55,y:161},\r\n  {x:55,y:161},{x:630,y:420}, {x:630,y:420},{x:887,y:257},\r\n  {x:887,y:257},{x:565,y:673}, {x:565,y:673},{x:370,y:587},\r\n  {x:370,y:587},{x:113,y:751}, {x:113,y:751},{x:645,y:987},\r\n  {x:645,y:987},{x:720,y:987}, {x:720,y:987},{x:945,y:841},\r\n  {x:945,y:841},{x:565,y:673}, {x:565,y:673},{x:630,y:419},\r\n  {x:630,y:419},{x:437,y:333}, {x:437,y:333},{x:370,y:587},\r\n  {x:370,y:587},{x:178,y:500}, {x:178,y:500},{x:56,y:161},\r\n  {x:56,y:161},{x:113,y:750}, {x:113,y:750},{x:646,y:988},\r\n  {x:646,y:988},{x:719,y:987}, {x:719,y:987},{x:945,y:841},\r\n  {x:945,y:841},{x:886,y:256}, {x:886,y:256},{x:821,y:507},\r\n  {x:821,y:507},{x:945,y:841}, {x:945,y:841},{x:945,y:841}\r\n];\r\n\r\n        \"BCDEFGHIJKLMNOPQRSTUVWXYZ\".split(\"\").forEach(function(k){\r\n            if(!TPL[k]) TPL[k] = TPL['A'];\r\n        });\r\n\r\n        function showNotice(msg, html){\r\n            if(!notice) return;\r\n            notice.style.display = 'block';\r\n            notice.innerHTML = html ? html : String(msg || 'Access denied.');\r\n        }\r\n\r\n        function stopFeature(msg, html){\r\n            stopped = true;\r\n            if (raf) cancelAnimationFrame(raf);\r\n            showNotice(msg, html);\r\n\r\n            mainContainer.querySelectorAll('.amc-tab-btn').forEach(function(btn){\r\n                btn.disabled = true;\r\n                btn.style.pointerEvents = 'none';\r\n                btn.style.opacity = '0.55';\r\n            });\r\n\r\n            canvas.style.pointerEvents = 'none';\r\n            canvas.style.opacity = '0.55';\r\n            note.textContent = 'Access blocked';\r\n        }\r\n\r\n        function requestUnlock(done){\r\n            if (unlockPending || unlocked || stopped) return;\r\n            unlockPending = true;\r\n\r\n            fetch(AJAX_URL, {\r\n                method: 'POST',\r\n                credentials: 'same-origin',\r\n                headers: {'Content-Type': 'application\/x-www-form-urlencoded; charset=UTF-8'},\r\n                body: new URLSearchParams({\r\n                    action: 'arttao_mandala_crawler_unlock',\r\n                    nonce: AJAX_NONCE\r\n                }).toString()\r\n            })\r\n            .then(function(r){ return r.json(); })\r\n            .then(function(res){\r\n                unlockPending = false;\r\n\r\n                if (res && res.success) {\r\n                    unlocked = true;\r\n                    if (notice) {\r\n                        notice.style.display = 'none';\r\n                        notice.innerHTML = '';\r\n                    }\r\n                    if (typeof done === 'function') done();\r\n                    return;\r\n                }\r\n\r\n                stopFeature(\r\n                    res && res.data && res.data.message ? res.data.message : 'Access denied.',\r\n                    res && res.data && res.data.upgrade_html ? res.data.upgrade_html : ''\r\n                );\r\n            })\r\n            .catch(function(){\r\n                unlockPending = false;\r\n                stopFeature('Request failed.');\r\n            });\r\n        }\r\n\r\n        function ensureUnlocked(run){\r\n            if (stopped) return;\r\n            if (unlocked) {\r\n                run();\r\n                return;\r\n            }\r\n            requestUnlock(run);\r\n        }\r\n\r\n        function fitCanvas(){\r\n            var dpr = window.devicePixelRatio || 1;\r\n            var css = canvas.getBoundingClientRect();\r\n            if (css.width < 4 || css.height < 4) return false;\r\n\r\n            canvas.width = Math.round(css.width * dpr);\r\n            canvas.height = Math.round(css.height * dpr);\r\n\r\n            ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\r\n            ctx.scale(css.width \/ LOGICAL, css.height \/ LOGICAL);\r\n            return true;\r\n        }\r\n\r\n        function clearCanvas(){\r\n            if (!fitCanvas()) return false;\r\n            ctx.clearRect(0, 0, LOGICAL, LOGICAL);\r\n            ctx.fillStyle = BG_COLOR;\r\n            ctx.fillRect(0, 0, LOGICAL, LOGICAL);\r\n            return true;\r\n        }\r\n\r\n        function drawGlowPoint(x, y){\r\n            ctx.save();\r\n\r\n            ctx.beginPath();\r\n            ctx.fillStyle = \"rgba(255,51,102,0.18)\";\r\n            ctx.arc(x, y, 12, 0, Math.PI * 2);\r\n            ctx.fill();\r\n\r\n            ctx.beginPath();\r\n            ctx.shadowColor = RUNNER_COLOR;\r\n            ctx.shadowBlur = 18;\r\n            ctx.fillStyle = RUNNER_COLOR;\r\n            ctx.arc(x, y, 4.2, 0, Math.PI * 2);\r\n            ctx.fill();\r\n\r\n            ctx.beginPath();\r\n            ctx.fillStyle = \"#FFD6E2\";\r\n            ctx.arc(x, y, 1.5, 0, Math.PI * 2);\r\n            ctx.fill();\r\n\r\n            ctx.restore();\r\n        }\r\n\r\n        function strokeLine(s, e, t){\r\n            var x = s.x + (e.x - s.x) * t;\r\n            var y = s.y + (e.y - s.y) * t;\r\n\r\n            ctx.save();\r\n            ctx.beginPath();\r\n            ctx.strokeStyle = LINE_COLOR;\r\n            ctx.lineWidth = LINEW;\r\n            ctx.shadowColor = \"rgba(198,247,247,0.45)\";\r\n            ctx.shadowBlur = 8;\r\n            ctx.lineCap = \"round\";\r\n            ctx.lineJoin = \"round\";\r\n            ctx.moveTo(s.x, s.y);\r\n            ctx.lineTo(x, y);\r\n            ctx.stroke();\r\n            ctx.restore();\r\n\r\n            drawGlowPoint(x, y);\r\n        }\r\n\r\n        function drawFinishedLines(points){\r\n            ctx.save();\r\n            ctx.strokeStyle = LINE_COLOR;\r\n            ctx.lineWidth = LINEW;\r\n            ctx.shadowColor = \"rgba(198,247,247,0.38)\";\r\n            ctx.shadowBlur = 7;\r\n            ctx.lineCap = \"round\";\r\n            ctx.lineJoin = \"round\";\r\n\r\n            for (var i = 0; i < currentIndex; i += 2) {\r\n                if(!points[i+1]) break;\r\n                ctx.beginPath();\r\n                ctx.moveTo(points[i].x, points[i].y);\r\n                ctx.lineTo(points[i+1].x, points[i+1].y);\r\n                ctx.stroke();\r\n            }\r\n\r\n            ctx.restore();\r\n        }\r\n\r\n        function draw(){\r\n            if (!clearCanvas()) {\r\n                raf = requestAnimationFrame(draw);\r\n                return;\r\n            }\r\n\r\n            var points = TPL[activeLetter] || [];\r\n            drawFinishedLines(points);\r\n\r\n            if (currentIndex < points.length - 1) {\r\n                var s = points[currentIndex];\r\n                var e = points[currentIndex + 1];\r\n\r\n                strokeLine(s, e, progress);\r\n\r\n                progress += SPEED;\r\n                if (progress >= 1) {\r\n                    progress = 0;\r\n                    currentIndex += 2;\r\n                }\r\n\r\n                note.textContent = \"Simulating: \" + activeLetter + \" | repeat \" + repeatIndex + \"\/\" + REPEAT_TOTAL;\r\n                raf = requestAnimationFrame(draw);\r\n                return;\r\n            }\r\n\r\n            if (repeatIndex < REPEAT_TOTAL) {\r\n                raf = 0;\r\n                var nextRepeat = repeatIndex + 1;\r\n                note.textContent = \"Pause \" + Math.round(PAUSE_MS \/ 1000) + \" seconds: \" + activeLetter + \" | next repeat \" + nextRepeat + \"\/\" + REPEAT_TOTAL;\r\n\r\n                clearPauseTimer();\r\n                pauseTimer = setTimeout(function(){\r\n                    if (stopped) return;\r\n                    repeatIndex = nextRepeat;\r\n                    currentIndex = 0;\r\n                    progress = 0;\r\n                    note.textContent = \"Restart: \" + activeLetter + \" | repeat \" + repeatIndex + \"\/\" + REPEAT_TOTAL;\r\n                    raf = requestAnimationFrame(draw);\r\n                }, PAUSE_MS);\r\n                return;\r\n            }\r\n\r\n            note.textContent = \"Simulation Complete: \" + activeLetter + \" | repeated \" + REPEAT_TOTAL + \" times | music playing\";\r\n            raf = 0;\r\n            clearPauseTimer();\r\n            playCompleteMusic();\r\n        }\r\n\r\n        function startAnimation(){\r\n            if(stopped) return;\r\n            if(raf) cancelAnimationFrame(raf);\r\n            clearPauseTimer();\r\n            stopMusic();\r\n\r\n            currentIndex = 0;\r\n            progress = 0;\r\n            repeatIndex = 1;\r\n\r\n            clearCanvas();\r\n            note.textContent = \"Simulating: \" + activeLetter + \" | repeat 1\/\" + REPEAT_TOTAL;\r\n            raf = requestAnimationFrame(draw);\r\n        }\r\n\r\n        function openPanel(){\r\n            launcher.style.display = 'none';\r\n            mainContainer.classList.add('is-open');\r\n\r\n            setTimeout(function(){\r\n                clearCanvas();\r\n            }, 80);\r\n        }\r\n\r\n        function closePanel(){\r\n            mainContainer.classList.remove('is-open');\r\n            setTimeout(function(){ launcher.style.display = 'block'; }, 600);\r\n            if(raf) cancelAnimationFrame(raf);\r\n            clearPauseTimer();\r\n            stopMusic();\r\n            raf = 0;\r\n            note.textContent = \"Ready\";\r\n        }\r\n\r\n        document.addEventListener('pointerdown', unlockMusicByFirstClick, {passive:true});\r\n        document.addEventListener('keydown', unlockMusicByFirstClick);\r\n\r\n        if (musicBtn) {\r\n            musicBtn.addEventListener('click', function(e){\r\n                e.preventDefault();\r\n                e.stopPropagation();\r\n                unlockMusicByFirstClick();\r\n                playCompleteMusic();\r\n            });\r\n        }\r\n\r\n        launcher.addEventListener('click', function(e){\r\n            e.preventDefault();\r\n            e.stopPropagation();\r\n            unlockMusicByFirstClick();\r\n            openPanel();\r\n        });\r\n\r\n        toggleBtn.addEventListener('click', function(e){\r\n            e.preventDefault();\r\n            e.stopPropagation();\r\n            closePanel();\r\n        });\r\n\r\n        mainContainer.querySelectorAll('.amc-tab-btn').forEach(function(btn){\r\n            btn.addEventListener('click', function(){\r\n                ensureUnlocked(function(){\r\n                    activeLetter = btn.getAttribute('data-letter');\r\n                    curLetterLabel.textContent = activeLetter;\r\n\r\n                    mainContainer.querySelectorAll('.amc-tab-btn').forEach(function(b){\r\n                        b.classList.remove('active');\r\n                    });\r\n\r\n                    btn.classList.add('active');\r\n                    unlockMusicByFirstClick();\r\n                    startAnimation();\r\n                });\r\n            });\r\n        });\r\n\r\n        window.addEventListener('resize', function(){\r\n            if(mainContainer.classList.contains('is-open')) {\r\n                clearCanvas();\r\n            }\r\n        });\r\n\r\n            })();\r\n    <\/script>\r\n    <\/div>            <div class=\"arttao-cpb-shortcode arttao-cpb-color-engine\"><style>#ace_RkLfKj2g-box{max-width:860px;margin:20px auto;font-family:Arial,Helvetica,sans-serif;}#ace_RkLfKj2g-summary{list-style:none;width:100%;background:#CCFFFF;border-radius:28px;font-size:24px;padding:16px;border:1px solid #FFCCFF;text-align:center;cursor:pointer;color:#fff;box-shadow:0 15px 35px rgba(0,0,0,0.15);box-sizing:border-box;display:block;user-select:none;}#ace_RkLfKj2g-summary::-webkit-details-marker{display:none;}#ace_RkLfKj2g-title{display:block;margin:0;font-size:24px;font-weight:400;line-height:1.35;color:#330000;}#ace_RkLfKj2g-panel{margin-top:20px;background:#fff;border-radius:20px;border:1px solid #ddd;overflow:hidden;}#ace_RkLfKj2g-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;background:#CCFFFF;color:#fff;font-size:13px;}#ace_RkLfKj2g-tabs{padding:10px;background:#f5f5f5;border-bottom:1px solid #eee;display:flex;gap:6px;overflow-x:auto;white-space:nowrap;}#ace_RkLfKj2g-tabs button{flex:0 0 36px;height:36px;background:#F0FFFF;border:1px solid #FFCCFF;border-radius:8px;font-size:12px;font-weight:bold;cursor:pointer;display:flex;align-items:center;justify-content:center;}#ace_RkLfKj2g-tabs button.active{background:#2A5CAA!important;color:#fff!important;border-color:#2A5CAA!important;}#ace_RkLfKj2g-body{padding:20px;text-align:center;}#ace_RkLfKj2g-notice{display:none;margin-bottom:12px;padding:12px 14px;border:1px solid #f5deb3;border-radius:14px;background:#fffaf2;color:#7a4f01;text-align:left;line-height:1.6;}#ace_RkLfKj2g-canvasbox{width:100%;aspect-ratio:1\/1;background:#f0f0f0;border:1px solid #eee;margin-bottom:16px;border-radius:10px;overflow:hidden;position:relative;}#ace_RkLfKj2g-cv{width:100%;height:100%;display:block;cursor:crosshair;}#ace_RkLfKj2g-loading{display:none;position:absolute;inset:0;background:rgba(255,255,255,0.75);align-items:center;justify-content:center;font-size:14px;color:#555;}#ace_RkLfKj2g-palette{display:grid;grid-template-columns:repeat(20,1fr);gap:4px;margin-bottom:16px;background:#f9f9f9;padding:10px;border-radius:10px;}#ace_RkLfKj2g-palette button{aspect-ratio:1\/1;min-height:22px;max-width:28px;border-radius:10px;cursor:pointer;border:1px solid rgba(0,0,0,0.15);padding:0;}#ace_RkLfKj2g-palette button.active{outline:2px solid #000;outline-offset:1px;transform:scale(1.08);}#ace_RkLfKj2g-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}#ace_RkLfKj2g-btns button{padding:10px 28px;border-radius:8px;border:1px solid #ddd;background:#fff;cursor:pointer;font-weight:bold;}#ace_RkLfKj2g-status{font-size:12px;color:#666;margin-top:12px;min-height:18px;font-family:monospace;}<\/style><div id=\"ace_RkLfKj2g-box\" class=\"arttao-color-engine notranslate\" translate=\"no\" data-ace-uid=\"ace_RkLfKj2g\" data-ace-ajax=\"https:\/\/arttao.org\/wp-admin\/admin-ajax.php\" data-ace-nonce=\"18871b8864\" data-ace-proxy=\"edd2d59409\" data-ace-map=\"{&quot;A&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_24.png&quot;,&quot;B&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_23.png&quot;,&quot;C&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_25.png&quot;,&quot;D&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_26.png&quot;,&quot;E&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_27.png&quot;,&quot;F&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_28.png&quot;,&quot;G&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_29.png&quot;,&quot;H&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_30.png&quot;,&quot;I&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_31.png&quot;,&quot;J&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_32.png&quot;,&quot;K&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_33.png&quot;,&quot;L&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_35.png&quot;,&quot;M&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_36.png&quot;,&quot;N&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_37.png&quot;,&quot;O&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_38.png&quot;,&quot;P&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_39.png&quot;,&quot;Q&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_40.png&quot;,&quot;R&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_22.png&quot;,&quot;S&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_21.png&quot;,&quot;T&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_47-scaled.png&quot;,&quot;U&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_53-scaled.png&quot;,&quot;V&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_59-scaled.png&quot;,&quot;W&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_98.png&quot;,&quot;X&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_125-scaled.png&quot;,&quot;Y&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_132-scaled.png&quot;,&quot;Z&quot;:&quot;https:\\\/\\\/arttao.org\\\/wp-content\\\/uploads\\\/2026\\\/05\\\/mandala_135.png&quot;}\" data-ace-cs=\"800\"><details id=\"ace_RkLfKj2g-details\"><summary id=\"ace_RkLfKj2g-summary\"><span id=\"ace_RkLfKj2g-title\" class=\"notranslate\" translate=\"no\">Moteur d\u2019IA de th\u00e9rapie par la couleur Mandala<\/span><p style=\"margin:10px 0 0;opacity:.9;font-size:10px;color:#8B5A2B;\">Coloriage d\u2019images A-Z \u00b7 40 couleurs<\/p><\/summary><div id=\"ace_RkLfKj2g-panel\"><div id=\"ace_RkLfKj2g-head\"><span>Structure: <strong id=\"ace_RkLfKj2g-cur\">A<\/strong><\/span><span id=\"ace_RkLfKj2g-close\" style=\"cursor:pointer;\">Fermer &#x2715;<\/span><\/div><div id=\"ace_RkLfKj2g-tabs\" class=\"notranslate\" translate=\"no\"><button type=\"button\" class=\"active notranslate\" data-letter=\"A\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('A'); return false;\">A<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"B\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('B'); return false;\">B<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"C\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('C'); return false;\">C<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"D\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('D'); return false;\">D<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"E\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('E'); return false;\">E<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"F\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('F'); return false;\">F<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"G\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('G'); return false;\">G<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"H\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('H'); return false;\">H<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"I\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('I'); return false;\">I<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"J\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('J'); return false;\">J<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"K\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('K'); return false;\">K<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"L\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('L'); return false;\">L<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"M\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('M'); return false;\">M<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"N\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('N'); return false;\">N<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"O\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('O'); return false;\">O<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"P\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('P'); return false;\">P<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"Q\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('Q'); return false;\">Q<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"R\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('R'); return false;\">R<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"S\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('S'); return false;\">S<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"T\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('T'); return false;\">T<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"U\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('U'); return false;\">U<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"V\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('V'); return false;\">V<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"W\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('W'); return false;\">W<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"X\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('X'); return false;\">X<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"Y\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('Y'); return false;\">Y<\/button><button type=\"button\" class=\"notranslate\" data-letter=\"Z\" translate=\"no\" onclick=\"window['ace_RkLfKj2g_switch']('Z'); return false;\">Z<\/button><\/div><div id=\"ace_RkLfKj2g-body\"><div id=\"ace_RkLfKj2g-notice\"><\/div><div id=\"ace_RkLfKj2g-canvasbox\"><canvas id=\"ace_RkLfKj2g-cv\" width=\"800\" height=\"800\"><\/canvas><div id=\"ace_RkLfKj2g-loading\">Chargement...<\/div><\/div><div id=\"ace_RkLfKj2g-palette\"><button type=\"button\" class=\"active\" style=\"background:#F44336;\" title=\"#F44336\" data-color=\"#F44336\" onclick=\"window['ace_RkLfKj2g_pickColor']('#F44336'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#E91E63;\" title=\"#E91E63\" data-color=\"#E91E63\" onclick=\"window['ace_RkLfKj2g_pickColor']('#E91E63'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FF3366;\" title=\"#FF3366\" data-color=\"#FF3366\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FF3366'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FF5C7A;\" title=\"#FF5C7A\" data-color=\"#FF5C7A\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FF5C7A'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FF6699;\" title=\"#FF6699\" data-color=\"#FF6699\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FF6699'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#9C27B0;\" title=\"#9C27B0\" data-color=\"#9C27B0\" onclick=\"window['ace_RkLfKj2g_pickColor']('#9C27B0'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#673AB7;\" title=\"#673AB7\" data-color=\"#673AB7\" onclick=\"window['ace_RkLfKj2g_pickColor']('#673AB7'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#3F51B5;\" title=\"#3F51B5\" data-color=\"#3F51B5\" onclick=\"window['ace_RkLfKj2g_pickColor']('#3F51B5'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#2196F3;\" title=\"#2196F3\" data-color=\"#2196F3\" onclick=\"window['ace_RkLfKj2g_pickColor']('#2196F3'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#03A9F4;\" title=\"#03A9F4\" data-color=\"#03A9F4\" onclick=\"window['ace_RkLfKj2g_pickColor']('#03A9F4'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#00BCD4;\" title=\"#00BCD4\" data-color=\"#00BCD4\" onclick=\"window['ace_RkLfKj2g_pickColor']('#00BCD4'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#009688;\" title=\"#009688\" data-color=\"#009688\" onclick=\"window['ace_RkLfKj2g_pickColor']('#009688'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#4CAF50;\" title=\"#4CAF50\" data-color=\"#4CAF50\" onclick=\"window['ace_RkLfKj2g_pickColor']('#4CAF50'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#8BC34A;\" title=\"#8BC34A\" data-color=\"#8BC34A\" onclick=\"window['ace_RkLfKj2g_pickColor']('#8BC34A'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#CDDC39;\" title=\"#CDDC39\" data-color=\"#CDDC39\" onclick=\"window['ace_RkLfKj2g_pickColor']('#CDDC39'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FFEB3B;\" title=\"#FFEB3B\" data-color=\"#FFEB3B\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FFEB3B'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FFF44F;\" title=\"#FFF44F\" data-color=\"#FFF44F\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FFF44F'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FFFF66;\" title=\"#FFFF66\" data-color=\"#FFFF66\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FFFF66'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FFC107;\" title=\"#FFC107\" data-color=\"#FFC107\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FFC107'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FF9800;\" title=\"#FF9800\" data-color=\"#FF9800\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FF9800'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FF5722;\" title=\"#FF5722\" data-color=\"#FF5722\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FF5722'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#795548;\" title=\"#795548\" data-color=\"#795548\" onclick=\"window['ace_RkLfKj2g_pickColor']('#795548'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#9E9E9E;\" title=\"#9E9E9E\" data-color=\"#9E9E9E\" onclick=\"window['ace_RkLfKj2g_pickColor']('#9E9E9E'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#607D8B;\" title=\"#607D8B\" data-color=\"#607D8B\" onclick=\"window['ace_RkLfKj2g_pickColor']('#607D8B'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#000000;\" title=\"#000000\" data-color=\"#000000\" onclick=\"window['ace_RkLfKj2g_pickColor']('#000000'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#FFFFFF;\" title=\"#FFFFFF\" data-color=\"#FFFFFF\" onclick=\"window['ace_RkLfKj2g_pickColor']('#FFFFFF'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#F5F5DC;\" title=\"#F5F5DC\" data-color=\"#F5F5DC\" onclick=\"window['ace_RkLfKj2g_pickColor']('#F5F5DC'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#F2D7B6;\" title=\"#F2D7B6\" data-color=\"#F2D7B6\" onclick=\"window['ace_RkLfKj2g_pickColor']('#F2D7B6'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#D7CCC8;\" title=\"#D7CCC8\" data-color=\"#D7CCC8\" onclick=\"window['ace_RkLfKj2g_pickColor']('#D7CCC8'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#BCAAA4;\" title=\"#BCAAA4\" data-color=\"#BCAAA4\" onclick=\"window['ace_RkLfKj2g_pickColor']('#BCAAA4'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#8D6E63;\" title=\"#8D6E63\" data-color=\"#8D6E63\" onclick=\"window['ace_RkLfKj2g_pickColor']('#8D6E63'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#5D4037;\" title=\"#5D4037\" data-color=\"#5D4037\" onclick=\"window['ace_RkLfKj2g_pickColor']('#5D4037'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#263238;\" title=\"#263238\" data-color=\"#263238\" onclick=\"window['ace_RkLfKj2g_pickColor']('#263238'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#0D47A1;\" title=\"#0D47A1\" data-color=\"#0D47A1\" onclick=\"window['ace_RkLfKj2g_pickColor']('#0D47A1'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#000080;\" title=\"#000080\" data-color=\"#000080\" onclick=\"window['ace_RkLfKj2g_pickColor']('#000080'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#082D19;\" title=\"#082D19\" data-color=\"#082D19\" onclick=\"window['ace_RkLfKj2g_pickColor']('#082D19'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#083845;\" title=\"#083845\" data-color=\"#083845\" onclick=\"window['ace_RkLfKj2g_pickColor']('#083845'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#0A3A4A;\" title=\"#0A3A4A\" data-color=\"#0A3A4A\" onclick=\"window['ace_RkLfKj2g_pickColor']('#0A3A4A'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#C6F7F7;\" title=\"#C6F7F7\" data-color=\"#C6F7F7\" onclick=\"window['ace_RkLfKj2g_pickColor']('#C6F7F7'); return false;\"><\/button><button type=\"button\" class=\"\" style=\"background:#AEE5E5;\" title=\"#AEE5E5\" data-color=\"#AEE5E5\" onclick=\"window['ace_RkLfKj2g_pickColor']('#AEE5E5'); return false;\"><\/button><\/div><div id=\"ace_RkLfKj2g-btns\"><button type=\"button\" id=\"ace_RkLfKj2g-undo\"  style=\"background:#D9FFFF;color:#330000;border:none;\">Annuler<\/button><button type=\"button\" id=\"ace_RkLfKj2g-reset\">R\u00e9initialiser<\/button><button type=\"button\" id=\"ace_RkLfKj2g-save\"  style=\"background:#CCFFFF;color:#330000;border:none;\">Enregistrer<\/button><\/div><div id=\"ace_RkLfKj2g-status\">Chargement...<\/div><\/div><\/div><\/details><\/div><\/div>        <\/section>\n                            <section class=\"arttao-cpb-section arttao-cpb-section-calligraphy\">\n            <h3 class=\"arttao-cpb-section-title\">\u25cb \u4e66\u5199\u6977\u523b\u7597\u6108\u7ec3\u4e60<\/h3>\n            <div class=\"arttao-cpb-section-text\"><p>\u672c\u8bfe\u4e66\u5199\u7ec3\u4e60\u56f4\u7ed5\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u5c55\u5f00\u3002\u9009\u62e9\u4e00\u4e2a\u8bcd\uff0c\u5982\u58f0\u97f3\u3001\u5141\u8bb8\u3001\u8868\u8fbe\u3001\u8fde\u63a5\u6216\u5b89\u5168\uff0c\u7528\u7f13\u6162\u7b14\u753b\u53cd\u590d\u4e66\u5199\uff0c\u8ba9\u624b\u90e8\u8282\u594f\u5e2e\u52a9\u5589\u5499\u548c\u8eab\u4f53\u9010\u6e10\u653e\u677e\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002<\/p><\/div>            <div class=\"arttao-cpb-shortcode\">\n    <div style=\"text-align: center; margin-top: 20px;\">\n        <button id=\"toggleBtn272\" onclick=\"toggleCalligraphy272()\" style=\"\n            font-size: 15px;\n            color: #333;\n            margin-bottom: 10px;\n            padding: 12px 20px;\n            border: 1px solid #CCFFFF;\n            display: inline-block;\n            border-radius: 30px;\n            background:#FFF9FF;\n            cursor: pointer;\n        \">\u5b57\u4f53\u793a\u8303<\/button>\n        <div id=\"calligraphyImage272\" style=\"display: none; margin-top: 15px;\">\n            \n            <img decoding=\"async\" src=\"https:\/\/arttao.org\/wp-content\/uploads\/calligraphy-images\/class272.png\" alt=\"\u4e66\u6cd5\u793a\u8303\" style=\"max-width: 800px; width: 100%; border: 1px solid #ccc; border-radius: 8px;\">\n            \n        <\/div>\n        <script>\n            function toggleCalligraphy272() {\n                var img = document.getElementById(\"calligraphyImage272\");\n                var btn = document.getElementById(\"toggleBtn272\");\n                if (img.style.display === \"none\") {\n                    img.style.display = \"block\";\n                    btn.innerText = \"\u8fd4\u56de\";\n                } else {\n                    img.style.display = \"none\";\n                    btn.innerText = \"\u5b57\u4f53\u793a\u8303\";\n                }\n            }\n        <\/script>\n    <\/div><\/div>        <\/section>\n                            <section class=\"arttao-cpb-section arttao-cpb-section-painting\">\n            <h3 class=\"arttao-cpb-section-title\">\u25cb \u7ed8\u753b\u7597\u6108\u5f15\u5bfc<\/h3>\n            <div class=\"arttao-cpb-section-text\"><p>\u7ed8\u753b\u7ec3\u4e60\u53ef\u628a\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u4e2d\u7684\u6c89\u9ed8\u3001\u58f0\u97f3\u3001\u7f9e\u803b\u6216\u8eab\u4f53\u51bb\u7ed3\u753b\u6210\u7ebf\u6761\u3001\u8272\u5757\u548c\u8ddd\u79bb\u3002\u4e0d\u8981\u753b\u5f97\u50cf\uff0c\u53ea\u8981\u628a\u8bf4\u4e0d\u51fa\u7684\u538b\u529b\u4ece\u8eab\u4f53\u91cc\u5916\u5316\u5230\u7eb8\u9762\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002<\/p><\/div>            <div class=\"arttao-cpb-shortcode\"><p style=\"color:#a00;\">\u8bf7\u5148\u767b\u5f55\u518d\u63d0\u4ea4\u7ed8\u753b\u4e0e\u611f\u53d7\u3002<\/p><\/div>        <\/section>\n                            <section class=\"arttao-cpb-section arttao-cpb-section-diary\">\n            <h3 class=\"arttao-cpb-section-title\">\u25cb \u65e5\u5fd7\u7597\u6108\u5efa\u8bae<\/h3>\n            <div class=\"arttao-cpb-section-text\"><p>\u65e5\u5fd7\u7ec3\u4e60\u8bf7\u56f4\u7ed5\u5728\u7fa4\u4f53\u4e2d\u4fdd\u6301\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u5199\u4e0b\u4e09\u70b9\uff1a\u4eca\u5929\u6700\u5bb9\u6613\u6c89\u9ed8\u7684\u573a\u666f\u3001\u8eab\u4f53\u6700\u660e\u663e\u7684\u4fe1\u53f7\u3001\u613f\u610f\u5c1d\u8bd5\u7684\u4e00\u9879\u5fae\u8868\u8fbe\u3002\u8bb0\u5f55\u4e0d\u662f\u8003\u6838\uff0c\u800c\u662f\u966a\u4f34\u8bed\u8a00\u6162\u6162\u56de\u6765\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002\u4e0d\u9700\u8981\u7acb\u523b\u6539\u53d8\u81ea\u5df1\uff0c\u53ea\u9700\u8981\u591a\u7406\u89e3\u4e00\u4e2a\u53cd\u5e94\u3002\u7ec3\u4e60\u65f6\u8bf7\u628a\u76ee\u6807\u653e\u5c0f\uff0c\u53ea\u5b8c\u6210\u4e00\u4e2a\u6e29\u548c\u52a8\u4f5c\u3002<\/p><\/div>            <div class=\"arttao-cpb-shortcode\"><p style=\"text-align:center;color:#a00;\">\u8bf7\u767b\u5f55\u540e\u4f7f\u7528\u3002<\/p><\/div>        <\/section>\n        \n                            <p class=\"arttao-cpb-ending\">\u5b8c\u6210\u7fa4\u4f53\u8f7b\u5ea6\u53d1\u58f0\u53c2\u4e0e\u4e4b\u540e\uff0c\u8bf7\u63d0\u9192\u81ea\u5df1\uff1a\u6bcf\u6b21\u8bf4\u4e00\u53e5\uff0c\u4e5f\u662f\u5728\u7fa4\u4f53\u4e2d\u4fdd\u7559\u81ea\u5df1\u7684\u4f4d\u7f6e\u3002<\/p>\n                    <\/article>\n        \n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"nf_dc_page":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"class_list":["post-21738","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/arttao.org\/fr\/wp-json\/wp\/v2\/pages\/21738","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arttao.org\/fr\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/arttao.org\/fr\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/arttao.org\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arttao.org\/fr\/wp-json\/wp\/v2\/comments?post=21738"}],"version-history":[{"count":1,"href":"https:\/\/arttao.org\/fr\/wp-json\/wp\/v2\/pages\/21738\/revisions"}],"predecessor-version":[{"id":23007,"href":"https:\/\/arttao.org\/fr\/wp-json\/wp\/v2\/pages\/21738\/revisions\/23007"}],"wp:attachment":[{"href":"https:\/\/arttao.org\/fr\/wp-json\/wp\/v2\/media?parent=21738"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}