@snf/access-qa-bot 2.0.0 → 2.1.0-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"access-qa-bot.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-chatbotify/dist/index.js","../src/config/constants.js","../src/components/BotController.js","../src/hooks/useLoginStateTransition.js","../src/components/UserIcon.js","../src/components/LoginButton.js","../src/hooks/useChatFlow.js","../src/components/QABot.js","../src/hooks/useThemeColors.js","../src/hooks/useChatBotSettings.js","../src/hooks/useHandleAIQuery.js","../src/hooks/useUpdateHeader.js","../src/hooks/useRingEffect.js","../src/App.js","../src/web-component.js","../src/lib.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./style.css\";\nimport { jsxs as X, jsx as l, Fragment as oA } from \"react/jsx-runtime\";\nimport * as q from \"react\";\nimport { forwardRef as cA, createContext as vA, useContext as PA, Fragment as RA, useRef as eA, useState as R, useCallback as H, useEffect as V, isValidElement as se, createElement as _A, useMemo as fA } from \"react\";\nimport Me from \"react-dom/server\";\nconst Z = {\n AUDIO_BUTTON: \"audio-button\",\n NOTIFICATION_BUTTON: \"notification-button\",\n CLOSE_CHAT_BUTTON: \"close-chat-button\",\n SEND_MESSAGE_BUTTON: \"send-button\",\n VOICE_MESSAGE_BUTTON: \"voice-button\",\n FILE_ATTACHMENT_BUTTON: \"file-attachment-button\",\n EMOJI_PICKER_BUTTON: \"emoji-button\"\n}, ke = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e\", $A = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e\", He = \"data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e\", xe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 0 637 637\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20\", fill: \"#fff\", fillRule: \"evenodd\" }), /* @__PURE__ */ q.createElement(\"path\", { d: \"M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1\" })), Ae = cA(xe), Oe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z\" })), ee = cA(Oe), Le = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z\" })), Ne = cA(Le), Ue = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z\" })), Re = cA(Ue), Fe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 100 100\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"g\", { strokeLinecap: \"round\", strokeWidth: 10 }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m19 19 61 61M80 19 19 80\" }))), je = cA(Fe), ze = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M94-136v-255l351-93-351-92v-253l816 346L94-136Z\" })), Ge = cA(ze), Ye = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z\" })), Xe = cA(Ye), We = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z\" })), Ke = cA(We), qe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z\" })), te = cA(qe), Je = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z\" })), Ve = cA(Je), Ze = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z\" })), _e = cA(Ze), $e = \"data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/AQD//wQADgD///3/9/8FAPr/6/8EABAACQD9/wIA/P/5/w4A///t/wQA/P8LAB0ACQD5////AQD2/+7/AgD6//r//v/z/xIA9f8oAAMA4f8OANz/EQAdAAAA5P/w/2MAAQDq/w0A1/8bALz/BgDb/+j/lQD9/yMABAACAA0Alf8NAKr/CwCMAPD/QwDq/wkA9v+g/wgAk/8QAD0ABgAWAAQAMwD7/9T/8//f//z/JwAEAOL/DwBxAAwAzf/+/xUA8v+O//H/fAD5/xUA+/9m//P/yf/r/y8ACAAbAEQA3f9AAAcB9f/p/sD/+QHv/8/9EQCv+ez/j+v8/3pS7/83By4AF6Go/7PNjgDMEn7/Sk0NAeEfIv+9DCwAKfuY/9fRAv2A3mjzfQg/Ft3fzTQE703jljkirPskFOdBEUYzORerLDvvDg7C6dcbwNJj/b/CisId8XfblBZS/oYksP1YRdoQJjjDJbwGNSTX66wU48FG8Iu1eM+/5ITdKwGN8jUTGfehN3oUszrBH7kmdhFKB+YNheG6B9fOivltwZ38JMcC66z7o9pJNBnxgTdvCjIvJg+GG7MMlQUJFJL5hCZ61IQap7895EXN8Msh6NjdpxE07wU5Nf+kRH8Q2TrWHZkYhSYj5ygQgMu19dK86/YRw8jmHuuM4W8Qbv5ZLRgHY0o+ARU6uwKJE20PlfdwIXTNRxCMuj/2VMpT9GDjYOkhCEXj7iUA9dw5hgMGRv0K0yz0FXv0URP01aENm8LuBEm/OfEJ3UXsrwCA7scgnOqlQLv+2EE0ELEoMBUWA20W49bZDLLFYfq6wsDsttSk77f7uPvdHIkCojVN9kJJxvkaMtUHnQSVEmbdqB4+v2ELnr5F6vvZvumY9ujyGBvO8Hk7X/54PcoIBzJ/C0IOqQ7M3SQNcMhaDWDDIgXy0FLqd/OR2/0WS/fzLn0HVEImB0Q0VQYxEJsHh+tMEaLLuwznxCH7UM8z8pXmjPRhDfrwJzLP+xE+YALhOkkCOhqyDvLoSA2ezOQHA8gJBzXOofoa4YHxuxEa76Ys2+zRPCX4jTG6Fq0dww9C+I8LBczmCmjDxgPZzK737+Zg7RUOT/asKAX2rTfj7z066f+pHd0dRu8dGvfW/wdHw18Bp8oc9VnnxPAgCJP0Eyok7qk/HfWDNd4GZhaDD3LyxBjV1EAZHM1pB6bQa/Dq4//pqAcQ7h0iq/ETMxz4QDjXB2oeaReV9owM+t49BcXMRwt4yeT/DODq82sDoe7KJm/rEzr49DguBQbSGrcS7vyRGLDWQAhHzKn7U9Y+AQvotfbMBCPw7R3++Ncv6fvRMPj+HBj2Bcj6DgzF4kMNIs5dBkrSDPz+6eT9PwFY+iMaru4+MSzyGTHY/SocuQpy/WgNZt6DCTvQUwd20XEFA+Rz/YoEPvdKHnrv1Swb8pMwQ/2QHGwDqPsaCNfhwRD9z/MOpNNcBUjopf7OANny4hkY7TcvSvSWLVn7ihr7BAoBwQoM45cL2NGGDNfSGQm940EBZwJY+IYbPPArKabruy5V+NgcvAGm/4IFzeRHDxrR2xDP1XEJCOno/SX+z/QzF4DxWyvQ/Lkqw/6jG5T5XwLgAA7mlAa91ZwM5tUSDmnllgMx/3T2sRZ287UnxfckKxX+exrTAmwEUv/u6qICM9XGB2jTWQZ65gb/Q/0L/lkS3fyUJUT2vC6F+fkiFwUsA5gJd+R+AiPVcASv1gIHzueb+tn/2fPhEMzzvyGG+q4rEgOVIbcLsgjBEsbmHgxw0gP6DNo/8vDo0/mn+O34UhBW+Egmbv7FKjMCWB4vCcIEfAzX6zgHJtnhAifUYAAU6MP3Zf5L88IN7vLsIW/0tSu/Asce7hGMBtMPhu4PC5TatgNB1rP9reLY9pD43u8wEKLyoR+O+ssoCQSiI50JbQxtEEzwfgpT2tYA2NV4/b/hhvh39Yz0twqD9F8fivmGKscDOiUvDBkNMwe/8aoGoN8uC/XXnQKc3Z3zevHk8v0Js/bXGvT3mSfS/3MokwjBEokPzPesDdLiyQNN1BD7eNgw8yfwRvqYCFX+MxpR9UIovPaLJzEI5BNgDxP8uwtn4gILV9c0AQjaAPXe6tTyewNI9AMX1Pj5KNb/mSqOB3oaog3l/rkL1eP9BOrRi/961j/69Oqk9FwBNfdzGFH6vChI+lsr9wQ/G+EIggDFCv3nWwqZ1NwDC9M0+6Pllfen/nP4bxTM9uMldPcQLlP+NSOcCWsHeA2K6UQK0NRiCCPRiv9t4CD4Pfgy9TESMPFSJ7r2tjFNAzol1whnBu8N/unNDZTY/wP91G77od/H9pr1DfTpDUr2pSF7+rAspABzJ7wKiA6TDb3voQnM2BwEOtV+/Kbh5/YT9KPxJQh99r8cXwKFKWsDLiXNBYcT5At1+T0KJN5X/h3TbPr23qH7fvJS+tkDbvWzFYL2MCgIBGMqkAy8Fi8P9vsWC6jimv8a1B71udoY9BLuc/aUAlT6wRa0/R4nlgPFKYYLJBnoC7/9Vgh446UB59Ud/NraHPkL7Ob1WgIS9TYXxvhAJigDTSRVDZQVlw2vAA0GI+uB/wzbIfu+2kz7hOm5+S/9sva8EVH5NCK0/0EoDwZAHIoLZQMpDtDrQAoH3Lj9yNqI8NXmZe7P+bT3qw7o/9IgrgNPJ78HvB3oC0AIfQ1G8OAIpN6C/t7ay/Cc49zoC/da83AK7gCdGsAIjCfgC1cjOw23DQ8MT/ReBKbg+Png1RPx3d7K8KH29PfkDDT7shxpAcEiLgzpHnoScw5hDSD4ygSA41P9OtvQ8rbicuvW8w3wLAbM/msWMQeRIjULSyCNEeAP6g6m+SEFFeYk+Y/enO9r5Anwb/Ge9kgD3fuKFSoD8B7ZChAe3w8xEpwQdv1+BVzqRvbO37LvqOF68efvnfdYAXr+fxHEA34flQsjIO4UvRNRD/MAnf0L7Mf08dyH7+PfL/Ab7yD2LQCMAMcRKA2sHmYQKyESDTYXOQhHAaYAKOtw9QDfu+1e3vvt7OxI+Yb/FQXHDicL5h6eEPAiYBBJFycHGAT0+kXtuvCr3xPuR+D38vXpjP3p+cQHfQ7TC2Yedg4nIuwMDBnoAxMF5vhh86vxXuM28evasPNf5UH9SfpNB5sNzAwXHM0RRiMDDxodjQIlCaH1TfC88abgku+j39TwUOf4+Rb3TQoYCsET8BgJEHkj0AtkHkIE6wk292rzRfCD4zjvEN/s8OvmL/3J9BsK8gaLDtYZbw/9IRcMQx1tBOMNe/rf9kfxOOQZ79Hc/vUH48P8rfVTBMEJ/AoxGEMKBSF5Cz4exgvlDZIBevig9ETl7u7q3BbvfuNk9gfyGAB6BdIM8BfZFHYi7A2/IbADJBIIAMb49fjg5GjwAdsN76vfwfSG8tIAIQZXCgQWow4yIiwS3yFUDQ4Tt/5w/YbyhOa/76Xag+/73xP2Yu9fAS8BHQmeErEP7SKwErUnaw0tGPL/H/0D8zfmpe0c2r/t/9zv8nbs0QCRAKQNqxN1E1wjyBNiJRwKZRdT/G4B4fP56sXvidyS7qLbufT+5zcBjP3uCdYSuQzZIDURxCW4EB8cwwWuBB74Y+zd7rDbA+sm2fbtRudn+U/9VwdIEX0SQSC7FP8l1w5JHFAIFAdd/LXs7+3j2nbqkdoy7+fn9fmM/FQHsg+rDkUetA7AJB0QOxziCrMHO/058Y3zMd0G7o7Yvuwa53T2mvstBVIOoQxXHdMOCyToDVAdJwp1CQUCZe/e9eTejO9P3VXu4OdE8xD6IAD6CqELvRjkEDsiqxGXHfIK3gqf/+z0/fRL4jPsv9yl7uXnY/pA+PYB7Ai0CA8Xkw4GHngPFxxfDY0OmQN5+FTxeOZH6gTgjfBK5Zn4hfM3BOkFEwvOFR4LPx+jDvAcbA20DdYBp/kX9jHpNO6I4ZHs4uVy9D/zWwBxBGgMDRRZEI4cBg5wG0QNdRD0BlX8IffZ6IjsQ+Au6z3mO/Et9br90gS0CLQR3w/PGgAUTRsLEX8PSwfg/Kr58etY7FzjVOgw57fuHfSc+XcDAwg1ECMT7xfnFegXdxOKD2wHkf9w9nvvuu0F5hrpl+ck7Cj0+/gZAuoHzwwhFDIWYxn4F90Rmg6NBFABNfdY8n7s9+Yw6k3oxu388oX6pP/oCoQMpxIhFu8TyBccEmIP6QY4AQL3IPMJ7DLp5+Y/6KPuofFz/QH/rQnECoYSdxVQFSoYTw+LEIYGwQIm/Bn0c+9m6dboJOju6M/wbPPY/TIHawrgFbMT7BuTFygWWxJOCEgERfuw9Kztaekx4pHnFeSR8LT0K/13B/QICBaSE/obIxeGGM0SxQ4xB5H7lfYO6pLpLOOY53Hn1e4Q9Pj6MwPsCHkPIRM0Gb4W+BvUEU0QDgck/3L5PvBe7FHmYueY5LTuDewl+Ur7owUGEHUPdR6fGH0eCw3dEl4XVACdEwHxLNa/50a1MuIt45DoNTRF/Zw3zg1uCq0YnNwEIfLjOxeBAFAF7Ssx8MsokN7oDM3fuM8ZCaCv3w3tyMbeFgjG3qNTfSLbaAhczkBvPtHE0+0hjHisCKhzqKALluMRTGUoxU11SNURRy++yhf048Zc1p314e1zN0INPT3sGycYhQtBykjleKcJyZG62dKGFI8EAmEoPsVfelSSGaktksvG8WGvD79aubutwv4o1JQ9nxZDVEcwWg6XJ5bBeRVKuO4Bkff58iU/rvgRT7ASsR0OBYDDetkun5zHj7wo2oETMgmEW6xAeWhvTSoriCRRzxXsnJ7LxW6tSr7l9nzhEEUIHdhUxi3CFIMXINC5/sq+oPFt5Ovz5CQADrVNlyRjL0AWpOPd4DaoQsFHrm/KivMx8TxFViy/ZktPiTvoQBLwLwkMsIfRnK49tL3fOslTKhz+C0nMK8koDjP+6bQYR8j/7IndStuzDp/+OTqJJoQxySOK/9jxy8FgyEO0LMUd2HLthB+CJRJaSkbQURc6SwxAEui/9tY4rE21Ksz10xcTYgQEQogiATrtHFIAggvh0Vv56NA383X2+wEALFMcoDooG58WjPji1EnKjbNdx73KIeuXEKMYSUo8QO5Q/UN3H74biNYu28itib5lwlfIoAHc8ZM1YiMsPJcylRN2DlrjFuwy05btpOWEARAVeBs2O8kp6R7vBwjg1sLivi+7WNAz3v38AxQONJU3YlFfTT4voDIW6/Xti7Y4utO337ay6lvf8yzzG3s/WjccJ6YXjO28AHrLcPRa4CbuuRIJBF4x/CaeHjUYD/NI373HbcWxxj3V2/JF9ukxFiaoTvVUPTNtP43v/Pz9uvm/orvyswTobtj4IqwPaDzANPYmOCUJ894Bc9Wx6k3dXe2DCIwMgixjIhgp2RCJ/Ebui8gMzAy988kc5mTrPi4gItdWCU09P+tK7PWoFXm4wdQttCCtS+NUslsfjPCvPWE0+y1nSjr8+SGr0uHwh9Wx3gP/H++5KkEIUy9bGVIHew890t/nt7vHyW3ad9BVHOEBGVC1PEJI2VenEfMylMqP8iiov7b6xKOowQsayYVEDhTwPl9N7gssQc/YcxKY0jXghfJ02zEiuewLMMIQGQz1HR/WQgPhvUPeCdyGyeQU9tvhR9oYxknZY3UaXV5i0zAQxK9zsvjA45AA/GSvwjarAA1AYVDKFmxhcuKTKOTYBuGa8I3IMRbg1wklJA2RETUtqOTHGvbHld6X2HW81QZey4M38wx0RnVc2SbsbxjmvS6aubfEWMBshQjvSJPzI9ru6jc1TX8gHmy89B45uN4B75Xr+cQ1C+jPvR7P/mMSKic67uAfrc8P7GzWmMeOADrLejG1Aq1CnkPoJcJkqe9xObDFjeARwZSY/OZ0kwocedhqNEI1tCDfaCP7aUbk5X8C5ev2zfoDIMWmGqjrFhWAI9v0ZyuT0+j9NtU9ySL5ab2IJR7vez9mP9krE3Is/HdKfc0F5wfE8ZGT4R2Q/RBUz8EqGC1gIbNnCgSVUYjq1wlH7tTKhwN3xPIWdefOD9YfZfWpLtTccwlU2/jOdfQmvWkbs+MCNkwtNC7GZHQGwlLk2GkAE8VZpkHb9I3IBmm+kiIkHwAoWGTEEHxWKvHkCR7los8f9SDILA5B5xYXtBgpCSQuVeu8D4PYCNc65Pu+/QiJ3YktTCHQNdddZBopWk3pfQidxBWsT8wSkUT17MHLIdwTNjCCUGUZk1Og9aIbEeN/217t6sdrB0TkLxz4EtgO3CuT7zQPQ9vq2pThPMLt/hLfnyMXGrw3JE9UIeRSyfIeFmnOqchazLOiPusYuCkT0PPOKYk5rSERTf4Cvyrc6TH13Ogf2vf98eJ3E/b/hRHcGdb5FA0w4j7mF+CSzsT4KuGZHCkTmTA7Riklf054/p8awdfWz8fLBaeo4ZG5EwpN9msoMjRoJRZHIgZ5JwvtOPVe7DXb0f1e5Y8NCALKDbAWNv3gD3joPfD84g7Pg/TN1PATfQTwKL9ACiRgVbIGniuY5f/kgdSxsJXebq4F/cHV4RsVGQkjTUh0D1BEAflnFE7uBOQP9VPVRAXs6L0OdQqsBJ0Zgu/XBn7j3d7j7uzNGAwM7IEmuyXSKHhQ1wy6RZDkxAWVz9q85N2RnfEBzsAQH2UJISCYRpENtk3F9+Ihpu6y62T009BoBFni3g9+CwQHqyLE8vgI++SA2nnthcQEBdLh1CDrHpYoRVXqEsJT5e6ZEXTWOcVg2Juhj/IutksVbfSpJc85jRpcTx0Aty0J7cz2Iu0P2Dn+rODLC70A8wnyFor6EgyF69/tyuus0+L9Et0nGN4FmiWpOZEZRU9x+HAva90/6VTYGa4Z66WoPwkH1rAh2R0rIbpJSAn7Quvw3BSk6cznCPZX130HiuUOD14EhwLLEZjucgB66A/kePf04IQQffksJcUmtiA6Q+sD8zHn4oL5RdOexB7frbPn/wPMxCAEBeUltzlwEmJE8/iHIc3sQvhy8EfdSf994d8IV/axAzMKW/XEBnntVvI09mLm6gqq868fPRUGIb4zaQtnM6bq1AvA1STaIt2auhT51Me4Ffz0/CCYKq8XgjySAhwlR/OK/8XzD+kz/EjrVQE299L+/gN59Yf7FvJZ6+r5a+jcCdb8vxevGRwbwi/TDxssGPZYB53fjN0U3LrGRu/L0JoKKPQqHqsffhy2MP0IayGa9YMEyvAS8Tr62+wqBHj2gQM/Acv4Ifyb7hXyM/AE7gwC3/pSGDIOxCOnIkoXVylA+vsTwd3m7eTWttJA6pPNegmX4/Ae1ww2HucrWgwjK2f3dBOe70n6nPbM6boCQeuqBZv40/2iAmHx5P1Q7eny3/pk8kIT/f+QI8EaahwsLZQArB9V4jj3adem1LPkrM5SAl/hBRwYAgMi2CBQD3csJPg8HCfvAQAs9lfsoAJF6v0HMfbjAbkBTvJBAKXpMPbp8ory0Qxv+gIkkA3NJWEj6wv1JqznxAzc0p3k/dtuylL6MdD8F5r1ySKbIGoWcjBV/+UhF/C9CFbz/+7o/8HiJAiE7GADI//V9NsGD+nMAt7uTvhwBnrxlCBw/iwopBvQFMcrRPEUGDrWhu/A19XPn/AGzsoPt+hkIb0SOxsxMaQEaCsa8nkNm/FX78b8fOHQCNDpuwdz/qP4gwq/6EEFuuoP+UoBRvOJGjj8eiWiEAMaciEW/Hgdsd7WADjXEN2n6N/M7AV+3kYc2gUIHv4lwQw2LAr4cRcT8QH6Zfjb56ADt+lsB7n6U/4/BQzvBgA96qj23vlI9CUUWv1uJEMTzR15JqcBIh6+4ZH8FdaJ2zfmfs/1BBPgsxuxBe8ctCPZC80ldPiUEvLxCPyT+VjvdgXb8W4Jwv2J/xoCcO2z/NblY/JP9bfw9BET/fkl0BQ4I90ldgjeHWXleACQ01zgtd8K077+5d+SGTYACCBiHqgRKySO+zoQ2u9q+tv1HfJZBPj4uAsBBPIDZAfw8DX7GOSa6HHuc+YdCyf5YyT1FvAmXyx+DwQnnOzhBFbVAOCZ2ZTO5/YE2soXqPs0I1se/hTcJ2j8sRWV7nv8ZfNu7dMBKvFbDEgAZQdPDdz2EAbC53Pyu+oy5VwBDu19HKAG3yfOIIYYiysN9jgYd9jM8cbWBdXE74vUIBAi7OUglw02G38lGwVSIF/wCwcl7VvySvqw740K1PrzDVEHbQD6BXvr7vTL5HHof/by76sVtQWrKXcdeiEHJegA/BS23QP3udG/3XbjN9iqBVvpCSE4Cfwk9x70DjMeNPIQCynoNPin9NvxWwcp+H4PWgMEBiIEAfHz+izkOe8x7ybvIAw6/ZAl2hQkKNojaA25G1fmEv/P0P3ftNtp1hf7zeVzGpkE8CYGHGoY/h6P+moNGegq/FPuY/bDAeP5FRDw/vEK+/yx9i/3UuXl88/pe/iaAzQBeCD7D9oqRRqQFocV9O4fAefQkuoe1fDezfSU57kXqf7JJyoVYB20G/T/1g4I6cr8felq86D75vZrDbwAZQ6zBSH+nf5j6v70qeku8tr91fnnF0II9iOLF1cYpxuC+pALZ92s8XfXx9/a66nh6wsA9R4hqg2RHvkaIAiPFvLx/Qen7FX4yPcr8iIGvfe6CpsABAH9ABjwDPvN6j72MvoC+gsTOAWiIaUS4BooF6wA6grr4vH2k9dJ6M3nA+ZuBpfw+RzwBj0dVhdAC4IVFvfwB7LuNPym9ur27AQA+BQLKP70AUn/G/JM+vPqn/Yv9UD7mQzYBa0f/Q8KHwUVhAcyDZzpzPmq2ebnu+Mr5rn+bPM9FpUGPBwCE08Q/RKX/W0Je/Lg/Yz1hPet/1X4OwZV/pUCVgAP+Bf9yu+Z90z1gvd7BiP+FhftC3wbXRm+DRAVOPT//V/gaedt4U3iR/Y/7jIPAgOzGvIUhhQrGWoCPg1r82T8jvMv8pH+bPRuBhz+3QNxBA36egGK8Or4BfK79v0ByfzmFUMJ6xz9FPgQcBWy+J8D6OOW60Tgb+Bx8MXplgg8AnsYtRZCF24ZvAcxDG34rvv88wbyn/qz9P8CsP+YBJEHWvz6ARTyfvX+8Zbym/9m/OARUgzxGhYXSxPTFDf+cwMW6aDuLOEd47PspOe/Apf7HBSsEeAW+RpJDKgR1/w9/4D0dfI6+IvzlQEb/XgFCwZq/2cFs/Re+0nvkvK3+G/1iQx3BAMc6ROhGYIXaQXuCiPsDPYk35Pmpue55UX+dPRBEz4KDhmhGY4ONheU/VgF2/P587328+9pAMX3iAaUA9oCHwg797IB/u7k9tP0i/O3Bp/8SRgnDowbrBgWDdoQQfRP/NTgteiC4aDiFvbW7U4PPwfDG2MbxBQWGy0BPAjy8bbz0fEZ7Mz9QfRxCFQEoAciDdj72wbH7+P2D/Bz7q/+Z/YVE5QKQR7ZGWwVdhhl+7MDROKs6MjcVN0F79ToLwsBBLUclBsGGTMfgwWdCxjzJfRH79HqTPpe8/0HsANbC1ENWQAYCHXwefmJ6xfvxvh18ugOIwWDHhIYGBvSGpsDnAjm5orua9qU3sbnSOUFBJv9+hqaFzEdMyH/Cz4TTvYY+pnt++eO9YXqbgQ7/NQLYQ59BJcPE/Xz/0Lsf/AE9Vrw1AmJ/20b0BLyGqQbNgfYDgHt3vMg3yXgguce49r+O/gEFCISMBmqHigODxZo/Ov/TvIx7kH2oOzlASr4ggirBlkDbAs09gUEw+1B9pH0H/K/B0X9uhn5DhAchxjbCrAOWfAf+IvfeOUY5L/kR/q79OcRFQwDG/4bBxEeGP79wgP58eLvqfSh66UA+fYzCQcHFQZ/DQ35MQXF7Qn3NvDL8McCGvnIF5QK9B1RF5gPUxP99UT/4eH96V/hgOJ29CvvCQ1tB1cachnKFMoYZQJEB/TyjPOQ8gXsLP7b9R4JkQaLCM8Oc/zGBvnuw/at7a7tlvwJ9HMSFwfXHhIZJRa+GYj9mAQV5dLqB95b4OXsbesuBy4E/Bl8GdUZmxuBCYoJYfYt8wfvLerK9rXzeQTzBpAKehKGA6AJgPW89evtm+n89W3wsAm9BV8awxpsGh4ePAe5CQXtkOzz3l7c+eaP5TX+hgDXE2waUxrPH8oPfA0f/qLzh/Id6En0j/LA/qcF8wU7Ed4CUwsh+Xv5w/Lw65H3Ye/bBggB2hXqFOEXWhxOCZUOl/Ig9EfjD+Ee5qPjDPlK+bIO9RIpGPIdOxFWEgkC0vpl9m7ru/UU7+P8UAAeA34P8wH9Dm36R/7e88zsLveN6z8FQPy1E8USkhfvHJ0LIxKf9kf5tOW15FLla+Nl9c71UgppDkwW8xoKE5sS1gVq/RD5h+509Z3vvPqL/bgBiQwYAlEPzvurAib11PGR9s/sVAJt9ygR1wpxF0YYOw4vFFf6OwDP6M/rg+WL5h/yY/ImBtgGKBRwFWgURBOHCPwCpvph81r17+8/+qv5qAEGCJMCbg4f/FsG9/RI97D1HO9GAAT16Q55BfgWKhT5ENcUt/4HBTLrdfAV5OXmde5a740C9gLBEgoUGBZOFWMMNQaW/Ub0BPUd7ir31/bx/hcGRAPLD9D/WAov+E36qfQF7rD7q/AFCm0BdxWmEwUUOxfaBFsIF/Hq8pDlRefP6ajtu/oJAXsN9RJQFjoVHRFFBw4Dg/VZ9zfuUvX99Tf7dQa4AfIQpQHQCjr7OPkA9hPsYPkG8GkFfAIKEgMV6hShGN8J2Ai79sPxz+es5F/nteoL9un/pgl5FU4VdBovEysKswbQ8+359ukf9Xjy6Pg5BTr/MxMMAVcQdf1H/cT41utO+Szr6QFl/PkNYhK0ExYc8AxPEJT8OfZ17JniSee/5OfwwfoZA6UT8BFgHeQUjBCZCyL5Iv506RX2m+zi9oH+T/xaEDgAPBNg/90DEfs88Ej5b+oW/w34LgoWDQQSaRlyD6gS7QEi/bTwcOg758HklOy59I39uAwpDzUbWBYSFakP6f+NAY7sYvYy6mz0hfgX+rQLyQByEwsCXAm2/fz2F/n27D/7yfMZBWEF9Q9jFC4S8BOCB8EC0/UZ7rzoEefE6d/xFvgDBk0KFhbbFDQWkRJDBmMGGvMY+brrv/MW9XX3Ewad/mUPRQKaCQMAqPr1+h3xavov9fQBmQO2DPoQUhH/EXcKJgT9+izxTez16Pnod/He8yoE/AV+E2gTzBR8FLQGowm/9C37xe0o8wL2SvWEBAX9IQ2yAoQJUQJX/UP94/MY+lL1P/6wAHMIhQwvEJAPsQ1RBoQANfdF8IntU+jU8CHv4f7dAMINYRGlEkEW1wlrDRj7Of7u8YzzcfRz877+FfsSCHYCIQl1A+kBi/4m+RH6DfdE/Dn+ngVTCPYOsAyLD8EGkgSa+j/0SfGb6cDyVOxr/e76pwlJDHoPsRWJCv4RC/5OBM3zXPZK9JTxeP0W98gGOQAlCXEEDANqAWT58vug9SH7TPzYAWcHeQugDYQPHgpcCDv+/vjH8afrEe9W6qP47faOB3UJ8hBBFSwOPBOoAUgGb/Uy+Jzy8vGJ+fn12wM1/4MJxASgBm0Cxv0R/Cn37fnc+PP/kAFIClAKExCMCwwLywKB/Df2ie128PjoHfbX8lMDNgWuDh8UrQ/rFaEELgrv9mH6kfG68Wz3ZPS/Ajz9qgqwA0gJHgNh/6n9S/ZX+iD2c/4X/xIIlwlbD/cM2QyHBb7/5PjW7/zw0egD9K3wNgA8Al0MwBGvD2YViAcFDIj6N/2F8qHzAvVr9P/+NvyECNICYgqoAgMDQv2j+Xr5E/c1/c38SQc8BfUPGwoHD/oG1AI1/TPye/R46Ff0ee3l/E7+wQfcD3YNdRZcCZAOpP4n/wb2t/PX9WbzCf24+4YFigOECBEENQMX/h37cvga+G/62PxnBPoELQ/8CUsRdQfPBjz+SvUS9dboVfP86mb6ofo/BQANJw0HFjYMqhCVAggCUvd29SHzGPO3+Oj5JgMxAvQJqgSCB8T/5/5b+cP3cPll+DYCRgA0DT4JIxGTCyYJUATh+Gv4++rF8OHp/vMX94IAigmNDd0U4hCWEu4HdAWN+XH3t/Bv8qTz9feI//cAsgooBekLjgF3Apf6b/dM+Jn09/77+3UKuQciEVsOQAz+CZb9RPyM7rLvhOkL73nyNvvAAzcLDhITE2QU4QwwChr+wvs18k3zcfEY9T/7N/0eB8cD1Qt0A/wFjv0i+0n5l/S4/Gr4ugZKBEQPSw4pDhwNHQIuAGTytvED6mDtc+/H9lT/GgcoD60SnBT+EAgNRgPh/kn0x/Qn75b0lfag+9ADcwJ3DEsDrQmh/lD+NPri9Bz8HPaEBEUBNg0EDUEOnQ7YBD4DL/YL9CvsYu1d7lH0ffumA/oKbxDbEksR7g7hBQ4DcPfc9/fwbfQi9hb5ygFGADAKTQOjCHkAJv/9+9j2zPsy9/IBJgA1Cs0Kbw0CDlgHkQVp+lr3D++X7svtFvL995r/2AazDcIQMxIlEMAJaAbm+p76+/C09BbzevdW/r/+VAksA1ALhgErA9P8d/hZ+yn1TwAg/K4ItQdhDW0OHQmSCRr9xfsK8bjvle0877T1yvoGBE4K3A7QEgYQ4g33B3f/4vzX8mn2GvG99+L5lP2uBcoBUAtBAZoGi/1y/JX7yvY2/1v6Jge0A9gMGAtECsMJiP+G/0fzBfQY7qHw1POE+OEAYAbPDPIPSBATDvkJWQIO/3T2NPeo8v/2j/hP/MMCgwEaCR4Cnwag/gX+hvvi95P9Q/reBC4DwwuwCoYLAAqlAj0ARva69KXu3fB78f73VP31BKUKxQ6KEFsOCAz/A2cB2/eH+Arzq/ax9/f6TQFGADcIzgHqBkv/SP9L/PL4Vv0d+m4DpAFMCisJqQv8Ce8EXgJi+Wn3O/BM8TvwdvUG+qEBWweLDXYPKhDcDXgHrwTb+dj6pfGk9sH0GPmk/1n+2AhtARkJUwCOATH9Kfn7/JX38AFn/uoIJQitC2QMnQaKBrP72/n18TLwNfCd8R74e/2VBMELhw0iEvwN2AupBon9Nv1i8sn3BvKw+Jj7IP2ZBmQAhQoIANoE1f2Z+6L9ivd5ARH8agdvBaYKbwtiB1UIJf4H/U70YvK+8AzxXPZy+nQBAQj4Cn8Qvg2hDccIagH5/0P1Wvka8pL4IPnt+7IDTf+tCeX/cAZj/of9zf2B944AafrdBdkDyAmIC14IDgqtAIz/2vbN81rx4+939Jr3XP7IBc8IURCcDUYPewrSAyQCePaY+hPxQ/jt9sL6lwJ8/lYKOgBaCG//Qv82/mr3mv9h+B8EQgGKCHwKkAigC6wCogKS+aP13/Iv71/zBfV9+3MDUAbvDxENIBHhC14GRQTA9wf8YvA/+Lr0w/mCALf9+wlKABIK7P92AVr+d/jk/jb32wK+/qoHuwgACUYMagRTBab7e/jr8xbw2vLd8sX5h/9KBAANwAuHEfgLugm/BbT7kP0j8t34UPN5+RH9Kv39BgwA2gkYABoEaP6e+0H+EfizAdD89waWBXIJWgrkBXMGVv1A/OH0f/OT8h3zUPhM/J0CqAi8CjoPEgzkCokGg/+i/tj1q/lH9Nn5+fox/f8D2/86CO//wQQi/sL9kP2d+YYAEfwDBt4CtAkrCIgH5AaG/3//HvY499nxbfQ59tD5kQDqA/sJ0QvkDLYLQAj5A9D/LPpr+Y71w/iE+Jf8cP95AJ4EKgH/BMv+ewHN/LL9qP5v/UUE6gBoCe0EFQkFBQ4CLQAy+Ij5KfKT9or0HPra/R0C/gcxCZYMbAp0CfoEpwHO/Of6vPc++Wf4GvyW/Z7/ugKQAD8E3f4XAjH9Xf+d/uf+VwPpAC4IeAO3CIwDRwPq/2r6f/rN8wP4QfTQ+ub7RwG6BTcHYAv6CPQJVAVqA2f+uPxC+dz5BPlj+yP9a/7cAeP/sgMh/wUC6P1W/9D+mv6aAnoAEgduA1YIYAQmBGMBXvzD+6j15/d99D/5C/p1/9sCbAaNCUwJVwpgBpkF2P/1/jn6vfrh+NL6KPxH/coAN/8wAxn/TgIL/vv/lP78/vcBbACXBuICcwi2A/4ERQGp/Y78w/bk+L/0Uvk0+Ur+YwETBQwIQgl3CbMHxAV6ASMA4PpI/PT32vsD+oT9Pf/C/rQDYP5gBHP9pQEB/tD+PAG//uYFJgF7CI8DOAYaA5r/HP9L+BL64PQb+MT3i/tV/7ECrQa7CH8JfwnmBlEEdAHM/Oj82/ef+zb4B/0B/Z3+iAKt/ggFvv1dA8f9DgBYAFL+vgR2/+wHNgLXBnIDOgHqAA/69vui9dX44/Y5+jj9y/+3BGcG9AiICQkIuwZlA7b/K/5S+XH7fvfs+9f6yf20ANz+7ASN/sQEQ/44AbP/NP5KA4f+9AZDAVcHXwPxAiwC6fvd/Wv2i/kk9j/5afsK/vkCzAQ9CPsIkgivB6oEwwF1/xD7AfzZ95n7z/kn/Qv/av6AA3f+RART/g0CiP+v/8ACSP9rBsoAWAdhAs0DpgFB/TH+f/dt+g/21vkp+nj9aQFeA04HwAehCJAHhwWuAqcAf/zp/Ab50vsJ+qn8WP6+/YUCDP7GA0X+EQKl/9T/oAJf/90F3gDVBqkC/wNoAjr+Gv+8+PT6x/Zm+df5KfwwALgB7gXNBtEHDQilBVEEhQFL/gn+6/mk/Kz5A/32/JD98AB5/fACev1UAvj+vgBEAhoADwYQAZ8HRgLoBO4Btv45/5L4qvtS9ur5WPm8+8//iADABYsF4weJB8MFMwVzAR8A+f2L+/n83fm1/Yf7OP4t/3z9NQKw/AYDwP34AUgB1ADBBaEALggnATIGUAErAO7/cvkv/SP2Hfs0+Mr7Uf5U/7oE3QPRB4MGdwZqBXkCJgHK/qv8Lv2m+nX9svvz/X7+nf0NAfX8MgKP/dMBZgBQAX8EgQFyB+UBtAY4AeIBRP9Y++38+/aN+2P3Mvxo/Aj/7ALEAi4HXwVTB0sFDQSBAtn/c/4s/Uj7yvzS+nr9+/zA/UgAiP2mAtr9HgPP/wYCTwOdAG0GIgCjBnEA/wJrACf9Gv9Y+DT9aPcm/AX7Ov0UAZkACwZRBFkH5gX+BC0E9AAhAND9G/yo/En6Dv25+6b9KP/Z/TsCNP5dA43/gQIpAuwAMwX3/5EG+v9gBDsADP+m/4T5QP459+P8m/nc/FL/Jv8ABdgCggdqBewF2gTwAUcBQv4X/af8vvru/Gf7nP1v/t/9vgEF/moDHf/4ApkBWwGnBOf/RQZv/6oEov8mAJz/9/rK/hz4s/1J+Xf98P31/mcD3AGTBkQEJgZvBBoD/gGV/zr+WP17+878dPsW/fL9Z/0jAc79AgP//tcCUQFfAScEDADlBcf/+QQiAAsB7v/6+7L+nPgs/Q75y/wb/aj+ZQIIAugF2gQTBuEElAPvAUcA7/3//V/7Mv2e+zT9Iv5A/RQBev2DAp7+JwLmABEBwQN9AK4FnAAbBcwArgEnAN/8bf5a+Zz8Hvls/Gb8sP5ZAUYCBAXYBMsFkATsA5MBBAHT/Zv+zft0/ab8TP0q/1L9TgFm/aABLf6MADsApP8gAw0AdQV7AYwFdgKoApMB6/3d/sH5Cfyy+DP7YvuM/VcA1AGpBGAFFQaxBYkEcQJvAdT9t/4E+2/9p/tW/cr+gP3XAZr9vwId/kYBpv9X/0QC/P7cBFUAtwX6AYcDGwIW/yQAofoT/cP4YPuj+sH8Hf+dALIDigTqBb8FLQVZA14C7P5R/6z7ev2S+w/9Gv5b/TMBq/2XAib+mwFw/3b/rgF6/igEvf9ZBRwCAgQ0A0gAhQHW+7X9L/mU+vb51Prd/bj+ogLpA5AF0waGBU0FIQN5ABYA5vvl/Z76Ff3l/B79qABc/e4C7v1NAkD/3/9iATD+xQPl/iUFZgE0BH4D1wDRAqD8Nv/h+UP7DPor+jP9Kv2YAWMCxQQmBkgF2wV5A7EBxQDt/KD+z/qM/Wz8S/0MAEj9lwKI/WECrf4WAOgARf6IA83+KAUrAYAELANmAacCKf2k/yH6HvwI+s365vwD/RIBhQE/BEkF7ASbBXUDPQIaAZ/9G/8R+wz+HfyY/Zb/Vv2aAkr91wIi/pgAPgA2/gQDCf4cBTYAFwXOAmcCWwMW/uEAZ/oE/Y35yfr8+zf8QABqAPcDkwRABbIF7wMTA18BrP4T/5z7+/29+8b9c/68/ZgBmP3rAu39uwF0/2f//gFa/n8EiP9MBaUBWwOrAlH/PwE++y7+e/mj+wX72vsc/xv/SgNIA10FawWgBPYDBAILAF3/jfzW/cL7n/3K/eX91wD2/XUCCP68AfL+uP8hAYf+1AM6/1UFTwEvBMgCcgDmAe376/5g+Qf8Q/qj+zT+YP7JAmMCZQUBBfMEYgRcAgIBjP8y/dv9l/uj/RH9IP4xAFb+bQI+/kMCpP5AAFcAb/70Arb+/gS4ALUEkwKWAV0CD/3Y/735q/yd+Xv77vyU/ccBrQE/Bd8ElwXLBDEDgwH7/3T9x/1q+1/9pvz+/eL/iv6sAoP+6wKh/rcA0v82/iYCxv1/BN7/+ARzApICEwMq/uoARfpz/V/5Xvv4+5P8nwBxAKEEUQTaBU4FFASpAsEASf4V/mH7JP3m+6z9Lf+D/o0Cwf5qA8D+WgFt/1T+UgEo/bgD8/7dBC0CZQPcA4b/OAJR+z7+XPkS+/b6VPtU/x7/2QPTA/oF5AW6BNoDegE0/2r+dvsK/Tb7YP1J/mb+KwL7/u8DBv9dAmT/Gf/JAPT87QLJ/W0E0QDDA2gDoAAxA3f8/v/T+UD8cPoS+yL+s/20Ak4ChwVsBTYFsQRsAq0AKv9L/EH9v/oq/RD9Av4mAcL+1QMM/z4Dav8gAJcAQ/2XAh39OATI/+8D1wItAXADI/3cAC36GP07+kX7df0P/fMBVgEgBQEFUgUjBfMCiwHA//D8lv3L+jX9ivzu/YUAp/6cA+b+fwMk/6AAOACK/S8C5vwHBED/NQSEAu8BsQMH/pABovqx/e35OPuK/FD88wBNAJUEYgSFBWMFogOfAm8AEf7i/SX7Jf3Y+8D9Zf+T/uAC7v7FAxT/mgHq/2r+qgEA/boDgP5jBIYBnQJYA9f+MwIl+9f+2/nv++L7BPwbADX/BgQwA4UFCAUIBEIDAwEz/2P+6ftA/cf7jv2c/ln+JALO/qIDAP8DAq3/0/5WAQD9UQMj/koEHgEJA0wDwP+mAgr8e/8U+kf8QPuv++n+gf4YA7ECXAUZBbYEyAPyAb//3f4Q/DD9ZPs6/R7+K/74Ae/+8gNA/6wCqf9k/9kA5/yrAlH9/wM1AF0D/QKSADED0/xyAG36BP3k+qf7H/61/UUCtAECBZ4E8wRABHYC0AB3/+H8cP1E+y39Iv39/dsA0v6HAzv/NAOM/20AfwCo/S4CSP29A3P/sQNDAmgBJgPH/S8B4Prl/YD67vsh/Q79QgGcAIIEAwQsBacEOAPoASYAyv3F/Uj7Iv1A/Mz9x//D/hgDL/+0A3P/YQE8AEj+wgEF/UsDmP6WA4EB3AEpA6H+9AGs+8b+yfo0/KX8fvxFALP/lwNlA9QEzgScA78CAgG8/oT+t/tY/dH7gP3d/kv+WAL2/rsDhf8fAkYAJv+NAUH96gL1/VsDigAVAqECV/9QAoz8tf81+/X8Ufxy/FH/5v6bApECcASZBPwDTAPJAYn/Nv8b/Ij9g/s//RP+8/3HAdj+4QOV//ICXwDp/2MBZP1/AmX9AQOw/yMCJwLe/6cCPf2RAJv7lf0h/FD8rf4A/uYBmgELBGEEAQQLBDACoADH/6r8Cf4k+4D9GP3j/foAi/7UAzH/mQMCAM4ALQHP/XACBv0oA9/+fAKfAVYAygKX/VYBwftr/vP7ffw+/lT9aQGQALsDuwP9A0wEWwKuAQgAsv1D/ln7rv1c/BX+7v+c/kADHf/yA7b/xgHFAJj+DQL6/PwCB/7MAqcA+ACAAjr+7QEK/GL/vvsE/a/9Cf3PALX/cAMPAxoEXgSxAmwCTgCB/lv+hfuu/cH7Df4C/8L+0gI//1AEpv+PAmAAJP+QAcP8uAJV/fcCHQCPAagC9f6tAnD8HQCW+yD9C/1g/BAAwP7+AoQCKwS0BC4DZwPhAHj/t/7F+7D9I/vi/ff9k/4JAjf/dgSe/3MDJQAYADgBBf1sAp388wIL/wMCAgKx/wUDEP0zAZ/7E/5k/HH8If/a/UACZQERBDwEugPzA6wBnQBC/5X8tv3r+o394fxR/voALf87BMX/WAQpAGUB2wDg/eQBUfyXAtL9NQLQAHwAtgIG/vUBM/xG/zb8Ff07/nn9PAFRAIgDaQP0AxAEcQKVAQYAsv0J/jD7Zv0N/PH9rP/r/nEDtf+yBDcAkgLFAOr+jQFl/EcC6PxFArn/8QBUAq3+oQKj/HMAF/zQ/aL9Fv17ABT/GgM3AhEE5wP2An4CmQD0/mH+7Ptc/dX7pv3C/qf+jgKa/3EEQAAeA9IAtP9xAeb8EgK5/B8CF/8XAdMBJ/+wAir9/ABc/Ef+WP0m/db/r/5pAs0BugPRAx8D9gIuAYf//v4j/LD9YfuT/ff9TP4AAj7/cgQIAKwDxwBbAHoBPf0fAo38MgKa/koBcQFv/6oCef1MAXH8nf4t/RL9Xf8//t8BPwFsA64DOANYA5QBOwCE/6j8B/5d+6n9af0r/lkBDP9FBMv/CgSCAPMASwFy/QkCOPxDAvX9iQEZAdX/9gLO/QoCmPxC/wT9I/33/qL9cwFzACwDRANLA7ID2QEpAd//eP1R/mn7xf2n/Br+VwDQ/ssDkv9mBEUA1gEUATD+6gE3/F8CU/3WAVYANACrAh3+cAKs/AUAyfyZ/Yz+Vf0QAYr/8wJ6AksDrQMdAugBLQBs/qL+zfvz/UH8Hv5s/6b+/wJK/1gE8f+ZAtEAQ//PAcb8bgL1/CYCVf+sANkBkv52Atn80QCi/Hv+Ff6W/XEACv+LArkBRwNHA3QCKwKsAB//Av9n/CP+Qfwg/sz+iP4/AhP/DgSz//cCjgDi/5sBJf1mAtf8VgLw/hIBkAH7/nwCGv0hAYb8xf6l/ZP98P+w/jQCOgE+AxcDrgKQAgQB3/9O//L8Pv4E/Bz+3/2J/lIBDv/YA5v/qANKAPUAOgHW/RwCo/xcAvz9fAGkAKn/UgKt/cABsvyp/0P9+v09/0r+jwFrAAIDkgL2AtwCjwG9AMr/rf1x/hf8/v1A/UH+bQDf/kQDiP/TA0sAxAEiAZ3+7QHL/D4Cbf2cAdz/CQDvASX+FwL0/GMAKv11/sL+GP7rALL/lQLzAfEC0wIAAmMBWwCQ/t3+avwZ/rv8E/5i/4v+iQJF//sDFgCyAg0Bpf/jATL9OwIA/cMB7f5eAEUBjv4gAjn9BwEi/R3/bf5B/msAPP8oAjsB1QKLAjwCyAHKAFv/SP8a/UT+uvwI/qT+Y/6QARb/aAPi/+8CygCOAKEBFv4bAkf92QFv/r0AcwAU/5IBl/0ZASH9nv8E/qD+0f8e/7YByAC9AioCgwL5ATwB/v+h/6v9Z/7U/Pj9Mv5I/uAABf/4AuX/DAO4AB4BbQGs/uEBaf3DAST+5QAFAHf/cAEI/k0BVv0DAMf93/5M/wf/LQFsAIIC1AGjAt8BnQFSAA4AK/6t/gr9+P3s/Sj+TwDi/o8Cwv8QA5kAhgFUAQ7/uwF7/bQB3v0RAav/3/9NAX7+igGR/VUAo/3o/sD+r/6NAOn/LwKbAcwCLQIXAv8AigDD/uj+Hv3p/YH90v2x/47+OAKe/zQDowADAmQBhv+/AaL9oQGQ/QYBN/8FABAB0/6vAez9tADB/S3/kf6T/iQAgv+xATsBigIuAj8CXwEHATr/Zf9T/Sr+QP3A/Sv/Q/7DAUr/OwNzAHcCQwEmALMB6v2qAVn9HwGw/jIAsAAH/8QBFv4dAcT9i/95/ov+3P8Y/1sBtABfAg0CTgLNAUMB2P++/639dP7z/OD9cf4v/hoBEP8kAygADQMGAd8AiwFb/qsBMP1PARn+fAAqAE//uQFL/qYB2P0wAD7+wv59/6n+BQEAAC4CoAFiAgEChQGcABEAZf60/g39Af7S/Rj+OgDj/psC7/84A+UAogF2AQ7/mwFT/VABlP2ZAHb/p/9XAZv+0wHv/bkAGv4u/xz/pv6kAJX/7AE2AWMC7gHQAfwAdgDp/gX/Tv0c/pb9AP6w/6P+JgKb/zEDogAVAlUBof+lAa/9gAGA/eAAC//a//gAvf7AAf/98AAC/m//5f65/lEAaP+xAfMATQLoAfABRAG6AE3/Xf90/WX+Tv0d/iD/jP69AWf/PQNXAJACFwEhAIoB0P2VATj9GgGa/iQAxADz/uQBFv5TAev9p/+r/pr+DAAM/24BogAoAuoB6wGdAe0Awv+g/679nv4d/Tz+r/5//k0BMv8iAxYAwwLgAHsAbQES/qIBJf1CAVj+ZQB8AED/8AFP/pwB+v0DAHz+r/65/8f+FQEpAPcBqgEAAs8BLgFNAP7/M/7i/jH9Uf5I/lz+uQDy/s8C0v/xArIACwFkAX7+pQE3/W4B7/2YAAEAiP/BAYH+1AH9/WEAT/7Y/mT/jP7EALP/xgFPAf0B4QFwAcMATwC4/ij/a/1u/vT9Uv4jAMv+ZQKf/wsDhQCaAS8BFv+LAUz9aQGK/cYAb//G/3IBwv4TAiP+CQE6/lf/GP9y/mYALP+MAcEACAK+Aa8BJAGsAFT/cf/B/Yr+yf1C/pf/nP7rAWD/8QJTAOYBJAGL/48BlP18AXD94gAL/+7/HQH5/goCVf5SAU7+rv/m/p/+///6/iYBWADTAX8BwwE7AQIBsP/e/wz+x/7O/Tn+SP9e/nYBGP/LAhYAIwINAQsAkwH6/Y0BY/0CAaf+HQCvADP/9gGL/pwBXP4eAMb+1P64/8j+zAD9/5cBNgHJAVwBRwElAEMAhP4d/9b9W/7d/jb+7ADU/oAC2/9QAt8AhACGAWj+lQFv/RwBP/48ABwAXP+kAaj+vwFv/oMAvf4k/4f/0/54ALb/UwHuALcBRwF7AV0ApgDR/n7/+v1//qf+Gv6KAIL+QQKH/38CsgD7AIcB0v6yAYb9NAHz/VoAr/93/2EBzf7QAYn+0AC+/m7/Zf/Z/kAAfv8JAboAjAFTAXsBpQDeACz/0v8H/sz+Vf45/vn/aP7VAT//fgJqAHQBYgFy/78B3/1iAdT9jABE/5j/8QDh/pkBlP4OAcH+z/9O/wv/GQBU/+UAZgBaASoBcgHGAAYBif8mAFP+Ef9C/lT+i/9A/loB5/5lAgUAxAErAfT/vwFE/pEB1f3AAOP+wP97AP/+eAGc/jUBuv4YADb/MP/x/0D/rgAfAEMB7wBuAd0AIQHg/1wAsv5d/1L+gP5A/zn+4QDC/gkC0//fAfYAaQCgAcz+oQEM/vwAlf4EAPf/Fv8WAaj+NgGr/nEAHP+R/8H/W/91AOL/GAGkAG4BzQBEARAAqAD//qb/fP6w/hf/N/57AIP+tAF8/88BswC9AJYBLf+8AUP+IwF6/jIAq/9O/9kAvP41Aaj+sAAA/87/mv9W/0kArv/3AGkAVQHFAE4BTwDJAFD/2f+i/uf+5P5U/hMAdv5eAUP/3gFoABwBVwGi/6oBdf5LAVP+eQBF/3v/iADO/jUBpv7tAOv+EwCC/2//LwCA/9EAIgA+AaYARAF9AOYArv8ZANv+Lv/L/oD+pf9q/ucABv+vARcAXgEiATMApgHo/nMBYv6pAOf+tv8EAPj+7wCu/gEB3f5pAF//t/8FAIj/qADn/yEBaABHAX8A9gDu/0QANf9j/93+sv5u/3P+iQDg/moBy/9qAdcAfACBAUz/fwGP/uMAwv4BAKv/MP+jAML++ADI/pcALv/5/87/oP94AM3/CwExAEQBbQAcAQkAfQBh/5X/AP/H/lb/dP5GAMb+LAGe/3IBoQC+AGEBnP+AAb/+BQGs/isAbP9W/2gA4P7tAMv+uwAb/yEArv+//00Axf/eABsAMQFgACYBIQClAIf/2v/7/gH/IP+H/vf/rP4EAWD/ewFaAP4ANAHl/3cB2/4iAZ3+YQA7/5b/LQD//uIA1/7VABH/SgCG/7z/HgCl/7MACAAZAWwALAFaANAAxP8EABT/Nv/o/qP+o/+c/rsALv+HASEAXQEHAVEAZAEP/zgBav6NANX+x//f/yn/1ADm/hABAv+SAF7/2v/u/4v/iwDJ/w0BRAA/AWQA8QD//0QATP9c//X+s/5g/4/+aQAP/1IB8/91Ad8AoQBcAWP/PQGC/qQApP7m/4//TP+oAP3+GQEF/8oATv8WANL/l/9ZALT/4AAfACMBZwAJARQAcABt/5n/A//j/kD/kP4uAOT+MAHE/40BrwDlAEMBmP9DAZT+yQB7/goAT/9l/3sAD/8gAQ7/4ABQ/yoAu/+P/zYAmf+zABIADgF2AA8BSwCfAKD/2//5/g//Cv+f/ub/zv4RAX3/oQFqACIBKAHl/0wBsf7yAF7+OgAZ/4r/PAAN/wYB9v73ADn/TQCg/6v/LACM/60ABQADAXEADQFjAKQAuP/3/wv/M//p/rn+pv/E/tcAWf+cAUcAZAECATsATwHy/gkBY/5vAOH+rP8GAB7/9ADu/hEBHP9wAJL/tv8cAH7/oADi//gAbQAHAYYAtADp/xoAKf9W/9D+3f5i/8D+fwA8/2gBBACCAc8AkQBBAUf/KAGF/qQAtv7b/7H/OP+qAO3+9gAJ/5MAb//l//z/jP+HAMr/9gBZAA4BjgDHACEANgBY/4v/3/7v/iz/wv43ACL/RQHW/4UBpwDTACMBjv8wAaT+twCv/v7/h/9Y/5EA9v76AAD/qwBV//v/2v+O/2UAuf/UAEEACQGaAOMARQBqAIf/r//n/hP/A//K/uL/Bv8AAaX/gwFuAAcBFgHs/0MB1/7kAJb+MgA6/3z/SgAB/+4A6f7MADv/LQDH/53/XACc/9IAFQADAX0A4gBoAGkAxf/J/xn/Nv/9/uH+pv/0/r4AfP90AT8ALwHiACUAMgEC/wcBkv5nABr/qf8hACL/6gDv/ucAIv9NAKH/oP86AH3/vgDn//YAewDtAIgAhQD+//D/QP9S/+T+9f5u//r+dwBj/1QBFwBWAcIAbAAiATz/+wCQ/oEA2P7T/8//P/+7APj++QAa/4gAi//U/xkAgf+cAMX/5ABMAOMAhQCTADEAEwCC/4L//f4V/zj/+v4xAEj/KgHe/2gBlQCpAA8Biv8kAbL+tgC5/gAAkP9W/4QA9f78AAH/qwBw/wMABgCG/4wAqP/XAC0A4ACHAJoATgAdAJv/mv8L/zL/If8L//b/Of/yAMP/ZAFrAPMA8ADX/xkB3/7PAK3+LwBF/37/RAAI/+wA8v7PAFP/MwDt/53/fwCM/9QA9f/hAGUAowBkAC8A3P+y/0D/SP8e/yD/qf89/6UAov9MATIAFgG8ACUACAEk/+YAs/5iACf/r/8TAB7/zwDp/twALv9ZAMD/v/9mAJT/zgDc/+QAUwCqAGgAQAD5/8j/X/9j/w7/Nv+A/zv/YACN/yMBFQAyAaUAcAD5AG3/7QDF/oAA6P7S/7X/Nv+EAPH+5AAc/5IAov8EAEcApP/BAMX/6AApAL4AWwBTABgA3P+P/3X/Nv84/3D/Mf85AHn/6QD3/yABhwCUAOQAsP/1APT+nQDl/v3/if9b/1YA/f7JABT/nACB/yIAGACx/5wAuP/cAA0A0ABcAHsALwAGALb/kf9I/0D/V/8p//T/W/+6ANH/HwFsAM0A3ADx//0AFf+xAN/+HABg/3z/LAAQ/7YAFv+vAG3/NQAAAML/fQCq/9EA9v/JAEsAhgBRAB4A5f+l/2f/Tf9J/zH/wf9W/3wAv/8MAUsA5wDHAC4A7gBS/7kA+P5AAEb/rP/9/zH/mgAP/7QAUv9HAND/zP9dAKf/xgDn/9AAQACYAE8ALwDx/73/df9k/0T/Mv+j/2D/XACq//cAJwD0AKAASgDdAGn/xgD3/mAANv/L/+H/Sf+MABb/wgBA/2oAuP/t/z4An/+tAND/zQAkAKkATABPABcA2/+c/3T/Wf86/4z/VP80AJb/zwAOAPUAiQB0ANUArf/WABD/cwAb/+r/rv9k/1kAJP+yADf/hwCe/xMAJgC9/5EAx//IAAMAtQA4AGgAIAD0/8f/i/9x/0r/g/9I/wkAg/+fAPP/4wBzAJEAxQDb/9EAP/+CABT///+F/3z/LgA1/6gARP+eAIr/MgAHAM//cAC0/7AA4/+3ACUAdgAmABEA2f+j/4b/U/+F/0H/4f9y/3kA3//YAFoAswC9ABEA1gBj/5EAG/8LAGT/jv8JADz/jwA9/6sAgP9SAPb/6/9lALv/qgDT/6cACwB0ABwAKQD3/8H/rP9w/4//Sv/Y/2f/VQC8/7EAPAClAK4ALADYAJD/rQAy/zUAV/+n/9j/RP9lADH/lwBt/2sA3v8LAFIAw/+YAM3/qAD9/4AAHwA0AP//1v/E/4X/nP9O/8P/W/8yAKr/mQAkALAAkABUAMkAtf+tAEP/VABB/8z/tv9m/0EAO/+UAFv/hQC+/zIAMQDg/5IAw/+vAOP/iwAPAEcACgDq/9H/lP+l/1j/s/9c/xEAoP95AAsAqQBxAG0AswDp/7UAbf9wAE//9/+S/3n/DQA+/2wASP+IAKX/QwAZAPH/gQDE/7AA2v+SAAQAUgAPAPf/6P+e/7X/Yf+w/2r//P+V/14A7v+YAF0AeACgABIAtgCQ/3kAV/8QAH3/kv/v/0j/XQBI/40Aj/9gAP//AgBnAMv/qADK/6EA+/9pABcACwD//7H/y/9z/7H/Zv/a/5H/KADg/34AQACMAI0AOgCyALf/kgBk/ywAaf+z/8b/Wf83AD3/gABv/3EA6P8iAFkA4v+nAMX/pADr/3YA+f8gAAEAuv/f/3X/x/9e/9X/gf8XAMj/aQArAIAAfwBGALIA1/+eAH//SABw/9P/uf9q/yYAP/9tAGX/WwDL/ycAQADo/54A0P+uAOr/ggAVACsAFQDP/+D/iv/A/2X/xP94/wAAu/9RABQAewBvAFgAnwD3/6EAj/9cAGz/8/+o/4L/FwBH/2UAUv9xAK7/NAAoAPT/iADH/68A1v+MAPv/QAACANr/AwCO/9r/aP/Q/3T/8/+w/zwACAB0AF8AXQCcABIAmgCq/2oAf/8MAKH/oP/7/1f/TABP/2EAnv8+AAYA/v9wAND/qADP/50A9f9XABAA8f8DAKH/4/9x/8z/bv/p/6L/KQD5/2MATQBmAI0AIACaAL//cwCD/xsAlf+w/+L/Y/87AF7/ZQCT/1AA7f8XAFYA2v+ZAMr/mwDt/2MAAAAOAAMArv/u/3j/0v9n/+X/kf8eAOX/XgA3AGgAgAAqAJoA0v95AIf/IQCL/8P/zv9//y4AYv9iAIv/VADh/xsAQgDo/4MAzP+bAOn/dQD9/yIAAADI/+//hf/V/3P/3P+K/xQA2v9JAC0AZgBzADsAlQDl/4EAnv8wAIf/2P/E/4z/FwBm/1cAef9fAMz/JgAtAPH/dgDO/5cA6P98AP3/KwACANv/9v+R/9r/eP/Z/5H//v/G/z0AFABlAFoARwCHAPf/ggCo/0YAg//q/7X/mv8IAGn/TgBx/14Auf8uABwA+P9xAM7/mgDj/4cA/v8/AAIA5v/8/5z/3f+B/9H/kf/3/7//NgABAGgASgBUAH8ACQCKALn/XACF/wUAo/+u//H/cv8+AGr/ZACd/0AABAAJAF4A2P+RAND/kgD5/04AAAD3/wAApf/q/4D/z/+K/+n/tP8fAPj/VwA7AGUAcgAnAIQA0f9pAIz/HgCU/8b/2f9+/zUAZf9jAJH/UADr/xMAUQDi/40AyP+RAOX/WQACAAMABAC7//b/if/V/4X/5P+o/w8A6f9KAC0AZgBpADsAfQDq/2IAmv8vAIf/3P+9/5H/EABt/1IAg/9gAN3/LQA5APz/fgDS/4oA4v9lAPr/HAABANH/8/+c/+H/hv/r/53////U/zQAHABRAFkAQgB/APr/aACz/0EAiv/v/63/n//6/2r/SAB+/18AzP9DACEACQByAOD/hgDQ/2oA7v8yAAEA3//+/6v/4v+M/+j/lv/8/8b/LAAMAEgARwBBAHQAEgBzAMf/TQCX/wAAov+u/+//e/83AH//WgC8/1AADgAcAFsA6P+CAMr/bwDj/zsA+//0/wEAsP/r/43/4/+P//P/tv8XAP7/RAA9AEQAdAAhAHgA3P9WAKX/DACd/7z/1P+I/yAAhP9TALL/VwD6/yEARwDy/3QAzv90AN7/RAAAAP//BAC+//7/lv/j/5D/6/+u/wkA8f83ADAARgBjACkAdwDt/2IAsf8eAKj/z//L/4//CwCB/0QAqf9TAOv/HwA/AO//cQDM/3wA3P9KAP//DQAFAM3/BgCi/+j/l//s/6X/AwDf/yoAHABIAFgAOABzAP//aADC/zUArf/l/8j/mv8EAH3/NgCc/0wA1P8nACgA+v9jANr/fADc/18A/f8aAP7/3P8GAK3/8f+a/+X/oP/1/9H/GQAJAD8AQwA9AGsABwBvANL/RgCu//r/xP+w//r/gf8yAI3/OQDC/yMAGAAAAF8A4P95AN3/ZQAAACUABwDn/wYAuf/6/6b/6f+1/+//z/8TAPv/OQAvAD0AXAAPAG8A3v9LALH/CQC8/7z/9/+H/ygAjP9CALj/JQAMAAAATwDb/3cA1v9xAPv/MwAPAPb/EgDC//b/pf/l/67/5v/I/wYA6f8vACAAQwBOABgAbQDm/1sAtf8ZALr/z//v/5P/IACH/0MArP8vAPH/DAA/AOD/ZwDV/3MA9f9LABYABQAUAM3/9/+s/+X/qP/d/8L//v/k/yIAGQBBAEcAKABoAPH/YgDF/ygAtP/i/93/n/8VAIP/OACb/ywA2v8RADIA8P9jANn/dQDy/1AACAALABkA0v8HAKz/7v+r/9//v//x/97/HAASACwAPAAlAFkACwBmAN3/NwDM//z/2f+1/wMAjf8oAJf/LgDK/xcAHQD4/1YA2v9zAOz/ZAAGAB4ABgDj/wcAsf/6/6X/5/+2/+//1/8TAAoAMwAvACQAUQAPAFgA5P89ANH/BwDZ/8f/9v+Y/x4Ak/8sAL//HQALAPv/SADe/3IA4f9qAP//MwAEAO//CQC6//z/pf/t/7L/6f/Q/wkA/f8tACcAKABUABQAUQDt/zcA0v8TANn/2f/v/6z/FQCM/y4Atv8kAPf/BQA/AOH/ZQDm/2gA+/88AA8A/v8VAMn/+P+m/+n/r//b/8j/+v/y/x4AIwAqAEgAHQBUAPv/OwDY/yIA1v/m/+T/t/8NAJr/KQCp/ykA6f8NACsA7v9bANv/XgDz/0UABwAQABUA1f8BALH/7/+u/+T/xf/0/+7/GwAfAC4APgAiAFUACABDANr/KgDW//D/4f+6/woAo/8kAKX/KwDh/xQAGQDz/1sA3P9aAOz/QgACACIAAgDn/wIAv//1/6n/6f+///L/3f8VAA4ALgA0ACYAVQAOAEgA6/8wANL/AQDc/8b/+f+k/x0Anf8oAND/HwAMAPf/SADw/2AA8v9KAPX/KgD3//H/+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//\", re = {\n general: {\n primaryColor: \"#42b0c5\",\n secondaryColor: \"#491d8d\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n showHeader: !0,\n showFooter: !0,\n showInputRow: !0,\n actionDisabledIcon: ke,\n embedded: !1,\n flowStartTrigger: \"ON_LOAD\"\n },\n tooltip: {\n mode: \"CLOSE\",\n text: \"Talk to me! 😊\"\n },\n chatButton: {\n icon: Ae\n },\n header: {\n title: /* @__PURE__ */ l(\"div\", { style: { cursor: \"pointer\", margin: 0, fontSize: 20, fontWeight: \"bold\" }, onClick: () => window.open(\"https://github.com/tjtanjin/\"), children: \"Tan Jin\" }),\n showAvatar: !0,\n avatar: $A,\n buttons: [Z.NOTIFICATION_BUTTON, Z.AUDIO_BUTTON, Z.CLOSE_CHAT_BUTTON],\n closeChatIcon: je\n },\n notification: {\n disabled: !1,\n defaultToggledOn: !0,\n volume: 0.2,\n icon: Ne,\n iconDisabled: Re,\n sound: $e,\n showCount: !0\n },\n audio: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n voiceNames: [\"Microsoft David - English (United States)\", \"Alex (English - United States)\"],\n rate: 1,\n volume: 1,\n icon: Ve,\n iconDisabled: _e\n },\n chatHistory: {\n disabled: !1,\n maxEntries: 30,\n storageKey: \"rcb-history\",\n storageType: \"LOCAL_STORAGE\",\n viewChatHistoryButtonText: \"Load Chat History ⟳\",\n chatHistoryLineBreakText: \"----- Previous Chat History -----\",\n autoLoad: !1\n },\n chatInput: {\n disabled: !1,\n allowNewline: !1,\n enabledPlaceholderText: \"Type your message...\",\n disabledPlaceholderText: \"\",\n showCharacterCount: !1,\n characterLimit: -1,\n botDelay: 1e3,\n sendButtonIcon: Ge,\n blockSpam: !0,\n sendOptionOutput: !0,\n sendCheckboxOutput: !0,\n buttons: [Z.VOICE_MESSAGE_BUTTON, Z.SEND_MESSAGE_BUTTON]\n },\n chatWindow: {\n showScrollbar: !1,\n showTypingIndicator: !0,\n autoJumpToBottom: !1,\n showMessagePrompt: !0,\n messagePromptText: \"New Messages ↓\",\n messagePromptOffset: 30,\n defaultOpen: !1\n },\n sensitiveInput: {\n maskInTextArea: !0,\n maskInUserBubble: !0,\n asterisksCount: 10,\n hideInUserBubble: !1\n },\n userBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: He,\n simulateStream: !1,\n streamSpeed: 30\n },\n botBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: $A,\n simulateStream: !1,\n streamSpeed: 30\n },\n voice: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n timeoutPeriod: 1e4,\n autoSendDisabled: !1,\n autoSendPeriod: 1e3,\n sendAsAudio: !1,\n icon: Xe,\n iconDisabled: Ke\n },\n footer: {\n text: /* @__PURE__ */ X(\n \"div\",\n {\n style: { cursor: \"pointer\", display: \"flex\", flexDirection: \"row\", alignItems: \"center\", columnGap: 3 },\n onClick: () => window.open(\"https://react-chatbotify.com\"),\n children: [\n /* @__PURE__ */ l(\"span\", { children: \"Powered By \" }, 0),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n borderRadius: \"50%\",\n width: 14,\n height: 14,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: \"linear-gradient(to right, #42b0c5, #491d8d)\"\n },\n children: /* @__PURE__ */ l(Ae, { style: { width: \"80%\", height: \"80%\", fill: \"#fff\" } })\n },\n 1\n ),\n /* @__PURE__ */ l(\"span\", { style: { fontWeight: \"bold\" }, children: \" React ChatBotify\" }, 2)\n ]\n }\n ),\n buttons: [Z.FILE_ATTACHMENT_BUTTON, Z.EMOJI_PICKER_BUTTON]\n },\n fileAttachment: {\n disabled: !1,\n multiple: !0,\n accept: \".png\",\n icon: ee,\n iconDisabled: ee,\n sendFileName: !0,\n showMediaDisplay: !1\n },\n emoji: {\n disabled: !1,\n icon: te,\n iconDisabled: te,\n list: [\"😀\", \"😃\", \"😄\", \"😅\", \"😊\", \"😌\", \"😇\", \"🙃\", \"🤣\", \"😍\", \"🥰\", \"🥳\", \"🎉\", \"🎈\", \"🚀\", \"⭐️\"]\n },\n toast: {\n maxCount: 3,\n forbidOnMax: !1,\n dismissOnClick: !0\n },\n event: {\n rcbPreInjectMessage: !1,\n rcbPostInjectMessage: !1,\n rcbStartSimulateStreamMessage: !1,\n rcbStopSimulateStreamMessage: !1,\n rcbStartStreamMessage: !1,\n rcbChunkStreamMessage: !1,\n rcbStopStreamMessage: !1,\n rcbRemoveMessage: !1,\n rcbLoadChatHistory: !1,\n rcbToggleChatWindow: !1,\n rcbStartSpeakAudio: !1,\n rcbToggleAudio: !1,\n rcbToggleNotifications: !1,\n rcbToggleVoice: !1,\n rcbChangePath: !1,\n rcbShowToast: !1,\n rcbDismissToast: !1,\n rcbUserSubmitText: !1,\n rcbUserUploadFile: !1,\n rcbTextAreaChangeValue: !1,\n rcbPreLoadChatBot: !1,\n rcbPostLoadChatBot: !1,\n rcbPreProcessBlock: !1,\n rcbPostProcessBlock: !1\n },\n ariaLabel: {\n chatButton: \"open chat\",\n audioButton: \"toggle audio\",\n closeChatButton: \"close chat\",\n emojiButton: \"emoji picker\",\n fileAttachmentButton: \"upload file\",\n notificationButton: \"toggle notifications\",\n sendButton: \"send message\",\n voiceButton: \"toggle voice\",\n inputTextArea: \"input text area\"\n },\n device: {\n desktopEnabled: !0,\n mobileEnabled: !0,\n applyMobileOptimizations: !0\n }\n}, ae = vA({ settings: {}, setSettings: () => null }), O = () => PA(ae), At = ({\n children: A,\n settings: e = re,\n setSettings: o\n}) => /* @__PURE__ */ l(ae.Provider, { value: { settings: e, setSettings: o }, children: A }), ce = {\n tooltipStyle: {},\n notificationBadgeStyle: {},\n chatWindowStyle: {},\n headerStyle: {},\n bodyStyle: {},\n chatInputContainerStyle: {},\n chatInputAreaStyle: {},\n chatInputAreaFocusedStyle: {},\n chatInputAreaDisabledStyle: {},\n userBubbleStyle: {},\n botBubbleStyle: {},\n botOptionStyle: {},\n botOptionHoveredStyle: {},\n botCheckboxRowStyle: {},\n botCheckboxNextStyle: {},\n botCheckMarkStyle: {},\n botCheckMarkSelectedStyle: {},\n characterLimitStyle: {},\n characterLimitReachedStyle: {},\n chatHistoryLineBreakStyle: {},\n chatMessagePromptStyle: {},\n chatMessagePromptHoveredStyle: {},\n footerStyle: {},\n loadingSpinnerStyle: {},\n mediaDisplayContainerStyle: {},\n chatButtonStyle: {},\n chatHistoryButtonStyle: {},\n chatHistoryButtonHoveredStyle: {},\n sendButtonStyle: {},\n sendButtonHoveredStyle: {},\n sendButtonDisabledStyle: {},\n audioButtonStyle: {},\n audioButtonDisabledStyle: {},\n closeChatButtonStyle: {},\n emojiButtonStyle: {},\n emojiButtonDisabledStyle: {},\n fileAttachmentButtonStyle: {},\n fileAttachmentButtonDisabledStyle: {},\n notificationButtonStyle: {},\n notificationButtonDisabledStyle: {},\n voiceButtonStyle: {},\n voiceButtonDisabledStyle: {},\n chatIconStyle: {},\n audioIconStyle: {},\n audioIconDisabledStyle: {},\n closeChatIconStyle: {},\n emojiIconStyle: {},\n emojiIconDisabledStyle: {},\n fileAttachmentIconStyle: {},\n fileAttachmentIconDisabledStyle: {},\n notificationIconStyle: {},\n notificationIconDisabledStyle: {},\n voiceIconStyle: {},\n voiceIconDisabledStyle: {},\n sendIconStyle: {},\n sendIconDisabledStyle: {},\n sendIconHoveredStyle: {},\n rcbTypingIndicatorContainerStyle: {},\n rcbTypingIndicatorDotStyle: {},\n toastPromptContainerStyle: {},\n toastPromptStyle: {},\n toastPromptHoveredStyle: {}\n}, ie = vA({ styles: {}, setStyles: () => null }), Y = () => PA(ie), et = ({\n children: A,\n styles: e = ce,\n setStyles: o\n}) => /* @__PURE__ */ l(ie.Provider, { value: { styles: e, setStyles: o }, children: A }), tt = ({ buttons: A }) => {\n var n, s, a, r, c;\n const { settings: e } = O(), { styles: o } = Y(), t = {\n backgroundImage: `linear-gradient(to right, ${(n = e.general) == null ? void 0 : n.secondaryColor},\n\t\t\t${(s = e.general) == null ? void 0 : s.primaryColor})`,\n ...o.headerStyle\n };\n return /* @__PURE__ */ X(\"div\", { style: t, className: \"rcb-chat-header-container\", children: [\n /* @__PURE__ */ X(\"div\", { className: \"rcb-chat-header\", children: [\n ((a = e.header) == null ? void 0 : a.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(r = e.header) == null ? void 0 : r.avatar}\")` },\n className: \"rcb-bot-avatar\"\n }\n ),\n (c = e.header) == null ? void 0 : c.title\n ] }),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-header\", children: A == null ? void 0 : A.map(\n (i, u) => /* @__PURE__ */ l(RA, { children: i }, u)\n ) })\n ] });\n}, le = vA({}), AA = () => PA(le), ot = ({\n children: A,\n botIdRef: e,\n flowRef: o\n}) => {\n const t = eA(null), n = eA(\"\"), s = eA(null), a = eA(/* @__PURE__ */ new Map()), r = eA(null), c = eA(\"\"), i = eA(!1), u = eA(null), f = eA(null), d = eA(null);\n return /* @__PURE__ */ l(le.Provider, { value: {\n botIdRef: e,\n flowRef: o,\n inputRef: t,\n timeoutIdRef: s,\n streamMessageMap: a,\n chatBodyRef: r,\n paramsInputRef: c,\n keepVoiceOnRef: i,\n audioContextRef: u,\n audioBufferRef: f,\n gainNodeRef: d,\n prevInputRef: n\n }, children: A });\n}, rA = (A) => {\n const [e, o] = R(A), t = eA(A);\n return [e, (s) => {\n const a = typeof s == \"function\" ? s(t.current) : s;\n t.current = a, o(a);\n }, t];\n}, ue = vA({}), tA = () => PA(ue), nt = ({\n children: A,\n settings: e\n}) => {\n var nA, wA, qA, JA, VA, ZA;\n const [o, t, n] = rA(!1), [s, a, r] = rA(\n ((nA = e == null ? void 0 : e.chatWindow) == null ? void 0 : nA.defaultOpen) ?? !1\n ), [c, i, u] = rA(\n ((wA = e == null ? void 0 : e.audio) == null ? void 0 : wA.defaultToggledOn) ?? !1\n ), [f, d, w] = rA(\n ((qA = e == null ? void 0 : e.voice) == null ? void 0 : qA.defaultToggledOn) ?? !1\n ), [\n g,\n B,\n D\n ] = rA(\n ((JA = e == null ? void 0 : e.notification) == null ? void 0 : JA.defaultToggledOn) ?? !0\n ), [b, P] = R(!1), [C, Q] = R(!1), [m, v, y] = rA(!1), [E, S, p] = rA(!0), [\n h,\n T,\n M\n ] = rA(!1), [I, j] = R(!1), [z, L] = R(!1), [W, J] = R(0), [F, N] = R(0), [K, x] = R(!1), [U, G] = R(((VA = window.visualViewport) == null ? void 0 : VA.height) ?? window.innerHeight), [_, $] = R(((ZA = window.visualViewport) == null ? void 0 : ZA.width) ?? window.innerWidth);\n return /* @__PURE__ */ l(ue.Provider, { value: {\n isBotTyping: o,\n setSyncedIsBotTyping: t,\n syncedIsBotTypingRef: n,\n isChatWindowOpen: s,\n setSyncedIsChatWindowOpen: a,\n syncedIsChatWindowOpenRef: r,\n audioToggledOn: c,\n setSyncedAudioToggledOn: i,\n syncedAudioToggledOnRef: u,\n voiceToggledOn: f,\n setSyncedVoiceToggledOn: d,\n syncedVoiceToggledOnRef: w,\n notificationsToggledOn: g,\n setSyncedNotificationsToggledOn: B,\n syncedNotificationsToggledOnRef: D,\n isLoadingChatHistory: b,\n setIsLoadingChatHistory: P,\n hasChatHistoryLoaded: C,\n setHasChatHistoryLoaded: Q,\n isScrolling: m,\n setSyncedIsScrolling: v,\n syncedIsScrollingRef: y,\n textAreaDisabled: E,\n setSyncedTextAreaDisabled: S,\n syncedTextAreaDisabledRef: p,\n textAreaSensitiveMode: h,\n setSyncedTextAreaSensitiveMode: T,\n syncedTextAreaSensitiveModeRef: M,\n hasInteractedPage: I,\n setHasInteractedPage: j,\n hasFlowStarted: z,\n setHasFlowStarted: L,\n unreadCount: W,\n setUnreadCount: J,\n inputLength: F,\n setInputLength: N,\n blockAllowsAttachment: K,\n setBlockAllowsAttachment: x,\n viewportHeight: U,\n setViewportHeight: G,\n viewportWidth: _,\n setViewportWidth: $\n }, children: A });\n};\nvar k = /* @__PURE__ */ ((A) => (A.START_SPEAK_AUDIO = \"rcb-start-speak-audio\", A.TOGGLE_AUDIO = \"rcb-toggle-audio\", A.TOGGLE_NOTIFICATIONS = \"rcb-toggle-notifications\", A.TOGGLE_VOICE = \"rcb-toggle-voice\", A.TOGGLE_CHAT_WINDOW = \"rcb-toggle-chat-window\", A.PRE_INJECT_MESSAGE = \"rcb-pre-inject-message\", A.POST_INJECT_MESSAGE = \"rcb-post-inject-message\", A.START_SIMULATE_STREAM_MESSAGE = \"rcb-start-simulate-stream-message\", A.STOP_SIMULATE_STREAM_MESSAGE = \"rcb-stop-simulate-stream-message\", A.START_STREAM_MESSAGE = \"rcb-start-stream-message\", A.CHUNK_STREAM_MESSAGE = \"rcb-chunk-stream-message\", A.STOP_STREAM_MESSAGE = \"rcb-stop-stream-message\", A.REMOVE_MESSAGE = \"rcb-remove-message\", A.LOAD_CHAT_HISTORY = \"rcb-load-chat-history\", A.CHANGE_PATH = \"rcb-change-path\", A.SHOW_TOAST = \"rcb-show-toast\", A.DISMISS_TOAST = \"rcb-dismiss-toast\", A.USER_SUBMIT_TEXT = \"rcb-user-submit-text\", A.USER_UPLOAD_FILE = \"rcb-user-upload-file\", A.TEXT_AREA_CHANGE_VALUE = \"rcb-text-area-change-value\", A.PRE_LOAD_CHATBOT = \"rcb-pre-load-chatbot\", A.POST_LOAD_CHATBOT = \"rcb-post-load-chatbot\", A.PRE_PROCESS_BLOCK = \"rcb-pre-process-block\", A.POST_PROCESS_BLOCK = \"rcb-post-process-block\", A))(k || {});\nconst st = {\n [k.START_SPEAK_AUDIO]: !0,\n [k.TOGGLE_AUDIO]: !0,\n [k.TOGGLE_VOICE]: !0,\n [k.TOGGLE_NOTIFICATIONS]: !0,\n [k.TOGGLE_CHAT_WINDOW]: !0,\n [k.PRE_INJECT_MESSAGE]: !0,\n [k.POST_INJECT_MESSAGE]: !1,\n [k.PRE_LOAD_CHATBOT]: !0,\n [k.POST_LOAD_CHATBOT]: !1,\n [k.START_SIMULATE_STREAM_MESSAGE]: !0,\n [k.STOP_SIMULATE_STREAM_MESSAGE]: !1,\n [k.START_STREAM_MESSAGE]: !0,\n [k.CHUNK_STREAM_MESSAGE]: !0,\n [k.STOP_STREAM_MESSAGE]: !0,\n [k.REMOVE_MESSAGE]: !0,\n [k.LOAD_CHAT_HISTORY]: !0,\n [k.CHANGE_PATH]: !0,\n [k.SHOW_TOAST]: !0,\n [k.DISMISS_TOAST]: !0,\n [k.USER_SUBMIT_TEXT]: !0,\n [k.USER_UPLOAD_FILE]: !0,\n [k.TEXT_AREA_CHANGE_VALUE]: !0,\n [k.PRE_PROCESS_BLOCK]: !0,\n [k.POST_PROCESS_BLOCK]: !0\n}, NA = async (A, e, o) => {\n const t = new CustomEvent(A, {\n detail: e,\n cancelable: st[A]\n });\n return t.data = o, t.promises = [], window.dispatchEvent(t), await Promise.all(t.promises), t;\n}, fe = vA({\n paths: [],\n setSyncedPaths: () => {\n },\n syncedPathsRef: { current: [] }\n}), mA = () => PA(fe), rt = ({ children: A }) => {\n const [e, o, t] = rA([]);\n return /* @__PURE__ */ l(fe.Provider, { value: { paths: e, setSyncedPaths: o, syncedPathsRef: t }, children: A });\n}, iA = () => {\n const { botIdRef: A } = AA(), { syncedPathsRef: e } = mA(), o = H(() => e.current.length > 0 ? e.current.at(-1) ?? null : null, []), t = H(() => e.current.length > 1 ? e.current.at(-2) ?? null : null, []);\n return { dispatchRcbEvent: H(async (s, a) => {\n const r = { botId: A.current, currPath: o(), prevPath: t() };\n return await NA(s, r, a);\n }, [A]) };\n}, sA = () => {\n const { settings: A } = O(), {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n setUnreadCount: r,\n setSyncedIsBotTyping: c,\n setSyncedIsScrolling: i,\n syncedIsBotTypingRef: u,\n syncedIsChatWindowOpenRef: f\n } = tA(), { chatBodyRef: d } = AA(), { dispatchRcbEvent: w } = iA(), g = H(async (P) => {\n var C;\n P !== f.current && ((C = A.event) != null && C.rcbToggleChatWindow && (await w(\n k.TOGGLE_CHAT_WINDOW,\n {\n currState: f.current,\n newState: !f.current\n }\n )).defaultPrevented || o((Q) => (Q || r(0), !Q)));\n }, [f]), B = H(async (P) => {\n P !== u.current && c((C) => !C);\n }, [u]), D = H((P, C, Q, m) => (P /= m / 2, P < 1 ? Q / 2 * P * P + C : (P--, -Q / 2 * (P * (P - 2) - 1) + C)), []), b = H((P = 0) => {\n if (!d.current)\n return;\n const C = d.current.scrollHeight - d.current.clientHeight;\n if (P <= 0) {\n d.current.scrollTop = C, i(!1);\n return;\n }\n const Q = d.current.scrollTop, m = C - Q, v = 20;\n let y = 0;\n const E = () => {\n if (!d.current)\n return;\n y += v;\n const S = D(y, Q, m, P);\n d.current.scrollTop = S, y < P ? requestAnimationFrame(E) : i(!1);\n };\n E();\n }, [d]);\n return {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n toggleChatWindow: g,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n toggleIsBotTyping: B,\n scrollToBottom: b\n };\n}, at = () => {\n var d, w, g;\n const { settings: A } = O(), { styles: e } = Y(), { unreadCount: o, isScrolling: t } = tA(), { chatBodyRef: n } = AA(), { scrollToBottom: s } = sA(), [a, r] = R(!1), c = {\n color: (d = A.general) == null ? void 0 : d.primaryColor,\n borderColor: (w = A.general) == null ? void 0 : w.primaryColor,\n ...e.chatMessagePromptHoveredStyle\n }, i = () => {\n r(!0);\n }, u = () => {\n r(!1);\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-message-prompt-container ${(() => {\n var D;\n return n.current && ((D = A.chatWindow) == null ? void 0 : D.showMessagePrompt) && t && o > 0 ? \"visible\" : \"hidden\";\n })()}`, children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: i,\n onMouseLeave: u,\n style: a ? c : { ...e.chatMessagePromptStyle },\n onMouseDown: (B) => {\n B.preventDefault(), s(600);\n },\n className: \"rcb-message-prompt-text\",\n children: (g = A.chatWindow) == null ? void 0 : g.messagePromptText\n }\n ) });\n}, de = vA({\n messages: [],\n setSyncedMessages: () => {\n },\n syncedMessagesRef: { current: [] }\n}), FA = () => PA(de), ct = ({ children: A }) => {\n const [e, o, t] = rA([]);\n return /* @__PURE__ */ l(de.Provider, { value: { messages: e, setSyncedMessages: o, syncedMessagesRef: t }, children: A });\n}, it = ({\n message: A,\n isNewSender: e\n}) => {\n var f, d, w, g, B, D;\n const { settings: o } = O(), { styles: t } = Y(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (f = o.general) == null ? void 0 : f.primaryColor,\n color: \"#fff\",\n maxWidth: (d = o.userBubble) != null && d.showAvatar ? \"65%\" : \"70%\",\n ...t.userBubbleStyle\n }, c = (w = o.userBubble) != null && w.animate ? \"rcb-user-message-entry\" : \"\", i = ((g = o.userBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-user-message${!e && ((B = o.userBubble) != null && B.showAvatar) ? \" rcb-user-message-offset\" : \"\"}`;\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-user-message-container\", children: [\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(oA, { children: a }),\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(D = o.userBubble) == null ? void 0 : D.avatar}\")` },\n className: \"rcb-message-user-avatar\"\n }\n )\n ] });\n}, lt = ({\n message: A,\n isNewSender: e\n}) => {\n var f, d, w, g, B, D;\n const { settings: o } = O(), { styles: t } = Y(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (f = o.general) == null ? void 0 : f.secondaryColor,\n color: \"#fff\",\n maxWidth: (d = o.botBubble) != null && d.showAvatar ? \"65%\" : \"70%\",\n ...t.botBubbleStyle\n }, c = (w = o.botBubble) != null && w.animate ? \"rcb-bot-message-entry\" : \"\", i = ((g = o.botBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-bot-message${!e && ((B = o.botBubble) != null && B.showAvatar) ? \" rcb-bot-message-offset\" : \"\"}`;\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-bot-message-container\", children: [\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(D = o.botBubble) == null ? void 0 : D.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(oA, { children: a })\n ] });\n}, ut = () => {\n var t, n, s;\n const { settings: A } = O(), { styles: e } = Y(), o = (t = A.botBubble) != null && t.animate ? \"rcb-bot-message-entry\" : \"\";\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-bot-message-container\", children: [\n ((n = A.botBubble) == null ? void 0 : n.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(s = A.botBubble) == null ? void 0 : s.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (a) => {\n a.preventDefault();\n },\n className: `rcb-bot-message ${o}`,\n children: /* @__PURE__ */ X(\"div\", { className: \"rcb-typing-indicator\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorContainerStyle }, children: [\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } })\n ] })\n }\n )\n ] });\n}, ft = () => {\n var i, u, f;\n const { settings: A } = O(), { styles: e } = Y(), { messages: o } = FA(), { scrollToBottom: t } = sA(), {\n isBotTyping: n,\n syncedIsScrollingRef: s\n } = tA(), { chatBodyRef: a } = AA(), r = {\n ...e == null ? void 0 : e.bodyStyle,\n scrollbarWidth: (i = A.chatWindow) != null && i.showScrollbar ? \"auto\" : \"none\"\n };\n V(() => {\n s.current || t();\n }, [(u = a.current) == null ? void 0 : u.scrollHeight]);\n const c = (d) => d === 0 ? !0 : o[d].sender !== o[d - 1].sender;\n return /* @__PURE__ */ X(\n \"div\",\n {\n style: r,\n className: \"rcb-chat-body-container\",\n ref: a,\n children: [\n o.map((d, w) => {\n const g = c(w);\n return d.sender.toUpperCase() === \"USER\" ? /* @__PURE__ */ l(it, { message: d, isNewSender: g }, w) : d.sender.toUpperCase() === \"BOT\" ? /* @__PURE__ */ l(lt, { message: d, isNewSender: g }, w) : /* @__PURE__ */ l(\"div\", { children: d.content }, w);\n }),\n n && ((f = A.chatWindow) == null ? void 0 : f.showTypingIndicator) && /* @__PURE__ */ l(ut, {}),\n /* @__PURE__ */ l(at, {})\n ]\n }\n );\n}, dt = ({\n checkboxes: A,\n checkedItems: e,\n path: o\n}) => {\n var D, b, P, C, Q, m, v, y, E, S, p;\n const { settings: t } = O(), { styles: n } = Y(), { paths: s } = mA(), { handleSubmitText: a } = yA(), [r, c] = R(/* @__PURE__ */ new Set()), [i, u] = R(!1), f = {\n cursor: i ? `url(\"${(D = t.general) == null ? void 0 : D.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (b = t.general) == null ? void 0 : b.primaryColor,\n borderColor: (P = t.general) == null ? void 0 : P.primaryColor,\n ...n.botCheckboxRowStyle\n }, d = {\n cursor: i || r.size < A.min ? `url(\"${(C = t.general) == null ? void 0 : C.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (Q = t.general) == null ? void 0 : Q.primaryColor,\n borderColor: (m = t.general) == null ? void 0 : m.primaryColor,\n ...n.botCheckboxNextStyle\n }, w = {\n cursor: i ? `url(\"${(v = t.general) == null ? void 0 : v.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"transparent\",\n ...n.botCheckMarkStyle\n }, g = {\n cursor: i ? `url(\"${(y = t.general) == null ? void 0 : y.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"#fff\",\n borderColor: (E = t.general) == null ? void 0 : E.primaryColor,\n backgroundColor: (S = t.general) == null ? void 0 : S.primaryColor,\n ...n.botCheckMarkSelectedStyle\n };\n V(() => {\n s.length > 0 && s[s.length - 1] !== o && u(!A.reusable);\n }, [s]);\n const B = (h) => {\n i || c((T) => {\n const M = new Set(T);\n if (M.has(h))\n e.delete(h), M.delete(h);\n else {\n if (r.size == A.max)\n return T;\n e.add(h), M.add(h);\n }\n return M;\n });\n };\n return /* @__PURE__ */ X(\"div\", { className: `rcb-checkbox-container ${(p = t.botBubble) != null && p.showAvatar ? \"rcb-checkbox-offset\" : \"\"}`, children: [\n A.items.map((h) => /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (T) => {\n T.preventDefault(), B(h);\n },\n style: f,\n className: \"rcb-checkbox-row-container\",\n children: /* @__PURE__ */ X(\"div\", { className: \"rcb-checkbox-row\", children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n style: r.has(h) ? g : w,\n className: \"rcb-checkbox-mark\"\n }\n ),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-checkbox-label\", children: h })\n ] })\n },\n h\n )),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: d,\n className: \"rcb-checkbox-next-button\",\n onMouseDown: (h) => {\n var I;\n if (h.preventDefault(), i || r.size < A.min)\n return;\n const T = Array.from(e).join(\", \");\n u(!A.reusable);\n let M;\n A.sendOutput != null ? M = A.sendOutput : M = ((I = t.chatInput) == null ? void 0 : I.sendCheckboxOutput) ?? !0, a(T, M);\n }\n }\n )\n ] });\n}, wt = async (A, e) => {\n const o = A.checkboxes;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.min == null && (t.min = 1), t.max == null && (t.max = t.items.length), t.min > t.max && (t.min = t.max), t.reusable == null && (t.reusable = !1);\n const n = /* @__PURE__ */ new Set(), s = e.currPath, a = /* @__PURE__ */ l(dt, { checkboxes: t, checkedItems: n, path: s });\n await e.injectMessage(a);\n}, gt = async (A, e) => {\n const o = A.function;\n if (!o)\n return;\n const t = o(e);\n return t instanceof Promise ? await t : t;\n}, Bt = async (A, e, o) => {\n const t = A.message;\n if (!t)\n return;\n if (typeof t == \"string\") {\n t.trim() !== \"\" && (o ? await e.simulateStreamMessage(t) : await e.injectMessage(t));\n return;\n }\n let n = t(e);\n n instanceof Promise && (n = await n), typeof n == \"string\" && n.trim() !== \"\" && (o ? await e.simulateStreamMessage(n) : await e.injectMessage(n));\n}, vt = ({\n options: A,\n path: e\n}) => {\n var g, B, D, b, P, C;\n const { settings: o } = O(), { styles: t } = Y(), { paths: n } = mA(), { handleSubmitText: s } = yA(), [a, r] = R([]), [c, i] = R(!1), u = {\n cursor: c ? `url(\"${(g = o.general) == null ? void 0 : g.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (B = o.general) == null ? void 0 : B.primaryColor,\n borderColor: (D = o.general) == null ? void 0 : D.primaryColor,\n backgroundColor: \"#fff\",\n ...t.botOptionStyle\n }, f = {\n color: \"#fff\",\n borderColor: (b = o.general) == null ? void 0 : b.primaryColor,\n backgroundColor: (P = o.general) == null ? void 0 : P.primaryColor,\n ...t.botOptionHoveredStyle\n };\n V(() => {\n n.length > 0 && n[n.length - 1] !== e && i(!A.reusable);\n }, [n]);\n const d = (Q) => {\n r((m) => {\n const v = [...m];\n return v[Q] = !0, v;\n });\n }, w = (Q) => {\n r((m) => {\n const v = [...m];\n return v[Q] = !1, v;\n });\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-options-container ${(C = o.botBubble) != null && C.showAvatar ? \"rcb-options-offset\" : \"\"}`, children: A.items.map((Q, m) => {\n const v = a[m] && !c;\n return /* @__PURE__ */ l(\n \"div\",\n {\n className: \"rcb-options\",\n style: v ? f : u,\n onMouseEnter: () => d(m),\n onMouseLeave: () => w(m),\n onMouseDown: (y) => {\n var S;\n if (y.preventDefault(), c)\n return;\n i(!A.reusable);\n let E;\n A.sendOutput != null ? E = A.sendOutput : E = ((S = o.chatInput) == null ? void 0 : S.sendOptionOutput) ?? !0, s(Q, E);\n },\n children: Q\n },\n Q\n );\n }) });\n}, Pt = async (A, e) => {\n const o = A.options;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.reusable == null && (t.reusable = !1);\n const n = e.currPath, s = /* @__PURE__ */ l(vt, { options: t, path: n });\n await e.injectMessage(s);\n}, ht = async (A, e) => {\n const o = A.path;\n if (!o)\n return !1;\n if (typeof o == \"string\")\n return await e.goToPath(o), !0;\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return !1;\n const n = t;\n return await e.goToPath(n), !0;\n}, Dt = async (A, e) => {\n const o = A.component;\n if (o) {\n if (typeof o == \"function\") {\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return;\n await e.injectMessage(t);\n return;\n }\n await e.injectMessage(o);\n }\n}, Et = async (A, e, o, t) => {\n const n = A.transition;\n let s;\n if (typeof n == \"function\" ? (s = n(e), s instanceof Promise && (s = await s)) : s = n, typeof s == \"number\" && (s = { duration: s }), !s || s instanceof Promise || s.duration == null || typeof s.duration != \"number\")\n return;\n s.interruptable == null && (s.interruptable = !1);\n const a = setTimeout(async () => {\n const r = await t(A);\n r && await ge(r, e);\n }, s.duration);\n s.interruptable && (o.current = a);\n}, yt = async (A, e, o) => {\n const t = A.chatDisabled;\n if (t == null)\n return;\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, we = async (A, e, o) => {\n const t = A.isSensitive;\n if (!t) {\n o(!1);\n return;\n }\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, Ct = async (A, e, o, t, n, s, a) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n for (const r of Object.keys(A))\n switch (r) {\n case \"message\":\n await Bt(A, e, o);\n break;\n case \"options\":\n await Pt(A, e);\n break;\n case \"checkboxes\":\n await wt(A, e);\n break;\n case \"component\":\n await Dt(A, e);\n break;\n case \"chatDisabled\":\n await yt(A, e, n);\n break;\n case \"isSensitive\":\n await we(A, e, s);\n break;\n case \"transition\":\n await Et(A, e, t, a);\n }\n}, ge = async (A, e) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n const o = Object.keys(A);\n for (const t of o)\n t === \"function\" && await gt(A, e);\n o.includes(\"path\") && await ht(A, e);\n}, mt = () => {\n var o;\n const { settings: A } = O(), { styles: e } = Y();\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-line-break-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n style: { ...e.chatHistoryLineBreakStyle },\n className: \"rcb-line-break-text\",\n \"data-testid\": \"chat-history-line-break-text\",\n children: (o = A.chatHistory) == null ? void 0 : o.chatHistoryLineBreakText\n }\n ) });\n}, Qt = () => {\n var t;\n const { settings: A } = O(), { styles: e } = Y(), o = {\n borderTop: `4px solid ${(t = A.general) == null ? void 0 : t.primaryColor}`,\n ...e.loadingSpinnerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-spinner-container\", children: /* @__PURE__ */ l(\"div\", { style: o, className: \"rcb-spinner\" }) });\n}, SA = () => {\n try {\n if (typeof crypto < \"u\" && typeof crypto.randomUUID == \"function\")\n return crypto.randomUUID();\n throw new Error(\"crypto.randomUUID not available\");\n } catch (A) {\n if (typeof crypto < \"u\" && typeof crypto.getRandomValues == \"function\")\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(e) {\n const o = crypto.getRandomValues(new Uint8Array(1))[0] % 16;\n return (e === \"x\" ? o : o & 3 | 8).toString(16);\n });\n throw console.error(A), new Error(\"crypto.getRandomValues is also not available\");\n }\n}, gA = (A, e) => ({\n id: SA(),\n content: A,\n sender: e,\n type: typeof A == \"string\" ? \"string\" : \"object\",\n timestamp: (/* @__PURE__ */ new Date()).toUTCString(),\n tags: []\n});\nlet dA, Be = !1, IA = \"rcb-history\", bA = 30, ve = !1, CA = [];\nconst HA = async (A) => {\n if (ve || !dA)\n return;\n const e = [], o = Be ? CA.length : 0;\n for (let n = A.length - 1; n >= o; n--) {\n const s = A[n];\n if (s.sender.toUpperCase() !== \"SYSTEM\" && (s.content !== \"\" && e.unshift(s), e.length === bA))\n break;\n }\n let t = e.map(It);\n if (t.length < bA) {\n const n = bA - t.length;\n t = [...CA.slice(-n), ...t];\n }\n Pe(t);\n}, bt = (A) => {\n if (A != null)\n try {\n return JSON.parse(A);\n } catch {\n return [];\n }\n return [];\n}, jA = () => CA, pt = (A) => {\n Pe(A), CA = A;\n}, Pe = (A) => {\n dA && dA.setItem(IA, JSON.stringify(A));\n}, St = () => {\n dA && dA.removeItem(IA);\n}, UA = (A) => {\n var e, o, t, n, s;\n ((o = (e = A.chatHistory) == null ? void 0 : e.storageType) == null ? void 0 : o.toUpperCase()) === \"SESSION_STORAGE\" ? dA = sessionStorage : dA = localStorage, IA = (t = A.chatHistory) == null ? void 0 : t.storageKey, bA = (n = A.chatHistory) == null ? void 0 : n.maxEntries, ve = (s = A.chatHistory) == null ? void 0 : s.disabled, CA = bt(dA.getItem(IA));\n}, It = (A) => se(A.content) ? structuredClone({\n id: A.id,\n content: Me.renderToString(A.content),\n type: A.type,\n sender: A.sender.toUpperCase(),\n timestamp: A.timestamp,\n tags: A.tags\n}) : A, Tt = (A, e, o, t, n, s, a, r, c) => {\n var i;\n if (Be = !0, o != null)\n try {\n const u = gA(/* @__PURE__ */ l(Qt, {}), \"SYSTEM\"), f = n.current.slice(1);\n t([u, ...f]);\n const d = o.map((w) => {\n if (w.type === \"object\") {\n const g = he(w.content, A, e);\n return { ...w, content: g };\n }\n return w;\n });\n setTimeout(() => {\n var B;\n const w = n.current.slice(1);\n let g = (B = A.chatHistory) != null && B.autoLoad ? gA(/* @__PURE__ */ l(oA, {}), \"SYSTEM\") : gA(/* @__PURE__ */ l(mt, {}), \"SYSTEM\");\n t([...d, g, ...w]), c(!0);\n }, 500), setTimeout(() => {\n if (!s.current)\n return;\n const { scrollHeight: w } = s.current, g = w - a;\n s.current.scrollTop += g, r(!1);\n }, 510);\n } catch {\n dA.removeItem((i = A.chatHistory) == null ? void 0 : i.storageKey);\n }\n}, he = (A, e, o) => {\n const n = new DOMParser().parseFromString(A, \"text/html\");\n return Array.from(n.body.childNodes).map((r, c) => {\n var i;\n if (r.nodeType === Node.TEXT_NODE)\n return r.textContent;\n {\n const u = r.tagName.toLowerCase();\n let f = Array.from(r.attributes).reduce((w, g) => {\n const B = g.name.toLowerCase();\n if (B === \"style\") {\n const D = g.value.split(\";\").filter((P) => P.trim() !== \"\"), b = {};\n D.forEach((P) => {\n const [C, Q] = P.split(\":\").map((v) => v.trim()), m = C.replace(/-([a-z])/g, (v, y) => y.toUpperCase());\n b[m] = Q;\n }), w[B] = b;\n } else (u === \"audio\" || u === \"video\") && B === \"controls\" && g.value === \"\" ? w[B] = \"true\" : w[B] = g.value;\n return w;\n }, {});\n if (Object.prototype.hasOwnProperty.call(f, \"class\")) {\n const w = r.classList;\n f.className = w.toString(), delete f.class, (i = e.botBubble) != null && i.showAvatar && (f = Mt(w, f)), f = kt(w, f, e, o), f = Ht(w, f, e, o), f = xt(w, f, e, o), f = Ot(w, f, e, o);\n }\n if ([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"link\",\n \"meta\",\n \"source\",\n \"track\",\n \"wbr\"\n ].includes(u))\n return _A(u, { key: c, ...f });\n {\n const w = he(r.innerHTML, e, o);\n return _A(u, { key: c, ...f }, ...w);\n }\n }\n });\n}, Mt = (A, e) => ((A.contains(\"rcb-options-container\") || A.contains(\"rcb-checkbox-container\")) && (e.className = `${A.toString()} rcb-options-offset`), e), kt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-options\") && (e.style = {\n ...e.style,\n color: ((n = t.botOptionStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botOptionStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botOptionStyle\n }), e;\n}, Ht = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-row-container\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxRowStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxRowStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxRowStyle\n }), e;\n}, xt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-next-button\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxNextStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxNextStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxNextStyle\n }), e;\n}, Ot = (A, e, o, t) => {\n var n, s;\n return (A.contains(\"rcb-media-display-image-container\") || A.contains(\"rcb-media-display-video-container\")) && (e.style = {\n ...e.style,\n backgroundColor: (n = o.general) == null ? void 0 : n.primaryColor,\n maxWidth: (s = o.userBubble) != null && s.showAvatar ? \"65%\" : \"70%\",\n ...t.mediaDisplayContainerStyle\n }), e;\n}, De = (A) => {\n if (!A)\n return !1;\n const e = A.getBoundingClientRect(), o = window.innerHeight ?? document.documentElement.clientHeight, t = window.innerWidth ?? document.documentElement.clientWidth;\n return e.top >= 0 && e.left >= 0 && e.bottom <= o && e.right <= t;\n}, zA = () => {\n const { settings: A } = O(), {\n notificationsToggledOn: e,\n setSyncedNotificationsToggledOn: o,\n hasInteractedPage: t,\n unreadCount: n,\n setUnreadCount: s,\n syncedNotificationsToggledOnRef: a\n } = tA(), { audioBufferRef: r, audioContextRef: c, gainNodeRef: i } = AA(), { dispatchRcbEvent: u } = iA(), f = H(async () => {\n var b, P;\n const g = (b = A.notification) == null ? void 0 : b.sound;\n c.current = new AudioContext();\n const B = c.current.createGain();\n B.gain.value = ((P = A.notification) == null ? void 0 : P.volume) ?? 0.2, i.current = B;\n let D;\n if (g != null && g.startsWith(\"data:audio\")) {\n const C = atob(g.split(\",\")[1]), Q = new ArrayBuffer(C.length), m = new Uint8Array(Q);\n for (let v = 0; v < C.length; v++)\n m[v] = C.charCodeAt(v);\n D = Q;\n } else\n D = await (await fetch(g)).arrayBuffer();\n r.current = await c.current.decodeAudioData(D);\n }, [A.notification]), d = H(() => {\n var B;\n if ((B = A.notification) != null && B.disabled || !a.current || !t || !c.current || !r.current)\n return;\n const g = c.current.createBufferSource();\n g.buffer = r.current, g.connect(i.current).connect(c.current.destination), g.start();\n }, [\n A.notification,\n a,\n t,\n c,\n r,\n i\n ]), w = H(async (g) => {\n var B;\n g !== a.current && ((B = A.event) != null && B.rcbToggleNotifications && (await u(\n k.TOGGLE_NOTIFICATIONS,\n {\n currState: a.current,\n newState: !a.current\n }\n )).defaultPrevented || o((D) => !D));\n }, [a]);\n return {\n unreadCount: n,\n setUnreadCount: s,\n notificationsToggledOn: e,\n toggleNotifications: w,\n playNotificationSound: d,\n setUpNotifications: f\n };\n}, Lt = (A, e, o, t, n) => {\n if (!window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const s = new window.SpeechSynthesisUtterance();\n s.text = A, s.lang = e, s.rate = t, s.volume = n;\n let a = !1;\n for (const r of o)\n if (window.speechSynthesis.getVoices().find((c) => {\n if (c.name === r) {\n s.voice = c, window.speechSynthesis.speak(s), a = !0;\n return;\n }\n }), a)\n break;\n a || window.speechSynthesis.speak(s);\n}, Nt = (A, e) => {\n var o, t, n, s;\n Lt(\n e,\n (o = A.audio) == null ? void 0 : o.language,\n (t = A.audio) == null ? void 0 : t.voiceNames,\n (n = A.audio) == null ? void 0 : n.rate,\n (s = A.audio) == null ? void 0 : s.volume\n );\n}, GA = () => {\n const { settings: A } = O(), { audioToggledOn: e, setSyncedAudioToggledOn: o, syncedAudioToggledOnRef: t } = tA(), { dispatchRcbEvent: n } = iA(), s = H(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleAudio && (await n(\n k.TOGGLE_AUDIO,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = H(async (r) => {\n var i, u;\n if ((i = A.audio) != null && i.disabled || !t.current)\n return;\n let c = r;\n if ((u = A.event) != null && u.rcbStartSpeakAudio) {\n const f = await n(k.START_SPEAK_AUDIO, { textToRead: c });\n if (f.defaultPrevented)\n return;\n c = f.data.textToRead;\n }\n Nt(A, c);\n }, [A, t]);\n return {\n audioToggledOn: e,\n speakAudio: a,\n toggleAudio: s\n };\n}, hA = () => {\n var v, y;\n const { settings: A } = O(), { messages: e, setSyncedMessages: o, syncedMessagesRef: t } = FA(), {\n setSyncedIsBotTyping: n,\n setUnreadCount: s,\n syncedIsScrollingRef: a,\n syncedIsChatWindowOpenRef: r\n } = tA(), { streamMessageMap: c, chatBodyRef: i, paramsInputRef: u } = AA(), { scrollToBottom: f } = sA(), { dispatchRcbEvent: d } = iA(), { speakAudio: w } = GA(), { playNotificationSound: g } = zA(), B = H((E, S = !1) => {\n var M, I;\n HA(E);\n let p = !0;\n const h = E[E.length - 1];\n if (!h)\n return;\n const T = h.sender.toUpperCase();\n T === \"USER\" && (p = !1), (M = A.general) != null && M.embedded && De(i.current) && (p = !1), (r.current && !a.current || S) && (p = !1), p && g(), !S && (T !== \"USER\" && ((I = A.chatWindow) != null && I.autoJumpToBottom) || T === \"USER\" || !a.current) && setTimeout(() => f(), 1);\n }, [A, i, r, a, g, f]), D = H(async (E, S = \"BOT\", p = null) => {\n var W, J, F, N, K;\n if (typeof E != \"string\")\n throw new Error(\"Content must be of type string to simulate stream.\");\n S = S.toUpperCase();\n let h = gA(E, S);\n if ((W = A.event) != null && W.rcbStartSimulateStreamMessage) {\n const x = await d(\n k.START_SIMULATE_STREAM_MESSAGE,\n { message: h }\n );\n if (x.defaultPrevented)\n return null;\n p = x.data.simulateStreamChunker || p, h = x.data.message;\n }\n n(!1);\n let T = 30;\n S === \"BOT\" ? T = (J = A.botBubble) == null ? void 0 : J.streamSpeed : T = (F = A.userBubble) == null ? void 0 : F.streamSpeed;\n const M = { ...h, content: \"\" };\n o((x) => [...x, M]), B(t.current);\n let I = h.content;\n p && (I = p(I));\n let j = 0;\n const z = I.length;\n h.sender.toUpperCase() === \"BOT\" && (r.current || (N = A.general) != null && N.embedded) && typeof h.content == \"string\" && h.content.trim() !== \"\" && w(h.content);\n const L = new Promise((x) => {\n const U = setInterval(() => {\n if (j >= z) {\n clearInterval(U), x();\n return;\n }\n o((G) => {\n const _ = [...G];\n for (let $ = _.length - 1; $ >= 0; $--)\n if (_[$].id === M.id) {\n const nA = I[j];\n nA && (M.content += nA, _[$] = M), j++;\n break;\n }\n return _;\n });\n }, T);\n });\n return (a.current || !r.current) && s((x) => x + 1), await L, HA(t.current), (K = A.event) != null && K.rcbStopSimulateStreamMessage && await d(k.STOP_SIMULATE_STREAM_MESSAGE, { message: h }), S === \"USER\" && (u.current = E), h;\n }, [\n A,\n d,\n B,\n t,\n u,\n n,\n s,\n r,\n w\n ]), b = H(async (E, S = \"BOT\") => {\n var h, T, M;\n S = S.toUpperCase();\n let p = gA(E, S);\n if ((h = A.event) != null && h.rcbPreInjectMessage) {\n const I = await d(k.PRE_INJECT_MESSAGE, { message: p });\n if (I.defaultPrevented)\n return null;\n p = I.data.message;\n }\n return p.sender.toUpperCase() === \"BOT\" && (r.current || (T = A.general) != null && T.embedded) && typeof p.content == \"string\" && p.content.trim() !== \"\" && w(p.content), (a.current || !r.current) && s((I) => I + 1), (M = A.event) != null && M.rcbPostInjectMessage && await d(k.POST_INJECT_MESSAGE, { message: p }), o((I) => [...I, p]), B(t.current), S === \"USER\" && typeof E == \"string\" && (u.current = E), p;\n }, [\n A,\n d,\n B,\n u,\n t,\n r,\n w,\n s\n ]), P = H(async (E) => {\n var p;\n const S = t.current.find((h) => h.id === E);\n return !S || (p = A.event) != null && p.rcbRemoveMessage && (await d(k.REMOVE_MESSAGE, { message: S })).defaultPrevented ? null : (o(\n (h) => h.filter((T) => T.id !== E)\n ), B(t.current), s((h) => Math.max(h - 1, 0)), S);\n }, [\n d,\n (v = A.event) == null ? void 0 : v.rcbRemoveMessage,\n B,\n t,\n s\n ]), C = H(async (E, S = \"BOT\") => {\n var h, T;\n if (S = S.toUpperCase(), !c.current.has(S)) {\n const M = gA(E, S);\n return (h = A.event) != null && h.rcbStartStreamMessage && (await d(k.START_STREAM_MESSAGE, { message: M })).defaultPrevented ? null : (n(!1), o((I) => [...I, M]), B(t.current), c.current.set(S, M.id), (a.current || !r.current) && s((I) => I + 1), M);\n }\n const p = { ...gA(E, S), id: c.current.get(S) };\n return (T = A.event) != null && T.rcbChunkStreamMessage && (await d(k.CHUNK_STREAM_MESSAGE, { message: p })).defaultPrevented ? null : (o(\n (M) => M.map((I) => I.id === p.id ? p : I)\n ), B(t.current, !0), p);\n }, [\n d,\n A.event,\n B,\n t,\n n,\n s,\n c\n ]), Q = H(async (E = \"BOT\") => {\n var h;\n if (E = E.toUpperCase(), !c.current.has(E))\n return !0;\n const S = c.current.get(E);\n let p;\n for (let T = 0; T < 3; T++) {\n const M = t.current.find((I) => I.id === S);\n M && (p = M), await new Promise((I) => setTimeout(I, 20));\n }\n return (h = A.event) != null && h.rcbStopStreamMessage && (await d(k.STOP_STREAM_MESSAGE, { message: p })).defaultPrevented ? !1 : (c.current.delete(E), HA(t.current), E === \"USER\" && typeof (p == null ? void 0 : p.content) == \"string\" && (u.current = p.content), !0);\n }, [d, (y = A.event) == null ? void 0 : y.rcbStopStreamMessage, c, u]), m = H((E) => {\n o(E), B(E);\n }, [B]);\n return {\n simulateStreamMessage: D,\n injectMessage: b,\n removeMessage: P,\n streamMessage: C,\n endStreamMessage: Q,\n replaceMessages: m,\n messages: e\n };\n};\nlet xA, lA, pA, BA = !1, aA = null;\nconst YA = () => {\n if (!xA) {\n const A = window.SpeechRecognition || window.webkitSpeechRecognition;\n xA = A != null ? new A() : null;\n }\n return xA;\n}, Ut = (A, e, o, t, n, s, a) => {\n var r;\n (r = A.voice) != null && r.sendAsAudio ? Ft(o, s) : Rt(\n A,\n e,\n o,\n t,\n n,\n a\n );\n}, Rt = (A, e, o, t, n, s) => {\n var i, u, f;\n const a = YA();\n if (!a)\n return;\n if (!BA)\n try {\n BA = !0, a.lang = (i = A.voice) == null ? void 0 : i.language, a.start();\n } catch {\n }\n const r = (u = A.voice) == null ? void 0 : u.timeoutPeriod, c = (f = A.voice) == null ? void 0 : f.autoSendPeriod;\n a.onresult = (d) => {\n var g, B;\n clearTimeout(lA), lA = null, clearTimeout(pA);\n const w = d.results[d.results.length - 1][0].transcript;\n if (s.current) {\n const D = (g = A.chatInput) == null ? void 0 : g.characterLimit, b = s.current.value + w;\n D != null && D >= 0 && b.length > D ? t(b.slice(0, D)) : t(b), n(s.current.value.length);\n }\n r && (lA = setTimeout(async () => await OA(e, s), r)), (B = A.voice) != null && B.autoSendDisabled || (pA = setTimeout(o, c));\n }, a.onend = () => {\n BA ? (a.start(), !lA && r && (lA = setTimeout(async () => await OA(e, s), r))) : (clearTimeout(lA), lA = null, clearTimeout(pA));\n }, r && (lA = setTimeout(async () => await OA(e, s), r));\n}, Ft = (A, e) => {\n navigator.mediaDevices.getUserMedia({ audio: !0 }).then((o) => {\n if (aA = new MediaRecorder(o), !BA)\n try {\n BA = !0, aA.start();\n } catch {\n }\n aA.ondataavailable = (t) => {\n e.current && e.current.push(t.data);\n }, aA.onstop = () => {\n A(), o.getTracks().forEach((t) => t.stop());\n };\n }).catch((o) => {\n console.error(\"Unable to use microphone:\", o);\n });\n}, XA = () => {\n const A = YA();\n A && (BA = !1, A && A.stop(), aA && aA.state !== \"inactive\" && (aA.stop(), aA = null), clearTimeout(lA), lA = null, clearTimeout(pA));\n}, jt = (A, e) => {\n var t, n, s;\n const o = YA();\n (t = e.voice) != null && t.disabled || !((n = e.chatInput) != null && n.blockSpam) || !o || (A && !BA ? (BA = !0, (s = e.voice) != null && s.sendAsAudio ? aA == null || aA.start() : o.start()) : A || XA());\n}, OA = async (A, e) => {\n var o;\n (o = e.current) != null && o.disabled || await A(), XA();\n}, TA = () => {\n const { settings: A } = O(), { voiceToggledOn: e, setSyncedVoiceToggledOn: o, syncedVoiceToggledOnRef: t } = tA(), { dispatchRcbEvent: n } = iA(), s = H(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleVoice && (await n(\n k.TOGGLE_VOICE,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = H((r) => {\n jt(r, A);\n }, [A]);\n return {\n voiceToggledOn: e,\n toggleVoice: s,\n syncVoice: a\n };\n}, DA = () => {\n const { settings: A } = O(), {\n inputLength: e,\n setInputLength: o,\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n syncedTextAreaDisabledRef: r,\n syncedTextAreaSensitiveModeRef: c\n } = tA(), { inputRef: i, chatBodyRef: u, prevInputRef: f } = AA(), { dispatchRcbEvent: d } = iA(), w = H(async (Q) => {\n var m, v, y;\n if (r.current && i.current) {\n i.current.value = \"\";\n return;\n }\n if (i.current && f.current !== null) {\n const E = (m = A.chatInput) == null ? void 0 : m.characterLimit, p = ((v = A.chatInput) == null ? void 0 : v.allowNewline) ? Q : Q.replace(/\\n/g, \" \");\n if (E != null && E >= 0 && p.length > E ? i.current.value = p.slice(0, E) : i.current.value = p, (y = A.event) != null && y.rcbTextAreaChangeValue && (await d(\n k.TEXT_AREA_CHANGE_VALUE,\n { currValue: i.current.value, prevValue: f.current }\n )).defaultPrevented) {\n i.current.value = f.current;\n return;\n }\n f.current = i.current.value;\n }\n }, [r, i, f, A, d]), g = H((Q) => {\n var m;\n (m = i.current) != null && m.disabled || setTimeout(() => {\n var v, y, E;\n (v = A.general) != null && v.embedded ? De(u == null ? void 0 : u.current) && ((y = i.current) == null || y.focus()) : Q !== \"start\" && ((E = i.current) == null || E.focus());\n }, 100);\n }, []), B = H(() => {\n i.current && i.current.focus();\n }, []), D = H(() => {\n i.current && i.current.blur();\n }, []), b = H(() => i && i.current ? i.current.value : \"\", []), P = H((Q) => {\n Q !== r.current && n((m) => !m);\n }, [r]), C = H((Q) => {\n Q !== c.current && a((m) => !m);\n }, [c]);\n return {\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n inputLength: e,\n setInputLength: o,\n getTextAreaValue: b,\n setTextAreaValue: w,\n updateTextAreaFocus: g,\n focusTextArea: B,\n blurTextArea: D,\n toggleTextAreaDisabled: P,\n toggleTextAreaSensitiveMode: C\n };\n}, Ee = vA({\n toasts: [],\n setSyncedToasts: () => {\n },\n syncedToastsRef: { current: [] }\n}), ye = () => PA(Ee), zt = ({ children: A }) => {\n const [e, o, t] = rA([]);\n return /* @__PURE__ */ l(Ee.Provider, { value: { toasts: e, setSyncedToasts: o, syncedToastsRef: t }, children: A });\n}, EA = () => {\n const { settings: A } = O(), { toasts: e, setSyncedToasts: o, syncedToastsRef: t } = ye(), { dispatchRcbEvent: n } = iA(), s = H(async (c, i) => {\n var g, B, D, b;\n let u = null;\n if (t.current.length >= (((g = A.toast) == null ? void 0 : g.maxCount) ?? 3)) {\n if ((B = A.toast) != null && B.forbidOnMax)\n return null;\n u = SA();\n let P = { id: u, content: c, timeout: i };\n if ((D = A.event) != null && D.rcbShowToast) {\n const C = await n(k.SHOW_TOAST, { toast: P });\n if (C.defaultPrevented)\n return null;\n P = C.data.toast;\n }\n return o((C) => [...C.slice(1), P]), u;\n }\n u = SA();\n let w = { id: u, content: c, timeout: i };\n if ((b = A.event) != null && b.rcbShowToast) {\n const P = await n(k.SHOW_TOAST, { toast: w });\n if (P.defaultPrevented)\n return null;\n w = P.data.toast;\n }\n return o((P) => [...P, w]), u;\n }, [A, n]), a = H(async (c) => {\n var u;\n const i = t.current.find((f) => f.id === c);\n return !i || (u = A.event) != null && u.rcbDismissToast && (await n(k.DISMISS_TOAST, { toast: i })).defaultPrevented ? null : (o((f) => f.filter((d) => d.id !== c)), c);\n }, [n]), r = H((c) => {\n o(c);\n }, []);\n return {\n showToast: s,\n dismissToast: a,\n toasts: e,\n replaceToasts: r\n };\n}, QA = () => {\n var z, L, W, J, F;\n const { settings: A } = O(), { paths: e, setSyncedPaths: o, syncedPathsRef: t } = mA(), { flowRef: n, streamMessageMap: s, paramsInputRef: a, keepVoiceOnRef: r, timeoutIdRef: c } = AA(), {\n setSyncedIsBotTyping: i,\n setSyncedTextAreaDisabled: u,\n setSyncedTextAreaSensitiveMode: f,\n blockAllowsAttachment: d,\n setBlockAllowsAttachment: w\n } = tA(), { dispatchRcbEvent: g } = iA(), {\n endStreamMessage: B,\n injectMessage: D,\n removeMessage: b,\n simulateStreamMessage: P,\n streamMessage: C\n } = hA(), { showToast: Q, dismissToast: m } = EA(), { toggleChatWindow: v } = sA(), { updateTextAreaFocus: y, setTextAreaValue: E } = DA(), { syncVoice: S } = TA(), p = H(async (N) => {\n var K;\n if ((K = A.event) != null && K.rcbPostProcessBlock) {\n const x = await g(k.POST_PROCESS_BLOCK, {\n block: N\n });\n if (x.defaultPrevented)\n return null;\n N = x.data.block;\n }\n return N;\n }, [(z = A.event) == null ? void 0 : z.rcbPostProcessBlock, g]), h = H(async (N, K) => {\n var G, _, $, nA;\n if (!N)\n return;\n let x = n.current[N];\n if (!x) {\n i(!1);\n return;\n }\n if ((G = A.event) != null && G.rcbPreProcessBlock) {\n const wA = await g(k.PRE_PROCESS_BLOCK, {\n block: x\n });\n if (wA.defaultPrevented)\n return;\n x = wA.data.block;\n }\n i(!0), (_ = A.chatInput) != null && _.blockSpam && u(!0), f(!1);\n const U = {\n prevPath: K,\n currPath: N,\n goToPath: I,\n setTextAreaValue: E,\n userInput: a.current,\n endStreamMessage: B,\n injectMessage: D,\n removeMessage: b,\n simulateStreamMessage: P,\n streamMessage: C,\n toggleChatWindow: v,\n showToast: Q,\n dismissToast: m\n };\n await Ct(\n x,\n U,\n (($ = A.botBubble) == null ? void 0 : $.simulateStream) ?? !1,\n c,\n u,\n f,\n p\n ), i(!1), \"chatDisabled\" in x || u((nA = A.chatInput) == null ? void 0 : nA.disabled), \"isSensitive\" in x || f(!1), w(typeof x.file == \"function\"), y(N), S(r.current && !x.chatDisabled), N !== K && s.current.clear();\n }, [\n n,\n y,\n S,\n (L = A.botBubble) == null ? void 0 : L.simulateStream,\n (W = A.chatInput) == null ? void 0 : W.disabled,\n a,\n B,\n D,\n b,\n P,\n C,\n v,\n Q,\n m,\n r,\n s\n ]), T = H(() => t.current.length > 0 ? t.current.at(-1) ?? null : null, []), M = H(() => t.current.length > 1 ? t.current.at(-2) ?? null : null, []), I = H(async (N) => {\n var U;\n const K = T(), x = M();\n return (U = A.event) != null && U.rcbChangePath && (await g(k.CHANGE_PATH, {\n currPath: K,\n prevPath: x,\n nextPath: N\n })).defaultPrevented ? !1 : (o((G) => [...G, N]), await h(N, K), !0);\n }, [(J = A.chatInput) == null ? void 0 : J.blockSpam, (F = A.event) == null ? void 0 : F.rcbChangePath, h, g]), j = H((N) => {\n o(N);\n }, []);\n return {\n getCurrPath: T,\n getPrevPath: M,\n goToPath: I,\n blockAllowsAttachment: d,\n setBlockAllowsAttachment: w,\n paths: e,\n replacePaths: j,\n firePostProcessBlockEvent: p\n };\n}, yA = () => {\n var z, L, W, J;\n const { settings: A } = O(), {\n endStreamMessage: e,\n injectMessage: o,\n removeMessage: t,\n simulateStreamMessage: n,\n streamMessage: s\n } = hA(), { syncedPathsRef: a } = mA(), { getCurrPath: r, getPrevPath: c, goToPath: i, firePostProcessBlockEvent: u } = QA(), {\n setSyncedTextAreaSensitiveMode: f,\n setSyncedTextAreaDisabled: d,\n setSyncedIsBotTyping: w,\n setBlockAllowsAttachment: g,\n setInputLength: B,\n syncedVoiceToggledOnRef: D,\n syncedTextAreaSensitiveModeRef: b\n } = tA(), { flowRef: P, inputRef: C, keepVoiceOnRef: Q, paramsInputRef: m, timeoutIdRef: v } = AA(), { showToast: y, dismissToast: E } = EA(), { dispatchRcbEvent: S } = iA(), { syncVoice: p } = TA(), { setTextAreaValue: h } = DA(), { toggleChatWindow: T } = sA(), M = H(async (F) => {\n var x, U, G, _, $, nA;\n const N = r();\n if (!(!N || !P.current[N])) {\n if (b.current) {\n if ((x = A == null ? void 0 : A.sensitiveInput) != null && x.hideInUserBubble)\n return;\n if ((U = A == null ? void 0 : A.sensitiveInput) != null && U.maskInUserBubble) {\n (G = A.userBubble) != null && G.simulateStream ? await n(\n \"*\".repeat(((_ = A.sensitiveInput) == null ? void 0 : _.asterisksCount) ?? 10),\n \"USER\"\n ) : await o(\"*\".repeat((($ = A.sensitiveInput) == null ? void 0 : $.asterisksCount) ?? 10), \"USER\");\n return;\n }\n }\n (nA = A.userBubble) != null && nA.simulateStream ? await n(F, \"USER\") : await o(F, \"USER\");\n }\n }, [P, r, A, o, n, b]), I = H(async (F, N = !0) => {\n var G, _;\n if (F = F.trim(), F === \"\")\n return;\n N && await M(F), v.current && clearTimeout(v.current), C.current && (h(\"\"), B(0));\n const K = r();\n if (!K)\n return;\n let x = P.current[K];\n const U = await u(x);\n U && ((G = A.chatInput) != null && G.blockSpam && d(!0), Q.current = D.current, p(!1), setTimeout(() => {\n w(!0);\n }, 400), f(!1), setTimeout(async () => {\n var wA;\n const $ = {\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: h,\n userInput: m.current,\n injectMessage: o,\n simulateStreamMessage: n,\n streamMessage: s,\n removeMessage: t,\n endStreamMessage: e,\n toggleChatWindow: T,\n showToast: y,\n dismissToast: E\n }, nA = a.current.length;\n await ge(U, $), a.current.length === nA && (\"chatDisabled\" in x ? d(!!x.chatDisabled) : d(!!((wA = A.chatInput) != null && wA.disabled)), we(x, $, f), g(typeof x.file == \"function\"), p(Q.current), w(!1));\n }, (_ = A.chatInput) == null ? void 0 : _.botDelay));\n }, [\n v,\n (z = A.chatInput) == null ? void 0 : z.blockSpam,\n (L = A.chatInput) == null ? void 0 : L.botDelay,\n (W = A.chatInput) == null ? void 0 : W.disabled,\n Q,\n D,\n p,\n M,\n c,\n r,\n i,\n o,\n n,\n s,\n t,\n e,\n T,\n y,\n E,\n P\n ]);\n return { handleSubmitText: H(async (F, N = !0) => {\n var x, U;\n F = F ?? ((x = C.current) == null ? void 0 : x.value), !((U = A.event) != null && U.rcbUserSubmitText && (await S(k.USER_SUBMIT_TEXT, { inputText: F, sendInChat: N })).defaultPrevented || !r()) && I(F, N);\n }, [S, r, I, C, (J = A.event) == null ? void 0 : J.rcbUserSubmitText]) };\n}, MA = () => {\n var o;\n const { settings: A } = O();\n return fA(() => {\n var a;\n if (typeof window > \"u\" || !window.navigator)\n return !1;\n if (!((a = A.device) != null && a.applyMobileOptimizations))\n return !0;\n const t = navigator.userAgent, n = !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t), s = window.innerWidth >= 768;\n return n && s;\n }, [(o = A.device) == null ? void 0 : o.applyMobileOptimizations]);\n}, Gt = ({ buttons: A }) => {\n var M, I, j, z, L, W, J, F, N, K, x;\n const e = MA(), { settings: o } = O(), { styles: t } = Y(), {\n textAreaDisabled: n,\n textAreaSensitiveMode: s,\n inputLength: a,\n hasFlowStarted: r,\n setHasFlowStarted: c,\n setInputLength: i\n } = tA(), { inputRef: u } = AA(), [f, d] = R(!1), [w, g] = R(!1), { handleSubmitText: B } = yA(), { setTextAreaValue: D } = DA(), b = {\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle\n }, P = {\n outline: n ? \"\" : \"none\",\n boxShadow: n ? \"\" : `0 0 5px ${(M = o.general) == null ? void 0 : M.primaryColor}`,\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaFocusedStyle\n }, C = {\n cursor: `url(\"${(I = o.general) == null ? void 0 : I.actionDisabledIcon}\"), auto`,\n caretColor: \"transparent\",\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaDisabledStyle\n }, Q = {\n color: \"#989898\",\n ...t.characterLimitStyle\n }, m = {\n color: \"#ff0000\",\n ...t.characterLimitReachedStyle\n }, v = n ? (j = o.chatInput) == null ? void 0 : j.disabledPlaceholderText : (z = o.chatInput) == null ? void 0 : z.enabledPlaceholderText, y = () => {\n n || d(!0);\n }, E = () => {\n d(!1);\n }, S = () => {\n g(!0);\n }, p = () => {\n g(!1);\n }, h = async (U) => {\n var G;\n if (!w && U.key === \"Enter\") {\n if (U.shiftKey) {\n (G = o.chatInput) != null && G.allowNewline || U.preventDefault();\n return;\n }\n U.preventDefault(), await B();\n }\n }, T = (U) => {\n u.current && (D(U.target.value), i(u.current.value.length));\n };\n return /* @__PURE__ */ X(\n \"div\",\n {\n \"aria-label\": ((L = o.ariaLabel) == null ? void 0 : L.inputTextArea) ?? \"input text area\",\n role: \"textbox\",\n onMouseDown: (U) => {\n var G;\n U.stopPropagation(), !r && ((G = o.general) == null ? void 0 : G.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && c(!0);\n },\n style: { ...t.chatInputContainerStyle },\n className: \"rcb-chat-input\",\n children: [\n s && ((W = o.sensitiveInput) != null && W.maskInTextArea) ? /* @__PURE__ */ l(\n \"input\",\n {\n ref: u,\n type: \"password\",\n className: \"rcb-chat-input-textarea\",\n style: n ? C : f ? P : b,\n placeholder: v,\n onChange: T,\n onKeyDown: h,\n onFocus: y,\n onBlur: E,\n onCompositionStart: S,\n onCompositionEnd: p\n }\n ) : /* @__PURE__ */ l(\n \"textarea\",\n {\n ref: u,\n style: n ? C : f ? P : b,\n rows: 1,\n className: \"rcb-chat-input-textarea\",\n placeholder: v,\n onChange: T,\n onKeyDown: h,\n onFocus: y,\n onBlur: E,\n onCompositionStart: S,\n onCompositionEnd: p\n }\n ),\n /* @__PURE__ */ X(oA, { children: [\n A == null ? void 0 : A.map(\n (U, G) => /* @__PURE__ */ l(RA, { children: U }, G)\n ),\n ((J = o.chatInput) == null ? void 0 : J.showCharacterCount) && ((F = o.chatInput) == null ? void 0 : F.characterLimit) != null && ((N = o.chatInput) == null ? void 0 : N.characterLimit) > 0 && /* @__PURE__ */ X(\n \"div\",\n {\n className: \"rcb-chat-input-char-counter\",\n style: a >= ((K = o.chatInput) == null ? void 0 : K.characterLimit) ? m : Q,\n children: [\n a,\n \"/\",\n (x = o.chatInput) == null ? void 0 : x.characterLimit\n ]\n }\n )\n ] })\n ]\n }\n );\n}, Yt = ({ buttons: A }) => {\n var t;\n const { settings: e } = O(), { styles: o } = Y();\n return /* @__PURE__ */ X(\n \"div\",\n {\n \"data-testid\": \"chatbot-footer-container\",\n style: { ...o.footerStyle },\n className: \"rcb-chat-footer-container\",\n children: [\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-footer\", children: A == null ? void 0 : A.map(\n (n, s) => /* @__PURE__ */ l(RA, { children: n }, s)\n ) }),\n /* @__PURE__ */ l(\"span\", { children: (t = e.footer) == null ? void 0 : t.text })\n ]\n }\n );\n}, Xt = () => {\n var c, i, u, f, d, w, g;\n const { settings: A } = O(), { styles: e } = Y(), { unreadCount: o } = tA(), { isChatWindowOpen: t, toggleChatWindow: n } = sA(), s = {\n backgroundImage: `linear-gradient(to right, ${(c = A.general) == null ? void 0 : c.secondaryColor},\n\t\t\t${(i = A.general) == null ? void 0 : i.primaryColor})`,\n ...e.chatButtonStyle\n }, a = {\n backgroundImage: `url(${(u = A.chatButton) == null ? void 0 : u.icon})`,\n fill: \"#fff\",\n width: 75,\n height: 75,\n ...e.chatIconStyle\n }, r = () => {\n var D;\n const B = (D = A.chatButton) == null ? void 0 : D.icon;\n return !B || typeof B == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-toggle-icon\",\n style: a\n }\n ) : B && /* @__PURE__ */ l(\"span\", { className: \"rcb-toggle-icon\", children: /* @__PURE__ */ l(B, { style: a }) });\n };\n return /* @__PURE__ */ l(oA, { children: !((f = A.general) != null && f.embedded) && /* @__PURE__ */ X(\n \"div\",\n {\n \"aria-label\": ((d = A.ariaLabel) == null ? void 0 : d.chatButton) ?? \"open chat\",\n role: \"button\",\n style: s,\n className: `rcb-toggle-button ${t ? \"rcb-button-hide\" : \"rcb-button-show\"}`,\n onClick: () => n(!0),\n children: [\n r(),\n !((w = A.notification) != null && w.disabled) && ((g = A.notification) == null ? void 0 : g.showCount) && /* @__PURE__ */ l(\"span\", { style: { ...e.notificationBadgeStyle }, className: \"rcb-badge\", children: o })\n ]\n }\n ) });\n}, Wt = () => {\n var g, B, D, b;\n const A = MA(), { settings: e } = O(), { styles: o } = Y(), { chatBodyRef: t } = AA(), { isChatWindowOpen: n, toggleChatWindow: s } = sA(), [a, r] = R(!1), [c, i] = R(!1), [u, f] = R(0);\n V(() => {\n var C, Q, m;\n const P = (C = e.tooltip) == null ? void 0 : C.mode;\n if (P === \"ALWAYS\")\n if (A) {\n let v;\n n ? v = (((Q = t.current) == null ? void 0 : Q.offsetWidth) ?? 375) - (typeof ((m = o.chatButtonStyle) == null ? void 0 : m.width) == \"number\" ? o.chatButtonStyle.width : 75) : v = 0, f(v), r(!0);\n } else\n r(!n);\n else P === \"NEVER\" ? r(!1) : P === \"START\" ? c ? r(!1) : (i(!0), r(!0)) : P === \"CLOSE\" && r(!n);\n }, [n]);\n const d = {\n transform: `translateX(-${u}px)`,\n right: (((g = o.chatButtonStyle) == null ? void 0 : g.width) ?? 75) + 40,\n bottom: 30,\n backgroundColor: (B = e.general) == null ? void 0 : B.secondaryColor,\n color: \"#fff\",\n ...o.tooltipStyle\n }, w = {\n borderColor: `transparent transparent transparent ${d.backgroundColor}`\n };\n return /* @__PURE__ */ l(oA, { children: !((D = e.general) != null && D.embedded) && /* @__PURE__ */ X(\n \"div\",\n {\n \"data-testid\": \"chat-tooltip\",\n style: d,\n className: `rcb-chat-tooltip ${a ? \"rcb-tooltip-show\" : \"rcb-tooltip-hide\"}`,\n onClick: () => s(!0),\n children: [\n /* @__PURE__ */ l(\"span\", { children: (b = e.tooltip) == null ? void 0 : b.text }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-chat-tooltip-tail\", style: w })\n ]\n }\n ) });\n}, Kt = ({\n id: A,\n content: e,\n timeout: o\n}) => {\n var d, w;\n const { settings: t } = O(), { styles: n } = Y(), [s] = R({\n toastPromptStyle: { ...n.toastPromptStyle },\n toastPromptHoveredStyle: { ...n.toastPromptHoveredStyle }\n }), { dismissToast: a } = EA(), [r, c] = R(!1), i = {\n color: (d = t.general) == null ? void 0 : d.primaryColor,\n borderColor: (w = t.general) == null ? void 0 : w.primaryColor,\n ...s.toastPromptHoveredStyle\n };\n return V(() => {\n if (o) {\n const g = setTimeout(() => {\n a(A);\n }, o);\n return () => clearTimeout(g);\n }\n }, [A, a, o]), typeof e == \"string\" ? /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n c(!0);\n },\n onMouseLeave: () => {\n c(!1);\n },\n style: r ? i : s.toastPromptStyle,\n onMouseDown: async (g) => {\n var B;\n (B = t.toast) != null && B.dismissOnClick && (g.preventDefault(), await a(A));\n },\n className: \"rcb-toast-prompt\",\n children: e\n }\n ) : /* @__PURE__ */ l(oA, { children: e });\n}, qt = () => {\n var t, n, s, a, r, c, i, u, f, d, w, g;\n const { styles: A } = Y(), { toasts: e } = ye(), o = {\n bottom: `calc(${typeof ((t = A.footerStyle) == null ? void 0 : t.height) == \"number\" ? `${(n = A.footerStyle) == null ? void 0 : n.height}px` : ((s = A.footerStyle) == null ? void 0 : s.height) ?? \"50px\"} + ${typeof ((a = A.chatInputContainerStyle) == null ? void 0 : a.height) == \"number\" ? `${(r = A.chatInputContainerStyle) == null ? void 0 : r.height}px` : ((c = A.chatInputContainerStyle) == null ? void 0 : c.height) ?? \"70px\"} + 20px)`,\n width: 300,\n minWidth: `calc(${typeof ((i = A.chatWindowStyle) == null ? void 0 : i.width) == \"number\" ? `${(u = A.chatWindowStyle) == null ? void 0 : u.width}px` : ((f = A.chatWindowStyle) == null ? void 0 : f.width) ?? \"375px\"} / 2)`,\n maxWidth: `calc(${typeof ((d = A.chatWindowStyle) == null ? void 0 : d.width) == \"number\" ? `${(w = A.chatWindowStyle) == null ? void 0 : w.width}px` : ((g = A.chatWindowStyle) == null ? void 0 : g.width) ?? \"375px\"} - 50px)`,\n ...A.toastPromptContainerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-toast-prompt-container\", style: o, children: e.map((B) => /* @__PURE__ */ l(\n Kt,\n {\n id: B.id,\n content: B.content,\n timeout: B.timeout\n },\n B.id\n )) });\n}, Ce = ({\n file: A,\n fileType: e,\n fileUrl: o\n}) => {\n var a, r, c;\n const { settings: t } = O(), { styles: n } = Y(), s = {\n backgroundColor: (a = t.general) == null ? void 0 : a.primaryColor,\n maxWidth: (r = t.userBubble) != null && r.showAvatar ? \"65%\" : \"70%\",\n ...n.mediaDisplayContainerStyle\n };\n return /* @__PURE__ */ l(oA, { children: o ? /* @__PURE__ */ X(oA, { children: [\n e === \"image\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-image-container rcb-media-entry\",\n \"data-testid\": \"media-display-image-container\",\n children: /* @__PURE__ */ l(\"img\", { src: o, alt: \"Image Display\", className: \"rcb-media-display-image\" })\n }\n ),\n e === \"video\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-video-container rcb-media-entry\",\n \"data-testid\": \"media-display-video-container\",\n children: /* @__PURE__ */ X(\"video\", { controls: !0, className: \"rcb-media-display-video\", children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the video tag.\"\n ] })\n }\n ),\n e === \"audio\" && o && /* @__PURE__ */ X(\n \"audio\",\n {\n \"data-testid\": \"media-display-audio-container\",\n style: {\n maxWidth: (c = t.userBubble) != null && c.showAvatar ? \"65%\" : \"70%\"\n },\n controls: !0,\n className: \"rcb-media-display-audio rcb-media-entry\",\n children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the audio tag.\"\n ]\n }\n )\n ] }) : /* @__PURE__ */ l(oA, {}) });\n}, me = async (A) => {\n if (!A)\n return { fileType: null, fileUrl: null };\n const e = A.type.split(\"/\")[0];\n if (![\"image\", \"video\", \"audio\"].includes(e))\n return { fileType: null, fileUrl: null };\n try {\n const o = await new Promise((t, n) => {\n const s = new FileReader();\n s.onload = () => t(s.result), s.onerror = () => n(new Error(\"File reading failed\")), s.readAsDataURL(A);\n });\n return { fileType: e, fileUrl: o };\n } catch (o) {\n return console.error(o), { fileType: null, fileUrl: null };\n }\n}, Jt = () => {\n var S, p, h, T, M, I;\n const { settings: A } = O(), { styles: e } = Y(), {\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a\n } = hA(), { getCurrPath: r, getPrevPath: c, goToPath: i, blockAllowsAttachment: u } = QA(), { flowRef: f, inputRef: d } = AA(), w = f.current, { showToast: g, dismissToast: B } = EA(), { dispatchRcbEvent: D } = iA(), { toggleChatWindow: b } = sA(), { setTextAreaValue: P } = DA(), { handleSubmitText: C } = yA(), Q = {\n cursor: `url(\"${(S = A.general) == null ? void 0 : S.actionDisabledIcon}\"), auto`,\n ...e.fileAttachmentButtonStyle,\n // by default inherit the base style\n ...e.fileAttachmentButtonDisabledStyle\n }, m = {\n backgroundImage: `url(${(p = A.fileAttachment) == null ? void 0 : p.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle\n }, v = {\n backgroundImage: `url(${(h = A.fileAttachment) == null ? void 0 : h.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle,\n // by default inherit the base style\n ...e.fileAttachmentIconDisabledStyle\n }, y = async (j) => {\n var N, K, x, U;\n const z = j.target.files;\n if (!z)\n return;\n const L = Array.from(z);\n if (j.target.value = \"\", (N = A.event) != null && N.rcbUserUploadFile && (await D(k.USER_UPLOAD_FILE, { files: L })).defaultPrevented)\n return;\n const W = r();\n if (!W)\n return;\n const J = w[W];\n if (!J)\n return;\n const F = J.file;\n if (F != null) {\n const G = [];\n for (let _ = 0; _ < L.length; _++) {\n if (G.push(L[_].name), !((K = A.fileAttachment) != null && K.showMediaDisplay))\n continue;\n const $ = await me(L[_]);\n !$.fileType || !$.fileUrl || await o(/* @__PURE__ */ l(\n Ce,\n {\n file: L[_],\n fileType: $.fileType,\n fileUrl: $.fileUrl\n }\n ), \"USER\");\n }\n await C(\"📄 \" + G.join(\", \"), (x = A.fileAttachment) == null ? void 0 : x.sendFileName), await F({\n userInput: (U = d.current) == null ? void 0 : U.value,\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: P,\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a,\n toggleChatWindow: b,\n showToast: g,\n dismissToast: B,\n files: L\n });\n }\n }, E = () => {\n var z, L;\n const j = u ? (z = A.fileAttachment) == null ? void 0 : z.icon : (L = A.fileAttachment) == null ? void 0 : L.iconDisabled;\n return !j || typeof j == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\",\n style: u ? m : v\n }\n ) : j && /* @__PURE__ */ l(\"span\", { className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\", children: /* @__PURE__ */ l(\n j,\n {\n style: u ? m : v\n }\n ) });\n };\n return /* @__PURE__ */ X(\n \"label\",\n {\n \"aria-label\": ((T = A.ariaLabel) == null ? void 0 : T.fileAttachmentButton) ?? \"upload file\",\n role: \"button\",\n className: u ? \"rcb-attach-button-enabled\" : \"rcb-attach-button-disabled\",\n style: u ? { ...e.fileAttachmentButtonStyle } : Q,\n children: [\n /* @__PURE__ */ l(\n \"input\",\n {\n className: \"rcb-attach-input\",\n role: \"file\",\n type: \"file\",\n onChange: y,\n multiple: (M = A.fileAttachment) == null ? void 0 : M.multiple,\n accept: (I = A.fileAttachment) == null ? void 0 : I.accept,\n disabled: !u\n }\n ),\n E()\n ]\n }\n );\n}, Vt = () => {\n var D, b, P, C, Q, m;\n const { settings: A } = O(), { styles: e } = Y(), { syncedTextAreaDisabledRef: o } = tA(), { inputRef: t } = AA(), { textAreaDisabled: n, setTextAreaValue: s } = DA(), a = eA(null), r = eA(null), [c, i] = R(!1), u = {\n cursor: `url(\"${(D = A.general) == null ? void 0 : D.actionDisabledIcon}\"), auto`,\n ...e.emojiButtonStyle,\n // by default inherit the base style\n ...e.emojiButtonDisabledStyle\n }, f = {\n backgroundImage: `url(${(b = A.emoji) == null ? void 0 : b.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle\n }, d = {\n backgroundImage: `url(${(P = A.emoji) == null ? void 0 : P.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle,\n // by default inherit the base style\n ...e.emojiIconDisabledStyle\n };\n V(() => {\n const v = (S) => {\n const p = S.composedPath();\n a.current && !p.includes(a.current) && r.current && !p.includes(r.current) && i(!1);\n }, y = () => {\n if (a.current && r.current) {\n const S = r.current.getBoundingClientRect(), p = a.current.offsetHeight, h = S.top - p - 8;\n a.current.style.left = `${S.left}px`, a.current.style.top = `${h}px`;\n }\n }, E = () => {\n y();\n };\n return document.addEventListener(\"mousedown\", v), window.addEventListener(\"resize\", E), () => {\n document.removeEventListener(\"mousedown\", v), window.removeEventListener(\"resize\", E);\n };\n }, []);\n const w = (v, y) => {\n v.preventDefault(), t.current && (s(t.current.value + y), setTimeout(() => {\n const E = t.current;\n if (E) {\n E.focus();\n const S = E.value.length;\n E.setSelectionRange(S, S);\n }\n }, 50)), i(!1);\n }, g = (v) => {\n v.preventDefault(), o.current ? i(!1) : i((y) => !y);\n }, B = () => {\n var y, E;\n const v = n ? (y = A.emoji) == null ? void 0 : y.iconDisabled : (E = A.emoji) == null ? void 0 : E.icon;\n return !v || typeof v == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`,\n style: n ? d : f\n }\n ) : v && /* @__PURE__ */ l(\"span\", { className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`, children: /* @__PURE__ */ l(v, { style: n ? d : f }) });\n };\n return /* @__PURE__ */ X(oA, { children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((C = A.ariaLabel) == null ? void 0 : C.emojiButton) ?? \"emoji picker\",\n role: \"button\",\n ref: r,\n className: `${n ? \"rcb-emoji-button-disabled\" : \"rcb-emoji-button-enabled\"}`,\n style: n ? u : { ...e.emojiButtonStyle },\n onMouseDown: g,\n children: B()\n }\n ),\n c && /* @__PURE__ */ l(\"div\", { className: \"rcb-emoji-button-popup\", ref: a, children: (m = (Q = A.emoji) == null ? void 0 : Q.list) == null ? void 0 : m.map((v, y) => /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-emoji\",\n onMouseDown: (E) => w(E, v),\n children: v\n },\n y\n )) })\n ] });\n}, Zt = () => {\n var r, c, i;\n const { settings: A } = O(), { styles: e } = Y(), { audioToggledOn: o, toggleAudio: t } = GA(), n = {\n backgroundImage: `url(${(r = A.audio) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.audioIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.audio) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.audioIconStyle,\n // by default inherit the base style\n ...e.audioIconDisabledStyle\n }, a = () => {\n var f, d;\n const u = o ? (f = A.audio) == null ? void 0 : f.icon : (d = A.audio) == null ? void 0 : d.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-audio-icon\",\n \"data-testid\": \"rcb-audio-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-audio-icon\", \"data-testid\": \"rcb-audio-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-audio-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.audioButton) ?? \"toggle audio\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.audioButtonStyle } : { ...e.audioButtonStyle, ...e.audioButtonDisabledStyle },\n children: a()\n }\n );\n}, _t = () => {\n var s, a;\n const { settings: A } = O(), { styles: e } = Y(), { toggleChatWindow: o } = sA(), t = {\n backgroundImage: `url(${(s = A.header) == null ? void 0 : s.closeChatIcon})`,\n fill: \"#e8eaed\",\n stroke: \"#e8eaed\",\n ...e.closeChatIconStyle\n }, n = () => {\n var c;\n const r = (c = A.header) == null ? void 0 : c.closeChatIcon;\n return !r || typeof r == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-close-chat-icon\",\n \"data-testid\": \"rcb-close-chat-icon\",\n style: t\n }\n ) : r && /* @__PURE__ */ l(\"span\", { className: \"rcb-close-chat-icon\", \"data-testid\": \"rcb-close-chat-icon\", children: /* @__PURE__ */ l(r, { style: t }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((a = A.ariaLabel) == null ? void 0 : a.closeChatButton) ?? \"close chat\",\n role: \"button\",\n onMouseDown: (r) => {\n r.stopPropagation(), o(!1);\n },\n style: { ...e.closeChatButtonStyle },\n children: n()\n }\n );\n}, $t = () => {\n const { notificationsToggledOn: A, toggleNotifications: e, playNotificationSound: o } = zA();\n return {\n notificationsToggledOn: A,\n toggleNotifications: e,\n playNotificationSound: o\n };\n}, Ao = () => {\n var r, c, i;\n const { settings: A } = O(), { styles: e } = Y(), { notificationsToggledOn: o, toggleNotifications: t } = $t(), n = {\n backgroundImage: `url(${(r = A.notification) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.notificationIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.notification) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.notificationIconStyle,\n // by default inherit the base style\n ...e.notificationIconDisabledStyle\n }, a = () => {\n var f, d;\n const u = o ? (f = A.notification) == null ? void 0 : f.icon : (d = A.notification) == null ? void 0 : d.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-notification-icon\",\n \"data-testid\": \"rcb-notification-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-notification-icon\", \"data-testid\": \"rcb-notification-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-notification-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.notificationButton) ?? \"toggle notifications\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.notificationButtonStyle } : { ...e.notificationButtonStyle, ...e.notificationButtonDisabledStyle },\n children: a()\n }\n );\n}, eo = () => {\n var P, C, Q;\n const { settings: A } = O(), { styles: e } = Y(), { injectMessage: o } = hA(), { inputRef: t } = AA(), { voiceToggledOn: n, toggleVoice: s } = TA(), { setInputLength: a, setTextAreaValue: r, textAreaDisabled: c } = DA(), { handleSubmitText: i } = yA(), u = eA([]), [f, d] = R(!1);\n V(() => {\n var m;\n (m = A.voice) != null && m.sendAsAudio ? (D(), u.current = []) : i();\n }, [f]), V(() => {\n n ? Ut(\n A,\n s,\n B,\n r,\n a,\n u,\n t\n ) : XA();\n }, [n]);\n const w = {\n backgroundImage: `url(${(P = A.voice) == null ? void 0 : P.icon})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle\n }, g = {\n backgroundImage: `url(${(C = A.voice) == null ? void 0 : C.iconDisabled})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle,\n // by default inherit the base style\n ...e.voiceIconDisabledStyle\n }, B = () => {\n d((m) => !m);\n }, D = async () => {\n const m = new Blob(u.current, { type: \"audio/wav\" }), v = new File([m], \"voice-input.wav\", { type: \"audio/wav\" }), y = await me(v);\n !y.fileType || !y.fileUrl || await o(/* @__PURE__ */ l(\n Ce,\n {\n file: v,\n fileType: y.fileType,\n fileUrl: y.fileUrl\n }\n ), \"USER\");\n }, b = () => {\n var v, y;\n const m = n ? (v = A.voice) == null ? void 0 : v.icon : (y = A.voice) == null ? void 0 : y.iconDisabled;\n return !m || typeof m == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `rcb-voice-icon${n && !c ? \"-on\" : \"\"}`,\n \"data-testid\": \"rcb-voice-icon\",\n style: n && !c ? w : g\n }\n ) : m && /* @__PURE__ */ l(\"span\", { className: `rcb-voice-icon ${n && !c ? \"on\" : \"\"}`, children: /* @__PURE__ */ l(m, { style: n && !c ? w : g }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((Q = A.ariaLabel) == null ? void 0 : Q.voiceButton) ?? \"toggle voice\",\n role: \"button\",\n onMouseDown: async (m) => {\n m.preventDefault(), !c && await s();\n },\n style: n && !c ? { ...e.voiceButtonStyle } : { ...e.voiceButtonStyle, ...e.voiceButtonDisabledStyle },\n className: n && !c ? \"rcb-voice-button-enabled\" : \"rcb-voice-button-disabled\",\n children: b()\n }\n );\n}, to = () => {\n var B, D, b, P, C, Q, m, v;\n const { settings: A } = O(), { styles: e } = Y(), { textAreaDisabled: o } = tA(), [t, n] = R(!1), { handleSubmitText: s } = yA(), a = {\n backgroundColor: (B = A.general) == null ? void 0 : B.primaryColor,\n ...e.sendButtonStyle\n }, r = {\n cursor: `url(\"${(D = A.general) == null ? void 0 : D.actionDisabledIcon}\"), auto`,\n backgroundColor: (b = A.general) == null ? void 0 : b.primaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonDisabledStyle\n }, c = {\n backgroundColor: (P = A.general) == null ? void 0 : P.secondaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonHoveredStyle\n }, i = {\n backgroundImage: `url(${(C = A.chatInput) == null ? void 0 : C.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle\n }, u = {\n backgroundImage: `url(${(Q = A.chatInput) == null ? void 0 : Q.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconDisabledStyle\n }, f = {\n backgroundImage: `url(${(m = A.chatInput) == null ? void 0 : m.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconHoveredStyle\n }, d = () => {\n n(!0);\n }, w = () => {\n n(!1);\n }, g = () => {\n var E;\n const y = (E = A.chatInput) == null ? void 0 : E.sendButtonIcon;\n return !y || typeof y == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-send-icon\",\n \"data-testid\": \"rcb-send-icon\",\n style: o ? u : t ? f : i\n }\n ) : y && /* @__PURE__ */ l(\"span\", { className: \"rcb-send-icon\", \"data-testid\": \"rcb-send-icon\", children: /* @__PURE__ */ l(\n y,\n {\n style: o ? u : t ? f : i\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((v = A.ariaLabel) == null ? void 0 : v.sendButton) ?? \"send message\",\n role: \"button\",\n onMouseEnter: d,\n onMouseLeave: w,\n onMouseDown: async (y) => {\n y == null || y.preventDefault(), !o && await s();\n },\n style: o ? r : t ? c : a,\n className: \"rcb-send-button\",\n children: g()\n }\n );\n}, oo = (A) => Object.values(Z).includes(A), no = (A, e) => {\n var c, i, u, f, d, w, g, B, D;\n const o = {\n [Z.AUDIO_BUTTON]: (c = A.audio) == null ? void 0 : c.disabled,\n [Z.CLOSE_CHAT_BUTTON]: (i = A.general) == null ? void 0 : i.embedded,\n [Z.EMOJI_PICKER_BUTTON]: (u = A.emoji) == null ? void 0 : u.disabled,\n [Z.FILE_ATTACHMENT_BUTTON]: (f = A.fileAttachment) == null ? void 0 : f.disabled,\n [Z.NOTIFICATION_BUTTON]: (d = A.notification) == null ? void 0 : d.disabled,\n [Z.SEND_MESSAGE_BUTTON]: !1,\n [Z.VOICE_MESSAGE_BUTTON]: (w = A.voice) == null ? void 0 : w.disabled\n }, t = {}, n = (b) => b ? b.map((P) => {\n if (typeof P == \"string\") {\n if (oo(P) && !o[P]) {\n if (t[P])\n return t[P];\n const C = e[P];\n if (typeof C == \"function\") {\n const Q = C();\n return t[P] = Q, Q;\n }\n return null;\n }\n return null;\n }\n return P;\n }).filter((P) => P !== null) : [], s = n((g = A.header) == null ? void 0 : g.buttons), a = n((B = A.chatInput) == null ? void 0 : B.buttons), r = n((D = A.footer) == null ? void 0 : D.buttons);\n return { header: s, chatInput: a, footer: r };\n}, so = () => /* @__PURE__ */ l(Zt, {}), ro = () => /* @__PURE__ */ l(Ao, {}), ao = () => /* @__PURE__ */ l(_t, {}), co = () => /* @__PURE__ */ l(eo, {}), io = () => /* @__PURE__ */ l(to, {}), lo = () => /* @__PURE__ */ l(Jt, {}), uo = () => /* @__PURE__ */ l(Vt, {}), fo = () => {\n const { settings: A } = O(), e = fA(() => ({\n [Z.CLOSE_CHAT_BUTTON]: () => ao(),\n [Z.AUDIO_BUTTON]: () => so(),\n [Z.NOTIFICATION_BUTTON]: () => ro(),\n [Z.EMOJI_PICKER_BUTTON]: () => uo(),\n [Z.FILE_ATTACHMENT_BUTTON]: () => lo(),\n [Z.SEND_MESSAGE_BUTTON]: () => io(),\n [Z.VOICE_MESSAGE_BUTTON]: () => co()\n }), []), { header: o, chatInput: t, footer: n } = fA(() => no(A, e), [A, e]), s = fA(() => o, [o]), a = fA(() => t, [t]), r = fA(() => n, [n]);\n return { headerButtons: s, chatInputButtons: a, footerButtons: r };\n}, WA = () => {\n const { settings: A } = O(), { styles: e } = Y(), { setSyncedMessages: o, syncedMessagesRef: t } = FA(), {\n isLoadingChatHistory: n,\n setIsLoadingChatHistory: s,\n hasChatHistoryLoaded: a,\n setHasChatHistoryLoaded: r\n } = tA(), { chatBodyRef: c } = AA(), { dispatchRcbEvent: i } = iA(), u = H(async () => {\n var w, g;\n const f = jA();\n if (!f || (w = A.event) != null && w.rcbLoadChatHistory && (await i(k.LOAD_CHAT_HISTORY, {})).defaultPrevented)\n return;\n s(!0);\n const d = ((g = c.current) == null ? void 0 : g.scrollHeight) ?? 0;\n Tt(\n A,\n e,\n f,\n o,\n t,\n c,\n d,\n s,\n r\n );\n }, [\n A,\n e,\n i,\n t,\n c,\n s,\n r\n ]);\n return { isLoadingChatHistory: n, setIsLoadingChatHistory: s, hasChatHistoryLoaded: a, showChatHistory: u };\n}, wo = () => {\n var c, i, u;\n const { settings: A } = O(), { styles: e } = Y(), { showChatHistory: o } = WA(), [t, n] = R(!1), s = {\n color: (c = A.general) == null ? void 0 : c.primaryColor,\n borderColor: (i = A.general) == null ? void 0 : i.primaryColor,\n ...e.chatHistoryButtonStyle,\n // by default inherit the base style\n ...e.chatHistoryButtonHoveredStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-view-history-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n n(!0);\n },\n onMouseLeave: () => {\n n(!1);\n },\n style: t ? s : { ...e.chatHistoryButtonStyle },\n onMouseDown: (f) => {\n f.preventDefault(), o();\n },\n className: \"rcb-view-history-button\",\n role: \"button\",\n tabIndex: 0,\n children: /* @__PURE__ */ l(\"p\", { children: (u = A.chatHistory) == null ? void 0 : u.viewChatHistoryButtonText })\n }\n ) });\n}, Qe = () => {\n var a;\n const { settings: A } = O(), { hasInteractedPage: e, setHasInteractedPage: o, hasFlowStarted: t, setHasFlowStarted: n } = tA(), s = H(() => {\n var c;\n if (o(!0), !t && ((c = A.general) == null ? void 0 : c.flowStartTrigger) === \"ON_PAGE_INTERACT\" && n(!0), !window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const r = new window.SpeechSynthesisUtterance();\n r.text = \"\", r.onend = () => {\n window.removeEventListener(\"click\", s), window.removeEventListener(\"keydown\", s), window.removeEventListener(\"touchstart\", s);\n }, window.speechSynthesis.speak(r);\n }, [t, (a = A.general) == null ? void 0 : a.flowStartTrigger]);\n return {\n hasInteractedPage: e,\n handleFirstInteraction: s\n };\n}, go = () => {\n var y, E, S, p;\n const A = MA(), { settings: e } = O(), {\n replaceMessages: o\n } = hA(), {\n isBotTyping: t,\n isChatWindowOpen: n,\n setUnreadCount: s,\n setSyncedIsChatWindowOpen: a,\n setSyncedTextAreaDisabled: r,\n setSyncedAudioToggledOn: c,\n setSyncedVoiceToggledOn: i,\n setSyncedIsScrolling: u,\n syncedIsScrollingRef: f,\n syncedIsChatWindowOpenRef: d\n } = tA(), { chatBodyRef: w } = AA(), { viewportHeight: g, setViewportHeight: B, setViewportWidth: D, scrollToBottom: b } = sA(), { setUpNotifications: P } = zA(), { handleFirstInteraction: C } = Qe(), { showChatHistory: Q } = WA(), m = eA(0), v = eA(!1);\n V(() => (window.addEventListener(\"click\", C), window.addEventListener(\"keydown\", C), window.addEventListener(\"touchstart\", C), () => {\n window.removeEventListener(\"click\", C), window.removeEventListener(\"keydown\", C), window.removeEventListener(\"touchstart\", C);\n }), []), V(() => {\n const h = w.current;\n if (!h)\n return;\n const T = () => {\n v.current || (v.current = !0, requestAnimationFrame(() => {\n var L, W;\n if (!h)\n return;\n const { scrollTop: M, clientHeight: I, scrollHeight: j } = h, z = M + I < j - (((L = e.chatWindow) == null ? void 0 : L.messagePromptOffset) ?? 30);\n u(z), f.current = z, z || (M + I >= j - 1 && (h.scrollTop = j - I - 1), (d.current || (W = e.general) != null && W.embedded) && s(0)), v.current = !1;\n }));\n };\n return h.addEventListener(\"wheel\", T, { passive: !0 }), h.addEventListener(\"touchmove\", T, { passive: !0 }), () => {\n h.removeEventListener(\"wheel\", T), h.removeEventListener(\"touchmove\", T);\n };\n }, []), V(() => {\n var h, T, M;\n r((h = e.chatInput) == null ? void 0 : h.disabled), a((T = e.chatWindow) == null ? void 0 : T.defaultOpen), c((M = e.audio) == null ? void 0 : M.defaultToggledOn), setTimeout(() => {\n var I;\n i((I = e.voice) == null ? void 0 : I.defaultToggledOn);\n }, 1);\n }, []), V(() => {\n var h;\n (h = e.notification) != null && h.disabled || P();\n }, [(y = e.notification) == null ? void 0 : y.disabled]), V(() => {\n !f.current && (w != null && w.current) && b();\n }, [t]), V(() => {\n var h, T;\n if ((h = e.chatHistory) != null && h.disabled)\n St();\n else if (UA(e), jA().length > 0) {\n const I = gA(/* @__PURE__ */ l(wo, {}), \"SYSTEM\");\n o([I]), (T = e.chatHistory) != null && T.autoLoad && Q();\n }\n }, [(E = e.chatHistory) == null ? void 0 : E.storageKey, (S = e.chatHistory) == null ? void 0 : S.maxEntries, (p = e.chatHistory) == null ? void 0 : p.disabled]), V(() => {\n var h;\n A || (h = e.general) != null && h.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener(\"geometrychange\", (T) => {\n if (!T.target)\n return;\n const { x: M, y: I, width: j, height: z } = T.target.boundingRect;\n M == 0 && I == 0 && j == 0 && z == 0 ? (setTimeout(() => {\n var L;\n B((L = window.visualViewport) == null ? void 0 : L.height);\n }, 101), setTimeout(() => {\n var L, W;\n g != ((L = window.visualViewport) == null ? void 0 : L.height) && B((W = window.visualViewport) == null ? void 0 : W.height);\n }, 1001)) : setTimeout(() => {\n var L;\n B(((L = window.visualViewport) == null ? void 0 : L.height) - z);\n }, 101);\n }));\n }, [A]), V(() => {\n var j, z, L, W;\n if (A)\n return;\n n && (B((j = window.visualViewport) == null ? void 0 : j.height), D((z = window.visualViewport) == null ? void 0 : z.width));\n const h = () => window.scrollTo({ top: 0, left: 0, behavior: \"auto\" }), T = () => m.current = window.scrollY, M = () => {\n var J, F;\n B((J = window.visualViewport) == null ? void 0 : J.height), D((F = window.visualViewport) == null ? void 0 : F.width);\n }, I = () => {\n var J;\n window.removeEventListener(\"scroll\", h), window.removeEventListener(\"scroll\", T), (J = window.visualViewport) == null || J.removeEventListener(\"resize\", M);\n };\n return n ? (I(), document.body.style.position = \"fixed\", window.addEventListener(\"scroll\", h), (L = window.visualViewport) == null || L.addEventListener(\"resize\", M)) : (document.body.style.position = \"static\", I(), window.scrollTo({ top: m.current, left: 0, behavior: \"auto\" }), window.addEventListener(\"scroll\", T), (W = window.visualViewport) == null || W.removeEventListener(\"resize\", M)), I;\n }, [n, A]);\n}, KA = {\n DEFAULT_URL: \"https://cdn.jsdelivr.net/gh/tjtanjin/react-chatbotify-themes/themes\",\n DEFAULT_EXPIRATION: \"2592000\",\n CACHE_KEY_PREFIX: \"RCB_THEME_CACHE_DATA\"\n}, Bo = KA.DEFAULT_URL, vo = KA.DEFAULT_EXPIRATION, be = KA.CACHE_KEY_PREFIX, Po = (A, e, o) => {\n const t = localStorage.getItem(`${be}_${A}_${e}`);\n if (!t)\n return null;\n try {\n const n = JSON.parse(t), s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3);\n return n.cacheDate + o >= a ? n : null;\n } catch (n) {\n return console.error(`Unable to fetch cache for ${A}`, n), null;\n }\n}, ho = (A, e, o, t, n) => {\n const s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3), r = {\n settings: o,\n inlineStyles: t,\n cssStylesText: n,\n cacheDate: a\n };\n localStorage.setItem(`${be}_${A}_${e}`, JSON.stringify(r));\n}, Do = async (A, e) => {\n const o = `${e}/${A}/meta.json`;\n try {\n const t = await fetch(o);\n return t.ok ? (await t.json()).version : (console.error(`Failed to fetch meta.json from ${o}`), null);\n } catch (t) {\n return console.error(`Failed to fetch meta.json from ${o}`, t), null;\n }\n}, oe = async (A, e) => {\n const { id: o, version: t, baseUrl: n = Bo, cacheDuration: s = vo } = e, a = t || await Do(o, n);\n if (!a)\n return console.error(`Unable to find version for theme: ${o}`), { settings: {}, inlineStyles: {}, cssStylesText: \"\" };\n const r = Po(o, a, s);\n if (r) {\n const P = ne(A, r.cssStylesText);\n return { settings: r.settings, inlineStyles: r.inlineStyles, cssStylesText: P };\n }\n const c = `${n}/${o}/${a}/styles.css`, i = `${n}/${o}/${a}/settings.json`, u = `${n}/${o}/${a}/styles.json`;\n let f = \"\";\n const d = await fetch(c);\n d.ok ? f = await d.text() : console.info(`Could not fetch styles.css from ${c}`);\n const w = await fetch(i);\n let g = {};\n w.ok ? g = await w.json() : console.info(`Could not fetch settings.json from ${i}`);\n const B = await fetch(u);\n let D = {};\n B.ok ? D = await B.json() : console.info(`Could not fetch styles.json from ${u}`), ho(o, a, g, D, f);\n const b = ne(A, f);\n return { settings: g, inlineStyles: D, cssStylesText: b };\n}, ne = (A, e) => e.split(new RegExp(\"(?<=})\")).map((t) => {\n const n = t.trim();\n return n.startsWith(\"@import\") || n.startsWith(\"@keyframes\") || n.startsWith(\"@media\") ? n : n ? `#${A} ${n}` : \"\";\n}).join(`\n`), Eo = () => kA(re), yo = () => kA(ce), Co = async (A, e, o, t) => {\n var r, c;\n let n = Eo(), s = yo(), a = \"\";\n if (t != null)\n if (Array.isArray(t))\n for (const i of t) {\n const u = await oe(A, i);\n n = uA(u.settings, n), s = uA(u.inlineStyles, s), a += u.cssStylesText;\n }\n else {\n const i = await oe(A, t);\n n = uA(i.settings, n), s = uA(i.inlineStyles, s), a += i.cssStylesText;\n }\n return e != null && (n = uA(e, n)), o != null && (s = uA(o, s)), ((r = n.chatInput) == null ? void 0 : r.botDelay) != null && ((c = n.chatInput) == null ? void 0 : c.botDelay) < 500 && (n.chatInput.botDelay = 500), { settings: n, inlineStyles: s, cssStylesText: a };\n}, uA = (A, e) => {\n const o = [{ source: A, target: e }];\n for (; o.length; ) {\n const t = o.pop();\n if (t == null)\n continue;\n const { source: n, target: s } = t;\n for (const a of Object.keys(n)) {\n const r = a;\n if (se(n[r]))\n s[r] = n[r];\n else if (typeof n[r] == \"object\" && n[r] !== null && !Array.isArray(n[r]))\n (typeof s[r] != \"object\" || s[r] === null) && (s[r] = {}), o.push({ source: n[r], target: s[r] });\n else\n try {\n s[r] = n[r];\n } catch {\n }\n }\n }\n return e;\n}, kA = (A) => {\n if (A === null || typeof A != \"object\")\n return A;\n const e = Array.isArray(A) ? [] : {}, o = [{ source: A, target: e }], t = /* @__PURE__ */ new WeakMap();\n for (t.set(A, e); o.length; ) {\n const n = o.pop();\n if (n == null)\n continue;\n const { source: s, target: a } = n;\n for (const r in s)\n if (Object.prototype.hasOwnProperty.call(s, r)) {\n const c = s[r];\n if (c && typeof c == \"object\")\n if (t.has(c))\n a[r] = t.get(c);\n else {\n const i = Array.isArray(c) ? [] : {};\n t.set(c, i), a[r] = i, o.push({ source: c, target: i });\n }\n else\n a[r] = c;\n }\n }\n return e;\n}, pe = () => {\n const { settings: A, setSettings: e } = O(), o = H((n) => {\n !n || Object.keys(n).length === 0 || e(kA(uA(n, A)));\n }, [A]), t = H((n) => {\n e(n);\n }, []);\n return {\n settings: A,\n replaceSettings: t,\n updateSettings: o\n };\n}, Se = () => {\n const { styles: A, setStyles: e } = Y(), o = H((n) => {\n !n || Object.keys(n).length === 0 || e(kA(uA(n, A)));\n }, [A]), t = H((n) => {\n e(n);\n }, []);\n return {\n styles: A,\n replaceStyles: t,\n updateStyles: o\n };\n}, mo = (A) => {\n const { updateSettings: e } = pe(), { updateStyles: o } = Se(), t = A == null ? void 0 : A.map((n) => n());\n V(() => {\n let n = {}, s = {};\n t == null || t.forEach((a) => {\n a != null && a.settings && Object.keys(a == null ? void 0 : a.settings).length !== 0 && (n = uA(a.settings, n)), a != null && a.styles && Object.keys(a == null ? void 0 : a.styles).length !== 0 && (s = uA(a.styles, s));\n }), e(n), o(s);\n }, []);\n}, Qo = ({\n plugins: A\n}) => {\n var b, P, C, Q, m;\n const e = MA(), { settings: o } = O(), { styles: t } = Y(), { hasFlowStarted: n, setHasFlowStarted: s } = tA(), { inputRef: a } = AA(), {\n viewportHeight: r,\n viewportWidth: c,\n isChatWindowOpen: i\n } = sA(), { goToPath: u } = QA(), { headerButtons: f, chatInputButtons: d, footerButtons: w } = fo();\n go(), mo(A), V(() => {\n var v;\n (n || ((v = o.general) == null ? void 0 : v.flowStartTrigger) === \"ON_LOAD\") && u(\"start\");\n }, [n, (b = o.general) == null ? void 0 : b.flowStartTrigger]);\n const g = fA(() => {\n var y;\n const v = \"rcb-chatbot-global \";\n return (y = o.general) != null && y.embedded ? v + \"rcb-window-embedded\" : i ? v + \"rcb-window-open\" : v + \"rcb-window-close\";\n }, [o, i]), B = () => {\n var v, y;\n return !e && !((v = o.general) != null && v.embedded) ? {\n ...t.chatWindowStyle,\n borderRadius: \"0px\",\n left: \"0px\",\n right: \"auto\",\n top: \"0px\",\n bottom: \"auto\",\n width: `${c}px`,\n height: `${r}px`,\n zIndex: 1e4\n } : (y = o.general) != null && y.embedded ? { ...t.chatWindowStyle } : {\n ...t.chatWindowStyle,\n zIndex: 1e4\n };\n };\n return /* @__PURE__ */ l(oA, { children: (() => {\n var v, y;\n return e && ((v = o.device) == null ? void 0 : v.desktopEnabled) || !e && ((y = o.device) == null ? void 0 : y.mobileEnabled);\n })() && /* @__PURE__ */ X(\n \"div\",\n {\n onMouseDown: (v) => {\n var y, E;\n !n && ((y = o.general) == null ? void 0 : y.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && s(!0), e ? (E = a.current) == null || E.blur() : v == null || v.preventDefault();\n },\n className: g,\n children: [\n /* @__PURE__ */ l(Wt, {}),\n /* @__PURE__ */ l(Xt, {}),\n i && !e && !((P = o.general) != null && P.embedded) && /* @__PURE__ */ X(oA, { children: [\n /* @__PURE__ */ l(\"style\", { children: `\n\t\t\t\t\t\t\t\t\thtml {\n\t\t\t\t\t\t\t\t\t\toverflow: hidden !important;\n\t\t\t\t\t\t\t\t\t\ttouch-action: none !important;\n\t\t\t\t\t\t\t\t\t\tscroll-behavior: auto !important;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t` }),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"#fff\",\n zIndex: 9999\n }\n }\n )\n ] }),\n /* @__PURE__ */ X(\"div\", { style: B(), className: \"rcb-chat-window\", children: [\n ((C = o.general) == null ? void 0 : C.showHeader) && /* @__PURE__ */ l(tt, { buttons: f }),\n /* @__PURE__ */ l(ft, {}),\n /* @__PURE__ */ l(qt, {}),\n ((Q = o.general) == null ? void 0 : Q.showInputRow) && /* @__PURE__ */ l(Gt, { buttons: d }),\n ((m = o.general) == null ? void 0 : m.showFooter) && /* @__PURE__ */ l(Yt, { buttons: w })\n ] })\n ]\n }\n ) });\n}, Ie = vA(void 0), Te = () => PA(Ie), bo = ({\n children: A\n}) => {\n var u;\n const e = eA(\"\"), o = eA({}), [t, n] = R({}), [s, a] = R({}), [r, c] = R(!1);\n V(() => {\n c(!0);\n }, []);\n const i = async (f, d, w, g, B, D) => {\n e.current = f, o.current = d;\n const b = await Co(f, w, g, B);\n D.current && (D.current.textContent = b.cssStylesText), n(b.settings), a(b.inlineStyles);\n };\n return r ? /* @__PURE__ */ l(\"div\", { style: { fontFamily: (u = t.general) == null ? void 0 : u.fontFamily }, children: /* @__PURE__ */ l(Ie.Provider, { value: { loadConfig: i }, children: /* @__PURE__ */ l(At, { settings: t, setSettings: n, children: /* @__PURE__ */ l(et, { styles: s, setStyles: a, children: /* @__PURE__ */ l(zt, { children: /* @__PURE__ */ l(ot, { botIdRef: e, flowRef: o, children: /* @__PURE__ */ l(rt, { children: /* @__PURE__ */ l(nt, { settings: t, children: /* @__PURE__ */ l(ct, { children: A }) }) }) }) }) }) }) }) }) : null;\n}, po = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s,\n setConfigLoaded: a,\n styleRootRef: r\n}) => {\n const c = fA(() => A, []), i = Te(), { flowRef: u } = AA();\n u && u.current !== e && (u.current = e);\n const f = async () => {\n var d, w;\n (d = o.event) != null && d.rcbPreLoadChatBot && (await NA(\n k.PRE_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n )).defaultPrevented || (i != null && i.loadConfig && (await i.loadConfig(c, e, o, t, n, r), a(!0)), (w = o.event) != null && w.rcbPostLoadChatBot && NA(\n k.POST_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n ));\n };\n return V(() => {\n f();\n }, [n]), null;\n}, LA = [\"Quickstart\", \"API Docs\", \"Examples\", \"Github\", \"Discord\"], So = {\n start: {\n message: \"Hello, I am Tan Jin 👋! Welcome to React ChatBotify, I'm excited that you are using our chatbot 😊!\",\n transition: { duration: 1e3 },\n chatDisabled: !0,\n path: \"show_options\"\n },\n show_options: {\n message: \"It looks like you have not set up a conversation flow yet. No worries! Here are a few helpful things you can check out to get started:\",\n options: LA,\n path: \"process_options\"\n },\n prompt_again: {\n message: \"Do you need any other help?\",\n options: LA,\n path: \"process_options\"\n },\n unknown_input: {\n message: \"Sorry, I do not understand your message 😢! If you require further assistance, you may click on the Github option and open an issue there or visit our discord.\",\n options: LA,\n path: \"process_options\"\n },\n process_options: {\n transition: { duration: 0 },\n path: (A) => {\n let e = \"\";\n switch (A.userInput) {\n case \"Quickstart\":\n e = \"https://react-chatbotify.com/docs/introduction/quickstart/\";\n break;\n case \"API Docs\":\n e = \"https://react-chatbotify.com/docs/api/bot_options\";\n break;\n case \"Examples\":\n e = \"https://react-chatbotify.com/docs/examples/basic_form\";\n break;\n case \"Github\":\n e = \"https://github.com/tjtanjin/react-chatbotify/\";\n break;\n case \"Discord\":\n e = \"https://discord.gg/6R4DK4G5Zh\";\n break;\n default:\n return \"unknown_input\";\n }\n return A.injectMessage(\"Sit tight! I'll send you right there!\"), setTimeout(() => {\n window.open(e);\n }, 1e3), \"repeat\";\n }\n },\n repeat: {\n transition: { duration: 3e3 },\n path: \"prompt_again\"\n }\n}, Lo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n}) => {\n const a = fA(() => A || \"rcb-\" + SA(), []), r = !e || Object.keys(e).length === 0 ? So : e, c = o || {}, i = t || {}, u = s || [], [f, d] = R(!1), w = Te(), g = eA(null), [B, D] = R(n || []);\n V(() => {\n n && D(n);\n }, [n]);\n const b = () => /* @__PURE__ */ X(oA, { children: [\n /* @__PURE__ */ l(\n po,\n {\n styleRootRef: g,\n id: a,\n flow: r,\n settings: c,\n styles: i,\n themes: B,\n plugins: u,\n setConfigLoaded: d\n }\n ),\n f && /* @__PURE__ */ l(Qo, { plugins: s })\n ] });\n return w == null ? /* @__PURE__ */ X(bo, { children: [\n /* @__PURE__ */ l(\"style\", { ref: g }),\n /* @__PURE__ */ l(\"div\", { id: a, children: b() })\n ] }) : /* @__PURE__ */ X(oA, { children: [\n /* @__PURE__ */ l(\"style\", { ref: g }),\n /* @__PURE__ */ l(\"div\", { id: a, children: b() })\n ] });\n}, No = () => {\n const { audioToggledOn: A, speakAudio: e, toggleAudio: o } = GA();\n return {\n audioToggledOn: A,\n speakAudio: e,\n toggleAudio: o\n };\n}, Io = () => {\n const { botIdRef: A } = AA();\n return {\n getBotId: H(() => A.current, [A])\n };\n}, To = () => {\n const { getBotId: A } = Io();\n return {\n getBotId: A\n };\n}, Uo = () => {\n const { isChatWindowOpen: A, toggleChatWindow: e, toggleIsBotTyping: o, scrollToBottom: t } = sA();\n return {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t\n };\n}, Ro = () => {\n const { hasInteractedPage: A } = Qe();\n return {\n hasInteractedPage: A\n };\n}, Mo = () => {\n const { replaceMessages: A } = hA(), { replacePaths: e, goToPath: o } = QA(), { replaceToasts: t } = EA(), { hasFlowStarted: n } = tA(), { flowRef: s, timeoutIdRef: a } = AA(), { settings: r } = O(), c = H(async () => {\n UA(r), a.current && clearTimeout(a.current), A([]), t([]), e([]), await o(\"start\");\n }, [a, r, A, t, e, UA, o]), i = H(() => (s == null ? void 0 : s.current) ?? {}, [s]);\n return {\n hasFlowStarted: n,\n restartFlow: c,\n getFlow: i\n };\n}, Fo = () => {\n const { hasFlowStarted: A, restartFlow: e, getFlow: o } = Mo();\n return {\n hasFlowStarted: A,\n restartFlow: e,\n getFlow: o\n };\n}, jo = () => {\n const {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a\n } = hA();\n return {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a\n };\n}, zo = (A, e) => {\n const { getBotId: o } = To();\n V(() => {\n const t = (n) => {\n n.detail.botId === o() && e(n);\n };\n return window.addEventListener(A, t), () => {\n window.removeEventListener(A, t);\n };\n }, [o, A, e]);\n}, Go = () => {\n const {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n } = QA();\n return {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n };\n}, Yo = () => {\n const { settings: A, replaceSettings: e, updateSettings: o } = pe();\n return {\n settings: A,\n replaceSettings: e,\n updateSettings: o\n };\n}, Xo = () => {\n const { styles: A, replaceStyles: e, updateStyles: o } = Se();\n return {\n styles: A,\n replaceStyles: e,\n updateStyles: o\n };\n}, Wo = () => {\n const {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n } = DA();\n return {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n };\n}, Ko = () => {\n const { showToast: A, dismissToast: e, toasts: o, replaceToasts: t } = EA();\n return {\n showToast: A,\n dismissToast: e,\n toasts: o,\n replaceToasts: t\n };\n}, qo = () => {\n const { voiceToggledOn: A, toggleVoice: e } = TA();\n return {\n voiceToggledOn: A,\n toggleVoice: e\n };\n}, Jo = () => {\n const { showChatHistory: A, hasChatHistoryLoaded: e } = WA();\n return {\n showChatHistory: A,\n getHistoryMessages: jA,\n setHistoryMessages: pt,\n hasChatHistoryLoaded: e\n };\n};\nexport {\n Z as Button,\n bo as ChatBotProvider,\n k as RcbEvent,\n Lo as default,\n Eo as getDefaultSettings,\n yo as getDefaultStyles,\n No as useAudio,\n To as useBotId,\n Jo as useChatHistory,\n Uo as useChatWindow,\n Ro as useFirstInteraction,\n Fo as useFlow,\n jo as useMessages,\n $t as useNotifications,\n zo as useOnRcbEvent,\n Go as usePaths,\n Yo as useSettings,\n Xo as useStyles,\n Wo as useTextArea,\n Ko as useToasts,\n qo as useVoice\n};\n","// Default configuration values for the QA Bot\nexport const DEFAULT_CONFIG = {\n LOGIN_URL: '/login',\n PROMPT_TEXT: 'Questions should stand alone and not refer to previous ones.',\n WELCOME_MESSAGE: 'Hello! What can I help you with?',\n WELCOME_MESSAGE_LOGGED_OUT: 'To ask questions, please log in.',\n WELCOME_MESSAGE_LOGIN_TRANSITION: 'Welcome! You are now logged in. How can I help you today?',\n WELCOME_MESSAGE_LOGOUT_TRANSITION: 'You have been logged out.',\n API_ENDPOINT: 'https://access-ai.ccs.uky.edu/api/query',\n\n // Error messages\n ERRORS: {\n API_UNAVAILABLE: 'Unable to contact the Q&A Bot. Please try again later.',\n },\n\n // Theme defaults\n THEME: {\n PRIMARY_COLOR: '#1a5b6e',\n SECONDARY_COLOR: '#107180',\n FONT_FAMILY: 'Arial, sans-serif'\n },\n\n // Chat bot UI defaults\n CHATBOT: {\n TITLE: 'ACCESS Q&A Bot',\n AVATAR_URL: 'https://support.access-ci.org/themes/contrib/asp-theme/images/icons/ACCESS-arrrow.svg',\n TOOLTIP_TEXT: 'Ask me about ACCESS! 😊'\n }\n};","import React, { useImperativeHandle } from 'react';\nimport { useFlow, useMessages, useChatWindow } from \"react-chatbotify\";\nimport useLoginStateTransition from '../hooks/useLoginStateTransition';\n\n/**\n * BotController Component\n *\n * Handles the integration between react-chatbotify hooks and the imperative API.\n * This component must be rendered inside ChatBotProvider to access the hooks.\n *\n * @param {Object} props - Component props\n * @param {boolean} props.embedded - Whether the bot is embedded (affects chat window controls)\n * @param {Function} props.setIsBotLoggedIn - Function to update login state\n * @param {boolean} props.isBotLoggedIn - Current login state\n * @param {React.Ref} ref - The forwarded ref for the imperative API\n */\nconst BotController = React.forwardRef(({ embedded, setIsBotLoggedIn, isBotLoggedIn }, ref) => {\n // Get the chatbot hooks (must be inside ChatBotProvider)\n const messages = useMessages();\n const flow = useFlow();\n const chatWindow = useChatWindow();\n\n // Handle login state transitions with automatic message injection\n useLoginStateTransition(isBotLoggedIn);\n\n // Set up the imperative API methods\n useImperativeHandle(ref, () => ({\n // Add a message to the chat\n addMessage: (message) => {\n if (messages && messages.injectMessage) {\n messages.injectMessage(message);\n }\n },\n // Set login status\n setBotIsLoggedIn: (status) => {\n setIsBotLoggedIn(status);\n // Don't restart flow - let the flow's path functions handle the login state change\n },\n // Open the chat window (floating mode only)\n openChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(true);\n }\n },\n // Close the chat window (floating mode only)\n closeChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(false);\n }\n },\n // Toggle the chat window (floating mode only)\n toggleChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow();\n }\n }\n }), [messages, chatWindow, embedded, setIsBotLoggedIn]);\n\n // This component doesn't render anything\n return null;\n});\n\nexport default BotController;","import { useEffect, useRef } from 'react';\nimport { useMessages } from 'react-chatbotify';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to handle login state transitions with automatic message injection\n * @param {boolean} isBotLoggedIn - Current login state\n */\nconst useLoginStateTransition = (isBotLoggedIn) => {\n const prevLoginStateRef = useRef(isBotLoggedIn);\n const { injectMessage } = useMessages();\n\n useEffect(() => {\n const loginStateChanged = prevLoginStateRef.current !== isBotLoggedIn;\n const justLoggedIn = !prevLoginStateRef.current && isBotLoggedIn;\n\n if (loginStateChanged) {\n if (justLoggedIn) {\n injectMessage(DEFAULT_CONFIG.WELCOME_MESSAGE_LOGIN_TRANSITION, 'bot');\n } else {\n injectMessage(DEFAULT_CONFIG.WELCOME_MESSAGE_LOGOUT_TRANSITION, 'bot');\n }\n }\n\n // Update the previous state for next comparison\n prevLoginStateRef.current = isBotLoggedIn;\n }, [isBotLoggedIn, injectMessage]);\n};\n\nexport default useLoginStateTransition;","import React from 'react';\n\n/**\n * UserIcon Component\n *\n * A standalone component for the user icon that can be styled independently\n *\n * @returns {JSX.Element} Rendered user icon\n */\nconst UserIcon = () => (\n <div\n className=\"user-login-icon\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '30px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: '#1a5b6e',\n marginRight: '5px'\n }}\n title=\"User logged in\"\n // onClick={() => console.log('UserIcon clicked')}\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"12\" cy=\"7\" r=\"4\"></circle>\n </svg>\n </div>\n);\n\nexport default UserIcon;","import React from 'react';\n\n/**\n * LoginButton Component\n *\n * A standalone component for the login button that can be styled independently\n *\n * @param {Object} props - Component props\n * @param {string} props.loginUrl - URL to navigate to for login\n * @param {string} [props.className] - Optional CSS class for styling\n * @param {Object} [props.style] - Optional inline styles\n * @returns {JSX.Element} Rendered login button\n */\nconst LoginButton = ({ loginUrl, className = '', style }) => {\n const defaultStyle = {\n display: 'inline-block',\n padding: '10px 20px',\n backgroundColor: 'white',\n border: '1px solid #107180',\n color: '#107180',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'bold',\n textAlign: 'center',\n margin: '18px',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)'\n };\n\n return (\n <a\n href={loginUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`qa-bot-login-button ${className}`}\n style={{ ...defaultStyle, ...style }}\n >\n Log In\n </a>\n );\n};\n\nexport default LoginButton;","import React from 'react';\nimport { useMemo } from 'react';\nimport LoginButton from '../components/LoginButton';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to generate the chat flow configuration\n * @param {Object} params - Parameters for the flow\n * @param {string} params.welcomeMessage - Welcome message to display\n * @param {boolean} params.isBotLoggedIn - Whether the bot user is logged in\n * @param {string} params.loginUrl - URL for login\n * @param {Function} params.handleQuery - Function to handle AI queries\n * @param {boolean} params.hasQueryError - Whether there's a query error\n * @returns {Object} Flow configuration object\n */\n\nfunction calculateWelcomeMessage(isBotLoggedIn, welcomeMessage) {\n const loggedInWelcome = welcomeMessage !== undefined ? welcomeMessage : DEFAULT_CONFIG.WELCOME_MESSAGE;\n const loggedOutWelcome = DEFAULT_CONFIG.WELCOME_MESSAGE_LOGGED_OUT;\n return isBotLoggedIn ? loggedInWelcome : loggedOutWelcome;\n}\n\nfunction calculateComponent(isBotLoggedIn, loginUrl){\n return !isBotLoggedIn ? <LoginButton loginUrl={loginUrl} /> : null;\n}\n\nconst useChatFlow = ({ welcomeMessage, isBotLoggedIn, loginUrl, handleQuery, hasQueryError }) => {\n console.log('| calculating flow | isBotLoggedIn', isBotLoggedIn);\n\n const flow = useMemo(() => ({\n start: {\n message: calculateWelcomeMessage(isBotLoggedIn, welcomeMessage),\n component: calculateComponent(isBotLoggedIn, loginUrl),\n path: isBotLoggedIn ? 'loop' : 'start'\n },\n loop: {\n message: async (params) => {\n await handleQuery(params);\n },\n path: () => hasQueryError ? 'start' : 'loop'\n }\n }), [isBotLoggedIn, loginUrl, handleQuery, hasQueryError, welcomeMessage]);\n\n return flow;\n};\n\nexport default useChatFlow;","import React, { useRef, useState, useEffect } from 'react';\nimport ChatBot, { ChatBotProvider } from \"react-chatbotify\";\nimport BotController from './BotController';\nimport useThemeColors from '../hooks/useThemeColors';\nimport useChatBotSettings from '../hooks/useChatBotSettings';\nimport useHandleAIQuery from '../hooks/useHandleAIQuery';\nimport useChatFlow from '../hooks/useChatFlow';\nimport useUpdateHeader from '../hooks/useUpdateHeader';\nimport useRingEffect from '../hooks/useRingEffect';\nimport { DEFAULT_CONFIG } from '../config/constants';\nimport '../styles/rcb-base.css';\n\n/**\n * Q&A Bot Component\n *\n * @param {Object} [props]\n * @param {string} [props.apiKey] - API key for the Q&A endpoint\n * @param {boolean} [props.defaultOpen=false] - Whether the chat window is open by default (floating mode only, ignored for embedded)\n * @param {boolean} [props.embedded=false] - Whether the bot is embedded in the page (always open when embedded)\n * @param {boolean} [props.isLoggedIn=false] - Whether the user is logged in\n * @param {string} [props.loginUrl='/login'] - URL to redirect for login\n\n * @param {boolean} [props.ringEffect=true] - Whether to apply the phone ring animation effect to the tooltip\n * @param {string} [props.welcome='Hello! What can I help you with?'] - Welcome message\n * @returns {JSX.Element}\n */\n\nconst buildWelcomeMessage = (isLoggedIn, welcomeMessage) => {\n if (isLoggedIn) {\n return welcomeMessage || DEFAULT_CONFIG.WELCOME_MESSAGE;\n } else {\n return DEFAULT_CONFIG.WELCOME_MESSAGE_LOGGED_OUT;\n }\n}\n\nconst QABot = React.forwardRef((props, ref) => {\n // Destructure props\n const {\n apiKey,\n defaultOpen,\n embedded = false,\n isLoggedIn,\n loginUrl = DEFAULT_CONFIG.LOGIN_URL,\n ringEffect = true,\n welcome\n } = props;\n\n // API configuration\n const finalApiKey = apiKey || process.env.REACT_APP_API_KEY;\n\n // State management\n const [isBotLoggedIn, setIsBotLoggedIn] = useState(isLoggedIn !== undefined ? isLoggedIn : false);\n const [hasQueryError, setHasQueryError] = useState(false);\n\n // Update internal state when isLoggedIn prop changes\n useEffect(() => {\n if (isLoggedIn !== undefined) {\n setIsBotLoggedIn(isLoggedIn);\n }\n }, [isLoggedIn]);\n\n // Derived values\n const welcomeMessage = buildWelcomeMessage(isBotLoggedIn, welcome);\n\n // Refs\n const containerRef = useRef(null);\n\n const themeColors = useThemeColors(containerRef);\n const chatBotSettings = useChatBotSettings({\n themeColors,\n embedded,\n defaultOpen: defaultOpen,\n isLoggedIn: isBotLoggedIn\n });\n\n // Use the AI query handling hook\n const handleQuery = useHandleAIQuery(finalApiKey, setHasQueryError);\n\n // Use the chat flow hook\n const flow = useChatFlow({\n welcomeMessage,\n isBotLoggedIn,\n loginUrl,\n handleQuery,\n hasQueryError\n });\n\n // Use custom hook to update header title dynamically\n useUpdateHeader(isBotLoggedIn, containerRef);\n\n // Use custom hook to apply ring effect if enabled\n useRingEffect(ringEffect, containerRef);\n\n return (\n <div className={`qa-bot ${embedded ? \"embedded-qa-bot\" : \"\"}`} ref={containerRef}>\n <ChatBotProvider>\n <BotController\n ref={ref}\n embedded={embedded}\n setIsBotLoggedIn={setIsBotLoggedIn}\n isBotLoggedIn={isBotLoggedIn}\n />\n <ChatBot\n settings={chatBotSettings}\n flow={flow}\n />\n </ChatBotProvider>\n </div>\n );\n});\n\nexport default QABot;","import { useMemo } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to get theme colors from CSS variables\n * @param {React.RefObject} containerRef - Reference to the container element\n * @param {Object} defaultColors - Default color values if CSS variables are not found\n * @returns {Object} Theme colors object\n */\nconst useThemeColors = (containerRef, defaultColors = {}) => {\n const themeColors = useMemo(() => {\n // Get colors from CSS variables if available, fall back to defaults\n const getCSSVariable = (name, fallback) => {\n if (containerRef.current) {\n // First check the container itself\n const containerStyle = getComputedStyle(containerRef.current);\n const containerValue = containerStyle.getPropertyValue(name);\n if (containerValue && containerValue.trim() !== '') {\n return containerValue.trim();\n }\n\n // Then check parent (useful for web component shadow DOM)\n if (containerRef.current.parentElement) {\n const parentStyle = getComputedStyle(containerRef.current.parentElement);\n const parentValue = parentStyle.getPropertyValue(name);\n if (parentValue && parentValue.trim() !== '') {\n return parentValue.trim();\n }\n }\n }\n return fallback;\n };\n\n return {\n primaryColor: getCSSVariable('--primary-color', defaultColors.primaryColor || DEFAULT_CONFIG.THEME.PRIMARY_COLOR),\n secondaryColor: getCSSVariable('--secondary-color', defaultColors.secondaryColor || DEFAULT_CONFIG.THEME.SECONDARY_COLOR),\n fontFamily: getCSSVariable('--font-family', defaultColors.fontFamily || DEFAULT_CONFIG.THEME.FONT_FAMILY)\n };\n }, [containerRef, defaultColors]);\n\n return themeColors;\n};\n\nexport default useThemeColors;","import React, { useMemo } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\nimport UserIcon from '../components/UserIcon';\nimport { Button } from \"react-chatbotify\"\n\n/**\n * Custom hook to generate ChatBot settings\n * @param {Object} params - Parameters for generating settings\n * @param {Object} params.themeColors - Theme colors from useThemeColors\n * @param {boolean} params.embedded - Whether the bot is embedded\n * @param {boolean} params.defaultOpen - Default open state (floating mode only)\n * @param {boolean} params.isLoggedIn - Whether user is logged in\n * @returns {Object} ChatBot settings object\n */\nconst useChatBotSettings = ({\n themeColors,\n embedded,\n defaultOpen,\n isLoggedIn\n}) => {\n // console.log('| useChatBotSettings | isLoggedIn', isLoggedIn);\n const settings = useMemo(() => {\n return {\n general: {\n ...themeColors,\n embedded: embedded\n },\n header: {\n title: DEFAULT_CONFIG.CHATBOT.TITLE,\n avatar: DEFAULT_CONFIG.CHATBOT.AVATAR_URL,\n buttons: [\n <UserIcon key=\"user-icon\" />,\n Button.CLOSE_CHAT_BUTTON\n ]\n },\n chatWindow: {\n defaultOpen: embedded ? true : defaultOpen,\n },\n chatInput: {\n enabledPlaceholderText: DEFAULT_CONFIG.PROMPT_TEXT,\n disabledPlaceholderText: 'Please log in to ask questions.',\n disabled: false\n },\n chatHistory: {\n disabled: false\n },\n botBubble: {\n simulateStream: true,\n dangerouslySetInnerHtml: true\n },\n chatButton: {\n icon: DEFAULT_CONFIG.CHATBOT.AVATAR_URL,\n },\n tooltip: {\n text: DEFAULT_CONFIG.CHATBOT.TOOLTIP_TEXT,\n mode: 'START'\n },\n audio: {\n disabled: true,\n },\n emoji: {\n disabled: true,\n },\n fileAttachment: {\n disabled: true,\n },\n notification: {\n disabled: true,\n },\n footer: {\n text: (<div>Find out more <a href=\"https://support.access-ci.org/tools/access-qa-tool\">about this tool</a> or <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSeWnE1r738GU1u_ri3TRpw9dItn6JNPi7-FH7QFB9bAHSVN0w/viewform\">give us feedback</a>.</div>),\n },\n };\n }, [themeColors, embedded, defaultOpen, isLoggedIn]);\n\n return settings;\n};\n\nexport default useChatBotSettings;","import { useCallback } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to handle AI query processing\n * @param {string} apiKey - API key for the Q&A endpoint\n * @param {Function} setHasQueryError - Function to set query error state\n * @returns {Function} handleQuery function\n */\nconst useHandleAIQuery = (apiKey, setHasQueryError) => {\n const handleQuery = useCallback(async (params) => {\n // Reset error state before new query\n setHasQueryError(false);\n\n try {\n const requestOptions = {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-API-KEY': apiKey\n },\n body: JSON.stringify({ query: params.userInput })\n };\n\n const response = await fetch(DEFAULT_CONFIG.API_ENDPOINT, requestOptions);\n const body = await response.json();\n const text = body.response;\n\n await params.streamMessage(text);\n } catch (error) {\n await params.injectMessage(DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE);\n setHasQueryError(true);\n }\n }, [apiKey, setHasQueryError]);\n\n return handleQuery;\n};\n\nexport default useHandleAIQuery;","import { useEffect } from 'react';\n\n/**\n * Custom hook to update the chatbot header\n * This avoids relying on the beta useSettings hook from react-chatbotify\n * When this hook is stable, we can refactor to use it\n *\n * @param {boolean} isLoggedIn - Whether the user is logged in\n * @param {React.RefObject} containerRef - Reference to the chatbot container\n */\nconst useUpdateHeader = (isLoggedIn, containerRef) => {\n useEffect(() => {\n if (!containerRef.current) {\n console.log('| useUpdateHeader | No container ref yet');\n return;\n }\n if (isLoggedIn) {\n containerRef.current.classList.add('bot-logged-in');\n } else {\n containerRef.current.classList.remove('bot-logged-in');\n }\n }, [isLoggedIn, containerRef]);\n};\n\nexport default useUpdateHeader;","import { useEffect } from 'react';\n\n/**\n * Custom hook to apply ring effect to the chatbot tooltip\n * This hook fires once when the bot is instantiated and applies the phone-ring class\n * to the .rcb-tooltip-show element if ringEffect is enabled\n * The react-chatbotify tooltip is set in config to only show on the first load\n * Once a user opens the chatbot, it won't show the tool tip when closed\n * (Unless you change the tooltip setting in the react-chatbotify settings object)\n *\n * @param {boolean} ringEffect - Whether to apply the ring effect\n * @param {React.RefObject} containerRef - Reference to the chatbot container\n */\nconst useRingEffect = (ringEffect, containerRef) => {\n useEffect(() => {\n if (!ringEffect || !containerRef.current) {\n console.log('| useRingEffect | Ring effect disabled or no container ref');\n return;\n }\n\n const timeoutId = setTimeout(() => {\n const tooltipElement = containerRef.current?.querySelector('.rcb-tooltip-show');\n if (tooltipElement) {\n tooltipElement.classList.add('phone-ring');\n }\n }, 500); // 500ms delay to make sure its rendered and gain user attention\n\n // Cleanup function\n return () => {\n clearTimeout(timeoutId);\n };\n }, [ringEffect, containerRef]); // Only run when ringEffect or containerRef changes\n};\n\nexport default useRingEffect;","/**\n * Wrapper component used by the qaBot() JavaScript API\n */\nimport React from 'react';\nimport './App.css';\nimport QABot from './components/QABot';\n\nconst App = React.forwardRef((props, ref) => {\n return (\n <QABot\n ref={ref}\n apiKey={props.apiKey}\n defaultOpen={props.defaultOpen}\n embedded={props.embedded}\n isLoggedIn={props.isLoggedIn}\n loginUrl={props.loginUrl}\n onClose={props.onClose}\n ringEffect={props.ringEffect}\n welcome={props.welcome}\n />\n );\n});\n\nexport default App;\n","// src/web-component.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport QABot from './components/QABot';\nimport './styles/index.css'; // Import all styles\n\n// Create a Web Component wrapper for the React component\nclass QABotWebComponent extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n\n // Create a container for the React component\n this.container = document.createElement('div');\n this.container.className = 'qa-bot-container';\n this.shadowRoot.appendChild(this.container);\n\n // Internal refs\n this._root = null;\n this._qaRef = React.createRef();\n\n // Copy over CSS from main document to ensure all styles are available\n this.injectStyles();\n }\n\n // Public API method for adding messages\n addMessage(message) {\n if (this._qaRef.current) {\n this._qaRef.current.addMessage(message);\n }\n }\n\n // Public API method for setting login status\n setBotIsLoggedIn(status) {\n if (this._qaRef.current) {\n this._qaRef.current.setBotIsLoggedIn(status);\n } else {\n // If not rendered yet, set attribute for when it renders\n if (status) {\n this.setAttribute('is-logged-in', '');\n } else {\n this.removeAttribute('is-logged-in');\n }\n }\n }\n\n // Public API method for opening the chat window (floating mode only)\n openChat() {\n if (this._qaRef.current) {\n this._qaRef.current.openChat();\n }\n }\n\n // Public API method for closing the chat window (floating mode only)\n closeChat() {\n if (this._qaRef.current) {\n this._qaRef.current.closeChat();\n }\n }\n\n // Public API method for toggling the chat window (floating mode only)\n toggleChat() {\n if (this._qaRef.current) {\n this._qaRef.current.toggleChat();\n }\n }\n\n // Inject CSS from document to shadow DOM to maintain consistent styling\n injectStyles() {\n // Add base styles for proper element display\n const baseStyle = document.createElement('style');\n baseStyle.textContent = `\n :host {\n display: block;\n --primary-color: #1a5b6e;\n --secondary-color: #107180;\n --font-family: Arial, sans-serif;\n }\n\n .qa-bot-container {\n width: 100%;\n height: 100%;\n font-family: var(--font-family);\n }\n `;\n this.shadowRoot.appendChild(baseStyle);\n\n // Import essential styles needed for react-chatbotify\n // This ensures the web component looks identical to the React version\n const chatbotStyles = document.createElement('style');\n chatbotStyles.textContent = `\n /* Essential styles from react-chatbotify */\n .rcb-header-avatar {\n width: 24px !important;\n height: 24px !important;\n margin-right: 8px !important;\n }\n\n .rcb-chat-button {\n background-color: var(--primary-color) !important;\n }\n\n /* Ensure proper z-index for floating button */\n .rcb-floating-button {\n z-index: 1000 !important;\n }\n\n /* Make links in footer readable */\n .rcb-chat-footer a {\n color: var(--primary-color) !important;\n }\n\n /* Fix button styling */\n .rcb-send-button {\n background-color: var(--primary-color) !important;\n }\n\n /* Phone ring animation for tooltip */\n .rcb-tooltip-show.phone-ring {\n animation: phone-ring 3s ease-out !important;\n z-index: 10000 !important;\n }\n\n @keyframes phone-ring {\n 0% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n /* First ring - quick shake */\n 2% {\n transform: translateX(0) translateY(-8px) rotate(-2deg);\n }\n 4% {\n transform: translateX(0) translateY(-6px) rotate(2deg);\n }\n 6% {\n transform: translateX(0) translateY(-8px) rotate(-1deg);\n }\n 8% {\n transform: translateX(0) translateY(-6px) rotate(1deg);\n }\n 10% {\n transform: translateX(0) translateY(-8px) rotate(-2deg);\n }\n 12% {\n transform: translateX(0) translateY(-6px) rotate(2deg);\n }\n /* Settle down */\n 20% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n 30% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n 40% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n 49% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n /* Second ring - quick shake */\n 50% {\n transform: translateX(0) translateY(-8px) rotate(-2deg);\n }\n 52% {\n transform: translateX(0) translateY(-6px) rotate(2deg);\n }\n 54% {\n transform: translateX(0) translateY(-8px) rotate(-1deg);\n }\n 56% {\n transform: translateX(0) translateY(-6px) rotate(1deg);\n }\n 58% {\n transform: translateX(0) translateY(-8px) rotate(-2deg);\n }\n 60% {\n transform: translateX(0) translateY(-6px) rotate(2deg);\n }\n /* Final settle */\n 70% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n 100% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n }\n `;\n this.shadowRoot.appendChild(chatbotStyles);\n\n // Import all styles from the document in case they're needed\n if (document.styleSheets) {\n try {\n const styleSheet = document.createElement('style');\n let cssText = '';\n\n // Collect CSS rules from document stylesheets\n for (let i = 0; i < document.styleSheets.length; i++) {\n try {\n const sheet = document.styleSheets[i];\n\n // Skip external stylesheets which can't be accessed due to CORS\n if (sheet.href && !sheet.href.startsWith(window.location.origin)) continue;\n\n const rules = sheet.cssRules || sheet.rules;\n if (!rules) continue;\n\n for (let j = 0; j < rules.length; j++) {\n // Include rules for chatbot, embedded chat, and related classes\n if (rules[j].selectorText &&\n (rules[j].selectorText.includes('.rcb-') ||\n rules[j].selectorText.includes('.qa-bot') ||\n rules[j].selectorText.includes('.qa-bot-container'))) {\n cssText += rules[j].cssText + '\\n';\n }\n }\n } catch (e) {\n // Skip inaccessible stylesheets\n continue;\n }\n }\n\n if (cssText) {\n styleSheet.textContent = cssText;\n this.shadowRoot.appendChild(styleSheet);\n }\n } catch (e) {\n console.warn('Failed to copy document styles to shadow DOM', e);\n }\n }\n }\n\n // Observe these attributes for changes\n static get observedAttributes() {\n return [\n 'api-key',\n 'default-open',\n 'embedded',\n 'is-logged-in',\n 'login-url',\n 'ring-effect',\n 'welcome'\n ];\n }\n\n // React to attribute changes\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue !== newValue) {\n // Handle login state changes without re-rendering the entire component\n if (name === 'is-logged-in' && this._qaRef.current) {\n this._qaRef.current.setBotIsLoggedIn(newValue !== null);\n } else {\n // For other attribute changes, re-render the component\n this._render();\n }\n }\n }\n\n // Helper method to parse boolean attributes with default values\n _getBooleanAttribute(name, defaultValue = false) {\n if (!this.hasAttribute(name)) {\n return defaultValue;\n }\n\n const value = this.getAttribute(name);\n if (value === null || value === '') {\n // Attribute present without value (e.g., <element attr>) means true\n return true;\n }\n\n // Parse string values\n const lowerValue = value.toLowerCase();\n if (lowerValue === 'false' || lowerValue === '0') {\n return false;\n }\n if (lowerValue === 'true' || lowerValue === '1') {\n return true;\n }\n\n // For any other value, treat as true if attribute is present\n return true;\n }\n\n // Convert attributes to props\n _getProps() {\n return {\n apiKey: this.getAttribute('api-key') || 'demo-key',\n defaultOpen: this._getBooleanAttribute('default-open', false),\n embedded: this._getBooleanAttribute('embedded', false),\n isLoggedIn: this._getBooleanAttribute('is-logged-in', false),\n loginUrl: this.getAttribute('login-url'),\n ringEffect: this._getBooleanAttribute('ring-effect', true),\n welcome: this.getAttribute('welcome')\n };\n }\n\n // Lifecycle methods\n connectedCallback() {\n // Add support for CSS custom properties from parent\n this.syncStyles();\n this._render();\n\n // Set up a MutationObserver to watch for style attribute changes\n this.styleObserver = new MutationObserver(() => this.syncStyles());\n this.styleObserver.observe(this, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n disconnectedCallback() {\n if (this.styleObserver) {\n this.styleObserver.disconnect();\n }\n\n if (this._root) {\n this._root.unmount();\n }\n }\n\n // Sync styles from host element to shadow DOM\n syncStyles() {\n if (this.style.cssText) {\n const styleProps = this.style.cssText.split(';')\n .filter(prop => prop.trim().startsWith('--'))\n .map(prop => prop.trim());\n\n if (styleProps.length > 0) {\n const containerStyle = this.container.style;\n styleProps.forEach(prop => {\n const [name, value] = prop.split(':').map(p => p.trim());\n containerStyle.setProperty(name, value);\n });\n }\n }\n }\n\n // Render the React component\n _render() {\n if (!this._root) {\n this._root = ReactDOM.createRoot(this.container);\n }\n\n const props = this._getProps();\n this._root.render(\n <React.StrictMode>\n <QABot ref={this._qaRef} {...props} />\n </React.StrictMode>\n );\n }\n}\n\n// Define the custom element\ncustomElements.define('qa-bot', QABotWebComponent);\n\n// Export the web component reference\nexport const WebComponentQABot = QABotWebComponent;\n\n// Create a function-based API for programmatic initialization\nexport function webComponentQABot(config) {\n const { target, ...props } = config;\n\n if (!target || !(target instanceof HTMLElement)) {\n console.error('QA Bot: A valid target DOM element is required');\n return;\n }\n\n // Create a new QA bot web component instance\n const qaBot = document.createElement('qa-bot');\n\n // Set attributes based on props\n if (props.apiKey) qaBot.setAttribute('api-key', props.apiKey);\n if (props.defaultOpen) qaBot.setAttribute('default-open', '');\n if (props.embedded) qaBot.setAttribute('embedded', '');\n if (props.isLoggedIn) qaBot.setAttribute('is-logged-in', '');\n if (props.loginUrl) qaBot.setAttribute('login-url', props.loginUrl);\n if (props.ringEffect !== undefined) {\n qaBot.setAttribute('ring-effect', props.ringEffect.toString());\n }\n if (props.welcome) qaBot.setAttribute('welcome', props.welcome);\n\n // Set CSS custom properties if provided\n if (props.primaryColor) {\n qaBot.style.setProperty('--primary-color', props.primaryColor);\n }\n\n if (props.secondaryColor) {\n qaBot.style.setProperty('--secondary-color', props.secondaryColor);\n }\n\n if (props.fontFamily) {\n qaBot.style.setProperty('--font-family', props.fontFamily);\n }\n\n // Append to target\n target.appendChild(qaBot);\n\n // Return controller object\n return {\n // Add a message to the chat\n addMessage: (message) => qaBot.addMessage(message),\n // Set login status\n setBotIsLoggedIn: (status) => qaBot.setBotIsLoggedIn(status),\n // Open the chat window (floating mode only)\n openChat: () => qaBot.openChat(),\n // Close the chat window (floating mode only)\n closeChat: () => qaBot.closeChat(),\n // Toggle the chat window (floating mode only)\n toggleChat: () => qaBot.toggleChat(),\n // Cleanup function (backward compatibility)\n destroy: () => {\n target.removeChild(qaBot);\n }\n };\n}\n\n// For standalone UMD build, expose the API globally\nif (typeof window !== 'undefined') {\n // Provide a global process.env for the standalone build\n window.process = { env: { REACT_APP_API_KEY: 'demo-key' } };\n\n // Expose the function directly on window for clean script tag usage\n window.qaBot = webComponentQABot;\n\n // Note: The UMD build (rollup.config.mjs) is configured with name: 'qaBot'\n // This automatically makes qaBot available as a global variable\n}","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport QABot from './components/QABot';\nimport App from './App';\nimport './App.css';\nimport './index.css';\nimport { WebComponentQABot, webComponentQABot } from './web-component';\n\n// Export QABot component directly for users who want to use it as a React component\nexport { QABot };\n\n// Re-export the web component functionality for those accessing via the main entry point\nexport { WebComponentQABot };\n\n// Function-based API that prioritizes web component usage\n// and then attempts a react render (since some people may use the function within a react context)\nexport function qaBot({\n target,\n apiKey,\n defaultOpen,\n embedded,\n isLoggedIn,\n loginUrl,\n ringEffect,\n version,\n welcome\n}) {\n if (!target || !(target instanceof HTMLElement)) {\n console.error('QA Bot: A valid target DOM element is required');\n return;\n }\n\n // If the web component is available, use it\n if (typeof window !== 'undefined' && typeof customElements !== 'undefined' &&\n customElements.get('qa-bot')) {\n return webComponentQABot({\n target,\n apiKey,\n defaultOpen,\n embedded,\n isLoggedIn,\n loginUrl,\n ringEffect,\n welcome\n });\n } else {\n // Use direct react rendering\n const root = ReactDOM.createRoot(target);\n const qaRef = React.createRef();\n\n root.render(\n <React.StrictMode>\n <App\n ref={qaRef}\n apiKey={apiKey}\n defaultOpen={defaultOpen}\n embedded={embedded}\n isLoggedIn={isLoggedIn}\n loginUrl={loginUrl}\n ringEffect={ringEffect}\n welcome={welcome}\n />\n </React.StrictMode>\n );\n\n // Return a controller object with the addMessage method\n return {\n // Add a message to the chat\n addMessage: (message) => {\n if (qaRef.current) {\n qaRef.current.addMessage(message);\n }\n },\n // Set login status\n setBotIsLoggedIn: (status) => {\n if (qaRef.current) {\n qaRef.current.setBotIsLoggedIn(status);\n }\n },\n // Open the chat window (floating mode only)\n openChat: () => {\n if (qaRef.current) {\n qaRef.current.openChat();\n }\n },\n // Close the chat window (floating mode only)\n closeChat: () => {\n if (qaRef.current) {\n qaRef.current.closeChat();\n }\n },\n // Toggle the chat window (floating mode only)\n toggleChat: () => {\n if (qaRef.current) {\n qaRef.current.toggleChat();\n }\n },\n // Cleanup function (backward compatibility)\n destroy: () => {\n root.unmount();\n }\n };\n }\n}\n\n// Default export for simplicity\nexport default QABot;"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Z","AUDIO_BUTTON","NOTIFICATION_BUTTON","CLOSE_CHAT_BUTTON","SEND_MESSAGE_BUTTON","VOICE_MESSAGE_BUTTON","FILE_ATTACHMENT_BUTTON","EMOJI_PICKER_BUTTON","$A","Ae","cA","A","e","q","viewBox","d","fill","fillRule","ee","Ne","Re","je","xmlns","strokeLinecap","strokeWidth","Ge","Xe","Ke","te","Ve","_e","re","general","primaryColor","secondaryColor","fontFamily","showHeader","showFooter","showInputRow","actionDisabledIcon","embedded","flowStartTrigger","tooltip","mode","text","chatButton","icon","header","title","l","cursor","margin","fontSize","fontWeight","onClick","window","open","children","showAvatar","avatar","buttons","closeChatIcon","notification","disabled","defaultToggledOn","volume","iconDisabled","sound","showCount","audio","language","voiceNames","rate","chatHistory","maxEntries","storageKey","storageType","viewChatHistoryButtonText","chatHistoryLineBreakText","autoLoad","chatInput","allowNewline","enabledPlaceholderText","disabledPlaceholderText","showCharacterCount","characterLimit","botDelay","sendButtonIcon","blockSpam","sendOptionOutput","sendCheckboxOutput","chatWindow","showScrollbar","showTypingIndicator","autoJumpToBottom","showMessagePrompt","messagePromptText","messagePromptOffset","defaultOpen","sensitiveInput","maskInTextArea","maskInUserBubble","asterisksCount","hideInUserBubble","userBubble","animate","simulateStream","streamSpeed","botBubble","voice","timeoutPeriod","autoSendDisabled","autoSendPeriod","sendAsAudio","footer","X","display","flexDirection","alignItems","columnGap","borderRadius","width","height","justifyContent","background","fileAttachment","multiple","accept","sendFileName","showMediaDisplay","emoji","list","toast","maxCount","forbidOnMax","dismissOnClick","event","rcbPreInjectMessage","rcbPostInjectMessage","rcbStartSimulateStreamMessage","rcbStopSimulateStreamMessage","rcbStartStreamMessage","rcbChunkStreamMessage","rcbStopStreamMessage","rcbRemoveMessage","rcbLoadChatHistory","rcbToggleChatWindow","rcbStartSpeakAudio","rcbToggleAudio","rcbToggleNotifications","rcbToggleVoice","rcbChangePath","rcbShowToast","rcbDismissToast","rcbUserSubmitText","rcbUserUploadFile","rcbTextAreaChangeValue","rcbPreLoadChatBot","rcbPostLoadChatBot","rcbPreProcessBlock","rcbPostProcessBlock","ariaLabel","audioButton","closeChatButton","emojiButton","fileAttachmentButton","notificationButton","sendButton","voiceButton","inputTextArea","device","desktopEnabled","mobileEnabled","applyMobileOptimizations","ae","vA","settings","setSettings","O","PA","At","o","Provider","value","ce","tooltipStyle","notificationBadgeStyle","chatWindowStyle","headerStyle","bodyStyle","chatInputContainerStyle","chatInputAreaStyle","chatInputAreaFocusedStyle","chatInputAreaDisabledStyle","userBubbleStyle","botBubbleStyle","botOptionStyle","botOptionHoveredStyle","botCheckboxRowStyle","botCheckboxNextStyle","botCheckMarkStyle","botCheckMarkSelectedStyle","characterLimitStyle","characterLimitReachedStyle","chatHistoryLineBreakStyle","chatMessagePromptStyle","chatMessagePromptHoveredStyle","footerStyle","loadingSpinnerStyle","mediaDisplayContainerStyle","chatButtonStyle","chatHistoryButtonStyle","chatHistoryButtonHoveredStyle","sendButtonStyle","sendButtonHoveredStyle","sendButtonDisabledStyle","audioButtonStyle","audioButtonDisabledStyle","closeChatButtonStyle","emojiButtonStyle","emojiButtonDisabledStyle","fileAttachmentButtonStyle","fileAttachmentButtonDisabledStyle","notificationButtonStyle","notificationButtonDisabledStyle","voiceButtonStyle","voiceButtonDisabledStyle","chatIconStyle","audioIconStyle","audioIconDisabledStyle","closeChatIconStyle","emojiIconStyle","emojiIconDisabledStyle","fileAttachmentIconStyle","fileAttachmentIconDisabledStyle","notificationIconStyle","notificationIconDisabledStyle","voiceIconStyle","voiceIconDisabledStyle","sendIconStyle","sendIconDisabledStyle","sendIconHoveredStyle","rcbTypingIndicatorContainerStyle","rcbTypingIndicatorDotStyle","toastPromptContainerStyle","toastPromptStyle","toastPromptHoveredStyle","ie","styles","setStyles","Y","et","tt","n","s","a","r","c","t","backgroundImage","className","map","i","u","RA","le","AA","ot","botIdRef","flowRef","eA","Map","f","inputRef","timeoutIdRef","streamMessageMap","chatBodyRef","paramsInputRef","keepVoiceOnRef","audioContextRef","audioBufferRef","gainNodeRef","prevInputRef","rA","R","current","ue","tA","nt","nA","wA","qA","JA","VA","ZA","w","g","B","D","b","P","C","Q","m","v","y","E","S","p","h","T","M","I","j","z","L","W","J","F","N","K","x","U","G","visualViewport","innerHeight","_","$","innerWidth","isBotTyping","setSyncedIsBotTyping","syncedIsBotTypingRef","isChatWindowOpen","setSyncedIsChatWindowOpen","syncedIsChatWindowOpenRef","audioToggledOn","setSyncedAudioToggledOn","syncedAudioToggledOnRef","voiceToggledOn","setSyncedVoiceToggledOn","syncedVoiceToggledOnRef","notificationsToggledOn","setSyncedNotificationsToggledOn","syncedNotificationsToggledOnRef","isLoadingChatHistory","setIsLoadingChatHistory","hasChatHistoryLoaded","setHasChatHistoryLoaded","isScrolling","setSyncedIsScrolling","syncedIsScrollingRef","textAreaDisabled","setSyncedTextAreaDisabled","syncedTextAreaDisabledRef","textAreaSensitiveMode","setSyncedTextAreaSensitiveMode","syncedTextAreaSensitiveModeRef","hasInteractedPage","setHasInteractedPage","hasFlowStarted","setHasFlowStarted","unreadCount","setUnreadCount","inputLength","setInputLength","blockAllowsAttachment","setBlockAllowsAttachment","viewportHeight","setViewportHeight","viewportWidth","setViewportWidth","k","START_SPEAK_AUDIO","TOGGLE_AUDIO","TOGGLE_NOTIFICATIONS","TOGGLE_VOICE","TOGGLE_CHAT_WINDOW","PRE_INJECT_MESSAGE","POST_INJECT_MESSAGE","START_SIMULATE_STREAM_MESSAGE","STOP_SIMULATE_STREAM_MESSAGE","START_STREAM_MESSAGE","CHUNK_STREAM_MESSAGE","STOP_STREAM_MESSAGE","REMOVE_MESSAGE","LOAD_CHAT_HISTORY","CHANGE_PATH","SHOW_TOAST","DISMISS_TOAST","USER_SUBMIT_TEXT","USER_UPLOAD_FILE","TEXT_AREA_CHANGE_VALUE","PRE_LOAD_CHATBOT","POST_LOAD_CHATBOT","PRE_PROCESS_BLOCK","POST_PROCESS_BLOCK","st","NA","async","CustomEvent","detail","cancelable","data","promises","dispatchEvent","Promise","all","fe","paths","setSyncedPaths","syncedPathsRef","mA","rt","iA","H","length","at","dispatchRcbEvent","botId","currPath","prevPath","sA","currState","newState","defaultPrevented","scrollHeight","clientHeight","scrollTop","requestAnimationFrame","toggleChatWindow","toggleIsBotTyping","scrollToBottom","color","borderColor","onMouseEnter","onMouseLeave","onMouseDown","preventDefault","de","messages","setSyncedMessages","syncedMessagesRef","FA","ct","it","message","isNewSender","content","contentWrapper","backgroundColor","maxWidth","oA","lt","ut","ft","scrollbarWidth","V","sender","toUpperCase","dt","checkboxes","checkedItems","path","handleSubmitText","yA","Set","size","min","reusable","items","has","delete","max","add","Array","from","join","sendOutput","wt","isArray","injectMessage","gt","function","Bt","trim","simulateStreamMessage","vt","options","Pt","Dt","component","Et","transition","duration","interruptable","setTimeout","ge","yt","chatDisabled","we","isSensitive","Error","Object","keys","includes","goToPath","ht","mt","Qt","borderTop","SA","crypto","randomUUID","getRandomValues","replace","Uint8Array","toString","console","error","gA","id","timestamp","Date","toUTCString","tags","dA","Be","IA","bA","ve","CA","HA","unshift","It","slice","Pe","jA","setItem","JSON","stringify","UA","sessionStorage","localStorage","parse","bt","getItem","se","structuredClone","Me","renderToString","he","DOMParser","parseFromString","body","childNodes","nodeType","Node","TEXT_NODE","textContent","tagName","toLowerCase","attributes","reduce","name","split","filter","forEach","prototype","hasOwnProperty","call","classList","class","Mt","kt","Ht","xt","Ot","_A","key","innerHTML","contains","De","getBoundingClientRect","documentElement","clientWidth","top","left","bottom","right","zA","AudioContext","createGain","gain","startsWith","atob","ArrayBuffer","charCodeAt","fetch","arrayBuffer","decodeAudioData","createBufferSource","buffer","connect","destination","start","toggleNotifications","playNotificationSound","setUpNotifications","Nt","SpeechSynthesisUtterance","info","lang","speechSynthesis","getVoices","find","speak","Lt","GA","speakAudio","textToRead","toggleAudio","hA","simulateStreamChunker","setInterval","clearInterval","removeMessage","Math","streamMessage","set","get","endStreamMessage","replaceMessages","xA","lA","pA","BA","aA","YA","SpeechRecognition","webkitSpeechRecognition","Rt","onresult","clearTimeout","results","transcript","OA","onend","Ft","navigator","mediaDevices","getUserMedia","then","MediaRecorder","ondataavailable","push","onstop","getTracks","stop","catch","XA","state","TA","jt","toggleVoice","syncVoice","DA","currValue","prevValue","focus","blur","getTextAreaValue","setTextAreaValue","updateTextAreaFocus","focusTextArea","blurTextArea","toggleTextAreaDisabled","toggleTextAreaSensitiveMode","Ee","toasts","setSyncedToasts","syncedToastsRef","ye","zt","EA","showToast","timeout","dismissToast","replaceToasts","QA","block","userInput","Ct","file","clear","nextPath","getCurrPath","getPrevPath","replacePaths","firePostProcessBlockEvent","repeat","inputText","sendInChat","MA","fA","userAgent","test","Gt","boxSizing","outline","boxShadow","caretColor","shiftKey","target","role","stopPropagation","placeholder","onChange","onKeyDown","onFocus","onBlur","onCompositionStart","onCompositionEnd","rows","Yt","Xt","Wt","offsetWidth","transform","Kt","qt","minWidth","Ce","fileType","fileUrl","src","alt","controls","me","FileReader","onload","result","onerror","readAsDataURL","Jt","files","Vt","composedPath","offsetHeight","addEventListener","removeEventListener","setSelectionRange","Zt","_t","stroke","Ao","$t","eo","Ut","Blob","File","to","no","values","oo","fo","headerButtons","chatInputButtons","footerButtons","WA","removeItem","Tt","showChatHistory","wo","tabIndex","go","handleFirstInteraction","Qe","passive","virtualKeyboard","overlaysContent","boundingRect","scrollTo","behavior","scrollY","position","Bo","vo","be","oe","version","baseUrl","cacheDuration","ok","json","Do","inlineStyles","cssStylesText","getTime","floor","cacheDate","Po","ne","ho","RegExp","Co","kA","uA","source","pop","WeakMap","mo","updateSettings","replaceSettings","pe","updateStyles","replaceStyles","Se","Qo","plugins","zIndex","Ie","Te","bo","loadConfig","po","flow","themes","setConfigLoaded","styleRootRef","LA","So","show_options","prompt_again","unknown_input","process_options","Lo","Fo","restartFlow","getFlow","Mo","jo","DEFAULT_CONFIG","LOGIN_URL","PROMPT_TEXT","WELCOME_MESSAGE","WELCOME_MESSAGE_LOGGED_OUT","WELCOME_MESSAGE_LOGIN_TRANSITION","WELCOME_MESSAGE_LOGOUT_TRANSITION","API_ENDPOINT","ERRORS","API_UNAVAILABLE","THEME","PRIMARY_COLOR","SECONDARY_COLOR","FONT_FAMILY","CHATBOT","TITLE","AVATAR_URL","TOOLTIP_TEXT","BotController","React","forwardRef","setIsBotLoggedIn","isBotLoggedIn","useMessages","useFlow","useChatWindow","prevLoginStateRef","useRef","useEffect","loginStateChanged","justLoggedIn","useLoginStateTransition","useImperativeHandle","addMessage","setBotIsLoggedIn","status","openChat","closeChat","toggleChat","UserIcon","marginRight","strokeLinejoin","cx","cy","LoginButton","loginUrl","href","rel","padding","border","textDecoration","textAlign","calculateWelcomeMessage","welcomeMessage","loggedInWelcome","undefined","loggedOutWelcome","calculateComponent","QABot","props","apiKey","isLoggedIn","ringEffect","welcome","finalApiKey","process","env","REACT_APP_API_KEY","useState","hasQueryError","setHasQueryError","buildWelcomeMessage","containerRef","themeColors","useThemeColors","defaultColors","useMemo","getCSSVariable","fallback","containerValue","getComputedStyle","getPropertyValue","parentElement","parentValue","chatBotSettings","useChatBotSettings","Button","dangerouslySetInnerHtml","handleQuery","useHandleAIQuery","useCallback","requestOptions","method","headers","query","params","response","useChatFlow","log","loop","useUpdateHeader","remove","useRingEffect","timeoutId","tooltipElement","querySelector","ChatBotProvider","ChatBot","App","onClose","QABotWebComponent","HTMLElement","constructor","super","this","attachShadow","container","shadowRoot","_root","_qaRef","createRef","injectStyles","setAttribute","removeAttribute","baseStyle","chatbotStyles","styleSheets","sheet","location","origin","rules","cssRules","selectorText","warn","observedAttributes","attributeChangedCallback","oldValue","newValue","_render","_getBooleanAttribute","defaultValue","hasAttribute","getAttribute","lowerValue","_getProps","connectedCallback","syncStyles","styleObserver","MutationObserver","observe","attributeFilter","disconnectedCallback","disconnect","unmount","styleProps","prop","containerStyle","setProperty","ReactDOM","createRoot","render","StrictMode","_extends","customElements","define","WebComponentQABot","webComponentQABot","config","qaBot","destroy","removeChild","_ref","root","qaRef"],"mappings":"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","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"access-qa-bot.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-chatbotify/dist/index.js","../src/config/constants.js","../src/components/BotController.js","../src/hooks/useLoginStateTransition.js","../src/components/UserIcon.js","../src/components/LoginButton.js","../src/hooks/useChatFlow.js","../src/components/QABot.js","../src/hooks/useThemeColors.js","../src/hooks/useChatBotSettings.js","../src/hooks/useHandleAIQuery.js","../src/hooks/useUpdateHeader.js","../src/hooks/useRingEffect.js","../src/App.js","../src/web-component.js","../src/lib.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./style.css\";\nimport { jsxs as X, jsx as l, Fragment as oA } from \"react/jsx-runtime\";\nimport * as q from \"react\";\nimport { forwardRef as cA, createContext as vA, useContext as PA, Fragment as RA, useRef as eA, useState as R, useCallback as H, useEffect as V, isValidElement as se, createElement as _A, useMemo as fA } from \"react\";\nimport Me from \"react-dom/server\";\nconst Z = {\n AUDIO_BUTTON: \"audio-button\",\n NOTIFICATION_BUTTON: \"notification-button\",\n CLOSE_CHAT_BUTTON: \"close-chat-button\",\n SEND_MESSAGE_BUTTON: \"send-button\",\n VOICE_MESSAGE_BUTTON: \"voice-button\",\n FILE_ATTACHMENT_BUTTON: \"file-attachment-button\",\n EMOJI_PICKER_BUTTON: \"emoji-button\"\n}, ke = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e\", $A = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e\", He = \"data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e\", xe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 0 637 637\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20\", fill: \"#fff\", fillRule: \"evenodd\" }), /* @__PURE__ */ q.createElement(\"path\", { d: \"M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1\" })), Ae = cA(xe), Oe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z\" })), ee = cA(Oe), Le = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z\" })), Ne = cA(Le), Ue = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z\" })), Re = cA(Ue), Fe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 100 100\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"g\", { strokeLinecap: \"round\", strokeWidth: 10 }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m19 19 61 61M80 19 19 80\" }))), je = cA(Fe), ze = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M94-136v-255l351-93-351-92v-253l816 346L94-136Z\" })), Ge = cA(ze), Ye = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z\" })), Xe = cA(Ye), We = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z\" })), Ke = cA(We), qe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z\" })), te = cA(qe), Je = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z\" })), Ve = cA(Je), Ze = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z\" })), _e = cA(Ze), $e = \"data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/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+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//\", re = {\n general: {\n primaryColor: \"#42b0c5\",\n secondaryColor: \"#491d8d\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n showHeader: !0,\n showFooter: !0,\n showInputRow: !0,\n actionDisabledIcon: ke,\n embedded: !1,\n flowStartTrigger: \"ON_LOAD\"\n },\n tooltip: {\n mode: \"CLOSE\",\n text: \"Talk to me! 😊\"\n },\n chatButton: {\n icon: Ae\n },\n header: {\n title: /* @__PURE__ */ l(\"div\", { style: { cursor: \"pointer\", margin: 0, fontSize: 20, fontWeight: \"bold\" }, onClick: () => window.open(\"https://github.com/tjtanjin/\"), children: \"Tan Jin\" }),\n showAvatar: !0,\n avatar: $A,\n buttons: [Z.NOTIFICATION_BUTTON, Z.AUDIO_BUTTON, Z.CLOSE_CHAT_BUTTON],\n closeChatIcon: je\n },\n notification: {\n disabled: !1,\n defaultToggledOn: !0,\n volume: 0.2,\n icon: Ne,\n iconDisabled: Re,\n sound: $e,\n showCount: !0\n },\n audio: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n voiceNames: [\"Microsoft David - English (United States)\", \"Alex (English - United States)\"],\n rate: 1,\n volume: 1,\n icon: Ve,\n iconDisabled: _e\n },\n chatHistory: {\n disabled: !1,\n maxEntries: 30,\n storageKey: \"rcb-history\",\n storageType: \"LOCAL_STORAGE\",\n viewChatHistoryButtonText: \"Load Chat History ⟳\",\n chatHistoryLineBreakText: \"----- Previous Chat History -----\",\n autoLoad: !1\n },\n chatInput: {\n disabled: !1,\n allowNewline: !1,\n enabledPlaceholderText: \"Type your message...\",\n disabledPlaceholderText: \"\",\n showCharacterCount: !1,\n characterLimit: -1,\n botDelay: 1e3,\n sendButtonIcon: Ge,\n blockSpam: !0,\n sendOptionOutput: !0,\n sendCheckboxOutput: !0,\n buttons: [Z.VOICE_MESSAGE_BUTTON, Z.SEND_MESSAGE_BUTTON]\n },\n chatWindow: {\n showScrollbar: !1,\n showTypingIndicator: !0,\n autoJumpToBottom: !1,\n showMessagePrompt: !0,\n messagePromptText: \"New Messages ↓\",\n messagePromptOffset: 30,\n defaultOpen: !1\n },\n sensitiveInput: {\n maskInTextArea: !0,\n maskInUserBubble: !0,\n asterisksCount: 10,\n hideInUserBubble: !1\n },\n userBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: He,\n simulateStream: !1,\n streamSpeed: 30\n },\n botBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: $A,\n simulateStream: !1,\n streamSpeed: 30\n },\n voice: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n timeoutPeriod: 1e4,\n autoSendDisabled: !1,\n autoSendPeriod: 1e3,\n sendAsAudio: !1,\n icon: Xe,\n iconDisabled: Ke\n },\n footer: {\n text: /* @__PURE__ */ X(\n \"div\",\n {\n style: { cursor: \"pointer\", display: \"flex\", flexDirection: \"row\", alignItems: \"center\", columnGap: 3 },\n onClick: () => window.open(\"https://react-chatbotify.com\"),\n children: [\n /* @__PURE__ */ l(\"span\", { children: \"Powered By \" }, 0),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n borderRadius: \"50%\",\n width: 14,\n height: 14,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: \"linear-gradient(to right, #42b0c5, #491d8d)\"\n },\n children: /* @__PURE__ */ l(Ae, { style: { width: \"80%\", height: \"80%\", fill: \"#fff\" } })\n },\n 1\n ),\n /* @__PURE__ */ l(\"span\", { style: { fontWeight: \"bold\" }, children: \" React ChatBotify\" }, 2)\n ]\n }\n ),\n buttons: [Z.FILE_ATTACHMENT_BUTTON, Z.EMOJI_PICKER_BUTTON]\n },\n fileAttachment: {\n disabled: !1,\n multiple: !0,\n accept: \".png\",\n icon: ee,\n iconDisabled: ee,\n sendFileName: !0,\n showMediaDisplay: !1\n },\n emoji: {\n disabled: !1,\n icon: te,\n iconDisabled: te,\n list: [\"😀\", \"😃\", \"😄\", \"😅\", \"😊\", \"😌\", \"😇\", \"🙃\", \"🤣\", \"😍\", \"🥰\", \"🥳\", \"🎉\", \"🎈\", \"🚀\", \"⭐️\"]\n },\n toast: {\n maxCount: 3,\n forbidOnMax: !1,\n dismissOnClick: !0\n },\n event: {\n rcbPreInjectMessage: !1,\n rcbPostInjectMessage: !1,\n rcbStartSimulateStreamMessage: !1,\n rcbStopSimulateStreamMessage: !1,\n rcbStartStreamMessage: !1,\n rcbChunkStreamMessage: !1,\n rcbStopStreamMessage: !1,\n rcbRemoveMessage: !1,\n rcbLoadChatHistory: !1,\n rcbToggleChatWindow: !1,\n rcbStartSpeakAudio: !1,\n rcbToggleAudio: !1,\n rcbToggleNotifications: !1,\n rcbToggleVoice: !1,\n rcbChangePath: !1,\n rcbShowToast: !1,\n rcbDismissToast: !1,\n rcbUserSubmitText: !1,\n rcbUserUploadFile: !1,\n rcbTextAreaChangeValue: !1,\n rcbPreLoadChatBot: !1,\n rcbPostLoadChatBot: !1,\n rcbPreProcessBlock: !1,\n rcbPostProcessBlock: !1\n },\n ariaLabel: {\n chatButton: \"open chat\",\n audioButton: \"toggle audio\",\n closeChatButton: \"close chat\",\n emojiButton: \"emoji picker\",\n fileAttachmentButton: \"upload file\",\n notificationButton: \"toggle notifications\",\n sendButton: \"send message\",\n voiceButton: \"toggle voice\",\n inputTextArea: \"input text area\"\n },\n device: {\n desktopEnabled: !0,\n mobileEnabled: !0,\n applyMobileOptimizations: !0\n }\n}, ae = vA({ settings: {}, setSettings: () => null }), O = () => PA(ae), At = ({\n children: A,\n settings: e = re,\n setSettings: o\n}) => /* @__PURE__ */ l(ae.Provider, { value: { settings: e, setSettings: o }, children: A }), ce = {\n tooltipStyle: {},\n notificationBadgeStyle: {},\n chatWindowStyle: {},\n headerStyle: {},\n bodyStyle: {},\n chatInputContainerStyle: {},\n chatInputAreaStyle: {},\n chatInputAreaFocusedStyle: {},\n chatInputAreaDisabledStyle: {},\n userBubbleStyle: {},\n botBubbleStyle: {},\n botOptionStyle: {},\n botOptionHoveredStyle: {},\n botCheckboxRowStyle: {},\n botCheckboxNextStyle: {},\n botCheckMarkStyle: {},\n botCheckMarkSelectedStyle: {},\n characterLimitStyle: {},\n characterLimitReachedStyle: {},\n chatHistoryLineBreakStyle: {},\n chatMessagePromptStyle: {},\n chatMessagePromptHoveredStyle: {},\n footerStyle: {},\n loadingSpinnerStyle: {},\n mediaDisplayContainerStyle: {},\n chatButtonStyle: {},\n chatHistoryButtonStyle: {},\n chatHistoryButtonHoveredStyle: {},\n sendButtonStyle: {},\n sendButtonHoveredStyle: {},\n sendButtonDisabledStyle: {},\n audioButtonStyle: {},\n audioButtonDisabledStyle: {},\n closeChatButtonStyle: {},\n emojiButtonStyle: {},\n emojiButtonDisabledStyle: {},\n fileAttachmentButtonStyle: {},\n fileAttachmentButtonDisabledStyle: {},\n notificationButtonStyle: {},\n notificationButtonDisabledStyle: {},\n voiceButtonStyle: {},\n voiceButtonDisabledStyle: {},\n chatIconStyle: {},\n audioIconStyle: {},\n audioIconDisabledStyle: {},\n closeChatIconStyle: {},\n emojiIconStyle: {},\n emojiIconDisabledStyle: {},\n fileAttachmentIconStyle: {},\n fileAttachmentIconDisabledStyle: {},\n notificationIconStyle: {},\n notificationIconDisabledStyle: {},\n voiceIconStyle: {},\n voiceIconDisabledStyle: {},\n sendIconStyle: {},\n sendIconDisabledStyle: {},\n sendIconHoveredStyle: {},\n rcbTypingIndicatorContainerStyle: {},\n rcbTypingIndicatorDotStyle: {},\n toastPromptContainerStyle: {},\n toastPromptStyle: {},\n toastPromptHoveredStyle: {}\n}, ie = vA({ styles: {}, setStyles: () => null }), Y = () => PA(ie), et = ({\n children: A,\n styles: e = ce,\n setStyles: o\n}) => /* @__PURE__ */ l(ie.Provider, { value: { styles: e, setStyles: o }, children: A }), tt = ({ buttons: A }) => {\n var n, s, a, r, c;\n const { settings: e } = O(), { styles: o } = Y(), t = {\n backgroundImage: `linear-gradient(to right, ${(n = e.general) == null ? void 0 : n.secondaryColor},\n\t\t\t${(s = e.general) == null ? void 0 : s.primaryColor})`,\n ...o.headerStyle\n };\n return /* @__PURE__ */ X(\"div\", { style: t, className: \"rcb-chat-header-container\", children: [\n /* @__PURE__ */ X(\"div\", { className: \"rcb-chat-header\", children: [\n ((a = e.header) == null ? void 0 : a.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(r = e.header) == null ? void 0 : r.avatar}\")` },\n className: \"rcb-bot-avatar\"\n }\n ),\n (c = e.header) == null ? void 0 : c.title\n ] }),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-header\", children: A == null ? void 0 : A.map(\n (i, u) => /* @__PURE__ */ l(RA, { children: i }, u)\n ) })\n ] });\n}, le = vA({}), AA = () => PA(le), ot = ({\n children: A,\n botIdRef: e,\n flowRef: o\n}) => {\n const t = eA(null), n = eA(\"\"), s = eA(null), a = eA(/* @__PURE__ */ new Map()), r = eA(null), c = eA(\"\"), i = eA(!1), u = eA(null), f = eA(null), d = eA(null);\n return /* @__PURE__ */ l(le.Provider, { value: {\n botIdRef: e,\n flowRef: o,\n inputRef: t,\n timeoutIdRef: s,\n streamMessageMap: a,\n chatBodyRef: r,\n paramsInputRef: c,\n keepVoiceOnRef: i,\n audioContextRef: u,\n audioBufferRef: f,\n gainNodeRef: d,\n prevInputRef: n\n }, children: A });\n}, rA = (A) => {\n const [e, o] = R(A), t = eA(A);\n return [e, (s) => {\n const a = typeof s == \"function\" ? s(t.current) : s;\n t.current = a, o(a);\n }, t];\n}, ue = vA({}), tA = () => PA(ue), nt = ({\n children: A,\n settings: e\n}) => {\n var nA, wA, qA, JA, VA, ZA;\n const [o, t, n] = rA(!1), [s, a, r] = rA(\n ((nA = e == null ? void 0 : e.chatWindow) == null ? void 0 : nA.defaultOpen) ?? !1\n ), [c, i, u] = rA(\n ((wA = e == null ? void 0 : e.audio) == null ? void 0 : wA.defaultToggledOn) ?? !1\n ), [f, d, w] = rA(\n ((qA = e == null ? void 0 : e.voice) == null ? void 0 : qA.defaultToggledOn) ?? !1\n ), [\n g,\n B,\n D\n ] = rA(\n ((JA = e == null ? void 0 : e.notification) == null ? void 0 : JA.defaultToggledOn) ?? !0\n ), [b, P] = R(!1), [C, Q] = R(!1), [m, v, y] = rA(!1), [E, S, p] = rA(!0), [\n h,\n T,\n M\n ] = rA(!1), [I, j] = R(!1), [z, L] = R(!1), [W, J] = R(0), [F, N] = R(0), [K, x] = R(!1), [U, G] = R(((VA = window.visualViewport) == null ? void 0 : VA.height) ?? window.innerHeight), [_, $] = R(((ZA = window.visualViewport) == null ? void 0 : ZA.width) ?? window.innerWidth);\n return /* @__PURE__ */ l(ue.Provider, { value: {\n isBotTyping: o,\n setSyncedIsBotTyping: t,\n syncedIsBotTypingRef: n,\n isChatWindowOpen: s,\n setSyncedIsChatWindowOpen: a,\n syncedIsChatWindowOpenRef: r,\n audioToggledOn: c,\n setSyncedAudioToggledOn: i,\n syncedAudioToggledOnRef: u,\n voiceToggledOn: f,\n setSyncedVoiceToggledOn: d,\n syncedVoiceToggledOnRef: w,\n notificationsToggledOn: g,\n setSyncedNotificationsToggledOn: B,\n syncedNotificationsToggledOnRef: D,\n isLoadingChatHistory: b,\n setIsLoadingChatHistory: P,\n hasChatHistoryLoaded: C,\n setHasChatHistoryLoaded: Q,\n isScrolling: m,\n setSyncedIsScrolling: v,\n syncedIsScrollingRef: y,\n textAreaDisabled: E,\n setSyncedTextAreaDisabled: S,\n syncedTextAreaDisabledRef: p,\n textAreaSensitiveMode: h,\n setSyncedTextAreaSensitiveMode: T,\n syncedTextAreaSensitiveModeRef: M,\n hasInteractedPage: I,\n setHasInteractedPage: j,\n hasFlowStarted: z,\n setHasFlowStarted: L,\n unreadCount: W,\n setUnreadCount: J,\n inputLength: F,\n setInputLength: N,\n blockAllowsAttachment: K,\n setBlockAllowsAttachment: x,\n viewportHeight: U,\n setViewportHeight: G,\n viewportWidth: _,\n setViewportWidth: $\n }, children: A });\n};\nvar k = /* @__PURE__ */ ((A) => (A.START_SPEAK_AUDIO = \"rcb-start-speak-audio\", A.TOGGLE_AUDIO = \"rcb-toggle-audio\", A.TOGGLE_NOTIFICATIONS = \"rcb-toggle-notifications\", A.TOGGLE_VOICE = \"rcb-toggle-voice\", A.TOGGLE_CHAT_WINDOW = \"rcb-toggle-chat-window\", A.PRE_INJECT_MESSAGE = \"rcb-pre-inject-message\", A.POST_INJECT_MESSAGE = \"rcb-post-inject-message\", A.START_SIMULATE_STREAM_MESSAGE = \"rcb-start-simulate-stream-message\", A.STOP_SIMULATE_STREAM_MESSAGE = \"rcb-stop-simulate-stream-message\", A.START_STREAM_MESSAGE = \"rcb-start-stream-message\", A.CHUNK_STREAM_MESSAGE = \"rcb-chunk-stream-message\", A.STOP_STREAM_MESSAGE = \"rcb-stop-stream-message\", A.REMOVE_MESSAGE = \"rcb-remove-message\", A.LOAD_CHAT_HISTORY = \"rcb-load-chat-history\", A.CHANGE_PATH = \"rcb-change-path\", A.SHOW_TOAST = \"rcb-show-toast\", A.DISMISS_TOAST = \"rcb-dismiss-toast\", A.USER_SUBMIT_TEXT = \"rcb-user-submit-text\", A.USER_UPLOAD_FILE = \"rcb-user-upload-file\", A.TEXT_AREA_CHANGE_VALUE = \"rcb-text-area-change-value\", A.PRE_LOAD_CHATBOT = \"rcb-pre-load-chatbot\", A.POST_LOAD_CHATBOT = \"rcb-post-load-chatbot\", A.PRE_PROCESS_BLOCK = \"rcb-pre-process-block\", A.POST_PROCESS_BLOCK = \"rcb-post-process-block\", A))(k || {});\nconst st = {\n [k.START_SPEAK_AUDIO]: !0,\n [k.TOGGLE_AUDIO]: !0,\n [k.TOGGLE_VOICE]: !0,\n [k.TOGGLE_NOTIFICATIONS]: !0,\n [k.TOGGLE_CHAT_WINDOW]: !0,\n [k.PRE_INJECT_MESSAGE]: !0,\n [k.POST_INJECT_MESSAGE]: !1,\n [k.PRE_LOAD_CHATBOT]: !0,\n [k.POST_LOAD_CHATBOT]: !1,\n [k.START_SIMULATE_STREAM_MESSAGE]: !0,\n [k.STOP_SIMULATE_STREAM_MESSAGE]: !1,\n [k.START_STREAM_MESSAGE]: !0,\n [k.CHUNK_STREAM_MESSAGE]: !0,\n [k.STOP_STREAM_MESSAGE]: !0,\n [k.REMOVE_MESSAGE]: !0,\n [k.LOAD_CHAT_HISTORY]: !0,\n [k.CHANGE_PATH]: !0,\n [k.SHOW_TOAST]: !0,\n [k.DISMISS_TOAST]: !0,\n [k.USER_SUBMIT_TEXT]: !0,\n [k.USER_UPLOAD_FILE]: !0,\n [k.TEXT_AREA_CHANGE_VALUE]: !0,\n [k.PRE_PROCESS_BLOCK]: !0,\n [k.POST_PROCESS_BLOCK]: !0\n}, NA = async (A, e, o) => {\n const t = new CustomEvent(A, {\n detail: e,\n cancelable: st[A]\n });\n return t.data = o, t.promises = [], window.dispatchEvent(t), await Promise.all(t.promises), t;\n}, fe = vA({\n paths: [],\n setSyncedPaths: () => {\n },\n syncedPathsRef: { current: [] }\n}), mA = () => PA(fe), rt = ({ children: A }) => {\n const [e, o, t] = rA([]);\n return /* @__PURE__ */ l(fe.Provider, { value: { paths: e, setSyncedPaths: o, syncedPathsRef: t }, children: A });\n}, iA = () => {\n const { botIdRef: A } = AA(), { syncedPathsRef: e } = mA(), o = H(() => e.current.length > 0 ? e.current.at(-1) ?? null : null, []), t = H(() => e.current.length > 1 ? e.current.at(-2) ?? null : null, []);\n return { dispatchRcbEvent: H(async (s, a) => {\n const r = { botId: A.current, currPath: o(), prevPath: t() };\n return await NA(s, r, a);\n }, [A]) };\n}, sA = () => {\n const { settings: A } = O(), {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n setUnreadCount: r,\n setSyncedIsBotTyping: c,\n setSyncedIsScrolling: i,\n syncedIsBotTypingRef: u,\n syncedIsChatWindowOpenRef: f\n } = tA(), { chatBodyRef: d } = AA(), { dispatchRcbEvent: w } = iA(), g = H(async (P) => {\n var C;\n P !== f.current && ((C = A.event) != null && C.rcbToggleChatWindow && (await w(\n k.TOGGLE_CHAT_WINDOW,\n {\n currState: f.current,\n newState: !f.current\n }\n )).defaultPrevented || o((Q) => (Q || r(0), !Q)));\n }, [f]), B = H(async (P) => {\n P !== u.current && c((C) => !C);\n }, [u]), D = H((P, C, Q, m) => (P /= m / 2, P < 1 ? Q / 2 * P * P + C : (P--, -Q / 2 * (P * (P - 2) - 1) + C)), []), b = H((P = 0) => {\n if (!d.current)\n return;\n const C = d.current.scrollHeight - d.current.clientHeight;\n if (P <= 0) {\n d.current.scrollTop = C, i(!1);\n return;\n }\n const Q = d.current.scrollTop, m = C - Q, v = 20;\n let y = 0;\n const E = () => {\n if (!d.current)\n return;\n y += v;\n const S = D(y, Q, m, P);\n d.current.scrollTop = S, y < P ? requestAnimationFrame(E) : i(!1);\n };\n E();\n }, [d]);\n return {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n toggleChatWindow: g,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n toggleIsBotTyping: B,\n scrollToBottom: b\n };\n}, at = () => {\n var d, w, g;\n const { settings: A } = O(), { styles: e } = Y(), { unreadCount: o, isScrolling: t } = tA(), { chatBodyRef: n } = AA(), { scrollToBottom: s } = sA(), [a, r] = R(!1), c = {\n color: (d = A.general) == null ? void 0 : d.primaryColor,\n borderColor: (w = A.general) == null ? void 0 : w.primaryColor,\n ...e.chatMessagePromptHoveredStyle\n }, i = () => {\n r(!0);\n }, u = () => {\n r(!1);\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-message-prompt-container ${(() => {\n var D;\n return n.current && ((D = A.chatWindow) == null ? void 0 : D.showMessagePrompt) && t && o > 0 ? \"visible\" : \"hidden\";\n })()}`, children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: i,\n onMouseLeave: u,\n style: a ? c : { ...e.chatMessagePromptStyle },\n onMouseDown: (B) => {\n B.preventDefault(), s(600);\n },\n className: \"rcb-message-prompt-text\",\n children: (g = A.chatWindow) == null ? void 0 : g.messagePromptText\n }\n ) });\n}, de = vA({\n messages: [],\n setSyncedMessages: () => {\n },\n syncedMessagesRef: { current: [] }\n}), FA = () => PA(de), ct = ({ children: A }) => {\n const [e, o, t] = rA([]);\n return /* @__PURE__ */ l(de.Provider, { value: { messages: e, setSyncedMessages: o, syncedMessagesRef: t }, children: A });\n}, it = ({\n message: A,\n isNewSender: e\n}) => {\n var f, d, w, g, B, D;\n const { settings: o } = O(), { styles: t } = Y(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (f = o.general) == null ? void 0 : f.primaryColor,\n color: \"#fff\",\n maxWidth: (d = o.userBubble) != null && d.showAvatar ? \"65%\" : \"70%\",\n ...t.userBubbleStyle\n }, c = (w = o.userBubble) != null && w.animate ? \"rcb-user-message-entry\" : \"\", i = ((g = o.userBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-user-message${!e && ((B = o.userBubble) != null && B.showAvatar) ? \" rcb-user-message-offset\" : \"\"}`;\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-user-message-container\", children: [\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(oA, { children: a }),\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(D = o.userBubble) == null ? void 0 : D.avatar}\")` },\n className: \"rcb-message-user-avatar\"\n }\n )\n ] });\n}, lt = ({\n message: A,\n isNewSender: e\n}) => {\n var f, d, w, g, B, D;\n const { settings: o } = O(), { styles: t } = Y(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (f = o.general) == null ? void 0 : f.secondaryColor,\n color: \"#fff\",\n maxWidth: (d = o.botBubble) != null && d.showAvatar ? \"65%\" : \"70%\",\n ...t.botBubbleStyle\n }, c = (w = o.botBubble) != null && w.animate ? \"rcb-bot-message-entry\" : \"\", i = ((g = o.botBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-bot-message${!e && ((B = o.botBubble) != null && B.showAvatar) ? \" rcb-bot-message-offset\" : \"\"}`;\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-bot-message-container\", children: [\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(D = o.botBubble) == null ? void 0 : D.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(oA, { children: a })\n ] });\n}, ut = () => {\n var t, n, s;\n const { settings: A } = O(), { styles: e } = Y(), o = (t = A.botBubble) != null && t.animate ? \"rcb-bot-message-entry\" : \"\";\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-bot-message-container\", children: [\n ((n = A.botBubble) == null ? void 0 : n.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(s = A.botBubble) == null ? void 0 : s.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (a) => {\n a.preventDefault();\n },\n className: `rcb-bot-message ${o}`,\n children: /* @__PURE__ */ X(\"div\", { className: \"rcb-typing-indicator\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorContainerStyle }, children: [\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } })\n ] })\n }\n )\n ] });\n}, ft = () => {\n var i, u, f;\n const { settings: A } = O(), { styles: e } = Y(), { messages: o } = FA(), { scrollToBottom: t } = sA(), {\n isBotTyping: n,\n syncedIsScrollingRef: s\n } = tA(), { chatBodyRef: a } = AA(), r = {\n ...e == null ? void 0 : e.bodyStyle,\n scrollbarWidth: (i = A.chatWindow) != null && i.showScrollbar ? \"auto\" : \"none\"\n };\n V(() => {\n s.current || t();\n }, [(u = a.current) == null ? void 0 : u.scrollHeight]);\n const c = (d) => d === 0 ? !0 : o[d].sender !== o[d - 1].sender;\n return /* @__PURE__ */ X(\n \"div\",\n {\n style: r,\n className: \"rcb-chat-body-container\",\n ref: a,\n children: [\n o.map((d, w) => {\n const g = c(w);\n return d.sender.toUpperCase() === \"USER\" ? /* @__PURE__ */ l(it, { message: d, isNewSender: g }, w) : d.sender.toUpperCase() === \"BOT\" ? /* @__PURE__ */ l(lt, { message: d, isNewSender: g }, w) : /* @__PURE__ */ l(\"div\", { children: d.content }, w);\n }),\n n && ((f = A.chatWindow) == null ? void 0 : f.showTypingIndicator) && /* @__PURE__ */ l(ut, {}),\n /* @__PURE__ */ l(at, {})\n ]\n }\n );\n}, dt = ({\n checkboxes: A,\n checkedItems: e,\n path: o\n}) => {\n var D, b, P, C, Q, m, v, y, E, S, p;\n const { settings: t } = O(), { styles: n } = Y(), { paths: s } = mA(), { handleSubmitText: a } = yA(), [r, c] = R(/* @__PURE__ */ new Set()), [i, u] = R(!1), f = {\n cursor: i ? `url(\"${(D = t.general) == null ? void 0 : D.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (b = t.general) == null ? void 0 : b.primaryColor,\n borderColor: (P = t.general) == null ? void 0 : P.primaryColor,\n ...n.botCheckboxRowStyle\n }, d = {\n cursor: i || r.size < A.min ? `url(\"${(C = t.general) == null ? void 0 : C.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (Q = t.general) == null ? void 0 : Q.primaryColor,\n borderColor: (m = t.general) == null ? void 0 : m.primaryColor,\n ...n.botCheckboxNextStyle\n }, w = {\n cursor: i ? `url(\"${(v = t.general) == null ? void 0 : v.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"transparent\",\n ...n.botCheckMarkStyle\n }, g = {\n cursor: i ? `url(\"${(y = t.general) == null ? void 0 : y.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"#fff\",\n borderColor: (E = t.general) == null ? void 0 : E.primaryColor,\n backgroundColor: (S = t.general) == null ? void 0 : S.primaryColor,\n ...n.botCheckMarkSelectedStyle\n };\n V(() => {\n s.length > 0 && s[s.length - 1] !== o && u(!A.reusable);\n }, [s]);\n const B = (h) => {\n i || c((T) => {\n const M = new Set(T);\n if (M.has(h))\n e.delete(h), M.delete(h);\n else {\n if (r.size == A.max)\n return T;\n e.add(h), M.add(h);\n }\n return M;\n });\n };\n return /* @__PURE__ */ X(\"div\", { className: `rcb-checkbox-container ${(p = t.botBubble) != null && p.showAvatar ? \"rcb-checkbox-offset\" : \"\"}`, children: [\n A.items.map((h) => /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (T) => {\n T.preventDefault(), B(h);\n },\n style: f,\n className: \"rcb-checkbox-row-container\",\n children: /* @__PURE__ */ X(\"div\", { className: \"rcb-checkbox-row\", children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n style: r.has(h) ? g : w,\n className: \"rcb-checkbox-mark\"\n }\n ),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-checkbox-label\", children: h })\n ] })\n },\n h\n )),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: d,\n className: \"rcb-checkbox-next-button\",\n onMouseDown: (h) => {\n var I;\n if (h.preventDefault(), i || r.size < A.min)\n return;\n const T = Array.from(e).join(\", \");\n u(!A.reusable);\n let M;\n A.sendOutput != null ? M = A.sendOutput : M = ((I = t.chatInput) == null ? void 0 : I.sendCheckboxOutput) ?? !0, a(T, M);\n }\n }\n )\n ] });\n}, wt = async (A, e) => {\n const o = A.checkboxes;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.min == null && (t.min = 1), t.max == null && (t.max = t.items.length), t.min > t.max && (t.min = t.max), t.reusable == null && (t.reusable = !1);\n const n = /* @__PURE__ */ new Set(), s = e.currPath, a = /* @__PURE__ */ l(dt, { checkboxes: t, checkedItems: n, path: s });\n await e.injectMessage(a);\n}, gt = async (A, e) => {\n const o = A.function;\n if (!o)\n return;\n const t = o(e);\n return t instanceof Promise ? await t : t;\n}, Bt = async (A, e, o) => {\n const t = A.message;\n if (!t)\n return;\n if (typeof t == \"string\") {\n t.trim() !== \"\" && (o ? await e.simulateStreamMessage(t) : await e.injectMessage(t));\n return;\n }\n let n = t(e);\n n instanceof Promise && (n = await n), typeof n == \"string\" && n.trim() !== \"\" && (o ? await e.simulateStreamMessage(n) : await e.injectMessage(n));\n}, vt = ({\n options: A,\n path: e\n}) => {\n var g, B, D, b, P, C;\n const { settings: o } = O(), { styles: t } = Y(), { paths: n } = mA(), { handleSubmitText: s } = yA(), [a, r] = R([]), [c, i] = R(!1), u = {\n cursor: c ? `url(\"${(g = o.general) == null ? void 0 : g.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (B = o.general) == null ? void 0 : B.primaryColor,\n borderColor: (D = o.general) == null ? void 0 : D.primaryColor,\n backgroundColor: \"#fff\",\n ...t.botOptionStyle\n }, f = {\n color: \"#fff\",\n borderColor: (b = o.general) == null ? void 0 : b.primaryColor,\n backgroundColor: (P = o.general) == null ? void 0 : P.primaryColor,\n ...t.botOptionHoveredStyle\n };\n V(() => {\n n.length > 0 && n[n.length - 1] !== e && i(!A.reusable);\n }, [n]);\n const d = (Q) => {\n r((m) => {\n const v = [...m];\n return v[Q] = !0, v;\n });\n }, w = (Q) => {\n r((m) => {\n const v = [...m];\n return v[Q] = !1, v;\n });\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-options-container ${(C = o.botBubble) != null && C.showAvatar ? \"rcb-options-offset\" : \"\"}`, children: A.items.map((Q, m) => {\n const v = a[m] && !c;\n return /* @__PURE__ */ l(\n \"div\",\n {\n className: \"rcb-options\",\n style: v ? f : u,\n onMouseEnter: () => d(m),\n onMouseLeave: () => w(m),\n onMouseDown: (y) => {\n var S;\n if (y.preventDefault(), c)\n return;\n i(!A.reusable);\n let E;\n A.sendOutput != null ? E = A.sendOutput : E = ((S = o.chatInput) == null ? void 0 : S.sendOptionOutput) ?? !0, s(Q, E);\n },\n children: Q\n },\n Q\n );\n }) });\n}, Pt = async (A, e) => {\n const o = A.options;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.reusable == null && (t.reusable = !1);\n const n = e.currPath, s = /* @__PURE__ */ l(vt, { options: t, path: n });\n await e.injectMessage(s);\n}, ht = async (A, e) => {\n const o = A.path;\n if (!o)\n return !1;\n if (typeof o == \"string\")\n return await e.goToPath(o), !0;\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return !1;\n const n = t;\n return await e.goToPath(n), !0;\n}, Dt = async (A, e) => {\n const o = A.component;\n if (o) {\n if (typeof o == \"function\") {\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return;\n await e.injectMessage(t);\n return;\n }\n await e.injectMessage(o);\n }\n}, Et = async (A, e, o, t) => {\n const n = A.transition;\n let s;\n if (typeof n == \"function\" ? (s = n(e), s instanceof Promise && (s = await s)) : s = n, typeof s == \"number\" && (s = { duration: s }), !s || s instanceof Promise || s.duration == null || typeof s.duration != \"number\")\n return;\n s.interruptable == null && (s.interruptable = !1);\n const a = setTimeout(async () => {\n const r = await t(A);\n r && await ge(r, e);\n }, s.duration);\n s.interruptable && (o.current = a);\n}, yt = async (A, e, o) => {\n const t = A.chatDisabled;\n if (t == null)\n return;\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, we = async (A, e, o) => {\n const t = A.isSensitive;\n if (!t) {\n o(!1);\n return;\n }\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, Ct = async (A, e, o, t, n, s, a) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n for (const r of Object.keys(A))\n switch (r) {\n case \"message\":\n await Bt(A, e, o);\n break;\n case \"options\":\n await Pt(A, e);\n break;\n case \"checkboxes\":\n await wt(A, e);\n break;\n case \"component\":\n await Dt(A, e);\n break;\n case \"chatDisabled\":\n await yt(A, e, n);\n break;\n case \"isSensitive\":\n await we(A, e, s);\n break;\n case \"transition\":\n await Et(A, e, t, a);\n }\n}, ge = async (A, e) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n const o = Object.keys(A);\n for (const t of o)\n t === \"function\" && await gt(A, e);\n o.includes(\"path\") && await ht(A, e);\n}, mt = () => {\n var o;\n const { settings: A } = O(), { styles: e } = Y();\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-line-break-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n style: { ...e.chatHistoryLineBreakStyle },\n className: \"rcb-line-break-text\",\n \"data-testid\": \"chat-history-line-break-text\",\n children: (o = A.chatHistory) == null ? void 0 : o.chatHistoryLineBreakText\n }\n ) });\n}, Qt = () => {\n var t;\n const { settings: A } = O(), { styles: e } = Y(), o = {\n borderTop: `4px solid ${(t = A.general) == null ? void 0 : t.primaryColor}`,\n ...e.loadingSpinnerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-spinner-container\", children: /* @__PURE__ */ l(\"div\", { style: o, className: \"rcb-spinner\" }) });\n}, SA = () => {\n try {\n if (typeof crypto < \"u\" && typeof crypto.randomUUID == \"function\")\n return crypto.randomUUID();\n throw new Error(\"crypto.randomUUID not available\");\n } catch (A) {\n if (typeof crypto < \"u\" && typeof crypto.getRandomValues == \"function\")\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(e) {\n const o = crypto.getRandomValues(new Uint8Array(1))[0] % 16;\n return (e === \"x\" ? o : o & 3 | 8).toString(16);\n });\n throw console.error(A), new Error(\"crypto.getRandomValues is also not available\");\n }\n}, gA = (A, e) => ({\n id: SA(),\n content: A,\n sender: e,\n type: typeof A == \"string\" ? \"string\" : \"object\",\n timestamp: (/* @__PURE__ */ new Date()).toUTCString(),\n tags: []\n});\nlet dA, Be = !1, IA = \"rcb-history\", bA = 30, ve = !1, CA = [];\nconst HA = async (A) => {\n if (ve || !dA)\n return;\n const e = [], o = Be ? CA.length : 0;\n for (let n = A.length - 1; n >= o; n--) {\n const s = A[n];\n if (s.sender.toUpperCase() !== \"SYSTEM\" && (s.content !== \"\" && e.unshift(s), e.length === bA))\n break;\n }\n let t = e.map(It);\n if (t.length < bA) {\n const n = bA - t.length;\n t = [...CA.slice(-n), ...t];\n }\n Pe(t);\n}, bt = (A) => {\n if (A != null)\n try {\n return JSON.parse(A);\n } catch {\n return [];\n }\n return [];\n}, jA = () => CA, pt = (A) => {\n Pe(A), CA = A;\n}, Pe = (A) => {\n dA && dA.setItem(IA, JSON.stringify(A));\n}, St = () => {\n dA && dA.removeItem(IA);\n}, UA = (A) => {\n var e, o, t, n, s;\n ((o = (e = A.chatHistory) == null ? void 0 : e.storageType) == null ? void 0 : o.toUpperCase()) === \"SESSION_STORAGE\" ? dA = sessionStorage : dA = localStorage, IA = (t = A.chatHistory) == null ? void 0 : t.storageKey, bA = (n = A.chatHistory) == null ? void 0 : n.maxEntries, ve = (s = A.chatHistory) == null ? void 0 : s.disabled, CA = bt(dA.getItem(IA));\n}, It = (A) => se(A.content) ? structuredClone({\n id: A.id,\n content: Me.renderToString(A.content),\n type: A.type,\n sender: A.sender.toUpperCase(),\n timestamp: A.timestamp,\n tags: A.tags\n}) : A, Tt = (A, e, o, t, n, s, a, r, c) => {\n var i;\n if (Be = !0, o != null)\n try {\n const u = gA(/* @__PURE__ */ l(Qt, {}), \"SYSTEM\"), f = n.current.slice(1);\n t([u, ...f]);\n const d = o.map((w) => {\n if (w.type === \"object\") {\n const g = he(w.content, A, e);\n return { ...w, content: g };\n }\n return w;\n });\n setTimeout(() => {\n var B;\n const w = n.current.slice(1);\n let g = (B = A.chatHistory) != null && B.autoLoad ? gA(/* @__PURE__ */ l(oA, {}), \"SYSTEM\") : gA(/* @__PURE__ */ l(mt, {}), \"SYSTEM\");\n t([...d, g, ...w]), c(!0);\n }, 500), setTimeout(() => {\n if (!s.current)\n return;\n const { scrollHeight: w } = s.current, g = w - a;\n s.current.scrollTop += g, r(!1);\n }, 510);\n } catch {\n dA.removeItem((i = A.chatHistory) == null ? void 0 : i.storageKey);\n }\n}, he = (A, e, o) => {\n const n = new DOMParser().parseFromString(A, \"text/html\");\n return Array.from(n.body.childNodes).map((r, c) => {\n var i;\n if (r.nodeType === Node.TEXT_NODE)\n return r.textContent;\n {\n const u = r.tagName.toLowerCase();\n let f = Array.from(r.attributes).reduce((w, g) => {\n const B = g.name.toLowerCase();\n if (B === \"style\") {\n const D = g.value.split(\";\").filter((P) => P.trim() !== \"\"), b = {};\n D.forEach((P) => {\n const [C, Q] = P.split(\":\").map((v) => v.trim()), m = C.replace(/-([a-z])/g, (v, y) => y.toUpperCase());\n b[m] = Q;\n }), w[B] = b;\n } else (u === \"audio\" || u === \"video\") && B === \"controls\" && g.value === \"\" ? w[B] = \"true\" : w[B] = g.value;\n return w;\n }, {});\n if (Object.prototype.hasOwnProperty.call(f, \"class\")) {\n const w = r.classList;\n f.className = w.toString(), delete f.class, (i = e.botBubble) != null && i.showAvatar && (f = Mt(w, f)), f = kt(w, f, e, o), f = Ht(w, f, e, o), f = xt(w, f, e, o), f = Ot(w, f, e, o);\n }\n if ([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"link\",\n \"meta\",\n \"source\",\n \"track\",\n \"wbr\"\n ].includes(u))\n return _A(u, { key: c, ...f });\n {\n const w = he(r.innerHTML, e, o);\n return _A(u, { key: c, ...f }, ...w);\n }\n }\n });\n}, Mt = (A, e) => ((A.contains(\"rcb-options-container\") || A.contains(\"rcb-checkbox-container\")) && (e.className = `${A.toString()} rcb-options-offset`), e), kt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-options\") && (e.style = {\n ...e.style,\n color: ((n = t.botOptionStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botOptionStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botOptionStyle\n }), e;\n}, Ht = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-row-container\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxRowStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxRowStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxRowStyle\n }), e;\n}, xt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-next-button\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxNextStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxNextStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxNextStyle\n }), e;\n}, Ot = (A, e, o, t) => {\n var n, s;\n return (A.contains(\"rcb-media-display-image-container\") || A.contains(\"rcb-media-display-video-container\")) && (e.style = {\n ...e.style,\n backgroundColor: (n = o.general) == null ? void 0 : n.primaryColor,\n maxWidth: (s = o.userBubble) != null && s.showAvatar ? \"65%\" : \"70%\",\n ...t.mediaDisplayContainerStyle\n }), e;\n}, De = (A) => {\n if (!A)\n return !1;\n const e = A.getBoundingClientRect(), o = window.innerHeight ?? document.documentElement.clientHeight, t = window.innerWidth ?? document.documentElement.clientWidth;\n return e.top >= 0 && e.left >= 0 && e.bottom <= o && e.right <= t;\n}, zA = () => {\n const { settings: A } = O(), {\n notificationsToggledOn: e,\n setSyncedNotificationsToggledOn: o,\n hasInteractedPage: t,\n unreadCount: n,\n setUnreadCount: s,\n syncedNotificationsToggledOnRef: a\n } = tA(), { audioBufferRef: r, audioContextRef: c, gainNodeRef: i } = AA(), { dispatchRcbEvent: u } = iA(), f = H(async () => {\n var b, P;\n const g = (b = A.notification) == null ? void 0 : b.sound;\n c.current = new AudioContext();\n const B = c.current.createGain();\n B.gain.value = ((P = A.notification) == null ? void 0 : P.volume) ?? 0.2, i.current = B;\n let D;\n if (g != null && g.startsWith(\"data:audio\")) {\n const C = atob(g.split(\",\")[1]), Q = new ArrayBuffer(C.length), m = new Uint8Array(Q);\n for (let v = 0; v < C.length; v++)\n m[v] = C.charCodeAt(v);\n D = Q;\n } else\n D = await (await fetch(g)).arrayBuffer();\n r.current = await c.current.decodeAudioData(D);\n }, [A.notification]), d = H(() => {\n var B;\n if ((B = A.notification) != null && B.disabled || !a.current || !t || !c.current || !r.current)\n return;\n const g = c.current.createBufferSource();\n g.buffer = r.current, g.connect(i.current).connect(c.current.destination), g.start();\n }, [\n A.notification,\n a,\n t,\n c,\n r,\n i\n ]), w = H(async (g) => {\n var B;\n g !== a.current && ((B = A.event) != null && B.rcbToggleNotifications && (await u(\n k.TOGGLE_NOTIFICATIONS,\n {\n currState: a.current,\n newState: !a.current\n }\n )).defaultPrevented || o((D) => !D));\n }, [a]);\n return {\n unreadCount: n,\n setUnreadCount: s,\n notificationsToggledOn: e,\n toggleNotifications: w,\n playNotificationSound: d,\n setUpNotifications: f\n };\n}, Lt = (A, e, o, t, n) => {\n if (!window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const s = new window.SpeechSynthesisUtterance();\n s.text = A, s.lang = e, s.rate = t, s.volume = n;\n let a = !1;\n for (const r of o)\n if (window.speechSynthesis.getVoices().find((c) => {\n if (c.name === r) {\n s.voice = c, window.speechSynthesis.speak(s), a = !0;\n return;\n }\n }), a)\n break;\n a || window.speechSynthesis.speak(s);\n}, Nt = (A, e) => {\n var o, t, n, s;\n Lt(\n e,\n (o = A.audio) == null ? void 0 : o.language,\n (t = A.audio) == null ? void 0 : t.voiceNames,\n (n = A.audio) == null ? void 0 : n.rate,\n (s = A.audio) == null ? void 0 : s.volume\n );\n}, GA = () => {\n const { settings: A } = O(), { audioToggledOn: e, setSyncedAudioToggledOn: o, syncedAudioToggledOnRef: t } = tA(), { dispatchRcbEvent: n } = iA(), s = H(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleAudio && (await n(\n k.TOGGLE_AUDIO,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = H(async (r) => {\n var i, u;\n if ((i = A.audio) != null && i.disabled || !t.current)\n return;\n let c = r;\n if ((u = A.event) != null && u.rcbStartSpeakAudio) {\n const f = await n(k.START_SPEAK_AUDIO, { textToRead: c });\n if (f.defaultPrevented)\n return;\n c = f.data.textToRead;\n }\n Nt(A, c);\n }, [A, t]);\n return {\n audioToggledOn: e,\n speakAudio: a,\n toggleAudio: s\n };\n}, hA = () => {\n var v, y;\n const { settings: A } = O(), { messages: e, setSyncedMessages: o, syncedMessagesRef: t } = FA(), {\n setSyncedIsBotTyping: n,\n setUnreadCount: s,\n syncedIsScrollingRef: a,\n syncedIsChatWindowOpenRef: r\n } = tA(), { streamMessageMap: c, chatBodyRef: i, paramsInputRef: u } = AA(), { scrollToBottom: f } = sA(), { dispatchRcbEvent: d } = iA(), { speakAudio: w } = GA(), { playNotificationSound: g } = zA(), B = H((E, S = !1) => {\n var M, I;\n HA(E);\n let p = !0;\n const h = E[E.length - 1];\n if (!h)\n return;\n const T = h.sender.toUpperCase();\n T === \"USER\" && (p = !1), (M = A.general) != null && M.embedded && De(i.current) && (p = !1), (r.current && !a.current || S) && (p = !1), p && g(), !S && (T !== \"USER\" && ((I = A.chatWindow) != null && I.autoJumpToBottom) || T === \"USER\" || !a.current) && setTimeout(() => f(), 1);\n }, [A, i, r, a, g, f]), D = H(async (E, S = \"BOT\", p = null) => {\n var W, J, F, N, K;\n if (typeof E != \"string\")\n throw new Error(\"Content must be of type string to simulate stream.\");\n S = S.toUpperCase();\n let h = gA(E, S);\n if ((W = A.event) != null && W.rcbStartSimulateStreamMessage) {\n const x = await d(\n k.START_SIMULATE_STREAM_MESSAGE,\n { message: h }\n );\n if (x.defaultPrevented)\n return null;\n p = x.data.simulateStreamChunker || p, h = x.data.message;\n }\n n(!1);\n let T = 30;\n S === \"BOT\" ? T = (J = A.botBubble) == null ? void 0 : J.streamSpeed : T = (F = A.userBubble) == null ? void 0 : F.streamSpeed;\n const M = { ...h, content: \"\" };\n o((x) => [...x, M]), B(t.current);\n let I = h.content;\n p && (I = p(I));\n let j = 0;\n const z = I.length;\n h.sender.toUpperCase() === \"BOT\" && (r.current || (N = A.general) != null && N.embedded) && typeof h.content == \"string\" && h.content.trim() !== \"\" && w(h.content);\n const L = new Promise((x) => {\n const U = setInterval(() => {\n if (j >= z) {\n clearInterval(U), x();\n return;\n }\n o((G) => {\n const _ = [...G];\n for (let $ = _.length - 1; $ >= 0; $--)\n if (_[$].id === M.id) {\n const nA = I[j];\n nA && (M.content += nA, _[$] = M), j++;\n break;\n }\n return _;\n });\n }, T);\n });\n return (a.current || !r.current) && s((x) => x + 1), await L, HA(t.current), (K = A.event) != null && K.rcbStopSimulateStreamMessage && await d(k.STOP_SIMULATE_STREAM_MESSAGE, { message: h }), S === \"USER\" && (u.current = E), h;\n }, [\n A,\n d,\n B,\n t,\n u,\n n,\n s,\n r,\n w\n ]), b = H(async (E, S = \"BOT\") => {\n var h, T, M;\n S = S.toUpperCase();\n let p = gA(E, S);\n if ((h = A.event) != null && h.rcbPreInjectMessage) {\n const I = await d(k.PRE_INJECT_MESSAGE, { message: p });\n if (I.defaultPrevented)\n return null;\n p = I.data.message;\n }\n return p.sender.toUpperCase() === \"BOT\" && (r.current || (T = A.general) != null && T.embedded) && typeof p.content == \"string\" && p.content.trim() !== \"\" && w(p.content), (a.current || !r.current) && s((I) => I + 1), (M = A.event) != null && M.rcbPostInjectMessage && await d(k.POST_INJECT_MESSAGE, { message: p }), o((I) => [...I, p]), B(t.current), S === \"USER\" && typeof E == \"string\" && (u.current = E), p;\n }, [\n A,\n d,\n B,\n u,\n t,\n r,\n w,\n s\n ]), P = H(async (E) => {\n var p;\n const S = t.current.find((h) => h.id === E);\n return !S || (p = A.event) != null && p.rcbRemoveMessage && (await d(k.REMOVE_MESSAGE, { message: S })).defaultPrevented ? null : (o(\n (h) => h.filter((T) => T.id !== E)\n ), B(t.current), s((h) => Math.max(h - 1, 0)), S);\n }, [\n d,\n (v = A.event) == null ? void 0 : v.rcbRemoveMessage,\n B,\n t,\n s\n ]), C = H(async (E, S = \"BOT\") => {\n var h, T;\n if (S = S.toUpperCase(), !c.current.has(S)) {\n const M = gA(E, S);\n return (h = A.event) != null && h.rcbStartStreamMessage && (await d(k.START_STREAM_MESSAGE, { message: M })).defaultPrevented ? null : (n(!1), o((I) => [...I, M]), B(t.current), c.current.set(S, M.id), (a.current || !r.current) && s((I) => I + 1), M);\n }\n const p = { ...gA(E, S), id: c.current.get(S) };\n return (T = A.event) != null && T.rcbChunkStreamMessage && (await d(k.CHUNK_STREAM_MESSAGE, { message: p })).defaultPrevented ? null : (o(\n (M) => M.map((I) => I.id === p.id ? p : I)\n ), B(t.current, !0), p);\n }, [\n d,\n A.event,\n B,\n t,\n n,\n s,\n c\n ]), Q = H(async (E = \"BOT\") => {\n var h;\n if (E = E.toUpperCase(), !c.current.has(E))\n return !0;\n const S = c.current.get(E);\n let p;\n for (let T = 0; T < 3; T++) {\n const M = t.current.find((I) => I.id === S);\n M && (p = M), await new Promise((I) => setTimeout(I, 20));\n }\n return (h = A.event) != null && h.rcbStopStreamMessage && (await d(k.STOP_STREAM_MESSAGE, { message: p })).defaultPrevented ? !1 : (c.current.delete(E), HA(t.current), E === \"USER\" && typeof (p == null ? void 0 : p.content) == \"string\" && (u.current = p.content), !0);\n }, [d, (y = A.event) == null ? void 0 : y.rcbStopStreamMessage, c, u]), m = H((E) => {\n o(E), B(E);\n }, [B]);\n return {\n simulateStreamMessage: D,\n injectMessage: b,\n removeMessage: P,\n streamMessage: C,\n endStreamMessage: Q,\n replaceMessages: m,\n messages: e\n };\n};\nlet xA, lA, pA, BA = !1, aA = null;\nconst YA = () => {\n if (!xA) {\n const A = window.SpeechRecognition || window.webkitSpeechRecognition;\n xA = A != null ? new A() : null;\n }\n return xA;\n}, Ut = (A, e, o, t, n, s, a) => {\n var r;\n (r = A.voice) != null && r.sendAsAudio ? Ft(o, s) : Rt(\n A,\n e,\n o,\n t,\n n,\n a\n );\n}, Rt = (A, e, o, t, n, s) => {\n var i, u, f;\n const a = YA();\n if (!a)\n return;\n if (!BA)\n try {\n BA = !0, a.lang = (i = A.voice) == null ? void 0 : i.language, a.start();\n } catch {\n }\n const r = (u = A.voice) == null ? void 0 : u.timeoutPeriod, c = (f = A.voice) == null ? void 0 : f.autoSendPeriod;\n a.onresult = (d) => {\n var g, B;\n clearTimeout(lA), lA = null, clearTimeout(pA);\n const w = d.results[d.results.length - 1][0].transcript;\n if (s.current) {\n const D = (g = A.chatInput) == null ? void 0 : g.characterLimit, b = s.current.value + w;\n D != null && D >= 0 && b.length > D ? t(b.slice(0, D)) : t(b), n(s.current.value.length);\n }\n r && (lA = setTimeout(async () => await OA(e, s), r)), (B = A.voice) != null && B.autoSendDisabled || (pA = setTimeout(o, c));\n }, a.onend = () => {\n BA ? (a.start(), !lA && r && (lA = setTimeout(async () => await OA(e, s), r))) : (clearTimeout(lA), lA = null, clearTimeout(pA));\n }, r && (lA = setTimeout(async () => await OA(e, s), r));\n}, Ft = (A, e) => {\n navigator.mediaDevices.getUserMedia({ audio: !0 }).then((o) => {\n if (aA = new MediaRecorder(o), !BA)\n try {\n BA = !0, aA.start();\n } catch {\n }\n aA.ondataavailable = (t) => {\n e.current && e.current.push(t.data);\n }, aA.onstop = () => {\n A(), o.getTracks().forEach((t) => t.stop());\n };\n }).catch((o) => {\n console.error(\"Unable to use microphone:\", o);\n });\n}, XA = () => {\n const A = YA();\n A && (BA = !1, A && A.stop(), aA && aA.state !== \"inactive\" && (aA.stop(), aA = null), clearTimeout(lA), lA = null, clearTimeout(pA));\n}, jt = (A, e) => {\n var t, n, s;\n const o = YA();\n (t = e.voice) != null && t.disabled || !((n = e.chatInput) != null && n.blockSpam) || !o || (A && !BA ? (BA = !0, (s = e.voice) != null && s.sendAsAudio ? aA == null || aA.start() : o.start()) : A || XA());\n}, OA = async (A, e) => {\n var o;\n (o = e.current) != null && o.disabled || await A(), XA();\n}, TA = () => {\n const { settings: A } = O(), { voiceToggledOn: e, setSyncedVoiceToggledOn: o, syncedVoiceToggledOnRef: t } = tA(), { dispatchRcbEvent: n } = iA(), s = H(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleVoice && (await n(\n k.TOGGLE_VOICE,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = H((r) => {\n jt(r, A);\n }, [A]);\n return {\n voiceToggledOn: e,\n toggleVoice: s,\n syncVoice: a\n };\n}, DA = () => {\n const { settings: A } = O(), {\n inputLength: e,\n setInputLength: o,\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n syncedTextAreaDisabledRef: r,\n syncedTextAreaSensitiveModeRef: c\n } = tA(), { inputRef: i, chatBodyRef: u, prevInputRef: f } = AA(), { dispatchRcbEvent: d } = iA(), w = H(async (Q) => {\n var m, v, y;\n if (r.current && i.current) {\n i.current.value = \"\";\n return;\n }\n if (i.current && f.current !== null) {\n const E = (m = A.chatInput) == null ? void 0 : m.characterLimit, p = ((v = A.chatInput) == null ? void 0 : v.allowNewline) ? Q : Q.replace(/\\n/g, \" \");\n if (E != null && E >= 0 && p.length > E ? i.current.value = p.slice(0, E) : i.current.value = p, (y = A.event) != null && y.rcbTextAreaChangeValue && (await d(\n k.TEXT_AREA_CHANGE_VALUE,\n { currValue: i.current.value, prevValue: f.current }\n )).defaultPrevented) {\n i.current.value = f.current;\n return;\n }\n f.current = i.current.value;\n }\n }, [r, i, f, A, d]), g = H((Q) => {\n var m;\n (m = i.current) != null && m.disabled || setTimeout(() => {\n var v, y, E;\n (v = A.general) != null && v.embedded ? De(u == null ? void 0 : u.current) && ((y = i.current) == null || y.focus()) : Q !== \"start\" && ((E = i.current) == null || E.focus());\n }, 100);\n }, []), B = H(() => {\n i.current && i.current.focus();\n }, []), D = H(() => {\n i.current && i.current.blur();\n }, []), b = H(() => i && i.current ? i.current.value : \"\", []), P = H((Q) => {\n Q !== r.current && n((m) => !m);\n }, [r]), C = H((Q) => {\n Q !== c.current && a((m) => !m);\n }, [c]);\n return {\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n inputLength: e,\n setInputLength: o,\n getTextAreaValue: b,\n setTextAreaValue: w,\n updateTextAreaFocus: g,\n focusTextArea: B,\n blurTextArea: D,\n toggleTextAreaDisabled: P,\n toggleTextAreaSensitiveMode: C\n };\n}, Ee = vA({\n toasts: [],\n setSyncedToasts: () => {\n },\n syncedToastsRef: { current: [] }\n}), ye = () => PA(Ee), zt = ({ children: A }) => {\n const [e, o, t] = rA([]);\n return /* @__PURE__ */ l(Ee.Provider, { value: { toasts: e, setSyncedToasts: o, syncedToastsRef: t }, children: A });\n}, EA = () => {\n const { settings: A } = O(), { toasts: e, setSyncedToasts: o, syncedToastsRef: t } = ye(), { dispatchRcbEvent: n } = iA(), s = H(async (c, i) => {\n var g, B, D, b;\n let u = null;\n if (t.current.length >= (((g = A.toast) == null ? void 0 : g.maxCount) ?? 3)) {\n if ((B = A.toast) != null && B.forbidOnMax)\n return null;\n u = SA();\n let P = { id: u, content: c, timeout: i };\n if ((D = A.event) != null && D.rcbShowToast) {\n const C = await n(k.SHOW_TOAST, { toast: P });\n if (C.defaultPrevented)\n return null;\n P = C.data.toast;\n }\n return o((C) => [...C.slice(1), P]), u;\n }\n u = SA();\n let w = { id: u, content: c, timeout: i };\n if ((b = A.event) != null && b.rcbShowToast) {\n const P = await n(k.SHOW_TOAST, { toast: w });\n if (P.defaultPrevented)\n return null;\n w = P.data.toast;\n }\n return o((P) => [...P, w]), u;\n }, [A, n]), a = H(async (c) => {\n var u;\n const i = t.current.find((f) => f.id === c);\n return !i || (u = A.event) != null && u.rcbDismissToast && (await n(k.DISMISS_TOAST, { toast: i })).defaultPrevented ? null : (o((f) => f.filter((d) => d.id !== c)), c);\n }, [n]), r = H((c) => {\n o(c);\n }, []);\n return {\n showToast: s,\n dismissToast: a,\n toasts: e,\n replaceToasts: r\n };\n}, QA = () => {\n var z, L, W, J, F;\n const { settings: A } = O(), { paths: e, setSyncedPaths: o, syncedPathsRef: t } = mA(), { flowRef: n, streamMessageMap: s, paramsInputRef: a, keepVoiceOnRef: r, timeoutIdRef: c } = AA(), {\n setSyncedIsBotTyping: i,\n setSyncedTextAreaDisabled: u,\n setSyncedTextAreaSensitiveMode: f,\n blockAllowsAttachment: d,\n setBlockAllowsAttachment: w\n } = tA(), { dispatchRcbEvent: g } = iA(), {\n endStreamMessage: B,\n injectMessage: D,\n removeMessage: b,\n simulateStreamMessage: P,\n streamMessage: C\n } = hA(), { showToast: Q, dismissToast: m } = EA(), { toggleChatWindow: v } = sA(), { updateTextAreaFocus: y, setTextAreaValue: E } = DA(), { syncVoice: S } = TA(), p = H(async (N) => {\n var K;\n if ((K = A.event) != null && K.rcbPostProcessBlock) {\n const x = await g(k.POST_PROCESS_BLOCK, {\n block: N\n });\n if (x.defaultPrevented)\n return null;\n N = x.data.block;\n }\n return N;\n }, [(z = A.event) == null ? void 0 : z.rcbPostProcessBlock, g]), h = H(async (N, K) => {\n var G, _, $, nA;\n if (!N)\n return;\n let x = n.current[N];\n if (!x) {\n i(!1);\n return;\n }\n if ((G = A.event) != null && G.rcbPreProcessBlock) {\n const wA = await g(k.PRE_PROCESS_BLOCK, {\n block: x\n });\n if (wA.defaultPrevented)\n return;\n x = wA.data.block;\n }\n i(!0), (_ = A.chatInput) != null && _.blockSpam && u(!0), f(!1);\n const U = {\n prevPath: K,\n currPath: N,\n goToPath: I,\n setTextAreaValue: E,\n userInput: a.current,\n endStreamMessage: B,\n injectMessage: D,\n removeMessage: b,\n simulateStreamMessage: P,\n streamMessage: C,\n toggleChatWindow: v,\n showToast: Q,\n dismissToast: m\n };\n await Ct(\n x,\n U,\n (($ = A.botBubble) == null ? void 0 : $.simulateStream) ?? !1,\n c,\n u,\n f,\n p\n ), i(!1), \"chatDisabled\" in x || u((nA = A.chatInput) == null ? void 0 : nA.disabled), \"isSensitive\" in x || f(!1), w(typeof x.file == \"function\"), y(N), S(r.current && !x.chatDisabled), N !== K && s.current.clear();\n }, [\n n,\n y,\n S,\n (L = A.botBubble) == null ? void 0 : L.simulateStream,\n (W = A.chatInput) == null ? void 0 : W.disabled,\n a,\n B,\n D,\n b,\n P,\n C,\n v,\n Q,\n m,\n r,\n s\n ]), T = H(() => t.current.length > 0 ? t.current.at(-1) ?? null : null, []), M = H(() => t.current.length > 1 ? t.current.at(-2) ?? null : null, []), I = H(async (N) => {\n var U;\n const K = T(), x = M();\n return (U = A.event) != null && U.rcbChangePath && (await g(k.CHANGE_PATH, {\n currPath: K,\n prevPath: x,\n nextPath: N\n })).defaultPrevented ? !1 : (o((G) => [...G, N]), await h(N, K), !0);\n }, [(J = A.chatInput) == null ? void 0 : J.blockSpam, (F = A.event) == null ? void 0 : F.rcbChangePath, h, g]), j = H((N) => {\n o(N);\n }, []);\n return {\n getCurrPath: T,\n getPrevPath: M,\n goToPath: I,\n blockAllowsAttachment: d,\n setBlockAllowsAttachment: w,\n paths: e,\n replacePaths: j,\n firePostProcessBlockEvent: p\n };\n}, yA = () => {\n var z, L, W, J;\n const { settings: A } = O(), {\n endStreamMessage: e,\n injectMessage: o,\n removeMessage: t,\n simulateStreamMessage: n,\n streamMessage: s\n } = hA(), { syncedPathsRef: a } = mA(), { getCurrPath: r, getPrevPath: c, goToPath: i, firePostProcessBlockEvent: u } = QA(), {\n setSyncedTextAreaSensitiveMode: f,\n setSyncedTextAreaDisabled: d,\n setSyncedIsBotTyping: w,\n setBlockAllowsAttachment: g,\n setInputLength: B,\n syncedVoiceToggledOnRef: D,\n syncedTextAreaSensitiveModeRef: b\n } = tA(), { flowRef: P, inputRef: C, keepVoiceOnRef: Q, paramsInputRef: m, timeoutIdRef: v } = AA(), { showToast: y, dismissToast: E } = EA(), { dispatchRcbEvent: S } = iA(), { syncVoice: p } = TA(), { setTextAreaValue: h } = DA(), { toggleChatWindow: T } = sA(), M = H(async (F) => {\n var x, U, G, _, $, nA;\n const N = r();\n if (!(!N || !P.current[N])) {\n if (b.current) {\n if ((x = A == null ? void 0 : A.sensitiveInput) != null && x.hideInUserBubble)\n return;\n if ((U = A == null ? void 0 : A.sensitiveInput) != null && U.maskInUserBubble) {\n (G = A.userBubble) != null && G.simulateStream ? await n(\n \"*\".repeat(((_ = A.sensitiveInput) == null ? void 0 : _.asterisksCount) ?? 10),\n \"USER\"\n ) : await o(\"*\".repeat((($ = A.sensitiveInput) == null ? void 0 : $.asterisksCount) ?? 10), \"USER\");\n return;\n }\n }\n (nA = A.userBubble) != null && nA.simulateStream ? await n(F, \"USER\") : await o(F, \"USER\");\n }\n }, [P, r, A, o, n, b]), I = H(async (F, N = !0) => {\n var G, _;\n if (F = F.trim(), F === \"\")\n return;\n N && await M(F), v.current && clearTimeout(v.current), C.current && (h(\"\"), B(0));\n const K = r();\n if (!K)\n return;\n let x = P.current[K];\n const U = await u(x);\n U && ((G = A.chatInput) != null && G.blockSpam && d(!0), Q.current = D.current, p(!1), setTimeout(() => {\n w(!0);\n }, 400), f(!1), setTimeout(async () => {\n var wA;\n const $ = {\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: h,\n userInput: m.current,\n injectMessage: o,\n simulateStreamMessage: n,\n streamMessage: s,\n removeMessage: t,\n endStreamMessage: e,\n toggleChatWindow: T,\n showToast: y,\n dismissToast: E\n }, nA = a.current.length;\n await ge(U, $), a.current.length === nA && (\"chatDisabled\" in x ? d(!!x.chatDisabled) : d(!!((wA = A.chatInput) != null && wA.disabled)), we(x, $, f), g(typeof x.file == \"function\"), p(Q.current), w(!1));\n }, (_ = A.chatInput) == null ? void 0 : _.botDelay));\n }, [\n v,\n (z = A.chatInput) == null ? void 0 : z.blockSpam,\n (L = A.chatInput) == null ? void 0 : L.botDelay,\n (W = A.chatInput) == null ? void 0 : W.disabled,\n Q,\n D,\n p,\n M,\n c,\n r,\n i,\n o,\n n,\n s,\n t,\n e,\n T,\n y,\n E,\n P\n ]);\n return { handleSubmitText: H(async (F, N = !0) => {\n var x, U;\n F = F ?? ((x = C.current) == null ? void 0 : x.value), !((U = A.event) != null && U.rcbUserSubmitText && (await S(k.USER_SUBMIT_TEXT, { inputText: F, sendInChat: N })).defaultPrevented || !r()) && I(F, N);\n }, [S, r, I, C, (J = A.event) == null ? void 0 : J.rcbUserSubmitText]) };\n}, MA = () => {\n var o;\n const { settings: A } = O();\n return fA(() => {\n var a;\n if (typeof window > \"u\" || !window.navigator)\n return !1;\n if (!((a = A.device) != null && a.applyMobileOptimizations))\n return !0;\n const t = navigator.userAgent, n = !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t), s = window.innerWidth >= 768;\n return n && s;\n }, [(o = A.device) == null ? void 0 : o.applyMobileOptimizations]);\n}, Gt = ({ buttons: A }) => {\n var M, I, j, z, L, W, J, F, N, K, x;\n const e = MA(), { settings: o } = O(), { styles: t } = Y(), {\n textAreaDisabled: n,\n textAreaSensitiveMode: s,\n inputLength: a,\n hasFlowStarted: r,\n setHasFlowStarted: c,\n setInputLength: i\n } = tA(), { inputRef: u } = AA(), [f, d] = R(!1), [w, g] = R(!1), { handleSubmitText: B } = yA(), { setTextAreaValue: D } = DA(), b = {\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle\n }, P = {\n outline: n ? \"\" : \"none\",\n boxShadow: n ? \"\" : `0 0 5px ${(M = o.general) == null ? void 0 : M.primaryColor}`,\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaFocusedStyle\n }, C = {\n cursor: `url(\"${(I = o.general) == null ? void 0 : I.actionDisabledIcon}\"), auto`,\n caretColor: \"transparent\",\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaDisabledStyle\n }, Q = {\n color: \"#989898\",\n ...t.characterLimitStyle\n }, m = {\n color: \"#ff0000\",\n ...t.characterLimitReachedStyle\n }, v = n ? (j = o.chatInput) == null ? void 0 : j.disabledPlaceholderText : (z = o.chatInput) == null ? void 0 : z.enabledPlaceholderText, y = () => {\n n || d(!0);\n }, E = () => {\n d(!1);\n }, S = () => {\n g(!0);\n }, p = () => {\n g(!1);\n }, h = async (U) => {\n var G;\n if (!w && U.key === \"Enter\") {\n if (U.shiftKey) {\n (G = o.chatInput) != null && G.allowNewline || U.preventDefault();\n return;\n }\n U.preventDefault(), await B();\n }\n }, T = (U) => {\n u.current && (D(U.target.value), i(u.current.value.length));\n };\n return /* @__PURE__ */ X(\n \"div\",\n {\n \"aria-label\": ((L = o.ariaLabel) == null ? void 0 : L.inputTextArea) ?? \"input text area\",\n role: \"textbox\",\n onMouseDown: (U) => {\n var G;\n U.stopPropagation(), !r && ((G = o.general) == null ? void 0 : G.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && c(!0);\n },\n style: { ...t.chatInputContainerStyle },\n className: \"rcb-chat-input\",\n children: [\n s && ((W = o.sensitiveInput) != null && W.maskInTextArea) ? /* @__PURE__ */ l(\n \"input\",\n {\n ref: u,\n type: \"password\",\n className: \"rcb-chat-input-textarea\",\n style: n ? C : f ? P : b,\n placeholder: v,\n onChange: T,\n onKeyDown: h,\n onFocus: y,\n onBlur: E,\n onCompositionStart: S,\n onCompositionEnd: p\n }\n ) : /* @__PURE__ */ l(\n \"textarea\",\n {\n ref: u,\n style: n ? C : f ? P : b,\n rows: 1,\n className: \"rcb-chat-input-textarea\",\n placeholder: v,\n onChange: T,\n onKeyDown: h,\n onFocus: y,\n onBlur: E,\n onCompositionStart: S,\n onCompositionEnd: p\n }\n ),\n /* @__PURE__ */ X(oA, { children: [\n A == null ? void 0 : A.map(\n (U, G) => /* @__PURE__ */ l(RA, { children: U }, G)\n ),\n ((J = o.chatInput) == null ? void 0 : J.showCharacterCount) && ((F = o.chatInput) == null ? void 0 : F.characterLimit) != null && ((N = o.chatInput) == null ? void 0 : N.characterLimit) > 0 && /* @__PURE__ */ X(\n \"div\",\n {\n className: \"rcb-chat-input-char-counter\",\n style: a >= ((K = o.chatInput) == null ? void 0 : K.characterLimit) ? m : Q,\n children: [\n a,\n \"/\",\n (x = o.chatInput) == null ? void 0 : x.characterLimit\n ]\n }\n )\n ] })\n ]\n }\n );\n}, Yt = ({ buttons: A }) => {\n var t;\n const { settings: e } = O(), { styles: o } = Y();\n return /* @__PURE__ */ X(\n \"div\",\n {\n \"data-testid\": \"chatbot-footer-container\",\n style: { ...o.footerStyle },\n className: \"rcb-chat-footer-container\",\n children: [\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-footer\", children: A == null ? void 0 : A.map(\n (n, s) => /* @__PURE__ */ l(RA, { children: n }, s)\n ) }),\n /* @__PURE__ */ l(\"span\", { children: (t = e.footer) == null ? void 0 : t.text })\n ]\n }\n );\n}, Xt = () => {\n var c, i, u, f, d, w, g;\n const { settings: A } = O(), { styles: e } = Y(), { unreadCount: o } = tA(), { isChatWindowOpen: t, toggleChatWindow: n } = sA(), s = {\n backgroundImage: `linear-gradient(to right, ${(c = A.general) == null ? void 0 : c.secondaryColor},\n\t\t\t${(i = A.general) == null ? void 0 : i.primaryColor})`,\n ...e.chatButtonStyle\n }, a = {\n backgroundImage: `url(${(u = A.chatButton) == null ? void 0 : u.icon})`,\n fill: \"#fff\",\n width: 75,\n height: 75,\n ...e.chatIconStyle\n }, r = () => {\n var D;\n const B = (D = A.chatButton) == null ? void 0 : D.icon;\n return !B || typeof B == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-toggle-icon\",\n style: a\n }\n ) : B && /* @__PURE__ */ l(\"span\", { className: \"rcb-toggle-icon\", children: /* @__PURE__ */ l(B, { style: a }) });\n };\n return /* @__PURE__ */ l(oA, { children: !((f = A.general) != null && f.embedded) && /* @__PURE__ */ X(\n \"div\",\n {\n \"aria-label\": ((d = A.ariaLabel) == null ? void 0 : d.chatButton) ?? \"open chat\",\n role: \"button\",\n style: s,\n className: `rcb-toggle-button ${t ? \"rcb-button-hide\" : \"rcb-button-show\"}`,\n onClick: () => n(!0),\n children: [\n r(),\n !((w = A.notification) != null && w.disabled) && ((g = A.notification) == null ? void 0 : g.showCount) && /* @__PURE__ */ l(\"span\", { style: { ...e.notificationBadgeStyle }, className: \"rcb-badge\", children: o })\n ]\n }\n ) });\n}, Wt = () => {\n var g, B, D, b;\n const A = MA(), { settings: e } = O(), { styles: o } = Y(), { chatBodyRef: t } = AA(), { isChatWindowOpen: n, toggleChatWindow: s } = sA(), [a, r] = R(!1), [c, i] = R(!1), [u, f] = R(0);\n V(() => {\n var C, Q, m;\n const P = (C = e.tooltip) == null ? void 0 : C.mode;\n if (P === \"ALWAYS\")\n if (A) {\n let v;\n n ? v = (((Q = t.current) == null ? void 0 : Q.offsetWidth) ?? 375) - (typeof ((m = o.chatButtonStyle) == null ? void 0 : m.width) == \"number\" ? o.chatButtonStyle.width : 75) : v = 0, f(v), r(!0);\n } else\n r(!n);\n else P === \"NEVER\" ? r(!1) : P === \"START\" ? c ? r(!1) : (i(!0), r(!0)) : P === \"CLOSE\" && r(!n);\n }, [n]);\n const d = {\n transform: `translateX(-${u}px)`,\n right: (((g = o.chatButtonStyle) == null ? void 0 : g.width) ?? 75) + 40,\n bottom: 30,\n backgroundColor: (B = e.general) == null ? void 0 : B.secondaryColor,\n color: \"#fff\",\n ...o.tooltipStyle\n }, w = {\n borderColor: `transparent transparent transparent ${d.backgroundColor}`\n };\n return /* @__PURE__ */ l(oA, { children: !((D = e.general) != null && D.embedded) && /* @__PURE__ */ X(\n \"div\",\n {\n \"data-testid\": \"chat-tooltip\",\n style: d,\n className: `rcb-chat-tooltip ${a ? \"rcb-tooltip-show\" : \"rcb-tooltip-hide\"}`,\n onClick: () => s(!0),\n children: [\n /* @__PURE__ */ l(\"span\", { children: (b = e.tooltip) == null ? void 0 : b.text }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-chat-tooltip-tail\", style: w })\n ]\n }\n ) });\n}, Kt = ({\n id: A,\n content: e,\n timeout: o\n}) => {\n var d, w;\n const { settings: t } = O(), { styles: n } = Y(), [s] = R({\n toastPromptStyle: { ...n.toastPromptStyle },\n toastPromptHoveredStyle: { ...n.toastPromptHoveredStyle }\n }), { dismissToast: a } = EA(), [r, c] = R(!1), i = {\n color: (d = t.general) == null ? void 0 : d.primaryColor,\n borderColor: (w = t.general) == null ? void 0 : w.primaryColor,\n ...s.toastPromptHoveredStyle\n };\n return V(() => {\n if (o) {\n const g = setTimeout(() => {\n a(A);\n }, o);\n return () => clearTimeout(g);\n }\n }, [A, a, o]), typeof e == \"string\" ? /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n c(!0);\n },\n onMouseLeave: () => {\n c(!1);\n },\n style: r ? i : s.toastPromptStyle,\n onMouseDown: async (g) => {\n var B;\n (B = t.toast) != null && B.dismissOnClick && (g.preventDefault(), await a(A));\n },\n className: \"rcb-toast-prompt\",\n children: e\n }\n ) : /* @__PURE__ */ l(oA, { children: e });\n}, qt = () => {\n var t, n, s, a, r, c, i, u, f, d, w, g;\n const { styles: A } = Y(), { toasts: e } = ye(), o = {\n bottom: `calc(${typeof ((t = A.footerStyle) == null ? void 0 : t.height) == \"number\" ? `${(n = A.footerStyle) == null ? void 0 : n.height}px` : ((s = A.footerStyle) == null ? void 0 : s.height) ?? \"50px\"} + ${typeof ((a = A.chatInputContainerStyle) == null ? void 0 : a.height) == \"number\" ? `${(r = A.chatInputContainerStyle) == null ? void 0 : r.height}px` : ((c = A.chatInputContainerStyle) == null ? void 0 : c.height) ?? \"70px\"} + 20px)`,\n width: 300,\n minWidth: `calc(${typeof ((i = A.chatWindowStyle) == null ? void 0 : i.width) == \"number\" ? `${(u = A.chatWindowStyle) == null ? void 0 : u.width}px` : ((f = A.chatWindowStyle) == null ? void 0 : f.width) ?? \"375px\"} / 2)`,\n maxWidth: `calc(${typeof ((d = A.chatWindowStyle) == null ? void 0 : d.width) == \"number\" ? `${(w = A.chatWindowStyle) == null ? void 0 : w.width}px` : ((g = A.chatWindowStyle) == null ? void 0 : g.width) ?? \"375px\"} - 50px)`,\n ...A.toastPromptContainerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-toast-prompt-container\", style: o, children: e.map((B) => /* @__PURE__ */ l(\n Kt,\n {\n id: B.id,\n content: B.content,\n timeout: B.timeout\n },\n B.id\n )) });\n}, Ce = ({\n file: A,\n fileType: e,\n fileUrl: o\n}) => {\n var a, r, c;\n const { settings: t } = O(), { styles: n } = Y(), s = {\n backgroundColor: (a = t.general) == null ? void 0 : a.primaryColor,\n maxWidth: (r = t.userBubble) != null && r.showAvatar ? \"65%\" : \"70%\",\n ...n.mediaDisplayContainerStyle\n };\n return /* @__PURE__ */ l(oA, { children: o ? /* @__PURE__ */ X(oA, { children: [\n e === \"image\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-image-container rcb-media-entry\",\n \"data-testid\": \"media-display-image-container\",\n children: /* @__PURE__ */ l(\"img\", { src: o, alt: \"Image Display\", className: \"rcb-media-display-image\" })\n }\n ),\n e === \"video\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-video-container rcb-media-entry\",\n \"data-testid\": \"media-display-video-container\",\n children: /* @__PURE__ */ X(\"video\", { controls: !0, className: \"rcb-media-display-video\", children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the video tag.\"\n ] })\n }\n ),\n e === \"audio\" && o && /* @__PURE__ */ X(\n \"audio\",\n {\n \"data-testid\": \"media-display-audio-container\",\n style: {\n maxWidth: (c = t.userBubble) != null && c.showAvatar ? \"65%\" : \"70%\"\n },\n controls: !0,\n className: \"rcb-media-display-audio rcb-media-entry\",\n children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the audio tag.\"\n ]\n }\n )\n ] }) : /* @__PURE__ */ l(oA, {}) });\n}, me = async (A) => {\n if (!A)\n return { fileType: null, fileUrl: null };\n const e = A.type.split(\"/\")[0];\n if (![\"image\", \"video\", \"audio\"].includes(e))\n return { fileType: null, fileUrl: null };\n try {\n const o = await new Promise((t, n) => {\n const s = new FileReader();\n s.onload = () => t(s.result), s.onerror = () => n(new Error(\"File reading failed\")), s.readAsDataURL(A);\n });\n return { fileType: e, fileUrl: o };\n } catch (o) {\n return console.error(o), { fileType: null, fileUrl: null };\n }\n}, Jt = () => {\n var S, p, h, T, M, I;\n const { settings: A } = O(), { styles: e } = Y(), {\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a\n } = hA(), { getCurrPath: r, getPrevPath: c, goToPath: i, blockAllowsAttachment: u } = QA(), { flowRef: f, inputRef: d } = AA(), w = f.current, { showToast: g, dismissToast: B } = EA(), { dispatchRcbEvent: D } = iA(), { toggleChatWindow: b } = sA(), { setTextAreaValue: P } = DA(), { handleSubmitText: C } = yA(), Q = {\n cursor: `url(\"${(S = A.general) == null ? void 0 : S.actionDisabledIcon}\"), auto`,\n ...e.fileAttachmentButtonStyle,\n // by default inherit the base style\n ...e.fileAttachmentButtonDisabledStyle\n }, m = {\n backgroundImage: `url(${(p = A.fileAttachment) == null ? void 0 : p.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle\n }, v = {\n backgroundImage: `url(${(h = A.fileAttachment) == null ? void 0 : h.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle,\n // by default inherit the base style\n ...e.fileAttachmentIconDisabledStyle\n }, y = async (j) => {\n var N, K, x, U;\n const z = j.target.files;\n if (!z)\n return;\n const L = Array.from(z);\n if (j.target.value = \"\", (N = A.event) != null && N.rcbUserUploadFile && (await D(k.USER_UPLOAD_FILE, { files: L })).defaultPrevented)\n return;\n const W = r();\n if (!W)\n return;\n const J = w[W];\n if (!J)\n return;\n const F = J.file;\n if (F != null) {\n const G = [];\n for (let _ = 0; _ < L.length; _++) {\n if (G.push(L[_].name), !((K = A.fileAttachment) != null && K.showMediaDisplay))\n continue;\n const $ = await me(L[_]);\n !$.fileType || !$.fileUrl || await o(/* @__PURE__ */ l(\n Ce,\n {\n file: L[_],\n fileType: $.fileType,\n fileUrl: $.fileUrl\n }\n ), \"USER\");\n }\n await C(\"📄 \" + G.join(\", \"), (x = A.fileAttachment) == null ? void 0 : x.sendFileName), await F({\n userInput: (U = d.current) == null ? void 0 : U.value,\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: P,\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a,\n toggleChatWindow: b,\n showToast: g,\n dismissToast: B,\n files: L\n });\n }\n }, E = () => {\n var z, L;\n const j = u ? (z = A.fileAttachment) == null ? void 0 : z.icon : (L = A.fileAttachment) == null ? void 0 : L.iconDisabled;\n return !j || typeof j == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\",\n style: u ? m : v\n }\n ) : j && /* @__PURE__ */ l(\"span\", { className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\", children: /* @__PURE__ */ l(\n j,\n {\n style: u ? m : v\n }\n ) });\n };\n return /* @__PURE__ */ X(\n \"label\",\n {\n \"aria-label\": ((T = A.ariaLabel) == null ? void 0 : T.fileAttachmentButton) ?? \"upload file\",\n role: \"button\",\n className: u ? \"rcb-attach-button-enabled\" : \"rcb-attach-button-disabled\",\n style: u ? { ...e.fileAttachmentButtonStyle } : Q,\n children: [\n /* @__PURE__ */ l(\n \"input\",\n {\n className: \"rcb-attach-input\",\n role: \"file\",\n type: \"file\",\n onChange: y,\n multiple: (M = A.fileAttachment) == null ? void 0 : M.multiple,\n accept: (I = A.fileAttachment) == null ? void 0 : I.accept,\n disabled: !u\n }\n ),\n E()\n ]\n }\n );\n}, Vt = () => {\n var D, b, P, C, Q, m;\n const { settings: A } = O(), { styles: e } = Y(), { syncedTextAreaDisabledRef: o } = tA(), { inputRef: t } = AA(), { textAreaDisabled: n, setTextAreaValue: s } = DA(), a = eA(null), r = eA(null), [c, i] = R(!1), u = {\n cursor: `url(\"${(D = A.general) == null ? void 0 : D.actionDisabledIcon}\"), auto`,\n ...e.emojiButtonStyle,\n // by default inherit the base style\n ...e.emojiButtonDisabledStyle\n }, f = {\n backgroundImage: `url(${(b = A.emoji) == null ? void 0 : b.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle\n }, d = {\n backgroundImage: `url(${(P = A.emoji) == null ? void 0 : P.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle,\n // by default inherit the base style\n ...e.emojiIconDisabledStyle\n };\n V(() => {\n const v = (S) => {\n const p = S.composedPath();\n a.current && !p.includes(a.current) && r.current && !p.includes(r.current) && i(!1);\n }, y = () => {\n if (a.current && r.current) {\n const S = r.current.getBoundingClientRect(), p = a.current.offsetHeight, h = S.top - p - 8;\n a.current.style.left = `${S.left}px`, a.current.style.top = `${h}px`;\n }\n }, E = () => {\n y();\n };\n return document.addEventListener(\"mousedown\", v), window.addEventListener(\"resize\", E), () => {\n document.removeEventListener(\"mousedown\", v), window.removeEventListener(\"resize\", E);\n };\n }, []);\n const w = (v, y) => {\n v.preventDefault(), t.current && (s(t.current.value + y), setTimeout(() => {\n const E = t.current;\n if (E) {\n E.focus();\n const S = E.value.length;\n E.setSelectionRange(S, S);\n }\n }, 50)), i(!1);\n }, g = (v) => {\n v.preventDefault(), o.current ? i(!1) : i((y) => !y);\n }, B = () => {\n var y, E;\n const v = n ? (y = A.emoji) == null ? void 0 : y.iconDisabled : (E = A.emoji) == null ? void 0 : E.icon;\n return !v || typeof v == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`,\n style: n ? d : f\n }\n ) : v && /* @__PURE__ */ l(\"span\", { className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`, children: /* @__PURE__ */ l(v, { style: n ? d : f }) });\n };\n return /* @__PURE__ */ X(oA, { children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((C = A.ariaLabel) == null ? void 0 : C.emojiButton) ?? \"emoji picker\",\n role: \"button\",\n ref: r,\n className: `${n ? \"rcb-emoji-button-disabled\" : \"rcb-emoji-button-enabled\"}`,\n style: n ? u : { ...e.emojiButtonStyle },\n onMouseDown: g,\n children: B()\n }\n ),\n c && /* @__PURE__ */ l(\"div\", { className: \"rcb-emoji-button-popup\", ref: a, children: (m = (Q = A.emoji) == null ? void 0 : Q.list) == null ? void 0 : m.map((v, y) => /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-emoji\",\n onMouseDown: (E) => w(E, v),\n children: v\n },\n y\n )) })\n ] });\n}, Zt = () => {\n var r, c, i;\n const { settings: A } = O(), { styles: e } = Y(), { audioToggledOn: o, toggleAudio: t } = GA(), n = {\n backgroundImage: `url(${(r = A.audio) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.audioIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.audio) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.audioIconStyle,\n // by default inherit the base style\n ...e.audioIconDisabledStyle\n }, a = () => {\n var f, d;\n const u = o ? (f = A.audio) == null ? void 0 : f.icon : (d = A.audio) == null ? void 0 : d.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-audio-icon\",\n \"data-testid\": \"rcb-audio-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-audio-icon\", \"data-testid\": \"rcb-audio-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-audio-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.audioButton) ?? \"toggle audio\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.audioButtonStyle } : { ...e.audioButtonStyle, ...e.audioButtonDisabledStyle },\n children: a()\n }\n );\n}, _t = () => {\n var s, a;\n const { settings: A } = O(), { styles: e } = Y(), { toggleChatWindow: o } = sA(), t = {\n backgroundImage: `url(${(s = A.header) == null ? void 0 : s.closeChatIcon})`,\n fill: \"#e8eaed\",\n stroke: \"#e8eaed\",\n ...e.closeChatIconStyle\n }, n = () => {\n var c;\n const r = (c = A.header) == null ? void 0 : c.closeChatIcon;\n return !r || typeof r == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-close-chat-icon\",\n \"data-testid\": \"rcb-close-chat-icon\",\n style: t\n }\n ) : r && /* @__PURE__ */ l(\"span\", { className: \"rcb-close-chat-icon\", \"data-testid\": \"rcb-close-chat-icon\", children: /* @__PURE__ */ l(r, { style: t }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((a = A.ariaLabel) == null ? void 0 : a.closeChatButton) ?? \"close chat\",\n role: \"button\",\n onMouseDown: (r) => {\n r.stopPropagation(), o(!1);\n },\n style: { ...e.closeChatButtonStyle },\n children: n()\n }\n );\n}, $t = () => {\n const { notificationsToggledOn: A, toggleNotifications: e, playNotificationSound: o } = zA();\n return {\n notificationsToggledOn: A,\n toggleNotifications: e,\n playNotificationSound: o\n };\n}, Ao = () => {\n var r, c, i;\n const { settings: A } = O(), { styles: e } = Y(), { notificationsToggledOn: o, toggleNotifications: t } = $t(), n = {\n backgroundImage: `url(${(r = A.notification) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.notificationIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.notification) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.notificationIconStyle,\n // by default inherit the base style\n ...e.notificationIconDisabledStyle\n }, a = () => {\n var f, d;\n const u = o ? (f = A.notification) == null ? void 0 : f.icon : (d = A.notification) == null ? void 0 : d.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-notification-icon\",\n \"data-testid\": \"rcb-notification-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-notification-icon\", \"data-testid\": \"rcb-notification-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-notification-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.notificationButton) ?? \"toggle notifications\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.notificationButtonStyle } : { ...e.notificationButtonStyle, ...e.notificationButtonDisabledStyle },\n children: a()\n }\n );\n}, eo = () => {\n var P, C, Q;\n const { settings: A } = O(), { styles: e } = Y(), { injectMessage: o } = hA(), { inputRef: t } = AA(), { voiceToggledOn: n, toggleVoice: s } = TA(), { setInputLength: a, setTextAreaValue: r, textAreaDisabled: c } = DA(), { handleSubmitText: i } = yA(), u = eA([]), [f, d] = R(!1);\n V(() => {\n var m;\n (m = A.voice) != null && m.sendAsAudio ? (D(), u.current = []) : i();\n }, [f]), V(() => {\n n ? Ut(\n A,\n s,\n B,\n r,\n a,\n u,\n t\n ) : XA();\n }, [n]);\n const w = {\n backgroundImage: `url(${(P = A.voice) == null ? void 0 : P.icon})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle\n }, g = {\n backgroundImage: `url(${(C = A.voice) == null ? void 0 : C.iconDisabled})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle,\n // by default inherit the base style\n ...e.voiceIconDisabledStyle\n }, B = () => {\n d((m) => !m);\n }, D = async () => {\n const m = new Blob(u.current, { type: \"audio/wav\" }), v = new File([m], \"voice-input.wav\", { type: \"audio/wav\" }), y = await me(v);\n !y.fileType || !y.fileUrl || await o(/* @__PURE__ */ l(\n Ce,\n {\n file: v,\n fileType: y.fileType,\n fileUrl: y.fileUrl\n }\n ), \"USER\");\n }, b = () => {\n var v, y;\n const m = n ? (v = A.voice) == null ? void 0 : v.icon : (y = A.voice) == null ? void 0 : y.iconDisabled;\n return !m || typeof m == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `rcb-voice-icon${n && !c ? \"-on\" : \"\"}`,\n \"data-testid\": \"rcb-voice-icon\",\n style: n && !c ? w : g\n }\n ) : m && /* @__PURE__ */ l(\"span\", { className: `rcb-voice-icon ${n && !c ? \"on\" : \"\"}`, children: /* @__PURE__ */ l(m, { style: n && !c ? w : g }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((Q = A.ariaLabel) == null ? void 0 : Q.voiceButton) ?? \"toggle voice\",\n role: \"button\",\n onMouseDown: async (m) => {\n m.preventDefault(), !c && await s();\n },\n style: n && !c ? { ...e.voiceButtonStyle } : { ...e.voiceButtonStyle, ...e.voiceButtonDisabledStyle },\n className: n && !c ? \"rcb-voice-button-enabled\" : \"rcb-voice-button-disabled\",\n children: b()\n }\n );\n}, to = () => {\n var B, D, b, P, C, Q, m, v;\n const { settings: A } = O(), { styles: e } = Y(), { textAreaDisabled: o } = tA(), [t, n] = R(!1), { handleSubmitText: s } = yA(), a = {\n backgroundColor: (B = A.general) == null ? void 0 : B.primaryColor,\n ...e.sendButtonStyle\n }, r = {\n cursor: `url(\"${(D = A.general) == null ? void 0 : D.actionDisabledIcon}\"), auto`,\n backgroundColor: (b = A.general) == null ? void 0 : b.primaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonDisabledStyle\n }, c = {\n backgroundColor: (P = A.general) == null ? void 0 : P.secondaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonHoveredStyle\n }, i = {\n backgroundImage: `url(${(C = A.chatInput) == null ? void 0 : C.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle\n }, u = {\n backgroundImage: `url(${(Q = A.chatInput) == null ? void 0 : Q.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconDisabledStyle\n }, f = {\n backgroundImage: `url(${(m = A.chatInput) == null ? void 0 : m.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconHoveredStyle\n }, d = () => {\n n(!0);\n }, w = () => {\n n(!1);\n }, g = () => {\n var E;\n const y = (E = A.chatInput) == null ? void 0 : E.sendButtonIcon;\n return !y || typeof y == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-send-icon\",\n \"data-testid\": \"rcb-send-icon\",\n style: o ? u : t ? f : i\n }\n ) : y && /* @__PURE__ */ l(\"span\", { className: \"rcb-send-icon\", \"data-testid\": \"rcb-send-icon\", children: /* @__PURE__ */ l(\n y,\n {\n style: o ? u : t ? f : i\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((v = A.ariaLabel) == null ? void 0 : v.sendButton) ?? \"send message\",\n role: \"button\",\n onMouseEnter: d,\n onMouseLeave: w,\n onMouseDown: async (y) => {\n y == null || y.preventDefault(), !o && await s();\n },\n style: o ? r : t ? c : a,\n className: \"rcb-send-button\",\n children: g()\n }\n );\n}, oo = (A) => Object.values(Z).includes(A), no = (A, e) => {\n var c, i, u, f, d, w, g, B, D;\n const o = {\n [Z.AUDIO_BUTTON]: (c = A.audio) == null ? void 0 : c.disabled,\n [Z.CLOSE_CHAT_BUTTON]: (i = A.general) == null ? void 0 : i.embedded,\n [Z.EMOJI_PICKER_BUTTON]: (u = A.emoji) == null ? void 0 : u.disabled,\n [Z.FILE_ATTACHMENT_BUTTON]: (f = A.fileAttachment) == null ? void 0 : f.disabled,\n [Z.NOTIFICATION_BUTTON]: (d = A.notification) == null ? void 0 : d.disabled,\n [Z.SEND_MESSAGE_BUTTON]: !1,\n [Z.VOICE_MESSAGE_BUTTON]: (w = A.voice) == null ? void 0 : w.disabled\n }, t = {}, n = (b) => b ? b.map((P) => {\n if (typeof P == \"string\") {\n if (oo(P) && !o[P]) {\n if (t[P])\n return t[P];\n const C = e[P];\n if (typeof C == \"function\") {\n const Q = C();\n return t[P] = Q, Q;\n }\n return null;\n }\n return null;\n }\n return P;\n }).filter((P) => P !== null) : [], s = n((g = A.header) == null ? void 0 : g.buttons), a = n((B = A.chatInput) == null ? void 0 : B.buttons), r = n((D = A.footer) == null ? void 0 : D.buttons);\n return { header: s, chatInput: a, footer: r };\n}, so = () => /* @__PURE__ */ l(Zt, {}), ro = () => /* @__PURE__ */ l(Ao, {}), ao = () => /* @__PURE__ */ l(_t, {}), co = () => /* @__PURE__ */ l(eo, {}), io = () => /* @__PURE__ */ l(to, {}), lo = () => /* @__PURE__ */ l(Jt, {}), uo = () => /* @__PURE__ */ l(Vt, {}), fo = () => {\n const { settings: A } = O(), e = fA(() => ({\n [Z.CLOSE_CHAT_BUTTON]: () => ao(),\n [Z.AUDIO_BUTTON]: () => so(),\n [Z.NOTIFICATION_BUTTON]: () => ro(),\n [Z.EMOJI_PICKER_BUTTON]: () => uo(),\n [Z.FILE_ATTACHMENT_BUTTON]: () => lo(),\n [Z.SEND_MESSAGE_BUTTON]: () => io(),\n [Z.VOICE_MESSAGE_BUTTON]: () => co()\n }), []), { header: o, chatInput: t, footer: n } = fA(() => no(A, e), [A, e]), s = fA(() => o, [o]), a = fA(() => t, [t]), r = fA(() => n, [n]);\n return { headerButtons: s, chatInputButtons: a, footerButtons: r };\n}, WA = () => {\n const { settings: A } = O(), { styles: e } = Y(), { setSyncedMessages: o, syncedMessagesRef: t } = FA(), {\n isLoadingChatHistory: n,\n setIsLoadingChatHistory: s,\n hasChatHistoryLoaded: a,\n setHasChatHistoryLoaded: r\n } = tA(), { chatBodyRef: c } = AA(), { dispatchRcbEvent: i } = iA(), u = H(async () => {\n var w, g;\n const f = jA();\n if (!f || (w = A.event) != null && w.rcbLoadChatHistory && (await i(k.LOAD_CHAT_HISTORY, {})).defaultPrevented)\n return;\n s(!0);\n const d = ((g = c.current) == null ? void 0 : g.scrollHeight) ?? 0;\n Tt(\n A,\n e,\n f,\n o,\n t,\n c,\n d,\n s,\n r\n );\n }, [\n A,\n e,\n i,\n t,\n c,\n s,\n r\n ]);\n return { isLoadingChatHistory: n, setIsLoadingChatHistory: s, hasChatHistoryLoaded: a, showChatHistory: u };\n}, wo = () => {\n var c, i, u;\n const { settings: A } = O(), { styles: e } = Y(), { showChatHistory: o } = WA(), [t, n] = R(!1), s = {\n color: (c = A.general) == null ? void 0 : c.primaryColor,\n borderColor: (i = A.general) == null ? void 0 : i.primaryColor,\n ...e.chatHistoryButtonStyle,\n // by default inherit the base style\n ...e.chatHistoryButtonHoveredStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-view-history-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n n(!0);\n },\n onMouseLeave: () => {\n n(!1);\n },\n style: t ? s : { ...e.chatHistoryButtonStyle },\n onMouseDown: (f) => {\n f.preventDefault(), o();\n },\n className: \"rcb-view-history-button\",\n role: \"button\",\n tabIndex: 0,\n children: /* @__PURE__ */ l(\"p\", { children: (u = A.chatHistory) == null ? void 0 : u.viewChatHistoryButtonText })\n }\n ) });\n}, Qe = () => {\n var a;\n const { settings: A } = O(), { hasInteractedPage: e, setHasInteractedPage: o, hasFlowStarted: t, setHasFlowStarted: n } = tA(), s = H(() => {\n var c;\n if (o(!0), !t && ((c = A.general) == null ? void 0 : c.flowStartTrigger) === \"ON_PAGE_INTERACT\" && n(!0), !window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const r = new window.SpeechSynthesisUtterance();\n r.text = \"\", r.onend = () => {\n window.removeEventListener(\"click\", s), window.removeEventListener(\"keydown\", s), window.removeEventListener(\"touchstart\", s);\n }, window.speechSynthesis.speak(r);\n }, [t, (a = A.general) == null ? void 0 : a.flowStartTrigger]);\n return {\n hasInteractedPage: e,\n handleFirstInteraction: s\n };\n}, go = () => {\n var y, E, S, p;\n const A = MA(), { settings: e } = O(), {\n replaceMessages: o\n } = hA(), {\n isBotTyping: t,\n isChatWindowOpen: n,\n setUnreadCount: s,\n setSyncedIsChatWindowOpen: a,\n setSyncedTextAreaDisabled: r,\n setSyncedAudioToggledOn: c,\n setSyncedVoiceToggledOn: i,\n setSyncedIsScrolling: u,\n syncedIsScrollingRef: f,\n syncedIsChatWindowOpenRef: d\n } = tA(), { chatBodyRef: w } = AA(), { viewportHeight: g, setViewportHeight: B, setViewportWidth: D, scrollToBottom: b } = sA(), { setUpNotifications: P } = zA(), { handleFirstInteraction: C } = Qe(), { showChatHistory: Q } = WA(), m = eA(0), v = eA(!1);\n V(() => (window.addEventListener(\"click\", C), window.addEventListener(\"keydown\", C), window.addEventListener(\"touchstart\", C), () => {\n window.removeEventListener(\"click\", C), window.removeEventListener(\"keydown\", C), window.removeEventListener(\"touchstart\", C);\n }), []), V(() => {\n const h = w.current;\n if (!h)\n return;\n const T = () => {\n v.current || (v.current = !0, requestAnimationFrame(() => {\n var L, W;\n if (!h)\n return;\n const { scrollTop: M, clientHeight: I, scrollHeight: j } = h, z = M + I < j - (((L = e.chatWindow) == null ? void 0 : L.messagePromptOffset) ?? 30);\n u(z), f.current = z, z || (M + I >= j - 1 && (h.scrollTop = j - I - 1), (d.current || (W = e.general) != null && W.embedded) && s(0)), v.current = !1;\n }));\n };\n return h.addEventListener(\"wheel\", T, { passive: !0 }), h.addEventListener(\"touchmove\", T, { passive: !0 }), () => {\n h.removeEventListener(\"wheel\", T), h.removeEventListener(\"touchmove\", T);\n };\n }, []), V(() => {\n var h, T, M;\n r((h = e.chatInput) == null ? void 0 : h.disabled), a((T = e.chatWindow) == null ? void 0 : T.defaultOpen), c((M = e.audio) == null ? void 0 : M.defaultToggledOn), setTimeout(() => {\n var I;\n i((I = e.voice) == null ? void 0 : I.defaultToggledOn);\n }, 1);\n }, []), V(() => {\n var h;\n (h = e.notification) != null && h.disabled || P();\n }, [(y = e.notification) == null ? void 0 : y.disabled]), V(() => {\n !f.current && (w != null && w.current) && b();\n }, [t]), V(() => {\n var h, T;\n if ((h = e.chatHistory) != null && h.disabled)\n St();\n else if (UA(e), jA().length > 0) {\n const I = gA(/* @__PURE__ */ l(wo, {}), \"SYSTEM\");\n o([I]), (T = e.chatHistory) != null && T.autoLoad && Q();\n }\n }, [(E = e.chatHistory) == null ? void 0 : E.storageKey, (S = e.chatHistory) == null ? void 0 : S.maxEntries, (p = e.chatHistory) == null ? void 0 : p.disabled]), V(() => {\n var h;\n A || (h = e.general) != null && h.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener(\"geometrychange\", (T) => {\n if (!T.target)\n return;\n const { x: M, y: I, width: j, height: z } = T.target.boundingRect;\n M == 0 && I == 0 && j == 0 && z == 0 ? (setTimeout(() => {\n var L;\n B((L = window.visualViewport) == null ? void 0 : L.height);\n }, 101), setTimeout(() => {\n var L, W;\n g != ((L = window.visualViewport) == null ? void 0 : L.height) && B((W = window.visualViewport) == null ? void 0 : W.height);\n }, 1001)) : setTimeout(() => {\n var L;\n B(((L = window.visualViewport) == null ? void 0 : L.height) - z);\n }, 101);\n }));\n }, [A]), V(() => {\n var j, z, L, W;\n if (A)\n return;\n n && (B((j = window.visualViewport) == null ? void 0 : j.height), D((z = window.visualViewport) == null ? void 0 : z.width));\n const h = () => window.scrollTo({ top: 0, left: 0, behavior: \"auto\" }), T = () => m.current = window.scrollY, M = () => {\n var J, F;\n B((J = window.visualViewport) == null ? void 0 : J.height), D((F = window.visualViewport) == null ? void 0 : F.width);\n }, I = () => {\n var J;\n window.removeEventListener(\"scroll\", h), window.removeEventListener(\"scroll\", T), (J = window.visualViewport) == null || J.removeEventListener(\"resize\", M);\n };\n return n ? (I(), document.body.style.position = \"fixed\", window.addEventListener(\"scroll\", h), (L = window.visualViewport) == null || L.addEventListener(\"resize\", M)) : (document.body.style.position = \"static\", I(), window.scrollTo({ top: m.current, left: 0, behavior: \"auto\" }), window.addEventListener(\"scroll\", T), (W = window.visualViewport) == null || W.removeEventListener(\"resize\", M)), I;\n }, [n, A]);\n}, KA = {\n DEFAULT_URL: \"https://cdn.jsdelivr.net/gh/tjtanjin/react-chatbotify-themes/themes\",\n DEFAULT_EXPIRATION: \"2592000\",\n CACHE_KEY_PREFIX: \"RCB_THEME_CACHE_DATA\"\n}, Bo = KA.DEFAULT_URL, vo = KA.DEFAULT_EXPIRATION, be = KA.CACHE_KEY_PREFIX, Po = (A, e, o) => {\n const t = localStorage.getItem(`${be}_${A}_${e}`);\n if (!t)\n return null;\n try {\n const n = JSON.parse(t), s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3);\n return n.cacheDate + o >= a ? n : null;\n } catch (n) {\n return console.error(`Unable to fetch cache for ${A}`, n), null;\n }\n}, ho = (A, e, o, t, n) => {\n const s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3), r = {\n settings: o,\n inlineStyles: t,\n cssStylesText: n,\n cacheDate: a\n };\n localStorage.setItem(`${be}_${A}_${e}`, JSON.stringify(r));\n}, Do = async (A, e) => {\n const o = `${e}/${A}/meta.json`;\n try {\n const t = await fetch(o);\n return t.ok ? (await t.json()).version : (console.error(`Failed to fetch meta.json from ${o}`), null);\n } catch (t) {\n return console.error(`Failed to fetch meta.json from ${o}`, t), null;\n }\n}, oe = async (A, e) => {\n const { id: o, version: t, baseUrl: n = Bo, cacheDuration: s = vo } = e, a = t || await Do(o, n);\n if (!a)\n return console.error(`Unable to find version for theme: ${o}`), { settings: {}, inlineStyles: {}, cssStylesText: \"\" };\n const r = Po(o, a, s);\n if (r) {\n const P = ne(A, r.cssStylesText);\n return { settings: r.settings, inlineStyles: r.inlineStyles, cssStylesText: P };\n }\n const c = `${n}/${o}/${a}/styles.css`, i = `${n}/${o}/${a}/settings.json`, u = `${n}/${o}/${a}/styles.json`;\n let f = \"\";\n const d = await fetch(c);\n d.ok ? f = await d.text() : console.info(`Could not fetch styles.css from ${c}`);\n const w = await fetch(i);\n let g = {};\n w.ok ? g = await w.json() : console.info(`Could not fetch settings.json from ${i}`);\n const B = await fetch(u);\n let D = {};\n B.ok ? D = await B.json() : console.info(`Could not fetch styles.json from ${u}`), ho(o, a, g, D, f);\n const b = ne(A, f);\n return { settings: g, inlineStyles: D, cssStylesText: b };\n}, ne = (A, e) => e.split(new RegExp(\"(?<=})\")).map((t) => {\n const n = t.trim();\n return n.startsWith(\"@import\") || n.startsWith(\"@keyframes\") || n.startsWith(\"@media\") ? n : n ? `#${A} ${n}` : \"\";\n}).join(`\n`), Eo = () => kA(re), yo = () => kA(ce), Co = async (A, e, o, t) => {\n var r, c;\n let n = Eo(), s = yo(), a = \"\";\n if (t != null)\n if (Array.isArray(t))\n for (const i of t) {\n const u = await oe(A, i);\n n = uA(u.settings, n), s = uA(u.inlineStyles, s), a += u.cssStylesText;\n }\n else {\n const i = await oe(A, t);\n n = uA(i.settings, n), s = uA(i.inlineStyles, s), a += i.cssStylesText;\n }\n return e != null && (n = uA(e, n)), o != null && (s = uA(o, s)), ((r = n.chatInput) == null ? void 0 : r.botDelay) != null && ((c = n.chatInput) == null ? void 0 : c.botDelay) < 500 && (n.chatInput.botDelay = 500), { settings: n, inlineStyles: s, cssStylesText: a };\n}, uA = (A, e) => {\n const o = [{ source: A, target: e }];\n for (; o.length; ) {\n const t = o.pop();\n if (t == null)\n continue;\n const { source: n, target: s } = t;\n for (const a of Object.keys(n)) {\n const r = a;\n if (se(n[r]))\n s[r] = n[r];\n else if (typeof n[r] == \"object\" && n[r] !== null && !Array.isArray(n[r]))\n (typeof s[r] != \"object\" || s[r] === null) && (s[r] = {}), o.push({ source: n[r], target: s[r] });\n else\n try {\n s[r] = n[r];\n } catch {\n }\n }\n }\n return e;\n}, kA = (A) => {\n if (A === null || typeof A != \"object\")\n return A;\n const e = Array.isArray(A) ? [] : {}, o = [{ source: A, target: e }], t = /* @__PURE__ */ new WeakMap();\n for (t.set(A, e); o.length; ) {\n const n = o.pop();\n if (n == null)\n continue;\n const { source: s, target: a } = n;\n for (const r in s)\n if (Object.prototype.hasOwnProperty.call(s, r)) {\n const c = s[r];\n if (c && typeof c == \"object\")\n if (t.has(c))\n a[r] = t.get(c);\n else {\n const i = Array.isArray(c) ? [] : {};\n t.set(c, i), a[r] = i, o.push({ source: c, target: i });\n }\n else\n a[r] = c;\n }\n }\n return e;\n}, pe = () => {\n const { settings: A, setSettings: e } = O(), o = H((n) => {\n !n || Object.keys(n).length === 0 || e(kA(uA(n, A)));\n }, [A]), t = H((n) => {\n e(n);\n }, []);\n return {\n settings: A,\n replaceSettings: t,\n updateSettings: o\n };\n}, Se = () => {\n const { styles: A, setStyles: e } = Y(), o = H((n) => {\n !n || Object.keys(n).length === 0 || e(kA(uA(n, A)));\n }, [A]), t = H((n) => {\n e(n);\n }, []);\n return {\n styles: A,\n replaceStyles: t,\n updateStyles: o\n };\n}, mo = (A) => {\n const { updateSettings: e } = pe(), { updateStyles: o } = Se(), t = A == null ? void 0 : A.map((n) => n());\n V(() => {\n let n = {}, s = {};\n t == null || t.forEach((a) => {\n a != null && a.settings && Object.keys(a == null ? void 0 : a.settings).length !== 0 && (n = uA(a.settings, n)), a != null && a.styles && Object.keys(a == null ? void 0 : a.styles).length !== 0 && (s = uA(a.styles, s));\n }), e(n), o(s);\n }, []);\n}, Qo = ({\n plugins: A\n}) => {\n var b, P, C, Q, m;\n const e = MA(), { settings: o } = O(), { styles: t } = Y(), { hasFlowStarted: n, setHasFlowStarted: s } = tA(), { inputRef: a } = AA(), {\n viewportHeight: r,\n viewportWidth: c,\n isChatWindowOpen: i\n } = sA(), { goToPath: u } = QA(), { headerButtons: f, chatInputButtons: d, footerButtons: w } = fo();\n go(), mo(A), V(() => {\n var v;\n (n || ((v = o.general) == null ? void 0 : v.flowStartTrigger) === \"ON_LOAD\") && u(\"start\");\n }, [n, (b = o.general) == null ? void 0 : b.flowStartTrigger]);\n const g = fA(() => {\n var y;\n const v = \"rcb-chatbot-global \";\n return (y = o.general) != null && y.embedded ? v + \"rcb-window-embedded\" : i ? v + \"rcb-window-open\" : v + \"rcb-window-close\";\n }, [o, i]), B = () => {\n var v, y;\n return !e && !((v = o.general) != null && v.embedded) ? {\n ...t.chatWindowStyle,\n borderRadius: \"0px\",\n left: \"0px\",\n right: \"auto\",\n top: \"0px\",\n bottom: \"auto\",\n width: `${c}px`,\n height: `${r}px`,\n zIndex: 1e4\n } : (y = o.general) != null && y.embedded ? { ...t.chatWindowStyle } : {\n ...t.chatWindowStyle,\n zIndex: 1e4\n };\n };\n return /* @__PURE__ */ l(oA, { children: (() => {\n var v, y;\n return e && ((v = o.device) == null ? void 0 : v.desktopEnabled) || !e && ((y = o.device) == null ? void 0 : y.mobileEnabled);\n })() && /* @__PURE__ */ X(\n \"div\",\n {\n onMouseDown: (v) => {\n var y, E;\n !n && ((y = o.general) == null ? void 0 : y.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && s(!0), e ? (E = a.current) == null || E.blur() : v == null || v.preventDefault();\n },\n className: g,\n children: [\n /* @__PURE__ */ l(Wt, {}),\n /* @__PURE__ */ l(Xt, {}),\n i && !e && !((P = o.general) != null && P.embedded) && /* @__PURE__ */ X(oA, { children: [\n /* @__PURE__ */ l(\"style\", { children: `\n\t\t\t\t\t\t\t\t\thtml {\n\t\t\t\t\t\t\t\t\t\toverflow: hidden !important;\n\t\t\t\t\t\t\t\t\t\ttouch-action: none !important;\n\t\t\t\t\t\t\t\t\t\tscroll-behavior: auto !important;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t` }),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"#fff\",\n zIndex: 9999\n }\n }\n )\n ] }),\n /* @__PURE__ */ X(\"div\", { style: B(), className: \"rcb-chat-window\", children: [\n ((C = o.general) == null ? void 0 : C.showHeader) && /* @__PURE__ */ l(tt, { buttons: f }),\n /* @__PURE__ */ l(ft, {}),\n /* @__PURE__ */ l(qt, {}),\n ((Q = o.general) == null ? void 0 : Q.showInputRow) && /* @__PURE__ */ l(Gt, { buttons: d }),\n ((m = o.general) == null ? void 0 : m.showFooter) && /* @__PURE__ */ l(Yt, { buttons: w })\n ] })\n ]\n }\n ) });\n}, Ie = vA(void 0), Te = () => PA(Ie), bo = ({\n children: A\n}) => {\n var u;\n const e = eA(\"\"), o = eA({}), [t, n] = R({}), [s, a] = R({}), [r, c] = R(!1);\n V(() => {\n c(!0);\n }, []);\n const i = async (f, d, w, g, B, D) => {\n e.current = f, o.current = d;\n const b = await Co(f, w, g, B);\n D.current && (D.current.textContent = b.cssStylesText), n(b.settings), a(b.inlineStyles);\n };\n return r ? /* @__PURE__ */ l(\"div\", { style: { fontFamily: (u = t.general) == null ? void 0 : u.fontFamily }, children: /* @__PURE__ */ l(Ie.Provider, { value: { loadConfig: i }, children: /* @__PURE__ */ l(At, { settings: t, setSettings: n, children: /* @__PURE__ */ l(et, { styles: s, setStyles: a, children: /* @__PURE__ */ l(zt, { children: /* @__PURE__ */ l(ot, { botIdRef: e, flowRef: o, children: /* @__PURE__ */ l(rt, { children: /* @__PURE__ */ l(nt, { settings: t, children: /* @__PURE__ */ l(ct, { children: A }) }) }) }) }) }) }) }) }) : null;\n}, po = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s,\n setConfigLoaded: a,\n styleRootRef: r\n}) => {\n const c = fA(() => A, []), i = Te(), { flowRef: u } = AA();\n u && u.current !== e && (u.current = e);\n const f = async () => {\n var d, w;\n (d = o.event) != null && d.rcbPreLoadChatBot && (await NA(\n k.PRE_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n )).defaultPrevented || (i != null && i.loadConfig && (await i.loadConfig(c, e, o, t, n, r), a(!0)), (w = o.event) != null && w.rcbPostLoadChatBot && NA(\n k.POST_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n ));\n };\n return V(() => {\n f();\n }, [n]), null;\n}, LA = [\"Quickstart\", \"API Docs\", \"Examples\", \"Github\", \"Discord\"], So = {\n start: {\n message: \"Hello, I am Tan Jin 👋! Welcome to React ChatBotify, I'm excited that you are using our chatbot 😊!\",\n transition: { duration: 1e3 },\n chatDisabled: !0,\n path: \"show_options\"\n },\n show_options: {\n message: \"It looks like you have not set up a conversation flow yet. No worries! Here are a few helpful things you can check out to get started:\",\n options: LA,\n path: \"process_options\"\n },\n prompt_again: {\n message: \"Do you need any other help?\",\n options: LA,\n path: \"process_options\"\n },\n unknown_input: {\n message: \"Sorry, I do not understand your message 😢! If you require further assistance, you may click on the Github option and open an issue there or visit our discord.\",\n options: LA,\n path: \"process_options\"\n },\n process_options: {\n transition: { duration: 0 },\n path: (A) => {\n let e = \"\";\n switch (A.userInput) {\n case \"Quickstart\":\n e = \"https://react-chatbotify.com/docs/introduction/quickstart/\";\n break;\n case \"API Docs\":\n e = \"https://react-chatbotify.com/docs/api/bot_options\";\n break;\n case \"Examples\":\n e = \"https://react-chatbotify.com/docs/examples/basic_form\";\n break;\n case \"Github\":\n e = \"https://github.com/tjtanjin/react-chatbotify/\";\n break;\n case \"Discord\":\n e = \"https://discord.gg/6R4DK4G5Zh\";\n break;\n default:\n return \"unknown_input\";\n }\n return A.injectMessage(\"Sit tight! I'll send you right there!\"), setTimeout(() => {\n window.open(e);\n }, 1e3), \"repeat\";\n }\n },\n repeat: {\n transition: { duration: 3e3 },\n path: \"prompt_again\"\n }\n}, Lo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n}) => {\n const a = fA(() => A || \"rcb-\" + SA(), []), r = !e || Object.keys(e).length === 0 ? So : e, c = o || {}, i = t || {}, u = s || [], [f, d] = R(!1), w = Te(), g = eA(null), [B, D] = R(n || []);\n V(() => {\n n && D(n);\n }, [n]);\n const b = () => /* @__PURE__ */ X(oA, { children: [\n /* @__PURE__ */ l(\n po,\n {\n styleRootRef: g,\n id: a,\n flow: r,\n settings: c,\n styles: i,\n themes: B,\n plugins: u,\n setConfigLoaded: d\n }\n ),\n f && /* @__PURE__ */ l(Qo, { plugins: s })\n ] });\n return w == null ? /* @__PURE__ */ X(bo, { children: [\n /* @__PURE__ */ l(\"style\", { ref: g }),\n /* @__PURE__ */ l(\"div\", { id: a, children: b() })\n ] }) : /* @__PURE__ */ X(oA, { children: [\n /* @__PURE__ */ l(\"style\", { ref: g }),\n /* @__PURE__ */ l(\"div\", { id: a, children: b() })\n ] });\n}, No = () => {\n const { audioToggledOn: A, speakAudio: e, toggleAudio: o } = GA();\n return {\n audioToggledOn: A,\n speakAudio: e,\n toggleAudio: o\n };\n}, Io = () => {\n const { botIdRef: A } = AA();\n return {\n getBotId: H(() => A.current, [A])\n };\n}, To = () => {\n const { getBotId: A } = Io();\n return {\n getBotId: A\n };\n}, Uo = () => {\n const { isChatWindowOpen: A, toggleChatWindow: e, toggleIsBotTyping: o, scrollToBottom: t } = sA();\n return {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t\n };\n}, Ro = () => {\n const { hasInteractedPage: A } = Qe();\n return {\n hasInteractedPage: A\n };\n}, Mo = () => {\n const { replaceMessages: A } = hA(), { replacePaths: e, goToPath: o } = QA(), { replaceToasts: t } = EA(), { hasFlowStarted: n } = tA(), { flowRef: s, timeoutIdRef: a } = AA(), { settings: r } = O(), c = H(async () => {\n UA(r), a.current && clearTimeout(a.current), A([]), t([]), e([]), await o(\"start\");\n }, [a, r, A, t, e, UA, o]), i = H(() => (s == null ? void 0 : s.current) ?? {}, [s]);\n return {\n hasFlowStarted: n,\n restartFlow: c,\n getFlow: i\n };\n}, Fo = () => {\n const { hasFlowStarted: A, restartFlow: e, getFlow: o } = Mo();\n return {\n hasFlowStarted: A,\n restartFlow: e,\n getFlow: o\n };\n}, jo = () => {\n const {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a\n } = hA();\n return {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a\n };\n}, zo = (A, e) => {\n const { getBotId: o } = To();\n V(() => {\n const t = (n) => {\n n.detail.botId === o() && e(n);\n };\n return window.addEventListener(A, t), () => {\n window.removeEventListener(A, t);\n };\n }, [o, A, e]);\n}, Go = () => {\n const {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n } = QA();\n return {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n };\n}, Yo = () => {\n const { settings: A, replaceSettings: e, updateSettings: o } = pe();\n return {\n settings: A,\n replaceSettings: e,\n updateSettings: o\n };\n}, Xo = () => {\n const { styles: A, replaceStyles: e, updateStyles: o } = Se();\n return {\n styles: A,\n replaceStyles: e,\n updateStyles: o\n };\n}, Wo = () => {\n const {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n } = DA();\n return {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n };\n}, Ko = () => {\n const { showToast: A, dismissToast: e, toasts: o, replaceToasts: t } = EA();\n return {\n showToast: A,\n dismissToast: e,\n toasts: o,\n replaceToasts: t\n };\n}, qo = () => {\n const { voiceToggledOn: A, toggleVoice: e } = TA();\n return {\n voiceToggledOn: A,\n toggleVoice: e\n };\n}, Jo = () => {\n const { showChatHistory: A, hasChatHistoryLoaded: e } = WA();\n return {\n showChatHistory: A,\n getHistoryMessages: jA,\n setHistoryMessages: pt,\n hasChatHistoryLoaded: e\n };\n};\nexport {\n Z as Button,\n bo as ChatBotProvider,\n k as RcbEvent,\n Lo as default,\n Eo as getDefaultSettings,\n yo as getDefaultStyles,\n No as useAudio,\n To as useBotId,\n Jo as useChatHistory,\n Uo as useChatWindow,\n Ro as useFirstInteraction,\n Fo as useFlow,\n jo as useMessages,\n $t as useNotifications,\n zo as useOnRcbEvent,\n Go as usePaths,\n Yo as useSettings,\n Xo as useStyles,\n Wo as useTextArea,\n Ko as useToasts,\n qo as useVoice\n};\n","// Default configuration values for the QA Bot\nexport const DEFAULT_CONFIG = {\n LOGIN_URL: '/login',\n PROMPT_TEXT: 'Questions should stand alone and not refer to previous ones.',\n WELCOME_MESSAGE: 'Hello! What can I help you with?',\n WELCOME_MESSAGE_LOGGED_OUT: 'To ask questions, please log in.',\n WELCOME_MESSAGE_LOGIN_TRANSITION: 'Welcome! You are now logged in. How can I help you today?',\n WELCOME_MESSAGE_LOGOUT_TRANSITION: 'You have been logged out.',\n API_ENDPOINT: 'https://access-ai.ccs.uky.edu/api/query',\n\n // Error messages\n ERRORS: {\n API_UNAVAILABLE: 'Unable to contact the Q&A Bot. Please try again later.',\n },\n\n // Theme defaults\n THEME: {\n PRIMARY_COLOR: '#1a5b6e',\n SECONDARY_COLOR: '#107180',\n FONT_FAMILY: 'Arial, sans-serif'\n },\n\n // Chat bot UI defaults\n CHATBOT: {\n TITLE: 'ACCESS Q&A Bot',\n AVATAR_URL: 'https://support.access-ci.org/themes/contrib/asp-theme/images/icons/ACCESS-arrrow.svg',\n TOOLTIP_TEXT: 'Ask me about ACCESS! 😊'\n }\n};","import React, { useImperativeHandle, useEffect, useRef } from 'react';\nimport { useFlow, useMessages, useChatWindow } from \"react-chatbotify\";\nimport useLoginStateTransition from '../hooks/useLoginStateTransition';\n\n/**\n * BotController Component\n *\n * Handles the integration between react-chatbotify hooks and the imperative API.\n * This component must be rendered inside ChatBotProvider to access the hooks.\n *\n * @param {Object} props - Component props\n * @param {boolean} props.embedded - Whether the bot is embedded (affects chat window controls)\n * @param {Function} props.setIsBotLoggedIn - Function to update login state\n * @param {boolean} props.isBotLoggedIn - Current login state\n * @param {Function} props.onOpenChange - Callback for open state changes\n * @param {boolean} props.currentOpen - Current open state\n * @param {React.Ref} ref - The forwarded ref for the imperative API\n */\nconst BotController = React.forwardRef(({\n embedded,\n setIsBotLoggedIn,\n isBotLoggedIn,\n onOpenChange,\n currentOpen\n}, ref) => {\n // Get the chatbot hooks (must be inside ChatBotProvider)\n const messages = useMessages();\n const flow = useFlow();\n const chatWindow = useChatWindow();\n\n // Track the last known state to avoid infinite loops\n const lastOpenRef = useRef(currentOpen);\n\n // Handle login state transitions with automatic message injection\n useLoginStateTransition(isBotLoggedIn);\n\n // Sync open state with chat window when it changes\n useEffect(() => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n // Only sync if the state actually changed\n if (lastOpenRef.current !== currentOpen) {\n console.log('| BotController | Syncing chat window state to:', currentOpen);\n chatWindow.toggleChatWindow(currentOpen);\n lastOpenRef.current = currentOpen;\n }\n }\n }, [currentOpen, embedded, chatWindow]);\n\n // Set up the imperative API methods\n useImperativeHandle(ref, () => ({\n // Add a message to the chat\n addMessage: (message) => {\n if (messages && messages.injectMessage) {\n messages.injectMessage(message);\n }\n },\n // Set login status\n setBotIsLoggedIn: (status) => {\n setIsBotLoggedIn(status);\n // Don't restart flow - let the flow's path functions handle the login state change\n },\n // Open the chat window (floating mode only)\n openChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(true);\n lastOpenRef.current = true;\n // Notify parent of state change\n if (onOpenChange) {\n onOpenChange(true);\n }\n }\n },\n // Close the chat window (floating mode only)\n closeChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(false);\n lastOpenRef.current = false;\n // Notify parent of state change\n if (onOpenChange) {\n onOpenChange(false);\n }\n }\n },\n // Toggle the chat window (floating mode only)\n toggleChat: () => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n const newState = !lastOpenRef.current;\n chatWindow.toggleChatWindow();\n lastOpenRef.current = newState;\n // Notify parent of state change\n if (onOpenChange) {\n onOpenChange(newState);\n }\n }\n }\n }), [messages, chatWindow, embedded, setIsBotLoggedIn, onOpenChange]);\n\n // This component doesn't render anything\n return null;\n});\n\nexport default BotController;","import { useEffect, useRef } from 'react';\nimport { useMessages } from 'react-chatbotify';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to handle login state transitions with automatic message injection\n * @param {boolean} isBotLoggedIn - Current login state\n */\nconst useLoginStateTransition = (isBotLoggedIn) => {\n const prevLoginStateRef = useRef(isBotLoggedIn);\n const { injectMessage } = useMessages();\n\n useEffect(() => {\n const loginStateChanged = prevLoginStateRef.current !== isBotLoggedIn;\n const justLoggedIn = !prevLoginStateRef.current && isBotLoggedIn;\n\n if (loginStateChanged) {\n if (justLoggedIn) {\n injectMessage(DEFAULT_CONFIG.WELCOME_MESSAGE_LOGIN_TRANSITION, 'bot');\n } else {\n injectMessage(DEFAULT_CONFIG.WELCOME_MESSAGE_LOGOUT_TRANSITION, 'bot');\n }\n }\n\n // Update the previous state for next comparison\n prevLoginStateRef.current = isBotLoggedIn;\n }, [isBotLoggedIn, injectMessage]);\n};\n\nexport default useLoginStateTransition;","import React from 'react';\n\n/**\n * UserIcon Component\n *\n * A standalone component for the user icon that can be styled independently\n *\n * @returns {JSX.Element} Rendered user icon\n */\nconst UserIcon = () => (\n <div\n className=\"user-login-icon\"\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '30px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: '#1a5b6e',\n marginRight: '5px'\n }}\n title=\"User logged in\"\n // onClick={() => console.log('UserIcon clicked')}\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"12\" cy=\"7\" r=\"4\"></circle>\n </svg>\n </div>\n);\n\nexport default UserIcon;","import React from 'react';\n\n/**\n * LoginButton Component\n *\n * A standalone component for the login button that can be styled independently\n *\n * @param {Object} props - Component props\n * @param {string} props.loginUrl - URL to navigate to for login\n * @param {string} [props.className] - Optional CSS class for styling\n * @param {Object} [props.style] - Optional inline styles\n * @returns {JSX.Element} Rendered login button\n */\nconst LoginButton = ({ loginUrl, className = '', style }) => {\n const defaultStyle = {\n display: 'inline-block',\n padding: '10px 20px',\n backgroundColor: 'white',\n border: '1px solid #107180',\n color: '#107180',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'bold',\n textAlign: 'center',\n margin: '18px',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)'\n };\n\n return (\n <a\n href={loginUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`qa-bot-login-button ${className}`}\n style={{ ...defaultStyle, ...style }}\n >\n Log In\n </a>\n );\n};\n\nexport default LoginButton;","import React from 'react';\nimport { useMemo } from 'react';\nimport LoginButton from '../components/LoginButton';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to generate the chat flow configuration\n * @param {Object} params - Parameters for the flow\n * @param {string} params.welcomeMessage - Welcome message to display\n * @param {boolean} params.isBotLoggedIn - Whether the bot user is logged in\n * @param {string} params.loginUrl - URL for login\n * @param {Function} params.handleQuery - Function to handle AI queries\n * @param {boolean} params.hasQueryError - Whether there's a query error\n * @returns {Object} Flow configuration object\n */\n\nfunction calculateWelcomeMessage(isBotLoggedIn, welcomeMessage) {\n const loggedInWelcome = welcomeMessage !== undefined ? welcomeMessage : DEFAULT_CONFIG.WELCOME_MESSAGE;\n const loggedOutWelcome = DEFAULT_CONFIG.WELCOME_MESSAGE_LOGGED_OUT;\n return isBotLoggedIn ? loggedInWelcome : loggedOutWelcome;\n}\n\nfunction calculateComponent(isBotLoggedIn, loginUrl){\n return !isBotLoggedIn ? <LoginButton loginUrl={loginUrl} /> : null;\n}\n\nconst useChatFlow = ({ welcomeMessage, isBotLoggedIn, loginUrl, handleQuery, hasQueryError }) => {\n console.log('| calculating flow | isBotLoggedIn', isBotLoggedIn);\n\n const flow = useMemo(() => ({\n start: {\n message: calculateWelcomeMessage(isBotLoggedIn, welcomeMessage),\n component: calculateComponent(isBotLoggedIn, loginUrl),\n path: isBotLoggedIn ? 'loop' : 'start'\n },\n loop: {\n message: async (params) => {\n await handleQuery(params);\n },\n path: () => hasQueryError ? 'start' : 'loop'\n }\n }), [isBotLoggedIn, loginUrl, handleQuery, hasQueryError, welcomeMessage]);\n\n return flow;\n};\n\nexport default useChatFlow;","import React, { useRef, useState, useEffect } from 'react';\nimport ChatBot, { ChatBotProvider } from \"react-chatbotify\";\nimport BotController from './BotController';\nimport useThemeColors from '../hooks/useThemeColors';\nimport useChatBotSettings from '../hooks/useChatBotSettings';\nimport useHandleAIQuery from '../hooks/useHandleAIQuery';\nimport useChatFlow from '../hooks/useChatFlow';\nimport useUpdateHeader from '../hooks/useUpdateHeader';\nimport useRingEffect from '../hooks/useRingEffect';\nimport { DEFAULT_CONFIG } from '../config/constants';\nimport '../styles/rcb-base.css';\n\n/**\n * Q&A Bot Component (Controlled)\n *\n * @param {Object} [props]\n * @param {string} [props.apiKey] - API key for the Q&A endpoint\n * @param {boolean} [props.open] - Whether the chat window is open (floating mode only, ignored for embedded)\n * @param {Function} [props.onOpenChange] - Callback when chat window open state changes\n * @param {boolean} [props.embedded=false] - Whether the bot is embedded in the page (always open when embedded)\n * @param {boolean} [props.isLoggedIn=false] - Whether the user is logged in\n * @param {string} [props.loginUrl='/login'] - URL to redirect for login\n * @param {boolean} [props.ringEffect=true] - Whether to apply the phone ring animation effect to the tooltip\n * @param {string} [props.welcome='Hello! What can I help you with?'] - Welcome message\n * @returns {JSX.Element}\n */\n\nconst buildWelcomeMessage = (isLoggedIn, welcomeMessage) => {\n if (isLoggedIn) {\n return welcomeMessage || DEFAULT_CONFIG.WELCOME_MESSAGE;\n } else {\n return DEFAULT_CONFIG.WELCOME_MESSAGE_LOGGED_OUT;\n }\n}\n\nconst QABot = React.forwardRef((props, ref) => {\n // Destructure props\n const {\n apiKey,\n open = false,\n onOpenChange,\n embedded = false,\n isLoggedIn,\n loginUrl = DEFAULT_CONFIG.LOGIN_URL,\n ringEffect = true,\n welcome\n } = props;\n\n // API configuration\n const finalApiKey = apiKey || process.env.REACT_APP_API_KEY;\n\n // State management\n const [isBotLoggedIn, setIsBotLoggedIn] = useState(isLoggedIn !== undefined ? isLoggedIn : false);\n const [hasQueryError, setHasQueryError] = useState(false);\n\n // Update internal state when isLoggedIn prop changes\n useEffect(() => {\n if (isLoggedIn !== undefined) {\n setIsBotLoggedIn(isLoggedIn);\n }\n }, [isLoggedIn]);\n\n // Derived values\n const welcomeMessage = buildWelcomeMessage(isBotLoggedIn, welcome);\n\n // Refs\n const containerRef = useRef(null);\n\n const themeColors = useThemeColors(containerRef);\n const chatBotSettings = useChatBotSettings({\n themeColors,\n embedded,\n defaultOpen: open,\n isLoggedIn: isBotLoggedIn\n });\n\n // Use the AI query handling hook\n const handleQuery = useHandleAIQuery(finalApiKey, setHasQueryError);\n\n // Use the chat flow hook\n const flow = useChatFlow({\n welcomeMessage,\n isBotLoggedIn,\n loginUrl,\n handleQuery,\n hasQueryError\n });\n\n // Use custom hook to update header title dynamically\n useUpdateHeader(isBotLoggedIn, containerRef);\n\n // Use custom hook to apply ring effect if enabled\n useRingEffect(ringEffect, containerRef);\n\n return (\n <div className={`qa-bot ${embedded ? \"embedded-qa-bot\" : \"\"}`} ref={containerRef}>\n <ChatBotProvider>\n <BotController\n ref={ref}\n embedded={embedded}\n setIsBotLoggedIn={setIsBotLoggedIn}\n isBotLoggedIn={isBotLoggedIn}\n onOpenChange={onOpenChange}\n currentOpen={open}\n />\n <ChatBot\n settings={chatBotSettings}\n flow={flow}\n />\n </ChatBotProvider>\n </div>\n );\n});\n\nexport default QABot;","import { useMemo } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to get theme colors from CSS variables\n * @param {React.RefObject} containerRef - Reference to the container element\n * @param {Object} defaultColors - Default color values if CSS variables are not found\n * @returns {Object} Theme colors object\n */\nconst useThemeColors = (containerRef, defaultColors = {}) => {\n const themeColors = useMemo(() => {\n // Get colors from CSS variables if available, fall back to defaults\n const getCSSVariable = (name, fallback) => {\n if (containerRef.current) {\n // First check the container itself\n const containerStyle = getComputedStyle(containerRef.current);\n const containerValue = containerStyle.getPropertyValue(name);\n if (containerValue && containerValue.trim() !== '') {\n return containerValue.trim();\n }\n\n // Then check parent (useful for web component shadow DOM)\n if (containerRef.current.parentElement) {\n const parentStyle = getComputedStyle(containerRef.current.parentElement);\n const parentValue = parentStyle.getPropertyValue(name);\n if (parentValue && parentValue.trim() !== '') {\n return parentValue.trim();\n }\n }\n }\n return fallback;\n };\n\n return {\n primaryColor: getCSSVariable('--primary-color', defaultColors.primaryColor || DEFAULT_CONFIG.THEME.PRIMARY_COLOR),\n secondaryColor: getCSSVariable('--secondary-color', defaultColors.secondaryColor || DEFAULT_CONFIG.THEME.SECONDARY_COLOR),\n fontFamily: getCSSVariable('--font-family', defaultColors.fontFamily || DEFAULT_CONFIG.THEME.FONT_FAMILY)\n };\n }, [containerRef, defaultColors]);\n\n return themeColors;\n};\n\nexport default useThemeColors;","import React, { useMemo } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\nimport UserIcon from '../components/UserIcon';\nimport { Button } from \"react-chatbotify\"\n\n/**\n * Custom hook to generate ChatBot settings\n * @param {Object} params - Parameters for generating settings\n * @param {Object} params.themeColors - Theme colors from useThemeColors\n * @param {boolean} params.embedded - Whether the bot is embedded\n * @param {boolean} params.defaultOpen - Default open state (floating mode only)\n * @param {boolean} params.isLoggedIn - Whether user is logged in\n * @returns {Object} ChatBot settings object\n */\nconst useChatBotSettings = ({\n themeColors,\n embedded,\n defaultOpen,\n isLoggedIn\n}) => {\n // console.log('| useChatBotSettings | isLoggedIn', isLoggedIn);\n const settings = useMemo(() => {\n return {\n general: {\n ...themeColors,\n embedded: embedded\n },\n header: {\n title: DEFAULT_CONFIG.CHATBOT.TITLE,\n avatar: DEFAULT_CONFIG.CHATBOT.AVATAR_URL,\n buttons: [\n <UserIcon key=\"user-icon\" />,\n Button.CLOSE_CHAT_BUTTON\n ]\n },\n chatWindow: {\n defaultOpen: embedded ? true : defaultOpen,\n },\n chatInput: {\n enabledPlaceholderText: DEFAULT_CONFIG.PROMPT_TEXT,\n disabledPlaceholderText: 'Please log in to ask questions.',\n disabled: false\n },\n chatHistory: {\n disabled: false\n },\n botBubble: {\n simulateStream: true,\n dangerouslySetInnerHtml: true\n },\n chatButton: {\n icon: DEFAULT_CONFIG.CHATBOT.AVATAR_URL,\n },\n tooltip: {\n text: DEFAULT_CONFIG.CHATBOT.TOOLTIP_TEXT,\n mode: 'START'\n },\n audio: {\n disabled: true,\n },\n emoji: {\n disabled: true,\n },\n fileAttachment: {\n disabled: true,\n },\n notification: {\n disabled: true,\n },\n footer: {\n text: (<div>Find out more <a href=\"https://support.access-ci.org/tools/access-qa-tool\">about this tool</a> or <a href=\"https://docs.google.com/forms/d/e/1FAIpQLSeWnE1r738GU1u_ri3TRpw9dItn6JNPi7-FH7QFB9bAHSVN0w/viewform\">give us feedback</a>.</div>),\n },\n };\n }, [themeColors, embedded, defaultOpen, isLoggedIn]);\n\n return settings;\n};\n\nexport default useChatBotSettings;","import { useCallback } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to handle AI query processing\n * @param {string} apiKey - API key for the Q&A endpoint\n * @param {Function} setHasQueryError - Function to set query error state\n * @returns {Function} handleQuery function\n */\nconst useHandleAIQuery = (apiKey, setHasQueryError) => {\n const handleQuery = useCallback(async (params) => {\n // Reset error state before new query\n setHasQueryError(false);\n\n try {\n const requestOptions = {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-API-KEY': apiKey\n },\n body: JSON.stringify({ query: params.userInput })\n };\n\n const response = await fetch(DEFAULT_CONFIG.API_ENDPOINT, requestOptions);\n const body = await response.json();\n const text = body.response;\n\n await params.streamMessage(text);\n } catch (error) {\n await params.injectMessage(DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE);\n setHasQueryError(true);\n }\n }, [apiKey, setHasQueryError]);\n\n return handleQuery;\n};\n\nexport default useHandleAIQuery;","import { useEffect } from 'react';\n\n/**\n * Custom hook to update the chatbot header\n * This avoids relying on the beta useSettings hook from react-chatbotify\n * When this hook is stable, we can refactor to use it\n *\n * @param {boolean} isLoggedIn - Whether the user is logged in\n * @param {React.RefObject} containerRef - Reference to the chatbot container\n */\nconst useUpdateHeader = (isLoggedIn, containerRef) => {\n useEffect(() => {\n if (!containerRef.current) {\n console.log('| useUpdateHeader | No container ref yet');\n return;\n }\n if (isLoggedIn) {\n containerRef.current.classList.add('bot-logged-in');\n } else {\n containerRef.current.classList.remove('bot-logged-in');\n }\n }, [isLoggedIn, containerRef]);\n};\n\nexport default useUpdateHeader;","import { useEffect } from 'react';\n\n/**\n * Custom hook to apply ring effect to the chatbot tooltip\n * This hook fires once when the bot is instantiated and applies the phone-ring class\n * to the .rcb-tooltip-show element if ringEffect is enabled\n * The react-chatbotify tooltip is set in config to only show on the first load\n * Once a user opens the chatbot, it won't show the tool tip when closed\n * (Unless you change the tooltip setting in the react-chatbotify settings object)\n *\n * @param {boolean} ringEffect - Whether to apply the ring effect\n * @param {React.RefObject} containerRef - Reference to the chatbot container\n */\nconst useRingEffect = (ringEffect, containerRef) => {\n useEffect(() => {\n if (!ringEffect || !containerRef.current) {\n console.log('| useRingEffect | Ring effect disabled or no container ref');\n return;\n }\n\n const timeoutId = setTimeout(() => {\n const tooltipElement = containerRef.current?.querySelector('.rcb-tooltip-show');\n if (tooltipElement) {\n tooltipElement.classList.add('phone-ring');\n }\n }, 500); // 500ms delay to make sure its rendered and gain user attention\n\n // Cleanup function\n return () => {\n clearTimeout(timeoutId);\n };\n }, [ringEffect, containerRef]); // Only run when ringEffect or containerRef changes\n};\n\nexport default useRingEffect;","/**\n * Wrapper component used by the qaBot() JavaScript API\n */\nimport React from 'react';\nimport './App.css';\nimport QABot from './components/QABot';\n\nconst App = React.forwardRef((props, ref) => {\n return (\n <QABot\n ref={ref}\n apiKey={props.apiKey}\n defaultOpen={props.defaultOpen}\n embedded={props.embedded}\n isLoggedIn={props.isLoggedIn}\n loginUrl={props.loginUrl}\n onClose={props.onClose}\n ringEffect={props.ringEffect}\n welcome={props.welcome}\n />\n );\n});\n\nexport default App;\n","// src/web-component.js\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom/client';\nimport QABot from './components/QABot';\nimport './styles/index.css'; // Import all styles\n\n// Create a Web Component wrapper for the React component\nclass QABotWebComponent extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n\n // Create a container for the React component\n this.container = document.createElement('div');\n this.container.className = 'qa-bot-container';\n this.shadowRoot.appendChild(this.container);\n\n // Internal refs\n this._root = null;\n this._qaRef = React.createRef();\n\n // Copy over CSS from main document to ensure all styles are available\n this.injectStyles();\n }\n\n // Public API method for adding messages\n addMessage(message) {\n if (this._qaRef.current) {\n this._qaRef.current.addMessage(message);\n }\n }\n\n // Public API method for setting login status\n setBotIsLoggedIn(status) {\n if (this._qaRef.current) {\n this._qaRef.current.setBotIsLoggedIn(status);\n } else {\n // If not rendered yet, set attribute for when it renders\n if (status) {\n this.setAttribute('is-logged-in', '');\n } else {\n this.removeAttribute('is-logged-in');\n }\n }\n }\n\n // Public API method for opening the chat window (floating mode only)\n openChat() {\n if (this._qaRef.current) {\n this._qaRef.current.openChat();\n }\n }\n\n // Public API method for closing the chat window (floating mode only)\n closeChat() {\n if (this._qaRef.current) {\n this._qaRef.current.closeChat();\n }\n }\n\n // Public API method for toggling the chat window (floating mode only)\n toggleChat() {\n if (this._qaRef.current) {\n this._qaRef.current.toggleChat();\n }\n }\n\n // Inject CSS from document to shadow DOM to maintain consistent styling\n injectStyles() {\n // Add base styles for proper element display\n const baseStyle = document.createElement('style');\n baseStyle.textContent = `\n :host {\n display: block;\n --primary-color: #1a5b6e;\n --secondary-color: #107180;\n --font-family: Arial, sans-serif;\n }\n\n .qa-bot-container {\n width: 100%;\n height: 100%;\n font-family: var(--font-family);\n }\n `;\n this.shadowRoot.appendChild(baseStyle);\n\n // Import essential styles needed for react-chatbotify\n // This ensures the web component looks identical to the React version\n const chatbotStyles = document.createElement('style');\n chatbotStyles.textContent = `\n /* Essential styles from react-chatbotify */\n .rcb-header-avatar {\n width: 24px !important;\n height: 24px !important;\n margin-right: 8px !important;\n }\n\n .rcb-chat-button {\n background-color: var(--primary-color) !important;\n }\n\n /* Ensure proper z-index for floating button */\n .rcb-floating-button {\n z-index: 1000 !important;\n }\n\n /* Make links in footer readable */\n .rcb-chat-footer a {\n color: var(--primary-color) !important;\n }\n\n /* Fix button styling */\n .rcb-send-button {\n background-color: var(--primary-color) !important;\n }\n\n /* Phone ring animation for tooltip */\n .rcb-tooltip-show.phone-ring {\n animation: phone-ring 3s ease-out !important;\n z-index: 10000 !important;\n }\n\n @keyframes phone-ring {\n 0% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n /* First ring - quick shake */\n 2% {\n transform: translateX(0) translateY(-8px) rotate(-2deg);\n }\n 4% {\n transform: translateX(0) translateY(-6px) rotate(2deg);\n }\n 6% {\n transform: translateX(0) translateY(-8px) rotate(-1deg);\n }\n 8% {\n transform: translateX(0) translateY(-6px) rotate(1deg);\n }\n 10% {\n transform: translateX(0) translateY(-8px) rotate(-2deg);\n }\n 12% {\n transform: translateX(0) translateY(-6px) rotate(2deg);\n }\n /* Settle down */\n 20% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n 30% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n 40% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n 49% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n /* Second ring - quick shake */\n 50% {\n transform: translateX(0) translateY(-8px) rotate(-2deg);\n }\n 52% {\n transform: translateX(0) translateY(-6px) rotate(2deg);\n }\n 54% {\n transform: translateX(0) translateY(-8px) rotate(-1deg);\n }\n 56% {\n transform: translateX(0) translateY(-6px) rotate(1deg);\n }\n 58% {\n transform: translateX(0) translateY(-8px) rotate(-2deg);\n }\n 60% {\n transform: translateX(0) translateY(-6px) rotate(2deg);\n }\n /* Final settle */\n 70% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n 100% {\n transform: translateX(0) translateY(0) rotate(0deg);\n }\n }\n `;\n this.shadowRoot.appendChild(chatbotStyles);\n\n // Import all styles from the document in case they're needed\n if (document.styleSheets) {\n try {\n const styleSheet = document.createElement('style');\n let cssText = '';\n\n // Collect CSS rules from document stylesheets\n for (let i = 0; i < document.styleSheets.length; i++) {\n try {\n const sheet = document.styleSheets[i];\n\n // Skip external stylesheets which can't be accessed due to CORS\n if (sheet.href && !sheet.href.startsWith(window.location.origin)) continue;\n\n const rules = sheet.cssRules || sheet.rules;\n if (!rules) continue;\n\n for (let j = 0; j < rules.length; j++) {\n // Include rules for chatbot, embedded chat, and related classes\n if (rules[j].selectorText &&\n (rules[j].selectorText.includes('.rcb-') ||\n rules[j].selectorText.includes('.qa-bot') ||\n rules[j].selectorText.includes('.qa-bot-container'))) {\n cssText += rules[j].cssText + '\\n';\n }\n }\n } catch (e) {\n // Skip inaccessible stylesheets\n continue;\n }\n }\n\n if (cssText) {\n styleSheet.textContent = cssText;\n this.shadowRoot.appendChild(styleSheet);\n }\n } catch (e) {\n console.warn('Failed to copy document styles to shadow DOM', e);\n }\n }\n }\n\n // Observe these attributes for changes\n static get observedAttributes() {\n return [\n 'api-key',\n 'default-open',\n 'embedded',\n 'is-logged-in',\n 'login-url',\n 'ring-effect',\n 'welcome'\n ];\n }\n\n // React to attribute changes\n attributeChangedCallback(name, oldValue, newValue) {\n if (oldValue !== newValue) {\n // Handle login state changes without re-rendering the entire component\n if (name === 'is-logged-in' && this._qaRef.current) {\n this._qaRef.current.setBotIsLoggedIn(newValue !== null);\n } else {\n // For other attribute changes, re-render the component\n this._render();\n }\n }\n }\n\n // Helper method to parse boolean attributes with default values\n _getBooleanAttribute(name, defaultValue = false) {\n if (!this.hasAttribute(name)) {\n return defaultValue;\n }\n\n const value = this.getAttribute(name);\n if (value === null || value === '') {\n // Attribute present without value (e.g., <element attr>) means true\n return true;\n }\n\n // Parse string values\n const lowerValue = value.toLowerCase();\n if (lowerValue === 'false' || lowerValue === '0') {\n return false;\n }\n if (lowerValue === 'true' || lowerValue === '1') {\n return true;\n }\n\n // For any other value, treat as true if attribute is present\n return true;\n }\n\n // Convert attributes to props\n _getProps() {\n return {\n apiKey: this.getAttribute('api-key') || 'demo-key',\n defaultOpen: this._getBooleanAttribute('default-open', false),\n embedded: this._getBooleanAttribute('embedded', false),\n isLoggedIn: this._getBooleanAttribute('is-logged-in', false),\n loginUrl: this.getAttribute('login-url'),\n ringEffect: this._getBooleanAttribute('ring-effect', true),\n welcome: this.getAttribute('welcome')\n };\n }\n\n // Lifecycle methods\n connectedCallback() {\n // Add support for CSS custom properties from parent\n this.syncStyles();\n this._render();\n\n // Set up a MutationObserver to watch for style attribute changes\n this.styleObserver = new MutationObserver(() => this.syncStyles());\n this.styleObserver.observe(this, {\n attributes: true,\n attributeFilter: ['style']\n });\n }\n\n disconnectedCallback() {\n if (this.styleObserver) {\n this.styleObserver.disconnect();\n }\n\n if (this._root) {\n this._root.unmount();\n }\n }\n\n // Sync styles from host element to shadow DOM\n syncStyles() {\n if (this.style.cssText) {\n const styleProps = this.style.cssText.split(';')\n .filter(prop => prop.trim().startsWith('--'))\n .map(prop => prop.trim());\n\n if (styleProps.length > 0) {\n const containerStyle = this.container.style;\n styleProps.forEach(prop => {\n const [name, value] = prop.split(':').map(p => p.trim());\n containerStyle.setProperty(name, value);\n });\n }\n }\n }\n\n // Render the React component\n _render() {\n if (!this._root) {\n this._root = ReactDOM.createRoot(this.container);\n }\n\n const props = this._getProps();\n this._root.render(\n <React.StrictMode>\n <QABot ref={this._qaRef} {...props} />\n </React.StrictMode>\n );\n }\n}\n\n// Define the custom element\ncustomElements.define('qa-bot', QABotWebComponent);\n\n// Export the web component reference\nexport const WebComponentQABot = QABotWebComponent;\n\n// Create a function-based API for programmatic initialization\nexport function webComponentQABot(config) {\n const { target, ...props } = config;\n\n if (!target || !(target instanceof HTMLElement)) {\n console.error('QA Bot: A valid target DOM element is required');\n return;\n }\n\n // Create a new QA bot web component instance\n const qaBot = document.createElement('qa-bot');\n\n // Set attributes based on props\n if (props.apiKey) qaBot.setAttribute('api-key', props.apiKey);\n if (props.defaultOpen) qaBot.setAttribute('default-open', '');\n if (props.embedded) qaBot.setAttribute('embedded', '');\n if (props.isLoggedIn) qaBot.setAttribute('is-logged-in', '');\n if (props.loginUrl) qaBot.setAttribute('login-url', props.loginUrl);\n if (props.ringEffect !== undefined) {\n qaBot.setAttribute('ring-effect', props.ringEffect.toString());\n }\n if (props.welcome) qaBot.setAttribute('welcome', props.welcome);\n\n // Set CSS custom properties if provided\n if (props.primaryColor) {\n qaBot.style.setProperty('--primary-color', props.primaryColor);\n }\n\n if (props.secondaryColor) {\n qaBot.style.setProperty('--secondary-color', props.secondaryColor);\n }\n\n if (props.fontFamily) {\n qaBot.style.setProperty('--font-family', props.fontFamily);\n }\n\n // Append to target\n target.appendChild(qaBot);\n\n // Return controller object\n return {\n // Add a message to the chat\n addMessage: (message) => qaBot.addMessage(message),\n // Set login status\n setBotIsLoggedIn: (status) => qaBot.setBotIsLoggedIn(status),\n // Open the chat window (floating mode only)\n openChat: () => qaBot.openChat(),\n // Close the chat window (floating mode only)\n closeChat: () => qaBot.closeChat(),\n // Toggle the chat window (floating mode only)\n toggleChat: () => qaBot.toggleChat(),\n // Cleanup function (backward compatibility)\n destroy: () => {\n target.removeChild(qaBot);\n }\n };\n}\n\n// For standalone UMD build, expose the API globally\nif (typeof window !== 'undefined') {\n // Provide a global process.env for the standalone build\n window.process = { env: { REACT_APP_API_KEY: 'demo-key' } };\n\n // Expose the function directly on window for clean script tag usage\n window.qaBot = webComponentQABot;\n\n // Note: The UMD build (rollup.config.mjs) is configured with name: 'qaBot'\n // This automatically makes qaBot available as a global variable\n}","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport QABot from './components/QABot';\nimport App from './App';\nimport './App.css';\nimport './index.css';\nimport { WebComponentQABot, webComponentQABot } from './web-component';\n\n// Export QABot component directly for users who want to use it as a React component\nexport { QABot };\n\n// Re-export the web component functionality for those accessing via the main entry point\nexport { WebComponentQABot };\n\n// Function-based API that prioritizes web component usage\n// and then attempts a react render (since some people may use the function within a react context)\nexport function qaBot({\n target,\n apiKey,\n defaultOpen,\n embedded,\n isLoggedIn,\n loginUrl,\n ringEffect,\n version,\n welcome\n}) {\n if (!target || !(target instanceof HTMLElement)) {\n console.error('QA Bot: A valid target DOM element is required');\n return;\n }\n\n // If the web component is available, use it\n if (typeof window !== 'undefined' && typeof customElements !== 'undefined' &&\n customElements.get('qa-bot')) {\n return webComponentQABot({\n target,\n apiKey,\n defaultOpen,\n embedded,\n isLoggedIn,\n loginUrl,\n ringEffect,\n welcome\n });\n } else {\n // Use direct react rendering\n const root = ReactDOM.createRoot(target);\n const qaRef = React.createRef();\n\n root.render(\n <React.StrictMode>\n <App\n ref={qaRef}\n apiKey={apiKey}\n defaultOpen={defaultOpen}\n embedded={embedded}\n isLoggedIn={isLoggedIn}\n loginUrl={loginUrl}\n ringEffect={ringEffect}\n welcome={welcome}\n />\n </React.StrictMode>\n );\n\n // Return a controller object with the addMessage method\n return {\n // Add a message to the chat\n addMessage: (message) => {\n if (qaRef.current) {\n qaRef.current.addMessage(message);\n }\n },\n // Set login status\n setBotIsLoggedIn: (status) => {\n if (qaRef.current) {\n qaRef.current.setBotIsLoggedIn(status);\n }\n },\n // Open the chat window (floating mode only)\n openChat: () => {\n if (qaRef.current) {\n qaRef.current.openChat();\n }\n },\n // Close the chat window (floating mode only)\n closeChat: () => {\n if (qaRef.current) {\n qaRef.current.closeChat();\n }\n },\n // Toggle the chat window (floating mode only)\n toggleChat: () => {\n if (qaRef.current) {\n qaRef.current.toggleChat();\n }\n },\n // Cleanup function (backward compatibility)\n destroy: () => {\n root.unmount();\n }\n };\n }\n}\n\n// Default export for simplicity\nexport default QABot;"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Z","AUDIO_BUTTON","NOTIFICATION_BUTTON","CLOSE_CHAT_BUTTON","SEND_MESSAGE_BUTTON","VOICE_MESSAGE_BUTTON","FILE_ATTACHMENT_BUTTON","EMOJI_PICKER_BUTTON","$A","Ae","cA","A","e","q","viewBox","d","fill","fillRule","ee","Ne","Re","je","xmlns","strokeLinecap","strokeWidth","Ge","Xe","Ke","te","Ve","_e","re","general","primaryColor","secondaryColor","fontFamily","showHeader","showFooter","showInputRow","actionDisabledIcon","embedded","flowStartTrigger","tooltip","mode","text","chatButton","icon","header","title","l","cursor","margin","fontSize","fontWeight","onClick","window","open","children","showAvatar","avatar","buttons","closeChatIcon","notification","disabled","defaultToggledOn","volume","iconDisabled","sound","showCount","audio","language","voiceNames","rate","chatHistory","maxEntries","storageKey","storageType","viewChatHistoryButtonText","chatHistoryLineBreakText","autoLoad","chatInput","allowNewline","enabledPlaceholderText","disabledPlaceholderText","showCharacterCount","characterLimit","botDelay","sendButtonIcon","blockSpam","sendOptionOutput","sendCheckboxOutput","chatWindow","showScrollbar","showTypingIndicator","autoJumpToBottom","showMessagePrompt","messagePromptText","messagePromptOffset","defaultOpen","sensitiveInput","maskInTextArea","maskInUserBubble","asterisksCount","hideInUserBubble","userBubble","animate","simulateStream","streamSpeed","botBubble","voice","timeoutPeriod","autoSendDisabled","autoSendPeriod","sendAsAudio","footer","X","display","flexDirection","alignItems","columnGap","borderRadius","width","height","justifyContent","background","fileAttachment","multiple","accept","sendFileName","showMediaDisplay","emoji","list","toast","maxCount","forbidOnMax","dismissOnClick","event","rcbPreInjectMessage","rcbPostInjectMessage","rcbStartSimulateStreamMessage","rcbStopSimulateStreamMessage","rcbStartStreamMessage","rcbChunkStreamMessage","rcbStopStreamMessage","rcbRemoveMessage","rcbLoadChatHistory","rcbToggleChatWindow","rcbStartSpeakAudio","rcbToggleAudio","rcbToggleNotifications","rcbToggleVoice","rcbChangePath","rcbShowToast","rcbDismissToast","rcbUserSubmitText","rcbUserUploadFile","rcbTextAreaChangeValue","rcbPreLoadChatBot","rcbPostLoadChatBot","rcbPreProcessBlock","rcbPostProcessBlock","ariaLabel","audioButton","closeChatButton","emojiButton","fileAttachmentButton","notificationButton","sendButton","voiceButton","inputTextArea","device","desktopEnabled","mobileEnabled","applyMobileOptimizations","ae","vA","settings","setSettings","O","PA","At","o","Provider","value","ce","tooltipStyle","notificationBadgeStyle","chatWindowStyle","headerStyle","bodyStyle","chatInputContainerStyle","chatInputAreaStyle","chatInputAreaFocusedStyle","chatInputAreaDisabledStyle","userBubbleStyle","botBubbleStyle","botOptionStyle","botOptionHoveredStyle","botCheckboxRowStyle","botCheckboxNextStyle","botCheckMarkStyle","botCheckMarkSelectedStyle","characterLimitStyle","characterLimitReachedStyle","chatHistoryLineBreakStyle","chatMessagePromptStyle","chatMessagePromptHoveredStyle","footerStyle","loadingSpinnerStyle","mediaDisplayContainerStyle","chatButtonStyle","chatHistoryButtonStyle","chatHistoryButtonHoveredStyle","sendButtonStyle","sendButtonHoveredStyle","sendButtonDisabledStyle","audioButtonStyle","audioButtonDisabledStyle","closeChatButtonStyle","emojiButtonStyle","emojiButtonDisabledStyle","fileAttachmentButtonStyle","fileAttachmentButtonDisabledStyle","notificationButtonStyle","notificationButtonDisabledStyle","voiceButtonStyle","voiceButtonDisabledStyle","chatIconStyle","audioIconStyle","audioIconDisabledStyle","closeChatIconStyle","emojiIconStyle","emojiIconDisabledStyle","fileAttachmentIconStyle","fileAttachmentIconDisabledStyle","notificationIconStyle","notificationIconDisabledStyle","voiceIconStyle","voiceIconDisabledStyle","sendIconStyle","sendIconDisabledStyle","sendIconHoveredStyle","rcbTypingIndicatorContainerStyle","rcbTypingIndicatorDotStyle","toastPromptContainerStyle","toastPromptStyle","toastPromptHoveredStyle","ie","styles","setStyles","Y","et","tt","n","s","a","r","c","t","backgroundImage","className","map","i","u","RA","le","AA","ot","botIdRef","flowRef","eA","Map","f","inputRef","timeoutIdRef","streamMessageMap","chatBodyRef","paramsInputRef","keepVoiceOnRef","audioContextRef","audioBufferRef","gainNodeRef","prevInputRef","rA","R","current","ue","tA","nt","nA","wA","qA","JA","VA","ZA","w","g","B","D","b","P","C","Q","m","v","y","E","S","p","h","T","M","I","j","z","L","W","J","F","N","K","x","U","G","visualViewport","innerHeight","_","$","innerWidth","isBotTyping","setSyncedIsBotTyping","syncedIsBotTypingRef","isChatWindowOpen","setSyncedIsChatWindowOpen","syncedIsChatWindowOpenRef","audioToggledOn","setSyncedAudioToggledOn","syncedAudioToggledOnRef","voiceToggledOn","setSyncedVoiceToggledOn","syncedVoiceToggledOnRef","notificationsToggledOn","setSyncedNotificationsToggledOn","syncedNotificationsToggledOnRef","isLoadingChatHistory","setIsLoadingChatHistory","hasChatHistoryLoaded","setHasChatHistoryLoaded","isScrolling","setSyncedIsScrolling","syncedIsScrollingRef","textAreaDisabled","setSyncedTextAreaDisabled","syncedTextAreaDisabledRef","textAreaSensitiveMode","setSyncedTextAreaSensitiveMode","syncedTextAreaSensitiveModeRef","hasInteractedPage","setHasInteractedPage","hasFlowStarted","setHasFlowStarted","unreadCount","setUnreadCount","inputLength","setInputLength","blockAllowsAttachment","setBlockAllowsAttachment","viewportHeight","setViewportHeight","viewportWidth","setViewportWidth","k","START_SPEAK_AUDIO","TOGGLE_AUDIO","TOGGLE_NOTIFICATIONS","TOGGLE_VOICE","TOGGLE_CHAT_WINDOW","PRE_INJECT_MESSAGE","POST_INJECT_MESSAGE","START_SIMULATE_STREAM_MESSAGE","STOP_SIMULATE_STREAM_MESSAGE","START_STREAM_MESSAGE","CHUNK_STREAM_MESSAGE","STOP_STREAM_MESSAGE","REMOVE_MESSAGE","LOAD_CHAT_HISTORY","CHANGE_PATH","SHOW_TOAST","DISMISS_TOAST","USER_SUBMIT_TEXT","USER_UPLOAD_FILE","TEXT_AREA_CHANGE_VALUE","PRE_LOAD_CHATBOT","POST_LOAD_CHATBOT","PRE_PROCESS_BLOCK","POST_PROCESS_BLOCK","st","NA","async","CustomEvent","detail","cancelable","data","promises","dispatchEvent","Promise","all","fe","paths","setSyncedPaths","syncedPathsRef","mA","rt","iA","H","length","at","dispatchRcbEvent","botId","currPath","prevPath","sA","currState","newState","defaultPrevented","scrollHeight","clientHeight","scrollTop","requestAnimationFrame","toggleChatWindow","toggleIsBotTyping","scrollToBottom","color","borderColor","onMouseEnter","onMouseLeave","onMouseDown","preventDefault","de","messages","setSyncedMessages","syncedMessagesRef","FA","ct","it","message","isNewSender","content","contentWrapper","backgroundColor","maxWidth","oA","lt","ut","ft","scrollbarWidth","V","sender","toUpperCase","dt","checkboxes","checkedItems","path","handleSubmitText","yA","Set","size","min","reusable","items","has","delete","max","add","Array","from","join","sendOutput","wt","isArray","injectMessage","gt","function","Bt","trim","simulateStreamMessage","vt","options","Pt","Dt","component","Et","transition","duration","interruptable","setTimeout","ge","yt","chatDisabled","we","isSensitive","Error","Object","keys","includes","goToPath","ht","mt","Qt","borderTop","SA","crypto","randomUUID","getRandomValues","replace","Uint8Array","toString","console","error","gA","id","timestamp","Date","toUTCString","tags","dA","Be","IA","bA","ve","CA","HA","unshift","It","slice","Pe","jA","setItem","JSON","stringify","UA","sessionStorage","localStorage","parse","bt","getItem","se","structuredClone","Me","renderToString","he","DOMParser","parseFromString","body","childNodes","nodeType","Node","TEXT_NODE","textContent","tagName","toLowerCase","attributes","reduce","name","split","filter","forEach","prototype","hasOwnProperty","call","classList","class","Mt","kt","Ht","xt","Ot","_A","key","innerHTML","contains","De","getBoundingClientRect","documentElement","clientWidth","top","left","bottom","right","zA","AudioContext","createGain","gain","startsWith","atob","ArrayBuffer","charCodeAt","fetch","arrayBuffer","decodeAudioData","createBufferSource","buffer","connect","destination","start","toggleNotifications","playNotificationSound","setUpNotifications","Nt","SpeechSynthesisUtterance","info","lang","speechSynthesis","getVoices","find","speak","Lt","GA","speakAudio","textToRead","toggleAudio","hA","simulateStreamChunker","setInterval","clearInterval","removeMessage","Math","streamMessage","set","get","endStreamMessage","replaceMessages","xA","lA","pA","BA","aA","YA","SpeechRecognition","webkitSpeechRecognition","Rt","onresult","clearTimeout","results","transcript","OA","onend","Ft","navigator","mediaDevices","getUserMedia","then","MediaRecorder","ondataavailable","push","onstop","getTracks","stop","catch","XA","state","TA","jt","toggleVoice","syncVoice","DA","currValue","prevValue","focus","blur","getTextAreaValue","setTextAreaValue","updateTextAreaFocus","focusTextArea","blurTextArea","toggleTextAreaDisabled","toggleTextAreaSensitiveMode","Ee","toasts","setSyncedToasts","syncedToastsRef","ye","zt","EA","showToast","timeout","dismissToast","replaceToasts","QA","block","userInput","Ct","file","clear","nextPath","getCurrPath","getPrevPath","replacePaths","firePostProcessBlockEvent","repeat","inputText","sendInChat","MA","fA","userAgent","test","Gt","boxSizing","outline","boxShadow","caretColor","shiftKey","target","role","stopPropagation","placeholder","onChange","onKeyDown","onFocus","onBlur","onCompositionStart","onCompositionEnd","rows","Yt","Xt","Wt","offsetWidth","transform","Kt","qt","minWidth","Ce","fileType","fileUrl","src","alt","controls","me","FileReader","onload","result","onerror","readAsDataURL","Jt","files","Vt","composedPath","offsetHeight","addEventListener","removeEventListener","setSelectionRange","Zt","_t","stroke","Ao","$t","eo","Ut","Blob","File","to","no","values","oo","fo","headerButtons","chatInputButtons","footerButtons","WA","removeItem","Tt","showChatHistory","wo","tabIndex","go","handleFirstInteraction","Qe","passive","virtualKeyboard","overlaysContent","boundingRect","scrollTo","behavior","scrollY","position","Bo","vo","be","oe","version","baseUrl","cacheDuration","ok","json","Do","inlineStyles","cssStylesText","getTime","floor","cacheDate","Po","ne","ho","RegExp","Co","kA","uA","source","pop","WeakMap","mo","updateSettings","replaceSettings","pe","updateStyles","replaceStyles","Se","Qo","plugins","zIndex","Ie","Te","bo","loadConfig","po","flow","themes","setConfigLoaded","styleRootRef","LA","So","show_options","prompt_again","unknown_input","process_options","Lo","Fo","restartFlow","getFlow","Mo","jo","DEFAULT_CONFIG","LOGIN_URL","PROMPT_TEXT","WELCOME_MESSAGE","WELCOME_MESSAGE_LOGGED_OUT","WELCOME_MESSAGE_LOGIN_TRANSITION","WELCOME_MESSAGE_LOGOUT_TRANSITION","API_ENDPOINT","ERRORS","API_UNAVAILABLE","THEME","PRIMARY_COLOR","SECONDARY_COLOR","FONT_FAMILY","CHATBOT","TITLE","AVATAR_URL","TOOLTIP_TEXT","BotController","React","forwardRef","setIsBotLoggedIn","isBotLoggedIn","onOpenChange","currentOpen","useMessages","useFlow","useChatWindow","lastOpenRef","useRef","prevLoginStateRef","useEffect","loginStateChanged","justLoggedIn","useLoginStateTransition","log","useImperativeHandle","addMessage","setBotIsLoggedIn","status","openChat","closeChat","toggleChat","UserIcon","marginRight","strokeLinejoin","cx","cy","LoginButton","loginUrl","href","rel","padding","border","textDecoration","textAlign","calculateWelcomeMessage","welcomeMessage","loggedInWelcome","undefined","loggedOutWelcome","calculateComponent","QABot","props","apiKey","isLoggedIn","ringEffect","welcome","finalApiKey","process","env","REACT_APP_API_KEY","useState","hasQueryError","setHasQueryError","buildWelcomeMessage","containerRef","themeColors","useThemeColors","defaultColors","useMemo","getCSSVariable","fallback","containerValue","getComputedStyle","getPropertyValue","parentElement","parentValue","chatBotSettings","useChatBotSettings","Button","dangerouslySetInnerHtml","handleQuery","useHandleAIQuery","useCallback","requestOptions","method","headers","query","params","response","useChatFlow","loop","useUpdateHeader","remove","useRingEffect","timeoutId","tooltipElement","querySelector","ChatBotProvider","ChatBot","App","onClose","QABotWebComponent","HTMLElement","constructor","super","this","attachShadow","container","shadowRoot","_root","_qaRef","createRef","injectStyles","setAttribute","removeAttribute","baseStyle","chatbotStyles","styleSheets","sheet","location","origin","rules","cssRules","selectorText","warn","observedAttributes","attributeChangedCallback","oldValue","newValue","_render","_getBooleanAttribute","defaultValue","hasAttribute","getAttribute","lowerValue","_getProps","connectedCallback","syncStyles","styleObserver","MutationObserver","observe","attributeFilter","disconnectedCallback","disconnect","unmount","styleProps","prop","containerStyle","setProperty","ReactDOM","createRoot","render","StrictMode","_extends","customElements","define","WebComponentQABot","webComponentQABot","config","qaBot","destroy","removeChild","_ref","root","qaRef"],"mappings":"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","x_google_ignoreList":[0,1]}