@hahnpro/ai-sdk 0.11.1 → 0.11.2

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":"hahnpro-ai-sdk.mjs","sources":["../tmp-esm2022/lib/core/icons/icon.component.js","../tmp-esm2022/lib/auth/auth.adapter.js","../tmp-esm2022/lib/core/api.service.js","../tmp-esm2022/lib/core/owner-resolver.service.js","../tmp-esm2022/lib/ai/context.service.js","../tmp-esm2022/lib/ai/transloco.module.js","../tmp-esm2022/lib/ai/websocket.service.js","../tmp-esm2022/lib/ai/utils.js","../tmp-esm2022/lib/ai/chat.service.js","../tmp-esm2022/lib/ai/voice-recognition.service.js","../tmp-esm2022/lib/ai/message-input/message-input.component.js","../tmp-esm2022/lib/core/pipes/bytes.pipe.js","../tmp-esm2022/lib/core/pipes/color-level.pipe.js","../tmp-esm2022/lib/core/pipes/date-ago.pipe.js","../tmp-esm2022/lib/core/pipes/pipes.module.js","../tmp-esm2022/lib/core/utils/i18n.js","../tmp-esm2022/lib/core/utils/mimetype.js","../tmp-esm2022/lib/core/utils/index.js","../tmp-esm2022/lib/ai/preview/preview.component.js","../tmp-esm2022/lib/ai/context-overlay/context-overlay.component.js","../tmp-esm2022/lib/ai/message-context/message-context.component.js","../tmp-esm2022/lib/ai/thread/thread.component.js","../tmp-esm2022/lib/ai/chat-dialog/chat-dialog.component.js","../tmp-esm2022/lib/ai/chat-box/chat.component.js","../tmp-esm2022/lib/ai/ai.module.js","../tmp-esm2022/lib/core/markdown.provider.js","../tmp-esm2022/lib/ai/providers.js","../tmp-esm2022/hahnpro-ai-sdk.js"],"sourcesContent":["// src/app/shared/icon/icon.component.ts\nimport { Component, Input } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class IconComponent {\n name;\n size = 24;\n label;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: IconComponent, isStandalone: true, selector: \"ai-icon\", inputs: { name: \"name\", size: \"size\", label: \"label\" }, ngImport: i0, template: \"<svg style=\\\"display: none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n <symbol id=\\\"add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.883 3.007 12 3a1 1 0 0 1 .993.883L13 4v7h7a1 1 0 0 1 .993.883L21 12a1 1 0 0 1-.883.993L20 13h-7v7a1 1 0 0 1-.883.993L12 21a1 1 0 0 1-.993-.883L11 20v-7H4a1 1 0 0 1-.993-.883L3 12a1 1 0 0 1 .883-.993L4 11h7V4a1 1 0 0 1 .883-.993L12 3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"add_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7\\\"\\n />\\n </symbol>\\n <symbol id=\\\"add_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7m-9-.75A3.25 3.25 0 0 1 6.25 3h11.5A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75zM6.25 4.5A1.75 1.75 0 0 0 4.5 6.25v11.5c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75V6.25a1.75 1.75 0 0 0-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"app_connectivity\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20 14h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6H8v-4h4a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2H9V6h9v6a2 2 0 0 0 2 2m0 14v-4h8v4Zm8-8v2h-8v-2ZM4 20v-4h8v4Zm8-6H4v-2h8Zm8-2V8h8v4Zm8-8v2h-8V4Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"apps\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_clockwise\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a7.5 7.5 0 1 0 7.419 6.392c-.067-.454.265-.892.724-.892.37 0 .696.256.752.623Q21 11.297 21 12a9 9 0 1 1-3-6.708V4.25a.75.75 0 0 1 1.5 0v3a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1 0-1.5h1.35a7.47 7.47 0 0 0-5.1-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.79 13.267a.75.75 0 0 0-1.086-1.034l-5.954 6.251V3.75a.75.75 0 1 0-1.5 0v14.734l-5.955-6.251a.75.75 0 1 0-1.086 1.034l7.067 7.42c.16.168.366.268.58.3a.8.8 0 0 0 .29-.001 1 1 0 0 0 .578-.3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_left\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.733 19.79a.75.75 0 0 0 1.034-1.086L5.516 12.75H20.25a.75.75 0 0 0 0-1.5H5.516l6.251-5.955a.75.75 0 0 0-1.034-1.086l-7.42 7.067a1 1 0 0 0-.3.58.8.8 0 0 0 .001.289 1 1 0 0 0 .3.579z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_maximize\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m12.496 3.002 7.556.001.12.014.088.02.104.034.09.04.063.036.063.042.064.05.063.058.094.11.072.11.053.114.036.105.015.065.01.053.01.148v7.504a1 1 0 0 1-1.993.117l-.007-.117v-5.09L6.412 19H11.5a1 1 0 0 1 .993.884L12.5 20a1 1 0 0 1-.884.994L11.5 21H3.939l-.096-.01-.077-.015-.077-.022-.07-.026-.09-.042-.089-.053-.091-.07.032.027a1 1 0 0 1-.166-.166l-.051-.07-.04-.064-.032-.064-.034-.082-.025-.08-.024-.111-.007-.061-.004-.09v-7.503a1 1 0 0 1 1.993-.117l.007.117v5.088L17.582 5.002h-5.086a1 1 0 0 1-.994-.883l-.006-.117a1 1 0 0 1 1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_minimize\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.498 12.505a1 1 0 0 1 .993.884l.007.116v7.504a1 1 0 0 1-1.994.117l-.006-.117v-5.093l-5.791 5.792a1 1 0 0 1-1.32.083l-.095-.083a1 1 0 0 1-.083-1.32l.083-.095 5.788-5.788H2.996a1 1 0 0 1-.117-1.993l.117-.007zm3-10.505a1 1 0 0 1 .994.883l.007.117v5.087l5.793-5.794a1 1 0 0 1 1.32-.083l.095.083a1 1 0 0 1 .083 1.32l-.083.095-5.797 5.795H21a1 1 0 0 1 .117 1.994l-.117.007h-7.5a1 1 0 0 1-.994-.883l-.006-.117V3a1 1 0 0 1 1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_move\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.28 6.03a.75.75 0 0 1-1.06 0l-1.47-1.47v3.69a.75.75 0 0 1-1.5 0V4.56L9.78 6.03a.75.75 0 0 1-1.06-1.06l2.75-2.75a.75.75 0 0 1 1.06 0l2.75 2.75a.75.75 0 0 1 0 1.06m-9.25 8.19a.75.75 0 1 1-1.06 1.06l-2.75-2.75a.75.75 0 0 1 0-1.06l2.75-2.75a.75.75 0 0 1 1.06 1.06l-1.47 1.47h3.69a.75.75 0 0 1 0 1.5H4.56zm11.94 1.06a.75.75 0 0 1 0-1.06l1.47-1.47h-3.69a.75.75 0 0 1 0-1.5h3.69l-1.47-1.47a.75.75 0 0 1 1.06-1.06l2.75 2.75a.75.75 0 0 1 0 1.06l-2.75 2.75a.75.75 0 0 1-1.06 0m-2.69 2.69a.75.75 0 0 0-1.06 0l-1.47 1.47v-3.69a.75.75 0 0 0-1.5 0v3.69l-1.47-1.47a.75.75 0 0 0-1.06 1.06l2.75 2.75a.75.75 0 0 0 1.06 0l2.75-2.75a.75.75 0 0 0 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_right\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.267 4.209a.75.75 0 0 0-1.034 1.086l6.251 5.955H3.75a.75.75 0 0 0 0 1.5h14.734l-6.251 5.954a.75.75 0 0 0 1.034 1.087l7.42-7.067a1 1 0 0 0 .3-.58.8.8 0 0 0-.001-.29 1 1 0 0 0-.3-.578z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_sort\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m17.25 4-.1.007a.75.75 0 0 0-.65.743v12.692l-3.22-3.218-.084-.072a.75.75 0 0 0-.976 1.134l4.504 4.5.084.072a.75.75 0 0 0 .976-.073l4.497-4.5.072-.084a.75.75 0 0 0-.073-.977l-.084-.072a.75.75 0 0 0-.977.073L18 17.446V4.75l-.006-.102A.75.75 0 0 0 17.251 4m-11.036.22L1.72 8.715l-.073.084a.75.75 0 0 0 .073.976l.084.073a.75.75 0 0 0 .976-.073l3.217-3.218v12.698l.008.102a.75.75 0 0 0 .743.648l.101-.007a.75.75 0 0 0 .649-.743L7.497 6.559l3.223 3.217.084.072a.75.75 0 0 0 .975-1.134L7.275 4.22l-.085-.072a.75.75 0 0 0-.976.073\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_sort_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m6.288 4.293-3.995 4-.084.095a1 1 0 0 0 .084 1.32l.095.083a1 1 0 0 0 1.32-.084L6 7.41V19l.007.117a1 1 0 0 0 .993.884l.117-.007A1 1 0 0 0 8 19V7.417l2.293 2.29.095.084a1 1 0 0 0 1.319-1.499l-4.006-4-.094-.083a1 1 0 0 0-1.32.084M17 4.003l-.117.007a1 1 0 0 0-.883.993v11.58l-2.293-2.29-.095-.084a1 1 0 0 0-1.319 1.498l4.004 4 .094.084a1 1 0 0 0 1.32-.084l3.996-4 .084-.095a1 1 0 0 0-.084-1.32l-.095-.083a1 1 0 0 0-1.32.084L18 16.587V5.003l-.007-.116A1 1 0 0 0 17 4.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.209 10.733a.75.75 0 0 0 1.086 1.034l5.954-6.251V20.25a.75.75 0 0 0 1.5 0V5.516l5.955 6.251a.75.75 0 0 0 1.087-1.034l-7.067-7.42a1 1 0 0 0-.58-.3.8.8 0 0 0-.29.001 1 1 0 0 0-.578.3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"ascending\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75m-9.481.487a.75.75 0 0 0-1.401-.01l-3.317 8.5a.75.75 0 1 0 1.398.546l.79-2.023h3.555l.754 2.013a.75.75 0 0 0 1.405-.526zM5.823 8l1.23-3.15L8.232 8zM4 13.75a.75.75 0 0 1 .75-.75H9.5a.75.75 0 0 1 .634 1.151L6.114 20.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.633-1.151l4.02-6.35H4.75a.75.75 0 0 1-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"asset\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.78 3.737a2.25 2.25 0 0 0-1.56 0L9.913 5.33a.25.25 0 0 0-.163.234v2.793a4.8 4.8 0 0 0-1.5 0V5.563a1.75 1.75 0 0 1 1.143-1.641L13.7 2.33a3.75 3.75 0 0 1 2.6 0l4.307 1.592a1.75 1.75 0 0 1 1.143 1.641v10.67a1.75 1.75 0 0 1-1.143 1.642l-4.018 1.484c.105-.292.161-.604.161-.927v-.731l3.337-1.233a.25.25 0 0 0 .163-.235V5.563a.25.25 0 0 0-.163-.234zm-4.01 3.93a.75.75 0 1 1 .49-1.418l2.658.92a.25.25 0 0 0 .163 0l2.65-.92a.75.75 0 1 1 .492 1.418l-2.65.919a1.75 1.75 0 0 1-1.145 0zm-6 7a.75.75 0 0 1 .49-1.418l2.74.948 2.732-.947a.75.75 0 1 1 .49 1.417l-2.472.857v2.7a.75.75 0 0 1-1.5 0v-2.7zM10.3 9.53a3.75 3.75 0 0 0-2.6 0l-4.307 1.592a1.75 1.75 0 0 0-1.143 1.641v5.67a1.75 1.75 0 0 0 1.143 1.642L7.7 21.666a3.75 3.75 0 0 0 2.6 0l4.307-1.592a1.75 1.75 0 0 0 1.143-1.642v-5.67a1.75 1.75 0 0 0-1.143-1.641zm-2.08 1.407a2.25 2.25 0 0 1 1.56 0l4.307 1.592a.25.25 0 0 1 .163.234v5.67a.25.25 0 0 1-.163.235L9.78 20.259a2.25 2.25 0 0 1-1.56 0l-4.307-1.592a.25.25 0 0 1-.163-.235v-5.67a.25.25 0 0 1 .163-.234z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"assistant_direction\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m14.298 2.985 6.717 6.718a3.25 3.25 0 0 1 0 4.596l-6.717 6.717a3.25 3.25 0 0 1-4.596 0L2.984 14.3a3.25 3.25 0 0 1 0-4.596l6.718-6.718a3.25 3.25 0 0 1 4.596 0m-3.536 1.06-6.717 6.718a1.75 1.75 0 0 0 0 2.475l6.717 6.718a1.75 1.75 0 0 0 2.475 0l6.718-6.718a1.75 1.75 0 0 0 0-2.475l-6.718-6.717a1.75 1.75 0 0 0-2.475 0m1.695 3.26.073-.084a.75.75 0 0 1 .977-.073l.084.073 2 2a.75.75 0 0 1 .072.977l-.072.084-2 2a.75.75 0 0 1-1.133-.977l.072-.084.72-.72h-1.5a1.25 1.25 0 0 0-1.244 1.122l-.006.128V15a.75.75 0 0 1-1.493.101l-.007-.1v-3.25a2.75 2.75 0 0 1 2.582-2.745L11.75 9h1.498l-.718-.72a.75.75 0 0 1-.072-.976l.072-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bar_vertical\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.251 3a2.25 2.25 0 0 0-2.249 2.25v13.5a2.249 2.249 0 1 0 4.498 0V5.25A2.25 2.25 0 0 0 18.251 3m-6.5 4a2.25 2.25 0 0 0-2.249 2.25v9.5a2.249 2.249 0 1 0 4.498 0v-9.5A2.25 2.25 0 0 0 11.751 7m-6.5 4a2.25 2.25 0 0 0-2.25 2.25v5.5a2.25 2.25 0 1 0 4.5 0v-5.5A2.25 2.25 0 0 0 5.25 11\\\"\\n />\\n </symbol>\\n <symbol id=\\\"book\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7 6a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1zm1.5 1.5h7v-1h-7zM4 4.5A2.5 2.5 0 0 1 6.5 2H18a2.5 2.5 0 0 1 2.5 2.5v14.25a.75.75 0 0 1-.75.75H5.5a1 1 0 0 0 1 1h13.25a.75.75 0 0 1 0 1.5H6.5A2.5 2.5 0 0 1 4 19.5zM5.5 18H19V4.5a1 1 0 0 0-1-1H6.5a1 1 0 0 0-1 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bookmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.19 21.855a.75.75 0 0 1-1.187-.61V6.25A3.25 3.25 0 0 1 8.253 3h7.498a3.25 3.25 0 0 1 3.25 3.25v14.996a.75.75 0 0 1-1.188.609l-5.81-4.181zM17.502 6.25a1.75 1.75 0 0 0-1.75-1.75H8.253a1.75 1.75 0 0 0-1.75 1.75v13.532l5.061-3.641a.75.75 0 0 1 .876 0l5.061 3.641z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"box\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.591 2.513a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.175v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.827V7.176a1.75 1.75 0 0 1 1.093-1.622zm2.254 1.39a2.25 2.25 0 0 0-1.69 0L9.24 4.68l7.527 2.927 2.669-1.03zm1.846 4.505L7.215 5.5 4.59 6.564l7.411 2.882zM3.5 16.828a.25.25 0 0 0 .156.231l7.499 3.04q.047.02.095.036v-9.371L3.5 7.75zm9.345 3.271 7.499-3.04a.25.25 0 0 0 .156-.232V7.774l-7.75 2.992v9.37z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"braces_variable\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 5.75A2.75 2.75 0 0 1 6.25 3a.75.75 0 0 1 0 1.5C5.56 4.5 5 5.06 5 5.75v4.309c0 .744-.3 1.437-.802 1.941A2.75 2.75 0 0 1 5 13.941v4.309c0 .69.56 1.25 1.25 1.25a.75.75 0 0 1 0 1.5 2.75 2.75 0 0 1-2.75-2.75v-4.308a1.25 1.25 0 0 0-.855-1.186l-.132-.045a.75.75 0 0 1 0-1.422l.132-.045c.51-.17.855-.647.855-1.185zm17 0A2.75 2.75 0 0 0 17.75 3a.75.75 0 0 0 0 1.5c.69 0 1.25.56 1.25 1.25v4.309c0 .744.3 1.437.802 1.941A2.75 2.75 0 0 0 19 13.941v4.309c0 .69-.56 1.25-1.25 1.25a.75.75 0 0 0 0 1.5 2.75 2.75 0 0 0 2.75-2.75v-4.308c0-.539.344-1.016.855-1.186l.132-.045a.75.75 0 0 0 0-1.422l-.132-.045a1.25 1.25 0 0 1-.855-1.185zM9.092 7.04a.75.75 0 1 0-1.184.92L11.05 12l-3.142 4.04a.75.75 0 0 0 1.184.92L12 13.223l2.908 3.739a.75.75 0 0 0 1.184-.921L12.95 12l3.142-4.04a.75.75 0 0 0-1.184-.92L12 10.778z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bullet_list\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.25 17.5a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493L21.25 13H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"burger_menu\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 17h18a1 1 0 0 1 .117 1.993L21 19H3a1 1 0 0 1-.117-1.993zh18zm0-6 18-.002a1 1 0 0 1 .117 1.993l-.117.007L3 13a1 1 0 0 1-.117-1.993zl18-.002zm0-6h18a1 1 0 0 1 .117 1.993L21 7H3a1 1 0 0 1-.117-1.993zh18z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calatena\\\" viewBox=\\\"0 0 121 121\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M60.5.5C27.4.5.5 27.4.5 60.5s26.9 60 60 60 60-26.9 60-60-26.9-60-60-60m0 118.9C28 119.4 1.6 93 1.6 60.5S28 1.6 60.5 1.6s58.9 26.4 58.9 58.9-26.4 58.9-58.9 58.9\\\"\\n class=\\\"st0\\\"\\n />\\n <path\\n d=\\\"m79 58.8 11.1-11.1c4.6-4.6 4.6-12.1 0-16.7S78 26.4 73.4 31l-.1.2L60.5 44 47.7 31.2l-.2-.2-.2-.1-.1-.1c-4.6-4.6-12-4.6-16.6 0s-4.6 12 0 16.6l13.2 13.2-1.8 1.9v.1L31 73.5l-.1.1-.1.2-.1.1c-4.4 4.8-4.1 12.2.6 16.6 4.5 4.2 11.5 4.2 16 0l13.2-13.2 13 13c4.6 4.6 12.1 4.6 16.7 0s4.6-12.1 0-16.7l-.2-.1-12.8-12.8z\\\"\\n class=\\\"st1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calendar\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm1.75 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75zm-11.75 6a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m-4.25-4a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m1.5-6H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calendar_clock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v5.772a6.5 6.5 0 0 0-1.5-.709V8.5h-15v9.25c0 .966.784 1.75 1.75 1.75h5.063c.173.534.412 1.037.709 1.5H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm0 1.5H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75m5.25 13a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0M17.5 14a.5.5 0 0 1 .5.5V17h2a.5.5 0 0 1 0 1h-2.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"camera\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zm0 1.5h-3.803a.75.75 0 0 0-.574.268l-.065.09-1.093 1.78a.75.75 0 0 1-.639.358h-2.5A1.75 1.75 0 0 0 3.5 8.25v9.5c0 .966.784 1.75 1.75 1.75h13.5a1.75 1.75 0 0 0 1.75-1.75v-9.5a1.75 1.75 0 0 0-1.75-1.75h-2.5a.75.75 0 0 1-.647-.37l-1.032-1.757a.75.75 0 0 0-.646-.37M12 8a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9m0 1.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"camera_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zM12 8a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9m0 1.5a3 3 0 1 1 0 6 3 3 0 0 1 0-6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"caret_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.161 10.073C4.454 9.265 5.028 8 6.102 8h11.796c1.074 0 1.648 1.265.941 2.073l-5.522 6.31a1.75 1.75 0 0 1-2.634 0zM6.653 9.5l5.159 5.896a.25.25 0 0 0 .376 0l5.16-5.896z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"caret_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.161 14.907c-.707.809-.133 2.073.941 2.073h11.796c1.074 0 1.648-1.264.941-2.073l-5.522-6.31a1.75 1.75 0 0 0-2.634 0zm1.492.573 5.159-5.896a.25.25 0 0 1 .376 0l5.16 5.897z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_average\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M23 24c-3.6 0-5.03-4.176-6.413-8.214C15.277 11.958 13.92 8 11 8a3.44 3.44 0 0 0-3.053 2.322L6.05 9.684C6.101 9.534 7.321 6 11 6c4.35 0 6.012 4.855 7.48 9.138C19.689 18.667 20.83 22 23 22a3.44 3.44 0 0 0 3.053-2.321l1.896.637C27.899 20.466 26.679 24 23 24\\\"\\n />\\n <path fill=\\\"currentColor\\\" d=\\\"M4 28V17h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 15h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_correlation\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M30 30H4a2 2 0 0 1-2-2V2h2v26h26Z\\\" />\\n <circle cx=\\\"9\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"9\\\" cy=\\\"22\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"18\\\" cy=\\\"14\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\\\"\\n />\\n <circle cx=\\\"27\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"27\\\" cy=\\\"22\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M27 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m-9 13a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m0-14a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_line\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.67 28 6.39-12 7.3 6.49a2 2 0 0 0 1.7.47 2 2 0 0 0 1.42-1.07L27 10.9l-1.82-.9-5.49 11-7.3-6.49a2 2 0 0 0-1.68-.51 2 2 0 0 0-1.42 1L4 25V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_line_smooth\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13 15c1.485 0 2.554 1.497 3.686 3.081C17.998 19.918 19.486 22 22 22c5.67 0 7.78-10.79 8-12l-1.968-.358C27.55 12.282 25.394 20 22 20c-1.485 0-2.554-1.497-3.686-3.081C17.002 15.082 15.514 13 13 13c-4.186 0-7.445 7.404-9 11.762V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H5.044c1.51-5.143 4.92-13 7.956-13\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_maximum\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 6h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m27.989 28-.027-.163C26.51 19.074 24.066 9.089 18 8.089V6h-2v2.085c-6.084.978-8.533 10.978-9.986 19.752L5.987 28H4V8h2V6H4V2H2v26a2 2 0 0 0 2 2h26v-2ZM8.015 28c2.024-12.108 4.96-18 8.973-18s6.949 5.892 8.972 18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_minimum\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M4 28v-2h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 24h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M27.946 4.328 25.973 4C23.949 16.108 21.013 22 17 22s-6.949-5.892-8.973-18l-1.973.328C7.51 13.057 9.964 22.93 16 23.913V26h2v-2.087c6.037-.983 8.49-10.856 9.946-19.585\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_stepper\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 22v-8h8V6h8V4H20v8h-8v8H4V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H4v-6Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_transformation\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n d=\\\"M10.356 23.058C12.77 24.592 15.62 26 17.95 26a3.87 3.87 0 0 0 2.856-1.084c2.286-2.29.14-6.398-1.938-10.372l5.801-5.801a44 44 0 0 1 3.012 2.124L29 9.349a45 45 0 0 0-2.872-2.064L30 3.413 28.586 2l-4.207 4.206c-3.316-1.91-7.108-3.246-9.228-1.122-2.04 2.043-.552 5.532 1.268 9.083l-6.307 6.306a44 44 0 0 1-2.8-2.1L6 19.884a48 48 0 0 0 2.665 2.035L4 26.585V2H2v26a2 2 0 0 0 2 2h26v-2H5.413Zm6.209-16.557c1.135-1.138 3.693-.286 6.337 1.183l-4.995 4.994c-1.313-2.619-2.35-5.167-1.342-6.177m.821 9.526c1.58 3.032 3.182 6.296 2.007 7.473-1.312 1.314-4.522-.026-7.572-1.908Z\\\"\\n />\\n <path\\n d=\\\"M0 0h32v32H0z\\\"\\n data-name=\\\"&lt;Transparent Rectangle&gt;\\\"\\n style=\\\"fill: none\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chat_add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.75 7.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5zM22 12c0-5.523-4.477-10-10-10S2 6.477 2 12a9.96 9.96 0 0 0 1.115 4.592l-1.068 3.823a1.25 1.25 0 0 0 1.54 1.54l3.826-1.067A9.96 9.96 0 0 0 12 22c5.523 0 10-4.477 10-10M3.5 12a8.5 8.5 0 1 1 4.367 7.43l-.27-.15-3.986 1.111 1.113-3.984-.151-.27A8.46 8.46 0 0 1 3.5 12\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chat_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM12 2c.957 0 1.883.134 2.759.385a1.8 1.8 0 0 1-.369.174l-1.34.44a1.65 1.65 0 0 0-.721.507A8.5 8.5 0 0 0 3.5 12c0 1.47.373 2.883 1.073 4.137l.15.27-1.112 3.984 3.987-1.112.27.15a8.502 8.502 0 0 0 12.507-5.965q.136.202.335.345a1.29 1.29 0 0 0 1.09.195C20.87 18.567 16.836 22 12 22a9.96 9.96 0 0 1-4.587-1.112l-3.826 1.067a1.25 1.25 0 0 1-1.54-1.54l1.068-3.823A9.96 9.96 0 0 1 2 12C2 6.477 6.477 2 12 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.53 12.97a.75.75 0 0 0-1.06 1.06l4.5 4.5a.75.75 0 0 0 1.06 0l11-11a.75.75 0 0 0-1.06-1.06L8.5 16.94z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m-1.25 9.94 4.47-4.47a.75.75 0 0 1 1.133.976l-.073.084-5 5a.75.75 0 0 1-.976.073l-.084-.073-2.5-2.5a.75.75 0 0 1 .976-1.133l.084.073zl4.47-4.47z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_circle_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.22 6.97-4.47 4.47-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5a.75.75 0 1 0-1.06-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_list\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.78 4.78a.75.75 0 0 0-1.06-1.06L3.75 5.69l-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm14.47 13.227H9.75l-.102.007a.75.75 0 0 0 .102 1.493h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.507H9.75l-.102.007A.75.75 0 0 0 9.75 13h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.5H9.75l-.102.007A.75.75 0 0 0 9.75 6.5h11.5l.102-.007A.75.75 0 0 0 21.25 5M6.78 17.78a.75.75 0 1 0-1.06-1.06l-1.97 1.97-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm0-7.56a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 0 1-1.06 0l-1-1a.75.75 0 1 1 1.06-1.06l.47.47 1.97-1.97a.75.75 0 0 1 1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_starburst\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.836 2.034q.168.058.329.136l1.283.632a1.25 1.25 0 0 0 1.104 0l1.283-.632a2.75 2.75 0 0 1 3.682 1.253l.073.162.063.167.46 1.353c.125.368.414.656.781.781l1.354.46a2.75 2.75 0 0 1 1.581 3.819l-.631 1.283a1.25 1.25 0 0 0 0 1.104l.631 1.283a2.75 2.75 0 0 1-1.581 3.818l-1.354.46a1.25 1.25 0 0 0-.78.781l-.461 1.354a2.75 2.75 0 0 1-3.818 1.581l-1.283-.631a1.25 1.25 0 0 0-1.104 0l-1.283.631a2.75 2.75 0 0 1-3.818-1.581l-.46-1.354a1.25 1.25 0 0 0-.782-.78l-1.353-.461a2.75 2.75 0 0 1-1.582-3.818l.632-1.283a1.25 1.25 0 0 0 0-1.104l-.632-1.283a2.75 2.75 0 0 1 1.582-3.818l1.353-.46a1.25 1.25 0 0 0 .781-.782l.46-1.353a2.75 2.75 0 0 1 3.49-1.718m-2.07 2.2-.46 1.354a2.75 2.75 0 0 1-1.718 1.718l-1.353.46a1.25 1.25 0 0 0-.719 1.736l.632 1.283a2.75 2.75 0 0 1 0 2.43l-.632 1.282a1.25 1.25 0 0 0 .719 1.736l1.353.46a2.75 2.75 0 0 1 1.718 1.718l.46 1.354a1.248 1.248 0 0 0 1.736.719l1.283-.632a2.75 2.75 0 0 1 2.43 0l1.282.632q.074.035.15.061a1.25 1.25 0 0 0 1.586-.78l.46-1.354a2.75 2.75 0 0 1 1.718-1.718l1.354-.46q.075-.026.15-.062a1.25 1.25 0 0 0 .569-1.674l-.632-1.283a2.75 2.75 0 0 1 0-2.429l.632-1.283a1.25 1.25 0 0 0-.719-1.736l-1.354-.46a2.75 2.75 0 0 1-1.718-1.718l-.46-1.353-.029-.076-.033-.074-.062-.111a1.25 1.25 0 0 0-1.612-.458l-1.283.632a2.75 2.75 0 0 1-2.429 0l-1.283-.632a1.25 1.25 0 0 0-1.735.719M10.05 14.39l5.42-5.42a.75.75 0 0 1 1.133.977l-.073.084-6 6a.75.75 0 0 1-1.031.028l-.075-.078-2.5-3a.75.75 0 0 1 1.075-1.04l.077.08zl5.42-5.42z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.22 8.47a.75.75 0 0 1 1.06 0L12 15.19l6.72-6.72a.75.75 0 1 1 1.06 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L4.22 9.53a.75.75 0 0 1 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_left\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.53 4.22a.75.75 0 0 1 0 1.06L8.81 12l6.72 6.72a.75.75 0 1 1-1.06 1.06l-7.25-7.25a.75.75 0 0 1 0-1.06l7.25-7.25a.75.75 0 0 1 1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_left_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.707 4.293a1 1 0 0 1 0 1.414L9.414 12l6.293 6.293a1 1 0 0 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414l7-7a1 1 0 0 1 1.414 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_right\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.47 4.22a.75.75 0 0 0 0 1.06L15.19 12l-6.72 6.72a.75.75 0 1 0 1.06 1.06l7.25-7.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_right_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.293 4.293a1 1 0 0 0 0 1.414L14.586 12l-6.293 6.293a1 1 0 1 0 1.414 1.414l7-7a1 1 0 0 0 0-1.414l-7-7a1 1 0 0 0-1.414 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.293 15.707a1 1 0 0 0 1.414 0L12 9.414l6.293 6.293a1 1 0 0 0 1.414-1.414l-7-7a1 1 0 0 0-1.414 0l-7 7a1 1 0 0 0 0 1.414\\\"\\n />\\n </symbol>\\n <symbol id=\\\"circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 3.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12\\\"\\n />\\n </symbol>\\n <symbol id=\\\"clipboard\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.379 5.5H6.25a.75.75 0 0 0-.75.75v13.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75h-2.129c-.404.603-1.09 1-1.871 1h-3.5c-.78 0-1.467-.397-1.871-1M15.986 4h1.764A2.25 2.25 0 0 1 20 6.25v13.5A2.25 2.25 0 0 1 17.75 22H6.25A2.25 2.25 0 0 1 4 19.75V6.25A2.25 2.25 0 0 1 6.25 4h1.764a2.25 2.25 0 0 1 2.236-2h3.5a2.25 2.25 0 0 1 2.236 2M9.5 4.25c0 .414.336.75.75.75h3.5a.75.75 0 0 0 0-1.5h-3.5a.75.75 0 0 0-.75.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"clock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 12a8.5 8.5 0 1 1 17 0 8.5 8.5 0 0 1-17 0M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-.007 4.648a.75.75 0 0 0-1.493.102v6l.007.102a.75.75 0 0 0 .743.648h4l.102-.007A.75.75 0 0 0 15.25 12H12V6.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0m-5 .5.001 2.503a.5.5 0 1 1-1 0V17h-2.505a.5.5 0 0 1 0-1H16v-2.5a.5.5 0 1 1 1 0V16h2.497a.5.5 0 0 1 0 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_archive\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h5.177a2 2 0 0 0 .323.232V18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0A4.5 4.5 0 0 1 21.744 12h-1.645a3 3 0 0 0-2.599-1.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m1 7.5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7 10a2 2 0 0 0 2-2v-4h-9v4a2 2 0 0 0 2 2zm-4.5-4.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_arrow_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 16.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 15.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_download\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_edit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h6.355l-.365.365A3.7 3.7 0 0 0 11.717 18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 2.433 1 3.27 3.27 0 0 0-1.701.71 3 3 0 0 0-1.152-.23h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m7.1 6.17-5.903 5.902a2.7 2.7 0 0 0-.706 1.247l-.458 1.831a1.087 1.087 0 0 0 1.319 1.318l1.83-.457a2.7 2.7 0 0 0 1.248-.707l5.902-5.902A2.286 2.286 0 0 0 19.1 11.67\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_link\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.507c.027.527.14 1.032.326 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.077 4.31 4.76 4.76 0 0 0-2.005-1.5A3 3 0 0 0 17.5 10.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m10 10.75a3.75 3.75 0 0 0-3.75-3.75l-.102.007A.75.75 0 0 0 18.25 14l.154.005a2.25 2.25 0 0 1-.154 4.495l-.003.005-.102.007a.75.75 0 0 0 .108 1.493V20l.2-.005A3.75 3.75 0 0 0 22 16.25m-6.5-3a.75.75 0 0 0-.75-.75l-.2.005a3.75 3.75 0 0 0 .2 7.495l.102-.007a.75.75 0 0 0-.102-1.493l-.154-.005A2.25 2.25 0 0 1 14.75 14l.102-.007a.75.75 0 0 0 .648-.743m3.5 3a.75.75 0 0 0-.75-.75h-3.5l-.102.007A.75.75 0 0 0 14.75 17h3.5l.102-.007A.75.75 0 0 0 19 16.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_off\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.28 2.22a.75.75 0 1 0-1.06 1.06l4.633 4.634a6 6 0 0 0-.773 2.105A4.5 4.5 0 0 0 6.5 19h11q.213 0 .42-.02l2.8 2.8a.75.75 0 0 0 1.06-1.06zM16.44 17.5H6.5a3 3 0 1 1 0-6h.256c.4 0 .73-.315.749-.715.03-.631.19-1.229.453-1.766zm4.06-3c0 .782-.3 1.494-.79 2.029l1.062 1.06a4.5 4.5 0 0 0-2.851-7.57 6 6 0 0 0-8.93-4.21l1.11 1.11a4.5 4.5 0 0 1 6.394 3.866.75.75 0 0 0 .75.715h.255a3 3 0 0 1 3 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_upload\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-6 3a.5.5 0 0 0 1 0v-4.793l1.646 1.647a.5.5 0 0 0 .708-.708l-2.5-2.5a.5.5 0 0 0-.708 0l-2.5 2.5a.5.5 0 0 0 .708.708L16 14.707z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"code\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m8.066 18.943 6.5-14.5a.75.75 0 0 1 1.404.518l-.036.096-6.5 14.5a.75.75 0 0 1-1.404-.518zl6.5-14.5zM2.22 11.47l4.25-4.25a.75.75 0 0 1 1.133.976l-.073.085L3.81 12l3.72 3.719a.75.75 0 0 1-.976 1.133l-.084-.073-4.25-4.25a.75.75 0 0 1-.073-.976zl4.25-4.25zm14.25-4.25a.75.75 0 0 1 .976-.073l.084.073 4.25 4.25a.75.75 0 0 1 .073.976l-.073.085-4.25 4.25a.75.75 0 0 1-1.133-.977l.073-.084L20.19 12l-3.72-3.72a.75.75 0 0 1 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"color\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.839 5.858c2.94-3.916 9.03-5.055 13.364-2.36 4.28 2.66 5.854 7.777 4.1 12.577-1.655 4.533-6.016 6.328-9.159 4.048-1.177-.854-1.634-1.925-1.854-3.664l-.106-.987-.045-.398c-.123-.934-.311-1.352-.705-1.572-.535-.298-.892-.305-1.595-.033l-.351.146-.179.078c-1.014.44-1.688.595-2.541.416l-.2-.047-.164-.047c-2.789-.864-3.202-4.647-.565-8.157m.984 6.716.123.037.134.03c.439.087.814.015 1.437-.242l.602-.257c1.202-.493 1.985-.54 3.046.05.917.512 1.275 1.298 1.457 2.66l.053.459.055.532.047.422c.172 1.361.485 2.09 1.248 2.644 2.275 1.65 5.534.309 6.87-3.349 1.516-4.152.174-8.514-3.484-10.789-3.675-2.284-8.899-1.306-11.373 1.987-2.075 2.763-1.82 5.28-.215 5.816m11.225-1.994a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m.494 3.488a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647M14.07 7.577a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647m-.028 8.998a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m-3.497-9.97a1.25 1.25 0 1 1 2.415-.646 1.25 1.25 0 0 1-2.415.646\\\"\\n />\\n </symbol>\\n <symbol id=\\\"column_triple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 21A2.5 2.5 0 0 1 2 18.5v-13A2.5 2.5 0 0 1 4.5 3h1A2.5 2.5 0 0 1 8 5.5v13A2.5 2.5 0 0 1 5.5 21zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm8 2.5A2.5 2.5 0 0 1 9 18.5v-13A2.5 2.5 0 0 1 11.5 3h1A2.5 2.5 0 0 1 15 5.5v13a2.5 2.5 0 0 1-2.5 2.5zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm5.5 0a2.5 2.5 0 0 0 2.5 2.5h1a2.5 2.5 0 0 0 2.5-2.5v-13A2.5 2.5 0 0 0 19.5 3h-1A2.5 2.5 0 0 0 16 5.5zm2.5 1a1 1 0 0 1-1-1v-13a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"condition_point\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"m8 16 8-8 8 8-8 8z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29.39 14.527 17.474 2.609a2.085 2.085 0 0 0-2.946 0L2.609 14.527a2.085 2.085 0 0 0 0 2.946l11.918 11.918a2.085 2.085 0 0 0 2.946 0l11.918-11.918a2.085 2.085 0 0 0 0-2.946M16 28.036 3.965 16 16 3.964 28.036 16Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"copy\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M17.75 2A2.25 2.25 0 0 1 20 4.25v13a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-13A2.25 2.25 0 0 1 8.75 2zm0 1.5h-9a.75.75 0 0 0-.75.75v13c0 .414.336.75.75.75h9a.75.75 0 0 0 .75-.75v-13a.75.75 0 0 0-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cube\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.049 7.983a.75.75 0 0 1 .967-.435L12 9.438l4.984-1.89a.75.75 0 1 1 .532 1.402l-4.766 1.81v5.49a.75.75 0 1 1-1.5 0v-5.49L6.484 8.95a.75.75 0 0 1-.435-.967m4.542-5.472a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.173v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.826V7.173A1.75 1.75 0 0 1 3.093 5.55zm2.254 1.39a2.25 2.25 0 0 0-1.69 0l-7.499 3.04a.25.25 0 0 0-.156.232v9.653a.25.25 0 0 0 .156.231l7.499 3.04a2.25 2.25 0 0 0 1.69 0l7.499-3.04a.25.25 0 0 0 .156-.231V7.173a.25.25 0 0 0-.156-.232z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cursor_click\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 2a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5A.75.75 0 0 1 9.25 2M4.47 3.97a.75.75 0 0 1 1.06 0l1.75 1.75a.75.75 0 1 1-1.06 1.06L4.47 5.03a.75.75 0 0 1 0-1.06m9.56 0a.75.75 0 0 1 0 1.06l-1.75 1.75a.75.75 0 1 1-1.06-1.06l1.75-1.75a.75.75 0 0 1 1.06 0M2.5 8.75A.75.75 0 0 1 3.25 8h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75m8.177-.264C9.822 7.752 8.5 8.36 8.5 9.487v11.274c0 1.21 1.495 1.782 2.302.88l2.614-2.923c.276-.308.664-.49 1.077-.507l3.84-.154c1.197-.048 1.715-1.539.805-2.32zM10 20.287V9.881l7.812 6.696-3.38.135a3.03 3.03 0 0 0-2.133 1.006z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dashboard\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M24 21h2v5h-2zm-4-5h2v10h-2zm-9 10a5.006 5.006 0 0 1-5-5h2a3 3 0 1 0 3-3v-2a5 5 0 0 1 0 10\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 2H4a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m0 9H14V4h14ZM12 4v7H4V4ZM4 28V13h24l.002 15Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dashboard_reference\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4 20v2h4.586L2 28.586 3.414 30 10 23.414V28h2v-8zm20 1h2v5h-2zm-4-5h2v10h-2zm-4 2h2v8h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 2H4a2 2 0 0 0-2 2v12h2v-3h24.001l.001 15H16v2h12a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m-16 9H4V4h8Zm2 0V4h14v7Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"data_accessor\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 20h-2v2h2v6H4v-6h2v-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2\\\"\\n />\\n <circle cx=\\\"7\\\" cy=\\\"25\\\" r=\\\"1\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21 13a2.96 2.96 0 0 0-1.285.3l-2.3-2.3 2.3-2.3A2.96 2.96 0 0 0 21 9a3 3 0 1 0-3-3 3 3 0 0 0 .3 1.285l-2.3 2.3-2.3-2.3A3 3 0 0 0 14 6a3 3 0 1 0-3 3 2.96 2.96 0 0 0 1.285-.3l2.3 2.3-2.3 2.3A2.96 2.96 0 0 0 11 13a3 3 0 1 0 3 3 3 3 0 0 0-.3-1.285l2.3-2.3 2.3 2.3A3 3 0 0 0 18 16a3 3 0 1 0 3-3m0-8a1 1 0 1 1-1 1 1 1 0 0 1 1-1M10 6a1 1 0 1 1 1 1 1 1 0 0 1-1-1m1 11a1 1 0 1 1 1-1 1 1 0 0 1-1 1m10 0a1 1 0 1 1 1-1 1 1 0 0 1-1 1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 5h4a2 2 0 1 0-4 0M8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-1.17 12.111A3.75 3.75 0 0 1 15.026 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zm2 4.75a.75.75 0 0 0-1.5 0v7.5a.75.75 0 0 0 1.5 0zM14.25 9a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75m-7.516 9.467a2.25 2.25 0 0 0 2.24 2.033h6.052a2.25 2.25 0 0 0 2.24-2.033L18.424 6.5H5.576z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_arrow_back\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.485 4.196a5.5 5.5 0 0 0-.986-.176L15.44 5H4.561l1.18 10.23A2 2 0 0 0 7.728 17H9.6q.276.538.657 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm7 15a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9m-.896-6.396-.897.896h1.543A2.75 2.75 0 0 1 17 16.25v.25a.5.5 0 0 1-1 0v-.25a1.75 1.75 0 0 0-1.75-1.75h-1.543l.897.896a.5.5 0 0 1-.708.708l-1.752-1.753a.5.5 0 0 1 .002-.705l1.75-1.75a.5.5 0 0 1 .708.708\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 5a2 2 0 1 0-4 0zM8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-.502 5.195a6.5 6.5 0 0 0-1.456-.528l.452-4.667H5.576l1.158 11.967a2.25 2.25 0 0 0 2.24 2.033h1.758A6.5 6.5 0 0 0 11.81 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zM22 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 16.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_lines\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.808 7H14.63l.808-7H4.561l1.18 10.23A2 2 0 0 0 7.728 17h2.357a1.5 1.5 0 0 0 0 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm4 9a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"descending\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4 2.75A.75.75 0 0 1 4.75 2H9.5a.75.75 0 0 1 .634 1.151L6.113 9.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.634-1.151L8.137 3.5H4.75A.75.75 0 0 1 4 2.75m2.368 9.727a.75.75 0 0 1 1.401.01l3.184 8.5a.75.75 0 0 1-1.405.526L8.794 19.5H5.238l-.79 2.022a.75.75 0 0 1-1.397-.545zM8.232 18l-1.18-3.15L5.823 18zM17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"devices\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 30H4a2 2 0 0 1-2-2V16a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2M4 16v12h6V16Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 4H6a2 2 0 0 0-2 2v6h2V6h22v14H14v2h2v4h-2v2h9v-2h-5v-4h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.397 4.554.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l6.47-6.47a.75.75 0 1 1 1.06 1.061L13.061 12l6.47 6.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-6.47 6.47a.75.75 0 0 1-1.06-1.061L10.939 12l-6.47-6.47a.75.75 0 0 1-.072-.976l.073-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m3.446 4.897.084.073a.75.75 0 0 1 .073.976l-.073.084L13.061 12l2.47 2.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-2.47 2.47a.75.75 0 0 1-.976.072l-.084-.073a.75.75 0 0 1-.073-.976l.073-.084L10.939 12l-2.47-2.47a.75.75 0 0 1-.072-.976l.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l2.47-2.47a.75.75 0 0 1 .976-.072\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_circle_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.53 6.47-.084-.073a.75.75 0 0 0-.882-.007l-.094.08L12 10.939l-2.47-2.47-.084-.072a.75.75 0 0 0-.882-.007l-.094.08-.073.084a.75.75 0 0 0-.007.882l.08.094L10.939 12l-2.47 2.47-.072.084a.75.75 0 0 0-.007.882l.08.094.084.073a.75.75 0 0 0 .882.007l.094-.08L12 13.061l2.47 2.47.084.072a.75.75 0 0 0 .882.007l.094-.08.073-.084a.75.75 0 0 0 .007-.882l-.08-.094L13.061 12l2.47-2.47.072-.084a.75.75 0 0 0 .007-.882zl-.084-.073z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.21 4.387.083-.094a1 1 0 0 1 1.32-.083l.094.083L12 10.585l6.293-6.292a1 1 0 1 1 1.414 1.414L13.415 12l6.292 6.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083L12 13.415l-6.293 6.292a1 1 0 0 1-1.414-1.414L10.585 12 4.293 5.707a1 1 0 0 1-.083-1.32l.083-.094z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_bullet\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7 12.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m.75 2.25a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M7 18.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m3.75-6.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zM10 15.25a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75m.75 2.25a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm8.664-9.086-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414M18.5 20a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_copy\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M13.128 2c.597 0 1.17.237 1.592.66l4.618 4.62c.422.422.659.995.659 1.591v8.383a2.25 2.25 0 0 1-2.25 2.25H8.752a2.25 2.25 0 0 1-2.25-2.25V4.25A2.25 2.25 0 0 1 8.752 2zM13 3.5H8.752a.75.75 0 0 0-.75.75v13.004c0 .414.336.75.75.75h8.995a.75.75 0 0 0 .75-.75V9.003H15.25a2.25 2.25 0 0 1-2.245-2.095L13 6.754zm1.5 1.061.001 2.193c0 .38.282.693.648.743l.102.007 2.19-.001z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.5 20a.5.5 0 0 1-.5.5h-6v1q0 .257-.05.5H18a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.55a3.5 3.5 0 0 1 1.5-.905V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5zM4 15h-.5A1.5 1.5 0 0 0 2 16.5v5A1.5 1.5 0 0 0 3.5 23h6a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 15H9v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 1 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_page\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.25 2A2.25 2.25 0 0 0 4 4.25v15.5A2.25 2.25 0 0 0 6.25 22h11.5A2.25 2.25 0 0 0 20 19.75V4.25A2.25 2.25 0 0 0 17.75 2zM5.5 4.25a.75.75 0 0 1 .75-.75h11.5a.75.75 0 0 1 .75.75v15.5a.75.75 0 0 1-.75.75H6.25a.75.75 0 0 1-.75-.75zM7.75 6.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 16.25a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 11a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 11h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75m0 4.5h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75M7 7.25c0 .41.34.75.75.75h7.45l-.09-.28q-.075-.21-.21-.39c-.04-.05-.07-.09-.11-.13-.15-.15-.33-.26-.52-.32L13.1 6.5H7.75c-.41 0-.75.34-.75.75m12.8 6.04-.26-.79-.8-.29c-.09-.03-.16-.08-.24-.12v7.66c0 .41-.34.75-.75.75H6.25c-.41 0-.75-.34-.75-.75V4.25c0-.41.34-.75.75-.75h5.53c.03-.06.05-.13.09-.19.24-.34.58-.6.99-.74l1.41-.46c.07-.03.15-.07.22-.11H6.25C5.01 2 4 3.01 4 4.25v15.5C4 20.99 5.01 22 6.25 22h11.5c1.24 0 2.25-1.01 2.25-2.25v-6.08a1.7 1.7 0 0 1-.2-.38m-3.95-7.14c.08.08.16.17.23.27.2.25.35.54.45.85l.45 1.38c.04.11.11.2.2.26.09.07.2.1.31.1a.5.5 0 0 0 .31-.1c.08-.06.15-.14.19-.23v-.03l.46-1.38c.14-.42.37-.8.69-1.11.31-.31.69-.55 1.11-.69l1.38-.45c.11-.04.2-.11.26-.2a.5.5 0 0 0 .1-.31.5.5 0 0 0-.1-.31.63.63 0 0 0-.26-.2h-.03l-1.38-.45c-.42-.14-.8-.37-1.11-.69a2.85 2.85 0 0 1-.69-1.11L17.97.37a.52.52 0 0 0-.2-.26c-.09-.06-.2-.1-.31-.1a.5.5 0 0 0-.31.1c-.09.06-.16.16-.2.26l-.45 1.38v.03c-.15.4-.38.77-.67 1.07-.31.31-.68.55-1.1.69l-1.38.45c-.11.04-.2.11-.26.2a.5.5 0 0 0-.1.31c0 .11.03.22.1.31.06.09.16.16.26.2l1.38.45c.42.14.8.38 1.11.69zm7.93 4.07c.064 0 .13.06.17.11s.05.11.05.17-.01.12-.05.17-.09.09-.15.11l-.77.25c-.23.08-.44.21-.62.38-.17.17-.3.38-.38.62l-.25.76c-.02.06-.06.11-.11.15a.27.27 0 0 1-.34 0 .33.33 0 0 1-.11-.15l-.25-.76c-.08-.23-.21-.45-.38-.62s-.39-.31-.62-.38l-.77-.25a.33.33 0 0 1-.15-.11.27.27 0 0 1 0-.34c.04-.05.09-.09.15-.11l.77-.25c.23-.08.44-.21.61-.38s.3-.38.37-.61l.25-.76c.02-.06.06-.11.11-.15a.27.27 0 0 1 .34 0c.05.04.09.09.11.15l.25.76c.08.23.21.44.38.62.17.17.38.3.62.38z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_toolbox\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.5 4.25a.75.75 0 0 1 .75-.75H12V8a2 2 0 0 0 2 2h4.5v9.75a.75.75 0 0 1-.75.75H13V22h4.75A2.25 2.25 0 0 0 20 19.75V9.664c0-.464-.184-.909-.513-1.237l-5.914-5.914A1.75 1.75 0 0 0 12.336 2H6.25A2.25 2.25 0 0 0 4 4.25v8.018c.294-.17.636-.268 1-.268h.5zM17.44 8.5H14a.5.5 0 0 1-.5-.5V4.56zM4 16v-1.5A1.5 1.5 0 0 1 5.5 13h2A1.5 1.5 0 0 1 9 14.5V16h1.5a1.5 1.5 0 0 1 1.5 1.5V19H9v-.5a.5.5 0 0 0-1 0v.5H5v-.5a.5.5 0 0 0-1 0v.5H1v-1.5A1.5 1.5 0 0 1 2.5 16zm1-1.5V16h3v-1.5a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5M9 20h3v1.5a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 1 21.5V20h3v.5a.5.5 0 0 0 1 0V20h3v.5a.5.5 0 0 0 1 0z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"download\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 20.5a.75.75 0 1 1 0 1.5l-13 .005a.75.75 0 1 1 0-1.5zM11.648 2.014l.102-.007a.75.75 0 0 1 .743.648l.007.102-.001 13.685 3.722-3.72a.75.75 0 0 1 .976-.073l.085.073a.75.75 0 0 1 .072.976l-.073.084-4.997 4.997a.75.75 0 0 1-.976.073l-.085-.073-5.003-4.996a.75.75 0 0 1 .976-1.134l.084.072 3.719 3.714L11 2.756a.75.75 0 0 1 .648-.743l.102-.007z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"drive\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.415 5.27A2.25 2.25 0 0 1 7.441 4h9.118c.863 0 1.65.493 2.026 1.27l3.09 6.388c.214.44.325.925.325 1.415v3.677A2.25 2.25 0 0 1 19.75 19H4.25A2.25 2.25 0 0 1 2 16.75v-3.677c0-.49.11-.974.324-1.415zm11.82.653a.75.75 0 0 0-.676-.423H7.441a.75.75 0 0 0-.676.423L4.31 11h15.382zM3.5 13.25v3.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75H4.25a.75.75 0 0 0-.75.75M18 16a1 1 0 1 0 0-2 1 1 0 0 0 0 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"edit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20.952 3.048a3.58 3.58 0 0 0-5.06 0L3.94 15a3.1 3.1 0 0 0-.825 1.476L2.02 21.078a.75.75 0 0 0 .904.903l4.601-1.096a3.1 3.1 0 0 0 1.477-.825l11.95-11.95a3.58 3.58 0 0 0 0-5.06m-4 1.06a2.078 2.078 0 1 1 2.94 2.94L19 7.939 16.06 5zM15 6.062 17.94 9l-10 10c-.21.21-.474.357-.763.426l-3.416.814.813-3.416c.069-.29.217-.554.427-.764z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"enterprise\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 8h2v4H8zm0 6h2v4H8zm6-6h2v4h-2zm0 6h2v4h-2zm-6 6h2v4H8zm6 0h2v4h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M30 14a2 2 0 0 0-2-2h-6V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v26h28ZM4 4h16v24H4Zm18 24V14h6v14Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"error_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667m-.001 10.835a.999.999 0 1 1 0 1.998.999.999 0 0 1 0-1.998M11.994 7a.75.75 0 0 1 .744.648l.007.101.004 4.502a.75.75 0 0 1-1.493.103l-.007-.102-.004-4.501a.75.75 0 0 1 .75-.751\\\"\\n />\\n </symbol>\\n <symbol id=\\\"event_alerting\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 17v5H4V6h11V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-5ZM18 28h-4v-4h4Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29 14H17a1 1 0 0 1-.857-1.514l6-10a1 1 0 0 1 1.715 0l6 10A1 1 0 0 1 29 14m-10.234-2h8.468L23 4.944Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"export\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2.753 4.5a.75.75 0 0 1 .743.648l.006.102L3.5 18.254a.75.75 0 0 1-1.493.102L2 18.254 2.002 5.25a.75.75 0 0 1 .75-.75m12.894 1.804.073-.084a.75.75 0 0 1 .976-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.996 5.003a.75.75 0 0 1-1.134-.976l.072-.084 3.711-3.717H5.753a.75.75 0 0 1-.743-.647l-.007-.102a.75.75 0 0 1 .648-.743l.102-.007 13.69-.001L15.72 7.28a.75.75 0 0 1-.073-.976l.073-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"eye\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 9.005a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 1.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M12 5.5c4.613 0 8.596 3.15 9.701 7.564a.75.75 0 1 1-1.455.365 8.504 8.504 0 0 0-16.493.004.75.75 0 0 1-1.456-.363A10 10 0 0 1 12 5.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"eye_hide\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2.22 2.22a.75.75 0 0 0-.073.976l.073.084 4.034 4.035a10 10 0 0 0-3.955 5.75.75.75 0 0 0 1.455.364 8.5 8.5 0 0 1 3.58-5.034l1.81 1.81A4 4 0 0 0 14.8 15.86l5.919 5.92a.75.75 0 0 0 1.133-.977l-.073-.084-6.113-6.114.001-.002-1.2-1.198-2.87-2.87h.002l-2.88-2.877.001-.002-1.133-1.13L3.28 2.22a.75.75 0 0 0-1.06 0m7.984 9.045 3.535 3.536a2.5 2.5 0 0 1-3.535-3.535M12 5.5c-1 0-1.97.148-2.889.425l1.237 1.236a8.503 8.503 0 0 1 9.899 6.272.75.75 0 0 0 1.455-.363A10 10 0 0 0 12 5.5m.195 3.51 3.801 3.8a4.003 4.003 0 0 0-3.801-3.8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"factory\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.17 2a2.25 2.25 0 0 0-2.247 2.129l-.838 15.5A2.25 2.25 0 0 0 4.332 22h2.834a2.25 2.25 0 0 0 2.246-2.371l-.838-15.5A2.25 2.25 0 0 0 6.328 2zm-.75 2.21a.75.75 0 0 1 .749-.71h1.158a.75.75 0 0 1 .749.71l.837 15.5a.75.75 0 0 1-.748.79H4.332a.75.75 0 0 1-.749-.79zM9.511 22c.395-.412.683-.928.818-1.5h1.17v-4.25c0-.966.783-1.75 1.75-1.75h4c.966 0 1.75.784 1.75 1.75v4.25h.75a.75.75 0 0 0 .75-.75V7.713l-5.241 4.838a.75.75 0 0 1-1.26-.551V7.713l-4.027 3.718-.105-1.944 4.374-4.038A.75.75 0 0 1 15.5 6v4.287l5.241-4.838A.75.75 0 0 1 22 6v13.75A2.25 2.25 0 0 1 19.75 22zm3.488-5.75v4.25h4.5v-4.25a.25.25 0 0 0-.25-.25h-4a.25.25 0 0 0-.25.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_audio\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29 31a1 1 0 0 1-.624-.22L23.649 27H20a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1h3.65l4.726-3.78A1 1 0 0 1 30 17v13a1 1 0 0 1-1 1m-8-6h3a1 1 0 0 1 .625.22L28 27.92v-8.84l-3.375 2.7A1 1 0 0 1 24 22h-3Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6 5.6 5.6H18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_pdf\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.503 13.002a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 1 0v-.5H8.5a1.5 1.5 0 0 0 0-3zm.997 2h-.497v-1H8.5a.5.5 0 1 1 0 1m6.498-1.5a.5.5 0 0 1 .5-.5h1.505a.5.5 0 1 1 0 1h-1.006l-.001 1.002h1.007a.5.5 0 0 1 0 1h-1.007l.002.497a.5.5 0 0 1-1 .002l-.003-.998v-.002zm-3.498-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h.498a2 2 0 0 0 0-4zm.5 3v-2a1 1 0 0 1 0 2M20 20v-1.164c.591-.281 1-.884 1-1.582V12.75c0-.698-.409-1.3-1-1.582v-1.34a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.168c-.591.281-1 .884-1 1.582v4.504c0 .698.409 1.3 1 1.582V20a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2m-2 .5H6a.5.5 0 0 1-.5-.5v-.996h13V20a.5.5 0 0 1-.5.5m.5-10.5v1h-13V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2zm-1.122-1.5H14a.5.5 0 0 1-.5-.5V4.621zm-12.628 4h14.5a.25.25 0 0 1 .25.25v4.504a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25V12.75a.25.25 0 0 1 .25-.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM5.25 3h7.797a1.65 1.65 0 0 0-.767.569A1.6 1.6 0 0 0 12 4.5H5.25a.75.75 0 0 0-.75.75v12.5c0 .966.784 1.75 1.75 1.75h9.25V7.327q.052.108.09.222l.41 1.45c.106.31.305.579.57.77q.2.138.43.21V14h4v3.75A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V5.25A2.25 2.25 0 0 1 5.25 3M17 19.5h.75a1.75 1.75 0 0 0 1.75-1.75V15.5H17zM7.25 7a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm-.75 4.75a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M7.25 15a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_video\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m30 19-4 3.2V20a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2.2l4 3.2Zm-14 7v-6h8l.002 6Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h4Zm6-23.6 5.6 5.6H18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_zip\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 8V6.25c0-.966.784-1.75 1.75-1.75h2.879a.75.75 0 0 1 .53.22l1.53 1.53-1.53 1.53a.75.75 0 0 1-.53.22zm1.75-5A3.25 3.25 0 0 0 2 6.25v11.5A3.25 3.25 0 0 0 5.25 21h13.5A3.25 3.25 0 0 0 22 17.75v-9a3.25 3.25 0 0 0-3.25-3.25h-7.19L9.72 3.659A2.25 2.25 0 0 0 8.129 3zm8.25 4v3.25c0 .414.336.75.75.75H15v2h-.25a.75.75 0 0 0 0 1.5H15V16h-.25a.75.75 0 0 0 0 1.5H15v2H5.25a1.75 1.75 0 0 1-1.75-1.75V9.5h4.629a2.25 2.25 0 0 0 1.59-.659L11.562 7zm3 12.5V16h.25a.75.75 0 0 0 0-1.5h-.25V11h.75a.75.75 0 0 0 .75-.75V7h.75c.966 0 1.75.784 1.75 1.75v9a1.75 1.75 0 0 1-1.75 1.75zm0-12.5v2.5H15V7z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"filter\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.5 16a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-9a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-15a.75.75 0 0 1 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"fingerprint\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.858 12.158c.56.573.877 1.268 1.106 2.228l.1.456.178.947c.09.445.158.692.255.908q.449 1.012 1.595 2.065a.75.75 0 0 1-1.013 1.106q-1.363-1.246-1.952-2.56c-.149-.334-.24-.65-.347-1.18l-.21-1.1-.013-.06c-.18-.85-.404-1.385-.772-1.762-.713-.73-2.357-.537-2.797.158-.562.889-.705 2.396-.26 3.916q.518 1.761 1.373 3.467a.75.75 0 0 1-1.34.672 22.3 22.3 0 0 1-1.471-3.717c-.562-1.912-.376-3.864.43-5.14.953-1.506 3.742-1.834 5.138-.404m-2.366 2.315a.75.75 0 0 1 .775.725 7.93 7.93 0 0 0 1.444 4.304l.196.266.3.39a.75.75 0 0 1-1.114.998l-.074-.083-.3-.39a9.43 9.43 0 0 1-1.951-5.435.75.75 0 0 1 .724-.775M8.782 9.39c2.113-1.563 4.875-1.478 6.733-.284.93.598 1.635 1.295 2.103 2.093a.75.75 0 0 1-1.294.76c-.342-.584-.878-1.115-1.62-1.591-1.362-.876-3.451-.94-5.029.228-1.638 1.213-2.328 3.291-2.123 5.482q.172 1.84 1.114 3.724a.75.75 0 0 1-1.342.67Q6.26 18.346 6.06 16.219c-.25-2.67.61-5.263 2.724-6.828m9.18 4.301a.75.75 0 0 1 .788.71c.031.604.18 1.097.442 1.494.22.333.414.525.563.6l.061.024a.75.75 0 0 1-.434 1.436c-.547-.165-1.017-.588-1.443-1.235-.416-.63-.643-1.382-.687-2.241a.75.75 0 0 1 .71-.788m-7.451-7.589a.75.75 0 0 1-.377.992c-1.84.828-3.194 2.008-4.083 3.548-1.114 1.928-1.414 4.181-1.165 6.08a.75.75 0 1 1-1.487.196c-.289-2.201.055-4.778 1.353-7.026C5.804 8.071 7.4 6.68 9.519 5.726a.75.75 0 0 1 .992.376m2.343-.787c1.83.037 3.652.878 5.459 2.486 1.823 1.622 2.921 3.827 3.294 6.58a.75.75 0 1 1-1.486.202c-.327-2.412-1.261-4.287-2.805-5.661-1.56-1.388-3.055-2.078-4.493-2.107a.75.75 0 1 1 .031-1.5m-6.871.014a.75.75 0 0 1-.062 1.06q-.403.357-.843.854-.415.468-.846 1.213a.75.75 0 1 1-1.3-.75 9 9 0 0 1 1.024-1.458q.497-.56.968-.98a.75.75 0 0 1 1.059.061m6.585-2.966c2.193.103 4.03.703 5.53 1.861a.75.75 0 0 1-.917 1.188c-1.245-.962-2.785-1.461-4.683-1.55-1.903-.09-3.462.284-4.715.979-.384.213-.814.106-1.031-.247a.74.74 0 0 1 .246-1.031c1.536-.904 3.383-1.302 5.57-1.2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"flag-de\\\" viewBox=\\\"0 0 640 480\\\">\\n <path fill=\\\"#fc0\\\" d=\\\"M0 320h640v160H0z\\\" />\\n <path fill=\\\"#000001\\\" d=\\\"M0 0h640v160H0z\\\" />\\n <path fill=\\\"red\\\" d=\\\"M0 160h640v160H0z\\\" />\\n </symbol>\\n <symbol id=\\\"flag-en\\\" viewBox=\\\"0 0 640 480\\\">\\n <path fill=\\\"#012169\\\" d=\\\"M0 0h640v480H0z\\\" />\\n <path\\n fill=\\\"#fff\\\"\\n d=\\\"m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z\\\"\\n />\\n <path\\n fill=\\\"#c8102e\\\"\\n d=\\\"m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z\\\"\\n />\\n <path fill=\\\"#fff\\\" d=\\\"M241 0v480h160V0zM0 160v160h640V160z\\\" />\\n <path fill=\\\"#c8102e\\\" d=\\\"M0 193v96h640v-96zM273 0v480h96V0z\\\" />\\n </symbol>\\n <symbol id=\\\"flash\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.425 2.83A1.25 1.25 0 0 1 8.603 2h6.453a1.25 1.25 0 0 1 1.186 1.645L14.79 8h3.96c1.103 0 1.665 1.327.897 2.12L8.586 21.536c-1.054 1.088-2.872.106-2.541-1.372l1.27-5.668-1.57-.006a1.75 1.75 0 0 1-1.641-2.337zm1.354.67-3.262 9.157a.25.25 0 0 0 .234.333l2.502.01a.75.75 0 0 1 .729.914l-1.473 6.578L18.159 9.5h-4.41a.75.75 0 0 1-.71-.987l1.67-5.013z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"flow_stream\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20 24h-8.137a4 4 0 0 0-.429-1.02L21.98 12.434A3.994 3.994 0 1 0 20.141 8H14v2h6.141a4 4 0 0 0 .425 1.02L10.02 21.566A3.994 3.994 0 1 0 11.859 26H20v3h8v-8h-8zm4-17a2 2 0 1 1-2 2 2 2 0 0 1 2-2M8 27a2 2 0 1 1 2-2 2 2 0 0 1-2 2m14-4h4v4h-4zM9.693 12.75a5 5 0 0 1 0-7.5l1.324 1.5a3 3 0 0 0 0 4.501z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.047 15.751a9 9 0 0 1 0-13.501l1.324 1.5a7 7 0 0 0 0 10.501Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"globe\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998M14.94 16.5H9.061c.652 2.415 1.786 4.002 2.94 4.002s2.286-1.588 2.938-4.002m-7.43 0H4.785a8.53 8.53 0 0 0 4.095 3.41c-.522-.82-.953-1.846-1.27-3.015zm11.705 0h-2.722c-.324 1.335-.792 2.5-1.373 3.411a8.53 8.53 0 0 0 3.91-3.127zM7.094 10H3.736l-.005.017A8.5 8.5 0 0 0 3.5 12a8.5 8.5 0 0 0 .544 3h3.173A20 20 0 0 1 7 12c0-.684.032-1.354.095-2.001m8.303 0H8.603a19 19 0 0 0 .135 5h6.524a19 19 0 0 0 .135-5m4.868 0h-3.358c.062.647.095 1.317.095 2a20 20 0 0 1-.218 3h3.173a8.5 8.5 0 0 0 .545-3c0-.689-.082-1.359-.237-2M8.88 4.088l-.023.008A8.53 8.53 0 0 0 4.25 8.5h3.048c.314-1.752.86-3.278 1.583-4.41m3.12-.591-.117.005C10.62 3.62 9.397 5.621 8.83 8.5h6.342c-.566-2.87-1.783-4.869-3.045-4.995zm3.12.59.106.175c.67 1.112 1.177 2.572 1.475 4.237h3.048a8.53 8.53 0 0 0-4.339-4.29z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"globe_search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.441 9.955a4.926 4.926 0 0 0 6.233 7.571l4.256 4.257a.773.773 0 0 0 1.169-1.007l-.075-.087l-4.217-4.218A4.927 4.927 0 0 0 3.44 9.955m8.585-7.957c-4.756 0-8.736 3.319-9.751 7.767q.21-.27.46-.517A5.9 5.9 0 0 1 4.51 8.025A8.53 8.53 0 0 1 8.906 4.09l-.107.174c-.538.893-.971 2.011-1.275 3.28c.499.05.991.164 1.465.34c.632-2.628 1.823-4.385 3.037-4.385l.115.005c1.266.116 2.488 2.118 3.056 4.996H10.2a6 6 0 0 1 1.55 1.499l3.674.001a19 19 0 0 1-.135 5h-2.646a6 6 0 0 1-.299.842l-.129.272l-.122.229l.158.157h2.715c-.203.749-.45 1.418-.732 1.985l1.106 1.107c.492-.858.891-1.908 1.178-3.09l2.723-.002a8.54 8.54 0 0 1-3.734 3.26l.225.223l.125.14c.22.296.345.625.378.953A10 10 0 0 0 22.027 12c0-5.524-4.478-10.002-10.001-10.002m-2.712 9.05a3.38 3.38 0 1 1-4.78 4.78a3.38 3.38 0 0 1 4.78-4.78M16.932 10l3.358-.001l.008.03c.15.633.23 1.292.23 1.97a8.5 8.5 0 0 1-.545 3l-3.174.002c.143-.95.218-1.958.218-3.001q0-1.028-.095-2m-1.787-5.911l.023.008A8.53 8.53 0 0 1 19.776 8.5h-3.049c-.313-1.753-.86-3.278-1.582-4.41\\\"\\n />\\n </symbol>\\n <symbol id=\\\"gpt\\\" viewBox=\\\"0 0 48 48\\\">\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"M18.38 27.94v-14.4l11.19-6.46c6.2-3.58 17.3 5.25 12.64 13.33\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m18.38 20.94 12.47-7.2 11.19 6.46c6.2 3.58 4.1 17.61-5.23 17.61\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m24.44 17.44 12.47 7.2v12.93c0 7.16-13.2 12.36-17.86 4.28\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"M30.5 21.2v14.14L19.31 41.8c-6.2 3.58-17.3-5.25-12.64-13.33\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m30.5 27.94-12.47 7.2-11.19-6.46c-6.21-3.59-4.11-17.61 5.22-17.61\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m24.44 31.44-12.47-7.2V11.31c0-7.16 13.2-12.36 17.86-4.28\\\"\\n />\\n </symbol>\\n <symbol id=\\\"history\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a7.5 7.5 0 1 1-7.419 6.392c.067-.454-.265-.892-.724-.892a.75.75 0 0 0-.752.623A9 9 0 1 0 6 5.292V4.25a.75.75 0 0 0-1.5 0v3c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H6.9a7.47 7.47 0 0 1 5.1-2m.5 3.25a.75.75 0 0 0-1.5 0v4.5c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H12.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"home_checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.45 2.532a2.25 2.25 0 0 0-2.9 0L3.8 8.224a2.25 2.25 0 0 0-.8 1.72v9.31c0 .966.784 1.75 1.75 1.75h14.5a1.75 1.75 0 0 0 1.75-1.75v-9.31a2.25 2.25 0 0 0-.8-1.72zm-1.933 1.147a.75.75 0 0 1 .966 0l6.75 5.692a.75.75 0 0 1 .267.573v9.31a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25v-9.31a.75.75 0 0 1 .267-.573zm4.267 7.601a.75.75 0 1 0-1.061-1.06l-3.973 3.973-1.47-1.47a.75.75 0 1 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"hourglass_quarter\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.884 17.15A3.24 3.24 0 0 1 7.92 16h8.16a3.24 3.24 0 0 1 1.42 2.65v.6a.25.25 0 0 1-.25.25H6.75a.25.25 0 0 1-.25-.25v-.6a3.24 3.24 0 0 1 .384-1.5M6.75 2A2.75 2.75 0 0 0 4 4.75v.42a5.75 5.75 0 0 0 2.792 4.93l1.81 1.086a.75.75 0 0 1 .036 1.263l-2.121 1.443A5.75 5.75 0 0 0 4 18.647v.603A2.75 2.75 0 0 0 6.75 22h10.5A2.75 2.75 0 0 0 20 19.25v-.604a5.75 5.75 0 0 0-2.517-4.754l-2.121-1.443a.75.75 0 0 1 .036-1.263l1.81-1.086A5.75 5.75 0 0 0 20 5.17v-.42A2.75 2.75 0 0 0 17.25 2zM5.5 4.75c0-.69.56-1.25 1.25-1.25h10.5c.69 0 1.25.56 1.25 1.25v.42a4.25 4.25 0 0 1-2.063 3.643L14.627 9.9c-1.41.845-1.467 2.866-.108 3.79l2.12 1.442a4.25 4.25 0 0 1 1.861 3.515v.603c0 .69-.56 1.25-1.25 1.25H6.75c-.69 0-1.25-.56-1.25-1.25v-.604a4.25 4.25 0 0 1 1.86-3.514l2.121-1.442c1.359-.924 1.302-2.945-.107-3.79l-1.81-1.087A4.25 4.25 0 0 1 5.5 5.17z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"id\\\" viewBox=\\\"0 0 32 32\\\">\\n <g fill=\\\"currentColor\\\">\\n <path\\n d=\\\"M13.006 9.163c0-.76.616-1.375 1.375-1.375h3.305c4.551 0 8.278 3.637 8.278 8.17 0 4.531-3.727 8.169-8.278 8.169H14.38c-.76 0-1.375-.616-1.375-1.375zm2.75 12.089c0 .069.056.125.125.125h1.805c3.074 0 5.528-2.447 5.528-5.42s-2.454-5.42-5.528-5.42H15.88a.125.125 0 0 0-.125.126zM9.385 7.89a1.374 1.374 0 0 1 1.377 1.373l.014 13.385a1.375 1.375 0 0 1-2.75.003L8.012 9.266a1.375 1.375 0 0 1 1.373-1.377\\\"\\n />\\n <path\\n d=\\\"M6 1a5 5 0 0 0-5 5v20a5 5 0 0 0 5 5h20a5 5 0 0 0 5-5V6a5 5 0 0 0-5-5zM3 6a3 3 0 0 1 3-3h20a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3z\\\"\\n />\\n </g>\\n </symbol>\\n <symbol id=\\\"id_card\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18 13a1 1 0 0 1 1-1h6a1 1 0 0 1 0 2h-6a1 1 0 0 1-1-1m1 4a1 1 0 1 0 0 2h6a1 1 0 0 0 0-2zm-6-4a2 2 0 1 1-4 0a2 2 0 0 1 4 0m-6 4.5A1.5 1.5 0 0 1 8.5 16h5a1.5 1.5 0 0 1 1.5 1.5s0 3.5-4 3.5s-4-3.5-4-3.5M2 7.25A3.25 3.25 0 0 1 5.25 4h21.5A3.25 3.25 0 0 1 30 7.25v17.5A3.25 3.25 0 0 1 26.75 28H5.25A3.25 3.25 0 0 1 2 24.75zM5.25 6C4.56 6 4 6.56 4 7.25v17.5c0 .69.56 1.25 1.25 1.25h21.5c.69 0 1.25-.56 1.25-1.25V7.25C28 6.56 27.44 6 26.75 6z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm.58 16.401-5.805-5.686a.75.75 0 0 0-.966-.071l-.084.07-5.807 5.687q.274.097.582.099h11.5c.203 0 .399-.035.58-.099l-5.805-5.686zM17.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v11.5q.001.313.103.594l5.823-5.701a2.25 2.25 0 0 1 3.02-.116l.128.116 5.822 5.702q.102-.28.104-.595V6.25a1.75 1.75 0 0 0-1.75-1.75m-2.498 2a2.252 2.252 0 1 1 0 4.504 2.252 2.252 0 0 1 0-4.504m0 1.5a.752.752 0 1 0 0 1.504.752.752 0 0 0 0-1.504\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image_library\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.748 8.996a1.248 1.248 0 1 0 0-2.496 1.248 1.248 0 0 0 0 2.496M6.25 3A3.25 3.25 0 0 0 3 6.25v9a3.25 3.25 0 0 0 3.25 3.25h9a3.25 3.25 0 0 0 3.25-3.25v-9A3.25 3.25 0 0 0 15.25 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h9c.966 0 1.75.784 1.75 1.75v9c0 .231-.045.452-.126.654l-4.587-4.291a2.25 2.25 0 0 0-3.074 0l-4.587 4.29a1.8 1.8 0 0 1-.126-.653zm6.762 6.458 4.505 4.214q-.246.076-.517.078h-9q-.271 0-.517-.078l4.504-4.214a.75.75 0 0 1 1.025 0M8.75 21a3.25 3.25 0 0 1-2.74-1.5h9.74a3.75 3.75 0 0 0 3.75-3.75V6.011a3.25 3.25 0 0 1 1.5 2.74v7A5.25 5.25 0 0 1 15.75 21z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image_search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21 6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v4.507a5.5 5.5 0 0 1 1.5-.882V6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5q-.002.315-.104.595l-5.822-5.702-.128-.116a2.25 2.25 0 0 0-2.243-.38c.259.425.461.889.598 1.38a.75.75 0 0 1 .724.188L18.33 19.4a1.8 1.8 0 0 1-.581.099h-4.775l.512.513c.278.277.443.626.495.987h3.768A3.25 3.25 0 0 0 21 17.75zm-3.496 2.502a2.252 2.252 0 1 0-4.504 0 2.252 2.252 0 0 0 4.504 0m-3.004 0a.752.752 0 1 1 1.504 0 .752.752 0 0 1-1.504 0M9.95 17.89a4.5 4.5 0 1 0-1.145.976l2.915 2.915a.75.75 0 1 0 1.06-1.06zM6.5 18a3 3 0 1 1 0-6 3 3 0 0 1 0 6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"import\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21.25 4.5a.75.75 0 0 1 .743.648L22 5.25v13.004a.75.75 0 0 1-1.493.102l-.007-.102V5.25a.75.75 0 0 1 .75-.75m-8.603 1.804.072-.084a.75.75 0 0 1 .977-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.997 5.003a.75.75 0 0 1-1.133-.976l.072-.084 3.711-3.717H2.75a.75.75 0 0 1-.743-.647L2 11.755a.75.75 0 0 1 .648-.743l.102-.007 13.693-.001-3.724-3.724a.75.75 0 0 1-.072-.976l.072-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"info\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998m0 1.5a8.502 8.502 0 1 0 0 17.003 8.502 8.502 0 0 0 0-17.003m-.004 7a.75.75 0 0 1 .744.648l.007.102.004 5.502a.75.75 0 0 1-1.494.102l-.006-.101-.004-5.502a.75.75 0 0 1 .75-.75m.005-3.497a.999.999 0 1 1 0 1.997.999.999 0 0 1 0-1.997\\\"\\n />\\n </symbol>\\n <symbol id=\\\"iot\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19 4.492a2.5 2.5 0 0 1-3.012 2.448l-1.28 2.117A4 4 0 0 1 16 12.06l1.296.26a2.5 2.5 0 1 1-.279 1.475l-1.319-.266a4 4 0 0 1-1.744 1.964l.495 1.511h.051a2.5 2.5 0 1 1-1.472.479l-.497-1.516a4 4 0 0 1-3.752-1.593l-1.794.848q.015.138.015.28a2.5 2.5 0 1 1-.623-1.652l1.754-.829a4 4 0 0 1 .784-3.566l-.991-1.13a2.5 2.5 0 1 1 1.164-.948l.982 1.12A4 4 0 0 1 12 8.001c.505 0 .989.093 1.434.264l1.245-2.06A2.5 2.5 0 1 1 19 4.492m-1.5 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0M7 7.001a1 1 0 1 0 0-2 1 1 0 0 0 0 2m5 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5m-6.5 1a1 1 0 1 0-2 0 1 1 0 0 0 2 0m10 4.002a1 1 0 1 0-2 0 1 1 0 0 0 2 0m4-5.002a1 1 0 1 0 0-2 1 1 0 0 0 0 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"key\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 7a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0M15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.28.28 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45M10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.77 1.77 0 0 0 .486-1.564 5 5 0 0 1-.088-.845\\\"\\n />\\n </symbol>\\n <symbol id=\\\"key_multiple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2q.465 0 .908.082a6.5 6.5 0 0 0-1.582 1.483A3.5 3.5 0 0 0 8.62 7.91a.75.75 0 0 1-.194.725L3.5 13.561V16.5h2v-1.75a.75.75 0 0 1 .75-.75H8.5v-1.25a.75.75 0 0 1 .22-.53l1.915-1.915q.336.7.823 1.298L10 13.06v1.689a.75.75 0 0 1-.75.75H7v1.75a.75.75 0 0 1-.75.75h-3.5a.75.75 0 0 1-.75-.75v-4a.75.75 0 0 1 .22-.53l4.855-4.855A5 5 0 0 1 12 2m4.5 1.5a4 4 0 0 0-1.894 7.524.75.75 0 0 1 .394.66v7.734l2.017 1.834 2.123-1.799-.921-.924a.75.75 0 0 1 0-1.058l.967-.971-.967-.97A.75.75 0 0 1 18 15v-3.316a.75.75 0 0 1 .394-.66A4 4 0 0 0 16.5 3.5m-5.5 4a5.5 5.5 0 1 1 8.5 4.61v2.58l1.276 1.28a.75.75 0 0 1 0 1.06l-.967.97.967.97a.75.75 0 0 1-.046 1.102l-3.245 2.75a.75.75 0 0 1-.99-.017l-2.75-2.5a.75.75 0 0 1-.245-.555v-7.64A5.5 5.5 0 0 1 11 7.5m6.5-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"label\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.75 2A2.25 2.25 0 0 1 22 4.25v5.462a3.25 3.25 0 0 1-.952 2.298l-8.5 8.503a3.255 3.255 0 0 1-4.597.001L3.489 16.06a3.25 3.25 0 0 1-.004-4.596l8.5-8.51a3.25 3.25 0 0 1 2.3-.953zm0 1.5h-5.466c-.464 0-.91.185-1.238.513l-8.512 8.523a1.75 1.75 0 0 0 .015 2.462l4.461 4.454a1.755 1.755 0 0 0 2.477 0l8.5-8.503a1.75 1.75 0 0 0 .513-1.237V4.25a.75.75 0 0 0-.75-.75M17 5.502a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"labels\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.5 6.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0m-6.992-3.602A3.25 3.25 0 0 1 12.75 2h5.499A2.75 2.75 0 0 1 21 4.75v4.953a3.25 3.25 0 0 1-.97 2.316l-6.946 6.835a2.25 2.25 0 0 1-3.166-.01l-6.256-6.226a2.25 2.25 0 0 1 .034-3.223zm2.243.602c-.45 0-.883.173-1.208.484L4.73 10.48a.75.75 0 0 0-.011 1.075l6.257 6.226a.75.75 0 0 0 1.055.003l6.945-6.834a1.75 1.75 0 0 0 .523-1.247V4.75c0-.69-.56-1.25-1.25-1.25zm7.98 9.232-1.475 1.451q-.06.082-.134.155l-5.334 5.229a3.25 3.25 0 0 1-4.575-.013L7.282 17.63l-2.411-2.386a1 1 0 0 1-.107-.12l-1.63-1.621a2.75 2.75 0 0 0 .682 2.807l4.356 4.311a4.75 4.75 0 0 0 6.666.016l5.334-5.229a2.75 2.75 0 0 0 .69-2.813 4 4 0 0 1-.131.136\\\"\\n />\\n </symbol>\\n <symbol id=\\\"layer_diagonal_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 7.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 2.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zm-12.8-9.077a2.25 2.25 0 0 1 2.95 1.572L13.05 4a1.6 1.6 0 0 0-.55.332v-.08a.75.75 0 0 0-1.005-.704l-6.84 2.475A1.75 1.75 0 0 0 3.5 7.667v6.082a.75.75 0 0 0 1.005.705L5 14.275v1.595a2.25 2.25 0 0 1-3-2.12V7.666A3.25 3.25 0 0 1 4.144 4.61zm-3.17 5.595 4.346-1.573A1.7 1.7 0 0 0 13 7l.652.214-5.327 1.928a1.25 1.25 0 0 0-.825 1.176v6.432a.75.75 0 0 0 1.005.705l.495-.18v1.596a2.25 2.25 0 0 1-3-2.122v-6.432A2.75 2.75 0 0 1 7.814 7.73m3.67 3.12L15.8 9.288l.201.71c.088.257.24.481.435.655l-4.44 1.607a.75.75 0 0 0-.495.705v6.783a.75.75 0 0 0 1.005.705l7.5-2.714a.75.75 0 0 0 .495-.705v-2.448c.214.276.512.463.96.463.211 0 .389-.042.54-.114v2.1a2.25 2.25 0 0 1-1.484 2.115l-7.5 2.714A2.25 2.25 0 0 1 10 19.749v-6.783a2.25 2.25 0 0 1 1.484-2.116\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lightbulb\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2.001a7.25 7.25 0 0 1 7.25 7.25c0 2.096-.9 4.02-2.663 5.742a.75.75 0 0 0-.175.265l-.032.103-1.13 4.895a2.25 2.25 0 0 1-2.02 1.737l-.173.007h-2.114a2.25 2.25 0 0 1-2.147-1.577l-.045-.167-1.13-4.895a.75.75 0 0 0-.206-.368c-1.68-1.64-2.577-3.463-2.659-5.444l-.006-.298.004-.24A7.25 7.25 0 0 1 12 2.002M14.115 18.5H9.884l.329 1.42a.75.75 0 0 0 .627.573l.103.008h2.114a.75.75 0 0 0 .7-.483l.03-.099zM12 3.501a5.75 5.75 0 0 0-5.746 5.53l-.004.22.007.277c.076 1.563.8 3.02 2.206 4.392.264.258.46.576.571.926l.049.178.455 1.975h4.923l.458-1.976a2.25 2.25 0 0 1 .493-.97l.127-.133c1.404-1.373 2.128-2.828 2.204-4.392l.007-.277-.004-.22A5.75 5.75 0 0 0 12 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"line_horizontal\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2 11.75a.75.75 0 0 1 .75-.75h18.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 7a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 15.5h2.25a.75.75 0 0 1 .11 1.492L9.25 17H7a5 5 0 0 1-.25-9.994L7 7zM17 7a5 5 0 0 1 .25 9.994L17 17h-2.25a.75.75 0 0 1-.11-1.492l.11-.008H17a3.5 3.5 0 0 0 .206-6.994L17 8.5h-2.25a.75.75 0 0 1-.11-1.492L14.75 7zM7 11.25h10a.75.75 0 0 1 .102 1.493L17 12.75H7a.75.75 0 0 1-.102-1.493zh10z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 5a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 13.5h2.25a.75.75 0 0 1 .11 1.492L9.25 15H7a5 5 0 0 1-.25-9.994L7 5zM17 5a5 5 0 0 1 4.43 7.322 6.5 6.5 0 0 0-1.294-.765 3.5 3.5 0 0 0-2.93-5.05L17 6.499h-2.25a.75.75 0 0 1-.11-1.492L14.75 5zM7 9.25h10a.75.75 0 0 1 .102 1.493L17 10.75H7a.75.75 0 0 1-.102-1.493zm16 8.25a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L18.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L17.5 16.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.25 3A3.25 3.25 0 0 0 3 6.25v6a3.25 3.25 0 0 0 3.25 3.25H7.5V14H6.25a1.75 1.75 0 0 1-1.75-1.75v-6c0-.966.784-1.75 1.75-1.75h6c.966 0 1.75.784 1.75 1.75v6A1.75 1.75 0 0 1 12.25 14H11v1.5h1.25a3.25 3.25 0 0 0 3.25-3.25v-6A3.25 3.25 0 0 0 12.25 3zM10 11.75c0-.966.784-1.75 1.75-1.75h1.248V8.5H11.75a3.25 3.25 0 0 0-3.25 3.25v6A3.25 3.25 0 0 0 11.75 21h6A3.25 3.25 0 0 0 21 17.75v-6a3.25 3.25 0 0 0-3.25-3.25H16.5V10h1.25c.966 0 1.75.784 1.75 1.75v6a1.75 1.75 0 0 1-1.75 1.75h-6A1.75 1.75 0 0 1 10 17.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"list_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm0 3.75a.75.75 0 1 0 0 1.5h5.5a.75.75 0 1 0 0-1.5zm-.75 4.5a.75.75 0 0 1 .75-.75h5.5a.75.75 0 1 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M8.75 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0m-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"location_on\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.843 4.568a8.707 8.707 0 0 1 12.314 12.314l-1.187 1.174q-1.312 1.287-3.406 3.312a2.25 2.25 0 0 1-3.128 0l-3.491-3.396q-.659-.646-1.102-1.09a8.707 8.707 0 0 1 0-12.314m11.253 1.06A7.207 7.207 0 1 0 6.903 15.822l1.488 1.468q1.228 1.201 3.088 3a.75.75 0 0 0 1.042 0l3.395-3.3q.705-.691 1.18-1.168a7.207 7.207 0 0 0 0-10.192M12 7.999a3.002 3.002 0 1 1 0 6.004A3.002 3.002 0 0 1 12 8m0 1.5a1.502 1.502 0 1 0 0 3.004 1.502 1.502 0 0 0 0-3.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"location_searching\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2a.75.75 0 0 1 .743.648l.007.102v1.788a7.5 7.5 0 0 1 6.713 6.714l.037-.002h1.75a.75.75 0 0 1 .102 1.493l-.102.007-1.788-.001a7.5 7.5 0 0 1-6.714 6.714l.002.037v1.75a.75.75 0 0 1-1.493.102l-.007-.102.001-1.788a7.5 7.5 0 0 1-6.714-6.714l-.037.002H2.75a.75.75 0 0 1-.102-1.493l.102-.007h1.788a7.5 7.5 0 0 1 6.714-6.713L11.25 4.5V2.75A.75.75 0 0 1 12 2m0 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12m0 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 15.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M8 6a4 4 0 1 1 8 0v1h.75A3.25 3.25 0 0 1 20 10.25v7.5A3.25 3.25 0 0 1 16.75 21h-9.5A3.25 3.25 0 0 1 4 17.75v-7.5A3.25 3.25 0 0 1 7.25 7H8zm4-2.5A2.5 2.5 0 0 0 9.5 6v1h5V6A2.5 2.5 0 0 0 12 3.5m-4.75 5a1.75 1.75 0 0 0-1.75 1.75v7.5c0 .966.784 1.75 1.75 1.75h9.5a1.75 1.75 0 0 0 1.75-1.75v-7.5a1.75 1.75 0 0 0-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lock_open\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16 5a2.5 2.5 0 0 1 5 0v.25a.75.75 0 0 0 1.5 0V5a4 4 0 0 0-8 0v2H7.25A3.25 3.25 0 0 0 4 10.25v7.5A3.25 3.25 0 0 0 7.25 21h9.5A3.25 3.25 0 0 0 20 17.75v-7.5A3.25 3.25 0 0 0 16.75 7H16zM7.25 8.5h9.5c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-9.5a1.75 1.75 0 0 1-1.75-1.75v-7.5c0-.966.784-1.75 1.75-1.75m4.75 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"login\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M26 30H14a2 2 0 0 1-2-2v-3h2v3h12V4H14v3h-2V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v24a2 2 0 0 1-2 2\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.59 20.59 18.17 17H4v-2h14.17l-3.58-3.59L16 10l6 6-6 6z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"logout\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.502 11.5a1.002 1.002 0 1 1 0 2.004 1.002 1.002 0 0 1 0-2.005M12 4.353v6.65h7.442L17.72 9.28a.75.75 0 0 1-.073-.977l.073-.084a.75.75 0 0 1 .976-.072l.084.072 2.997 2.998a.75.75 0 0 1 .073.976l-.073.084-2.996 3.003a.75.75 0 0 1-1.134-.975l.072-.084 1.713-1.717h-7.431L12 19.25a.75.75 0 0 1-.88.738l-8.5-1.501a.75.75 0 0 1-.62-.739V5.75a.75.75 0 0 1 .628-.74l8.5-1.396a.75.75 0 0 1 .872.74m-1.5.883-7 1.15v10.732l7 1.236zM13 18.5h.765l.102-.007a.75.75 0 0 0 .648-.744l-.007-4.25H13zm.002-8.5L13 8.725V5h.745a.75.75 0 0 1 .743.647l.007.101.007 4.252z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mail\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.25 4h13.5a3.25 3.25 0 0 1 3.245 3.066L22 7.25v9.5a3.25 3.25 0 0 1-3.066 3.245L18.75 20H5.25a3.25 3.25 0 0 1-3.245-3.066L2 16.75v-9.5a3.25 3.25 0 0 1 3.066-3.245zh13.5zM20.5 9.373l-8.15 4.29a.75.75 0 0 1-.603.043l-.096-.042L3.5 9.374v7.376a1.75 1.75 0 0 0 1.606 1.744l.144.006h13.5a1.75 1.75 0 0 0 1.744-1.607l.006-.143zM18.75 5.5H5.25a1.75 1.75 0 0 0-1.744 1.606L3.5 7.25v.429l8.5 4.474 8.5-4.475V7.25a1.75 1.75 0 0 0-1.607-1.744z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"map\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m9.203 4 .047-.002.046.001.068.007.016.004q.129.02.25.092l.053.034 5.07 3.565L19.82 4.14a.75.75 0 0 1 1.174.51l.007.104v10.632a.75.75 0 0 1-.238.548l-.08.066-5.5 3.866a.74.74 0 0 1-.828.023L9.25 16.297l-5.07 3.565a.75.75 0 0 1-1.174-.51l-.007-.104V8.616a.75.75 0 0 1 .238-.548l.08-.066 5.5-3.866a.8.8 0 0 1 .2-.101l.123-.028zm10.298 2.197-4 2.812v8.799l4-2.812zM8.5 6.193l-4 2.812v8.8l4-2.813zm1.502 0v8.8l4 2.811V9.005z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mic\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 11a.75.75 0 0 1 .743.648l.007.102v.5a6.75 6.75 0 0 1-6.249 6.732l-.001 2.268a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L5 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004h.5a5.25 5.25 0 0 0 5.246-5.034l.004-.216v-.5a.75.75 0 0 1 .75-.75M12 2a4 4 0 0 1 4 4v6a4 4 0 0 1-8 0V6a4 4 0 0 1 4-4m0 1.5A2.5 2.5 0 0 0 9.5 6v6a2.5 2.5 0 0 0 5 0V6A2.5 2.5 0 0 0 12 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mic_record\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11 17.5c0 1.096.271 2.129.75 3.035v.715a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L4 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004zm.175-1.504A6.51 6.51 0 0 1 15 11.498V6a4 4 0 0 0-8 0v6a4 4 0 0 0 4.175 3.996M20 17.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0m3 0a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-9.5 0a4 4 0 1 0 8 0 4 4 0 0 0-8 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"microchip_ai\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n fill-rule=\\\"evenodd\\\"\\n d=\\\"M8.75 4a.75.75 0 0 0-1.5 0v1.25H7A1.75 1.75 0 0 0 5.25 7v.25H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25V17c0 .966.784 1.75 1.75 1.75h.25V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25H17A1.75 1.75 0 0 0 18.75 17v-.25H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25V7A1.75 1.75 0 0 0 17 5.25h-.25V4a.75.75 0 0 0-1.5 0v1.25h-2.5V4a.75.75 0 0 0-1.5 0v1.25h-2.5zm-2 3A.25.25 0 0 1 7 6.75h10a.25.25 0 0 1 .25.25v10a.25.25 0 0 1-.25.25H7a.25.25 0 0 1-.25-.25zm5.049 7.753-.275-.772H9.497l-.275.772a.75.75 0 0 1-1.413-.504l1.7-4.77.003-.009.004-.01c.152-.392.516-.711.994-.711.479 0 .842.319.995.712l.003.009.004.01 1.7 4.77a.75.75 0 0 1-1.413.503m-1.289-3.615.479 1.343h-.958zm3.74-1.64a.75.75 0 0 1 1.5 0v5.003a.75.75 0 1 1-1.5 0z\\\"\\n clip-rule=\\\"evenodd\\\"\\n />\\n </symbol>\\n <symbol id=\\\"microsoft\\\" viewBox=\\\"0 0 21 21\\\">\\n <path fill=\\\"#f25022\\\" d=\\\"M1 1h9v9H1z\\\" />\\n <path fill=\\\"#00a4ef\\\" d=\\\"M1 11h9v9H1z\\\" />\\n <path fill=\\\"#7fba00\\\" d=\\\"M11 1h9v9h-9z\\\" />\\n <path fill=\\\"#ffb900\\\" d=\\\"M11 11h9v9h-9z\\\" />\\n </symbol>\\n <symbol id=\\\"moon\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20.026 17.001c-2.762 4.784-8.879 6.423-13.663 3.661A10 10 0 0 1 3.13 17.68a.75.75 0 0 1 .365-1.132c3.767-1.348 5.785-2.91 6.956-5.146 1.233-2.353 1.551-4.93.689-8.463a.75.75 0 0 1 .769-.927 9.96 9.96 0 0 1 4.457 1.327c4.784 2.762 6.423 8.879 3.66 13.662m-8.247-4.903c-1.252 2.389-3.312 4.1-6.818 5.499a8.5 8.5 0 0 0 2.152 1.766 8.502 8.502 0 0 0 8.502-14.725 8.5 8.5 0 0 0-2.792-1.015c.647 3.384.23 6.043-1.045 8.475\\\"\\n />\\n </symbol>\\n <symbol id=\\\"more_horizontal\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.75 12a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0m6 0a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0M18 13.75a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"more_vertical\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 7.75a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5m0 6a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5M10.25 18a1.75 1.75 0 1 0 3.5 0 1.75 1.75 0 0 0-3.5 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"navigation\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.958 2.104c1.213-.467 2.405.725 1.938 1.938L15.36 21.038c-.522 1.36-2.48 1.252-2.85-.156l-1.845-7.011a.75.75 0 0 0-.535-.535l-7.01-1.845c-1.409-.37-1.516-2.328-.157-2.85zm.538 1.4L3.5 10.04l7.011 1.845a2.25 2.25 0 0 1 1.603 1.603l1.845 7.01z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"notification\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.996a7.49 7.49 0 0 1 7.496 7.25l.004.25v4.097l1.38 3.156a1.25 1.25 0 0 1-1.145 1.75L15 18.502a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-4.155 3.352-7.5 7.5-7.5M13.5 18.5l-3 .002a1.5 1.5 0 0 0 2.993.145zM12 3.496c-3.32 0-6 2.674-6 6v4.41L4.656 17h14.697L18 13.907V9.509l-.003-.225A5.99 5.99 0 0 0 12 3.496\\\"\\n />\\n </symbol>\\n <symbol id=\\\"notification_off\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m5.22 6.28-3-3a.75.75 0 0 1 1.06-1.06l18.5 18.5a.75.75 0 1 1-1.06 1.06l-3.28-3.28-2.44.001a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-1.152.258-2.242.72-3.216M15.94 17 6.364 7.425A6 6 0 0 0 6 9.496v4.41L4.656 17zm-2.44 1.5-3 .001a1.5 1.5 0 0 0 2.993.145zm4.5-4.593.708 1.62 2.188 2.187a1.25 1.25 0 0 0-.016-.965l-1.38-3.156V9.496l-.004-.25A7.49 7.49 0 0 0 12 1.995 7.48 7.48 0 0 0 7.043 3.86l1.064 1.064A5.98 5.98 0 0 1 12 3.496a5.99 5.99 0 0 1 5.997 5.788l.003.225z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"offer-request\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.75 11.5a.75.75 0 0 0-.72.54c.423.275.813.598 1.16.96h5.06a.75.75 0 0 0 0-1.5zM5.5 4v7.076a6.5 6.5 0 0 0-1.5.422V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03.049.04 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2h-6.81a6.5 6.5 0 0 0 1.078-1.5H18a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5m10.75 15h-3.424A6.5 6.5 0 0 0 13 17.5h3.25a.75.75 0 0 1 0 1.5m0-3h-3.424a6.5 6.5 0 0 0-.558-1.5h3.982a.75.75 0 0 1 0 1.5M13.5 4.621V8a.5.5 0 0 0 .5.5h3.378zM6.5 23a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11m3-5a.5.5 0 0 0 0-1H4.707l1.647-1.646a.5.5 0 0 0-.708-.708l-2.5 2.5a.5.5 0 0 0 0 .708l2.5 2.5a.5.5 0 0 0 .708-.708L4.707 18z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"parent_child\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h11v4H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H9v-4h14v4h-3a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-3v-4a2 2 0 0 0-2-2h-6v-4ZM12 28H4v-4h8Zm16 0h-8v-4h8ZM4 4h24v6H4Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"people_community\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.5 3.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M4.5 5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-.732 4C2.79 9 2 9.791 2 10.768v.36c0 .207 0 1.408.7 2.575.548.91 1.477 1.727 2.975 2.093a2.78 2.78 0 0 1 1.062-1.335c-1.603-.171-2.361-.883-2.75-1.53-.484-.806-.487-1.664-.487-1.806v-.357c0-.148.12-.268.268-.268H8.03A4 4 0 0 1 8.535 9zm11.697 0c.261.452.437.959.504 1.5h4.263c.148 0 .268.12.268.268v.357c0 .142-.003 1-.487 1.805-.389.648-1.147 1.36-2.75 1.531.48.32.856.786 1.062 1.335 1.498-.366 2.427-1.183 2.974-2.093.701-1.167.701-2.367.701-2.576v-.36C22 9.792 21.209 9 20.232 9zM15 5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0m1.5-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6M12 9.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M9 11a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-2.5 5.768C6.5 15.79 7.291 15 8.268 15h7.464c.977 0 1.768.791 1.768 1.768v.36c0 .207 0 1.408-.7 2.575C16.057 20.937 14.613 22 12 22s-4.058-1.063-4.8-2.297c-.7-1.167-.7-2.367-.7-2.576zm1.768-.268a.27.27 0 0 0-.268.268v.357c0 .142.003 1 .487 1.805.446.743 1.377 1.57 3.513 1.57s3.067-.827 3.513-1.57c.484-.805.487-1.663.487-1.805v-.357a.27.27 0 0 0-.268-.268z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"person_swap\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.75 13.997c.981 0 1.815.628 2.123 1.503h-2.056l-.066-.003H4.249a.75.75 0 0 0-.749.75v.577c0 .535.191 1.054.539 1.46 1.253 1.469 3.22 2.214 5.957 2.214h.168c.086.183.203.352.35.498l.934.933a15 15 0 0 1-1.452.07c-3.145 0-5.531-.906-7.098-2.74A3.75 3.75 0 0 1 2 16.824v-.578a2.25 2.25 0 0 1 2.249-2.249zM9.997 2.002a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7m4.784 14.282a.75.75 0 0 0-1.06-1.06l-2.5 2.5a.75.75 0 0 0 0 1.06l2.5 2.5a.75.75 0 0 0 1.06-1.061l-1.22-1.22h6.88l-1.22 1.22a.75.75 0 0 0 1.06 1.06l2.5-2.498a.75.75 0 0 0 0-1.06l-2.5-2.502a.75.75 0 1 0-1.06 1.06l1.218 1.22h-6.877z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"phone\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.75 2A2.25 2.25 0 0 1 18 4.25v15.5A2.25 2.25 0 0 1 15.75 22h-7.5A2.25 2.25 0 0 1 6 19.75V4.25A2.25 2.25 0 0 1 8.25 2zm0 1.5h-7.5a.75.75 0 0 0-.75.75v15.5c0 .414.336.75.75.75h7.5a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75m-2.501 14a.75.75 0 0 1 .002 1.5l-2.5.004a.75.75 0 0 1-.002-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"question\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4a5 5 0 0 0-5 5 1 1 0 0 0 2 0c0-1.658 1.342-3 3-3s3 1.342 3 3c0 .816-.199 1.294-.438 1.629-.262.365-.625.638-1.128.985l-.116.078c-.447.306-1.023.699-1.469 1.247-.527.648-.849 1.467-.849 2.561v.5a1 1 0 1 0 2 0v-.5c0-.656.178-1.024.4-1.299.257-.314.603-.552 1.114-.903l.053-.037c.496-.34 1.133-.786 1.62-1.468C16.7 11.081 17 10.183 17 9a5 5 0 0 0-5-5m0 17.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"question_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667M12 15.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2m0-8.75a2.75 2.75 0 0 1 2.75 2.75c0 1.01-.297 1.574-1.051 2.359l-.169.171c-.622.622-.78.886-.78 1.47a.75.75 0 0 1-1.5 0c0-1.01.297-1.574 1.051-2.359l.169-.171c.622-.622.78-.886.78-1.47a1.25 1.25 0 0 0-2.493-.128l-.007.128a.75.75 0 0 1-1.5 0A2.75 2.75 0 0 1 12 6.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"radio_button\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 22.002c5.524 0 10.002-4.478 10.002-10.001 0-5.524-4.478-10.002-10.002-10.002S1.998 6.477 1.998 12.001c0 5.523 4.478 10.001 10.002 10.001m0-1.5A8.502 8.502 0 1 1 12 3.5a8.502 8.502 0 0 1 0 17.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"radio_button_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.999c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10.001-10.002 10.001S1.998 17.524 1.998 12.001C1.998 6.477 6.476 1.999 12 1.999m0 1.5a8.502 8.502 0 1 0 0 17.003A8.502 8.502 0 0 0 12 3.5M11.996 6a5.998 5.998 0 1 1 0 11.996 5.998 5.998 0 0 1 0-11.996\\\"\\n />\\n </symbol>\\n <symbol id=\\\"record_stop\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14m-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0m5-2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"rocket\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.057 7.43a2.5 2.5 0 1 1 3.536 3.536 2.5 2.5 0 0 1-3.536-3.535m2.475 1.061a1 1 0 1 0-1.414 1.415 1 1 0 0 0 1.414-1.415m5.977-4.169a2.75 2.75 0 0 0-1.811-1.81l-.663-.206a6.75 6.75 0 0 0-6.773 1.674l-.996.996a3.5 3.5 0 0 0-4.57.327L5.455 6.545a.75.75 0 0 0 0 1.06l1.591 1.592-.18.18a1.75 1.75 0 0 0 0 2.474l.496.496-1.396.796a.75.75 0 0 0-.158 1.181l3.889 3.89a.75.75 0 0 0 1.181-.158l.798-1.395.497.497a1.75 1.75 0 0 0 2.475 0l.177-.177 1.59 1.59a.75.75 0 0 0 1.06 0l1.242-1.243a3.5 3.5 0 0 0 .328-4.567l.998-.998a6.75 6.75 0 0 0 1.673-6.777zm-2.256-.378c.393.122.701.43.823.823l.207.665a5.25 5.25 0 0 1-1.302 5.27l-5.395 5.395a.25.25 0 0 1-.353 0l-5.307-5.306a.25.25 0 0 1 0-.354l5.397-5.396a5.25 5.25 0 0 1 5.268-1.302zm-1.289 9.897c.453.766.35 1.769-.308 2.427l-.712.712-1.06-1.06zM7.758 6.363a2 2 0 0 1 2.428-.307l-2.08 2.08-1.06-1.06zm2.818 9.199-.514.897-2.5-2.5.898-.513zM6.69 18.394a.75.75 0 0 0-1.06-1.06l-2.476 2.474a.75.75 0 0 0 1.061 1.061zM4.745 15.39a.75.75 0 0 1 0 1.06l-1.06 1.061a.75.75 0 0 1-1.061-1.06l1.06-1.061a.75.75 0 0 1 1.061 0m3.887 4.952a.75.75 0 1 0-1.06-1.06L6.513 20.34a.75.75 0 0 0 1.06 1.06z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"save\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A2.75 2.75 0 0 1 5.75 3h9.965a3.25 3.25 0 0 1 2.298.952l2.035 2.035c.61.61.952 1.437.952 2.299v9.964A2.75 2.75 0 0 1 18.25 21H5.75A2.75 2.75 0 0 1 3 18.25zM5.75 4.5c-.69 0-1.25.56-1.25 1.25v12.5c0 .69.56 1.25 1.25 1.25H6v-5.25A2.25 2.25 0 0 1 8.25 12h7.5A2.25 2.25 0 0 1 18 14.25v5.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238l-2.035-2.035a1.75 1.75 0 0 0-.952-.49V7.25a2.25 2.25 0 0 1-2.25 2.25h-4.5A2.25 2.25 0 0 1 7 7.25V4.5zm10.75 15v-5.25a.75.75 0 0 0-.75-.75h-7.5a.75.75 0 0 0-.75.75v5.25zm-8-15v2.75c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75V4.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"save_all\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.75 18A2.75 2.75 0 0 1 3 15.25v-9.5A2.75 2.75 0 0 1 5.75 3h6.964a3.25 3.25 0 0 1 2.299.952l2.035 2.035c.61.61.952 1.437.952 2.299v6.964A2.75 2.75 0 0 1 15.25 18zM4.5 5.75v9.5c0 .69.56 1.25 1.25 1.25H6v-3.25A2.25 2.25 0 0 1 8.25 11h4.5A2.25 2.25 0 0 1 15 13.25v3.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238L14 5.061V6.25a2.25 2.25 0 0 1-2.25 2.25h-2.5A2.25 2.25 0 0 1 7 6.25V4.5H5.75c-.69 0-1.25.56-1.25 1.25m9 10.75v-3.25a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0-.75.75v3.25zm-5-10.25c0 .414.336.75.75.75h2.5a.75.75 0 0 0 .75-.75V4.5h-4zM10.75 21a4.74 4.74 0 0 1-3.464-1.5h8.964a3.25 3.25 0 0 0 3.25-3.25V8.44l.548.548c.61.609.952 1.436.952 2.298v4.964A4.75 4.75 0 0 1 16.25 21z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"scan_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.25 3.5A1.75 1.75 0 0 0 3.5 5.25v3a.75.75 0 0 1-1.5 0v-3A3.25 3.25 0 0 1 5.25 2h3a.75.75 0 0 1 0 1.5zm0 17a1.75 1.75 0 0 1-1.75-1.75v-3a.75.75 0 0 0-1.5 0v3A3.25 3.25 0 0 0 5.25 22h3a.75.75 0 0 0 0-1.5zM20.5 5.25a1.75 1.75 0 0 0-1.75-1.75h-3a.75.75 0 0 1 0-1.5h3A3.25 3.25 0 0 1 22 5.25v3a.75.75 0 0 1-1.5 0zM18.75 20.5a1.75 1.75 0 0 0 1.75-1.75v-3a.75.75 0 0 1 1.5 0v3A3.25 3.25 0 0 1 18.75 22h-3a.75.75 0 0 1 0-1.5zM7.75 7a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 15a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"screen\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.75 4A2.75 2.75 0 0 0 2 6.75v8.5A2.75 2.75 0 0 0 4.75 18h14.5A2.75 2.75 0 0 0 22 15.25v-8.5A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v8.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25zM5.75 19.5a.75.75 0 0 0 0 1.5h12.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 10a5.5 5.5 0 1 1 11 0 5.5 5.5 0 0 1-11 0M10 3a7 7 0 1 0 4.391 12.452l5.329 5.328a.75.75 0 1 0 1.06-1.06l-5.328-5.329A7 7 0 0 0 10 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"send\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.694 12 2.299 3.272a.75.75 0 0 1 .942-.982l.093.039 18 9a.75.75 0 0 1 .097 1.284l-.097.058-18 9c-.583.291-1.217-.245-1.065-.848l.03-.095zL2.299 3.272zM4.402 4.54l2.61 6.71h6.627a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.743l-.101.007H7.01l-2.609 6.71L19.322 12z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"settings\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.012 2.25c.734.008 1.465.093 2.182.253a.75.75 0 0 1 .582.649l.17 1.527a1.384 1.384 0 0 0 1.927 1.116l1.4-.615a.75.75 0 0 1 .85.174 9.8 9.8 0 0 1 2.205 3.792.75.75 0 0 1-.272.825l-1.241.916a1.38 1.38 0 0 0 0 2.226l1.243.915a.75.75 0 0 1 .272.826 9.8 9.8 0 0 1-2.204 3.792.75.75 0 0 1-.849.175l-1.406-.617a1.38 1.38 0 0 0-1.926 1.114l-.17 1.526a.75.75 0 0 1-.571.647 9.5 9.5 0 0 1-4.406 0 .75.75 0 0 1-.572-.647l-.169-1.524a1.382 1.382 0 0 0-1.925-1.11l-1.406.616a.75.75 0 0 1-.85-.175 9.8 9.8 0 0 1-2.203-3.796.75.75 0 0 1 .272-.826l1.243-.916a1.38 1.38 0 0 0 0-2.226l-1.243-.914a.75.75 0 0 1-.272-.826 9.8 9.8 0 0 1 2.205-3.792.75.75 0 0 1 .85-.174l1.4.615a1.387 1.387 0 0 0 1.93-1.118l.17-1.526a.75.75 0 0 1 .583-.65q1.074-.238 2.201-.252m0 1.5a9 9 0 0 0-1.354.117l-.11.977A2.886 2.886 0 0 1 6.526 7.17l-.899-.394A8.3 8.3 0 0 0 4.28 9.092l.797.587a2.88 2.88 0 0 1 .001 4.643l-.799.588c.32.842.776 1.626 1.348 2.322l.905-.397a2.882 2.882 0 0 1 4.017 2.318l.109.984c.89.15 1.799.15 2.688 0l.11-.984a2.88 2.88 0 0 1 4.018-2.322l.904.396a8.3 8.3 0 0 0 1.348-2.318l-.798-.588a2.88 2.88 0 0 1-.001-4.643l.797-.587a8.3 8.3 0 0 0-1.348-2.317l-.897.393a2.884 2.884 0 0 1-4.023-2.324l-.109-.976a9 9 0 0 0-1.334-.117M12 8.25a3.75 3.75 0 1 1 0 7.5 3.75 3.75 0 0 1 0-7.5m0 1.5a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11zm1.5.728V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.45 2.15C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11V5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0M12 3.678c-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8M9.28 8.222l2.724 2.723 2.725-2.723a.75.75 0 0 1 .975-.073l.084.073a.75.75 0 0 1 .073.975l-.073.084-2.724 2.723 2.724 2.725a.749.749 0 1 1-1.06 1.059l-2.724-2.724-2.723 2.724a.75.75 0 0 1-.975.073l-.084-.073a.75.75 0 0 1-.073-.975l.073-.084 2.723-2.725-2.723-2.723A.75.75 0 0 1 9.28 8.22\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11q0 .271-.012.539a3.5 3.5 0 0 0-1.488-.894V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442a21 21 0 0 0 1-.439V21.5q0 .075.004.146-.356.155-.73.302a.75.75 0 0 1-.549 0C5.958 19.676 3 16 3 11zM16 15v-1a2.5 2.5 0 0 1 5 0v1h.5a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-1.5 1.5h-6a1.5 1.5 0 0 1-1.5-1.5v-5a1.5 1.5 0 0 1 1.5-1.5zm1.5-1v1h2v-1a1 1 0 1 0-2 0m2 5a1 1 0 1 0-2 0 1 1 0 0 0 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_person\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 9.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4m0 5c2.5 0 3.5-1.255 3.5-2.5a1.5 1.5 0 0 0-1.5-1.5H8A1.5 1.5 0 0 0 6.5 12c0 1.25 1 2.5 3.5 2.5m.277-12.416a.5.5 0 0 0-.554 0 15.05 15.05 0 0 1-6.294 2.421A.5.5 0 0 0 3 5v4.5c0 3.891 2.307 6.73 6.82 8.467a.5.5 0 0 0 .36 0C14.693 16.23 17 13.39 17 9.5V5a.5.5 0 0 0-.43-.495 15.05 15.05 0 0 1-6.293-2.421M4 5.428a16 16 0 0 0 5.6-2.082l.4-.249.4.249A16 16 0 0 0 16 5.428V9.5c0 3.392-1.968 5.863-6 7.463-4.032-1.6-6-4.071-6-7.463z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_activity\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.314 3.527a.75.75 0 1 0-.12-1.495C6.049 2.442 2 6.748 2 12c0 5.523 4.477 10 10 10 5.249 0 9.553-4.044 9.967-9.186a.75.75 0 1 0-1.495-.12 8.5 8.5 0 1 1-9.158-9.167m6.383 1.147a.75.75 0 0 1 1.06-.046q.322.294.616.617a.75.75 0 0 1-1.105 1.013 9 9 0 0 0-.525-.525.75.75 0 0 1-.046-1.06M11.25 6a.75.75 0 0 1 .743.648L12 6.75V12h3.25a.75.75 0 0 1 .102 1.493l-.102.007h-4a.75.75 0 0 1-.743-.649l-.007-.101v-6a.75.75 0 0 1 .75-.75m2.531-3.11a.75.75 0 0 1 .925-.52 10 10 0 0 1 1.074.37.75.75 0 1 1-.567 1.388q-.444-.182-.912-.313a.75.75 0 0 1-.52-.925m7.478 5.325a.75.75 0 1 0-1.389.568 8 8 0 0 1 .315.915.75.75 0 1 0 1.444-.405 10 10 0 0 0-.37-1.078\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-5.063a6.5 6.5 0 0 1-.709 1.5h5.772A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v5.772a6.5 6.5 0 0 1 1.5-.709zm8 .5a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5zM12 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-3.146-1.854a.5.5 0 0 0-.708 0L5.5 18.293l-.896-.897a.5.5 0 0 0-.708.708l1.25 1.25a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0 0-.708\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_open\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h3a.75.75 0 0 0 0-1.5h-3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h3a.75.75 0 0 0 0-1.5h-3a1.75 1.75 0 0 1-1.75-1.75zM14.747 3a.75.75 0 0 0 0 1.5h3.003c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-3.003a.75.75 0 0 0 0 1.5h3.003A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM12.5 6.75a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"slide_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.75 8a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5zM6 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M6.75 14a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm-2-10A2.75 2.75 0 0 0 2 6.75v10.5A2.75 2.75 0 0 0 4.75 20h14.5A2.75 2.75 0 0 0 22 17.25V6.75A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v10.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"squalls\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.077 6.884A4.07 4.07 0 0 1 11.973 4C14.174 4 16 5.783 16 8a4 4 0 0 1-4 4H2.75a.75.75 0 0 1 0-1.5H12A2.5 2.5 0 0 0 14.5 8c0-1.373-1.138-2.5-2.527-2.5-1.13 0-2.138.743-2.46 1.815l-.045.15a.75.75 0 1 1-1.436-.43zm8.212 5.129A2.94 2.94 0 0 1 19.07 10 2.93 2.93 0 0 1 22 12.93V13a3 3 0 0 1-3 3h-1.3a2.75 2.75 0 0 1-2.45 4h-.135a2.56 2.56 0 0 1-2.285-1.41.75.75 0 0 1 1.34-.673c.18.357.545.583.945.583h.135a1.25 1.25 0 1 0 0-2.5H2.75a.75.75 0 0 1 0-1.5H19a1.5 1.5 0 0 0 1.5-1.5v-.07c0-.79-.64-1.43-1.43-1.43-.61 0-1.163.4-1.358.987a.75.75 0 0 1-1.424-.474\\\"\\n />\\n </symbol>\\n <symbol id=\\\"star\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88zm1.21.937L9.74 8.614a1.35 1.35 0 0 1-1.016.739l-5.05.734 3.654 3.562c.318.31.463.757.388 1.195l-.862 5.029 4.516-2.375a1.35 1.35 0 0 1 1.257 0l4.516 2.375-.862-5.03a1.35 1.35 0 0 1 .388-1.194l3.654-3.562-5.05-.734a1.35 1.35 0 0 1-1.016-.739z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"star_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"status\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"#212121\\\"\\n fill-rule=\\\"nonzero\\\"\\n d=\\\"M19.75 4A2.25 2.25 0 0 1 22 6.25v11.5A2.25 2.25 0 0 1 19.75 20H4.25A2.25 2.25 0 0 1 2 17.75V6.25A2.25 2.25 0 0 1 4.25 4Zm0 1.5H4.25a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75\\\"\\n />\\n <path\\n fill=\\\"#212121\\\"\\n d=\\\"M9.42 8.415a.75.75 0 0 0-1.348.014L6.382 12H2.75a.75.75 0 0 0 0 1.5h4.107a.75.75 0 0 0 .678-.43l1.234-2.606 2.56 5.121a.75.75 0 0 0 1.279.104l2.698-3.736 1.13 1.29A.75.75 0 0 0 17 13.5h4.25a.75.75 0 0 0 0-1.5h-3.91l-1.526-1.744a.75.75 0 0 0-1.172.055l-2.525 3.496z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"subtract_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 11.25h-8.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"sun\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 2m0 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10m0-1.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7m9.25-2.75a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zM12 19a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 19m-7.75-6.25a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zm-.03-8.53a.75.75 0 0 1 1.06 0l1.5 1.5a.75.75 0 0 1-1.06 1.06l-1.5-1.5a.75.75 0 0 1 0-1.06m1.06 15.56a.75.75 0 1 1-1.06-1.06l1.5-1.5a.75.75 0 1 1 1.06 1.06zm14.5-15.56a.75.75 0 0 0-1.06 0l-1.5 1.5a.75.75 0 0 0 1.06 1.06l1.5-1.5a.75.75 0 0 0 0-1.06m-1.06 15.56a.75.75 0 1 0 1.06-1.06l-1.5-1.5a.75.75 0 1 0-1.06 1.06z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"sync\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 5.18a.75.75 0 0 0 .142 1.051 7.251 7.251 0 0 1-3.599 12.976l.677-.677a.75.75 0 0 0-.977-1.133l-.084.073-2 2a.75.75 0 0 0-.073.976l.073.084 2 2a.75.75 0 0 0 1.133-.976l-.072-.084-.75-.75a8.75 8.75 0 0 0 4.581-15.68.75.75 0 0 0-1.051.141m-5.72-3.71a.75.75 0 0 0 0 1.06l.75.75a8.75 8.75 0 0 0-4.85 15.47.75.75 0 1 0 .956-1.157 7.251 7.251 0 0 1 3.82-12.8l-.676.677a.75.75 0 1 0 1.061 1.06l2-2a.75.75 0 0 0 0-1.06l-2-2a.75.75 0 0 0-1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"tasks\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.995 4.097A2.25 2.25 0 0 0 17.75 2H6.25l-.154.005A2.25 2.25 0 0 0 4 4.251v15.498l.005.154A2.25 2.25 0 0 0 6.25 22h7.568l-1.5-1.5H6.25l-.102-.007a.75.75 0 0 1-.648-.743V4.251l.007-.102a.75.75 0 0 1 .743-.648h11.5l.102.007a.75.75 0 0 1 .648.743v11.567l1.159-1.159q.16-.16.34-.28V4.25zm-3.707 17.902h-.076a.75.75 0 0 1-.493-.219l-2.5-2.502a.75.75 0 0 1 1.062-1.06l1.969 1.971 4.47-4.47a.75.75 0 1 1 1.06 1.061l-5 5a.75.75 0 0 1-.492.219M13.84 16.5a2 2 0 0 0-.182 0h-2.413a.75.75 0 0 1 0-1.5h5.004a.75.75 0 1 1 0 1.5zM9 7.752a1 1 0 1 1-2 0 1 1 0 0 1 2 0m1.496-.002a.75.75 0 0 1 .75-.75h5.004a.75.75 0 1 1 0 1.5h-5.004a.75.75 0 0 1-.75-.75m.75 3.25a.75.75 0 0 0 0 1.5h5.004a.75.75 0 1 0 0-1.5zM8 12.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2m1 2.998a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"timer\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5a8.5 8.5 0 1 1 0 17 8.5 8.5 0 0 1 0-17m0 1.5a7 7 0 1 0 0 14 7 7 0 0 0 0-14M12 8a.75.75 0 0 1 .743.648l.007.102v4.5a.75.75 0 0 1-1.493.102l-.007-.102v-4.5A.75.75 0 0 1 12 8m7.147-2.886.083.06 1.158.964a.75.75 0 0 1-.877 1.212l-.082-.06-1.159-.964a.75.75 0 0 1 .877-1.212M14.25 2.5a.75.75 0 0 1 .102 1.493L14.25 4h-4.5a.75.75 0 0 1-.102-1.493L9.75 2.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"upload\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 3.51a.75.75 0 1 0 0-1.5l-13-.004a.75.75 0 1 0 0 1.5zm-6.602 18.488.102.007a.75.75 0 0 0 .743-.649l.007-.101-.001-13.685 3.722 3.72a.75.75 0 0 0 .976.073l.085-.073a.75.75 0 0 0 .072-.977l-.073-.084-4.997-4.996a.75.75 0 0 0-.976-.073l-.085.072L6.22 10.23a.75.75 0 0 0 .976 1.134l.084-.073 3.719-3.713L11 21.255c0 .38.282.693.648.743\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.755 14a2.25 2.25 0 0 1 2.248 2.25v.575c0 .894-.32 1.759-.9 2.438-1.57 1.833-3.957 2.738-7.103 2.738s-5.532-.905-7.098-2.74a3.75 3.75 0 0 1-.898-2.434v-.578A2.25 2.25 0 0 1 6.253 14zm0 1.5H6.252a.75.75 0 0 0-.75.75v.577c0 .535.192 1.053.54 1.46 1.253 1.469 3.22 2.214 5.957 2.214 2.739 0 4.706-.745 5.963-2.213a2.25 2.25 0 0 0 .54-1.463v-.576a.75.75 0 0 0-.748-.749M12 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user_multiple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.754 10c.966 0 1.75.784 1.75 1.75v4.749a4.501 4.501 0 0 1-9.002 0V11.75c0-.966.783-1.75 1.75-1.75zm0 1.5H9.252a.25.25 0 0 0-.25.25v4.749a3.001 3.001 0 0 0 6.002 0V11.75a.25.25 0 0 0-.25-.25M3.75 10h3.381a2.74 2.74 0 0 0-.618 1.5H3.75a.25.25 0 0 0-.25.25v3.249a2.5 2.5 0 0 0 3.082 2.433c.085.504.24.985.453 1.432Q6.539 18.999 6 19a4 4 0 0 1-4-4.001V11.75c0-.966.784-1.75 1.75-1.75m13.125 0h3.375c.966 0 1.75.784 1.75 1.75V15a4 4 0 0 1-5.03 3.866c.214-.448.369-.929.455-1.433q.277.066.575.067a2.5 2.5 0 0 0 2.5-2.5v-3.25a.25.25 0 0 0-.25-.25h-2.757a2.74 2.74 0 0 0-.618-1.5M12 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6m6.5 1a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m-13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m6.5.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m6.5 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-13 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user_role\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 14H4.253a2.25 2.25 0 0 0-2.25 2.25v.577c0 .892.32 1.756.9 2.435 1.565 1.834 3.952 2.74 7.097 2.74q1.072 0 2.026-.141a2.5 2.5 0 0 1-.026-.36v-1.154q-.92.154-2 .154c-2.738 0-4.704-.745-5.957-2.213a2.25 2.25 0 0 1-.54-1.461v-.578a.75.75 0 0 1 .75-.749h7.955A2.5 2.5 0 0 1 14 14.05zM10 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7M15 15h-.5a1.5 1.5 0 0 0-1.5 1.5v5a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-5a1.5 1.5 0 0 0-1.5-1.5H20v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 0 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"warning\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13 17a.999.999 0 1 0-1.998 0 .999.999 0 0 0 1.997 0m-.26-7.853a.75.75 0 0 0-1.493.103l.004 4.501.007.102a.75.75 0 0 0 1.493-.103l-.004-4.502zm1.23-5.488c-.857-1.548-3.082-1.548-3.938 0L2.286 17.66c-.83 1.5.255 3.34 1.97 3.34h15.49c1.714 0 2.799-1.84 1.969-3.34zm-2.626.726a.75.75 0 0 1 1.313 0l7.746 14.002a.75.75 0 0 1-.657 1.113H4.256a.75.75 0 0 1-.657-1.113z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_fit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.49 2.707a.75.75 0 0 1 1.03.002l2.206 2.09a.75.75 0 1 0 1.032-1.088L13.551 1.62a2.25 2.25 0 0 0-3.09-.005L8.237 3.71A.75.75 0 0 0 9.265 4.8zM4.802 9.263a.75.75 0 0 0-1.091-1.028l-2.095 2.224a2.25 2.25 0 0 0 .005 3.09l2.091 2.207a.75.75 0 1 0 1.089-1.032L2.71 12.517a.75.75 0 0 1-.001-1.03zm15.485-1.02A.75.75 0 1 0 19.2 9.275l2.098 2.213a.75.75 0 0 1 0 1.033L19.2 14.734a.75.75 0 0 0 1.088 1.032l2.099-2.213a2.25 2.25 0 0 0 0-3.097zm-4.522 12.045a.75.75 0 0 0-1.032-1.088l-2.212 2.097a.75.75 0 0 1-1.032 0L9.275 19.2a.75.75 0 0 0-1.032 1.09l2.216 2.097a2.25 2.25 0 0 0 3.095 0zM9.75 7A2.75 2.75 0 0 0 7 9.75v4.5A2.75 2.75 0 0 0 9.75 17h4.5A2.75 2.75 0 0 0 17 14.25v-4.5A2.75 2.75 0 0 0 14.25 7zM8.5 9.75c0-.69.56-1.25 1.25-1.25h4.5c.69 0 1.25.56 1.25 1.25v4.5c0 .69-.56 1.25-1.25 1.25h-4.5c-.69 0-1.25-.56-1.25-1.25z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_in\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.5 10a.75.75 0 0 0-.75-.75h-2v-2a.75.75 0 0 0-1.5 0v2h-2a.75.75 0 1 0 0 1.5h2v2a.75.75 0 0 0 1.5 0v-2h2a.75.75 0 0 0 .75-.75M10 2.75a7.25 7.25 0 0 1 5.63 11.819l4.9 4.9a.75.75 0 0 1-.976 1.134l-.084-.073-4.901-4.9A7.25 7.25 0 1 1 10 2.75m0 1.5a5.75 5.75 0 1 0 0 11.5 5.75 5.75 0 0 0 0-11.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_out\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.75 9.25a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1 0-1.5zm4.5.75a7.25 7.25 0 1 0-2.681 5.63l4.9 4.9.085.073a.75.75 0 0 0 .976-1.133l-4.9-4.901A7.22 7.22 0 0 0 17.25 10m-13 0a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0\\\"\\n />\\n </symbol>\\n</svg>\\n<svg\\n class=\\\"icon\\\"\\n [attr.width]=\\\"size\\\"\\n [attr.height]=\\\"size\\\"\\n [attr.aria-label]=\\\"label\\\"\\n>\\n <use [attr.href]=\\\"'#' + name\\\"></use>\\n</svg>\\n\", styles: [\".icon{fill:currentColor;vertical-align:middle}\\n\"] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: IconComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ai-icon', template: \"<svg style=\\\"display: none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n <symbol id=\\\"add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.883 3.007 12 3a1 1 0 0 1 .993.883L13 4v7h7a1 1 0 0 1 .993.883L21 12a1 1 0 0 1-.883.993L20 13h-7v7a1 1 0 0 1-.883.993L12 21a1 1 0 0 1-.993-.883L11 20v-7H4a1 1 0 0 1-.993-.883L3 12a1 1 0 0 1 .883-.993L4 11h7V4a1 1 0 0 1 .883-.993L12 3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"add_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7\\\"\\n />\\n </symbol>\\n <symbol id=\\\"add_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7m-9-.75A3.25 3.25 0 0 1 6.25 3h11.5A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75zM6.25 4.5A1.75 1.75 0 0 0 4.5 6.25v11.5c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75V6.25a1.75 1.75 0 0 0-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"app_connectivity\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20 14h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6H8v-4h4a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2H9V6h9v6a2 2 0 0 0 2 2m0 14v-4h8v4Zm8-8v2h-8v-2ZM4 20v-4h8v4Zm8-6H4v-2h8Zm8-2V8h8v4Zm8-8v2h-8V4Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"apps\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_clockwise\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a7.5 7.5 0 1 0 7.419 6.392c-.067-.454.265-.892.724-.892.37 0 .696.256.752.623Q21 11.297 21 12a9 9 0 1 1-3-6.708V4.25a.75.75 0 0 1 1.5 0v3a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1 0-1.5h1.35a7.47 7.47 0 0 0-5.1-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.79 13.267a.75.75 0 0 0-1.086-1.034l-5.954 6.251V3.75a.75.75 0 1 0-1.5 0v14.734l-5.955-6.251a.75.75 0 1 0-1.086 1.034l7.067 7.42c.16.168.366.268.58.3a.8.8 0 0 0 .29-.001 1 1 0 0 0 .578-.3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_left\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.733 19.79a.75.75 0 0 0 1.034-1.086L5.516 12.75H20.25a.75.75 0 0 0 0-1.5H5.516l6.251-5.955a.75.75 0 0 0-1.034-1.086l-7.42 7.067a1 1 0 0 0-.3.58.8.8 0 0 0 .001.289 1 1 0 0 0 .3.579z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_maximize\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m12.496 3.002 7.556.001.12.014.088.02.104.034.09.04.063.036.063.042.064.05.063.058.094.11.072.11.053.114.036.105.015.065.01.053.01.148v7.504a1 1 0 0 1-1.993.117l-.007-.117v-5.09L6.412 19H11.5a1 1 0 0 1 .993.884L12.5 20a1 1 0 0 1-.884.994L11.5 21H3.939l-.096-.01-.077-.015-.077-.022-.07-.026-.09-.042-.089-.053-.091-.07.032.027a1 1 0 0 1-.166-.166l-.051-.07-.04-.064-.032-.064-.034-.082-.025-.08-.024-.111-.007-.061-.004-.09v-7.503a1 1 0 0 1 1.993-.117l.007.117v5.088L17.582 5.002h-5.086a1 1 0 0 1-.994-.883l-.006-.117a1 1 0 0 1 1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_minimize\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.498 12.505a1 1 0 0 1 .993.884l.007.116v7.504a1 1 0 0 1-1.994.117l-.006-.117v-5.093l-5.791 5.792a1 1 0 0 1-1.32.083l-.095-.083a1 1 0 0 1-.083-1.32l.083-.095 5.788-5.788H2.996a1 1 0 0 1-.117-1.993l.117-.007zm3-10.505a1 1 0 0 1 .994.883l.007.117v5.087l5.793-5.794a1 1 0 0 1 1.32-.083l.095.083a1 1 0 0 1 .083 1.32l-.083.095-5.797 5.795H21a1 1 0 0 1 .117 1.994l-.117.007h-7.5a1 1 0 0 1-.994-.883l-.006-.117V3a1 1 0 0 1 1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_move\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.28 6.03a.75.75 0 0 1-1.06 0l-1.47-1.47v3.69a.75.75 0 0 1-1.5 0V4.56L9.78 6.03a.75.75 0 0 1-1.06-1.06l2.75-2.75a.75.75 0 0 1 1.06 0l2.75 2.75a.75.75 0 0 1 0 1.06m-9.25 8.19a.75.75 0 1 1-1.06 1.06l-2.75-2.75a.75.75 0 0 1 0-1.06l2.75-2.75a.75.75 0 0 1 1.06 1.06l-1.47 1.47h3.69a.75.75 0 0 1 0 1.5H4.56zm11.94 1.06a.75.75 0 0 1 0-1.06l1.47-1.47h-3.69a.75.75 0 0 1 0-1.5h3.69l-1.47-1.47a.75.75 0 0 1 1.06-1.06l2.75 2.75a.75.75 0 0 1 0 1.06l-2.75 2.75a.75.75 0 0 1-1.06 0m-2.69 2.69a.75.75 0 0 0-1.06 0l-1.47 1.47v-3.69a.75.75 0 0 0-1.5 0v3.69l-1.47-1.47a.75.75 0 0 0-1.06 1.06l2.75 2.75a.75.75 0 0 0 1.06 0l2.75-2.75a.75.75 0 0 0 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_right\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.267 4.209a.75.75 0 0 0-1.034 1.086l6.251 5.955H3.75a.75.75 0 0 0 0 1.5h14.734l-6.251 5.954a.75.75 0 0 0 1.034 1.087l7.42-7.067a1 1 0 0 0 .3-.58.8.8 0 0 0-.001-.29 1 1 0 0 0-.3-.578z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_sort\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m17.25 4-.1.007a.75.75 0 0 0-.65.743v12.692l-3.22-3.218-.084-.072a.75.75 0 0 0-.976 1.134l4.504 4.5.084.072a.75.75 0 0 0 .976-.073l4.497-4.5.072-.084a.75.75 0 0 0-.073-.977l-.084-.072a.75.75 0 0 0-.977.073L18 17.446V4.75l-.006-.102A.75.75 0 0 0 17.251 4m-11.036.22L1.72 8.715l-.073.084a.75.75 0 0 0 .073.976l.084.073a.75.75 0 0 0 .976-.073l3.217-3.218v12.698l.008.102a.75.75 0 0 0 .743.648l.101-.007a.75.75 0 0 0 .649-.743L7.497 6.559l3.223 3.217.084.072a.75.75 0 0 0 .975-1.134L7.275 4.22l-.085-.072a.75.75 0 0 0-.976.073\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_sort_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m6.288 4.293-3.995 4-.084.095a1 1 0 0 0 .084 1.32l.095.083a1 1 0 0 0 1.32-.084L6 7.41V19l.007.117a1 1 0 0 0 .993.884l.117-.007A1 1 0 0 0 8 19V7.417l2.293 2.29.095.084a1 1 0 0 0 1.319-1.499l-4.006-4-.094-.083a1 1 0 0 0-1.32.084M17 4.003l-.117.007a1 1 0 0 0-.883.993v11.58l-2.293-2.29-.095-.084a1 1 0 0 0-1.319 1.498l4.004 4 .094.084a1 1 0 0 0 1.32-.084l3.996-4 .084-.095a1 1 0 0 0-.084-1.32l-.095-.083a1 1 0 0 0-1.32.084L18 16.587V5.003l-.007-.116A1 1 0 0 0 17 4.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"arrow_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.209 10.733a.75.75 0 0 0 1.086 1.034l5.954-6.251V20.25a.75.75 0 0 0 1.5 0V5.516l5.955 6.251a.75.75 0 0 0 1.087-1.034l-7.067-7.42a1 1 0 0 0-.58-.3.8.8 0 0 0-.29.001 1 1 0 0 0-.578.3z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"ascending\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75m-9.481.487a.75.75 0 0 0-1.401-.01l-3.317 8.5a.75.75 0 1 0 1.398.546l.79-2.023h3.555l.754 2.013a.75.75 0 0 0 1.405-.526zM5.823 8l1.23-3.15L8.232 8zM4 13.75a.75.75 0 0 1 .75-.75H9.5a.75.75 0 0 1 .634 1.151L6.114 20.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.633-1.151l4.02-6.35H4.75a.75.75 0 0 1-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"asset\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.78 3.737a2.25 2.25 0 0 0-1.56 0L9.913 5.33a.25.25 0 0 0-.163.234v2.793a4.8 4.8 0 0 0-1.5 0V5.563a1.75 1.75 0 0 1 1.143-1.641L13.7 2.33a3.75 3.75 0 0 1 2.6 0l4.307 1.592a1.75 1.75 0 0 1 1.143 1.641v10.67a1.75 1.75 0 0 1-1.143 1.642l-4.018 1.484c.105-.292.161-.604.161-.927v-.731l3.337-1.233a.25.25 0 0 0 .163-.235V5.563a.25.25 0 0 0-.163-.234zm-4.01 3.93a.75.75 0 1 1 .49-1.418l2.658.92a.25.25 0 0 0 .163 0l2.65-.92a.75.75 0 1 1 .492 1.418l-2.65.919a1.75 1.75 0 0 1-1.145 0zm-6 7a.75.75 0 0 1 .49-1.418l2.74.948 2.732-.947a.75.75 0 1 1 .49 1.417l-2.472.857v2.7a.75.75 0 0 1-1.5 0v-2.7zM10.3 9.53a3.75 3.75 0 0 0-2.6 0l-4.307 1.592a1.75 1.75 0 0 0-1.143 1.641v5.67a1.75 1.75 0 0 0 1.143 1.642L7.7 21.666a3.75 3.75 0 0 0 2.6 0l4.307-1.592a1.75 1.75 0 0 0 1.143-1.642v-5.67a1.75 1.75 0 0 0-1.143-1.641zm-2.08 1.407a2.25 2.25 0 0 1 1.56 0l4.307 1.592a.25.25 0 0 1 .163.234v5.67a.25.25 0 0 1-.163.235L9.78 20.259a2.25 2.25 0 0 1-1.56 0l-4.307-1.592a.25.25 0 0 1-.163-.235v-5.67a.25.25 0 0 1 .163-.234z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"assistant_direction\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m14.298 2.985 6.717 6.718a3.25 3.25 0 0 1 0 4.596l-6.717 6.717a3.25 3.25 0 0 1-4.596 0L2.984 14.3a3.25 3.25 0 0 1 0-4.596l6.718-6.718a3.25 3.25 0 0 1 4.596 0m-3.536 1.06-6.717 6.718a1.75 1.75 0 0 0 0 2.475l6.717 6.718a1.75 1.75 0 0 0 2.475 0l6.718-6.718a1.75 1.75 0 0 0 0-2.475l-6.718-6.717a1.75 1.75 0 0 0-2.475 0m1.695 3.26.073-.084a.75.75 0 0 1 .977-.073l.084.073 2 2a.75.75 0 0 1 .072.977l-.072.084-2 2a.75.75 0 0 1-1.133-.977l.072-.084.72-.72h-1.5a1.25 1.25 0 0 0-1.244 1.122l-.006.128V15a.75.75 0 0 1-1.493.101l-.007-.1v-3.25a2.75 2.75 0 0 1 2.582-2.745L11.75 9h1.498l-.718-.72a.75.75 0 0 1-.072-.976l.072-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bar_vertical\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.251 3a2.25 2.25 0 0 0-2.249 2.25v13.5a2.249 2.249 0 1 0 4.498 0V5.25A2.25 2.25 0 0 0 18.251 3m-6.5 4a2.25 2.25 0 0 0-2.249 2.25v9.5a2.249 2.249 0 1 0 4.498 0v-9.5A2.25 2.25 0 0 0 11.751 7m-6.5 4a2.25 2.25 0 0 0-2.25 2.25v5.5a2.25 2.25 0 1 0 4.5 0v-5.5A2.25 2.25 0 0 0 5.25 11\\\"\\n />\\n </symbol>\\n <symbol id=\\\"book\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7 6a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1zm1.5 1.5h7v-1h-7zM4 4.5A2.5 2.5 0 0 1 6.5 2H18a2.5 2.5 0 0 1 2.5 2.5v14.25a.75.75 0 0 1-.75.75H5.5a1 1 0 0 0 1 1h13.25a.75.75 0 0 1 0 1.5H6.5A2.5 2.5 0 0 1 4 19.5zM5.5 18H19V4.5a1 1 0 0 0-1-1H6.5a1 1 0 0 0-1 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bookmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.19 21.855a.75.75 0 0 1-1.187-.61V6.25A3.25 3.25 0 0 1 8.253 3h7.498a3.25 3.25 0 0 1 3.25 3.25v14.996a.75.75 0 0 1-1.188.609l-5.81-4.181zM17.502 6.25a1.75 1.75 0 0 0-1.75-1.75H8.253a1.75 1.75 0 0 0-1.75 1.75v13.532l5.061-3.641a.75.75 0 0 1 .876 0l5.061 3.641z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"box\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.591 2.513a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.175v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.827V7.176a1.75 1.75 0 0 1 1.093-1.622zm2.254 1.39a2.25 2.25 0 0 0-1.69 0L9.24 4.68l7.527 2.927 2.669-1.03zm1.846 4.505L7.215 5.5 4.59 6.564l7.411 2.882zM3.5 16.828a.25.25 0 0 0 .156.231l7.499 3.04q.047.02.095.036v-9.371L3.5 7.75zm9.345 3.271 7.499-3.04a.25.25 0 0 0 .156-.232V7.774l-7.75 2.992v9.37z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"braces_variable\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 5.75A2.75 2.75 0 0 1 6.25 3a.75.75 0 0 1 0 1.5C5.56 4.5 5 5.06 5 5.75v4.309c0 .744-.3 1.437-.802 1.941A2.75 2.75 0 0 1 5 13.941v4.309c0 .69.56 1.25 1.25 1.25a.75.75 0 0 1 0 1.5 2.75 2.75 0 0 1-2.75-2.75v-4.308a1.25 1.25 0 0 0-.855-1.186l-.132-.045a.75.75 0 0 1 0-1.422l.132-.045c.51-.17.855-.647.855-1.185zm17 0A2.75 2.75 0 0 0 17.75 3a.75.75 0 0 0 0 1.5c.69 0 1.25.56 1.25 1.25v4.309c0 .744.3 1.437.802 1.941A2.75 2.75 0 0 0 19 13.941v4.309c0 .69-.56 1.25-1.25 1.25a.75.75 0 0 0 0 1.5 2.75 2.75 0 0 0 2.75-2.75v-4.308c0-.539.344-1.016.855-1.186l.132-.045a.75.75 0 0 0 0-1.422l-.132-.045a1.25 1.25 0 0 1-.855-1.185zM9.092 7.04a.75.75 0 1 0-1.184.92L11.05 12l-3.142 4.04a.75.75 0 0 0 1.184.92L12 13.223l2.908 3.739a.75.75 0 0 0 1.184-.921L12.95 12l3.142-4.04a.75.75 0 0 0-1.184-.92L12 10.778z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"bullet_list\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.25 17.5a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493L21.25 13H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"burger_menu\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 17h18a1 1 0 0 1 .117 1.993L21 19H3a1 1 0 0 1-.117-1.993zh18zm0-6 18-.002a1 1 0 0 1 .117 1.993l-.117.007L3 13a1 1 0 0 1-.117-1.993zl18-.002zm0-6h18a1 1 0 0 1 .117 1.993L21 7H3a1 1 0 0 1-.117-1.993zh18z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calatena\\\" viewBox=\\\"0 0 121 121\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M60.5.5C27.4.5.5 27.4.5 60.5s26.9 60 60 60 60-26.9 60-60-26.9-60-60-60m0 118.9C28 119.4 1.6 93 1.6 60.5S28 1.6 60.5 1.6s58.9 26.4 58.9 58.9-26.4 58.9-58.9 58.9\\\"\\n class=\\\"st0\\\"\\n />\\n <path\\n d=\\\"m79 58.8 11.1-11.1c4.6-4.6 4.6-12.1 0-16.7S78 26.4 73.4 31l-.1.2L60.5 44 47.7 31.2l-.2-.2-.2-.1-.1-.1c-4.6-4.6-12-4.6-16.6 0s-4.6 12 0 16.6l13.2 13.2-1.8 1.9v.1L31 73.5l-.1.1-.1.2-.1.1c-4.4 4.8-4.1 12.2.6 16.6 4.5 4.2 11.5 4.2 16 0l13.2-13.2 13 13c4.6 4.6 12.1 4.6 16.7 0s4.6-12.1 0-16.7l-.2-.1-12.8-12.8z\\\"\\n class=\\\"st1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calendar\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm1.75 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75zm-11.75 6a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m-4.25-4a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m1.5-6H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"calendar_clock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v5.772a6.5 6.5 0 0 0-1.5-.709V8.5h-15v9.25c0 .966.784 1.75 1.75 1.75h5.063c.173.534.412 1.037.709 1.5H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm0 1.5H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75m5.25 13a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0M17.5 14a.5.5 0 0 1 .5.5V17h2a.5.5 0 0 1 0 1h-2.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"camera\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zm0 1.5h-3.803a.75.75 0 0 0-.574.268l-.065.09-1.093 1.78a.75.75 0 0 1-.639.358h-2.5A1.75 1.75 0 0 0 3.5 8.25v9.5c0 .966.784 1.75 1.75 1.75h13.5a1.75 1.75 0 0 0 1.75-1.75v-9.5a1.75 1.75 0 0 0-1.75-1.75h-2.5a.75.75 0 0 1-.647-.37l-1.032-1.757a.75.75 0 0 0-.646-.37M12 8a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9m0 1.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"camera_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zM12 8a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9m0 1.5a3 3 0 1 1 0 6 3 3 0 0 1 0-6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"caret_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.161 10.073C4.454 9.265 5.028 8 6.102 8h11.796c1.074 0 1.648 1.265.941 2.073l-5.522 6.31a1.75 1.75 0 0 1-2.634 0zM6.653 9.5l5.159 5.896a.25.25 0 0 0 .376 0l5.16-5.896z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"caret_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.161 14.907c-.707.809-.133 2.073.941 2.073h11.796c1.074 0 1.648-1.264.941-2.073l-5.522-6.31a1.75 1.75 0 0 0-2.634 0zm1.492.573 5.159-5.896a.25.25 0 0 1 .376 0l5.16 5.897z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_average\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M23 24c-3.6 0-5.03-4.176-6.413-8.214C15.277 11.958 13.92 8 11 8a3.44 3.44 0 0 0-3.053 2.322L6.05 9.684C6.101 9.534 7.321 6 11 6c4.35 0 6.012 4.855 7.48 9.138C19.689 18.667 20.83 22 23 22a3.44 3.44 0 0 0 3.053-2.321l1.896.637C27.899 20.466 26.679 24 23 24\\\"\\n />\\n <path fill=\\\"currentColor\\\" d=\\\"M4 28V17h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 15h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_correlation\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M30 30H4a2 2 0 0 1-2-2V2h2v26h26Z\\\" />\\n <circle cx=\\\"9\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"9\\\" cy=\\\"22\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"18\\\" cy=\\\"14\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\\\"\\n />\\n <circle cx=\\\"27\\\" cy=\\\"6\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <circle cx=\\\"27\\\" cy=\\\"22\\\" r=\\\"3\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M27 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m-9 13a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m0-14a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_line\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.67 28 6.39-12 7.3 6.49a2 2 0 0 0 1.7.47 2 2 0 0 0 1.42-1.07L27 10.9l-1.82-.9-5.49 11-7.3-6.49a2 2 0 0 0-1.68-.51 2 2 0 0 0-1.42 1L4 25V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_line_smooth\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13 15c1.485 0 2.554 1.497 3.686 3.081C17.998 19.918 19.486 22 22 22c5.67 0 7.78-10.79 8-12l-1.968-.358C27.55 12.282 25.394 20 22 20c-1.485 0-2.554-1.497-3.686-3.081C17.002 15.082 15.514 13 13 13c-4.186 0-7.445 7.404-9 11.762V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H5.044c1.51-5.143 4.92-13 7.956-13\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_maximum\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 6h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m27.989 28-.027-.163C26.51 19.074 24.066 9.089 18 8.089V6h-2v2.085c-6.084.978-8.533 10.978-9.986 19.752L5.987 28H4V8h2V6H4V2H2v26a2 2 0 0 0 2 2h26v-2ZM8.015 28c2.024-12.108 4.96-18 8.973-18s6.949 5.892 8.972 18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_minimum\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"M4 28v-2h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 24h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M27.946 4.328 25.973 4C23.949 16.108 21.013 22 17 22s-6.949-5.892-8.973-18l-1.973.328C7.51 13.057 9.964 22.93 16 23.913V26h2v-2.087c6.037-.983 8.49-10.856 9.946-19.585\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_stepper\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 22v-8h8V6h8V4H20v8h-8v8H4V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H4v-6Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chart_transformation\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n d=\\\"M10.356 23.058C12.77 24.592 15.62 26 17.95 26a3.87 3.87 0 0 0 2.856-1.084c2.286-2.29.14-6.398-1.938-10.372l5.801-5.801a44 44 0 0 1 3.012 2.124L29 9.349a45 45 0 0 0-2.872-2.064L30 3.413 28.586 2l-4.207 4.206c-3.316-1.91-7.108-3.246-9.228-1.122-2.04 2.043-.552 5.532 1.268 9.083l-6.307 6.306a44 44 0 0 1-2.8-2.1L6 19.884a48 48 0 0 0 2.665 2.035L4 26.585V2H2v26a2 2 0 0 0 2 2h26v-2H5.413Zm6.209-16.557c1.135-1.138 3.693-.286 6.337 1.183l-4.995 4.994c-1.313-2.619-2.35-5.167-1.342-6.177m.821 9.526c1.58 3.032 3.182 6.296 2.007 7.473-1.312 1.314-4.522-.026-7.572-1.908Z\\\"\\n />\\n <path\\n d=\\\"M0 0h32v32H0z\\\"\\n data-name=\\\"&lt;Transparent Rectangle&gt;\\\"\\n style=\\\"fill: none\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chat_add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.75 7.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5zM22 12c0-5.523-4.477-10-10-10S2 6.477 2 12a9.96 9.96 0 0 0 1.115 4.592l-1.068 3.823a1.25 1.25 0 0 0 1.54 1.54l3.826-1.067A9.96 9.96 0 0 0 12 22c5.523 0 10-4.477 10-10M3.5 12a8.5 8.5 0 1 1 4.367 7.43l-.27-.15-3.986 1.111 1.113-3.984-.151-.27A8.46 8.46 0 0 1 3.5 12\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chat_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM12 2c.957 0 1.883.134 2.759.385a1.8 1.8 0 0 1-.369.174l-1.34.44a1.65 1.65 0 0 0-.721.507A8.5 8.5 0 0 0 3.5 12c0 1.47.373 2.883 1.073 4.137l.15.27-1.112 3.984 3.987-1.112.27.15a8.502 8.502 0 0 0 12.507-5.965q.136.202.335.345a1.29 1.29 0 0 0 1.09.195C20.87 18.567 16.836 22 12 22a9.96 9.96 0 0 1-4.587-1.112l-3.826 1.067a1.25 1.25 0 0 1-1.54-1.54l1.068-3.823A9.96 9.96 0 0 1 2 12C2 6.477 6.477 2 12 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.53 12.97a.75.75 0 0 0-1.06 1.06l4.5 4.5a.75.75 0 0 0 1.06 0l11-11a.75.75 0 0 0-1.06-1.06L8.5 16.94z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m-1.25 9.94 4.47-4.47a.75.75 0 0 1 1.133.976l-.073.084-5 5a.75.75 0 0 1-.976.073l-.084-.073-2.5-2.5a.75.75 0 0 1 .976-1.133l.084.073zl4.47-4.47z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_circle_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.22 6.97-4.47 4.47-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5a.75.75 0 1 0-1.06-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_list\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.78 4.78a.75.75 0 0 0-1.06-1.06L3.75 5.69l-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm14.47 13.227H9.75l-.102.007a.75.75 0 0 0 .102 1.493h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.507H9.75l-.102.007A.75.75 0 0 0 9.75 13h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.5H9.75l-.102.007A.75.75 0 0 0 9.75 6.5h11.5l.102-.007A.75.75 0 0 0 21.25 5M6.78 17.78a.75.75 0 1 0-1.06-1.06l-1.97 1.97-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm0-7.56a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 0 1-1.06 0l-1-1a.75.75 0 1 1 1.06-1.06l.47.47 1.97-1.97a.75.75 0 0 1 1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"checkmark_starburst\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.836 2.034q.168.058.329.136l1.283.632a1.25 1.25 0 0 0 1.104 0l1.283-.632a2.75 2.75 0 0 1 3.682 1.253l.073.162.063.167.46 1.353c.125.368.414.656.781.781l1.354.46a2.75 2.75 0 0 1 1.581 3.819l-.631 1.283a1.25 1.25 0 0 0 0 1.104l.631 1.283a2.75 2.75 0 0 1-1.581 3.818l-1.354.46a1.25 1.25 0 0 0-.78.781l-.461 1.354a2.75 2.75 0 0 1-3.818 1.581l-1.283-.631a1.25 1.25 0 0 0-1.104 0l-1.283.631a2.75 2.75 0 0 1-3.818-1.581l-.46-1.354a1.25 1.25 0 0 0-.782-.78l-1.353-.461a2.75 2.75 0 0 1-1.582-3.818l.632-1.283a1.25 1.25 0 0 0 0-1.104l-.632-1.283a2.75 2.75 0 0 1 1.582-3.818l1.353-.46a1.25 1.25 0 0 0 .781-.782l.46-1.353a2.75 2.75 0 0 1 3.49-1.718m-2.07 2.2-.46 1.354a2.75 2.75 0 0 1-1.718 1.718l-1.353.46a1.25 1.25 0 0 0-.719 1.736l.632 1.283a2.75 2.75 0 0 1 0 2.43l-.632 1.282a1.25 1.25 0 0 0 .719 1.736l1.353.46a2.75 2.75 0 0 1 1.718 1.718l.46 1.354a1.248 1.248 0 0 0 1.736.719l1.283-.632a2.75 2.75 0 0 1 2.43 0l1.282.632q.074.035.15.061a1.25 1.25 0 0 0 1.586-.78l.46-1.354a2.75 2.75 0 0 1 1.718-1.718l1.354-.46q.075-.026.15-.062a1.25 1.25 0 0 0 .569-1.674l-.632-1.283a2.75 2.75 0 0 1 0-2.429l.632-1.283a1.25 1.25 0 0 0-.719-1.736l-1.354-.46a2.75 2.75 0 0 1-1.718-1.718l-.46-1.353-.029-.076-.033-.074-.062-.111a1.25 1.25 0 0 0-1.612-.458l-1.283.632a2.75 2.75 0 0 1-2.429 0l-1.283-.632a1.25 1.25 0 0 0-1.735.719M10.05 14.39l5.42-5.42a.75.75 0 0 1 1.133.977l-.073.084-6 6a.75.75 0 0 1-1.031.028l-.075-.078-2.5-3a.75.75 0 0 1 1.075-1.04l.077.08zl5.42-5.42z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.22 8.47a.75.75 0 0 1 1.06 0L12 15.19l6.72-6.72a.75.75 0 1 1 1.06 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L4.22 9.53a.75.75 0 0 1 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_left\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.53 4.22a.75.75 0 0 1 0 1.06L8.81 12l6.72 6.72a.75.75 0 1 1-1.06 1.06l-7.25-7.25a.75.75 0 0 1 0-1.06l7.25-7.25a.75.75 0 0 1 1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_left_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.707 4.293a1 1 0 0 1 0 1.414L9.414 12l6.293 6.293a1 1 0 0 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414l7-7a1 1 0 0 1 1.414 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_right\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.47 4.22a.75.75 0 0 0 0 1.06L15.19 12l-6.72 6.72a.75.75 0 1 0 1.06 1.06l7.25-7.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_right_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.293 4.293a1 1 0 0 0 0 1.414L14.586 12l-6.293 6.293a1 1 0 1 0 1.414 1.414l7-7a1 1 0 0 0 0-1.414l-7-7a1 1 0 0 0-1.414 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"chevron_up\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.293 15.707a1 1 0 0 0 1.414 0L12 9.414l6.293 6.293a1 1 0 0 0 1.414-1.414l-7-7a1 1 0 0 0-1.414 0l-7 7a1 1 0 0 0 0 1.414\\\"\\n />\\n </symbol>\\n <symbol id=\\\"circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 3.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12\\\"\\n />\\n </symbol>\\n <symbol id=\\\"clipboard\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.379 5.5H6.25a.75.75 0 0 0-.75.75v13.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75h-2.129c-.404.603-1.09 1-1.871 1h-3.5c-.78 0-1.467-.397-1.871-1M15.986 4h1.764A2.25 2.25 0 0 1 20 6.25v13.5A2.25 2.25 0 0 1 17.75 22H6.25A2.25 2.25 0 0 1 4 19.75V6.25A2.25 2.25 0 0 1 6.25 4h1.764a2.25 2.25 0 0 1 2.236-2h3.5a2.25 2.25 0 0 1 2.236 2M9.5 4.25c0 .414.336.75.75.75h3.5a.75.75 0 0 0 0-1.5h-3.5a.75.75 0 0 0-.75.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"clock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 12a8.5 8.5 0 1 1 17 0 8.5 8.5 0 0 1-17 0M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-.007 4.648a.75.75 0 0 0-1.493.102v6l.007.102a.75.75 0 0 0 .743.648h4l.102-.007A.75.75 0 0 0 15.25 12H12V6.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_add\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0m-5 .5.001 2.503a.5.5 0 1 1-1 0V17h-2.505a.5.5 0 0 1 0-1H16v-2.5a.5.5 0 1 1 1 0V16h2.497a.5.5 0 0 1 0 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_archive\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h5.177a2 2 0 0 0 .323.232V18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0A4.5 4.5 0 0 1 21.744 12h-1.645a3 3 0 0 0-2.599-1.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m1 7.5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7 10a2 2 0 0 0 2-2v-4h-9v4a2 2 0 0 0 2 2zm-4.5-4.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_arrow_down\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 16.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 15.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_download\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_edit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h6.355l-.365.365A3.7 3.7 0 0 0 11.717 18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 2.433 1 3.27 3.27 0 0 0-1.701.71 3 3 0 0 0-1.152-.23h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m7.1 6.17-5.903 5.902a2.7 2.7 0 0 0-.706 1.247l-.458 1.831a1.087 1.087 0 0 0 1.319 1.318l1.83-.457a2.7 2.7 0 0 0 1.248-.707l5.902-5.902A2.286 2.286 0 0 0 19.1 11.67\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_link\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.507c.027.527.14 1.032.326 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.077 4.31 4.76 4.76 0 0 0-2.005-1.5A3 3 0 0 0 17.5 10.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m10 10.75a3.75 3.75 0 0 0-3.75-3.75l-.102.007A.75.75 0 0 0 18.25 14l.154.005a2.25 2.25 0 0 1-.154 4.495l-.003.005-.102.007a.75.75 0 0 0 .108 1.493V20l.2-.005A3.75 3.75 0 0 0 22 16.25m-6.5-3a.75.75 0 0 0-.75-.75l-.2.005a3.75 3.75 0 0 0 .2 7.495l.102-.007a.75.75 0 0 0-.102-1.493l-.154-.005A2.25 2.25 0 0 1 14.75 14l.102-.007a.75.75 0 0 0 .648-.743m3.5 3a.75.75 0 0 0-.75-.75h-3.5l-.102.007A.75.75 0 0 0 14.75 17h3.5l.102-.007A.75.75 0 0 0 19 16.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_off\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.28 2.22a.75.75 0 1 0-1.06 1.06l4.633 4.634a6 6 0 0 0-.773 2.105A4.5 4.5 0 0 0 6.5 19h11q.213 0 .42-.02l2.8 2.8a.75.75 0 0 0 1.06-1.06zM16.44 17.5H6.5a3 3 0 1 1 0-6h.256c.4 0 .73-.315.749-.715.03-.631.19-1.229.453-1.766zm4.06-3c0 .782-.3 1.494-.79 2.029l1.062 1.06a4.5 4.5 0 0 0-2.851-7.57 6 6 0 0 0-8.93-4.21l1.11 1.11a4.5 4.5 0 0 1 6.394 3.866.75.75 0 0 0 .75.715h.255a3 3 0 0 1 3 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cloud_upload\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-6 3a.5.5 0 0 0 1 0v-4.793l1.646 1.647a.5.5 0 0 0 .708-.708l-2.5-2.5a.5.5 0 0 0-.708 0l-2.5 2.5a.5.5 0 0 0 .708.708L16 14.707z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"code\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m8.066 18.943 6.5-14.5a.75.75 0 0 1 1.404.518l-.036.096-6.5 14.5a.75.75 0 0 1-1.404-.518zl6.5-14.5zM2.22 11.47l4.25-4.25a.75.75 0 0 1 1.133.976l-.073.085L3.81 12l3.72 3.719a.75.75 0 0 1-.976 1.133l-.084-.073-4.25-4.25a.75.75 0 0 1-.073-.976zl4.25-4.25zm14.25-4.25a.75.75 0 0 1 .976-.073l.084.073 4.25 4.25a.75.75 0 0 1 .073.976l-.073.085-4.25 4.25a.75.75 0 0 1-1.133-.977l.073-.084L20.19 12l-3.72-3.72a.75.75 0 0 1 0-1.06\\\"\\n />\\n </symbol>\\n <symbol id=\\\"color\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.839 5.858c2.94-3.916 9.03-5.055 13.364-2.36 4.28 2.66 5.854 7.777 4.1 12.577-1.655 4.533-6.016 6.328-9.159 4.048-1.177-.854-1.634-1.925-1.854-3.664l-.106-.987-.045-.398c-.123-.934-.311-1.352-.705-1.572-.535-.298-.892-.305-1.595-.033l-.351.146-.179.078c-1.014.44-1.688.595-2.541.416l-.2-.047-.164-.047c-2.789-.864-3.202-4.647-.565-8.157m.984 6.716.123.037.134.03c.439.087.814.015 1.437-.242l.602-.257c1.202-.493 1.985-.54 3.046.05.917.512 1.275 1.298 1.457 2.66l.053.459.055.532.047.422c.172 1.361.485 2.09 1.248 2.644 2.275 1.65 5.534.309 6.87-3.349 1.516-4.152.174-8.514-3.484-10.789-3.675-2.284-8.899-1.306-11.373 1.987-2.075 2.763-1.82 5.28-.215 5.816m11.225-1.994a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m.494 3.488a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647M14.07 7.577a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647m-.028 8.998a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m-3.497-9.97a1.25 1.25 0 1 1 2.415-.646 1.25 1.25 0 0 1-2.415.646\\\"\\n />\\n </symbol>\\n <symbol id=\\\"column_triple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 21A2.5 2.5 0 0 1 2 18.5v-13A2.5 2.5 0 0 1 4.5 3h1A2.5 2.5 0 0 1 8 5.5v13A2.5 2.5 0 0 1 5.5 21zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm8 2.5A2.5 2.5 0 0 1 9 18.5v-13A2.5 2.5 0 0 1 11.5 3h1A2.5 2.5 0 0 1 15 5.5v13a2.5 2.5 0 0 1-2.5 2.5zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm5.5 0a2.5 2.5 0 0 0 2.5 2.5h1a2.5 2.5 0 0 0 2.5-2.5v-13A2.5 2.5 0 0 0 19.5 3h-1A2.5 2.5 0 0 0 16 5.5zm2.5 1a1 1 0 0 1-1-1v-13a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"condition_point\\\" viewBox=\\\"0 0 32 32\\\">\\n <path fill=\\\"currentColor\\\" d=\\\"m8 16 8-8 8 8-8 8z\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29.39 14.527 17.474 2.609a2.085 2.085 0 0 0-2.946 0L2.609 14.527a2.085 2.085 0 0 0 0 2.946l11.918 11.918a2.085 2.085 0 0 0 2.946 0l11.918-11.918a2.085 2.085 0 0 0 0-2.946M16 28.036 3.965 16 16 3.964 28.036 16Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"copy\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M17.75 2A2.25 2.25 0 0 1 20 4.25v13a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-13A2.25 2.25 0 0 1 8.75 2zm0 1.5h-9a.75.75 0 0 0-.75.75v13c0 .414.336.75.75.75h9a.75.75 0 0 0 .75-.75v-13a.75.75 0 0 0-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cube\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.049 7.983a.75.75 0 0 1 .967-.435L12 9.438l4.984-1.89a.75.75 0 1 1 .532 1.402l-4.766 1.81v5.49a.75.75 0 1 1-1.5 0v-5.49L6.484 8.95a.75.75 0 0 1-.435-.967m4.542-5.472a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.173v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.826V7.173A1.75 1.75 0 0 1 3.093 5.55zm2.254 1.39a2.25 2.25 0 0 0-1.69 0l-7.499 3.04a.25.25 0 0 0-.156.232v9.653a.25.25 0 0 0 .156.231l7.499 3.04a2.25 2.25 0 0 0 1.69 0l7.499-3.04a.25.25 0 0 0 .156-.231V7.173a.25.25 0 0 0-.156-.232z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"cursor_click\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 2a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5A.75.75 0 0 1 9.25 2M4.47 3.97a.75.75 0 0 1 1.06 0l1.75 1.75a.75.75 0 1 1-1.06 1.06L4.47 5.03a.75.75 0 0 1 0-1.06m9.56 0a.75.75 0 0 1 0 1.06l-1.75 1.75a.75.75 0 1 1-1.06-1.06l1.75-1.75a.75.75 0 0 1 1.06 0M2.5 8.75A.75.75 0 0 1 3.25 8h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75m8.177-.264C9.822 7.752 8.5 8.36 8.5 9.487v11.274c0 1.21 1.495 1.782 2.302.88l2.614-2.923c.276-.308.664-.49 1.077-.507l3.84-.154c1.197-.048 1.715-1.539.805-2.32zM10 20.287V9.881l7.812 6.696-3.38.135a3.03 3.03 0 0 0-2.133 1.006z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dashboard\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M24 21h2v5h-2zm-4-5h2v10h-2zm-9 10a5.006 5.006 0 0 1-5-5h2a3 3 0 1 0 3-3v-2a5 5 0 0 1 0 10\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 2H4a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m0 9H14V4h14ZM12 4v7H4V4ZM4 28V13h24l.002 15Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dashboard_reference\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4 20v2h4.586L2 28.586 3.414 30 10 23.414V28h2v-8zm20 1h2v5h-2zm-4-5h2v10h-2zm-4 2h2v8h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 2H4a2 2 0 0 0-2 2v12h2v-3h24.001l.001 15H16v2h12a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m-16 9H4V4h8Zm2 0V4h14v7Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"data_accessor\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 20h-2v2h2v6H4v-6h2v-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2\\\"\\n />\\n <circle cx=\\\"7\\\" cy=\\\"25\\\" r=\\\"1\\\" fill=\\\"currentColor\\\" />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21 13a2.96 2.96 0 0 0-1.285.3l-2.3-2.3 2.3-2.3A2.96 2.96 0 0 0 21 9a3 3 0 1 0-3-3 3 3 0 0 0 .3 1.285l-2.3 2.3-2.3-2.3A3 3 0 0 0 14 6a3 3 0 1 0-3 3 2.96 2.96 0 0 0 1.285-.3l2.3 2.3-2.3 2.3A2.96 2.96 0 0 0 11 13a3 3 0 1 0 3 3 3 3 0 0 0-.3-1.285l2.3-2.3 2.3 2.3A3 3 0 0 0 18 16a3 3 0 1 0 3-3m0-8a1 1 0 1 1-1 1 1 1 0 0 1 1-1M10 6a1 1 0 1 1 1 1 1 1 0 0 1-1-1m1 11a1 1 0 1 1 1-1 1 1 0 0 1-1 1m10 0a1 1 0 1 1 1-1 1 1 0 0 1-1 1\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 5h4a2 2 0 1 0-4 0M8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-1.17 12.111A3.75 3.75 0 0 1 15.026 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zm2 4.75a.75.75 0 0 0-1.5 0v7.5a.75.75 0 0 0 1.5 0zM14.25 9a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75m-7.516 9.467a2.25 2.25 0 0 0 2.24 2.033h6.052a2.25 2.25 0 0 0 2.24-2.033L18.424 6.5H5.576z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_arrow_back\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.485 4.196a5.5 5.5 0 0 0-.986-.176L15.44 5H4.561l1.18 10.23A2 2 0 0 0 7.728 17H9.6q.276.538.657 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm7 15a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9m-.896-6.396-.897.896h1.543A2.75 2.75 0 0 1 17 16.25v.25a.5.5 0 0 1-1 0v-.25a1.75 1.75 0 0 0-1.75-1.75h-1.543l.897.896a.5.5 0 0 1-.708.708l-1.752-1.753a.5.5 0 0 1 .002-.705l1.75-1.75a.5.5 0 0 1 .708.708\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 5a2 2 0 1 0-4 0zM8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-.502 5.195a6.5 6.5 0 0 0-1.456-.528l.452-4.667H5.576l1.158 11.967a2.25 2.25 0 0 0 2.24 2.033h1.758A6.5 6.5 0 0 0 11.81 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zM22 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 16.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"delete_lines\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.808 7H14.63l.808-7H4.561l1.18 10.23A2 2 0 0 0 7.728 17h2.357a1.5 1.5 0 0 0 0 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm4 9a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"descending\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4 2.75A.75.75 0 0 1 4.75 2H9.5a.75.75 0 0 1 .634 1.151L6.113 9.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.634-1.151L8.137 3.5H4.75A.75.75 0 0 1 4 2.75m2.368 9.727a.75.75 0 0 1 1.401.01l3.184 8.5a.75.75 0 0 1-1.405.526L8.794 19.5H5.238l-.79 2.022a.75.75 0 0 1-1.397-.545zM8.232 18l-1.18-3.15L5.823 18zM17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"devices\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 30H4a2 2 0 0 1-2-2V16a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2M4 16v12h6V16Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 4H6a2 2 0 0 0-2 2v6h2V6h22v14H14v2h2v4h-2v2h9v-2h-5v-4h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.397 4.554.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l6.47-6.47a.75.75 0 1 1 1.06 1.061L13.061 12l6.47 6.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-6.47 6.47a.75.75 0 0 1-1.06-1.061L10.939 12l-6.47-6.47a.75.75 0 0 1-.072-.976l.073-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m3.446 4.897.084.073a.75.75 0 0 1 .073.976l-.073.084L13.061 12l2.47 2.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-2.47 2.47a.75.75 0 0 1-.976.072l-.084-.073a.75.75 0 0 1-.073-.976l.073-.084L10.939 12l-2.47-2.47a.75.75 0 0 1-.072-.976l.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l2.47-2.47a.75.75 0 0 1 .976-.072\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_circle_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.53 6.47-.084-.073a.75.75 0 0 0-.882-.007l-.094.08L12 10.939l-2.47-2.47-.084-.072a.75.75 0 0 0-.882-.007l-.094.08-.073.084a.75.75 0 0 0-.007.882l.08.094L10.939 12l-2.47 2.47-.072.084a.75.75 0 0 0-.007.882l.08.094.084.073a.75.75 0 0 0 .882.007l.094-.08L12 13.061l2.47 2.47.084.072a.75.75 0 0 0 .882.007l.094-.08.073-.084a.75.75 0 0 0 .007-.882l-.08-.094L13.061 12l2.47-2.47.072-.084a.75.75 0 0 0 .007-.882zl-.084-.073z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"dismiss_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m4.21 4.387.083-.094a1 1 0 0 1 1.32-.083l.094.083L12 10.585l6.293-6.292a1 1 0 1 1 1.414 1.414L13.415 12l6.292 6.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083L12 13.415l-6.293 6.292a1 1 0 0 1-1.414-1.414L10.585 12 4.293 5.707a1 1 0 0 1-.083-1.32l.083-.094z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_bullet\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7 12.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m.75 2.25a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M7 18.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m3.75-6.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zM10 15.25a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75m.75 2.25a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm8.664-9.086-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414M18.5 20a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_copy\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M13.128 2c.597 0 1.17.237 1.592.66l4.618 4.62c.422.422.659.995.659 1.591v8.383a2.25 2.25 0 0 1-2.25 2.25H8.752a2.25 2.25 0 0 1-2.25-2.25V4.25A2.25 2.25 0 0 1 8.752 2zM13 3.5H8.752a.75.75 0 0 0-.75.75v13.004c0 .414.336.75.75.75h8.995a.75.75 0 0 0 .75-.75V9.003H15.25a2.25 2.25 0 0 1-2.245-2.095L13 6.754zm1.5 1.061.001 2.193c0 .38.282.693.648.743l.102.007 2.19-.001z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.5 20a.5.5 0 0 1-.5.5h-6v1q0 .257-.05.5H18a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.55a3.5 3.5 0 0 1 1.5-.905V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5zM4 15h-.5A1.5 1.5 0 0 0 2 16.5v5A1.5 1.5 0 0 0 3.5 23h6a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 15H9v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 1 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_page\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.25 2A2.25 2.25 0 0 0 4 4.25v15.5A2.25 2.25 0 0 0 6.25 22h11.5A2.25 2.25 0 0 0 20 19.75V4.25A2.25 2.25 0 0 0 17.75 2zM5.5 4.25a.75.75 0 0 1 .75-.75h11.5a.75.75 0 0 1 .75.75v15.5a.75.75 0 0 1-.75.75H6.25a.75.75 0 0 1-.75-.75zM7.75 6.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 16.25a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 11a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 11h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75m0 4.5h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75M7 7.25c0 .41.34.75.75.75h7.45l-.09-.28q-.075-.21-.21-.39c-.04-.05-.07-.09-.11-.13-.15-.15-.33-.26-.52-.32L13.1 6.5H7.75c-.41 0-.75.34-.75.75m12.8 6.04-.26-.79-.8-.29c-.09-.03-.16-.08-.24-.12v7.66c0 .41-.34.75-.75.75H6.25c-.41 0-.75-.34-.75-.75V4.25c0-.41.34-.75.75-.75h5.53c.03-.06.05-.13.09-.19.24-.34.58-.6.99-.74l1.41-.46c.07-.03.15-.07.22-.11H6.25C5.01 2 4 3.01 4 4.25v15.5C4 20.99 5.01 22 6.25 22h11.5c1.24 0 2.25-1.01 2.25-2.25v-6.08a1.7 1.7 0 0 1-.2-.38m-3.95-7.14c.08.08.16.17.23.27.2.25.35.54.45.85l.45 1.38c.04.11.11.2.2.26.09.07.2.1.31.1a.5.5 0 0 0 .31-.1c.08-.06.15-.14.19-.23v-.03l.46-1.38c.14-.42.37-.8.69-1.11.31-.31.69-.55 1.11-.69l1.38-.45c.11-.04.2-.11.26-.2a.5.5 0 0 0 .1-.31.5.5 0 0 0-.1-.31.63.63 0 0 0-.26-.2h-.03l-1.38-.45c-.42-.14-.8-.37-1.11-.69a2.85 2.85 0 0 1-.69-1.11L17.97.37a.52.52 0 0 0-.2-.26c-.09-.06-.2-.1-.31-.1a.5.5 0 0 0-.31.1c-.09.06-.16.16-.2.26l-.45 1.38v.03c-.15.4-.38.77-.67 1.07-.31.31-.68.55-1.1.69l-1.38.45c-.11.04-.2.11-.26.2a.5.5 0 0 0-.1.31c0 .11.03.22.1.31.06.09.16.16.26.2l1.38.45c.42.14.8.38 1.11.69zm7.93 4.07c.064 0 .13.06.17.11s.05.11.05.17-.01.12-.05.17-.09.09-.15.11l-.77.25c-.23.08-.44.21-.62.38-.17.17-.3.38-.38.62l-.25.76c-.02.06-.06.11-.11.15a.27.27 0 0 1-.34 0 .33.33 0 0 1-.11-.15l-.25-.76c-.08-.23-.21-.45-.38-.62s-.39-.31-.62-.38l-.77-.25a.33.33 0 0 1-.15-.11.27.27 0 0 1 0-.34c.04-.05.09-.09.15-.11l.77-.25c.23-.08.44-.21.61-.38s.3-.38.37-.61l.25-.76c.02-.06.06-.11.11-.15a.27.27 0 0 1 .34 0c.05.04.09.09.11.15l.25.76c.08.23.21.44.38.62.17.17.38.3.62.38z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"document_toolbox\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.5 4.25a.75.75 0 0 1 .75-.75H12V8a2 2 0 0 0 2 2h4.5v9.75a.75.75 0 0 1-.75.75H13V22h4.75A2.25 2.25 0 0 0 20 19.75V9.664c0-.464-.184-.909-.513-1.237l-5.914-5.914A1.75 1.75 0 0 0 12.336 2H6.25A2.25 2.25 0 0 0 4 4.25v8.018c.294-.17.636-.268 1-.268h.5zM17.44 8.5H14a.5.5 0 0 1-.5-.5V4.56zM4 16v-1.5A1.5 1.5 0 0 1 5.5 13h2A1.5 1.5 0 0 1 9 14.5V16h1.5a1.5 1.5 0 0 1 1.5 1.5V19H9v-.5a.5.5 0 0 0-1 0v.5H5v-.5a.5.5 0 0 0-1 0v.5H1v-1.5A1.5 1.5 0 0 1 2.5 16zm1-1.5V16h3v-1.5a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5M9 20h3v1.5a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 1 21.5V20h3v.5a.5.5 0 0 0 1 0V20h3v.5a.5.5 0 0 0 1 0z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"download\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 20.5a.75.75 0 1 1 0 1.5l-13 .005a.75.75 0 1 1 0-1.5zM11.648 2.014l.102-.007a.75.75 0 0 1 .743.648l.007.102-.001 13.685 3.722-3.72a.75.75 0 0 1 .976-.073l.085.073a.75.75 0 0 1 .072.976l-.073.084-4.997 4.997a.75.75 0 0 1-.976.073l-.085-.073-5.003-4.996a.75.75 0 0 1 .976-1.134l.084.072 3.719 3.714L11 2.756a.75.75 0 0 1 .648-.743l.102-.007z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"drive\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.415 5.27A2.25 2.25 0 0 1 7.441 4h9.118c.863 0 1.65.493 2.026 1.27l3.09 6.388c.214.44.325.925.325 1.415v3.677A2.25 2.25 0 0 1 19.75 19H4.25A2.25 2.25 0 0 1 2 16.75v-3.677c0-.49.11-.974.324-1.415zm11.82.653a.75.75 0 0 0-.676-.423H7.441a.75.75 0 0 0-.676.423L4.31 11h15.382zM3.5 13.25v3.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75H4.25a.75.75 0 0 0-.75.75M18 16a1 1 0 1 0 0-2 1 1 0 0 0 0 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"edit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20.952 3.048a3.58 3.58 0 0 0-5.06 0L3.94 15a3.1 3.1 0 0 0-.825 1.476L2.02 21.078a.75.75 0 0 0 .904.903l4.601-1.096a3.1 3.1 0 0 0 1.477-.825l11.95-11.95a3.58 3.58 0 0 0 0-5.06m-4 1.06a2.078 2.078 0 1 1 2.94 2.94L19 7.939 16.06 5zM15 6.062 17.94 9l-10 10c-.21.21-.474.357-.763.426l-3.416.814.813-3.416c.069-.29.217-.554.427-.764z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"enterprise\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8 8h2v4H8zm0 6h2v4H8zm6-6h2v4h-2zm0 6h2v4h-2zm-6 6h2v4H8zm6 0h2v4h-2z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M30 14a2 2 0 0 0-2-2h-6V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v26h28ZM4 4h16v24H4Zm18 24V14h6v14Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"error_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667m-.001 10.835a.999.999 0 1 1 0 1.998.999.999 0 0 1 0-1.998M11.994 7a.75.75 0 0 1 .744.648l.007.101.004 4.502a.75.75 0 0 1-1.493.103l-.007-.102-.004-4.501a.75.75 0 0 1 .75-.751\\\"\\n />\\n </symbol>\\n <symbol id=\\\"event_alerting\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 17v5H4V6h11V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-5ZM18 28h-4v-4h4Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29 14H17a1 1 0 0 1-.857-1.514l6-10a1 1 0 0 1 1.715 0l6 10A1 1 0 0 1 29 14m-10.234-2h8.468L23 4.944Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"export\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2.753 4.5a.75.75 0 0 1 .743.648l.006.102L3.5 18.254a.75.75 0 0 1-1.493.102L2 18.254 2.002 5.25a.75.75 0 0 1 .75-.75m12.894 1.804.073-.084a.75.75 0 0 1 .976-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.996 5.003a.75.75 0 0 1-1.134-.976l.072-.084 3.711-3.717H5.753a.75.75 0 0 1-.743-.647l-.007-.102a.75.75 0 0 1 .648-.743l.102-.007 13.69-.001L15.72 7.28a.75.75 0 0 1-.073-.976l.073-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"eye\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 9.005a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 1.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M12 5.5c4.613 0 8.596 3.15 9.701 7.564a.75.75 0 1 1-1.455.365 8.504 8.504 0 0 0-16.493.004.75.75 0 0 1-1.456-.363A10 10 0 0 1 12 5.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"eye_hide\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2.22 2.22a.75.75 0 0 0-.073.976l.073.084 4.034 4.035a10 10 0 0 0-3.955 5.75.75.75 0 0 0 1.455.364 8.5 8.5 0 0 1 3.58-5.034l1.81 1.81A4 4 0 0 0 14.8 15.86l5.919 5.92a.75.75 0 0 0 1.133-.977l-.073-.084-6.113-6.114.001-.002-1.2-1.198-2.87-2.87h.002l-2.88-2.877.001-.002-1.133-1.13L3.28 2.22a.75.75 0 0 0-1.06 0m7.984 9.045 3.535 3.536a2.5 2.5 0 0 1-3.535-3.535M12 5.5c-1 0-1.97.148-2.889.425l1.237 1.236a8.503 8.503 0 0 1 9.899 6.272.75.75 0 0 0 1.455-.363A10 10 0 0 0 12 5.5m.195 3.51 3.801 3.8a4.003 4.003 0 0 0-3.801-3.8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"factory\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.17 2a2.25 2.25 0 0 0-2.247 2.129l-.838 15.5A2.25 2.25 0 0 0 4.332 22h2.834a2.25 2.25 0 0 0 2.246-2.371l-.838-15.5A2.25 2.25 0 0 0 6.328 2zm-.75 2.21a.75.75 0 0 1 .749-.71h1.158a.75.75 0 0 1 .749.71l.837 15.5a.75.75 0 0 1-.748.79H4.332a.75.75 0 0 1-.749-.79zM9.511 22c.395-.412.683-.928.818-1.5h1.17v-4.25c0-.966.783-1.75 1.75-1.75h4c.966 0 1.75.784 1.75 1.75v4.25h.75a.75.75 0 0 0 .75-.75V7.713l-5.241 4.838a.75.75 0 0 1-1.26-.551V7.713l-4.027 3.718-.105-1.944 4.374-4.038A.75.75 0 0 1 15.5 6v4.287l5.241-4.838A.75.75 0 0 1 22 6v13.75A2.25 2.25 0 0 1 19.75 22zm3.488-5.75v4.25h4.5v-4.25a.25.25 0 0 0-.25-.25h-4a.25.25 0 0 0-.25.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_audio\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M29 31a1 1 0 0 1-.624-.22L23.649 27H20a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1h3.65l4.726-3.78A1 1 0 0 1 30 17v13a1 1 0 0 1-1 1m-8-6h3a1 1 0 0 1 .625.22L28 27.92v-8.84l-3.375 2.7A1 1 0 0 1 24 22h-3Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6 5.6 5.6H18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_pdf\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.503 13.002a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 1 0v-.5H8.5a1.5 1.5 0 0 0 0-3zm.997 2h-.497v-1H8.5a.5.5 0 1 1 0 1m6.498-1.5a.5.5 0 0 1 .5-.5h1.505a.5.5 0 1 1 0 1h-1.006l-.001 1.002h1.007a.5.5 0 0 1 0 1h-1.007l.002.497a.5.5 0 0 1-1 .002l-.003-.998v-.002zm-3.498-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h.498a2 2 0 0 0 0-4zm.5 3v-2a1 1 0 0 1 0 2M20 20v-1.164c.591-.281 1-.884 1-1.582V12.75c0-.698-.409-1.3-1-1.582v-1.34a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.168c-.591.281-1 .884-1 1.582v4.504c0 .698.409 1.3 1 1.582V20a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2m-2 .5H6a.5.5 0 0 1-.5-.5v-.996h13V20a.5.5 0 0 1-.5.5m.5-10.5v1h-13V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2zm-1.122-1.5H14a.5.5 0 0 1-.5-.5V4.621zm-12.628 4h14.5a.25.25 0 0 1 .25.25v4.504a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25V12.75a.25.25 0 0 1 .25-.25\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM5.25 3h7.797a1.65 1.65 0 0 0-.767.569A1.6 1.6 0 0 0 12 4.5H5.25a.75.75 0 0 0-.75.75v12.5c0 .966.784 1.75 1.75 1.75h9.25V7.327q.052.108.09.222l.41 1.45c.106.31.305.579.57.77q.2.138.43.21V14h4v3.75A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V5.25A2.25 2.25 0 0 1 5.25 3M17 19.5h.75a1.75 1.75 0 0 0 1.75-1.75V15.5H17zM7.25 7a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm-.75 4.75a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M7.25 15a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_video\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m30 19-4 3.2V20a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2.2l4 3.2Zm-14 7v-6h8l.002 6Z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h4Zm6-23.6 5.6 5.6H18Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"file_zip\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.5 8V6.25c0-.966.784-1.75 1.75-1.75h2.879a.75.75 0 0 1 .53.22l1.53 1.53-1.53 1.53a.75.75 0 0 1-.53.22zm1.75-5A3.25 3.25 0 0 0 2 6.25v11.5A3.25 3.25 0 0 0 5.25 21h13.5A3.25 3.25 0 0 0 22 17.75v-9a3.25 3.25 0 0 0-3.25-3.25h-7.19L9.72 3.659A2.25 2.25 0 0 0 8.129 3zm8.25 4v3.25c0 .414.336.75.75.75H15v2h-.25a.75.75 0 0 0 0 1.5H15V16h-.25a.75.75 0 0 0 0 1.5H15v2H5.25a1.75 1.75 0 0 1-1.75-1.75V9.5h4.629a2.25 2.25 0 0 0 1.59-.659L11.562 7zm3 12.5V16h.25a.75.75 0 0 0 0-1.5h-.25V11h.75a.75.75 0 0 0 .75-.75V7h.75c.966 0 1.75.784 1.75 1.75v9a1.75 1.75 0 0 1-1.75 1.75zm0-12.5v2.5H15V7z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"filter\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.5 16a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-9a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-15a.75.75 0 0 1 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"fingerprint\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.858 12.158c.56.573.877 1.268 1.106 2.228l.1.456.178.947c.09.445.158.692.255.908q.449 1.012 1.595 2.065a.75.75 0 0 1-1.013 1.106q-1.363-1.246-1.952-2.56c-.149-.334-.24-.65-.347-1.18l-.21-1.1-.013-.06c-.18-.85-.404-1.385-.772-1.762-.713-.73-2.357-.537-2.797.158-.562.889-.705 2.396-.26 3.916q.518 1.761 1.373 3.467a.75.75 0 0 1-1.34.672 22.3 22.3 0 0 1-1.471-3.717c-.562-1.912-.376-3.864.43-5.14.953-1.506 3.742-1.834 5.138-.404m-2.366 2.315a.75.75 0 0 1 .775.725 7.93 7.93 0 0 0 1.444 4.304l.196.266.3.39a.75.75 0 0 1-1.114.998l-.074-.083-.3-.39a9.43 9.43 0 0 1-1.951-5.435.75.75 0 0 1 .724-.775M8.782 9.39c2.113-1.563 4.875-1.478 6.733-.284.93.598 1.635 1.295 2.103 2.093a.75.75 0 0 1-1.294.76c-.342-.584-.878-1.115-1.62-1.591-1.362-.876-3.451-.94-5.029.228-1.638 1.213-2.328 3.291-2.123 5.482q.172 1.84 1.114 3.724a.75.75 0 0 1-1.342.67Q6.26 18.346 6.06 16.219c-.25-2.67.61-5.263 2.724-6.828m9.18 4.301a.75.75 0 0 1 .788.71c.031.604.18 1.097.442 1.494.22.333.414.525.563.6l.061.024a.75.75 0 0 1-.434 1.436c-.547-.165-1.017-.588-1.443-1.235-.416-.63-.643-1.382-.687-2.241a.75.75 0 0 1 .71-.788m-7.451-7.589a.75.75 0 0 1-.377.992c-1.84.828-3.194 2.008-4.083 3.548-1.114 1.928-1.414 4.181-1.165 6.08a.75.75 0 1 1-1.487.196c-.289-2.201.055-4.778 1.353-7.026C5.804 8.071 7.4 6.68 9.519 5.726a.75.75 0 0 1 .992.376m2.343-.787c1.83.037 3.652.878 5.459 2.486 1.823 1.622 2.921 3.827 3.294 6.58a.75.75 0 1 1-1.486.202c-.327-2.412-1.261-4.287-2.805-5.661-1.56-1.388-3.055-2.078-4.493-2.107a.75.75 0 1 1 .031-1.5m-6.871.014a.75.75 0 0 1-.062 1.06q-.403.357-.843.854-.415.468-.846 1.213a.75.75 0 1 1-1.3-.75 9 9 0 0 1 1.024-1.458q.497-.56.968-.98a.75.75 0 0 1 1.059.061m6.585-2.966c2.193.103 4.03.703 5.53 1.861a.75.75 0 0 1-.917 1.188c-1.245-.962-2.785-1.461-4.683-1.55-1.903-.09-3.462.284-4.715.979-.384.213-.814.106-1.031-.247a.74.74 0 0 1 .246-1.031c1.536-.904 3.383-1.302 5.57-1.2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"flag-de\\\" viewBox=\\\"0 0 640 480\\\">\\n <path fill=\\\"#fc0\\\" d=\\\"M0 320h640v160H0z\\\" />\\n <path fill=\\\"#000001\\\" d=\\\"M0 0h640v160H0z\\\" />\\n <path fill=\\\"red\\\" d=\\\"M0 160h640v160H0z\\\" />\\n </symbol>\\n <symbol id=\\\"flag-en\\\" viewBox=\\\"0 0 640 480\\\">\\n <path fill=\\\"#012169\\\" d=\\\"M0 0h640v480H0z\\\" />\\n <path\\n fill=\\\"#fff\\\"\\n d=\\\"m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z\\\"\\n />\\n <path\\n fill=\\\"#c8102e\\\"\\n d=\\\"m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z\\\"\\n />\\n <path fill=\\\"#fff\\\" d=\\\"M241 0v480h160V0zM0 160v160h640V160z\\\" />\\n <path fill=\\\"#c8102e\\\" d=\\\"M0 193v96h640v-96zM273 0v480h96V0z\\\" />\\n </symbol>\\n <symbol id=\\\"flash\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.425 2.83A1.25 1.25 0 0 1 8.603 2h6.453a1.25 1.25 0 0 1 1.186 1.645L14.79 8h3.96c1.103 0 1.665 1.327.897 2.12L8.586 21.536c-1.054 1.088-2.872.106-2.541-1.372l1.27-5.668-1.57-.006a1.75 1.75 0 0 1-1.641-2.337zm1.354.67-3.262 9.157a.25.25 0 0 0 .234.333l2.502.01a.75.75 0 0 1 .729.914l-1.473 6.578L18.159 9.5h-4.41a.75.75 0 0 1-.71-.987l1.67-5.013z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"flow_stream\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20 24h-8.137a4 4 0 0 0-.429-1.02L21.98 12.434A3.994 3.994 0 1 0 20.141 8H14v2h6.141a4 4 0 0 0 .425 1.02L10.02 21.566A3.994 3.994 0 1 0 11.859 26H20v3h8v-8h-8zm4-17a2 2 0 1 1-2 2 2 2 0 0 1 2-2M8 27a2 2 0 1 1 2-2 2 2 0 0 1-2 2m14-4h4v4h-4zM9.693 12.75a5 5 0 0 1 0-7.5l1.324 1.5a3 3 0 0 0 0 4.501z\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.047 15.751a9 9 0 0 1 0-13.501l1.324 1.5a7 7 0 0 0 0 10.501Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"globe\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998M14.94 16.5H9.061c.652 2.415 1.786 4.002 2.94 4.002s2.286-1.588 2.938-4.002m-7.43 0H4.785a8.53 8.53 0 0 0 4.095 3.41c-.522-.82-.953-1.846-1.27-3.015zm11.705 0h-2.722c-.324 1.335-.792 2.5-1.373 3.411a8.53 8.53 0 0 0 3.91-3.127zM7.094 10H3.736l-.005.017A8.5 8.5 0 0 0 3.5 12a8.5 8.5 0 0 0 .544 3h3.173A20 20 0 0 1 7 12c0-.684.032-1.354.095-2.001m8.303 0H8.603a19 19 0 0 0 .135 5h6.524a19 19 0 0 0 .135-5m4.868 0h-3.358c.062.647.095 1.317.095 2a20 20 0 0 1-.218 3h3.173a8.5 8.5 0 0 0 .545-3c0-.689-.082-1.359-.237-2M8.88 4.088l-.023.008A8.53 8.53 0 0 0 4.25 8.5h3.048c.314-1.752.86-3.278 1.583-4.41m3.12-.591-.117.005C10.62 3.62 9.397 5.621 8.83 8.5h6.342c-.566-2.87-1.783-4.869-3.045-4.995zm3.12.59.106.175c.67 1.112 1.177 2.572 1.475 4.237h3.048a8.53 8.53 0 0 0-4.339-4.29z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"globe_search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3.441 9.955a4.926 4.926 0 0 0 6.233 7.571l4.256 4.257a.773.773 0 0 0 1.169-1.007l-.075-.087l-4.217-4.218A4.927 4.927 0 0 0 3.44 9.955m8.585-7.957c-4.756 0-8.736 3.319-9.751 7.767q.21-.27.46-.517A5.9 5.9 0 0 1 4.51 8.025A8.53 8.53 0 0 1 8.906 4.09l-.107.174c-.538.893-.971 2.011-1.275 3.28c.499.05.991.164 1.465.34c.632-2.628 1.823-4.385 3.037-4.385l.115.005c1.266.116 2.488 2.118 3.056 4.996H10.2a6 6 0 0 1 1.55 1.499l3.674.001a19 19 0 0 1-.135 5h-2.646a6 6 0 0 1-.299.842l-.129.272l-.122.229l.158.157h2.715c-.203.749-.45 1.418-.732 1.985l1.106 1.107c.492-.858.891-1.908 1.178-3.09l2.723-.002a8.54 8.54 0 0 1-3.734 3.26l.225.223l.125.14c.22.296.345.625.378.953A10 10 0 0 0 22.027 12c0-5.524-4.478-10.002-10.001-10.002m-2.712 9.05a3.38 3.38 0 1 1-4.78 4.78a3.38 3.38 0 0 1 4.78-4.78M16.932 10l3.358-.001l.008.03c.15.633.23 1.292.23 1.97a8.5 8.5 0 0 1-.545 3l-3.174.002c.143-.95.218-1.958.218-3.001q0-1.028-.095-2m-1.787-5.911l.023.008A8.53 8.53 0 0 1 19.776 8.5h-3.049c-.313-1.753-.86-3.278-1.582-4.41\\\"\\n />\\n </symbol>\\n <symbol id=\\\"gpt\\\" viewBox=\\\"0 0 48 48\\\">\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"M18.38 27.94v-14.4l11.19-6.46c6.2-3.58 17.3 5.25 12.64 13.33\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m18.38 20.94 12.47-7.2 11.19 6.46c6.2 3.58 4.1 17.61-5.23 17.61\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m24.44 17.44 12.47 7.2v12.93c0 7.16-13.2 12.36-17.86 4.28\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"M30.5 21.2v14.14L19.31 41.8c-6.2 3.58-17.3-5.25-12.64-13.33\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m30.5 27.94-12.47 7.2-11.19-6.46c-6.21-3.59-4.11-17.61 5.22-17.61\\\"\\n />\\n <path\\n fill=\\\"none\\\"\\n stroke=\\\"currentColor\\\"\\n stroke-linejoin=\\\"round\\\"\\n d=\\\"m24.44 31.44-12.47-7.2V11.31c0-7.16 13.2-12.36 17.86-4.28\\\"\\n />\\n </symbol>\\n <symbol id=\\\"history\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4.5a7.5 7.5 0 1 1-7.419 6.392c.067-.454-.265-.892-.724-.892a.75.75 0 0 0-.752.623A9 9 0 1 0 6 5.292V4.25a.75.75 0 0 0-1.5 0v3c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H6.9a7.47 7.47 0 0 1 5.1-2m.5 3.25a.75.75 0 0 0-1.5 0v4.5c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H12.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"home_checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.45 2.532a2.25 2.25 0 0 0-2.9 0L3.8 8.224a2.25 2.25 0 0 0-.8 1.72v9.31c0 .966.784 1.75 1.75 1.75h14.5a1.75 1.75 0 0 0 1.75-1.75v-9.31a2.25 2.25 0 0 0-.8-1.72zm-1.933 1.147a.75.75 0 0 1 .966 0l6.75 5.692a.75.75 0 0 1 .267.573v9.31a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25v-9.31a.75.75 0 0 1 .267-.573zm4.267 7.601a.75.75 0 1 0-1.061-1.06l-3.973 3.973-1.47-1.47a.75.75 0 1 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"hourglass_quarter\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.884 17.15A3.24 3.24 0 0 1 7.92 16h8.16a3.24 3.24 0 0 1 1.42 2.65v.6a.25.25 0 0 1-.25.25H6.75a.25.25 0 0 1-.25-.25v-.6a3.24 3.24 0 0 1 .384-1.5M6.75 2A2.75 2.75 0 0 0 4 4.75v.42a5.75 5.75 0 0 0 2.792 4.93l1.81 1.086a.75.75 0 0 1 .036 1.263l-2.121 1.443A5.75 5.75 0 0 0 4 18.647v.603A2.75 2.75 0 0 0 6.75 22h10.5A2.75 2.75 0 0 0 20 19.25v-.604a5.75 5.75 0 0 0-2.517-4.754l-2.121-1.443a.75.75 0 0 1 .036-1.263l1.81-1.086A5.75 5.75 0 0 0 20 5.17v-.42A2.75 2.75 0 0 0 17.25 2zM5.5 4.75c0-.69.56-1.25 1.25-1.25h10.5c.69 0 1.25.56 1.25 1.25v.42a4.25 4.25 0 0 1-2.063 3.643L14.627 9.9c-1.41.845-1.467 2.866-.108 3.79l2.12 1.442a4.25 4.25 0 0 1 1.861 3.515v.603c0 .69-.56 1.25-1.25 1.25H6.75c-.69 0-1.25-.56-1.25-1.25v-.604a4.25 4.25 0 0 1 1.86-3.514l2.121-1.442c1.359-.924 1.302-2.945-.107-3.79l-1.81-1.087A4.25 4.25 0 0 1 5.5 5.17z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"id\\\" viewBox=\\\"0 0 32 32\\\">\\n <g fill=\\\"currentColor\\\">\\n <path\\n d=\\\"M13.006 9.163c0-.76.616-1.375 1.375-1.375h3.305c4.551 0 8.278 3.637 8.278 8.17 0 4.531-3.727 8.169-8.278 8.169H14.38c-.76 0-1.375-.616-1.375-1.375zm2.75 12.089c0 .069.056.125.125.125h1.805c3.074 0 5.528-2.447 5.528-5.42s-2.454-5.42-5.528-5.42H15.88a.125.125 0 0 0-.125.126zM9.385 7.89a1.374 1.374 0 0 1 1.377 1.373l.014 13.385a1.375 1.375 0 0 1-2.75.003L8.012 9.266a1.375 1.375 0 0 1 1.373-1.377\\\"\\n />\\n <path\\n d=\\\"M6 1a5 5 0 0 0-5 5v20a5 5 0 0 0 5 5h20a5 5 0 0 0 5-5V6a5 5 0 0 0-5-5zM3 6a3 3 0 0 1 3-3h20a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3z\\\"\\n />\\n </g>\\n </symbol>\\n <symbol id=\\\"id_card\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18 13a1 1 0 0 1 1-1h6a1 1 0 0 1 0 2h-6a1 1 0 0 1-1-1m1 4a1 1 0 1 0 0 2h6a1 1 0 0 0 0-2zm-6-4a2 2 0 1 1-4 0a2 2 0 0 1 4 0m-6 4.5A1.5 1.5 0 0 1 8.5 16h5a1.5 1.5 0 0 1 1.5 1.5s0 3.5-4 3.5s-4-3.5-4-3.5M2 7.25A3.25 3.25 0 0 1 5.25 4h21.5A3.25 3.25 0 0 1 30 7.25v17.5A3.25 3.25 0 0 1 26.75 28H5.25A3.25 3.25 0 0 1 2 24.75zM5.25 6C4.56 6 4 6.56 4 7.25v17.5c0 .69.56 1.25 1.25 1.25h21.5c.69 0 1.25-.56 1.25-1.25V7.25C28 6.56 27.44 6 26.75 6z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm.58 16.401-5.805-5.686a.75.75 0 0 0-.966-.071l-.084.07-5.807 5.687q.274.097.582.099h11.5c.203 0 .399-.035.58-.099l-5.805-5.686zM17.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v11.5q.001.313.103.594l5.823-5.701a2.25 2.25 0 0 1 3.02-.116l.128.116 5.822 5.702q.102-.28.104-.595V6.25a1.75 1.75 0 0 0-1.75-1.75m-2.498 2a2.252 2.252 0 1 1 0 4.504 2.252 2.252 0 0 1 0-4.504m0 1.5a.752.752 0 1 0 0 1.504.752.752 0 0 0 0-1.504\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image_library\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.748 8.996a1.248 1.248 0 1 0 0-2.496 1.248 1.248 0 0 0 0 2.496M6.25 3A3.25 3.25 0 0 0 3 6.25v9a3.25 3.25 0 0 0 3.25 3.25h9a3.25 3.25 0 0 0 3.25-3.25v-9A3.25 3.25 0 0 0 15.25 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h9c.966 0 1.75.784 1.75 1.75v9c0 .231-.045.452-.126.654l-4.587-4.291a2.25 2.25 0 0 0-3.074 0l-4.587 4.29a1.8 1.8 0 0 1-.126-.653zm6.762 6.458 4.505 4.214q-.246.076-.517.078h-9q-.271 0-.517-.078l4.504-4.214a.75.75 0 0 1 1.025 0M8.75 21a3.25 3.25 0 0 1-2.74-1.5h9.74a3.75 3.75 0 0 0 3.75-3.75V6.011a3.25 3.25 0 0 1 1.5 2.74v7A5.25 5.25 0 0 1 15.75 21z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"image_search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21 6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v4.507a5.5 5.5 0 0 1 1.5-.882V6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5q-.002.315-.104.595l-5.822-5.702-.128-.116a2.25 2.25 0 0 0-2.243-.38c.259.425.461.889.598 1.38a.75.75 0 0 1 .724.188L18.33 19.4a1.8 1.8 0 0 1-.581.099h-4.775l.512.513c.278.277.443.626.495.987h3.768A3.25 3.25 0 0 0 21 17.75zm-3.496 2.502a2.252 2.252 0 1 0-4.504 0 2.252 2.252 0 0 0 4.504 0m-3.004 0a.752.752 0 1 1 1.504 0 .752.752 0 0 1-1.504 0M9.95 17.89a4.5 4.5 0 1 0-1.145.976l2.915 2.915a.75.75 0 1 0 1.06-1.06zM6.5 18a3 3 0 1 1 0-6 3 3 0 0 1 0 6\\\"\\n />\\n </symbol>\\n <symbol id=\\\"import\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M21.25 4.5a.75.75 0 0 1 .743.648L22 5.25v13.004a.75.75 0 0 1-1.493.102l-.007-.102V5.25a.75.75 0 0 1 .75-.75m-8.603 1.804.072-.084a.75.75 0 0 1 .977-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.997 5.003a.75.75 0 0 1-1.133-.976l.072-.084 3.711-3.717H2.75a.75.75 0 0 1-.743-.647L2 11.755a.75.75 0 0 1 .648-.743l.102-.007 13.693-.001-3.724-3.724a.75.75 0 0 1-.072-.976l.072-.084z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"info\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998m0 1.5a8.502 8.502 0 1 0 0 17.003 8.502 8.502 0 0 0 0-17.003m-.004 7a.75.75 0 0 1 .744.648l.007.102.004 5.502a.75.75 0 0 1-1.494.102l-.006-.101-.004-5.502a.75.75 0 0 1 .75-.75m.005-3.497a.999.999 0 1 1 0 1.997.999.999 0 0 1 0-1.997\\\"\\n />\\n </symbol>\\n <symbol id=\\\"iot\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19 4.492a2.5 2.5 0 0 1-3.012 2.448l-1.28 2.117A4 4 0 0 1 16 12.06l1.296.26a2.5 2.5 0 1 1-.279 1.475l-1.319-.266a4 4 0 0 1-1.744 1.964l.495 1.511h.051a2.5 2.5 0 1 1-1.472.479l-.497-1.516a4 4 0 0 1-3.752-1.593l-1.794.848q.015.138.015.28a2.5 2.5 0 1 1-.623-1.652l1.754-.829a4 4 0 0 1 .784-3.566l-.991-1.13a2.5 2.5 0 1 1 1.164-.948l.982 1.12A4 4 0 0 1 12 8.001c.505 0 .989.093 1.434.264l1.245-2.06A2.5 2.5 0 1 1 19 4.492m-1.5 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0M7 7.001a1 1 0 1 0 0-2 1 1 0 0 0 0 2m5 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5m-6.5 1a1 1 0 1 0-2 0 1 1 0 0 0 2 0m10 4.002a1 1 0 1 0-2 0 1 1 0 0 0 2 0m4-5.002a1 1 0 1 0 0-2 1 1 0 0 0 0 2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"key\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 7a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0M15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.28.28 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45M10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.77 1.77 0 0 0 .486-1.564 5 5 0 0 1-.088-.845\\\"\\n />\\n </symbol>\\n <symbol id=\\\"key_multiple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2q.465 0 .908.082a6.5 6.5 0 0 0-1.582 1.483A3.5 3.5 0 0 0 8.62 7.91a.75.75 0 0 1-.194.725L3.5 13.561V16.5h2v-1.75a.75.75 0 0 1 .75-.75H8.5v-1.25a.75.75 0 0 1 .22-.53l1.915-1.915q.336.7.823 1.298L10 13.06v1.689a.75.75 0 0 1-.75.75H7v1.75a.75.75 0 0 1-.75.75h-3.5a.75.75 0 0 1-.75-.75v-4a.75.75 0 0 1 .22-.53l4.855-4.855A5 5 0 0 1 12 2m4.5 1.5a4 4 0 0 0-1.894 7.524.75.75 0 0 1 .394.66v7.734l2.017 1.834 2.123-1.799-.921-.924a.75.75 0 0 1 0-1.058l.967-.971-.967-.97A.75.75 0 0 1 18 15v-3.316a.75.75 0 0 1 .394-.66A4 4 0 0 0 16.5 3.5m-5.5 4a5.5 5.5 0 1 1 8.5 4.61v2.58l1.276 1.28a.75.75 0 0 1 0 1.06l-.967.97.967.97a.75.75 0 0 1-.046 1.102l-3.245 2.75a.75.75 0 0 1-.99-.017l-2.75-2.5a.75.75 0 0 1-.245-.555v-7.64A5.5 5.5 0 0 1 11 7.5m6.5-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"label\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.75 2A2.25 2.25 0 0 1 22 4.25v5.462a3.25 3.25 0 0 1-.952 2.298l-8.5 8.503a3.255 3.255 0 0 1-4.597.001L3.489 16.06a3.25 3.25 0 0 1-.004-4.596l8.5-8.51a3.25 3.25 0 0 1 2.3-.953zm0 1.5h-5.466c-.464 0-.91.185-1.238.513l-8.512 8.523a1.75 1.75 0 0 0 .015 2.462l4.461 4.454a1.755 1.755 0 0 0 2.477 0l8.5-8.503a1.75 1.75 0 0 0 .513-1.237V4.25a.75.75 0 0 0-.75-.75M17 5.502a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"labels\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.5 6.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0m-6.992-3.602A3.25 3.25 0 0 1 12.75 2h5.499A2.75 2.75 0 0 1 21 4.75v4.953a3.25 3.25 0 0 1-.97 2.316l-6.946 6.835a2.25 2.25 0 0 1-3.166-.01l-6.256-6.226a2.25 2.25 0 0 1 .034-3.223zm2.243.602c-.45 0-.883.173-1.208.484L4.73 10.48a.75.75 0 0 0-.011 1.075l6.257 6.226a.75.75 0 0 0 1.055.003l6.945-6.834a1.75 1.75 0 0 0 .523-1.247V4.75c0-.69-.56-1.25-1.25-1.25zm7.98 9.232-1.475 1.451q-.06.082-.134.155l-5.334 5.229a3.25 3.25 0 0 1-4.575-.013L7.282 17.63l-2.411-2.386a1 1 0 0 1-.107-.12l-1.63-1.621a2.75 2.75 0 0 0 .682 2.807l4.356 4.311a4.75 4.75 0 0 0 6.666.016l5.334-5.229a2.75 2.75 0 0 0 .69-2.813 4 4 0 0 1-.131.136\\\"\\n />\\n </symbol>\\n <symbol id=\\\"layer_diagonal_sparkle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.088 7.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 2.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zm-12.8-9.077a2.25 2.25 0 0 1 2.95 1.572L13.05 4a1.6 1.6 0 0 0-.55.332v-.08a.75.75 0 0 0-1.005-.704l-6.84 2.475A1.75 1.75 0 0 0 3.5 7.667v6.082a.75.75 0 0 0 1.005.705L5 14.275v1.595a2.25 2.25 0 0 1-3-2.12V7.666A3.25 3.25 0 0 1 4.144 4.61zm-3.17 5.595 4.346-1.573A1.7 1.7 0 0 0 13 7l.652.214-5.327 1.928a1.25 1.25 0 0 0-.825 1.176v6.432a.75.75 0 0 0 1.005.705l.495-.18v1.596a2.25 2.25 0 0 1-3-2.122v-6.432A2.75 2.75 0 0 1 7.814 7.73m3.67 3.12L15.8 9.288l.201.71c.088.257.24.481.435.655l-4.44 1.607a.75.75 0 0 0-.495.705v6.783a.75.75 0 0 0 1.005.705l7.5-2.714a.75.75 0 0 0 .495-.705v-2.448c.214.276.512.463.96.463.211 0 .389-.042.54-.114v2.1a2.25 2.25 0 0 1-1.484 2.115l-7.5 2.714A2.25 2.25 0 0 1 10 19.749v-6.783a2.25 2.25 0 0 1 1.484-2.116\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lightbulb\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2.001a7.25 7.25 0 0 1 7.25 7.25c0 2.096-.9 4.02-2.663 5.742a.75.75 0 0 0-.175.265l-.032.103-1.13 4.895a2.25 2.25 0 0 1-2.02 1.737l-.173.007h-2.114a2.25 2.25 0 0 1-2.147-1.577l-.045-.167-1.13-4.895a.75.75 0 0 0-.206-.368c-1.68-1.64-2.577-3.463-2.659-5.444l-.006-.298.004-.24A7.25 7.25 0 0 1 12 2.002M14.115 18.5H9.884l.329 1.42a.75.75 0 0 0 .627.573l.103.008h2.114a.75.75 0 0 0 .7-.483l.03-.099zM12 3.501a5.75 5.75 0 0 0-5.746 5.53l-.004.22.007.277c.076 1.563.8 3.02 2.206 4.392.264.258.46.576.571.926l.049.178.455 1.975h4.923l.458-1.976a2.25 2.25 0 0 1 .493-.97l.127-.133c1.404-1.373 2.128-2.828 2.204-4.392l.007-.277-.004-.22A5.75 5.75 0 0 0 12 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"line_horizontal\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M2 11.75a.75.75 0 0 1 .75-.75h18.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 7a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 15.5h2.25a.75.75 0 0 1 .11 1.492L9.25 17H7a5 5 0 0 1-.25-9.994L7 7zM17 7a5 5 0 0 1 .25 9.994L17 17h-2.25a.75.75 0 0 1-.11-1.492l.11-.008H17a3.5 3.5 0 0 0 .206-6.994L17 8.5h-2.25a.75.75 0 0 1-.11-1.492L14.75 7zM7 11.25h10a.75.75 0 0 1 .102 1.493L17 12.75H7a.75.75 0 0 1-.102-1.493zh10z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M9.25 5a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 13.5h2.25a.75.75 0 0 1 .11 1.492L9.25 15H7a5 5 0 0 1-.25-9.994L7 5zM17 5a5 5 0 0 1 4.43 7.322 6.5 6.5 0 0 0-1.294-.765 3.5 3.5 0 0 0-2.93-5.05L17 6.499h-2.25a.75.75 0 0 1-.11-1.492L14.75 5zM7 9.25h10a.75.75 0 0 1 .102 1.493L17 10.75H7a.75.75 0 0 1-.102-1.493zm16 8.25a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L18.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L17.5 16.793z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"link_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.25 3A3.25 3.25 0 0 0 3 6.25v6a3.25 3.25 0 0 0 3.25 3.25H7.5V14H6.25a1.75 1.75 0 0 1-1.75-1.75v-6c0-.966.784-1.75 1.75-1.75h6c.966 0 1.75.784 1.75 1.75v6A1.75 1.75 0 0 1 12.25 14H11v1.5h1.25a3.25 3.25 0 0 0 3.25-3.25v-6A3.25 3.25 0 0 0 12.25 3zM10 11.75c0-.966.784-1.75 1.75-1.75h1.248V8.5H11.75a3.25 3.25 0 0 0-3.25 3.25v6A3.25 3.25 0 0 0 11.75 21h6A3.25 3.25 0 0 0 21 17.75v-6a3.25 3.25 0 0 0-3.25-3.25H16.5V10h1.25c.966 0 1.75.784 1.75 1.75v6a1.75 1.75 0 0 1-1.75 1.75h-6A1.75 1.75 0 0 1 10 17.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"list_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm0 3.75a.75.75 0 1 0 0 1.5h5.5a.75.75 0 1 0 0-1.5zm-.75 4.5a.75.75 0 0 1 .75-.75h5.5a.75.75 0 1 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M8.75 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0m-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"location_on\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.843 4.568a8.707 8.707 0 0 1 12.314 12.314l-1.187 1.174q-1.312 1.287-3.406 3.312a2.25 2.25 0 0 1-3.128 0l-3.491-3.396q-.659-.646-1.102-1.09a8.707 8.707 0 0 1 0-12.314m11.253 1.06A7.207 7.207 0 1 0 6.903 15.822l1.488 1.468q1.228 1.201 3.088 3a.75.75 0 0 0 1.042 0l3.395-3.3q.705-.691 1.18-1.168a7.207 7.207 0 0 0 0-10.192M12 7.999a3.002 3.002 0 1 1 0 6.004A3.002 3.002 0 0 1 12 8m0 1.5a1.502 1.502 0 1 0 0 3.004 1.502 1.502 0 0 0 0-3.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"location_searching\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2a.75.75 0 0 1 .743.648l.007.102v1.788a7.5 7.5 0 0 1 6.713 6.714l.037-.002h1.75a.75.75 0 0 1 .102 1.493l-.102.007-1.788-.001a7.5 7.5 0 0 1-6.714 6.714l.002.037v1.75a.75.75 0 0 1-1.493.102l-.007-.102.001-1.788a7.5 7.5 0 0 1-6.714-6.714l-.037.002H2.75a.75.75 0 0 1-.102-1.493l.102-.007h1.788a7.5 7.5 0 0 1 6.714-6.713L11.25 4.5V2.75A.75.75 0 0 1 12 2m0 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12m0 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 15.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M8 6a4 4 0 1 1 8 0v1h.75A3.25 3.25 0 0 1 20 10.25v7.5A3.25 3.25 0 0 1 16.75 21h-9.5A3.25 3.25 0 0 1 4 17.75v-7.5A3.25 3.25 0 0 1 7.25 7H8zm4-2.5A2.5 2.5 0 0 0 9.5 6v1h5V6A2.5 2.5 0 0 0 12 3.5m-4.75 5a1.75 1.75 0 0 0-1.75 1.75v7.5c0 .966.784 1.75 1.75 1.75h9.5a1.75 1.75 0 0 0 1.75-1.75v-7.5a1.75 1.75 0 0 0-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"lock_open\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16 5a2.5 2.5 0 0 1 5 0v.25a.75.75 0 0 0 1.5 0V5a4 4 0 0 0-8 0v2H7.25A3.25 3.25 0 0 0 4 10.25v7.5A3.25 3.25 0 0 0 7.25 21h9.5A3.25 3.25 0 0 0 20 17.75v-7.5A3.25 3.25 0 0 0 16.75 7H16zM7.25 8.5h9.5c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-9.5a1.75 1.75 0 0 1-1.75-1.75v-7.5c0-.966.784-1.75 1.75-1.75m4.75 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"login\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M26 30H14a2 2 0 0 1-2-2v-3h2v3h12V4H14v3h-2V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v24a2 2 0 0 1-2 2\\\"\\n />\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.59 20.59 18.17 17H4v-2h14.17l-3.58-3.59L16 10l6 6-6 6z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"logout\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.502 11.5a1.002 1.002 0 1 1 0 2.004 1.002 1.002 0 0 1 0-2.005M12 4.353v6.65h7.442L17.72 9.28a.75.75 0 0 1-.073-.977l.073-.084a.75.75 0 0 1 .976-.072l.084.072 2.997 2.998a.75.75 0 0 1 .073.976l-.073.084-2.996 3.003a.75.75 0 0 1-1.134-.975l.072-.084 1.713-1.717h-7.431L12 19.25a.75.75 0 0 1-.88.738l-8.5-1.501a.75.75 0 0 1-.62-.739V5.75a.75.75 0 0 1 .628-.74l8.5-1.396a.75.75 0 0 1 .872.74m-1.5.883-7 1.15v10.732l7 1.236zM13 18.5h.765l.102-.007a.75.75 0 0 0 .648-.744l-.007-4.25H13zm.002-8.5L13 8.725V5h.745a.75.75 0 0 1 .743.647l.007.101.007 4.252z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mail\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.25 4h13.5a3.25 3.25 0 0 1 3.245 3.066L22 7.25v9.5a3.25 3.25 0 0 1-3.066 3.245L18.75 20H5.25a3.25 3.25 0 0 1-3.245-3.066L2 16.75v-9.5a3.25 3.25 0 0 1 3.066-3.245zh13.5zM20.5 9.373l-8.15 4.29a.75.75 0 0 1-.603.043l-.096-.042L3.5 9.374v7.376a1.75 1.75 0 0 0 1.606 1.744l.144.006h13.5a1.75 1.75 0 0 0 1.744-1.607l.006-.143zM18.75 5.5H5.25a1.75 1.75 0 0 0-1.744 1.606L3.5 7.25v.429l8.5 4.474 8.5-4.475V7.25a1.75 1.75 0 0 0-1.607-1.744z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"map\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m9.203 4 .047-.002.046.001.068.007.016.004q.129.02.25.092l.053.034 5.07 3.565L19.82 4.14a.75.75 0 0 1 1.174.51l.007.104v10.632a.75.75 0 0 1-.238.548l-.08.066-5.5 3.866a.74.74 0 0 1-.828.023L9.25 16.297l-5.07 3.565a.75.75 0 0 1-1.174-.51l-.007-.104V8.616a.75.75 0 0 1 .238-.548l.08-.066 5.5-3.866a.8.8 0 0 1 .2-.101l.123-.028zm10.298 2.197-4 2.812v8.799l4-2.812zM8.5 6.193l-4 2.812v8.8l4-2.813zm1.502 0v8.8l4 2.811V9.005z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mic\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 11a.75.75 0 0 1 .743.648l.007.102v.5a6.75 6.75 0 0 1-6.249 6.732l-.001 2.268a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L5 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004h.5a5.25 5.25 0 0 0 5.246-5.034l.004-.216v-.5a.75.75 0 0 1 .75-.75M12 2a4 4 0 0 1 4 4v6a4 4 0 0 1-8 0V6a4 4 0 0 1 4-4m0 1.5A2.5 2.5 0 0 0 9.5 6v6a2.5 2.5 0 0 0 5 0V6A2.5 2.5 0 0 0 12 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"mic_record\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11 17.5c0 1.096.271 2.129.75 3.035v.715a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L4 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004zm.175-1.504A6.51 6.51 0 0 1 15 11.498V6a4 4 0 0 0-8 0v6a4 4 0 0 0 4.175 3.996M20 17.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0m3 0a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-9.5 0a4 4 0 1 0 8 0 4 4 0 0 0-8 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"microchip_ai\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n fill-rule=\\\"evenodd\\\"\\n d=\\\"M8.75 4a.75.75 0 0 0-1.5 0v1.25H7A1.75 1.75 0 0 0 5.25 7v.25H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25V17c0 .966.784 1.75 1.75 1.75h.25V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25H17A1.75 1.75 0 0 0 18.75 17v-.25H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25V7A1.75 1.75 0 0 0 17 5.25h-.25V4a.75.75 0 0 0-1.5 0v1.25h-2.5V4a.75.75 0 0 0-1.5 0v1.25h-2.5zm-2 3A.25.25 0 0 1 7 6.75h10a.25.25 0 0 1 .25.25v10a.25.25 0 0 1-.25.25H7a.25.25 0 0 1-.25-.25zm5.049 7.753-.275-.772H9.497l-.275.772a.75.75 0 0 1-1.413-.504l1.7-4.77.003-.009.004-.01c.152-.392.516-.711.994-.711.479 0 .842.319.995.712l.003.009.004.01 1.7 4.77a.75.75 0 0 1-1.413.503m-1.289-3.615.479 1.343h-.958zm3.74-1.64a.75.75 0 0 1 1.5 0v5.003a.75.75 0 1 1-1.5 0z\\\"\\n clip-rule=\\\"evenodd\\\"\\n />\\n </symbol>\\n <symbol id=\\\"microsoft\\\" viewBox=\\\"0 0 21 21\\\">\\n <path fill=\\\"#f25022\\\" d=\\\"M1 1h9v9H1z\\\" />\\n <path fill=\\\"#00a4ef\\\" d=\\\"M1 11h9v9H1z\\\" />\\n <path fill=\\\"#7fba00\\\" d=\\\"M11 1h9v9h-9z\\\" />\\n <path fill=\\\"#ffb900\\\" d=\\\"M11 11h9v9h-9z\\\" />\\n </symbol>\\n <symbol id=\\\"moon\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M20.026 17.001c-2.762 4.784-8.879 6.423-13.663 3.661A10 10 0 0 1 3.13 17.68a.75.75 0 0 1 .365-1.132c3.767-1.348 5.785-2.91 6.956-5.146 1.233-2.353 1.551-4.93.689-8.463a.75.75 0 0 1 .769-.927 9.96 9.96 0 0 1 4.457 1.327c4.784 2.762 6.423 8.879 3.66 13.662m-8.247-4.903c-1.252 2.389-3.312 4.1-6.818 5.499a8.5 8.5 0 0 0 2.152 1.766 8.502 8.502 0 0 0 8.502-14.725 8.5 8.5 0 0 0-2.792-1.015c.647 3.384.23 6.043-1.045 8.475\\\"\\n />\\n </symbol>\\n <symbol id=\\\"more_horizontal\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.75 12a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0m6 0a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0M18 13.75a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"more_vertical\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 7.75a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5m0 6a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5M10.25 18a1.75 1.75 0 1 0 3.5 0 1.75 1.75 0 0 0-3.5 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"navigation\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.958 2.104c1.213-.467 2.405.725 1.938 1.938L15.36 21.038c-.522 1.36-2.48 1.252-2.85-.156l-1.845-7.011a.75.75 0 0 0-.535-.535l-7.01-1.845c-1.409-.37-1.516-2.328-.157-2.85zm.538 1.4L3.5 10.04l7.011 1.845a2.25 2.25 0 0 1 1.603 1.603l1.845 7.01z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"notification\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.996a7.49 7.49 0 0 1 7.496 7.25l.004.25v4.097l1.38 3.156a1.25 1.25 0 0 1-1.145 1.75L15 18.502a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-4.155 3.352-7.5 7.5-7.5M13.5 18.5l-3 .002a1.5 1.5 0 0 0 2.993.145zM12 3.496c-3.32 0-6 2.674-6 6v4.41L4.656 17h14.697L18 13.907V9.509l-.003-.225A5.99 5.99 0 0 0 12 3.496\\\"\\n />\\n </symbol>\\n <symbol id=\\\"notification_off\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"m5.22 6.28-3-3a.75.75 0 0 1 1.06-1.06l18.5 18.5a.75.75 0 1 1-1.06 1.06l-3.28-3.28-2.44.001a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-1.152.258-2.242.72-3.216M15.94 17 6.364 7.425A6 6 0 0 0 6 9.496v4.41L4.656 17zm-2.44 1.5-3 .001a1.5 1.5 0 0 0 2.993.145zm4.5-4.593.708 1.62 2.188 2.187a1.25 1.25 0 0 0-.016-.965l-1.38-3.156V9.496l-.004-.25A7.49 7.49 0 0 0 12 1.995 7.48 7.48 0 0 0 7.043 3.86l1.064 1.064A5.98 5.98 0 0 1 12 3.496a5.99 5.99 0 0 1 5.997 5.788l.003.225z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"offer-request\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.75 11.5a.75.75 0 0 0-.72.54c.423.275.813.598 1.16.96h5.06a.75.75 0 0 0 0-1.5zM5.5 4v7.076a6.5 6.5 0 0 0-1.5.422V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03.049.04 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2h-6.81a6.5 6.5 0 0 0 1.078-1.5H18a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5m10.75 15h-3.424A6.5 6.5 0 0 0 13 17.5h3.25a.75.75 0 0 1 0 1.5m0-3h-3.424a6.5 6.5 0 0 0-.558-1.5h3.982a.75.75 0 0 1 0 1.5M13.5 4.621V8a.5.5 0 0 0 .5.5h3.378zM6.5 23a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11m3-5a.5.5 0 0 0 0-1H4.707l1.647-1.646a.5.5 0 0 0-.708-.708l-2.5 2.5a.5.5 0 0 0 0 .708l2.5 2.5a.5.5 0 0 0 .708-.708L4.707 18z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"parent_child\\\" viewBox=\\\"0 0 32 32\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M28 12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h11v4H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H9v-4h14v4h-3a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-3v-4a2 2 0 0 0-2-2h-6v-4ZM12 28H4v-4h8Zm16 0h-8v-4h8ZM4 4h24v6H4Z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"people_community\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M7.5 3.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M4.5 5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-.732 4C2.79 9 2 9.791 2 10.768v.36c0 .207 0 1.408.7 2.575.548.91 1.477 1.727 2.975 2.093a2.78 2.78 0 0 1 1.062-1.335c-1.603-.171-2.361-.883-2.75-1.53-.484-.806-.487-1.664-.487-1.806v-.357c0-.148.12-.268.268-.268H8.03A4 4 0 0 1 8.535 9zm11.697 0c.261.452.437.959.504 1.5h4.263c.148 0 .268.12.268.268v.357c0 .142-.003 1-.487 1.805-.389.648-1.147 1.36-2.75 1.531.48.32.856.786 1.062 1.335 1.498-.366 2.427-1.183 2.974-2.093.701-1.167.701-2.367.701-2.576v-.36C22 9.792 21.209 9 20.232 9zM15 5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0m1.5-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6M12 9.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M9 11a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-2.5 5.768C6.5 15.79 7.291 15 8.268 15h7.464c.977 0 1.768.791 1.768 1.768v.36c0 .207 0 1.408-.7 2.575C16.057 20.937 14.613 22 12 22s-4.058-1.063-4.8-2.297c-.7-1.167-.7-2.367-.7-2.576zm1.768-.268a.27.27 0 0 0-.268.268v.357c0 .142.003 1 .487 1.805.446.743 1.377 1.57 3.513 1.57s3.067-.827 3.513-1.57c.484-.805.487-1.663.487-1.805v-.357a.27.27 0 0 0-.268-.268z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"person_swap\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.75 13.997c.981 0 1.815.628 2.123 1.503h-2.056l-.066-.003H4.249a.75.75 0 0 0-.749.75v.577c0 .535.191 1.054.539 1.46 1.253 1.469 3.22 2.214 5.957 2.214h.168c.086.183.203.352.35.498l.934.933a15 15 0 0 1-1.452.07c-3.145 0-5.531-.906-7.098-2.74A3.75 3.75 0 0 1 2 16.824v-.578a2.25 2.25 0 0 1 2.249-2.249zM9.997 2.002a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7m4.784 14.282a.75.75 0 0 0-1.06-1.06l-2.5 2.5a.75.75 0 0 0 0 1.06l2.5 2.5a.75.75 0 0 0 1.06-1.061l-1.22-1.22h6.88l-1.22 1.22a.75.75 0 0 0 1.06 1.06l2.5-2.498a.75.75 0 0 0 0-1.06l-2.5-2.502a.75.75 0 1 0-1.06 1.06l1.218 1.22h-6.877z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"phone\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M15.75 2A2.25 2.25 0 0 1 18 4.25v15.5A2.25 2.25 0 0 1 15.75 22h-7.5A2.25 2.25 0 0 1 6 19.75V4.25A2.25 2.25 0 0 1 8.25 2zm0 1.5h-7.5a.75.75 0 0 0-.75.75v15.5c0 .414.336.75.75.75h7.5a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75m-2.501 14a.75.75 0 0 1 .002 1.5l-2.5.004a.75.75 0 0 1-.002-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"question\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 4a5 5 0 0 0-5 5 1 1 0 0 0 2 0c0-1.658 1.342-3 3-3s3 1.342 3 3c0 .816-.199 1.294-.438 1.629-.262.365-.625.638-1.128.985l-.116.078c-.447.306-1.023.699-1.469 1.247-.527.648-.849 1.467-.849 2.561v.5a1 1 0 1 0 2 0v-.5c0-.656.178-1.024.4-1.299.257-.314.603-.552 1.114-.903l.053-.037c.496-.34 1.133-.786 1.62-1.468C16.7 11.081 17 10.183 17 9a5 5 0 0 0-5-5m0 17.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"question_circle\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667M12 15.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2m0-8.75a2.75 2.75 0 0 1 2.75 2.75c0 1.01-.297 1.574-1.051 2.359l-.169.171c-.622.622-.78.886-.78 1.47a.75.75 0 0 1-1.5 0c0-1.01.297-1.574 1.051-2.359l.169-.171c.622-.622.78-.886.78-1.47a1.25 1.25 0 0 0-2.493-.128l-.007.128a.75.75 0 0 1-1.5 0A2.75 2.75 0 0 1 12 6.75\\\"\\n />\\n </symbol>\\n <symbol id=\\\"radio_button\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 22.002c5.524 0 10.002-4.478 10.002-10.001 0-5.524-4.478-10.002-10.002-10.002S1.998 6.477 1.998 12.001c0 5.523 4.478 10.001 10.002 10.001m0-1.5A8.502 8.502 0 1 1 12 3.5a8.502 8.502 0 0 1 0 17.003\\\"\\n />\\n </symbol>\\n <symbol id=\\\"radio_button_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 1.999c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10.001-10.002 10.001S1.998 17.524 1.998 12.001C1.998 6.477 6.476 1.999 12 1.999m0 1.5a8.502 8.502 0 1 0 0 17.003A8.502 8.502 0 0 0 12 3.5M11.996 6a5.998 5.998 0 1 1 0 11.996 5.998 5.998 0 0 1 0-11.996\\\"\\n />\\n </symbol>\\n <symbol id=\\\"record_stop\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14m-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0m5-2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"rocket\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.057 7.43a2.5 2.5 0 1 1 3.536 3.536 2.5 2.5 0 0 1-3.536-3.535m2.475 1.061a1 1 0 1 0-1.414 1.415 1 1 0 0 0 1.414-1.415m5.977-4.169a2.75 2.75 0 0 0-1.811-1.81l-.663-.206a6.75 6.75 0 0 0-6.773 1.674l-.996.996a3.5 3.5 0 0 0-4.57.327L5.455 6.545a.75.75 0 0 0 0 1.06l1.591 1.592-.18.18a1.75 1.75 0 0 0 0 2.474l.496.496-1.396.796a.75.75 0 0 0-.158 1.181l3.889 3.89a.75.75 0 0 0 1.181-.158l.798-1.395.497.497a1.75 1.75 0 0 0 2.475 0l.177-.177 1.59 1.59a.75.75 0 0 0 1.06 0l1.242-1.243a3.5 3.5 0 0 0 .328-4.567l.998-.998a6.75 6.75 0 0 0 1.673-6.777zm-2.256-.378c.393.122.701.43.823.823l.207.665a5.25 5.25 0 0 1-1.302 5.27l-5.395 5.395a.25.25 0 0 1-.353 0l-5.307-5.306a.25.25 0 0 1 0-.354l5.397-5.396a5.25 5.25 0 0 1 5.268-1.302zm-1.289 9.897c.453.766.35 1.769-.308 2.427l-.712.712-1.06-1.06zM7.758 6.363a2 2 0 0 1 2.428-.307l-2.08 2.08-1.06-1.06zm2.818 9.199-.514.897-2.5-2.5.898-.513zM6.69 18.394a.75.75 0 0 0-1.06-1.06l-2.476 2.474a.75.75 0 0 0 1.061 1.061zM4.745 15.39a.75.75 0 0 1 0 1.06l-1.06 1.061a.75.75 0 0 1-1.061-1.06l1.06-1.061a.75.75 0 0 1 1.061 0m3.887 4.952a.75.75 0 1 0-1.06-1.06L6.513 20.34a.75.75 0 0 0 1.06 1.06z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"save\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A2.75 2.75 0 0 1 5.75 3h9.965a3.25 3.25 0 0 1 2.298.952l2.035 2.035c.61.61.952 1.437.952 2.299v9.964A2.75 2.75 0 0 1 18.25 21H5.75A2.75 2.75 0 0 1 3 18.25zM5.75 4.5c-.69 0-1.25.56-1.25 1.25v12.5c0 .69.56 1.25 1.25 1.25H6v-5.25A2.25 2.25 0 0 1 8.25 12h7.5A2.25 2.25 0 0 1 18 14.25v5.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238l-2.035-2.035a1.75 1.75 0 0 0-.952-.49V7.25a2.25 2.25 0 0 1-2.25 2.25h-4.5A2.25 2.25 0 0 1 7 7.25V4.5zm10.75 15v-5.25a.75.75 0 0 0-.75-.75h-7.5a.75.75 0 0 0-.75.75v5.25zm-8-15v2.75c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75V4.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"save_all\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.75 18A2.75 2.75 0 0 1 3 15.25v-9.5A2.75 2.75 0 0 1 5.75 3h6.964a3.25 3.25 0 0 1 2.299.952l2.035 2.035c.61.61.952 1.437.952 2.299v6.964A2.75 2.75 0 0 1 15.25 18zM4.5 5.75v9.5c0 .69.56 1.25 1.25 1.25H6v-3.25A2.25 2.25 0 0 1 8.25 11h4.5A2.25 2.25 0 0 1 15 13.25v3.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238L14 5.061V6.25a2.25 2.25 0 0 1-2.25 2.25h-2.5A2.25 2.25 0 0 1 7 6.25V4.5H5.75c-.69 0-1.25.56-1.25 1.25m9 10.75v-3.25a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0-.75.75v3.25zm-5-10.25c0 .414.336.75.75.75h2.5a.75.75 0 0 0 .75-.75V4.5h-4zM10.75 21a4.74 4.74 0 0 1-3.464-1.5h8.964a3.25 3.25 0 0 0 3.25-3.25V8.44l.548.548c.61.609.952 1.436.952 2.298v4.964A4.75 4.75 0 0 1 16.25 21z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"scan_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.25 3.5A1.75 1.75 0 0 0 3.5 5.25v3a.75.75 0 0 1-1.5 0v-3A3.25 3.25 0 0 1 5.25 2h3a.75.75 0 0 1 0 1.5zm0 17a1.75 1.75 0 0 1-1.75-1.75v-3a.75.75 0 0 0-1.5 0v3A3.25 3.25 0 0 0 5.25 22h3a.75.75 0 0 0 0-1.5zM20.5 5.25a1.75 1.75 0 0 0-1.75-1.75h-3a.75.75 0 0 1 0-1.5h3A3.25 3.25 0 0 1 22 5.25v3a.75.75 0 0 1-1.5 0zM18.75 20.5a1.75 1.75 0 0 0 1.75-1.75v-3a.75.75 0 0 1 1.5 0v3A3.25 3.25 0 0 1 18.75 22h-3a.75.75 0 0 1 0-1.5zM7.75 7a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 15a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"screen\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.75 4A2.75 2.75 0 0 0 2 6.75v8.5A2.75 2.75 0 0 0 4.75 18h14.5A2.75 2.75 0 0 0 22 15.25v-8.5A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v8.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25zM5.75 19.5a.75.75 0 0 0 0 1.5h12.5a.75.75 0 0 0 0-1.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"search\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 10a5.5 5.5 0 1 1 11 0 5.5 5.5 0 0 1-11 0M10 3a7 7 0 1 0 4.391 12.452l5.329 5.328a.75.75 0 1 0 1.06-1.06l-5.328-5.329A7 7 0 0 0 10 3\\\"\\n />\\n </symbol>\\n <symbol id=\\\"send\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M5.694 12 2.299 3.272a.75.75 0 0 1 .942-.982l.093.039 18 9a.75.75 0 0 1 .097 1.284l-.097.058-18 9c-.583.291-1.217-.245-1.065-.848l.03-.095zL2.299 3.272zM4.402 4.54l2.61 6.71h6.627a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.743l-.101.007H7.01l-2.609 6.71L19.322 12z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"settings\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.012 2.25c.734.008 1.465.093 2.182.253a.75.75 0 0 1 .582.649l.17 1.527a1.384 1.384 0 0 0 1.927 1.116l1.4-.615a.75.75 0 0 1 .85.174 9.8 9.8 0 0 1 2.205 3.792.75.75 0 0 1-.272.825l-1.241.916a1.38 1.38 0 0 0 0 2.226l1.243.915a.75.75 0 0 1 .272.826 9.8 9.8 0 0 1-2.204 3.792.75.75 0 0 1-.849.175l-1.406-.617a1.38 1.38 0 0 0-1.926 1.114l-.17 1.526a.75.75 0 0 1-.571.647 9.5 9.5 0 0 1-4.406 0 .75.75 0 0 1-.572-.647l-.169-1.524a1.382 1.382 0 0 0-1.925-1.11l-1.406.616a.75.75 0 0 1-.85-.175 9.8 9.8 0 0 1-2.203-3.796.75.75 0 0 1 .272-.826l1.243-.916a1.38 1.38 0 0 0 0-2.226l-1.243-.914a.75.75 0 0 1-.272-.826 9.8 9.8 0 0 1 2.205-3.792.75.75 0 0 1 .85-.174l1.4.615a1.387 1.387 0 0 0 1.93-1.118l.17-1.526a.75.75 0 0 1 .583-.65q1.074-.238 2.201-.252m0 1.5a9 9 0 0 0-1.354.117l-.11.977A2.886 2.886 0 0 1 6.526 7.17l-.899-.394A8.3 8.3 0 0 0 4.28 9.092l.797.587a2.88 2.88 0 0 1 .001 4.643l-.799.588c.32.842.776 1.626 1.348 2.322l.905-.397a2.882 2.882 0 0 1 4.017 2.318l.109.984c.89.15 1.799.15 2.688 0l.11-.984a2.88 2.88 0 0 1 4.018-2.322l.904.396a8.3 8.3 0 0 0 1.348-2.318l-.798-.588a2.88 2.88 0 0 1-.001-4.643l.797-.587a8.3 8.3 0 0 0-1.348-2.317l-.897.393a2.884 2.884 0 0 1-4.023-2.324l-.109-.976a9 9 0 0 0-1.334-.117M12 8.25a3.75 3.75 0 1 1 0 7.5 3.75 3.75 0 0 1 0-7.5m0 1.5a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11zm1.5.728V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_dismiss\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.45 2.15C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11V5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0M12 3.678c-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8M9.28 8.222l2.724 2.723 2.725-2.723a.75.75 0 0 1 .975-.073l.084.073a.75.75 0 0 1 .073.975l-.073.084-2.724 2.723 2.724 2.725a.749.749 0 1 1-1.06 1.059l-2.724-2.724-2.723 2.724a.75.75 0 0 1-.975.073l-.084-.073a.75.75 0 0 1-.073-.975l.073-.084 2.723-2.725-2.723-2.723A.75.75 0 0 1 9.28 8.22\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_lock\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11q0 .271-.012.539a3.5 3.5 0 0 0-1.488-.894V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442a21 21 0 0 0 1-.439V21.5q0 .075.004.146-.356.155-.73.302a.75.75 0 0 1-.549 0C5.958 19.676 3 16 3 11zM16 15v-1a2.5 2.5 0 0 1 5 0v1h.5a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-1.5 1.5h-6a1.5 1.5 0 0 1-1.5-1.5v-5a1.5 1.5 0 0 1 1.5-1.5zm1.5-1v1h2v-1a1 1 0 1 0-2 0m2 5a1 1 0 1 0-2 0 1 1 0 0 0 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shield_person\\\" viewBox=\\\"0 0 20 20\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10 9.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4m0 5c2.5 0 3.5-1.255 3.5-2.5a1.5 1.5 0 0 0-1.5-1.5H8A1.5 1.5 0 0 0 6.5 12c0 1.25 1 2.5 3.5 2.5m.277-12.416a.5.5 0 0 0-.554 0 15.05 15.05 0 0 1-6.294 2.421A.5.5 0 0 0 3 5v4.5c0 3.891 2.307 6.73 6.82 8.467a.5.5 0 0 0 .36 0C14.693 16.23 17 13.39 17 9.5V5a.5.5 0 0 0-.43-.495 15.05 15.05 0 0 1-6.293-2.421M4 5.428a16 16 0 0 0 5.6-2.082l.4-.249.4.249A16 16 0 0 0 16 5.428V9.5c0 3.392-1.968 5.863-6 7.463-4.032-1.6-6-4.071-6-7.463z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_activity\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.314 3.527a.75.75 0 1 0-.12-1.495C6.049 2.442 2 6.748 2 12c0 5.523 4.477 10 10 10 5.249 0 9.553-4.044 9.967-9.186a.75.75 0 1 0-1.495-.12 8.5 8.5 0 1 1-9.158-9.167m6.383 1.147a.75.75 0 0 1 1.06-.046q.322.294.616.617a.75.75 0 0 1-1.105 1.013 9 9 0 0 0-.525-.525.75.75 0 0 1-.046-1.06M11.25 6a.75.75 0 0 1 .743.648L12 6.75V12h3.25a.75.75 0 0 1 .102 1.493l-.102.007h-4a.75.75 0 0 1-.743-.649l-.007-.101v-6a.75.75 0 0 1 .75-.75m2.531-3.11a.75.75 0 0 1 .925-.52 10 10 0 0 1 1.074.37.75.75 0 1 1-.567 1.388q-.444-.182-.912-.313a.75.75 0 0 1-.52-.925m7.478 5.325a.75.75 0 1 0-1.389.568 8 8 0 0 1 .315.915.75.75 0 1 0 1.444-.405 10 10 0 0 0-.37-1.078\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_checkmark\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-5.063a6.5 6.5 0 0 1-.709 1.5h5.772A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v5.772a6.5 6.5 0 0 1 1.5-.709zm8 .5a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5zM12 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-3.146-1.854a.5.5 0 0 0-.708 0L5.5 18.293l-.896-.897a.5.5 0 0 0-.708.708l1.25 1.25a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0 0-.708\\\"\\n />\\n </symbol>\\n <symbol id=\\\"shifts_open\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h3a.75.75 0 0 0 0-1.5h-3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h3a.75.75 0 0 0 0-1.5h-3a1.75 1.75 0 0 1-1.75-1.75zM14.747 3a.75.75 0 0 0 0 1.5h3.003c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-3.003a.75.75 0 0 0 0 1.5h3.003A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM12.5 6.75a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"slide_text\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M6.75 8a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5zM6 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M6.75 14a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm-2-10A2.75 2.75 0 0 0 2 6.75v10.5A2.75 2.75 0 0 0 4.75 20h14.5A2.75 2.75 0 0 0 22 17.25V6.75A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v10.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"squalls\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M8.077 6.884A4.07 4.07 0 0 1 11.973 4C14.174 4 16 5.783 16 8a4 4 0 0 1-4 4H2.75a.75.75 0 0 1 0-1.5H12A2.5 2.5 0 0 0 14.5 8c0-1.373-1.138-2.5-2.527-2.5-1.13 0-2.138.743-2.46 1.815l-.045.15a.75.75 0 1 1-1.436-.43zm8.212 5.129A2.94 2.94 0 0 1 19.07 10 2.93 2.93 0 0 1 22 12.93V13a3 3 0 0 1-3 3h-1.3a2.75 2.75 0 0 1-2.45 4h-.135a2.56 2.56 0 0 1-2.285-1.41.75.75 0 0 1 1.34-.673c.18.357.545.583.945.583h.135a1.25 1.25 0 1 0 0-2.5H2.75a.75.75 0 0 1 0-1.5H19a1.5 1.5 0 0 0 1.5-1.5v-.07c0-.79-.64-1.43-1.43-1.43-.61 0-1.163.4-1.358.987a.75.75 0 0 1-1.424-.474\\\"\\n />\\n </symbol>\\n <symbol id=\\\"star\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88zm1.21.937L9.74 8.614a1.35 1.35 0 0 1-1.016.739l-5.05.734 3.654 3.562c.318.31.463.757.388 1.195l-.862 5.029 4.516-2.375a1.35 1.35 0 0 1 1.257 0l4.516 2.375-.862-5.03a1.35 1.35 0 0 1 .388-1.194l3.654-3.562-5.05-.734a1.35 1.35 0 0 1-1.016-.739z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"star_filled\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"status\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"#212121\\\"\\n fill-rule=\\\"nonzero\\\"\\n d=\\\"M19.75 4A2.25 2.25 0 0 1 22 6.25v11.5A2.25 2.25 0 0 1 19.75 20H4.25A2.25 2.25 0 0 1 2 17.75V6.25A2.25 2.25 0 0 1 4.25 4Zm0 1.5H4.25a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75\\\"\\n />\\n <path\\n fill=\\\"#212121\\\"\\n d=\\\"M9.42 8.415a.75.75 0 0 0-1.348.014L6.382 12H2.75a.75.75 0 0 0 0 1.5h4.107a.75.75 0 0 0 .678-.43l1.234-2.606 2.56 5.121a.75.75 0 0 0 1.279.104l2.698-3.736 1.13 1.29A.75.75 0 0 0 17 13.5h4.25a.75.75 0 0 0 0-1.5h-3.91l-1.526-1.744a.75.75 0 0 0-1.172.055l-2.525 3.496z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"subtract_square\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 11.25h-8.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"sun\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 2a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 2m0 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10m0-1.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7m9.25-2.75a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zM12 19a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 19m-7.75-6.25a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zm-.03-8.53a.75.75 0 0 1 1.06 0l1.5 1.5a.75.75 0 0 1-1.06 1.06l-1.5-1.5a.75.75 0 0 1 0-1.06m1.06 15.56a.75.75 0 1 1-1.06-1.06l1.5-1.5a.75.75 0 1 1 1.06 1.06zm14.5-15.56a.75.75 0 0 0-1.06 0l-1.5 1.5a.75.75 0 0 0 1.06 1.06l1.5-1.5a.75.75 0 0 0 0-1.06m-1.06 15.56a.75.75 0 1 0 1.06-1.06l-1.5-1.5a.75.75 0 1 0-1.06 1.06z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"sync\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M16.25 5.18a.75.75 0 0 0 .142 1.051 7.251 7.251 0 0 1-3.599 12.976l.677-.677a.75.75 0 0 0-.977-1.133l-.084.073-2 2a.75.75 0 0 0-.073.976l.073.084 2 2a.75.75 0 0 0 1.133-.976l-.072-.084-.75-.75a8.75 8.75 0 0 0 4.581-15.68.75.75 0 0 0-1.051.141m-5.72-3.71a.75.75 0 0 0 0 1.06l.75.75a8.75 8.75 0 0 0-4.85 15.47.75.75 0 1 0 .956-1.157 7.251 7.251 0 0 1 3.82-12.8l-.676.677a.75.75 0 1 0 1.061 1.06l2-2a.75.75 0 0 0 0-1.06l-2-2a.75.75 0 0 0-1.06 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"tasks\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M19.995 4.097A2.25 2.25 0 0 0 17.75 2H6.25l-.154.005A2.25 2.25 0 0 0 4 4.251v15.498l.005.154A2.25 2.25 0 0 0 6.25 22h7.568l-1.5-1.5H6.25l-.102-.007a.75.75 0 0 1-.648-.743V4.251l.007-.102a.75.75 0 0 1 .743-.648h11.5l.102.007a.75.75 0 0 1 .648.743v11.567l1.159-1.159q.16-.16.34-.28V4.25zm-3.707 17.902h-.076a.75.75 0 0 1-.493-.219l-2.5-2.502a.75.75 0 0 1 1.062-1.06l1.969 1.971 4.47-4.47a.75.75 0 1 1 1.06 1.061l-5 5a.75.75 0 0 1-.492.219M13.84 16.5a2 2 0 0 0-.182 0h-2.413a.75.75 0 0 1 0-1.5h5.004a.75.75 0 1 1 0 1.5zM9 7.752a1 1 0 1 1-2 0 1 1 0 0 1 2 0m1.496-.002a.75.75 0 0 1 .75-.75h5.004a.75.75 0 1 1 0 1.5h-5.004a.75.75 0 0 1-.75-.75m.75 3.25a.75.75 0 0 0 0 1.5h5.004a.75.75 0 1 0 0-1.5zM8 12.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2m1 2.998a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"timer\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12 5a8.5 8.5 0 1 1 0 17 8.5 8.5 0 0 1 0-17m0 1.5a7 7 0 1 0 0 14 7 7 0 0 0 0-14M12 8a.75.75 0 0 1 .743.648l.007.102v4.5a.75.75 0 0 1-1.493.102l-.007-.102v-4.5A.75.75 0 0 1 12 8m7.147-2.886.083.06 1.158.964a.75.75 0 0 1-.877 1.212l-.082-.06-1.159-.964a.75.75 0 0 1 .877-1.212M14.25 2.5a.75.75 0 0 1 .102 1.493L14.25 4h-4.5a.75.75 0 0 1-.102-1.493L9.75 2.5z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"upload\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M18.25 3.51a.75.75 0 1 0 0-1.5l-13-.004a.75.75 0 1 0 0 1.5zm-6.602 18.488.102.007a.75.75 0 0 0 .743-.649l.007-.101-.001-13.685 3.722 3.72a.75.75 0 0 0 .976.073l.085-.073a.75.75 0 0 0 .072-.977l-.073-.084-4.997-4.996a.75.75 0 0 0-.976-.073l-.085.072L6.22 10.23a.75.75 0 0 0 .976 1.134l.084-.073 3.719-3.713L11 21.255c0 .38.282.693.648.743\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M17.755 14a2.25 2.25 0 0 1 2.248 2.25v.575c0 .894-.32 1.759-.9 2.438-1.57 1.833-3.957 2.738-7.103 2.738s-5.532-.905-7.098-2.74a3.75 3.75 0 0 1-.898-2.434v-.578A2.25 2.25 0 0 1 6.253 14zm0 1.5H6.252a.75.75 0 0 0-.75.75v.577c0 .535.192 1.053.54 1.46 1.253 1.469 3.22 2.214 5.957 2.214 2.739 0 4.706-.745 5.963-2.213a2.25 2.25 0 0 0 .54-1.463v-.576a.75.75 0 0 0-.748-.749M12 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user_multiple\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14.754 10c.966 0 1.75.784 1.75 1.75v4.749a4.501 4.501 0 0 1-9.002 0V11.75c0-.966.783-1.75 1.75-1.75zm0 1.5H9.252a.25.25 0 0 0-.25.25v4.749a3.001 3.001 0 0 0 6.002 0V11.75a.25.25 0 0 0-.25-.25M3.75 10h3.381a2.74 2.74 0 0 0-.618 1.5H3.75a.25.25 0 0 0-.25.25v3.249a2.5 2.5 0 0 0 3.082 2.433c.085.504.24.985.453 1.432Q6.539 18.999 6 19a4 4 0 0 1-4-4.001V11.75c0-.966.784-1.75 1.75-1.75m13.125 0h3.375c.966 0 1.75.784 1.75 1.75V15a4 4 0 0 1-5.03 3.866c.214-.448.369-.929.455-1.433q.277.066.575.067a2.5 2.5 0 0 0 2.5-2.5v-3.25a.25.25 0 0 0-.25-.25h-2.757a2.74 2.74 0 0 0-.618-1.5M12 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6m6.5 1a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m-13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m6.5.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m6.5 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-13 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2\\\"\\n />\\n </symbol>\\n <symbol id=\\\"user_role\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M14 14H4.253a2.25 2.25 0 0 0-2.25 2.25v.577c0 .892.32 1.756.9 2.435 1.565 1.834 3.952 2.74 7.097 2.74q1.072 0 2.026-.141a2.5 2.5 0 0 1-.026-.36v-1.154q-.92.154-2 .154c-2.738 0-4.704-.745-5.957-2.213a2.25 2.25 0 0 1-.54-1.461v-.578a.75.75 0 0 1 .75-.749h7.955A2.5 2.5 0 0 1 14 14.05zM10 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7M15 15h-.5a1.5 1.5 0 0 0-1.5 1.5v5a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-5a1.5 1.5 0 0 0-1.5-1.5H20v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 0 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\\\"\\n />\\n </symbol>\\n <symbol id=\\\"warning\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13 17a.999.999 0 1 0-1.998 0 .999.999 0 0 0 1.997 0m-.26-7.853a.75.75 0 0 0-1.493.103l.004 4.501.007.102a.75.75 0 0 0 1.493-.103l-.004-4.502zm1.23-5.488c-.857-1.548-3.082-1.548-3.938 0L2.286 17.66c-.83 1.5.255 3.34 1.97 3.34h15.49c1.714 0 2.799-1.84 1.969-3.34zm-2.626.726a.75.75 0 0 1 1.313 0l7.746 14.002a.75.75 0 0 1-.657 1.113H4.256a.75.75 0 0 1-.657-1.113z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_fit\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M11.49 2.707a.75.75 0 0 1 1.03.002l2.206 2.09a.75.75 0 1 0 1.032-1.088L13.551 1.62a2.25 2.25 0 0 0-3.09-.005L8.237 3.71A.75.75 0 0 0 9.265 4.8zM4.802 9.263a.75.75 0 0 0-1.091-1.028l-2.095 2.224a2.25 2.25 0 0 0 .005 3.09l2.091 2.207a.75.75 0 1 0 1.089-1.032L2.71 12.517a.75.75 0 0 1-.001-1.03zm15.485-1.02A.75.75 0 1 0 19.2 9.275l2.098 2.213a.75.75 0 0 1 0 1.033L19.2 14.734a.75.75 0 0 0 1.088 1.032l2.099-2.213a2.25 2.25 0 0 0 0-3.097zm-4.522 12.045a.75.75 0 0 0-1.032-1.088l-2.212 2.097a.75.75 0 0 1-1.032 0L9.275 19.2a.75.75 0 0 0-1.032 1.09l2.216 2.097a2.25 2.25 0 0 0 3.095 0zM9.75 7A2.75 2.75 0 0 0 7 9.75v4.5A2.75 2.75 0 0 0 9.75 17h4.5A2.75 2.75 0 0 0 17 14.25v-4.5A2.75 2.75 0 0 0 14.25 7zM8.5 9.75c0-.69.56-1.25 1.25-1.25h4.5c.69 0 1.25.56 1.25 1.25v4.5c0 .69-.56 1.25-1.25 1.25h-4.5c-.69 0-1.25-.56-1.25-1.25z\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_in\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M13.5 10a.75.75 0 0 0-.75-.75h-2v-2a.75.75 0 0 0-1.5 0v2h-2a.75.75 0 1 0 0 1.5h2v2a.75.75 0 0 0 1.5 0v-2h2a.75.75 0 0 0 .75-.75M10 2.75a7.25 7.25 0 0 1 5.63 11.819l4.9 4.9a.75.75 0 0 1-.976 1.134l-.084-.073-4.901-4.9A7.25 7.25 0 1 1 10 2.75m0 1.5a5.75 5.75 0 1 0 0 11.5 5.75 5.75 0 0 0 0-11.5\\\"\\n />\\n </symbol>\\n <symbol id=\\\"zoom_out\\\" viewBox=\\\"0 0 24 24\\\">\\n <path\\n fill=\\\"currentColor\\\"\\n d=\\\"M12.75 9.25a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1 0-1.5zm4.5.75a7.25 7.25 0 1 0-2.681 5.63l4.9 4.9.085.073a.75.75 0 0 0 .976-1.133l-4.9-4.901A7.22 7.22 0 0 0 17.25 10m-13 0a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0\\\"\\n />\\n </symbol>\\n</svg>\\n<svg\\n class=\\\"icon\\\"\\n [attr.width]=\\\"size\\\"\\n [attr.height]=\\\"size\\\"\\n [attr.aria-label]=\\\"label\\\"\\n>\\n <use [attr.href]=\\\"'#' + name\\\"></use>\\n</svg>\\n\", styles: [\".icon{fill:currentColor;vertical-align:middle}\\n\"] }]\n }], propDecorators: { name: [{\n type: Input\n }], size: [{\n type: Input\n }], label: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL2ljb25zL2ljb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvY29yZS9pY29ucy9pY29uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFjakQsTUFBTSxPQUFPLGFBQWE7SUFDZixJQUFJLENBQVU7SUFDZCxJQUFJLEdBQW9CLEVBQUUsQ0FBQztJQUMzQixLQUFLLENBQVU7dUdBSGIsYUFBYTsyRkFBYixhQUFhLDJIQ2YxQix5M3FIQWswQ0E7OzJGRG56Q2EsYUFBYTtrQkFaekIsU0FBUzsrQkFDRSxTQUFTOzhCQVlWLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2FwcC9zaGFyZWQvaWNvbi9pY29uLmNvbXBvbmVudC50c1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhaS1pY29uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICAuaWNvbiB7XG4gICAgICAgIGZpbGw6IGN1cnJlbnRDb2xvcjtcbiAgICAgICAgdmVydGljYWwtYWxpZ246IG1pZGRsZTtcbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBJY29uQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbmFtZSE6IHN0cmluZztcbiAgQElucHV0KCkgc2l6ZTogbnVtYmVyIHwgc3RyaW5nID0gMjQ7XG4gIEBJbnB1dCgpIGxhYmVsPzogc3RyaW5nO1xufVxuIiwiPHN2ZyBzdHlsZT1cImRpc3BsYXk6IG5vbmVcIiB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCI+XG4gIDxzeW1ib2wgaWQ9XCJhZGRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMS44ODMgMy4wMDcgMTIgM2ExIDEgMCAwIDEgLjk5My44ODNMMTMgNHY3aDdhMSAxIDAgMCAxIC45OTMuODgzTDIxIDEyYTEgMSAwIDAgMS0uODgzLjk5M0wyMCAxM2gtN3Y3YTEgMSAwIDAgMS0uODgzLjk5M0wxMiAyMWExIDEgMCAwIDEtLjk5My0uODgzTDExIDIwdi03SDRhMSAxIDAgMCAxLS45OTMtLjg4M0wzIDEyYTEgMSAwIDAgMSAuODgzLS45OTNMNCAxMWg3VjRhMSAxIDAgMCAxIC44ODMtLjk5M0wxMiAzelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhZGRfY2lyY2xlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMmM1LjUyMyAwIDEwIDQuNDc3IDEwIDEwcy00LjQ3NyAxMC0xMCAxMFMyIDE3LjUyMyAyIDEyIDYuNDc3IDIgMTIgMm0wIDEuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3TTEyIDdhLjc1Ljc1IDAgMCAxIC43NS43NXYzLjVoMy41YS43NS43NSAwIDAgMSAwIDEuNWgtMy41djMuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTMuNWgtMy41YS43NS43NSAwIDAgMSAwLTEuNWgzLjV2LTMuNUEuNzUuNzUgMCAwIDEgMTIgN1wiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhZGRfc3F1YXJlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgN2EuNzUuNzUgMCAwIDEgLjc1Ljc1djMuNWgzLjVhLjc1Ljc1IDAgMCAxIDAgMS41aC0zLjV2My41YS43NS43NSAwIDAgMS0xLjUgMHYtMy41aC0zLjVhLjc1Ljc1IDAgMCAxIDAtMS41aDMuNXYtMy41QS43NS43NSAwIDAgMSAxMiA3bS05LS43NUEzLjI1IDMuMjUgMCAwIDEgNi4yNSAzaDExLjVBMy4yNSAzLjI1IDAgMCAxIDIxIDYuMjV2MTEuNUEzLjI1IDMuMjUgMCAwIDEgMTcuNzUgMjFINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NXpNNi4yNSA0LjVBMS43NSAxLjc1IDAgMCAwIDQuNSA2LjI1djExLjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgxMS41YTEuNzUgMS43NSAwIDAgMCAxLjc1LTEuNzVWNi4yNWExLjc1IDEuNzUgMCAwIDAtMS43NS0xLjc1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcHBfY29ubmVjdGl2aXR5XCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjAgMTRoOGEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMmgtOGEyIDIgMCAwIDAtMiAySDlhMiAyIDAgMCAwLTIgMnY0SDRhMiAyIDAgMCAwLTIgMnY4YTIgMiAwIDAgMCAyIDJoMnY0YTIgMiAwIDAgMCAyIDJoMTBhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LThhMiAyIDAgMCAwLTItMmgtOGEyIDIgMCAwIDAtMiAydjZIOHYtNGg0YTIgMiAwIDAgMCAyLTJ2LThhMiAyIDAgMCAwLTItMkg5VjZoOXY2YTIgMiAwIDAgMCAyIDJtMCAxNHYtNGg4djRabTgtOHYyaC04di0yWk00IDIwdi00aDh2NFptOC02SDR2LTJoOFptOC0yVjhoOHY0Wm04LTh2MmgtOFY0WlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcHBzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMTdhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00bTcgMGEyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRNNSAxN2EyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRtNy03YTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNG03IDBhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00TTUgMTBhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00bTctN2EyIDIgMCAxIDEgMCA0IDIgMiAwIDAgMSAwLTRtNyAwYTIgMiAwIDEgMSAwIDQgMiAyIDAgMCAxIDAtNE01IDNhMiAyIDAgMSAxIDAgNCAyIDIgMCAwIDEgMC00XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X2Nsb2Nrd2lzZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDQuNWE3LjUgNy41IDAgMSAwIDcuNDE5IDYuMzkyYy0uMDY3LS40NTQuMjY1LS44OTIuNzI0LS44OTIuMzcgMCAuNjk2LjI1Ni43NTIuNjIzUTIxIDExLjI5NyAyMSAxMmE5IDkgMCAxIDEtMy02LjcwOFY0LjI1YS43NS43NSAwIDAgMSAxLjUgMHYzYS43NS43NSAwIDAgMS0uNzUuNzVoLTNhLjc1Ljc1IDAgMCAxIDAtMS41aDEuMzVhNy40NyA3LjQ3IDAgMCAwLTUuMS0yXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X2Rvd25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOS43OSAxMy4yNjdhLjc1Ljc1IDAgMCAwLTEuMDg2LTEuMDM0bC01Ljk1NCA2LjI1MVYzLjc1YS43NS43NSAwIDEgMC0xLjUgMHYxNC43MzRsLTUuOTU1LTYuMjUxYS43NS43NSAwIDEgMC0xLjA4NiAxLjAzNGw3LjA2NyA3LjQyYy4xNi4xNjguMzY2LjI2OC41OC4zYS44LjggMCAwIDAgLjI5LS4wMDEgMSAxIDAgMCAwIC41NzgtLjN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X2xlZnRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMC43MzMgMTkuNzlhLjc1Ljc1IDAgMCAwIDEuMDM0LTEuMDg2TDUuNTE2IDEyLjc1SDIwLjI1YS43NS43NSAwIDAgMCAwLTEuNUg1LjUxNmw2LjI1MS01Ljk1NWEuNzUuNzUgMCAwIDAtMS4wMzQtMS4wODZsLTcuNDIgNy4wNjdhMSAxIDAgMCAwLS4zLjU4LjguOCAwIDAgMCAuMDAxLjI4OSAxIDEgMCAwIDAgLjMuNTc5elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcnJvd19tYXhpbWl6ZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwibTEyLjQ5NiAzLjAwMiA3LjU1Ni4wMDEuMTIuMDE0LjA4OC4wMi4xMDQuMDM0LjA5LjA0LjA2My4wMzYuMDYzLjA0Mi4wNjQuMDUuMDYzLjA1OC4wOTQuMTEuMDcyLjExLjA1My4xMTQuMDM2LjEwNS4wMTUuMDY1LjAxLjA1My4wMS4xNDh2Ny41MDRhMSAxIDAgMCAxLTEuOTkzLjExN2wtLjAwNy0uMTE3di01LjA5TDYuNDEyIDE5SDExLjVhMSAxIDAgMCAxIC45OTMuODg0TDEyLjUgMjBhMSAxIDAgMCAxLS44ODQuOTk0TDExLjUgMjFIMy45MzlsLS4wOTYtLjAxLS4wNzctLjAxNS0uMDc3LS4wMjItLjA3LS4wMjYtLjA5LS4wNDItLjA4OS0uMDUzLS4wOTEtLjA3LjAzMi4wMjdhMSAxIDAgMCAxLS4xNjYtLjE2NmwtLjA1MS0uMDctLjA0LS4wNjQtLjAzMi0uMDY0LS4wMzQtLjA4Mi0uMDI1LS4wOC0uMDI0LS4xMTEtLjAwNy0uMDYxLS4wMDQtLjA5di03LjUwM2ExIDEgMCAwIDEgMS45OTMtLjExN2wuMDA3LjExN3Y1LjA4OEwxNy41ODIgNS4wMDJoLTUuMDg2YTEgMSAwIDAgMS0uOTk0LS44ODNsLS4wMDYtLjExN2ExIDEgMCAwIDEgMS0xXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X21pbmltaXplXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAuNDk4IDEyLjUwNWExIDEgMCAwIDEgLjk5My44ODRsLjAwNy4xMTZ2Ny41MDRhMSAxIDAgMCAxLTEuOTk0LjExN2wtLjAwNi0uMTE3di01LjA5M2wtNS43OTEgNS43OTJhMSAxIDAgMCAxLTEuMzIuMDgzbC0uMDk1LS4wODNhMSAxIDAgMCAxLS4wODMtMS4zMmwuMDgzLS4wOTUgNS43ODgtNS43ODhIMi45OTZhMSAxIDAgMCAxLS4xMTctMS45OTNsLjExNy0uMDA3em0zLTEwLjUwNWExIDEgMCAwIDEgLjk5NC44ODNsLjAwNy4xMTd2NS4wODdsNS43OTMtNS43OTRhMSAxIDAgMCAxIDEuMzItLjA4M2wuMDk1LjA4M2ExIDEgMCAwIDEgLjA4MyAxLjMybC0uMDgzLjA5NS01Ljc5NyA1Ljc5NUgyMWExIDEgMCAwIDEgLjExNyAxLjk5NGwtLjExNy4wMDdoLTcuNWExIDEgMCAwIDEtLjk5NC0uODgzbC0uMDA2LS4xMTdWM2ExIDEgMCAwIDEgMS0xXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X21vdmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNS4yOCA2LjAzYS43NS43NSAwIDAgMS0xLjA2IDBsLTEuNDctMS40N3YzLjY5YS43NS43NSAwIDAgMS0xLjUgMFY0LjU2TDkuNzggNi4wM2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2bDIuNzUtMi43NWEuNzUuNzUgMCAwIDEgMS4wNiAwbDIuNzUgMi43NWEuNzUuNzUgMCAwIDEgMCAxLjA2bS05LjI1IDguMTlhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMi43NS0yLjc1YS43NS43NSAwIDAgMSAwLTEuMDZsMi43NS0yLjc1YS43NS43NSAwIDAgMSAxLjA2IDEuMDZsLTEuNDcgMS40N2gzLjY5YS43NS43NSAwIDAgMSAwIDEuNUg0LjU2em0xMS45NCAxLjA2YS43NS43NSAwIDAgMSAwLTEuMDZsMS40Ny0xLjQ3aC0zLjY5YS43NS43NSAwIDAgMSAwLTEuNWgzLjY5bC0xLjQ3LTEuNDdhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwyLjc1IDIuNzVhLjc1Ljc1IDAgMCAxIDAgMS4wNmwtMi43NSAyLjc1YS43NS43NSAwIDAgMS0xLjA2IDBtLTIuNjkgMi42OWEuNzUuNzUgMCAwIDAtMS4wNiAwbC0xLjQ3IDEuNDd2LTMuNjlhLjc1Ljc1IDAgMCAwLTEuNSAwdjMuNjlsLTEuNDctMS40N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDIuNzUgMi43NWEuNzUuNzUgMCAwIDAgMS4wNiAwbDIuNzUtMi43NWEuNzUuNzUgMCAwIDAgMC0xLjA2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFycm93X3JpZ2h0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTMuMjY3IDQuMjA5YS43NS43NSAwIDAgMC0xLjAzNCAxLjA4Nmw2LjI1MSA1Ljk1NUgzLjc1YS43NS43NSAwIDAgMCAwIDEuNWgxNC43MzRsLTYuMjUxIDUuOTU0YS43NS43NSAwIDAgMCAxLjAzNCAxLjA4N2w3LjQyLTcuMDY3YTEgMSAwIDAgMCAuMy0uNTguOC44IDAgMCAwLS4wMDEtLjI5IDEgMSAwIDAgMC0uMy0uNTc4elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcnJvd19zb3J0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtMTcuMjUgNC0uMS4wMDdhLjc1Ljc1IDAgMCAwLS42NS43NDN2MTIuNjkybC0zLjIyLTMuMjE4LS4wODQtLjA3MmEuNzUuNzUgMCAwIDAtLjk3NiAxLjEzNGw0LjUwNCA0LjUuMDg0LjA3MmEuNzUuNzUgMCAwIDAgLjk3Ni0uMDczbDQuNDk3LTQuNS4wNzItLjA4NGEuNzUuNzUgMCAwIDAtLjA3My0uOTc3bC0uMDg0LS4wNzJhLjc1Ljc1IDAgMCAwLS45NzcuMDczTDE4IDE3LjQ0NlY0Ljc1bC0uMDA2LS4xMDJBLjc1Ljc1IDAgMCAwIDE3LjI1MSA0bS0xMS4wMzYuMjJMMS43MiA4LjcxNWwtLjA3My4wODRhLjc1Ljc1IDAgMCAwIC4wNzMuOTc2bC4wODQuMDczYS43NS43NSAwIDAgMCAuOTc2LS4wNzNsMy4yMTctMy4yMTh2MTIuNjk4bC4wMDguMTAyYS43NS43NSAwIDAgMCAuNzQzLjY0OGwuMTAxLS4wMDdhLjc1Ljc1IDAgMCAwIC42NDktLjc0M0w3LjQ5NyA2LjU1OWwzLjIyMyAzLjIxNy4wODQuMDcyYS43NS43NSAwIDAgMCAuOTc1LTEuMTM0TDcuMjc1IDQuMjJsLS4wODUtLjA3MmEuNzUuNzUgMCAwIDAtLjk3Ni4wNzNcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiYXJyb3dfc29ydF9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIm02LjI4OCA0LjI5My0zLjk5NSA0LS4wODQuMDk1YTEgMSAwIDAgMCAuMDg0IDEuMzJsLjA5NS4wODNhMSAxIDAgMCAwIDEuMzItLjA4NEw2IDcuNDFWMTlsLjAwNy4xMTdhMSAxIDAgMCAwIC45OTMuODg0bC4xMTctLjAwN0ExIDEgMCAwIDAgOCAxOVY3LjQxN2wyLjI5MyAyLjI5LjA5NS4wODRhMSAxIDAgMCAwIDEuMzE5LTEuNDk5bC00LjAwNi00LS4wOTQtLjA4M2ExIDEgMCAwIDAtMS4zMi4wODRNMTcgNC4wMDNsLS4xMTcuMDA3YTEgMSAwIDAgMC0uODgzLjk5M3YxMS41OGwtMi4yOTMtMi4yOS0uMDk1LS4wODRhMSAxIDAgMCAwLTEuMzE5IDEuNDk4bDQuMDA0IDQgLjA5NC4wODRhMSAxIDAgMCAwIDEuMzItLjA4NGwzLjk5Ni00IC4wODQtLjA5NWExIDEgMCAwIDAtLjA4NC0xLjMybC0uMDk1LS4wODNhMSAxIDAgMCAwLTEuMzIuMDg0TDE4IDE2LjU4N1Y1LjAwM2wtLjAwNy0uMTE2QTEgMSAwIDAgMCAxNyA0LjAwM1wiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhcnJvd191cFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQuMjA5IDEwLjczM2EuNzUuNzUgMCAwIDAgMS4wODYgMS4wMzRsNS45NTQtNi4yNTFWMjAuMjVhLjc1Ljc1IDAgMCAwIDEuNSAwVjUuNTE2bDUuOTU1IDYuMjUxYS43NS43NSAwIDAgMCAxLjA4Ny0xLjAzNGwtNy4wNjctNy40MmExIDEgMCAwIDAtLjU4LS4zLjguOCAwIDAgMC0uMjkuMDAxIDEgMSAwIDAgMC0uNTc4LjN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImFzY2VuZGluZ1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE3LjI1IDJhLjc1Ljc1IDAgMCAxIC43NS43NXYxNi42OWwyLjIyLTIuMjJhLjc1Ljc1IDAgMSAxIDEuMDYgMS4wNmwtMy41IDMuNWEuNzUuNzUgMCAwIDEtMS4wNiAwbC0zLjUtMy41YS43NS43NSAwIDEgMSAxLjA2LTEuMDZsMi4yMiAyLjIyVjIuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVtLTkuNDgxLjQ4N2EuNzUuNzUgMCAwIDAtMS40MDEtLjAxbC0zLjMxNyA4LjVhLjc1Ljc1IDAgMSAwIDEuMzk4LjU0NmwuNzktMi4wMjNoMy41NTVsLjc1NCAyLjAxM2EuNzUuNzUgMCAwIDAgMS40MDUtLjUyNnpNNS44MjMgOGwxLjIzLTMuMTVMOC4yMzIgOHpNNCAxMy43NWEuNzUuNzUgMCAwIDEgLjc1LS43NUg5LjVhLjc1Ljc1IDAgMCAxIC42MzQgMS4xNTFMNi4xMTQgMjAuNUg5LjVhLjc1Ljc1IDAgMSAxIDAgMS41SDQuNzVhLjc1Ljc1IDAgMCAxLS42MzMtMS4xNTFsNC4wMi02LjM1SDQuNzVhLjc1Ljc1IDAgMCAxLS43NS0uNzVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiYXNzZXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNS43OCAzLjczN2EyLjI1IDIuMjUgMCAwIDAtMS41NiAwTDkuOTEzIDUuMzNhLjI1LjI1IDAgMCAwLS4xNjMuMjM0djIuNzkzYTQuOCA0LjggMCAwIDAtMS41IDBWNS41NjNhMS43NSAxLjc1IDAgMCAxIDEuMTQzLTEuNjQxTDEzLjcgMi4zM2EzLjc1IDMuNzUgMCAwIDEgMi42IDBsNC4zMDcgMS41OTJhMS43NSAxLjc1IDAgMCAxIDEuMTQzIDEuNjQxdjEwLjY3YTEuNzUgMS43NSAwIDAgMS0xLjE0MyAxLjY0MmwtNC4wMTggMS40ODRjLjEwNS0uMjkyLjE2MS0uNjA0LjE2MS0uOTI3di0uNzMxbDMuMzM3LTEuMjMzYS4yNS4yNSAwIDAgMCAuMTYzLS4yMzVWNS41NjNhLjI1LjI1IDAgMCAwLS4xNjMtLjIzNHptLTQuMDEgMy45M2EuNzUuNzUgMCAxIDEgLjQ5LTEuNDE4bDIuNjU4LjkyYS4yNS4yNSAwIDAgMCAuMTYzIDBsMi42NS0uOTJhLjc1Ljc1IDAgMSAxIC40OTIgMS40MThsLTIuNjUuOTE5YTEuNzUgMS43NSAwIDAgMS0xLjE0NSAwem0tNiA3YS43NS43NSAwIDAgMSAuNDktMS40MThsMi43NC45NDggMi43MzItLjk0N2EuNzUuNzUgMCAxIDEgLjQ5IDEuNDE3bC0yLjQ3Mi44NTd2Mi43YS43NS43NSAwIDAgMS0xLjUgMHYtMi43ek0xMC4zIDkuNTNhMy43NSAzLjc1IDAgMCAwLTIuNiAwbC00LjMwNyAxLjU5MmExLjc1IDEuNzUgMCAwIDAtMS4xNDMgMS42NDF2NS42N2ExLjc1IDEuNzUgMCAwIDAgMS4xNDMgMS42NDJMNy43IDIxLjY2NmEzLjc1IDMuNzUgMCAwIDAgMi42IDBsNC4zMDctMS41OTJhMS43NSAxLjc1IDAgMCAwIDEuMTQzLTEuNjQydi01LjY3YTEuNzUgMS43NSAwIDAgMC0xLjE0My0xLjY0MXptLTIuMDggMS40MDdhMi4yNSAyLjI1IDAgMCAxIDEuNTYgMGw0LjMwNyAxLjU5MmEuMjUuMjUgMCAwIDEgLjE2My4yMzR2NS42N2EuMjUuMjUgMCAwIDEtLjE2My4yMzVMOS43OCAyMC4yNTlhMi4yNSAyLjI1IDAgMCAxLTEuNTYgMGwtNC4zMDctMS41OTJhLjI1LjI1IDAgMCAxLS4xNjMtLjIzNXYtNS42N2EuMjUuMjUgMCAwIDEgLjE2My0uMjM0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJhc3Npc3RhbnRfZGlyZWN0aW9uXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtMTQuMjk4IDIuOTg1IDYuNzE3IDYuNzE4YTMuMjUgMy4yNSAwIDAgMSAwIDQuNTk2bC02LjcxNyA2LjcxN2EzLjI1IDMuMjUgMCAwIDEtNC41OTYgMEwyLjk4NCAxNC4zYTMuMjUgMy4yNSAwIDAgMSAwLTQuNTk2bDYuNzE4LTYuNzE4YTMuMjUgMy4yNSAwIDAgMSA0LjU5NiAwbS0zLjUzNiAxLjA2LTYuNzE3IDYuNzE4YTEuNzUgMS43NSAwIDAgMCAwIDIuNDc1bDYuNzE3IDYuNzE4YTEuNzUgMS43NSAwIDAgMCAyLjQ3NSAwbDYuNzE4LTYuNzE4YTEuNzUgMS43NSAwIDAgMCAwLTIuNDc1bC02LjcxOC02LjcxN2ExLjc1IDEuNzUgMCAwIDAtMi40NzUgMG0xLjY5NSAzLjI2LjA3My0uMDg0YS43NS43NSAwIDAgMSAuOTc3LS4wNzNsLjA4NC4wNzMgMiAyYS43NS43NSAwIDAgMSAuMDcyLjk3N2wtLjA3Mi4wODQtMiAyYS43NS43NSAwIDAgMS0xLjEzMy0uOTc3bC4wNzItLjA4NC43Mi0uNzJoLTEuNWExLjI1IDEuMjUgMCAwIDAtMS4yNDQgMS4xMjJsLS4wMDYuMTI4VjE1YS43NS43NSAwIDAgMS0xLjQ5My4xMDFsLS4wMDctLjF2LTMuMjVhMi43NSAyLjc1IDAgMCAxIDIuNTgyLTIuNzQ1TDExLjc1IDloMS40OThsLS43MTgtLjcyYS43NS43NSAwIDAgMS0uMDcyLS45NzZsLjA3Mi0uMDg0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJiYXJfdmVydGljYWxcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC4yNTEgM2EyLjI1IDIuMjUgMCAwIDAtMi4yNDkgMi4yNXYxMy41YTIuMjQ5IDIuMjQ5IDAgMSAwIDQuNDk4IDBWNS4yNUEyLjI1IDIuMjUgMCAwIDAgMTguMjUxIDNtLTYuNSA0YTIuMjUgMi4yNSAwIDAgMC0yLjI0OSAyLjI1djkuNWEyLjI0OSAyLjI0OSAwIDEgMCA0LjQ5OCAwdi05LjVBMi4yNSAyLjI1IDAgMCAwIDExLjc1MSA3bS02LjUgNGEyLjI1IDIuMjUgMCAwIDAtMi4yNSAyLjI1djUuNWEyLjI1IDIuMjUgMCAxIDAgNC41IDB2LTUuNUEyLjI1IDIuMjUgMCAwIDAgNS4yNSAxMVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJib29rXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNyA2YTEgMSAwIDAgMSAxLTFoOGExIDEgMCAwIDEgMSAxdjJhMSAxIDAgMCAxLTEgMUg4YTEgMSAwIDAgMS0xLTF6bTEuNSAxLjVoN3YtMWgtN3pNNCA0LjVBMi41IDIuNSAwIDAgMSA2LjUgMkgxOGEyLjUgMi41IDAgMCAxIDIuNSAyLjV2MTQuMjVhLjc1Ljc1IDAgMCAxLS43NS43NUg1LjVhMSAxIDAgMCAwIDEgMWgxMy4yNWEuNzUuNzUgMCAwIDEgMCAxLjVINi41QTIuNSAyLjUgMCAwIDEgNCAxOS41ek01LjUgMThIMTlWNC41YTEgMSAwIDAgMC0xLTFINi41YTEgMSAwIDAgMC0xIDF6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImJvb2ttYXJrXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNi4xOSAyMS44NTVhLjc1Ljc1IDAgMCAxLTEuMTg3LS42MVY2LjI1QTMuMjUgMy4yNSAwIDAgMSA4LjI1MyAzaDcuNDk4YTMuMjUgMy4yNSAwIDAgMSAzLjI1IDMuMjV2MTQuOTk2YS43NS43NSAwIDAgMS0xLjE4OC42MDlsLTUuODEtNC4xODF6TTE3LjUwMiA2LjI1YTEuNzUgMS43NSAwIDAgMC0xLjc1LTEuNzVIOC4yNTNhMS43NSAxLjc1IDAgMCAwLTEuNzUgMS43NXYxMy41MzJsNS4wNjEtMy42NDFhLjc1Ljc1IDAgMCAxIC44NzYgMGw1LjA2MSAzLjY0MXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiYm94XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAuNTkxIDIuNTEzYTMuNzUgMy43NSAwIDAgMSAyLjgxOCAwbDcuNDk4IDMuMDRBMS43NSAxLjc1IDAgMCAxIDIyIDcuMTc1djkuNjUzYTEuNzUgMS43NSAwIDAgMS0xLjA5MyAxLjYyMWwtNy40OTggMy4wNGEzLjc1IDMuNzUgMCAwIDEtMi44MTggMGwtNy40OTgtMy4wNEExLjc1IDEuNzUgMCAwIDEgMiAxNi44MjdWNy4xNzZhMS43NSAxLjc1IDAgMCAxIDEuMDkzLTEuNjIyem0yLjI1NCAxLjM5YTIuMjUgMi4yNSAwIDAgMC0xLjY5IDBMOS4yNCA0LjY4bDcuNTI3IDIuOTI3IDIuNjY5LTEuMDN6bTEuODQ2IDQuNTA1TDcuMjE1IDUuNSA0LjU5IDYuNTY0bDcuNDExIDIuODgyek0zLjUgMTYuODI4YS4yNS4yNSAwIDAgMCAuMTU2LjIzMWw3LjQ5OSAzLjA0cS4wNDcuMDIuMDk1LjAzNnYtOS4zNzFMMy41IDcuNzV6bTkuMzQ1IDMuMjcxIDcuNDk5LTMuMDRhLjI1LjI1IDAgMCAwIC4xNTYtLjIzMlY3Ljc3NGwtNy43NSAyLjk5MnY5LjM3elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJicmFjZXNfdmFyaWFibGVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjUgNS43NUEyLjc1IDIuNzUgMCAwIDEgNi4yNSAzYS43NS43NSAwIDAgMSAwIDEuNUM1LjU2IDQuNSA1IDUuMDYgNSA1Ljc1djQuMzA5YzAgLjc0NC0uMyAxLjQzNy0uODAyIDEuOTQxQTIuNzUgMi43NSAwIDAgMSA1IDEzLjk0MXY0LjMwOWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNWEuNzUuNzUgMCAwIDEgMCAxLjUgMi43NSAyLjc1IDAgMCAxLTIuNzUtMi43NXYtNC4zMDhhMS4yNSAxLjI1IDAgMCAwLS44NTUtMS4xODZsLS4xMzItLjA0NWEuNzUuNzUgMCAwIDEgMC0xLjQyMmwuMTMyLS4wNDVjLjUxLS4xNy44NTUtLjY0Ny44NTUtMS4xODV6bTE3IDBBMi43NSAyLjc1IDAgMCAwIDE3Ljc1IDNhLjc1Ljc1IDAgMCAwIDAgMS41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djQuMzA5YzAgLjc0NC4zIDEuNDM3LjgwMiAxLjk0MUEyLjc1IDIuNzUgMCAwIDAgMTkgMTMuOTQxdjQuMzA5YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNWEuNzUuNzUgMCAwIDAgMCAxLjUgMi43NSAyLjc1IDAgMCAwIDIuNzUtMi43NXYtNC4zMDhjMC0uNTM5LjM0NC0xLjAxNi44NTUtMS4xODZsLjEzMi0uMDQ1YS43NS43NSAwIDAgMCAwLTEuNDIybC0uMTMyLS4wNDVhMS4yNSAxLjI1IDAgMCAxLS44NTUtMS4xODV6TTkuMDkyIDcuMDRhLjc1Ljc1IDAgMSAwLTEuMTg0LjkyTDExLjA1IDEybC0zLjE0MiA0LjA0YS43NS43NSAwIDAgMCAxLjE4NC45MkwxMiAxMy4yMjNsMi45MDggMy43MzlhLjc1Ljc1IDAgMCAwIDEuMTg0LS45MjFMMTIuOTUgMTJsMy4xNDItNC4wNGEuNzUuNzUgMCAwIDAtMS4xODQtLjkyTDEyIDEwLjc3OHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiYnVsbGV0X2xpc3RcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjI1IDE3LjVhMS4yNSAxLjI1IDAgMSAxIDAgMi40OTkgMS4yNSAxLjI1IDAgMCAxIDAtMi40OTltMy41LjVoMTQuNWEuNzUuNzUgMCAwIDEgLjEwMiAxLjQ5M2wtLjEwMi4wMDdINi43NWEuNzUuNzUgMCAwIDEtLjEwMi0xLjQ5M3poMTQuNXptLTMuNS03YTEuMjUgMS4yNSAwIDEgMSAwIDIuNDk5IDEuMjUgMS4yNSAwIDAgMSAwLTIuNDk5bTMuNS41aDE0LjVhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNMMjEuMjUgMTNINi43NWEuNzUuNzUgMCAwIDEtLjEwMi0xLjQ5M3poMTQuNXptLTMuNS03YTEuMjUgMS4yNSAwIDEgMSAwIDIuNDk5IDEuMjUgMS4yNSAwIDAgMSAwLTIuNDk5bTMuNS41aDE0LjVhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNsLS4xMDIuMDA3SDYuNzVhLjc1Ljc1IDAgMCAxLS4xMDItMS40OTN6aDE0LjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImJ1cmdlcl9tZW51XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMyAxN2gxOGExIDEgMCAwIDEgLjExNyAxLjk5M0wyMSAxOUgzYTEgMSAwIDAgMS0uMTE3LTEuOTkzemgxOHptMC02IDE4LS4wMDJhMSAxIDAgMCAxIC4xMTcgMS45OTNsLS4xMTcuMDA3TDMgMTNhMSAxIDAgMCAxLS4xMTctMS45OTN6bDE4LS4wMDJ6bTAtNmgxOGExIDEgMCAwIDEgLjExNyAxLjk5M0wyMSA3SDNhMSAxIDAgMCAxLS4xMTctMS45OTN6aDE4elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjYWxhdGVuYVwiIHZpZXdCb3g9XCIwIDAgMTIxIDEyMVwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNjAuNS41QzI3LjQuNS41IDI3LjQuNSA2MC41czI2LjkgNjAgNjAgNjAgNjAtMjYuOSA2MC02MC0yNi45LTYwLTYwLTYwbTAgMTE4LjlDMjggMTE5LjQgMS42IDkzIDEuNiA2MC41UzI4IDEuNiA2MC41IDEuNnM1OC45IDI2LjQgNTguOSA1OC45LTI2LjQgNTguOS01OC45IDU4LjlcIlxuICAgICAgY2xhc3M9XCJzdDBcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGQ9XCJtNzkgNTguOCAxMS4xLTExLjFjNC42LTQuNiA0LjYtMTIuMSAwLTE2LjdTNzggMjYuNCA3My40IDMxbC0uMS4yTDYwLjUgNDQgNDcuNyAzMS4ybC0uMi0uMi0uMi0uMS0uMS0uMWMtNC42LTQuNi0xMi00LjYtMTYuNiAwcy00LjYgMTIgMCAxNi42bDEzLjIgMTMuMi0xLjggMS45di4xTDMxIDczLjVsLS4xLjEtLjEuMi0uMS4xYy00LjQgNC44LTQuMSAxMi4yLjYgMTYuNiA0LjUgNC4yIDExLjUgNC4yIDE2IDBsMTMuMi0xMy4yIDEzIDEzYzQuNiA0LjYgMTIuMSA0LjYgMTYuNyAwczQuNi0xMi4xIDAtMTYuN2wtLjItLjEtMTIuOC0xMi44elwiXG4gICAgICBjbGFzcz1cInN0MVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjYWxlbmRhclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE3Ljc1IDNBMy4yNSAzLjI1IDAgMCAxIDIxIDYuMjV2MTEuNUEzLjI1IDMuMjUgMCAwIDEgMTcuNzUgMjFINi4yNUEzLjI1IDMuMjUgMCAwIDEgMyAxNy43NVY2LjI1QTMuMjUgMy4yNSAwIDAgMSA2LjI1IDN6bTEuNzUgNS41aC0xNXY5LjI1YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMTEuNWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1em0tMTEuNzUgNmExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41bTQuMjUgMGExLjI1IDEuMjUgMCAxIDEgMCAyLjUgMS4yNSAxLjI1IDAgMCAxIDAtMi41bS00LjI1LTRhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNW00LjI1IDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNW00LjI1IDBhMS4yNSAxLjI1IDAgMSAxIDAgMi41IDEuMjUgMS4yNSAwIDAgMSAwLTIuNW0xLjUtNkg2LjI1QTEuNzUgMS43NSAwIDAgMCA0LjUgNi4yNVY3aDE1di0uNzVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjYWxlbmRhcl9jbG9ja1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE3Ljc1IDNBMy4yNSAzLjI1IDAgMCAxIDIxIDYuMjV2NS43NzJhNi41IDYuNSAwIDAgMC0xLjUtLjcwOVY4LjVoLTE1djkuMjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWg1LjA2M2MuMTczLjUzNC40MTIgMS4wMzcuNzA5IDEuNUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVBMy4yNSAzLjI1IDAgMCAxIDYuMjUgM3ptMCAxLjVINi4yNUExLjc1IDEuNzUgMCAwIDAgNC41IDYuMjVWN2gxNXYtLjc1YTEuNzUgMS43NSAwIDAgMC0xLjc1LTEuNzVtNS4yNSAxM2E1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwTTE3LjUgMTRhLjUuNSAwIDAgMSAuNS41VjE3aDJhLjUuNSAwIDAgMSAwIDFoLTIuNWEuNS41IDAgMCAxLS41LS41di0zYS41LjUgMCAwIDEgLjUtLjVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2FtZXJhXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTMuOTI1IDIuNTA0YTIuMjUgMi4yNSAwIDAgMSAxLjk0IDEuMTFsLjgxNCAxLjM4N2gyLjA3MUEzLjI1IDMuMjUgMCAwIDEgMjIgOC4yNXY5LjVBMy4yNSAzLjI1IDAgMCAxIDE4Ljc1IDIxSDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMTcuNzV2LTkuNUEzLjI1IDMuMjUgMCAwIDEgNS4yNSA1aDIuMDhsLjg3NS0xLjQyNGEyLjI1IDIuMjUgMCAwIDEgMS45MTctMS4wNzN6bTAgMS41aC0zLjgwM2EuNzUuNzUgMCAwIDAtLjU3NC4yNjhsLS4wNjUuMDktMS4wOTMgMS43OGEuNzUuNzUgMCAwIDEtLjYzOS4zNThoLTIuNUExLjc1IDEuNzUgMCAwIDAgMy41IDguMjV2OS41YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoMTMuNWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1di05LjVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NWgtMi41YS43NS43NSAwIDAgMS0uNjQ3LS4zN2wtMS4wMzItMS43NTdhLjc1Ljc1IDAgMCAwLS42NDYtLjM3TTEyIDhhNC41IDQuNSAwIDEgMSAwIDkgNC41IDQuNSAwIDAgMSAwLTltMCAxLjVhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNhbWVyYV9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMy45MjUgMi41MDRhMi4yNSAyLjI1IDAgMCAxIDEuOTQgMS4xMWwuODE0IDEuMzg3aDIuMDcxQTMuMjUgMy4yNSAwIDAgMSAyMiA4LjI1djkuNUEzLjI1IDMuMjUgMCAwIDEgMTguNzUgMjFINS4yNUEzLjI1IDMuMjUgMCAwIDEgMiAxNy43NXYtOS41QTMuMjUgMy4yNSAwIDAgMSA1LjI1IDVoMi4wOGwuODc1LTEuNDI0YTIuMjUgMi4yNSAwIDAgMSAxLjkxNy0xLjA3M3pNMTIgOGE0LjUgNC41IDAgMSAwIDAgOSA0LjUgNC41IDAgMCAwIDAtOW0wIDEuNWEzIDMgMCAxIDEgMCA2IDMgMyAwIDAgMSAwLTZcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2FyZXRfZG93blwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuMTYxIDEwLjA3M0M0LjQ1NCA5LjI2NSA1LjAyOCA4IDYuMTAyIDhoMTEuNzk2YzEuMDc0IDAgMS42NDggMS4yNjUuOTQxIDIuMDczbC01LjUyMiA2LjMxYTEuNzUgMS43NSAwIDAgMS0yLjYzNCAwek02LjY1MyA5LjVsNS4xNTkgNS44OTZhLjI1LjI1IDAgMCAwIC4zNzYgMGw1LjE2LTUuODk2elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjYXJldF91cFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuMTYxIDE0LjkwN2MtLjcwNy44MDktLjEzMyAyLjA3My45NDEgMi4wNzNoMTEuNzk2YzEuMDc0IDAgMS42NDgtMS4yNjQuOTQxLTIuMDczbC01LjUyMi02LjMxYTEuNzUgMS43NSAwIDAgMC0yLjYzNCAwem0xLjQ5Mi41NzMgNS4xNTktNS44OTZhLjI1LjI1IDAgMCAxIC4zNzYgMGw1LjE2IDUuODk3elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGFydF9hdmVyYWdlXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjMgMjRjLTMuNiAwLTUuMDMtNC4xNzYtNi40MTMtOC4yMTRDMTUuMjc3IDExLjk1OCAxMy45MiA4IDExIDhhMy40NCAzLjQ0IDAgMCAwLTMuMDUzIDIuMzIyTDYuMDUgOS42ODRDNi4xMDEgOS41MzQgNy4zMjEgNiAxMSA2YzQuMzUgMCA2LjAxMiA0Ljg1NSA3LjQ4IDkuMTM4QzE5LjY4OSAxOC42NjcgMjAuODMgMjIgMjMgMjJhMy40NCAzLjQ0IDAgMCAwIDMuMDUzLTIuMzIxbDEuODk2LjYzN0MyNy44OTkgMjAuNDY2IDI2LjY3OSAyNCAyMyAyNFwiXG4gICAgLz5cbiAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIk00IDI4VjE3aDJ2LTJINFYySDJ2MjZhMiAyIDAgMCAwIDIgMmgyNnYtMlpcIiAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOCAxNWgydjJIOHptNCAwaDJ2MmgtMnptOCAwaDJ2MmgtMnptNCAwaDJ2MmgtMnptNCAwaDJ2MmgtMnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hhcnRfY29ycmVsYXRpb25cIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNMzAgMzBINGEyIDIgMCAwIDEtMi0yVjJoMnYyNmgyNlpcIiAvPlxuICAgIDxjaXJjbGUgY3g9XCI5XCIgY3k9XCI2XCIgcj1cIjNcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgLz5cbiAgICA8Y2lyY2xlIGN4PVwiOVwiIGN5PVwiMjJcIiByPVwiM1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiAvPlxuICAgIDxjaXJjbGUgY3g9XCIxOFwiIGN5PVwiMTRcIiByPVwiM1wiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOSAxN2EzIDMgMCAxIDEgMy0zIDMuMDAzIDMuMDAzIDAgMCAxLTMgM20wLTRhMSAxIDAgMSAwIDEgMSAxIDEgMCAwIDAtMS0xXCJcbiAgICAvPlxuICAgIDxjaXJjbGUgY3g9XCIyN1wiIGN5PVwiNlwiIHI9XCIzXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+XG4gICAgPGNpcmNsZSBjeD1cIjI3XCIgY3k9XCIyMlwiIHI9XCIzXCIgZmlsbD1cImN1cnJlbnRDb2xvclwiIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yNyAxN2EzIDMgMCAxIDEgMy0zIDMuMDAzIDMuMDAzIDAgMCAxLTMgM20wLTRhMSAxIDAgMSAwIDEgMSAxIDEgMCAwIDAtMS0xbS05IDEzYTMgMyAwIDEgMSAzLTMgMy4wMDMgMy4wMDMgMCAwIDEtMyAzbTAtNGExIDEgMCAxIDAgMSAxIDEgMSAwIDAgMC0xLTFtMC0xNGEzIDMgMCAxIDEgMy0zIDMuMDAzIDMuMDAzIDAgMCAxLTMgM20wLTRhMSAxIDAgMSAwIDEgMSAxIDEgMCAwIDAtMS0xXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoYXJ0X2xpbmVcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIm00LjY3IDI4IDYuMzktMTIgNy4zIDYuNDlhMiAyIDAgMCAwIDEuNy40NyAyIDIgMCAwIDAgMS40Mi0xLjA3TDI3IDEwLjlsLTEuODItLjktNS40OSAxMS03LjMtNi40OWEyIDIgMCAwIDAtMS42OC0uNTEgMiAyIDAgMCAwLTEuNDIgMUw0IDI1VjJIMnYyNmEyIDIgMCAwIDAgMiAyaDI2di0yWlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGFydF9saW5lX3Ntb290aFwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEzIDE1YzEuNDg1IDAgMi41NTQgMS40OTcgMy42ODYgMy4wODFDMTcuOTk4IDE5LjkxOCAxOS40ODYgMjIgMjIgMjJjNS42NyAwIDcuNzgtMTAuNzkgOC0xMmwtMS45NjgtLjM1OEMyNy41NSAxMi4yODIgMjUuMzk0IDIwIDIyIDIwYy0xLjQ4NSAwLTIuNTU0LTEuNDk3LTMuNjg2LTMuMDgxQzE3LjAwMiAxNS4wODIgMTUuNTE0IDEzIDEzIDEzYy00LjE4NiAwLTcuNDQ1IDcuNDA0LTkgMTEuNzYyVjJIMnYyNmEyLjAwMyAyLjAwMyAwIDAgMCAyIDJoMjZ2LTJINS4wNDRjMS41MS01LjE0MyA0LjkyLTEzIDcuOTU2LTEzXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoYXJ0X21heGltdW1cIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk04IDZoMnYySDh6bTQgMGgydjJoLTJ6bTggMGgydjJoLTJ6bTQgMGgydjJoLTJ6bTQgMGgydjJoLTJ6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtMjcuOTg5IDI4LS4wMjctLjE2M0MyNi41MSAxOS4wNzQgMjQuMDY2IDkuMDg5IDE4IDguMDg5VjZoLTJ2Mi4wODVjLTYuMDg0Ljk3OC04LjUzMyAxMC45NzgtOS45ODYgMTkuNzUyTDUuOTg3IDI4SDRWOGgyVjZINFYySDJ2MjZhMiAyIDAgMCAwIDIgMmgyNnYtMlpNOC4wMTUgMjhjMi4wMjQtMTIuMTA4IDQuOTYtMTggOC45NzMtMThzNi45NDkgNS44OTIgOC45NzIgMThaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoYXJ0X21pbmltdW1cIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGggZmlsbD1cImN1cnJlbnRDb2xvclwiIGQ9XCJNNCAyOHYtMmgydi0ySDRWMkgydjI2YTIgMiAwIDAgMCAyIDJoMjZ2LTJaXCIgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTggMjRoMnYySDh6bTQgMGgydjJoLTJ6bTggMGgydjJoLTJ6bTQgMGgydjJoLTJ6bTQgMGgydjJoLTJ6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjcuOTQ2IDQuMzI4IDI1Ljk3MyA0QzIzLjk0OSAxNi4xMDggMjEuMDEzIDIyIDE3IDIycy02Ljk0OS01Ljg5Mi04Ljk3My0xOGwtMS45NzMuMzI4QzcuNTEgMTMuMDU3IDkuOTY0IDIyLjkzIDE2IDIzLjkxM1YyNmgydi0yLjA4N2M2LjAzNy0uOTgzIDguNDktMTAuODU2IDkuOTQ2LTE5LjU4NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGFydF9zdGVwcGVyXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTQgMjJ2LThoOFY2aDhWNEgyMHY4aC04djhINFYySDJ2MjZhMi4wMDMgMi4wMDMgMCAwIDAgMiAyaDI2di0ySDR2LTZaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoYXJ0X3RyYW5zZm9ybWF0aW9uXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTEwLjM1NiAyMy4wNThDMTIuNzcgMjQuNTkyIDE1LjYyIDI2IDE3Ljk1IDI2YTMuODcgMy44NyAwIDAgMCAyLjg1Ni0xLjA4NGMyLjI4Ni0yLjI5LjE0LTYuMzk4LTEuOTM4LTEwLjM3Mmw1LjgwMS01LjgwMWE0NCA0NCAwIDAgMSAzLjAxMiAyLjEyNEwyOSA5LjM0OWE0NSA0NSAwIDAgMC0yLjg3Mi0yLjA2NEwzMCAzLjQxMyAyOC41ODYgMmwtNC4yMDcgNC4yMDZjLTMuMzE2LTEuOTEtNy4xMDgtMy4yNDYtOS4yMjgtMS4xMjItMi4wNCAyLjA0My0uNTUyIDUuNTMyIDEuMjY4IDkuMDgzbC02LjMwNyA2LjMwNmE0NCA0NCAwIDAgMS0yLjgtMi4xTDYgMTkuODg0YTQ4IDQ4IDAgMCAwIDIuNjY1IDIuMDM1TDQgMjYuNTg1VjJIMnYyNmEyIDIgMCAwIDAgMiAyaDI2di0ySDUuNDEzWm02LjIwOS0xNi41NTdjMS4xMzUtMS4xMzggMy42OTMtLjI4NiA2LjMzNyAxLjE4M2wtNC45OTUgNC45OTRjLTEuMzEzLTIuNjE5LTIuMzUtNS4xNjctMS4zNDItNi4xNzdtLjgyMSA5LjUyNmMxLjU4IDMuMDMyIDMuMTgyIDYuMjk2IDIuMDA3IDcuNDczLTEuMzEyIDEuMzE0LTQuNTIyLS4wMjYtNy41NzItMS45MDhaXCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBkPVwiTTAgMGgzMnYzMkgwelwiXG4gICAgICBkYXRhLW5hbWU9XCImbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0O1wiXG4gICAgICBzdHlsZT1cImZpbGw6IG5vbmVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hhdF9hZGRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMi43NSA3Ljc1YS43NS43NSAwIDAgMC0xLjUgMHYzLjVoLTMuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMy41djMuNWEuNzUuNzUgMCAwIDAgMS41IDB2LTMuNWgzLjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjV6TTIyIDEyYzAtNS41MjMtNC40NzctMTAtMTAtMTBTMiA2LjQ3NyAyIDEyYTkuOTYgOS45NiAwIDAgMCAxLjExNSA0LjU5MmwtMS4wNjggMy44MjNhMS4yNSAxLjI1IDAgMCAwIDEuNTQgMS41NGwzLjgyNi0xLjA2N0E5Ljk2IDkuOTYgMCAwIDAgMTIgMjJjNS41MjMgMCAxMC00LjQ3NyAxMC0xME0zLjUgMTJhOC41IDguNSAwIDEgMSA0LjM2NyA3LjQzbC0uMjctLjE1LTMuOTg2IDEuMTExIDEuMTEzLTMuOTg0LS4xNTEtLjI3QTguNDYgOC40NiAwIDAgMSAzLjUgMTJcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hhdF9zcGFya2xlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTYuMDg4IDYuNDEyYTIuODQgMi44NCAwIDAgMC0xLjM0Ny0uOTU1bC0xLjM3OC0uNDQ4YS41NDQuNTQ0IDAgMCAxIDAtMS4wMjVsMS4zNzgtLjQ0OEEyLjg0IDIuODQgMCAwIDAgMTYuNSAxLjc3NGwuMDExLS4wMzQuNDQ4LTEuMzc3YS41NDQuNTQ0IDAgMCAxIDEuMDI3IDBsLjQ0NyAxLjM3N2EyLjg0IDIuODQgMCAwIDAgMS43OTkgMS43OTZsMS4zNzcuNDQ4LjAyOC4wMDdhLjU0NC41NDQgMCAwIDEgMCAxLjAyNWwtMS4zNzguNDQ4YTIuODQgMi44NCAwIDAgMC0xLjc5OCAxLjc5NmwtLjQ0OCAxLjM3Ny0uMDEzLjAzNGEuNTQ0LjU0NCAwIDAgMS0xLjAxMy0uMDM0bC0uNDQ4LTEuMzc3YTIuOCAyLjggMCAwIDAtLjQ1LS44NDhtNy42OTUgMy44MDEtLjc2Ni0uMjQ4YTEuNTggMS41OCAwIDAgMS0uOTk4LS45OTlsLS4yNS0uNzY0YS4zMDIuMzAyIDAgMCAwLS41NyAwbC0uMjQ4Ljc2NGExLjU4IDEuNTggMCAwIDEtLjk4NC45OTlsLS43NjUuMjQ4YS4zMDIuMzAyIDAgMCAwIDAgLjU3bC43NjUuMjQ5YTEuNTggMS41OCAwIDAgMSAxIDEuMDAybC4yNDguNzY0YS4zMDIuMzAyIDAgMCAwIC41NyAwbC4yNDktLjc2NGExLjU4IDEuNTggMCAwIDEgLjk5OS0uOTk5bC43NjUtLjI0OGEuMzAyLjMwMiAwIDAgMCAwLS41N3pNMTIgMmMuOTU3IDAgMS44ODMuMTM0IDIuNzU5LjM4NWExLjggMS44IDAgMCAxLS4zNjkuMTc0bC0xLjM0LjQ0YTEuNjUgMS42NSAwIDAgMC0uNzIxLjUwN0E4LjUgOC41IDAgMCAwIDMuNSAxMmMwIDEuNDcuMzczIDIuODgzIDEuMDczIDQuMTM3bC4xNS4yNy0xLjExMiAzLjk4NCAzLjk4Ny0xLjExMi4yNy4xNWE4LjUwMiA4LjUwMiAwIDAgMCAxMi41MDctNS45NjVxLjEzNi4yMDIuMzM1LjM0NWExLjI5IDEuMjkgMCAwIDAgMS4wOS4xOTVDMjAuODcgMTguNTY3IDE2LjgzNiAyMiAxMiAyMmE5Ljk2IDkuOTYgMCAwIDEtNC41ODctMS4xMTJsLTMuODI2IDEuMDY3YTEuMjUgMS4yNSAwIDAgMS0xLjU0LTEuNTRsMS4wNjgtMy44MjNBOS45NiA5Ljk2IDAgMCAxIDIgMTJDMiA2LjQ3NyA2LjQ3NyAyIDEyIDJcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hlY2ttYXJrXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNC41MyAxMi45N2EuNzUuNzUgMCAwIDAtMS4wNiAxLjA2bDQuNSA0LjVhLjc1Ljc1IDAgMCAwIDEuMDYgMGwxMS0xMWEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2TDguNSAxNi45NHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hlY2ttYXJrX2NpcmNsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJjNS41MjMgMCAxMCA0LjQ3NyAxMCAxMHMtNC40NzcgMTAtMTAgMTBTMiAxNy41MjMgMiAxMiA2LjQ3NyAyIDEyIDJtMCAxLjVhOC41IDguNSAwIDEgMCAwIDE3IDguNSA4LjUgMCAwIDAgMC0xN20tMS4yNSA5Ljk0IDQuNDctNC40N2EuNzUuNzUgMCAwIDEgMS4xMzMuOTc2bC0uMDczLjA4NC01IDVhLjc1Ljc1IDAgMCAxLS45NzYuMDczbC0uMDg0LS4wNzMtMi41LTIuNWEuNzUuNzUgMCAwIDEgLjk3Ni0xLjEzM2wuMDg0LjA3M3psNC40Ny00LjQ3elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGVja21hcmtfY2lyY2xlX2ZpbGxlZFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJjNS41MjMgMCAxMCA0LjQ3NyAxMCAxMHMtNC40NzcgMTAtMTAgMTBTMiAxNy41MjMgMiAxMiA2LjQ3NyAyIDEyIDJtMy4yMiA2Ljk3LTQuNDcgNC40Ny0xLjk3LTEuOTdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwyLjUgMi41YS43NS43NSAwIDAgMCAxLjA2IDBsNS01YS43NS43NSAwIDEgMC0xLjA2LTEuMDZcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hlY2ttYXJrX2xpc3RcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk02Ljc4IDQuNzhhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNkwzLjc1IDUuNjlsLS40Ny0uNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxIDFhLjc1Ljc1IDAgMCAwIDEuMDYgMHptMTQuNDcgMTMuMjI3SDkuNzVsLS4xMDIuMDA3YS43NS43NSAwIDAgMCAuMTAyIDEuNDkzaDExLjVsLjEwMi0uMDA3YS43NS43NSAwIDAgMC0uMTAyLTEuNDkzbTAtNi41MDdIOS43NWwtLjEwMi4wMDdBLjc1Ljc1IDAgMCAwIDkuNzUgMTNoMTEuNWwuMTAyLS4wMDdhLjc1Ljc1IDAgMCAwLS4xMDItMS40OTNtMC02LjVIOS43NWwtLjEwMi4wMDdBLjc1Ljc1IDAgMCAwIDkuNzUgNi41aDExLjVsLjEwMi0uMDA3QS43NS43NSAwIDAgMCAyMS4yNSA1TTYuNzggMTcuNzhhLjc1Ljc1IDAgMSAwLTEuMDYtMS4wNmwtMS45NyAxLjk3LS40Ny0uNDdhLjc1Ljc1IDAgMCAwLTEuMDYgMS4wNmwxIDFhLjc1Ljc1IDAgMCAwIDEuMDYgMHptMC03LjU2YS43NS43NSAwIDAgMSAwIDEuMDZsLTIuNSAyLjVhLjc1Ljc1IDAgMCAxLTEuMDYgMGwtMS0xYS43NS43NSAwIDEgMSAxLjA2LTEuMDZsLjQ3LjQ3IDEuOTctMS45N2EuNzUuNzUgMCAwIDEgMS4wNiAwXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoZWNrbWFya19zdGFyYnVyc3RcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk05LjgzNiAyLjAzNHEuMTY4LjA1OC4zMjkuMTM2bDEuMjgzLjYzMmExLjI1IDEuMjUgMCAwIDAgMS4xMDQgMGwxLjI4My0uNjMyYTIuNzUgMi43NSAwIDAgMSAzLjY4MiAxLjI1M2wuMDczLjE2Mi4wNjMuMTY3LjQ2IDEuMzUzYy4xMjUuMzY4LjQxNC42NTYuNzgxLjc4MWwxLjM1NC40NmEyLjc1IDIuNzUgMCAwIDEgMS41ODEgMy44MTlsLS42MzEgMS4yODNhMS4yNSAxLjI1IDAgMCAwIDAgMS4xMDRsLjYzMSAxLjI4M2EyLjc1IDIuNzUgMCAwIDEtMS41ODEgMy44MThsLTEuMzU0LjQ2YTEuMjUgMS4yNSAwIDAgMC0uNzguNzgxbC0uNDYxIDEuMzU0YTIuNzUgMi43NSAwIDAgMS0zLjgxOCAxLjU4MWwtMS4yODMtLjYzMWExLjI1IDEuMjUgMCAwIDAtMS4xMDQgMGwtMS4yODMuNjMxYTIuNzUgMi43NSAwIDAgMS0zLjgxOC0xLjU4MWwtLjQ2LTEuMzU0YTEuMjUgMS4yNSAwIDAgMC0uNzgyLS43OGwtMS4zNTMtLjQ2MWEyLjc1IDIuNzUgMCAwIDEtMS41ODItMy44MThsLjYzMi0xLjI4M2ExLjI1IDEuMjUgMCAwIDAgMC0xLjEwNGwtLjYzMi0xLjI4M2EyLjc1IDIuNzUgMCAwIDEgMS41ODItMy44MThsMS4zNTMtLjQ2YTEuMjUgMS4yNSAwIDAgMCAuNzgxLS43ODJsLjQ2LTEuMzUzYTIuNzUgMi43NSAwIDAgMSAzLjQ5LTEuNzE4bS0yLjA3IDIuMi0uNDYgMS4zNTRhMi43NSAyLjc1IDAgMCAxLTEuNzE4IDEuNzE4bC0xLjM1My40NmExLjI1IDEuMjUgMCAwIDAtLjcxOSAxLjczNmwuNjMyIDEuMjgzYTIuNzUgMi43NSAwIDAgMSAwIDIuNDNsLS42MzIgMS4yODJhMS4yNSAxLjI1IDAgMCAwIC43MTkgMS43MzZsMS4zNTMuNDZhMi43NSAyLjc1IDAgMCAxIDEuNzE4IDEuNzE4bC40NiAxLjM1NGExLjI0OCAxLjI0OCAwIDAgMCAxLjczNi43MTlsMS4yODMtLjYzMmEyLjc1IDIuNzUgMCAwIDEgMi40MyAwbDEuMjgyLjYzMnEuMDc0LjAzNS4xNS4wNjFhMS4yNSAxLjI1IDAgMCAwIDEuNTg2LS43OGwuNDYtMS4zNTRhMi43NSAyLjc1IDAgMCAxIDEuNzE4LTEuNzE4bDEuMzU0LS40NnEuMDc1LS4wMjYuMTUtLjA2MmExLjI1IDEuMjUgMCAwIDAgLjU2OS0xLjY3NGwtLjYzMi0xLjI4M2EyLjc1IDIuNzUgMCAwIDEgMC0yLjQyOWwuNjMyLTEuMjgzYTEuMjUgMS4yNSAwIDAgMC0uNzE5LTEuNzM2bC0xLjM1NC0uNDZhMi43NSAyLjc1IDAgMCAxLTEuNzE4LTEuNzE4bC0uNDYtMS4zNTMtLjAyOS0uMDc2LS4wMzMtLjA3NC0uMDYyLS4xMTFhMS4yNSAxLjI1IDAgMCAwLTEuNjEyLS40NThsLTEuMjgzLjYzMmEyLjc1IDIuNzUgMCAwIDEtMi40MjkgMGwtMS4yODMtLjYzMmExLjI1IDEuMjUgMCAwIDAtMS43MzUuNzE5TTEwLjA1IDE0LjM5bDUuNDItNS40MmEuNzUuNzUgMCAwIDEgMS4xMzMuOTc3bC0uMDczLjA4NC02IDZhLjc1Ljc1IDAgMCAxLTEuMDMxLjAyOGwtLjA3NS0uMDc4LTIuNS0zYS43NS43NSAwIDAgMSAxLjA3NS0xLjA0bC4wNzcuMDh6bDUuNDItNS40MnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hldnJvbl9kb3duXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNC4yMiA4LjQ3YS43NS43NSAwIDAgMSAxLjA2IDBMMTIgMTUuMTlsNi43Mi02LjcyYS43NS43NSAwIDEgMSAxLjA2IDEuMDZsLTcuMjUgNy4yNWEuNzUuNzUgMCAwIDEtMS4wNiAwTDQuMjIgOS41M2EuNzUuNzUgMCAwIDEgMC0xLjA2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoZXZyb25fbGVmdFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE1LjUzIDQuMjJhLjc1Ljc1IDAgMCAxIDAgMS4wNkw4LjgxIDEybDYuNzIgNi43MmEuNzUuNzUgMCAxIDEtMS4wNiAxLjA2bC03LjI1LTcuMjVhLjc1Ljc1IDAgMCAxIDAtMS4wNmw3LjI1LTcuMjVhLjc1Ljc1IDAgMCAxIDEuMDYgMFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGV2cm9uX2xlZnRfZmlsbGVkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTUuNzA3IDQuMjkzYTEgMSAwIDAgMSAwIDEuNDE0TDkuNDE0IDEybDYuMjkzIDYuMjkzYTEgMSAwIDAgMS0xLjQxNCAxLjQxNGwtNy03YTEgMSAwIDAgMSAwLTEuNDE0bDctN2ExIDEgMCAwIDEgMS40MTQgMFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjaGV2cm9uX3JpZ2h0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOC40NyA0LjIyYS43NS43NSAwIDAgMCAwIDEuMDZMMTUuMTkgMTJsLTYuNzIgNi43MmEuNzUuNzUgMCAxIDAgMS4wNiAxLjA2bDcuMjUtNy4yNWEuNzUuNzUgMCAwIDAgMC0xLjA2TDkuNTMgNC4yMmEuNzUuNzUgMCAwIDAtMS4wNiAwXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNoZXZyb25fcmlnaHRfZmlsbGVkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOC4yOTMgNC4yOTNhMSAxIDAgMCAwIDAgMS40MTRMMTQuNTg2IDEybC02LjI5MyA2LjI5M2ExIDEgMCAxIDAgMS40MTQgMS40MTRsNy03YTEgMSAwIDAgMCAwLTEuNDE0bC03LTdhMSAxIDAgMCAwLTEuNDE0IDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2hldnJvbl91cFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQuMjkzIDE1LjcwN2ExIDEgMCAwIDAgMS40MTQgMEwxMiA5LjQxNGw2LjI5MyA2LjI5M2ExIDEgMCAwIDAgMS40MTQtMS40MTRsLTctN2ExIDEgMCAwIDAtMS40MTQgMGwtNyA3YTEgMSAwIDAgMCAwIDEuNDE0XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNpcmNsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDMuNWE4LjUgOC41IDAgMSAwIDAgMTcgOC41IDguNSAwIDAgMCAwLTE3TTIgMTJDMiA2LjQ3NyA2LjQ3NyAyIDEyIDJzMTAgNC40NzcgMTAgMTAtNC40NzcgMTAtMTAgMTBTMiAxNy41MjMgMiAxMlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjbGlwYm9hcmRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk04LjM3OSA1LjVINi4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjVjMCAuNDE0LjMzNi43NS43NS43NWgxMS41YS43NS43NSAwIDAgMCAuNzUtLjc1VjYuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVoLTIuMTI5Yy0uNDA0LjYwMy0xLjA5IDEtMS44NzEgMWgtMy41Yy0uNzggMC0xLjQ2Ny0uMzk3LTEuODcxLTFNMTUuOTg2IDRoMS43NjRBMi4yNSAyLjI1IDAgMCAxIDIwIDYuMjV2MTMuNUEyLjI1IDIuMjUgMCAwIDEgMTcuNzUgMjJINi4yNUEyLjI1IDIuMjUgMCAwIDEgNCAxOS43NVY2LjI1QTIuMjUgMi4yNSAwIDAgMSA2LjI1IDRoMS43NjRhMi4yNSAyLjI1IDAgMCAxIDIuMjM2LTJoMy41YTIuMjUgMi4yNSAwIDAgMSAyLjIzNiAyTTkuNSA0LjI1YzAgLjQxNC4zMzYuNzUuNzUuNzVoMy41YS43NS43NSAwIDAgMCAwLTEuNWgtMy41YS43NS43NSAwIDAgMC0uNzUuNzVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvY2tcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjUgMTJhOC41IDguNSAwIDEgMSAxNyAwIDguNSA4LjUgMCAwIDEtMTcgME0xMiAyQzYuNDc3IDIgMiA2LjQ3NyAyIDEyczQuNDc3IDEwIDEwIDEwIDEwLTQuNDc3IDEwLTEwUzE3LjUyMyAyIDEyIDJtLS4wMDcgNC42NDhhLjc1Ljc1IDAgMCAwLTEuNDkzLjEwMnY2bC4wMDcuMTAyYS43NS43NSAwIDAgMCAuNzQzLjY0OGg0bC4xMDItLjAwN0EuNzUuNzUgMCAwIDAgMTUuMjUgMTJIMTJWNi43NXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvdWRfYWRkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgNC41YTQuNSA0LjUgMCAwIDAtNC40OTUgNC4yODUuNzUuNzUgMCAwIDEtLjc1LjcxNUg2LjVhMyAzIDAgMSAwIDAgNmgzLjU3NmE2LjYgNi42IDAgMCAwLS4wNTcgMS41SDYuNWE0LjUgNC41IDAgMCAxLS40Mi04Ljk4IDYuMDAxIDYuMDAxIDAgMCAxIDExLjg0IDAgNC41IDQuNSAwIDAgMSA0LjA1MyA0Ljk3MyA2LjUgNi41IDAgMCAwLTEuOC0xLjg1N0EzIDMgMCAwIDAgMTcuNSA5LjVoLS4yNTZhLjc1Ljc1IDAgMCAxLS43NDktLjcxNUE0LjUgNC41IDAgMCAwIDEyIDQuNW0xMCAxMmE1LjUgNS41IDAgMSAwLTExIDAgNS41IDUuNSAwIDAgMCAxMSAwbS01IC41LjAwMSAyLjUwM2EuNS41IDAgMSAxLTEgMFYxN2gtMi41MDVhLjUuNSAwIDAgMSAwLTFIMTZ2LTIuNWEuNS41IDAgMSAxIDEgMFYxNmgyLjQ5N2EuNS41IDAgMCAxIDAgMXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvdWRfYXJjaGl2ZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDUuNWE0LjUgNC41IDAgMCAwLTQuNDk1IDQuMjg1Ljc1Ljc1IDAgMCAxLS43NS43MTVINi41YTMgMyAwIDEgMCAwIDZoNS4xNzdhMiAyIDAgMCAwIC4zMjMuMjMyVjE4SDYuNWE0LjUgNC41IDAgMCAxLS40Mi04Ljk4IDYuMDAxIDYuMDAxIDAgMCAxIDExLjg0IDBBNC41IDQuNSAwIDAgMSAyMS43NDQgMTJoLTEuNjQ1YTMgMyAwIDAgMC0yLjU5OS0xLjVoLS4yNTZhLjc1Ljc1IDAgMCAxLS43NDktLjcxNUE0LjUgNC41IDAgMCAwIDEyIDUuNW0xIDcuNWExIDEgMCAwIDAtMSAxdjFhMSAxIDAgMCAwIDEgMWg5YTEgMSAwIDAgMCAxLTF2LTFhMSAxIDAgMCAwLTEtMXptNyAxMGEyIDIgMCAwIDAgMi0ydi00aC05djRhMiAyIDAgMCAwIDIgMnptLTQuNS00LjVhLjUuNSAwIDAgMSAuNS0uNWgzYS41LjUgMCAwIDEgMCAxaC0zYS41LjUgMCAwIDEtLjUtLjVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvdWRfYXJyb3dfZG93blwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDQuNWE0LjUgNC41IDAgMCAwLTQuNDk1IDQuMjg1Ljc1Ljc1IDAgMCAxLS43NS43MTVINi41YTMgMyAwIDEgMCAwIDZoMy41NzZhNi42IDYuNiAwIDAgMC0uMDU3IDEuNUg2LjVhNC41IDQuNSAwIDAgMS0uNDItOC45OCA2LjAwMSA2LjAwMSAwIDAgMSAxMS44NCAwIDQuNSA0LjUgMCAwIDEgNC4wNTMgNC45NzMgNi41IDYuNSAwIDAgMC0xLjgtMS44NTdBMyAzIDAgMCAwIDE3LjUgOS41aC0uMjU2YS43NS43NSAwIDAgMS0uNzQ5LS43MTVBNC41IDQuNSAwIDAgMCAxMiA0LjVtMTAgMTJhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMG0tNS0zYS41LjUgMCAwIDAtMSAwdjQuNzkzbC0xLjY0Ni0xLjY0N2EuNS41IDAgMCAwLS43MDguNzA4bDIuNSAyLjVhLjUuNSAwIDAgMCAuNzA4IDBsMi41LTIuNWEuNS41IDAgMCAwLS43MDgtLjcwOEwxNyAxOC4yOTN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNsb3VkX2Rpc21pc3NcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiA0LjVhNC41IDQuNSAwIDAgMC00LjQ5NSA0LjI4NS43NS43NSAwIDAgMS0uNzUuNzE1SDYuNWEzIDMgMCAxIDAgMCA2aDMuNTc2YTYuNiA2LjYgMCAwIDAtLjA1NyAxLjVINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNi4wMDEgNi4wMDEgMCAwIDEgMTEuODQgMCA0LjUgNC41IDAgMCAxIDQuMDUzIDQuOTczIDYuNSA2LjUgMCAwIDAtMS44LTEuODU3QTMgMyAwIDAgMCAxNy41IDkuNWgtLjI1NmEuNzUuNzUgMCAwIDEtLjc0OS0uNzE1QTQuNSA0LjUgMCAwIDAgMTIgNC41bTEwIDEyYTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBtLTcuMTQ2LTIuMzU0YS41LjUgMCAwIDAtLjcwOC43MDhsMS42NDcgMS42NDYtMS42NDcgMS42NDZhLjUuNSAwIDAgMCAuNzA4LjcwOGwxLjY0Ni0xLjY0NyAxLjY0NiAxLjY0N2EuNS41IDAgMCAwIC43MDgtLjcwOEwxNy4yMDcgMTYuNWwxLjY0Ny0xLjY0NmEuNS41IDAgMCAwLS43MDgtLjcwOEwxNi41IDE1Ljc5M3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY2xvdWRfZG93bmxvYWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiA0LjVhNC41IDQuNSAwIDAgMC00LjQ5NSA0LjI4NS43NS43NSAwIDAgMS0uNzUuNzE1SDYuNWEzIDMgMCAxIDAgMCA2aDMuNTc2YTYuNiA2LjYgMCAwIDAtLjA1NyAxLjVINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNi4wMDEgNi4wMDEgMCAwIDEgMTEuODQgMCA0LjUgNC41IDAgMCAxIDQuMDUzIDQuOTczIDYuNSA2LjUgMCAwIDAtMS44LTEuODU3QTMgMyAwIDAgMCAxNy41IDkuNWgtLjI1NmEuNzUuNzUgMCAwIDEtLjc0OS0uNzE1QTQuNSA0LjUgMCAwIDAgMTIgNC41bTEwIDEyYTUuNSA1LjUgMCAxIDEtMTEgMCA1LjUgNS41IDAgMCAxIDExIDBtLTUtM2EuNS41IDAgMCAwLTEgMHY0Ljc5M2wtMS42NDYtMS42NDdhLjUuNSAwIDAgMC0uNzA4LjcwOGwyLjUgMi41YS41LjUgMCAwIDAgLjcwOCAwbDIuNS0yLjVhLjUuNSAwIDAgMC0uNzA4LS43MDhMMTcgMTguMjkzelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjbG91ZF9lZGl0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgNS41YTQuNSA0LjUgMCAwIDAtNC40OTUgNC4yODUuNzUuNzUgMCAwIDEtLjc1LjcxNUg2LjVhMyAzIDAgMSAwIDAgNmg2LjM1NWwtLjM2NS4zNjVBMy43IDMuNyAwIDAgMCAxMS43MTcgMThINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNi4wMDEgNi4wMDEgMCAwIDEgMTEuODQgMCA0LjUgNC41IDAgMCAxIDIuNDMzIDEgMy4yNyAzLjI3IDAgMCAwLTEuNzAxLjcxIDMgMyAwIDAgMC0xLjE1Mi0uMjNoLS4yNTZhLjc1Ljc1IDAgMCAxLS43NDktLjcxNUE0LjUgNC41IDAgMCAwIDEyIDUuNW03LjEgNi4xNy01LjkwMyA1LjkwMmEyLjcgMi43IDAgMCAwLS43MDYgMS4yNDdsLS40NTggMS44MzFhMS4wODcgMS4wODcgMCAwIDAgMS4zMTkgMS4zMThsMS44My0uNDU3YTIuNyAyLjcgMCAwIDAgMS4yNDgtLjcwN2w1LjkwMi01LjkwMkEyLjI4NiAyLjI4NiAwIDAgMCAxOS4xIDExLjY3XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNsb3VkX2xpbmtcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiA1LjVhNC41IDQuNSAwIDAgMC00LjQ5NSA0LjI4NS43NS43NSAwIDAgMS0uNzUuNzE1SDYuNWEzIDMgMCAxIDAgMCA2aDMuNTA3Yy4wMjcuNTI3LjE0IDEuMDMyLjMyNiAxLjVINi41YTQuNSA0LjUgMCAwIDEtLjQyLTguOTggNi4wMDEgNi4wMDEgMCAwIDEgMTEuODQgMCA0LjUgNC41IDAgMCAxIDQuMDc3IDQuMzEgNC43NiA0Ljc2IDAgMCAwLTIuMDA1LTEuNUEzIDMgMCAwIDAgMTcuNSAxMC41aC0uMjU2YS43NS43NSAwIDAgMS0uNzQ5LS43MTVBNC41IDQuNSAwIDAgMCAxMiA1LjVtMTAgMTAuNzVhMy43NSAzLjc1IDAgMCAwLTMuNzUtMy43NWwtLjEwMi4wMDdBLjc1Ljc1IDAgMCAwIDE4LjI1IDE0bC4xNTQuMDA1YTIuMjUgMi4yNSAwIDAgMS0uMTU0IDQuNDk1bC0uMDAzLjAwNS0uMTAyLjAwN2EuNzUuNzUgMCAwIDAgLjEwOCAxLjQ5M1YyMGwuMi0uMDA1QTMuNzUgMy43NSAwIDAgMCAyMiAxNi4yNW0tNi41LTNhLjc1Ljc1IDAgMCAwLS43NS0uNzVsLS4yLjAwNWEzLjc1IDMuNzUgMCAwIDAgLjIgNy40OTVsLjEwMi0uMDA3YS43NS43NSAwIDAgMC0uMTAyLTEuNDkzbC0uMTU0LS4wMDVBMi4yNSAyLjI1IDAgMCAxIDE0Ljc1IDE0bC4xMDItLjAwN2EuNzUuNzUgMCAwIDAgLjY0OC0uNzQzbTMuNSAzYS43NS43NSAwIDAgMC0uNzUtLjc1aC0zLjVsLS4xMDIuMDA3QS43NS43NSAwIDAgMCAxNC43NSAxN2gzLjVsLjEwMi0uMDA3QS43NS43NSAwIDAgMCAxOSAxNi4yNVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjbG91ZF9vZmZcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjI4IDIuMjJhLjc1Ljc1IDAgMSAwLTEuMDYgMS4wNmw0LjYzMyA0LjYzNGE2IDYgMCAwIDAtLjc3MyAyLjEwNUE0LjUgNC41IDAgMCAwIDYuNSAxOWgxMXEuMjEzIDAgLjQyLS4wMmwyLjggMi44YS43NS43NSAwIDAgMCAxLjA2LTEuMDZ6TTE2LjQ0IDE3LjVINi41YTMgMyAwIDEgMSAwLTZoLjI1NmMuNCAwIC43My0uMzE1Ljc0OS0uNzE1LjAzLS42MzEuMTktMS4yMjkuNDUzLTEuNzY2em00LjA2LTNjMCAuNzgyLS4zIDEuNDk0LS43OSAyLjAyOWwxLjA2MiAxLjA2YTQuNSA0LjUgMCAwIDAtMi44NTEtNy41NyA2IDYgMCAwIDAtOC45My00LjIxbDEuMTEgMS4xMWE0LjUgNC41IDAgMCAxIDYuMzk0IDMuODY2Ljc1Ljc1IDAgMCAwIC43NS43MTVoLjI1NWEzIDMgMCAwIDEgMyAzXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNsb3VkX3VwbG9hZFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDQuNWE0LjUgNC41IDAgMCAwLTQuNDk1IDQuMjg1Ljc1Ljc1IDAgMCAxLS43NS43MTVINi41YTMgMyAwIDEgMCAwIDZoMy41NzZhNi42IDYuNiAwIDAgMC0uMDU3IDEuNUg2LjVhNC41IDQuNSAwIDAgMS0uNDItOC45OCA2LjAwMSA2LjAwMSAwIDAgMSAxMS44NCAwIDQuNSA0LjUgMCAwIDEgNC4wNTMgNC45NzMgNi41IDYuNSAwIDAgMC0xLjgtMS44NTdBMyAzIDAgMCAwIDE3LjUgOS41aC0uMjU2YS43NS43NSAwIDAgMS0uNzQ5LS43MTVBNC41IDQuNSAwIDAgMCAxMiA0LjVtMTAgMTJhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMG0tNiAzYS41LjUgMCAwIDAgMSAwdi00Ljc5M2wxLjY0NiAxLjY0N2EuNS41IDAgMCAwIC43MDgtLjcwOGwtMi41LTIuNWEuNS41IDAgMCAwLS43MDggMGwtMi41IDIuNWEuNS41IDAgMCAwIC43MDguNzA4TDE2IDE0LjcwN3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY29kZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwibTguMDY2IDE4Ljk0MyA2LjUtMTQuNWEuNzUuNzUgMCAwIDEgMS40MDQuNTE4bC0uMDM2LjA5Ni02LjUgMTQuNWEuNzUuNzUgMCAwIDEtMS40MDQtLjUxOHpsNi41LTE0LjV6TTIuMjIgMTEuNDdsNC4yNS00LjI1YS43NS43NSAwIDAgMSAxLjEzMy45NzZsLS4wNzMuMDg1TDMuODEgMTJsMy43MiAzLjcxOWEuNzUuNzUgMCAwIDEtLjk3NiAxLjEzM2wtLjA4NC0uMDczLTQuMjUtNC4yNWEuNzUuNzUgMCAwIDEtLjA3My0uOTc2emw0LjI1LTQuMjV6bTE0LjI1LTQuMjVhLjc1Ljc1IDAgMCAxIC45NzYtLjA3M2wuMDg0LjA3MyA0LjI1IDQuMjVhLjc1Ljc1IDAgMCAxIC4wNzMuOTc2bC0uMDczLjA4NS00LjI1IDQuMjVhLjc1Ljc1IDAgMCAxLTEuMTMzLS45NzdsLjA3My0uMDg0TDIwLjE5IDEybC0zLjcyLTMuNzJhLjc1Ljc1IDAgMCAxIDAtMS4wNlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTMuODM5IDUuODU4YzIuOTQtMy45MTYgOS4wMy01LjA1NSAxMy4zNjQtMi4zNiA0LjI4IDIuNjYgNS44NTQgNy43NzcgNC4xIDEyLjU3Ny0xLjY1NSA0LjUzMy02LjAxNiA2LjMyOC05LjE1OSA0LjA0OC0xLjE3Ny0uODU0LTEuNjM0LTEuOTI1LTEuODU0LTMuNjY0bC0uMTA2LS45ODctLjA0NS0uMzk4Yy0uMTIzLS45MzQtLjMxMS0xLjM1Mi0uNzA1LTEuNTcyLS41MzUtLjI5OC0uODkyLS4zMDUtMS41OTUtLjAzM2wtLjM1MS4xNDYtLjE3OS4wNzhjLTEuMDE0LjQ0LTEuNjg4LjU5NS0yLjU0MS40MTZsLS4yLS4wNDctLjE2NC0uMDQ3Yy0yLjc4OS0uODY0LTMuMjAyLTQuNjQ3LS41NjUtOC4xNTdtLjk4NCA2LjcxNi4xMjMuMDM3LjEzNC4wM2MuNDM5LjA4Ny44MTQuMDE1IDEuNDM3LS4yNDJsLjYwMi0uMjU3YzEuMjAyLS40OTMgMS45ODUtLjU0IDMuMDQ2LjA1LjkxNy41MTIgMS4yNzUgMS4yOTggMS40NTcgMi42NmwuMDUzLjQ1OS4wNTUuNTMyLjA0Ny40MjJjLjE3MiAxLjM2MS40ODUgMi4wOSAxLjI0OCAyLjY0NCAyLjI3NSAxLjY1IDUuNTM0LjMwOSA2Ljg3LTMuMzQ5IDEuNTE2LTQuMTUyLjE3NC04LjUxNC0zLjQ4NC0xMC43ODktMy42NzUtMi4yODQtOC44OTktMS4zMDYtMTEuMzczIDEuOTg3LTIuMDc1IDIuNzYzLTEuODIgNS4yOC0uMjE1IDUuODE2bTExLjIyNS0xLjk5NGExLjI1IDEuMjUgMCAxIDEgMi40MTQtLjY0NyAxLjI1IDEuMjUgMCAwIDEtMi40MTQuNjQ3bS40OTQgMy40ODhhMS4yNSAxLjI1IDAgMSAxIDIuNDE1LS42NDcgMS4yNSAxLjI1IDAgMCAxLTIuNDE1LjY0N00xNC4wNyA3LjU3N2ExLjI1IDEuMjUgMCAxIDEgMi40MTUtLjY0NyAxLjI1IDEuMjUgMCAwIDEtMi40MTUuNjQ3bS0uMDI4IDguOTk4YTEuMjUgMS4yNSAwIDEgMSAyLjQxNC0uNjQ3IDEuMjUgMS4yNSAwIDAgMS0yLjQxNC42NDdtLTMuNDk3LTkuOTdhMS4yNSAxLjI1IDAgMSAxIDIuNDE1LS42NDYgMS4yNSAxLjI1IDAgMCAxLTIuNDE1LjY0NlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjb2x1bW5fdHJpcGxlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNC41IDIxQTIuNSAyLjUgMCAwIDEgMiAxOC41di0xM0EyLjUgMi41IDAgMCAxIDQuNSAzaDFBMi41IDIuNSAwIDAgMSA4IDUuNXYxM0EyLjUgMi41IDAgMCAxIDUuNSAyMXptLTEtMi41YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0xM2ExIDEgMCAwIDAtMS0xaC0xYTEgMSAwIDAgMC0xIDF6bTggMi41QTIuNSAyLjUgMCAwIDEgOSAxOC41di0xM0EyLjUgMi41IDAgMCAxIDExLjUgM2gxQTIuNSAyLjUgMCAwIDEgMTUgNS41djEzYTIuNSAyLjUgMCAwIDEtMi41IDIuNXptLTEtMi41YTEgMSAwIDAgMCAxIDFoMWExIDEgMCAwIDAgMS0xdi0xM2ExIDEgMCAwIDAtMS0xaC0xYTEgMSAwIDAgMC0xIDF6bTUuNSAwYTIuNSAyLjUgMCAwIDAgMi41IDIuNWgxYTIuNSAyLjUgMCAwIDAgMi41LTIuNXYtMTNBMi41IDIuNSAwIDAgMCAxOS41IDNoLTFBMi41IDIuNSAwIDAgMCAxNiA1LjV6bTIuNSAxYTEgMSAwIDAgMS0xLTF2LTEzYTEgMSAwIDAgMSAxLTFoMWExIDEgMCAwIDEgMSAxdjEzYTEgMSAwIDAgMS0xIDF6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImNvbmRpdGlvbl9wb2ludFwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aCBmaWxsPVwiY3VycmVudENvbG9yXCIgZD1cIm04IDE2IDgtOCA4IDgtOCA4elwiIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yOS4zOSAxNC41MjcgMTcuNDc0IDIuNjA5YTIuMDg1IDIuMDg1IDAgMCAwLTIuOTQ2IDBMMi42MDkgMTQuNTI3YTIuMDg1IDIuMDg1IDAgMCAwIDAgMi45NDZsMTEuOTE4IDExLjkxOGEyLjA4NSAyLjA4NSAwIDAgMCAyLjk0NiAwbDExLjkxOC0xMS45MThhMi4wODUgMi4wODUgMCAwIDAgMC0yLjk0Nk0xNiAyOC4wMzYgMy45NjUgMTYgMTYgMy45NjQgMjguMDM2IDE2WlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJjb3B5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNS41MDMgNC42MjcgNS41IDYuNzV2MTAuNTA0YTMuMjUgMy4yNSAwIDAgMCAzLjI1IDMuMjVoOC42MTZhMi4yNSAyLjI1IDAgMCAxLTIuMTIyIDEuNUg4Ljc1QTQuNzUgNC43NSAwIDAgMSA0IDE3LjI1NFY2Ljc1YzAtLjk4LjYyNy0xLjgxNSAxLjUwMy0yLjEyM00xNy43NSAyQTIuMjUgMi4yNSAwIDAgMSAyMCA0LjI1djEzYTIuMjUgMi4yNSAwIDAgMS0yLjI1IDIuMjVoLTlhMi4yNSAyLjI1IDAgMCAxLTIuMjUtMi4yNXYtMTNBMi4yNSAyLjI1IDAgMCAxIDguNzUgMnptMCAxLjVoLTlhLjc1Ljc1IDAgMCAwLS43NS43NXYxM2MwIC40MTQuMzM2Ljc1Ljc1Ljc1aDlhLjc1Ljc1IDAgMCAwIC43NS0uNzV2LTEzYS43NS43NSAwIDAgMC0uNzUtLjc1XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImN1YmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk02LjA0OSA3Ljk4M2EuNzUuNzUgMCAwIDEgLjk2Ny0uNDM1TDEyIDkuNDM4bDQuOTg0LTEuODlhLjc1Ljc1IDAgMSAxIC41MzIgMS40MDJsLTQuNzY2IDEuODF2NS40OWEuNzUuNzUgMCAxIDEtMS41IDB2LTUuNDlMNi40ODQgOC45NWEuNzUuNzUgMCAwIDEtLjQzNS0uOTY3bTQuNTQyLTUuNDcyYTMuNzUgMy43NSAwIDAgMSAyLjgxOCAwbDcuNDk4IDMuMDRBMS43NSAxLjc1IDAgMCAxIDIyIDcuMTczdjkuNjUzYTEuNzUgMS43NSAwIDAgMS0xLjA5MyAxLjYyMWwtNy40OTggMy4wNGEzLjc1IDMuNzUgMCAwIDEtMi44MTggMGwtNy40OTgtMy4wNEExLjc1IDEuNzUgMCAwIDEgMiAxNi44MjZWNy4xNzNBMS43NSAxLjc1IDAgMCAxIDMuMDkzIDUuNTV6bTIuMjU0IDEuMzlhMi4yNSAyLjI1IDAgMCAwLTEuNjkgMGwtNy40OTkgMy4wNGEuMjUuMjUgMCAwIDAtLjE1Ni4yMzJ2OS42NTNhLjI1LjI1IDAgMCAwIC4xNTYuMjMxbDcuNDk5IDMuMDRhMi4yNSAyLjI1IDAgMCAwIDEuNjkgMGw3LjQ5OS0zLjA0YS4yNS4yNSAwIDAgMCAuMTU2LS4yMzFWNy4xNzNhLjI1LjI1IDAgMCAwLS4xNTYtLjIzMnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiY3Vyc29yX2NsaWNrXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOS4yNSAyYS43NS43NSAwIDAgMSAuNzUuNzV2Mi41YS43NS43NSAwIDAgMS0xLjUgMHYtMi41QS43NS43NSAwIDAgMSA5LjI1IDJNNC40NyAzLjk3YS43NS43NSAwIDAgMSAxLjA2IDBsMS43NSAxLjc1YS43NS43NSAwIDEgMS0xLjA2IDEuMDZMNC40NyA1LjAzYS43NS43NSAwIDAgMSAwLTEuMDZtOS41NiAwYS43NS43NSAwIDAgMSAwIDEuMDZsLTEuNzUgMS43NWEuNzUuNzUgMCAxIDEtMS4wNi0xLjA2bDEuNzUtMS43NWEuNzUuNzUgMCAwIDEgMS4wNiAwTTIuNSA4Ljc1QS43NS43NSAwIDAgMSAzLjI1IDhoMi41YS43NS43NSAwIDAgMSAwIDEuNWgtMi41YS43NS43NSAwIDAgMS0uNzUtLjc1bTguMTc3LS4yNjRDOS44MjIgNy43NTIgOC41IDguMzYgOC41IDkuNDg3djExLjI3NGMwIDEuMjEgMS40OTUgMS43ODIgMi4zMDIuODhsMi42MTQtMi45MjNjLjI3Ni0uMzA4LjY2NC0uNDkgMS4wNzctLjUwN2wzLjg0LS4xNTRjMS4xOTctLjA0OCAxLjcxNS0xLjUzOS44MDUtMi4zMnpNMTAgMjAuMjg3VjkuODgxbDcuODEyIDYuNjk2LTMuMzguMTM1YTMuMDMgMy4wMyAwIDAgMC0yLjEzMyAxLjAwNnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGFzaGJvYXJkXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjQgMjFoMnY1aC0yem0tNC01aDJ2MTBoLTJ6bS05IDEwYTUuMDA2IDUuMDA2IDAgMCAxLTUtNWgyYTMgMyAwIDEgMCAzLTN2LTJhNSA1IDAgMCAxIDAgMTBcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yOCAySDRhMiAyIDAgMCAwLTIgMnYyNGEyIDIgMCAwIDAgMiAyaDI0YTIuMDAzIDIuMDAzIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJtMCA5SDE0VjRoMTRaTTEyIDR2N0g0VjRaTTQgMjhWMTNoMjRsLjAwMiAxNVpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGFzaGJvYXJkX3JlZmVyZW5jZVwiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQgMjB2Mmg0LjU4NkwyIDI4LjU4NiAzLjQxNCAzMCAxMCAyMy40MTRWMjhoMnYtOHptMjAgMWgydjVoLTJ6bS00LTVoMnYxMGgtMnptLTQgMmgydjhoLTJ6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjggMkg0YTIgMiAwIDAgMC0yIDJ2MTJoMnYtM2gyNC4wMDFsLjAwMSAxNUgxNnYyaDEyYTIuMDAzIDIuMDAzIDAgMCAwIDItMlY0YTIgMiAwIDAgMC0yLTJtLTE2IDlINFY0aDhabTIgMFY0aDE0djdaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRhdGFfYWNjZXNzb3JcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yOCAyMGgtMnYyaDJ2Nkg0di02aDJ2LTJINGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmgyNGEyIDIgMCAwIDAgMi0ydi02YTIgMiAwIDAgMC0yLTJcIlxuICAgIC8+XG4gICAgPGNpcmNsZSBjeD1cIjdcIiBjeT1cIjI1XCIgcj1cIjFcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIxIDEzYTIuOTYgMi45NiAwIDAgMC0xLjI4NS4zbC0yLjMtMi4zIDIuMy0yLjNBMi45NiAyLjk2IDAgMCAwIDIxIDlhMyAzIDAgMSAwLTMtMyAzIDMgMCAwIDAgLjMgMS4yODVsLTIuMyAyLjMtMi4zLTIuM0EzIDMgMCAwIDAgMTQgNmEzIDMgMCAxIDAtMyAzIDIuOTYgMi45NiAwIDAgMCAxLjI4NS0uM2wyLjMgMi4zLTIuMyAyLjNBMi45NiAyLjk2IDAgMCAwIDExIDEzYTMgMyAwIDEgMCAzIDMgMyAzIDAgMCAwLS4zLTEuMjg1bDIuMy0yLjMgMi4zIDIuM0EzIDMgMCAwIDAgMTggMTZhMyAzIDAgMSAwIDMtM20wLThhMSAxIDAgMSAxLTEgMSAxIDEgMCAwIDEgMS0xTTEwIDZhMSAxIDAgMSAxIDEgMSAxIDEgMCAwIDEtMS0xbTEgMTFhMSAxIDAgMSAxIDEtMSAxIDEgMCAwIDEtMSAxbTEwIDBhMSAxIDAgMSAxIDEtMSAxIDEgMCAwIDEtMSAxXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRlbGV0ZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEwIDVoNGEyIDIgMCAxIDAtNCAwTTguNSA1YTMuNSAzLjUgMCAxIDEgNyAwaDUuNzVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjMybC0xLjE3IDEyLjExMUEzLjc1IDMuNzUgMCAwIDEgMTUuMDI2IDIySDguOTc0YTMuNzUgMy43NSAwIDAgMS0zLjczMy0zLjM4OUw0LjA3IDYuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNXptMiA0Ljc1YS43NS43NSAwIDAgMC0xLjUgMHY3LjVhLjc1Ljc1IDAgMCAwIDEuNSAwek0xNC4yNSA5YS43NS43NSAwIDAgMSAuNzUuNzV2Ny41YS43NS43NSAwIDAgMS0xLjUgMHYtNy41YS43NS43NSAwIDAgMSAuNzUtLjc1bS03LjUxNiA5LjQ2N2EyLjI1IDIuMjUgMCAwIDAgMi4yNCAyLjAzM2g2LjA1MmEyLjI1IDIuMjUgMCAwIDAgMi4yNC0yLjAzM0wxOC40MjQgNi41SDUuNTc2elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkZWxldGVfYXJyb3dfYmFja1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTExLjUgNGExLjUgMS41IDAgMCAwLTMgMHptLTQgMGEyLjUgMi41IDAgMCAxIDUgMGg1YS41LjUgMCAwIDEgMCAxaC0xLjA1NGwtLjQ4NSA0LjE5NmE1LjUgNS41IDAgMCAwLS45ODYtLjE3NkwxNS40NCA1SDQuNTYxbDEuMTggMTAuMjNBMiAyIDAgMCAwIDcuNzI4IDE3SDkuNnEuMjc2LjUzOC42NTcgMUg3LjcyOGEzIDMgMCAwIDEtMi45OC0yLjY1NkwzLjU1NCA1SDIuNWEuNS41IDAgMCAxIDAtMXptNyAxNWE0LjUgNC41IDAgMSAwIDAtOSA0LjUgNC41IDAgMCAwIDAgOW0tLjg5Ni02LjM5Ni0uODk3Ljg5NmgxLjU0M0EyLjc1IDIuNzUgMCAwIDEgMTcgMTYuMjV2LjI1YS41LjUgMCAwIDEtMSAwdi0uMjVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NWgtMS41NDNsLjg5Ny44OTZhLjUuNSAwIDAgMS0uNzA4LjcwOGwtMS43NTItMS43NTNhLjUuNSAwIDAgMSAuMDAyLS43MDVsMS43NS0xLjc1YS41LjUgMCAwIDEgLjcwOC43MDhcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGVsZXRlX2Rpc21pc3NcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNCA1YTIgMiAwIDEgMC00IDB6TTguNSA1YTMuNSAzLjUgMCAxIDEgNyAwaDUuNzVhLjc1Ljc1IDAgMCAxIDAgMS41aC0xLjMybC0uNTAyIDUuMTk1YTYuNSA2LjUgMCAwIDAtMS40NTYtLjUyOGwuNDUyLTQuNjY3SDUuNTc2bDEuMTU4IDExLjk2N2EyLjI1IDIuMjUgMCAwIDAgMi4yNCAyLjAzM2gxLjc1OEE2LjUgNi41IDAgMCAwIDExLjgxIDIySDguOTc0YTMuNzUgMy43NSAwIDAgMS0zLjczMy0zLjM4OUw0LjA3IDYuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNXpNMjIgMTcuNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwbS03LjE0Ni0yLjM1NGEuNS41IDAgMCAwLS43MDguNzA4bDEuNjQ3IDEuNjQ2LTEuNjQ3IDEuNjQ2YS41LjUgMCAwIDAgLjcwOC43MDhsMS42NDYtMS42NDcgMS42NDYgMS42NDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMMTcuMjA3IDE3LjVsMS42NDctMS42NDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMMTYuNSAxNi43OTN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRlbGV0ZV9saW5lc1wiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTExLjUgNGExLjUgMS41IDAgMCAwLTMgMHptLTQgMGEyLjUgMi41IDAgMCAxIDUgMGg1YS41LjUgMCAwIDEgMCAxaC0xLjA1NGwtLjgwOCA3SDE0LjYzbC44MDgtN0g0LjU2MWwxLjE4IDEwLjIzQTIgMiAwIDAgMCA3LjcyOCAxN2gyLjM1N2ExLjUgMS41IDAgMCAwIDAgMUg3LjcyOGEzIDMgMCAwIDEtMi45OC0yLjY1NkwzLjU1NCA1SDIuNWEuNS41IDAgMCAxIDAtMXptNCA5YS41LjUgMCAwIDAgMCAxaDZhLjUuNSAwIDAgMCAwLTF6bTAgMmEuNS41IDAgMCAwIDAgMWg2YS41LjUgMCAwIDAgMC0xem0wIDJhLjUuNSAwIDAgMCAwIDFoNmEuNS41IDAgMCAwIDAtMXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGVzY2VuZGluZ1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQgMi43NUEuNzUuNzUgMCAwIDEgNC43NSAySDkuNWEuNzUuNzUgMCAwIDEgLjYzNCAxLjE1MUw2LjExMyA5LjVIOS41YS43NS43NSAwIDEgMSAwIDEuNUg0Ljc1YS43NS43NSAwIDAgMS0uNjM0LTEuMTUxTDguMTM3IDMuNUg0Ljc1QS43NS43NSAwIDAgMSA0IDIuNzVtMi4zNjggOS43MjdhLjc1Ljc1IDAgMCAxIDEuNDAxLjAxbDMuMTg0IDguNWEuNzUuNzUgMCAwIDEtMS40MDUuNTI2TDguNzk0IDE5LjVINS4yMzhsLS43OSAyLjAyMmEuNzUuNzUgMCAwIDEtMS4zOTctLjU0NXpNOC4yMzIgMThsLTEuMTgtMy4xNUw1LjgyMyAxOHpNMTcuMjUgMmEuNzUuNzUgMCAwIDEgLjc1Ljc1djE2LjY5bDIuMjItMi4yMmEuNzUuNzUgMCAxIDEgMS4wNiAxLjA2bC0zLjUgMy41YS43NS43NSAwIDAgMS0xLjA2IDBsLTMuNS0zLjVhLjc1Ljc1IDAgMSAxIDEuMDYtMS4wNmwyLjIyIDIuMjJWMi43NWEuNzUuNzUgMCAwIDEgLjc1LS43NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkZXZpY2VzXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAgMzBINGEyIDIgMCAwIDEtMi0yVjE2YTIgMiAwIDAgMSAyLTJoNmEyIDIgMCAwIDEgMiAydjEyYTIgMiAwIDAgMS0yIDJNNCAxNnYxMmg2VjE2WlwiXG4gICAgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTI4IDRINmEyIDIgMCAwIDAtMiAydjZoMlY2aDIydjE0SDE0djJoMnY0aC0ydjJoOXYtMmgtNXYtNGgxMGEyIDIgMCAwIDAgMi0yVjZhMiAyIDAgMCAwLTItMlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkaXNtaXNzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtNC4zOTcgNC41NTQuMDczLS4wODRhLjc1Ljc1IDAgMCAxIC45NzYtLjA3M2wuMDg0LjA3M0wxMiAxMC45MzlsNi40Ny02LjQ3YS43NS43NSAwIDEgMSAxLjA2IDEuMDYxTDEzLjA2MSAxMmw2LjQ3IDYuNDdhLjc1Ljc1IDAgMCAxIC4wNzIuOTc2bC0uMDczLjA4NGEuNzUuNzUgMCAwIDEtLjk3Ni4wNzNsLS4wODQtLjA3M0wxMiAxMy4wNjFsLTYuNDcgNi40N2EuNzUuNzUgMCAwIDEtMS4wNi0xLjA2MUwxMC45MzkgMTJsLTYuNDctNi40N2EuNzUuNzUgMCAwIDEtLjA3Mi0uOTc2bC4wNzMtLjA4NHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGlzbWlzc19jaXJjbGVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAyYzUuNTIzIDAgMTAgNC40NzcgMTAgMTBzLTQuNDc3IDEwLTEwIDEwUzIgMTcuNTIzIDIgMTIgNi40NzcgMiAxMiAybTAgMS41YTguNSA4LjUgMCAxIDAgMCAxNyA4LjUgOC41IDAgMCAwIDAtMTdtMy40NDYgNC44OTcuMDg0LjA3M2EuNzUuNzUgMCAwIDEgLjA3My45NzZsLS4wNzMuMDg0TDEzLjA2MSAxMmwyLjQ3IDIuNDdhLjc1Ljc1IDAgMCAxIC4wNzIuOTc2bC0uMDczLjA4NGEuNzUuNzUgMCAwIDEtLjk3Ni4wNzNsLS4wODQtLjA3M0wxMiAxMy4wNjFsLTIuNDcgMi40N2EuNzUuNzUgMCAwIDEtLjk3Ni4wNzJsLS4wODQtLjA3M2EuNzUuNzUgMCAwIDEtLjA3My0uOTc2bC4wNzMtLjA4NEwxMC45MzkgMTJsLTIuNDctMi40N2EuNzUuNzUgMCAwIDEtLjA3Mi0uOTc2bC4wNzMtLjA4NGEuNzUuNzUgMCAwIDEgLjk3Ni0uMDczbC4wODQuMDczTDEyIDEwLjkzOWwyLjQ3LTIuNDdhLjc1Ljc1IDAgMCAxIC45NzYtLjA3MlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkaXNtaXNzX2NpcmNsZV9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAyYzUuNTIzIDAgMTAgNC40NzcgMTAgMTBzLTQuNDc3IDEwLTEwIDEwUzIgMTcuNTIzIDIgMTIgNi40NzcgMiAxMiAybTMuNTMgNi40Ny0uMDg0LS4wNzNhLjc1Ljc1IDAgMCAwLS44ODItLjAwN2wtLjA5NC4wOEwxMiAxMC45MzlsLTIuNDctMi40Ny0uMDg0LS4wNzJhLjc1Ljc1IDAgMCAwLS44ODItLjAwN2wtLjA5NC4wOC0uMDczLjA4NGEuNzUuNzUgMCAwIDAtLjAwNy44ODJsLjA4LjA5NEwxMC45MzkgMTJsLTIuNDcgMi40Ny0uMDcyLjA4NGEuNzUuNzUgMCAwIDAtLjAwNy44ODJsLjA4LjA5NC4wODQuMDczYS43NS43NSAwIDAgMCAuODgyLjAwN2wuMDk0LS4wOEwxMiAxMy4wNjFsMi40NyAyLjQ3LjA4NC4wNzJhLjc1Ljc1IDAgMCAwIC44ODIuMDA3bC4wOTQtLjA4LjA3My0uMDg0YS43NS43NSAwIDAgMCAuMDA3LS44ODJsLS4wOC0uMDk0TDEzLjA2MSAxMmwyLjQ3LTIuNDcuMDcyLS4wODRhLjc1Ljc1IDAgMCAwIC4wMDctLjg4MnpsLS4wODQtLjA3M3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZGlzbWlzc19maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIm00LjIxIDQuMzg3LjA4My0uMDk0YTEgMSAwIDAgMSAxLjMyLS4wODNsLjA5NC4wODNMMTIgMTAuNTg1bDYuMjkzLTYuMjkyYTEgMSAwIDEgMSAxLjQxNCAxLjQxNEwxMy40MTUgMTJsNi4yOTIgNi4yOTNhMSAxIDAgMCAxIC4wODMgMS4zMmwtLjA4My4wOTRhMSAxIDAgMCAxLTEuMzIuMDgzbC0uMDk0LS4wODNMMTIgMTMuNDE1bC02LjI5MyA2LjI5MmExIDEgMCAwIDEtMS40MTQtMS40MTRMMTAuNTg1IDEyIDQuMjkzIDUuNzA3YTEgMSAwIDAgMS0uMDgzLTEuMzJsLjA4My0uMDk0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkb2N1bWVudFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTYgMmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5LjgyOGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtNS44MjgtNS44MjhBMiAyIDAgMCAwIDEyLjE3MiAyem0tLjUgMmEuNS41IDAgMCAxIC41LS41aDZWOGEyIDIgMCAwIDAgMiAyaDQuNXYxMGEuNS41IDAgMCAxLS41LjVINmEuNS41IDAgMCAxLS41LS41em0xMS44OCA0LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkb2N1bWVudF9idWxsZXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk03IDEyLjI1YS43NS43NSAwIDEgMSAxLjUgMCAuNzUuNzUgMCAwIDEtMS41IDBtLjc1IDIuMjVhLjc1Ljc1IDAgMSAwIDAgMS41Ljc1Ljc1IDAgMCAwIDAtMS41TTcgMTguMjVhLjc1Ljc1IDAgMSAxIDEuNSAwIC43NS43NSAwIDAgMS0xLjUgMG0zLjc1LTYuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDUuNWEuNzUuNzUgMCAwIDAgMC0xLjV6TTEwIDE1LjI1YS43NS43NSAwIDAgMSAuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NW0uNzUgMi4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNXptOC42NjQtOS4wODYtNS44MjktNS44MjgtLjA0OS0uMDQtLjAzNi0uMDNhMiAyIDAgMCAwLS4yMTktLjE4IDEgMSAwIDAgMC0uMDgtLjA0NGwtLjA0OC0uMDI0LS4wNS0uMDI5Yy0uMDU0LS4wMzEtLjEwOS0uMDYzLS4xNjYtLjA4N2EyIDIgMCAwIDAtLjYyNC0uMTM4cS0uMDMtLjAwMi0uMDU5LS4wMDdMMTIuMTcyIDJINmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5LjgyOGEyIDIgMCAwIDAtLjU4Ni0xLjQxNE0xOC41IDIwYS41LjUgMCAwIDEtLjUuNUg2YS41LjUgMCAwIDEtLjUtLjVWNGEuNS41IDAgMCAxIC41LS41aDZWOGEyIDIgMCAwIDAgMiAyaDQuNXptLTUtMTUuMzc5TDE3LjM3OCA4LjVIMTRhLjUuNSAwIDAgMS0uNS0uNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZG9jdW1lbnRfY29weVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuNTAzIDQuNjI3IDUuNSA2Ljc1djEwLjUwNGEzLjI1IDMuMjUgMCAwIDAgMy4yNSAzLjI1aDguNjE2YTIuMjUgMi4yNSAwIDAgMS0yLjEyMiAxLjVIOC43NUE0Ljc1IDQuNzUgMCAwIDEgNCAxNy4yNTRWNi43NWMwLS45OC42MjctMS44MTUgMS41MDMtMi4xMjNNMTMuMTI4IDJjLjU5NyAwIDEuMTcuMjM3IDEuNTkyLjY2bDQuNjE4IDQuNjJjLjQyMi40MjIuNjU5Ljk5NS42NTkgMS41OTF2OC4zODNhMi4yNSAyLjI1IDAgMCAxLTIuMjUgMi4yNUg4Ljc1MmEyLjI1IDIuMjUgMCAwIDEtMi4yNS0yLjI1VjQuMjVBMi4yNSAyLjI1IDAgMCAxIDguNzUyIDJ6TTEzIDMuNUg4Ljc1MmEuNzUuNzUgMCAwIDAtLjc1Ljc1djEzLjAwNGMwIC40MTQuMzM2Ljc1Ljc1Ljc1aDguOTk1YS43NS43NSAwIDAgMCAuNzUtLjc1VjkuMDAzSDE1LjI1YTIuMjUgMi4yNSAwIDAgMS0yLjI0NS0yLjA5NUwxMyA2Ljc1NHptMS41IDEuMDYxLjAwMSAyLjE5M2MwIC4zOC4yODIuNjkzLjY0OC43NDNsLjEwMi4wMDcgMi4xOS0uMDAxelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkb2N1bWVudF9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk04Ljc1IDExLjVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjV6bTAgMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNXptMCAyLjc1YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41em00LjgzNS0xNC40MTQgNS44MjkgNS44MjhBMiAyIDAgMCAxIDIwIDkuODI4VjIwYTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjRhMiAyIDAgMCAxIDItMmg2LjE3MnEuMDQyLjAwMS4wODIuMDA3LjAzLjAwNS4wNTkuMDA3Yy4yMTUuMDE1LjQyNy4wNTYuNjI0LjEzOC4wNTcuMDI0LjExMi4wNTYuMTY2LjA4N2wuMDUuMDI5LjA0Ny4wMjRhMSAxIDAgMCAxIC4wODEuMDQ0Yy4wNzguMDUzLjE0OC4xMTYuMjE5LjE4bC4wMzYuMDN6TTE4IDIwLjVhLjUuNSAwIDAgMCAuNS0uNVYxMEgxNGEyIDIgMCAwIDEtMi0yVjMuNUg2YS41LjUgMCAwIDAtLjUuNXYxNmEuNS41IDAgMCAwIC41LjV6bS0uNjIyLTEyTDEzLjUgNC42MjFWOGEuNS41IDAgMCAwIC41LjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRvY3VtZW50X2xvY2tcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC41IDIwYS41LjUgMCAwIDEtLjUuNWgtNnYxcTAgLjI1Ny0uMDUuNUgxOGEyIDIgMCAwIDAgMi0yVjkuODI4YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC01LjgyOS01LjgyOC0uMDQ5LS4wNC0uMDM2LS4wM2EyIDIgMCAwIDAtLjIxOS0uMTggMSAxIDAgMCAwLS4wOC0uMDQ0bC0uMDQ4LS4wMjQtLjA1LS4wMjljLS4wNTQtLjAzMS0uMTA5LS4wNjMtLjE2Ni0uMDg3YTIgMiAwIDAgMC0uNjI0LS4xMzhxLS4wMy0uMDAyLS4wNTktLjAwN0wxMi4xNzIgMkg2YTIgMiAwIDAgMC0yIDJ2Ny41NWEzLjUgMy41IDAgMCAxIDEuNS0uOTA1VjRhLjUuNSAwIDAgMSAuNS0uNWg2VjhhMiAyIDAgMCAwIDIgMmg0LjV6bS01LTE1LjM3OUwxNy4zNzggOC41SDE0YS41LjUgMCAwIDEtLjUtLjV6TTQgMTVoLS41QTEuNSAxLjUgMCAwIDAgMiAxNi41djVBMS41IDEuNSAwIDAgMCAzLjUgMjNoNmExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTVBMS41IDEuNSAwIDAgMCA5LjUgMTVIOXYtMWEyLjUgMi41IDAgMCAwLTUgMHptMS41LTFhMSAxIDAgMSAxIDIgMHYxaC0yem0yIDVhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRvY3VtZW50X3BhZ2VcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk02LjI1IDJBMi4yNSAyLjI1IDAgMCAwIDQgNC4yNXYxNS41QTIuMjUgMi4yNSAwIDAgMCA2LjI1IDIyaDExLjVBMi4yNSAyLjI1IDAgMCAwIDIwIDE5Ljc1VjQuMjVBMi4yNSAyLjI1IDAgMCAwIDE3Ljc1IDJ6TTUuNSA0LjI1YS43NS43NSAwIDAgMSAuNzUtLjc1aDExLjVhLjc1Ljc1IDAgMCAxIC43NS43NXYxNS41YS43NS43NSAwIDAgMS0uNzUuNzVINi4yNWEuNzUuNzUgMCAwIDEtLjc1LS43NXpNNy43NSA2LjVhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjV6TTcgMTYuMjVhLjc1Ljc1IDAgMCAxIC43NS0uNzVoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1TTcuNzUgMTFhLjc1Ljc1IDAgMCAwIDAgMS41aDguNWEuNzUuNzUgMCAwIDAgMC0xLjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRvY3VtZW50X3NwYXJrbGVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNi4yNSAxMWgtOC41Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVzLS4zNC0uNzUtLjc1LS43NW0wIDQuNWgtOC41Yy0uNDEgMC0uNzUuMzQtLjc1Ljc1cy4zNC43NS43NS43NWg4LjVjLjQxIDAgLjc1LS4zNC43NS0uNzVzLS4zNC0uNzUtLjc1LS43NU03IDcuMjVjMCAuNDEuMzQuNzUuNzUuNzVoNy40NWwtLjA5LS4yOHEtLjA3NS0uMjEtLjIxLS4zOWMtLjA0LS4wNS0uMDctLjA5LS4xMS0uMTMtLjE1LS4xNS0uMzMtLjI2LS41Mi0uMzJMMTMuMSA2LjVINy43NWMtLjQxIDAtLjc1LjM0LS43NS43NW0xMi44IDYuMDQtLjI2LS43OS0uOC0uMjljLS4wOS0uMDMtLjE2LS4wOC0uMjQtLjEydjcuNjZjMCAuNDEtLjM0Ljc1LS43NS43NUg2LjI1Yy0uNDEgMC0uNzUtLjM0LS43NS0uNzVWNC4yNWMwLS40MS4zNC0uNzUuNzUtLjc1aDUuNTNjLjAzLS4wNi4wNS0uMTMuMDktLjE5LjI0LS4zNC41OC0uNi45OS0uNzRsMS40MS0uNDZjLjA3LS4wMy4xNS0uMDcuMjItLjExSDYuMjVDNS4wMSAyIDQgMy4wMSA0IDQuMjV2MTUuNUM0IDIwLjk5IDUuMDEgMjIgNi4yNSAyMmgxMS41YzEuMjQgMCAyLjI1LTEuMDEgMi4yNS0yLjI1di02LjA4YTEuNyAxLjcgMCAwIDEtLjItLjM4bS0zLjk1LTcuMTRjLjA4LjA4LjE2LjE3LjIzLjI3LjIuMjUuMzUuNTQuNDUuODVsLjQ1IDEuMzhjLjA0LjExLjExLjIuMi4yNi4wOS4wNy4yLjEuMzEuMWEuNS41IDAgMCAwIC4zMS0uMWMuMDgtLjA2LjE1LS4xNC4xOS0uMjN2LS4wM2wuNDYtMS4zOGMuMTQtLjQyLjM3LS44LjY5LTEuMTEuMzEtLjMxLjY5LS41NSAxLjExLS42OWwxLjM4LS40NWMuMTEtLjA0LjItLjExLjI2LS4yYS41LjUgMCAwIDAgLjEtLjMxLjUuNSAwIDAgMC0uMS0uMzEuNjMuNjMgMCAwIDAtLjI2LS4yaC0uMDNsLTEuMzgtLjQ1Yy0uNDItLjE0LS44LS4zNy0xLjExLS42OWEyLjg1IDIuODUgMCAwIDEtLjY5LTEuMTFMMTcuOTcuMzdhLjUyLjUyIDAgMCAwLS4yLS4yNmMtLjA5LS4wNi0uMi0uMS0uMzEtLjFhLjUuNSAwIDAgMC0uMzEuMWMtLjA5LjA2LS4xNi4xNi0uMi4yNmwtLjQ1IDEuMzh2LjAzYy0uMTUuNC0uMzguNzctLjY3IDEuMDctLjMxLjMxLS42OC41NS0xLjEuNjlsLTEuMzguNDVjLS4xMS4wNC0uMi4xMS0uMjYuMmEuNS41IDAgMCAwLS4xLjMxYzAgLjExLjAzLjIyLjEuMzEuMDYuMDkuMTYuMTYuMjYuMmwxLjM4LjQ1Yy40Mi4xNC44LjM4IDEuMTEuNjl6bTcuOTMgNC4wN2MuMDY0IDAgLjEzLjA2LjE3LjExcy4wNS4xMS4wNS4xNy0uMDEuMTItLjA1LjE3LS4wOS4wOS0uMTUuMTFsLS43Ny4yNWMtLjIzLjA4LS40NC4yMS0uNjIuMzgtLjE3LjE3LS4zLjM4LS4zOC42MmwtLjI1Ljc2Yy0uMDIuMDYtLjA2LjExLS4xMS4xNWEuMjcuMjcgMCAwIDEtLjM0IDAgLjMzLjMzIDAgMCAxLS4xMS0uMTVsLS4yNS0uNzZjLS4wOC0uMjMtLjIxLS40NS0uMzgtLjYycy0uMzktLjMxLS42Mi0uMzhsLS43Ny0uMjVhLjMzLjMzIDAgMCAxLS4xNS0uMTEuMjcuMjcgMCAwIDEgMC0uMzRjLjA0LS4wNS4wOS0uMDkuMTUtLjExbC43Ny0uMjVjLjIzLS4wOC40NC0uMjEuNjEtLjM4cy4zLS4zOC4zNy0uNjFsLjI1LS43NmMuMDItLjA2LjA2LS4xMS4xMS0uMTVhLjI3LjI3IDAgMCAxIC4zNCAwYy4wNS4wNC4wOS4wOS4xMS4xNWwuMjUuNzZjLjA4LjIzLjIxLjQ0LjM4LjYyLjE3LjE3LjM4LjMuNjIuMzh6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImRvY3VtZW50X3Rvb2xib3hcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk01LjUgNC4yNWEuNzUuNzUgMCAwIDEgLjc1LS43NUgxMlY4YTIgMiAwIDAgMCAyIDJoNC41djkuNzVhLjc1Ljc1IDAgMCAxLS43NS43NUgxM1YyMmg0Ljc1QTIuMjUgMi4yNSAwIDAgMCAyMCAxOS43NVY5LjY2NGMwLS40NjQtLjE4NC0uOTA5LS41MTMtMS4yMzdsLTUuOTE0LTUuOTE0QTEuNzUgMS43NSAwIDAgMCAxMi4zMzYgMkg2LjI1QTIuMjUgMi4yNSAwIDAgMCA0IDQuMjV2OC4wMThjLjI5NC0uMTcuNjM2LS4yNjggMS0uMjY4aC41ek0xNy40NCA4LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjU2ek00IDE2di0xLjVBMS41IDEuNSAwIDAgMSA1LjUgMTNoMkExLjUgMS41IDAgMCAxIDkgMTQuNVYxNmgxLjVhMS41IDEuNSAwIDAgMSAxLjUgMS41VjE5SDl2LS41YS41LjUgMCAwIDAtMSAwdi41SDV2LS41YS41LjUgMCAwIDAtMSAwdi41SDF2LTEuNUExLjUgMS41IDAgMCAxIDIuNSAxNnptMS0xLjVWMTZoM3YtMS41YS41LjUgMCAwIDAtLjUtLjVoLTJhLjUuNSAwIDAgMC0uNS41TTkgMjBoM3YxLjVhMS41IDEuNSAwIDAgMS0xLjUgMS41aC04QTEuNSAxLjUgMCAwIDEgMSAyMS41VjIwaDN2LjVhLjUuNSAwIDAgMCAxIDBWMjBoM3YuNWEuNS41IDAgMCAwIDEgMHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZG93bmxvYWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC4yNSAyMC41YS43NS43NSAwIDEgMSAwIDEuNWwtMTMgLjAwNWEuNzUuNzUgMCAxIDEgMC0xLjV6TTExLjY0OCAyLjAxNGwuMTAyLS4wMDdhLjc1Ljc1IDAgMCAxIC43NDMuNjQ4bC4wMDcuMTAyLS4wMDEgMTMuNjg1IDMuNzIyLTMuNzJhLjc1Ljc1IDAgMCAxIC45NzYtLjA3M2wuMDg1LjA3M2EuNzUuNzUgMCAwIDEgLjA3Mi45NzZsLS4wNzMuMDg0LTQuOTk3IDQuOTk3YS43NS43NSAwIDAgMS0uOTc2LjA3M2wtLjA4NS0uMDczLTUuMDAzLTQuOTk2YS43NS43NSAwIDAgMSAuOTc2LTEuMTM0bC4wODQuMDcyIDMuNzE5IDMuNzE0TDExIDIuNzU2YS43NS43NSAwIDAgMSAuNjQ4LS43NDNsLjEwMi0uMDA3elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJkcml2ZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuNDE1IDUuMjdBMi4yNSAyLjI1IDAgMCAxIDcuNDQxIDRoOS4xMThjLjg2MyAwIDEuNjUuNDkzIDIuMDI2IDEuMjdsMy4wOSA2LjM4OGMuMjE0LjQ0LjMyNS45MjUuMzI1IDEuNDE1djMuNjc3QTIuMjUgMi4yNSAwIDAgMSAxOS43NSAxOUg0LjI1QTIuMjUgMi4yNSAwIDAgMSAyIDE2Ljc1di0zLjY3N2MwLS40OS4xMS0uOTc0LjMyNC0xLjQxNXptMTEuODIuNjUzYS43NS43NSAwIDAgMC0uNjc2LS40MjNINy40NDFhLjc1Ljc1IDAgMCAwLS42NzYuNDIzTDQuMzEgMTFoMTUuMzgyek0zLjUgMTMuMjV2My41YzAgLjQxNC4zMzYuNzUuNzUuNzVoMTUuNWEuNzUuNzUgMCAwIDAgLjc1LS43NXYtMy41YS43NS43NSAwIDAgMC0uNzUtLjc1SDQuMjVhLjc1Ljc1IDAgMCAwLS43NS43NU0xOCAxNmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZWRpdFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIwLjk1MiAzLjA0OGEzLjU4IDMuNTggMCAwIDAtNS4wNiAwTDMuOTQgMTVhMy4xIDMuMSAwIDAgMC0uODI1IDEuNDc2TDIuMDIgMjEuMDc4YS43NS43NSAwIDAgMCAuOTA0LjkwM2w0LjYwMS0xLjA5NmEzLjEgMy4xIDAgMCAwIDEuNDc3LS44MjVsMTEuOTUtMTEuOTVhMy41OCAzLjU4IDAgMCAwIDAtNS4wNm0tNCAxLjA2YTIuMDc4IDIuMDc4IDAgMSAxIDIuOTQgMi45NEwxOSA3LjkzOSAxNi4wNiA1ek0xNSA2LjA2MiAxNy45NCA5bC0xMCAxMGMtLjIxLjIxLS40NzQuMzU3LS43NjMuNDI2bC0zLjQxNi44MTQuODEzLTMuNDE2Yy4wNjktLjI5LjIxNy0uNTU0LjQyNy0uNzY0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJlbnRlcnByaXNlXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOCA4aDJ2NEg4em0wIDZoMnY0SDh6bTYtNmgydjRoLTJ6bTAgNmgydjRoLTJ6bS02IDZoMnY0SDh6bTYgMGgydjRoLTJ6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMzAgMTRhMiAyIDAgMCAwLTItMmgtNlY0YTIgMiAwIDAgMC0yLTJINGEyIDIgMCAwIDAtMiAydjI2aDI4Wk00IDRoMTZ2MjRINFptMTggMjRWMTRoNnYxNFpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZXJyb3JfY2lyY2xlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMmM1LjUyMyAwIDEwIDQuNDc4IDEwIDEwcy00LjQ3NyAxMC0xMCAxMFMyIDE3LjUyMiAyIDEyIDYuNDc3IDIgMTIgMm0wIDEuNjY3Yy00LjU5NSAwLTguMzMzIDMuNzM4LTguMzMzIDguMzMzUzcuNDA1IDIwLjMzMyAxMiAyMC4zMzNzOC4zMzMtMy43MzggOC4zMzMtOC4zMzNTMTYuNTk1IDMuNjY3IDEyIDMuNjY3bS0uMDAxIDEwLjgzNWEuOTk5Ljk5OSAwIDEgMSAwIDEuOTk4Ljk5OS45OTkgMCAwIDEgMC0xLjk5OE0xMS45OTQgN2EuNzUuNzUgMCAwIDEgLjc0NC42NDhsLjAwNy4xMDEuMDA0IDQuNTAyYS43NS43NSAwIDAgMS0xLjQ5My4xMDNsLS4wMDctLjEwMi0uMDA0LTQuNTAxYS43NS43NSAwIDAgMSAuNzUtLjc1MVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJldmVudF9hbGVydGluZ1wiIHZpZXdCb3g9XCIwIDAgMzIgMzJcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTI4IDE3djVINFY2aDExVjRINGEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoOHY0SDh2MmgxNnYtMmgtNHYtNGg4YTIgMiAwIDAgMCAyLTJ2LTVaTTE4IDI4aC00di00aDRaXCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjkgMTRIMTdhMSAxIDAgMCAxLS44NTctMS41MTRsNi0xMGExIDEgMCAwIDEgMS43MTUgMGw2IDEwQTEgMSAwIDAgMSAyOSAxNG0tMTAuMjM0LTJoOC40NjhMMjMgNC45NDRaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImV4cG9ydFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIuNzUzIDQuNWEuNzUuNzUgMCAwIDEgLjc0My42NDhsLjAwNi4xMDJMMy41IDE4LjI1NGEuNzUuNzUgMCAwIDEtMS40OTMuMTAyTDIgMTguMjU0IDIuMDAyIDUuMjVhLjc1Ljc1IDAgMCAxIC43NS0uNzVtMTIuODk0IDEuODA0LjA3My0uMDg0YS43NS43NSAwIDAgMSAuOTc2LS4wNzNsLjA4NC4wNzMgNC45OTcgNC45OTdhLjc1Ljc1IDAgMCAxIC4wNzMuOTc2bC0uMDczLjA4NS00Ljk5NiA1LjAwM2EuNzUuNzUgMCAwIDEtMS4xMzQtLjk3NmwuMDcyLS4wODQgMy43MTEtMy43MTdINS43NTNhLjc1Ljc1IDAgMCAxLS43NDMtLjY0N2wtLjAwNy0uMTAyYS43NS43NSAwIDAgMSAuNjQ4LS43NDNsLjEwMi0uMDA3IDEzLjY5LS4wMDFMMTUuNzIgNy4yOGEuNzUuNzUgMCAwIDEtLjA3My0uOTc2bC4wNzMtLjA4NHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZXllXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgOS4wMDVhNCA0IDAgMSAxIDAgOCA0IDQgMCAwIDEgMC04bTAgMS41YTIuNSAyLjUgMCAxIDAgMCA1IDIuNSAyLjUgMCAwIDAgMC01TTEyIDUuNWM0LjYxMyAwIDguNTk2IDMuMTUgOS43MDEgNy41NjRhLjc1Ljc1IDAgMSAxLTEuNDU1LjM2NSA4LjUwNCA4LjUwNCAwIDAgMC0xNi40OTMuMDA0Ljc1Ljc1IDAgMCAxLTEuNDU2LS4zNjNBMTAgMTAgMCAwIDEgMTIgNS41XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImV5ZV9oaWRlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMi4yMiAyLjIyYS43NS43NSAwIDAgMC0uMDczLjk3NmwuMDczLjA4NCA0LjAzNCA0LjAzNWExMCAxMCAwIDAgMC0zLjk1NSA1Ljc1Ljc1Ljc1IDAgMCAwIDEuNDU1LjM2NCA4LjUgOC41IDAgMCAxIDMuNTgtNS4wMzRsMS44MSAxLjgxQTQgNCAwIDAgMCAxNC44IDE1Ljg2bDUuOTE5IDUuOTJhLjc1Ljc1IDAgMCAwIDEuMTMzLS45NzdsLS4wNzMtLjA4NC02LjExMy02LjExNC4wMDEtLjAwMi0xLjItMS4xOTgtMi44Ny0yLjg3aC4wMDJsLTIuODgtMi44NzcuMDAxLS4wMDItMS4xMzMtMS4xM0wzLjI4IDIuMjJhLjc1Ljc1IDAgMCAwLTEuMDYgMG03Ljk4NCA5LjA0NSAzLjUzNSAzLjUzNmEyLjUgMi41IDAgMCAxLTMuNTM1LTMuNTM1TTEyIDUuNWMtMSAwLTEuOTcuMTQ4LTIuODg5LjQyNWwxLjIzNyAxLjIzNmE4LjUwMyA4LjUwMyAwIDAgMSA5Ljg5OSA2LjI3Mi43NS43NSAwIDAgMCAxLjQ1NS0uMzYzQTEwIDEwIDAgMCAwIDEyIDUuNW0uMTk1IDMuNTEgMy44MDEgMy44YTQuMDAzIDQuMDAzIDAgMCAwLTMuODAxLTMuOFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmYWN0b3J5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNS4xNyAyYTIuMjUgMi4yNSAwIDAgMC0yLjI0NyAyLjEyOWwtLjgzOCAxNS41QTIuMjUgMi4yNSAwIDAgMCA0LjMzMiAyMmgyLjgzNGEyLjI1IDIuMjUgMCAwIDAgMi4yNDYtMi4zNzFsLS44MzgtMTUuNUEyLjI1IDIuMjUgMCAwIDAgNi4zMjggMnptLS43NSAyLjIxYS43NS43NSAwIDAgMSAuNzQ5LS43MWgxLjE1OGEuNzUuNzUgMCAwIDEgLjc0OS43MWwuODM3IDE1LjVhLjc1Ljc1IDAgMCAxLS43NDguNzlINC4zMzJhLjc1Ljc1IDAgMCAxLS43NDktLjc5ek05LjUxMSAyMmMuMzk1LS40MTIuNjgzLS45MjguODE4LTEuNWgxLjE3di00LjI1YzAtLjk2Ni43ODMtMS43NSAxLjc1LTEuNzVoNGMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djQuMjVoLjc1YS43NS43NSAwIDAgMCAuNzUtLjc1VjcuNzEzbC01LjI0MSA0LjgzOGEuNzUuNzUgMCAwIDEtMS4yNi0uNTUxVjcuNzEzbC00LjAyNyAzLjcxOC0uMTA1LTEuOTQ0IDQuMzc0LTQuMDM4QS43NS43NSAwIDAgMSAxNS41IDZ2NC4yODdsNS4yNDEtNC44MzhBLjc1Ljc1IDAgMCAxIDIyIDZ2MTMuNzVBMi4yNSAyLjI1IDAgMCAxIDE5Ljc1IDIyem0zLjQ4OC01Ljc1djQuMjVoNC41di00LjI1YS4yNS4yNSAwIDAgMC0uMjUtLjI1aC00YS4yNS4yNSAwIDAgMC0uMjUuMjVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmlsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTYgMmEyIDIgMCAwIDAtMiAydjE2YTIgMiAwIDAgMCAyIDJoMTJhMiAyIDAgMCAwIDItMlY5LjgyOGEyIDIgMCAwIDAtLjU4Ni0xLjQxNGwtNS44MjgtNS44MjhBMiAyIDAgMCAwIDEyLjE3MiAyem0tLjUgMmEuNS41IDAgMCAxIC41LS41aDZWOGEyIDIgMCAwIDAgMiAyaDQuNXYxMGEuNS41IDAgMCAxLS41LjVINmEuNS41IDAgMCAxLS41LS41em0xMS44OCA0LjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmaWxlX2F1ZGlvXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjkgMzFhMSAxIDAgMCAxLS42MjQtLjIyTDIzLjY0OSAyN0gyMGExIDEgMCAwIDEtMS0xdi01YTEgMSAwIDAgMSAxLTFoMy42NWw0LjcyNi0zLjc4QTEgMSAwIDAgMSAzMCAxN3YxM2ExIDEgMCAwIDEtMSAxbS04LTZoM2ExIDEgMCAwIDEgLjYyNS4yMkwyOCAyNy45MnYtOC44NGwtMy4zNzUgMi43QTEgMSAwIDAgMSAyNCAyMmgtM1pcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNiAyOEg4VjRoOHY2YTIuMDA2IDIuMDA2IDAgMCAwIDIgMmg2djNoMnYtNWEuOTEuOTEgMCAwIDAtLjMtLjdsLTctN0EuOS45IDAgMCAwIDE4IDJIOGEyLjAwNiAyLjAwNiAwIDAgMC0yIDJ2MjRhMi4wMDYgMi4wMDYgMCAwIDAgMiAyaDhabTItMjMuNiA1LjYgNS42SDE4WlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmaWxlX3BkZlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTcuNTAzIDEzLjAwMmEuNS41IDAgMCAwLS41LjV2M2EuNS41IDAgMCAwIDEgMHYtLjVIOC41YTEuNSAxLjUgMCAwIDAgMC0zem0uOTk3IDJoLS40OTd2LTFIOC41YS41LjUgMCAxIDEgMCAxbTYuNDk4LTEuNWEuNS41IDAgMCAxIC41LS41aDEuNTA1YS41LjUgMCAxIDEgMCAxaC0xLjAwNmwtLjAwMSAxLjAwMmgxLjAwN2EuNS41IDAgMCAxIDAgMWgtMS4wMDdsLjAwMi40OTdhLjUuNSAwIDAgMS0xIC4wMDJsLS4wMDMtLjk5OHYtLjAwMnptLTMuNDk4LS41YS41LjUgMCAwIDAtLjUuNXYzYS41LjUgMCAwIDAgLjUuNWguNDk4YTIgMiAwIDAgMCAwLTR6bS41IDN2LTJhMSAxIDAgMCAxIDAgMk0yMCAyMHYtMS4xNjRjLjU5MS0uMjgxIDEtLjg4NCAxLTEuNTgyVjEyLjc1YzAtLjY5OC0uNDA5LTEuMy0xLTEuNTgydi0xLjM0YTIgMiAwIDAgMC0uNTg2LTEuNDE0bC01LjgyOS01LjgyOC0uMDQ5LS4wNC0uMDM2LS4wM2EyIDIgMCAwIDAtLjIxOS0uMTggMSAxIDAgMCAwLS4wOC0uMDQ0bC0uMDQ4LS4wMjQtLjA1LS4wMjljLS4wNTQtLjAzMS0uMTA5LS4wNjMtLjE2Ni0uMDg3YTIgMiAwIDAgMC0uNjI0LS4xMzhxLS4wMy0uMDAyLS4wNTktLjAwN0wxMi4xNzIgMkg2YTIgMiAwIDAgMC0yIDJ2Ny4xNjhjLS41OTEuMjgxLTEgLjg4NC0xIDEuNTgydjQuNTA0YzAgLjY5OC40MDkgMS4zIDEgMS41ODJWMjBhMiAyIDAgMCAwIDIgMmgxMmEyIDIgMCAwIDAgMi0ybS0yIC41SDZhLjUuNSAwIDAgMS0uNS0uNXYtLjk5NmgxM1YyMGEuNS41IDAgMCAxLS41LjVtLjUtMTAuNXYxaC0xM1Y0YS41LjUgMCAwIDEgLjUtLjVoNlY4YTIgMiAwIDAgMCAyIDJ6bS0xLjEyMi0xLjVIMTRhLjUuNSAwIDAgMS0uNS0uNVY0LjYyMXptLTEyLjYyOCA0aDE0LjVhLjI1LjI1IDAgMCAxIC4yNS4yNXY0LjUwNGEuMjUuMjUgMCAwIDEtLjI1LjI1SDQuNzVhLjI1LjI1IDAgMCAxLS4yNS0uMjVWMTIuNzVhLjI1LjI1IDAgMCAxIC4yNS0uMjVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmlsZV9zcGFya2xlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTYuMDg4IDYuNDEyYTIuODQgMi44NCAwIDAgMC0xLjM0Ny0uOTU1bC0xLjM3OC0uNDQ4YS41NDQuNTQ0IDAgMCAxIDAtMS4wMjVsMS4zNzgtLjQ0OEEyLjg0IDIuODQgMCAwIDAgMTYuNSAxLjc3NGwuMDExLS4wMzQuNDQ4LTEuMzc3YS41NDQuNTQ0IDAgMCAxIDEuMDI3IDBsLjQ0NyAxLjM3N2EyLjg0IDIuODQgMCAwIDAgMS43OTkgMS43OTZsMS4zNzcuNDQ4LjAyOC4wMDdhLjU0NC41NDQgMCAwIDEgMCAxLjAyNWwtMS4zNzguNDQ4YTIuODQgMi44NCAwIDAgMC0xLjc5OCAxLjc5NmwtLjQ0OCAxLjM3Ny0uMDEzLjAzNGEuNTQ0LjU0NCAwIDAgMS0xLjAxMy0uMDM0bC0uNDQ4LTEuMzc3YTIuOCAyLjggMCAwIDAtLjQ1LS44NDhtNy42OTUgMy44MDEtLjc2Ni0uMjQ4YTEuNTggMS41OCAwIDAgMS0uOTk4LS45OTlsLS4yNS0uNzY0YS4zMDIuMzAyIDAgMCAwLS41NyAwbC0uMjQ4Ljc2NGExLjU4IDEuNTggMCAwIDEtLjk4NC45OTlsLS43NjUuMjQ4YS4zMDIuMzAyIDAgMCAwIDAgLjU3bC43NjUuMjQ5YTEuNTggMS41OCAwIDAgMSAxIDEuMDAybC4yNDguNzY0YS4zMDIuMzAyIDAgMCAwIC41NyAwbC4yNDktLjc2NGExLjU4IDEuNTggMCAwIDEgLjk5OS0uOTk5bC43NjUtLjI0OGEuMzAyLjMwMiAwIDAgMCAwLS41N3pNNS4yNSAzaDcuNzk3YTEuNjUgMS42NSAwIDAgMC0uNzY3LjU2OUExLjYgMS42IDAgMCAwIDEyIDQuNUg1LjI1YS43NS43NSAwIDAgMC0uNzUuNzV2MTIuNWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDkuMjVWNy4zMjdxLjA1Mi4xMDguMDkuMjIybC40MSAxLjQ1Yy4xMDYuMzEuMzA1LjU3OS41Ny43N3EuMi4xMzguNDMuMjFWMTRoNHYzLjc1QTMuMjUgMy4yNSAwIDAgMSAxNy43NSAyMUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjUuMjVBMi4yNSAyLjI1IDAgMCAxIDUuMjUgM00xNyAxOS41aC43NWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1VjE1LjVIMTd6TTcuMjUgN2EuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNXptLS43NSA0Ljc1YS43NS43NSAwIDAgMSAuNzUtLjc1aDUuNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEtLjc1LS43NU03LjI1IDE1YS43NS43NSAwIDAgMCAwIDEuNWgzYS43NS43NSAwIDAgMCAwLTEuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmlsZV90ZXh0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOC43NSAxMS41YS43NS43NSAwIDAgMCAwIDEuNWg2LjVhLjc1Ljc1IDAgMCAwIDAtMS41em0wIDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjV6bTAgMi43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNi41YS43NS43NSAwIDAgMCAwLTEuNXptNC44MzUtMTQuNDE0IDUuODI5IDUuODI4QTIgMiAwIDAgMSAyMCA5LjgyOFYyMGEyIDIgMCAwIDEtMiAySDZhMiAyIDAgMCAxLTItMlY0YTIgMiAwIDAgMSAyLTJoNi4xNzJxLjA0Mi4wMDEuMDgyLjAwNy4wMy4wMDUuMDU5LjAwN2MuMjE1LjAxNS40MjcuMDU2LjYyNC4xMzguMDU3LjAyNC4xMTIuMDU2LjE2Ni4wODdsLjA1LjAyOS4wNDcuMDI0YTEgMSAwIDAgMSAuMDgxLjA0NGMuMDc4LjA1My4xNDguMTE2LjIxOS4xOGwuMDM2LjAzek0xOCAyMC41YS41LjUgMCAwIDAgLjUtLjVWMTBIMTRhMiAyIDAgMCAxLTItMlYzLjVINmEuNS41IDAgMCAwLS41LjV2MTZhLjUuNSAwIDAgMCAuNS41em0tLjYyMi0xMkwxMy41IDQuNjIxVjhhLjUuNSAwIDAgMCAuNS41elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmaWxlX3ZpZGVvXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJtMzAgMTktNCAzLjJWMjBhMiAyIDAgMCAwLTItMmgtOGEyIDIgMCAwIDAtMiAydjZhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTIuMmw0IDMuMlptLTE0IDd2LTZoOGwuMDAyIDZaXCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMjhIOFY0aDh2NmEyLjAwNiAyLjAwNiAwIDAgMCAyIDJoNnYzaDJ2LTVhLjkxLjkxIDAgMCAwLS4zLS43bC03LTdBLjkuOSAwIDAgMCAxOCAySDhhMi4wMDYgMi4wMDYgMCAwIDAtMiAydjI0YTIuMDA2IDIuMDA2IDAgMCAwIDIgMmg0Wm02LTIzLjYgNS42IDUuNkgxOFpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmlsZV96aXBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjUgOFY2LjI1YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVoMi44NzlhLjc1Ljc1IDAgMCAxIC41My4yMmwxLjUzIDEuNTMtMS41MyAxLjUzYS43NS43NSAwIDAgMS0uNTMuMjJ6bTEuNzUtNUEzLjI1IDMuMjUgMCAwIDAgMiA2LjI1djExLjVBMy4yNSAzLjI1IDAgMCAwIDUuMjUgMjFoMTMuNUEzLjI1IDMuMjUgMCAwIDAgMjIgMTcuNzV2LTlhMy4yNSAzLjI1IDAgMCAwLTMuMjUtMy4yNWgtNy4xOUw5LjcyIDMuNjU5QTIuMjUgMi4yNSAwIDAgMCA4LjEyOSAzem04LjI1IDR2My4yNWMwIC40MTQuMzM2Ljc1Ljc1Ljc1SDE1djJoLS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMTVWMTZoLS4yNWEuNzUuNzUgMCAwIDAgMCAxLjVIMTV2Mkg1LjI1YTEuNzUgMS43NSAwIDAgMS0xLjc1LTEuNzVWOS41aDQuNjI5YTIuMjUgMi4yNSAwIDAgMCAxLjU5LS42NTlMMTEuNTYyIDd6bTMgMTIuNVYxNmguMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0uMjVWMTFoLjc1YS43NS43NSAwIDAgMCAuNzUtLjc1VjdoLjc1Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2OWExLjc1IDEuNzUgMCAwIDEtMS43NSAxLjc1em0wLTEyLjV2Mi41SDE1Vjd6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImZpbHRlclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEzLjUgMTZhLjc1Ljc1IDAgMCAxIDAgMS41aC0zYS43NS43NSAwIDAgMSAwLTEuNXptMy01YS43NS43NSAwIDAgMSAwIDEuNWgtOWEuNzUuNzUgMCAwIDEgMC0xLjV6bTMtNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTE1YS43NS43NSAwIDAgMSAwLTEuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmluZ2VycHJpbnRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNC44NTggMTIuMTU4Yy41Ni41NzMuODc3IDEuMjY4IDEuMTA2IDIuMjI4bC4xLjQ1Ni4xNzguOTQ3Yy4wOS40NDUuMTU4LjY5Mi4yNTUuOTA4cS40NDkgMS4wMTIgMS41OTUgMi4wNjVhLjc1Ljc1IDAgMCAxLTEuMDEzIDEuMTA2cS0xLjM2My0xLjI0Ni0xLjk1Mi0yLjU2Yy0uMTQ5LS4zMzQtLjI0LS42NS0uMzQ3LTEuMThsLS4yMS0xLjEtLjAxMy0uMDZjLS4xOC0uODUtLjQwNC0xLjM4NS0uNzcyLTEuNzYyLS43MTMtLjczLTIuMzU3LS41MzctMi43OTcuMTU4LS41NjIuODg5LS43MDUgMi4zOTYtLjI2IDMuOTE2cS41MTggMS43NjEgMS4zNzMgMy40NjdhLjc1Ljc1IDAgMCAxLTEuMzQuNjcyIDIyLjMgMjIuMyAwIDAgMS0xLjQ3MS0zLjcxN2MtLjU2Mi0xLjkxMi0uMzc2LTMuODY0LjQzLTUuMTQuOTUzLTEuNTA2IDMuNzQyLTEuODM0IDUuMTM4LS40MDRtLTIuMzY2IDIuMzE1YS43NS43NSAwIDAgMSAuNzc1LjcyNSA3LjkzIDcuOTMgMCAwIDAgMS40NDQgNC4zMDRsLjE5Ni4yNjYuMy4zOWEuNzUuNzUgMCAwIDEtMS4xMTQuOTk4bC0uMDc0LS4wODMtLjMtLjM5YTkuNDMgOS40MyAwIDAgMS0xLjk1MS01LjQzNS43NS43NSAwIDAgMSAuNzI0LS43NzVNOC43ODIgOS4zOWMyLjExMy0xLjU2MyA0Ljg3NS0xLjQ3OCA2LjczMy0uMjg0LjkzLjU5OCAxLjYzNSAxLjI5NSAyLjEwMyAyLjA5M2EuNzUuNzUgMCAwIDEtMS4yOTQuNzZjLS4zNDItLjU4NC0uODc4LTEuMTE1LTEuNjItMS41OTEtMS4zNjItLjg3Ni0zLjQ1MS0uOTQtNS4wMjkuMjI4LTEuNjM4IDEuMjEzLTIuMzI4IDMuMjkxLTIuMTIzIDUuNDgycS4xNzIgMS44NCAxLjExNCAzLjcyNGEuNzUuNzUgMCAwIDEtMS4zNDIuNjdRNi4yNiAxOC4zNDYgNi4wNiAxNi4yMTljLS4yNS0yLjY3LjYxLTUuMjYzIDIuNzI0LTYuODI4bTkuMTggNC4zMDFhLjc1Ljc1IDAgMCAxIC43ODguNzFjLjAzMS42MDQuMTggMS4wOTcuNDQyIDEuNDk0LjIyLjMzMy40MTQuNTI1LjU2My42bC4wNjEuMDI0YS43NS43NSAwIDAgMS0uNDM0IDEuNDM2Yy0uNTQ3LS4xNjUtMS4wMTctLjU4OC0xLjQ0My0xLjIzNS0uNDE2LS42My0uNjQzLTEuMzgyLS42ODctMi4yNDFhLjc1Ljc1IDAgMCAxIC43MS0uNzg4bS03LjQ1MS03LjU4OWEuNzUuNzUgMCAwIDEtLjM3Ny45OTJjLTEuODQuODI4LTMuMTk0IDIuMDA4LTQuMDgzIDMuNTQ4LTEuMTE0IDEuOTI4LTEuNDE0IDQuMTgxLTEuMTY1IDYuMDhhLjc1Ljc1IDAgMSAxLTEuNDg3LjE5NmMtLjI4OS0yLjIwMS4wNTUtNC43NzggMS4zNTMtNy4wMjZDNS44MDQgOC4wNzEgNy40IDYuNjggOS41MTkgNS43MjZhLjc1Ljc1IDAgMCAxIC45OTIuMzc2bTIuMzQzLS43ODdjMS44My4wMzcgMy42NTIuODc4IDUuNDU5IDIuNDg2IDEuODIzIDEuNjIyIDIuOTIxIDMuODI3IDMuMjk0IDYuNThhLjc1Ljc1IDAgMSAxLTEuNDg2LjIwMmMtLjMyNy0yLjQxMi0xLjI2MS00LjI4Ny0yLjgwNS01LjY2MS0xLjU2LTEuMzg4LTMuMDU1LTIuMDc4LTQuNDkzLTIuMTA3YS43NS43NSAwIDEgMSAuMDMxLTEuNW0tNi44NzEuMDE0YS43NS43NSAwIDAgMS0uMDYyIDEuMDZxLS40MDMuMzU3LS44NDMuODU0LS40MTUuNDY4LS44NDYgMS4yMTNhLjc1Ljc1IDAgMSAxLTEuMy0uNzUgOSA5IDAgMCAxIDEuMDI0LTEuNDU4cS40OTctLjU2Ljk2OC0uOThhLjc1Ljc1IDAgMCAxIDEuMDU5LjA2MW02LjU4NS0yLjk2NmMyLjE5My4xMDMgNC4wMy43MDMgNS41MyAxLjg2MWEuNzUuNzUgMCAwIDEtLjkxNyAxLjE4OGMtMS4yNDUtLjk2Mi0yLjc4NS0xLjQ2MS00LjY4My0xLjU1LTEuOTAzLS4wOS0zLjQ2Mi4yODQtNC43MTUuOTc5LS4zODQuMjEzLS44MTQuMTA2LTEuMDMxLS4yNDdhLjc0Ljc0IDAgMCAxIC4yNDYtMS4wMzFjMS41MzYtLjkwNCAzLjM4My0xLjMwMiA1LjU3LTEuMlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmbGFnLWRlXCIgdmlld0JveD1cIjAgMCA2NDAgNDgwXCI+XG4gICAgPHBhdGggZmlsbD1cIiNmYzBcIiBkPVwiTTAgMzIwaDY0MHYxNjBIMHpcIiAvPlxuICAgIDxwYXRoIGZpbGw9XCIjMDAwMDAxXCIgZD1cIk0wIDBoNjQwdjE2MEgwelwiIC8+XG4gICAgPHBhdGggZmlsbD1cInJlZFwiIGQ9XCJNMCAxNjBoNjQwdjE2MEgwelwiIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmxhZy1lblwiIHZpZXdCb3g9XCIwIDAgNjQwIDQ4MFwiPlxuICAgIDxwYXRoIGZpbGw9XCIjMDEyMTY5XCIgZD1cIk0wIDBoNjQwdjQ4MEgwelwiIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCIjZmZmXCJcbiAgICAgIGQ9XCJtNzUgMCAyNDQgMTgxTDU2MiAwaDc4djYyTDQwMCAyNDFsMjQwIDE3OHY2MWgtODBMMzIwIDMwMSA4MSA0ODBIMHYtNjBsMjM5LTE3OEwwIDY0VjB6XCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiI2M4MTAyZVwiXG4gICAgICBkPVwibTQyNCAyODEgMjE2IDE1OXY0MEwzNjkgMjgxem0tMTg0IDIwIDYgMzVMNTQgNDgwSDB6TTY0MCAwdjNMMzkxIDE5MWwyLTQ0TDU5MCAwek0wIDBsMjM5IDE3NmgtNjBMMCA0MnpcIlxuICAgIC8+XG4gICAgPHBhdGggZmlsbD1cIiNmZmZcIiBkPVwiTTI0MSAwdjQ4MGgxNjBWMHpNMCAxNjB2MTYwaDY0MFYxNjB6XCIgLz5cbiAgICA8cGF0aCBmaWxsPVwiI2M4MTAyZVwiIGQ9XCJNMCAxOTN2OTZoNjQwdi05NnpNMjczIDB2NDgwaDk2VjB6XCIgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJmbGFzaFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTcuNDI1IDIuODNBMS4yNSAxLjI1IDAgMCAxIDguNjAzIDJoNi40NTNhMS4yNSAxLjI1IDAgMCAxIDEuMTg2IDEuNjQ1TDE0Ljc5IDhoMy45NmMxLjEwMyAwIDEuNjY1IDEuMzI3Ljg5NyAyLjEyTDguNTg2IDIxLjUzNmMtMS4wNTQgMS4wODgtMi44NzIuMTA2LTIuNTQxLTEuMzcybDEuMjctNS42NjgtMS41Ny0uMDA2YTEuNzUgMS43NSAwIDAgMS0xLjY0MS0yLjMzN3ptMS4zNTQuNjctMy4yNjIgOS4xNTdhLjI1LjI1IDAgMCAwIC4yMzQuMzMzbDIuNTAyLjAxYS43NS43NSAwIDAgMSAuNzI5LjkxNGwtMS40NzMgNi41NzhMMTguMTU5IDkuNWgtNC40MWEuNzUuNzUgMCAwIDEtLjcxLS45ODdsMS42Ny01LjAxM3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiZmxvd19zdHJlYW1cIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yMCAyNGgtOC4xMzdhNCA0IDAgMCAwLS40MjktMS4wMkwyMS45OCAxMi40MzRBMy45OTQgMy45OTQgMCAxIDAgMjAuMTQxIDhIMTR2Mmg2LjE0MWE0IDQgMCAwIDAgLjQyNSAxLjAyTDEwLjAyIDIxLjU2NkEzLjk5NCAzLjk5NCAwIDEgMCAxMS44NTkgMjZIMjB2M2g4di04aC04em00LTE3YTIgMiAwIDEgMS0yIDIgMiAyIDAgMCAxIDItMk04IDI3YTIgMiAwIDEgMSAyLTIgMiAyIDAgMCAxLTIgMm0xNC00aDR2NGgtNHpNOS42OTMgMTIuNzVhNSA1IDAgMCAxIDAtNy41bDEuMzI0IDEuNWEzIDMgMCAwIDAgMCA0LjUwMXpcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk03LjA0NyAxNS43NTFhOSA5IDAgMCAxIDAtMTMuNTAxbDEuMzI0IDEuNWE3IDcgMCAwIDAgMCAxMC41MDFaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImdsb2JlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMS45OThjNS41MjQgMCAxMC4wMDIgNC40NzggMTAuMDAyIDEwLjAwMiAwIDUuNTIzLTQuNDc4IDEwLTEwLjAwMiAxMFMyIDE3LjUyMyAyIDEyQzEuOTk5IDYuNDc2IDYuNDc2IDEuOTk4IDEyIDEuOTk4TTE0Ljk0IDE2LjVIOS4wNjFjLjY1MiAyLjQxNSAxLjc4NiA0LjAwMiAyLjk0IDQuMDAyczIuMjg2LTEuNTg4IDIuOTM4LTQuMDAybS03LjQzIDBINC43ODVhOC41MyA4LjUzIDAgMCAwIDQuMDk1IDMuNDFjLS41MjItLjgyLS45NTMtMS44NDYtMS4yNy0zLjAxNXptMTEuNzA1IDBoLTIuNzIyYy0uMzI0IDEuMzM1LS43OTIgMi41LTEuMzczIDMuNDExYTguNTMgOC41MyAwIDAgMCAzLjkxLTMuMTI3ek03LjA5NCAxMEgzLjczNmwtLjAwNS4wMTdBOC41IDguNSAwIDAgMCAzLjUgMTJhOC41IDguNSAwIDAgMCAuNTQ0IDNoMy4xNzNBMjAgMjAgMCAwIDEgNyAxMmMwLS42ODQuMDMyLTEuMzU0LjA5NS0yLjAwMW04LjMwMyAwSDguNjAzYTE5IDE5IDAgMCAwIC4xMzUgNWg2LjUyNGExOSAxOSAwIDAgMCAuMTM1LTVtNC44NjggMGgtMy4zNThjLjA2Mi42NDcuMDk1IDEuMzE3LjA5NSAyYTIwIDIwIDAgMCAxLS4yMTggM2gzLjE3M2E4LjUgOC41IDAgMCAwIC41NDUtM2MwLS42ODktLjA4Mi0xLjM1OS0uMjM3LTJNOC44OCA0LjA4OGwtLjAyMy4wMDhBOC41MyA4LjUzIDAgMCAwIDQuMjUgOC41aDMuMDQ4Yy4zMTQtMS43NTIuODYtMy4yNzggMS41ODMtNC40MW0zLjEyLS41OTEtLjExNy4wMDVDMTAuNjIgMy42MiA5LjM5NyA1LjYyMSA4LjgzIDguNWg2LjM0MmMtLjU2Ni0yLjg3LTEuNzgzLTQuODY5LTMuMDQ1LTQuOTk1em0zLjEyLjU5LjEwNi4xNzVjLjY3IDEuMTEyIDEuMTc3IDIuNTcyIDEuNDc1IDQuMjM3aDMuMDQ4YTguNTMgOC41MyAwIDAgMC00LjMzOS00LjI5elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJnbG9iZV9zZWFyY2hcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zLjQ0MSA5Ljk1NWE0LjkyNiA0LjkyNiAwIDAgMCA2LjIzMyA3LjU3MWw0LjI1NiA0LjI1N2EuNzczLjc3MyAwIDAgMCAxLjE2OS0xLjAwN2wtLjA3NS0uMDg3bC00LjIxNy00LjIxOEE0LjkyNyA0LjkyNyAwIDAgMCAzLjQ0IDkuOTU1bTguNTg1LTcuOTU3Yy00Ljc1NiAwLTguNzM2IDMuMzE5LTkuNzUxIDcuNzY3cS4yMS0uMjcuNDYtLjUxN0E1LjkgNS45IDAgMCAxIDQuNTEgOC4wMjVBOC41MyA4LjUzIDAgMCAxIDguOTA2IDQuMDlsLS4xMDcuMTc0Yy0uNTM4Ljg5My0uOTcxIDIuMDExLTEuMjc1IDMuMjhjLjQ5OS4wNS45OTEuMTY0IDEuNDY1LjM0Yy42MzItMi42MjggMS44MjMtNC4zODUgMy4wMzctNC4zODVsLjExNS4wMDVjMS4yNjYuMTE2IDIuNDg4IDIuMTE4IDMuMDU2IDQuOTk2SDEwLjJhNiA2IDAgMCAxIDEuNTUgMS40OTlsMy42NzQuMDAxYTE5IDE5IDAgMCAxLS4xMzUgNWgtMi42NDZhNiA2IDAgMCAxLS4yOTkuODQybC0uMTI5LjI3MmwtLjEyMi4yMjlsLjE1OC4xNTdoMi43MTVjLS4yMDMuNzQ5LS40NSAxLjQxOC0uNzMyIDEuOTg1bDEuMTA2IDEuMTA3Yy40OTItLjg1OC44OTEtMS45MDggMS4xNzgtMy4wOWwyLjcyMy0uMDAyYTguNTQgOC41NCAwIDAgMS0zLjczNCAzLjI2bC4yMjUuMjIzbC4xMjUuMTRjLjIyLjI5Ni4zNDUuNjI1LjM3OC45NTNBMTAgMTAgMCAwIDAgMjIuMDI3IDEyYzAtNS41MjQtNC40NzgtMTAuMDAyLTEwLjAwMS0xMC4wMDJtLTIuNzEyIDkuMDVhMy4zOCAzLjM4IDAgMSAxLTQuNzggNC43OGEzLjM4IDMuMzggMCAwIDEgNC43OC00Ljc4TTE2LjkzMiAxMGwzLjM1OC0uMDAxbC4wMDguMDNjLjE1LjYzMy4yMyAxLjI5Mi4yMyAxLjk3YTguNSA4LjUgMCAwIDEtLjU0NSAzbC0zLjE3NC4wMDJjLjE0My0uOTUuMjE4LTEuOTU4LjIxOC0zLjAwMXEwLTEuMDI4LS4wOTUtMm0tMS43ODctNS45MTFsLjAyMy4wMDhBOC41MyA4LjUzIDAgMCAxIDE5Ljc3NiA4LjVoLTMuMDQ5Yy0uMzEzLTEuNzUzLS44Ni0zLjI3OC0xLjU4Mi00LjQxXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImdwdFwiIHZpZXdCb3g9XCIwIDAgNDggNDhcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9XCJNMTguMzggMjcuOTR2LTE0LjRsMTEuMTktNi40NmM2LjItMy41OCAxNy4zIDUuMjUgMTIuNjQgMTMuMzNcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiXG4gICAgICBkPVwibTE4LjM4IDIwLjk0IDEyLjQ3LTcuMiAxMS4xOSA2LjQ2YzYuMiAzLjU4IDQuMSAxNy42MS01LjIzIDE3LjYxXCJcbiAgICAvPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwibm9uZVwiXG4gICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxuICAgICAgZD1cIm0yNC40NCAxNy40NCAxMi40NyA3LjJ2MTIuOTNjMCA3LjE2LTEzLjIgMTIuMzYtMTcuODYgNC4yOFwiXG4gICAgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9XCJNMzAuNSAyMS4ydjE0LjE0TDE5LjMxIDQxLjhjLTYuMiAzLjU4LTE3LjMtNS4yNS0xMi42NC0xMy4zM1wiXG4gICAgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9XCJtMzAuNSAyNy45NC0xMi40NyA3LjItMTEuMTktNi40NmMtNi4yMS0zLjU5LTQuMTEtMTcuNjEgNS4yMi0xNy42MVwiXG4gICAgLz5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCJcbiAgICAgIGQ9XCJtMjQuNDQgMzEuNDQtMTIuNDctNy4yVjExLjMxYzAtNy4xNiAxMy4yLTEyLjM2IDE3Ljg2LTQuMjhcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiaGlzdG9yeVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDQuNWE3LjUgNy41IDAgMSAxLTcuNDE5IDYuMzkyYy4wNjctLjQ1NC0uMjY1LS44OTItLjcyNC0uODkyYS43NS43NSAwIDAgMC0uNzUyLjYyM0E5IDkgMCAxIDAgNiA1LjI5MlY0LjI1YS43NS43NSAwIDAgMC0xLjUgMHYzYzAgLjQxNC4zMzYuNzUuNzUuNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVINi45YTcuNDcgNy40NyAwIDAgMSA1LjEtMm0uNSAzLjI1YS43NS43NSAwIDAgMC0xLjUgMHY0LjVjMCAuNDE0LjMzNi43NS43NS43NWgzYS43NS43NSAwIDAgMCAwLTEuNUgxMi41elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJob21lX2NoZWNrbWFya1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEzLjQ1IDIuNTMyYTIuMjUgMi4yNSAwIDAgMC0yLjkgMEwzLjggOC4yMjRhMi4yNSAyLjI1IDAgMCAwLS44IDEuNzJ2OS4zMWMwIC45NjYuNzg0IDEuNzUgMS43NSAxLjc1aDE0LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtOS4zMWEyLjI1IDIuMjUgMCAwIDAtLjgtMS43MnptLTEuOTMzIDEuMTQ3YS43NS43NSAwIDAgMSAuOTY2IDBsNi43NSA1LjY5MmEuNzUuNzUgMCAwIDEgLjI2Ny41NzN2OS4zMWEuMjUuMjUgMCAwIDEtLjI1LjI1SDQuNzVhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTkuMzFhLjc1Ljc1IDAgMCAxIC4yNjctLjU3M3ptNC4yNjcgNy42MDFhLjc1Ljc1IDAgMSAwLTEuMDYxLTEuMDZsLTMuOTczIDMuOTczLTEuNDctMS40N2EuNzUuNzUgMCAxIDAtMS4wNiAxLjA2bDIgMmEuNzUuNzUgMCAwIDAgMS4wNiAwelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJob3VyZ2xhc3NfcXVhcnRlclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTYuODg0IDE3LjE1QTMuMjQgMy4yNCAwIDAgMSA3LjkyIDE2aDguMTZhMy4yNCAzLjI0IDAgMCAxIDEuNDIgMi42NXYuNmEuMjUuMjUgMCAwIDEtLjI1LjI1SDYuNzVhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LS42YTMuMjQgMy4yNCAwIDAgMSAuMzg0LTEuNU02Ljc1IDJBMi43NSAyLjc1IDAgMCAwIDQgNC43NXYuNDJhNS43NSA1Ljc1IDAgMCAwIDIuNzkyIDQuOTNsMS44MSAxLjA4NmEuNzUuNzUgMCAwIDEgLjAzNiAxLjI2M2wtMi4xMjEgMS40NDNBNS43NSA1Ljc1IDAgMCAwIDQgMTguNjQ3di42MDNBMi43NSAyLjc1IDAgMCAwIDYuNzUgMjJoMTAuNUEyLjc1IDIuNzUgMCAwIDAgMjAgMTkuMjV2LS42MDRhNS43NSA1Ljc1IDAgMCAwLTIuNTE3LTQuNzU0bC0yLjEyMS0xLjQ0M2EuNzUuNzUgMCAwIDEgLjAzNi0xLjI2M2wxLjgxLTEuMDg2QTUuNzUgNS43NSAwIDAgMCAyMCA1LjE3di0uNDJBMi43NSAyLjc1IDAgMCAwIDE3LjI1IDJ6TTUuNSA0Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDEwLjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2LjQyYTQuMjUgNC4yNSAwIDAgMS0yLjA2MyAzLjY0M0wxNC42MjcgOS45Yy0xLjQxLjg0NS0xLjQ2NyAyLjg2Ni0uMTA4IDMuNzlsMi4xMiAxLjQ0MmE0LjI1IDQuMjUgMCAwIDEgMS44NjEgMy41MTV2LjYwM2MwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVINi43NWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1di0uNjA0YTQuMjUgNC4yNSAwIDAgMSAxLjg2LTMuNTE0bDIuMTIxLTEuNDQyYzEuMzU5LS45MjQgMS4zMDItMi45NDUtLjEwNy0zLjc5bC0xLjgxLTEuMDg3QTQuMjUgNC4yNSAwIDAgMSA1LjUgNS4xN3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiaWRcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPGcgZmlsbD1cImN1cnJlbnRDb2xvclwiPlxuICAgICAgPHBhdGhcbiAgICAgICAgZD1cIk0xMy4wMDYgOS4xNjNjMC0uNzYuNjE2LTEuMzc1IDEuMzc1LTEuMzc1aDMuMzA1YzQuNTUxIDAgOC4yNzggMy42MzcgOC4yNzggOC4xNyAwIDQuNTMxLTMuNzI3IDguMTY5LTguMjc4IDguMTY5SDE0LjM4Yy0uNzYgMC0xLjM3NS0uNjE2LTEuMzc1LTEuMzc1em0yLjc1IDEyLjA4OWMwIC4wNjkuMDU2LjEyNS4xMjUuMTI1aDEuODA1YzMuMDc0IDAgNS41MjgtMi40NDcgNS41MjgtNS40MnMtMi40NTQtNS40Mi01LjUyOC01LjQySDE1Ljg4YS4xMjUuMTI1IDAgMCAwLS4xMjUuMTI2ek05LjM4NSA3Ljg5YTEuMzc0IDEuMzc0IDAgMCAxIDEuMzc3IDEuMzczbC4wMTQgMTMuMzg1YTEuMzc1IDEuMzc1IDAgMCAxLTIuNzUuMDAzTDguMDEyIDkuMjY2YTEuMzc1IDEuMzc1IDAgMCAxIDEuMzczLTEuMzc3XCJcbiAgICAgIC8+XG4gICAgICA8cGF0aFxuICAgICAgICBkPVwiTTYgMWE1IDUgMCAwIDAtNSA1djIwYTUgNSAwIDAgMCA1IDVoMjBhNSA1IDAgMCAwIDUtNVY2YTUgNSAwIDAgMC01LTV6TTMgNmEzIDMgMCAwIDEgMy0zaDIwYTMgMyAwIDAgMSAzIDN2MjBhMyAzIDAgMCAxLTMgM0g2YTMgMyAwIDAgMS0zLTN6XCJcbiAgICAgIC8+XG4gICAgPC9nPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImlkX2NhcmRcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOCAxM2ExIDEgMCAwIDEgMS0xaDZhMSAxIDAgMCAxIDAgMmgtNmExIDEgMCAwIDEtMS0xbTEgNGExIDEgMCAxIDAgMCAyaDZhMSAxIDAgMCAwIDAtMnptLTYtNGEyIDIgMCAxIDEtNCAwYTIgMiAwIDAgMSA0IDBtLTYgNC41QTEuNSAxLjUgMCAwIDEgOC41IDE2aDVhMS41IDEuNSAwIDAgMSAxLjUgMS41czAgMy41LTQgMy41cy00LTMuNS00LTMuNU0yIDcuMjVBMy4yNSAzLjI1IDAgMCAxIDUuMjUgNGgyMS41QTMuMjUgMy4yNSAwIDAgMSAzMCA3LjI1djE3LjVBMy4yNSAzLjI1IDAgMCAxIDI2Ljc1IDI4SDUuMjVBMy4yNSAzLjI1IDAgMCAxIDIgMjQuNzV6TTUuMjUgNkM0LjU2IDYgNCA2LjU2IDQgNy4yNXYxNy41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1aDIxLjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjcuMjVDMjggNi41NiAyNy40NCA2IDI2Ljc1IDZ6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImltYWdlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTcuNzUgM0EzLjI1IDMuMjUgMCAwIDEgMjEgNi4yNXYxMS41QTMuMjUgMy4yNSAwIDAgMSAxNy43NSAyMUg2LjI1QTMuMjUgMy4yNSAwIDAgMSAzIDE3Ljc1VjYuMjVBMy4yNSAzLjI1IDAgMCAxIDYuMjUgM3ptLjU4IDE2LjQwMS01LjgwNS01LjY4NmEuNzUuNzUgMCAwIDAtLjk2Ni0uMDcxbC0uMDg0LjA3LTUuODA3IDUuNjg3cS4yNzQuMDk3LjU4Mi4wOTloMTEuNWMuMjAzIDAgLjM5OS0uMDM1LjU4LS4wOTlsLTUuODA1LTUuNjg2ek0xNy43NSA0LjVINi4yNUExLjc1IDEuNzUgMCAwIDAgNC41IDYuMjV2MTEuNXEuMDAxLjMxMy4xMDMuNTk0bDUuODIzLTUuNzAxYTIuMjUgMi4yNSAwIDAgMSAzLjAyLS4xMTZsLjEyOC4xMTYgNS44MjIgNS43MDJxLjEwMi0uMjguMTA0LS41OTVWNi4yNWExLjc1IDEuNzUgMCAwIDAtMS43NS0xLjc1bS0yLjQ5OCAyYTIuMjUyIDIuMjUyIDAgMSAxIDAgNC41MDQgMi4yNTIgMi4yNTIgMCAwIDEgMC00LjUwNG0wIDEuNWEuNzUyLjc1MiAwIDEgMCAwIDEuNTA0Ljc1Mi43NTIgMCAwIDAgMC0xLjUwNFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJpbWFnZV9saWJyYXJ5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTMuNzQ4IDguOTk2YTEuMjQ4IDEuMjQ4IDAgMSAwIDAtMi40OTYgMS4yNDggMS4yNDggMCAwIDAgMCAyLjQ5Nk02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXY5YTMuMjUgMy4yNSAwIDAgMCAzLjI1IDMuMjVoOWEzLjI1IDMuMjUgMCAwIDAgMy4yNS0zLjI1di05QTMuMjUgMy4yNSAwIDAgMCAxNS4yNSAzek00LjUgNi4yNWMwLS45NjYuNzg0LTEuNzUgMS43NS0xLjc1aDljLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXY5YzAgLjIzMS0uMDQ1LjQ1Mi0uMTI2LjY1NGwtNC41ODctNC4yOTFhMi4yNSAyLjI1IDAgMCAwLTMuMDc0IDBsLTQuNTg3IDQuMjlhMS44IDEuOCAwIDAgMS0uMTI2LS42NTN6bTYuNzYyIDYuNDU4IDQuNTA1IDQuMjE0cS0uMjQ2LjA3Ni0uNTE3LjA3OGgtOXEtLjI3MSAwLS41MTctLjA3OGw0LjUwNC00LjIxNGEuNzUuNzUgMCAwIDEgMS4wMjUgME04Ljc1IDIxYTMuMjUgMy4yNSAwIDAgMS0yLjc0LTEuNWg5Ljc0YTMuNzUgMy43NSAwIDAgMCAzLjc1LTMuNzVWNi4wMTFhMy4yNSAzLjI1IDAgMCAxIDEuNSAyLjc0djdBNS4yNSA1LjI1IDAgMCAxIDE1Ljc1IDIxelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJpbWFnZV9zZWFyY2hcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yMSA2LjI1QTMuMjUgMy4yNSAwIDAgMCAxNy43NSAzSDYuMjVBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXY0LjUwN2E1LjUgNS41IDAgMCAxIDEuNS0uODgyVjYuMjVjMC0uOTY2Ljc4NC0xLjc1IDEuNzUtMS43NWgxMS41Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2MTEuNXEtLjAwMi4zMTUtLjEwNC41OTVsLTUuODIyLTUuNzAyLS4xMjgtLjExNmEyLjI1IDIuMjUgMCAwIDAtMi4yNDMtLjM4Yy4yNTkuNDI1LjQ2MS44ODkuNTk4IDEuMzhhLjc1Ljc1IDAgMCAxIC43MjQuMTg4TDE4LjMzIDE5LjRhMS44IDEuOCAwIDAgMS0uNTgxLjA5OWgtNC43NzVsLjUxMi41MTNjLjI3OC4yNzcuNDQzLjYyNi40OTUuOTg3aDMuNzY4QTMuMjUgMy4yNSAwIDAgMCAyMSAxNy43NXptLTMuNDk2IDIuNTAyYTIuMjUyIDIuMjUyIDAgMSAwLTQuNTA0IDAgMi4yNTIgMi4yNTIgMCAwIDAgNC41MDQgMG0tMy4wMDQgMGEuNzUyLjc1MiAwIDEgMSAxLjUwNCAwIC43NTIuNzUyIDAgMCAxLTEuNTA0IDBNOS45NSAxNy44OWE0LjUgNC41IDAgMSAwLTEuMTQ1Ljk3NmwyLjkxNSAyLjkxNWEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2ek02LjUgMThhMyAzIDAgMSAxIDAtNiAzIDMgMCAwIDEgMCA2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImltcG9ydFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIxLjI1IDQuNWEuNzUuNzUgMCAwIDEgLjc0My42NDhMMjIgNS4yNXYxMy4wMDRhLjc1Ljc1IDAgMCAxLTEuNDkzLjEwMmwtLjAwNy0uMTAyVjUuMjVhLjc1Ljc1IDAgMCAxIC43NS0uNzVtLTguNjAzIDEuODA0LjA3Mi0uMDg0YS43NS43NSAwIDAgMSAuOTc3LS4wNzNsLjA4NC4wNzMgNC45OTcgNC45OTdhLjc1Ljc1IDAgMCAxIC4wNzMuOTc2bC0uMDczLjA4NS00Ljk5NyA1LjAwM2EuNzUuNzUgMCAwIDEtMS4xMzMtLjk3NmwuMDcyLS4wODQgMy43MTEtMy43MTdIMi43NWEuNzUuNzUgMCAwIDEtLjc0My0uNjQ3TDIgMTEuNzU1YS43NS43NSAwIDAgMSAuNjQ4LS43NDNsLjEwMi0uMDA3IDEzLjY5My0uMDAxLTMuNzI0LTMuNzI0YS43NS43NSAwIDAgMS0uMDcyLS45NzZsLjA3Mi0uMDg0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJpbmZvXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMS45OThjNS41MjQgMCAxMC4wMDIgNC40NzggMTAuMDAyIDEwLjAwMiAwIDUuNTIzLTQuNDc4IDEwLTEwLjAwMiAxMFMyIDE3LjUyMyAyIDEyQzEuOTk5IDYuNDc2IDYuNDc2IDEuOTk4IDEyIDEuOTk4bTAgMS41YTguNTAyIDguNTAyIDAgMSAwIDAgMTcuMDAzIDguNTAyIDguNTAyIDAgMCAwIDAtMTcuMDAzbS0uMDA0IDdhLjc1Ljc1IDAgMCAxIC43NDQuNjQ4bC4wMDcuMTAyLjAwNCA1LjUwMmEuNzUuNzUgMCAwIDEtMS40OTQuMTAybC0uMDA2LS4xMDEtLjAwNC01LjUwMmEuNzUuNzUgMCAwIDEgLjc1LS43NW0uMDA1LTMuNDk3YS45OTkuOTk5IDAgMSAxIDAgMS45OTcuOTk5Ljk5OSAwIDAgMSAwLTEuOTk3XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImlvdFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE5IDQuNDkyYTIuNSAyLjUgMCAwIDEtMy4wMTIgMi40NDhsLTEuMjggMi4xMTdBNCA0IDAgMCAxIDE2IDEyLjA2bDEuMjk2LjI2YTIuNSAyLjUgMCAxIDEtLjI3OSAxLjQ3NWwtMS4zMTktLjI2NmE0IDQgMCAwIDEtMS43NDQgMS45NjRsLjQ5NSAxLjUxMWguMDUxYTIuNSAyLjUgMCAxIDEtMS40NzIuNDc5bC0uNDk3LTEuNTE2YTQgNCAwIDAgMS0zLjc1Mi0xLjU5M2wtMS43OTQuODQ4cS4wMTUuMTM4LjAxNS4yOGEyLjUgMi41IDAgMSAxLS42MjMtMS42NTJsMS43NTQtLjgyOWE0IDQgMCAwIDEgLjc4NC0zLjU2NmwtLjk5MS0xLjEzYTIuNSAyLjUgMCAxIDEgMS4xNjQtLjk0OGwuOTgyIDEuMTJBNCA0IDAgMCAxIDEyIDguMDAxYy41MDUgMCAuOTg5LjA5MyAxLjQzNC4yNjRsMS4yNDUtMi4wNkEyLjUgMi41IDAgMSAxIDE5IDQuNDkybS0xLjUgMGExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBNNyA3LjAwMWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJtNSA3LjVhMi41IDIuNSAwIDEgMCAwLTUgMi41IDIuNSAwIDAgMCAwIDVtLTYuNSAxYTEgMSAwIDEgMC0yIDAgMSAxIDAgMCAwIDIgMG0xMCA0LjAwMmExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBtNC01LjAwMmExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwia2V5XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTguMjUgN2ExLjI1IDEuMjUgMCAxIDEtMi41IDAgMS4yNSAxLjI1IDAgMCAxIDIuNSAwTTE1LjUgMi4wNUE2LjU1NCA2LjU1NCAwIDAgMCA4Ljk1IDguNmMwIC4zODcuMDUuNzYuMTEgMS4xMDRhLjI4LjI4IDAgMCAxLS4wNy4yNDRsLTYuMjM1IDYuMjM2YTIuNzUgMi43NSAwIDAgMC0uODA2IDEuOTQ0VjIwLjNjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWgyLjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtMS4yNUg5LjdjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1di0xLjc1aDEuNzVhMS4yNSAxLjI1IDAgMCAwIDEuMjUtMS4yMDRjLjQ5Ni4xMjggMS4wMi4yMDQgMS41NS4yMDRhNi41NTQgNi41NTQgMCAwIDAgNi41NS02LjU1YzAtMy42MzEtMi45NTMtNi40NS02LjU1LTYuNDVNMTAuNDUgOC42YTUuMDU0IDUuMDU0IDAgMCAxIDUuMDUtNS4wNWMyLjgwMiAwIDUuMDUgMi4xODEgNS4wNSA0Ljk1YTUuMDU0IDUuMDU0IDAgMCAxLTUuMDUgNS4wNWMtLjY4IDAtMS4zOC0uMTcxLTIuMDA1LS40NGEuNzUuNzUgMCAwIDAtMS4wNDYuNjl2Ljc1SDEwLjdjLS42OSAwLTEuMjUuNTYtMS4yNSAxLjI1djEuNzVINy43Yy0uNjkgMC0xLjI1LjU2LTEuMjUgMS4yNXYxLjVhLjI1LjI1IDAgMCAxLS4yNS4yNUgzLjdhLjI1LjI1IDAgMCAxLS4yNS0uMjV2LTIuMTcyYzAtLjMzMS4xMzItLjY1LjM2Ni0uODg0bDYuMjM2LTYuMjM1YTEuNzcgMS43NyAwIDAgMCAuNDg2LTEuNTY0IDUgNSAwIDAgMS0uMDg4LS44NDVcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwia2V5X211bHRpcGxlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMnEuNDY1IDAgLjkwOC4wODJhNi41IDYuNSAwIDAgMC0xLjU4MiAxLjQ4M0EzLjUgMy41IDAgMCAwIDguNjIgNy45MWEuNzUuNzUgMCAwIDEtLjE5NC43MjVMMy41IDEzLjU2MVYxNi41aDJ2LTEuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVIOC41di0xLjI1YS43NS43NSAwIDAgMSAuMjItLjUzbDEuOTE1LTEuOTE1cS4zMzYuNy44MjMgMS4yOThMMTAgMTMuMDZ2MS42ODlhLjc1Ljc1IDAgMCAxLS43NS43NUg3djEuNzVhLjc1Ljc1IDAgMCAxLS43NS43NWgtMy41YS43NS43NSAwIDAgMS0uNzUtLjc1di00YS43NS43NSAwIDAgMSAuMjItLjUzbDQuODU1LTQuODU1QTUgNSAwIDAgMSAxMiAybTQuNSAxLjVhNCA0IDAgMCAwLTEuODk0IDcuNTI0Ljc1Ljc1IDAgMCAxIC4zOTQuNjZ2Ny43MzRsMi4wMTcgMS44MzQgMi4xMjMtMS43OTktLjkyMS0uOTI0YS43NS43NSAwIDAgMSAwLTEuMDU4bC45NjctLjk3MS0uOTY3LS45N0EuNzUuNzUgMCAwIDEgMTggMTV2LTMuMzE2YS43NS43NSAwIDAgMSAuMzk0LS42NkE0IDQgMCAwIDAgMTYuNSAzLjVtLTUuNSA0YTUuNSA1LjUgMCAxIDEgOC41IDQuNjF2Mi41OGwxLjI3NiAxLjI4YS43NS43NSAwIDAgMSAwIDEuMDZsLS45NjcuOTcuOTY3Ljk3YS43NS43NSAwIDAgMS0uMDQ2IDEuMTAybC0zLjI0NSAyLjc1YS43NS43NSAwIDAgMS0uOTktLjAxN2wtMi43NS0yLjVhLjc1Ljc1IDAgMCAxLS4yNDUtLjU1NXYtNy42NEE1LjUgNS41IDAgMCAxIDExIDcuNW02LjUtMWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibGFiZWxcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOS43NSAyQTIuMjUgMi4yNSAwIDAgMSAyMiA0LjI1djUuNDYyYTMuMjUgMy4yNSAwIDAgMS0uOTUyIDIuMjk4bC04LjUgOC41MDNhMy4yNTUgMy4yNTUgMCAwIDEtNC41OTcuMDAxTDMuNDg5IDE2LjA2YTMuMjUgMy4yNSAwIDAgMS0uMDA0LTQuNTk2bDguNS04LjUxYTMuMjUgMy4yNSAwIDAgMSAyLjMtLjk1M3ptMCAxLjVoLTUuNDY2Yy0uNDY0IDAtLjkxLjE4NS0xLjIzOC41MTNsLTguNTEyIDguNTIzYTEuNzUgMS43NSAwIDAgMCAuMDE1IDIuNDYybDQuNDYxIDQuNDU0YTEuNzU1IDEuNzU1IDAgMCAwIDIuNDc3IDBsOC41LTguNTAzYTEuNzUgMS43NSAwIDAgMCAuNTEzLTEuMjM3VjQuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVNMTcgNS41MDJhMS41IDEuNSAwIDEgMSAwIDMgMS41IDEuNSAwIDAgMSAwLTNcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibGFiZWxzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTcuNSA2LjVhMS4yNSAxLjI1IDAgMSAxLTIuNSAwIDEuMjUgMS4yNSAwIDAgMSAyLjUgMG0tNi45OTItMy42MDJBMy4yNSAzLjI1IDAgMCAxIDEyLjc1IDJoNS40OTlBMi43NSAyLjc1IDAgMCAxIDIxIDQuNzV2NC45NTNhMy4yNSAzLjI1IDAgMCAxLS45NyAyLjMxNmwtNi45NDYgNi44MzVhMi4yNSAyLjI1IDAgMCAxLTMuMTY2LS4wMWwtNi4yNTYtNi4yMjZhMi4yNSAyLjI1IDAgMCAxIC4wMzQtMy4yMjN6bTIuMjQzLjYwMmMtLjQ1IDAtLjg4My4xNzMtMS4yMDguNDg0TDQuNzMgMTAuNDhhLjc1Ljc1IDAgMCAwLS4wMTEgMS4wNzVsNi4yNTcgNi4yMjZhLjc1Ljc1IDAgMCAwIDEuMDU1LjAwM2w2Ljk0NS02LjgzNGExLjc1IDEuNzUgMCAwIDAgLjUyMy0xLjI0N1Y0Ljc1YzAtLjY5LS41Ni0xLjI1LTEuMjUtMS4yNXptNy45OCA5LjIzMi0xLjQ3NSAxLjQ1MXEtLjA2LjA4Mi0uMTM0LjE1NWwtNS4zMzQgNS4yMjlhMy4yNSAzLjI1IDAgMCAxLTQuNTc1LS4wMTNMNy4yODIgMTcuNjNsLTIuNDExLTIuMzg2YTEgMSAwIDAgMS0uMTA3LS4xMmwtMS42My0xLjYyMWEyLjc1IDIuNzUgMCAwIDAgLjY4MiAyLjgwN2w0LjM1NiA0LjMxMWE0Ljc1IDQuNzUgMCAwIDAgNi42NjYuMDE2bDUuMzM0LTUuMjI5YTIuNzUgMi43NSAwIDAgMCAuNjktMi44MTMgNCA0IDAgMCAxLS4xMzEuMTM2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxheWVyX2RpYWdvbmFsX3NwYXJrbGVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNi4wODggNy40MTJhMi44NCAyLjg0IDAgMCAwLTEuMzQ3LS45NTVsLTEuMzc4LS40NDhhLjU0NC41NDQgMCAwIDEgMC0xLjAyNWwxLjM3OC0uNDQ4QTIuODQgMi44NCAwIDAgMCAxNi41IDIuNzc0bC4wMTEtLjAzNC40NDgtMS4zNzdhLjU0NC41NDQgMCAwIDEgMS4wMjcgMGwuNDQ3IDEuMzc3YTIuODQgMi44NCAwIDAgMCAxLjc5OSAxLjc5NmwxLjM3Ny40NDguMDI4LjAwN2EuNTQ0LjU0NCAwIDAgMSAwIDEuMDI1bC0xLjM3OC40NDhhMi44NCAyLjg0IDAgMCAwLTEuNzk4IDEuNzk2bC0uNDQ4IDEuMzc3LS4wMTMuMDM0YS41NDQuNTQ0IDAgMCAxLTEuMDEzLS4wMzRsLS40NDgtMS4zNzdhMi44IDIuOCAwIDAgMC0uNDUtLjg0OG03LjY5NSAzLjgwMS0uNzY2LS4yNDhhMS41OCAxLjU4IDAgMCAxLS45OTgtLjk5OWwtLjI1LS43NjRhLjMwMi4zMDIgMCAwIDAtLjU3IDBsLS4yNDguNzY0YTEuNTggMS41OCAwIDAgMS0uOTg0Ljk5OWwtLjc2NS4yNDhhLjMwMi4zMDIgMCAwIDAgMCAuNTdsLjc2NS4yNDlhMS41OCAxLjU4IDAgMCAxIDEgMS4wMDJsLjI0OC43NjRhLjMwMi4zMDIgMCAwIDAgLjU3IDBsLjI0OS0uNzY0YTEuNTggMS41OCAwIDAgMSAuOTk5LS45OTlsLjc2NS0uMjQ4YS4zMDIuMzAyIDAgMCAwIDAtLjU3em0tMTIuOC05LjA3N2EyLjI1IDIuMjUgMCAwIDEgMi45NSAxLjU3MkwxMy4wNSA0YTEuNiAxLjYgMCAwIDAtLjU1LjMzMnYtLjA4YS43NS43NSAwIDAgMC0xLjAwNS0uNzA0bC02Ljg0IDIuNDc1QTEuNzUgMS43NSAwIDAgMCAzLjUgNy42Njd2Ni4wODJhLjc1Ljc1IDAgMCAwIDEuMDA1LjcwNUw1IDE0LjI3NXYxLjU5NWEyLjI1IDIuMjUgMCAwIDEtMy0yLjEyVjcuNjY2QTMuMjUgMy4yNSAwIDAgMSA0LjE0NCA0LjYxem0tMy4xNyA1LjU5NSA0LjM0Ni0xLjU3M0ExLjcgMS43IDAgMCAwIDEzIDdsLjY1Mi4yMTQtNS4zMjcgMS45MjhhMS4yNSAxLjI1IDAgMCAwLS44MjUgMS4xNzZ2Ni40MzJhLjc1Ljc1IDAgMCAwIDEuMDA1LjcwNWwuNDk1LS4xOHYxLjU5NmEyLjI1IDIuMjUgMCAwIDEtMy0yLjEyMnYtNi40MzJBMi43NSAyLjc1IDAgMCAxIDcuODE0IDcuNzNtMy42NyAzLjEyTDE1LjggOS4yODhsLjIwMS43MWMuMDg4LjI1Ny4yNC40ODEuNDM1LjY1NWwtNC40NCAxLjYwN2EuNzUuNzUgMCAwIDAtLjQ5NS43MDV2Ni43ODNhLjc1Ljc1IDAgMCAwIDEuMDA1LjcwNWw3LjUtMi43MTRhLjc1Ljc1IDAgMCAwIC40OTUtLjcwNXYtMi40NDhjLjIxNC4yNzYuNTEyLjQ2My45Ni40NjMuMjExIDAgLjM4OS0uMDQyLjU0LS4xMTR2Mi4xYTIuMjUgMi4yNSAwIDAgMS0xLjQ4NCAyLjExNWwtNy41IDIuNzE0QTIuMjUgMi4yNSAwIDAgMSAxMCAxOS43NDl2LTYuNzgzYTIuMjUgMi4yNSAwIDAgMSAxLjQ4NC0yLjExNlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsaWdodGJ1bGJcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAyLjAwMWE3LjI1IDcuMjUgMCAwIDEgNy4yNSA3LjI1YzAgMi4wOTYtLjkgNC4wMi0yLjY2MyA1Ljc0MmEuNzUuNzUgMCAwIDAtLjE3NS4yNjVsLS4wMzIuMTAzLTEuMTMgNC44OTVhMi4yNSAyLjI1IDAgMCAxLTIuMDIgMS43MzdsLS4xNzMuMDA3aC0yLjExNGEyLjI1IDIuMjUgMCAwIDEtMi4xNDctMS41NzdsLS4wNDUtLjE2Ny0xLjEzLTQuODk1YS43NS43NSAwIDAgMC0uMjA2LS4zNjhjLTEuNjgtMS42NC0yLjU3Ny0zLjQ2My0yLjY1OS01LjQ0NGwtLjAwNi0uMjk4LjAwNC0uMjRBNy4yNSA3LjI1IDAgMCAxIDEyIDIuMDAyTTE0LjExNSAxOC41SDkuODg0bC4zMjkgMS40MmEuNzUuNzUgMCAwIDAgLjYyNy41NzNsLjEwMy4wMDhoMi4xMTRhLjc1Ljc1IDAgMCAwIC43LS40ODNsLjAzLS4wOTl6TTEyIDMuNTAxYTUuNzUgNS43NSAwIDAgMC01Ljc0NiA1LjUzbC0uMDA0LjIyLjAwNy4yNzdjLjA3NiAxLjU2My44IDMuMDIgMi4yMDYgNC4zOTIuMjY0LjI1OC40Ni41NzYuNTcxLjkyNmwuMDQ5LjE3OC40NTUgMS45NzVoNC45MjNsLjQ1OC0xLjk3NmEyLjI1IDIuMjUgMCAwIDEgLjQ5My0uOTdsLjEyNy0uMTMzYzEuNDA0LTEuMzczIDIuMTI4LTIuODI4IDIuMjA0LTQuMzkybC4wMDctLjI3Ny0uMDA0LS4yMkE1Ljc1IDUuNzUgMCAwIDAgMTIgMy41XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxpbmVfaG9yaXpvbnRhbFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTIgMTEuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVoMTguNWEuNzUuNzUgMCAwIDEgMCAxLjVIMi43NWEuNzUuNzUgMCAwIDEtLjc1LS43NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsaW5rXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOS4yNSA3YS43NS43NSAwIDAgMSAuMTEgMS40OTJsLS4xMS4wMDhIN2EzLjUgMy41IDAgMCAwLS4yMDYgNi45OTRMNyAxNS41aDIuMjVhLjc1Ljc1IDAgMCAxIC4xMSAxLjQ5Mkw5LjI1IDE3SDdhNSA1IDAgMCAxLS4yNS05Ljk5NEw3IDd6TTE3IDdhNSA1IDAgMCAxIC4yNSA5Ljk5NEwxNyAxN2gtMi4yNWEuNzUuNzUgMCAwIDEtLjExLTEuNDkybC4xMS0uMDA4SDE3YTMuNSAzLjUgMCAwIDAgLjIwNi02Ljk5NEwxNyA4LjVoLTIuMjVhLjc1Ljc1IDAgMCAxLS4xMS0xLjQ5MkwxNC43NSA3ek03IDExLjI1aDEwYS43NS43NSAwIDAgMSAuMTAyIDEuNDkzTDE3IDEyLjc1SDdhLjc1Ljc1IDAgMCAxLS4xMDItMS40OTN6aDEwelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsaW5rX2Rpc21pc3NcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk05LjI1IDVhLjc1Ljc1IDAgMCAxIC4xMSAxLjQ5MmwtLjExLjAwOEg3YTMuNSAzLjUgMCAwIDAtLjIwNiA2Ljk5NEw3IDEzLjVoMi4yNWEuNzUuNzUgMCAwIDEgLjExIDEuNDkyTDkuMjUgMTVIN2E1IDUgMCAwIDEtLjI1LTkuOTk0TDcgNXpNMTcgNWE1IDUgMCAwIDEgNC40MyA3LjMyMiA2LjUgNi41IDAgMCAwLTEuMjk0LS43NjUgMy41IDMuNSAwIDAgMC0yLjkzLTUuMDVMMTcgNi40OTloLTIuMjVhLjc1Ljc1IDAgMCAxLS4xMS0xLjQ5MkwxNC43NSA1ek03IDkuMjVoMTBhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNMMTcgMTAuNzVIN2EuNzUuNzUgMCAwIDEtLjEwMi0xLjQ5M3ptMTYgOC4yNWE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwbS03LjE0Ni0yLjM1NGEuNS41IDAgMCAwLS43MDguNzA4bDEuNjQ3IDEuNjQ2LTEuNjQ3IDEuNjQ2YS41LjUgMCAwIDAgLjcwOC43MDhsMS42NDYtMS42NDcgMS42NDYgMS42NDdhLjUuNSAwIDAgMCAuNzA4LS43MDhMMTguMjA3IDE3LjVsMS42NDctMS42NDZhLjUuNSAwIDAgMC0uNzA4LS43MDhMMTcuNSAxNi43OTN6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxpbmtfc3F1YXJlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2NmEzLjI1IDMuMjUgMCAwIDAgMy4yNSAzLjI1SDcuNVYxNEg2LjI1YTEuNzUgMS43NSAwIDAgMS0xLjc1LTEuNzV2LTZjMC0uOTY2Ljc4NC0xLjc1IDEuNzUtMS43NWg2Yy45NjYgMCAxLjc1Ljc4NCAxLjc1IDEuNzV2NkExLjc1IDEuNzUgMCAwIDEgMTIuMjUgMTRIMTF2MS41aDEuMjVhMy4yNSAzLjI1IDAgMCAwIDMuMjUtMy4yNXYtNkEzLjI1IDMuMjUgMCAwIDAgMTIuMjUgM3pNMTAgMTEuNzVjMC0uOTY2Ljc4NC0xLjc1IDEuNzUtMS43NWgxLjI0OFY4LjVIMTEuNzVhMy4yNSAzLjI1IDAgMCAwLTMuMjUgMy4yNXY2QTMuMjUgMy4yNSAwIDAgMCAxMS43NSAyMWg2QTMuMjUgMy4yNSAwIDAgMCAyMSAxNy43NXYtNmEzLjI1IDMuMjUgMCAwIDAtMy4yNS0zLjI1SDE2LjVWMTBoMS4yNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djZhMS43NSAxLjc1IDAgMCAxLTEuNzUgMS43NWgtNkExLjc1IDEuNzUgMCAwIDEgMTAgMTcuNzV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxpc3Rfc3F1YXJlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNy43NSA5LjI1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMm0zLjUtMS43NWEuNzUuNzUgMCAwIDAgMCAxLjVoNS41YS43NS43NSAwIDAgMCAwLTEuNXptMCAzLjc1YS43NS43NSAwIDEgMCAwIDEuNWg1LjVhLjc1Ljc1IDAgMSAwIDAtMS41em0tLjc1IDQuNWEuNzUuNzUgMCAwIDEgLjc1LS43NWg1LjVhLjc1Ljc1IDAgMSAxIDAgMS41aC01LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVNOC43NSAxMmExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBtLTEgNC43NWExIDEgMCAxIDAgMC0yIDEgMSAwIDAgMCAwIDJNNi4yNSAzQTMuMjUgMy4yNSAwIDAgMCAzIDYuMjV2MTEuNUEzLjI1IDMuMjUgMCAwIDAgNi4yNSAyMWgxMS41QTMuMjUgMy4yNSAwIDAgMCAyMSAxNy43NVY2LjI1QTMuMjUgMy4yNSAwIDAgMCAxNy43NSAzek00LjUgNi4yNWMwLS45NjYuNzg0LTEuNzUgMS43NS0xLjc1aDExLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMS41YTEuNzUgMS43NSAwIDAgMS0xLjc1IDEuNzVINi4yNWExLjc1IDEuNzUgMCAwIDEtMS43NS0xLjc1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsb2NhdGlvbl9vblwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuODQzIDQuNTY4YTguNzA3IDguNzA3IDAgMCAxIDEyLjMxNCAxMi4zMTRsLTEuMTg3IDEuMTc0cS0xLjMxMiAxLjI4Ny0zLjQwNiAzLjMxMmEyLjI1IDIuMjUgMCAwIDEtMy4xMjggMGwtMy40OTEtMy4zOTZxLS42NTktLjY0Ni0xLjEwMi0xLjA5YTguNzA3IDguNzA3IDAgMCAxIDAtMTIuMzE0bTExLjI1MyAxLjA2QTcuMjA3IDcuMjA3IDAgMSAwIDYuOTAzIDE1LjgyMmwxLjQ4OCAxLjQ2OHExLjIyOCAxLjIwMSAzLjA4OCAzYS43NS43NSAwIDAgMCAxLjA0MiAwbDMuMzk1LTMuM3EuNzA1LS42OTEgMS4xOC0xLjE2OGE3LjIwNyA3LjIwNyAwIDAgMCAwLTEwLjE5Mk0xMiA3Ljk5OWEzLjAwMiAzLjAwMiAwIDEgMSAwIDYuMDA0QTMuMDAyIDMuMDAyIDAgMCAxIDEyIDhtMCAxLjVhMS41MDIgMS41MDIgMCAxIDAgMCAzLjAwNCAxLjUwMiAxLjUwMiAwIDAgMCAwLTMuMDAzXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxvY2F0aW9uX3NlYXJjaGluZ1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJhLjc1Ljc1IDAgMCAxIC43NDMuNjQ4bC4wMDcuMTAydjEuNzg4YTcuNSA3LjUgMCAwIDEgNi43MTMgNi43MTRsLjAzNy0uMDAyaDEuNzVhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNsLS4xMDIuMDA3LTEuNzg4LS4wMDFhNy41IDcuNSAwIDAgMS02LjcxNCA2LjcxNGwuMDAyLjAzN3YxLjc1YS43NS43NSAwIDAgMS0xLjQ5My4xMDJsLS4wMDctLjEwMi4wMDEtMS43ODhhNy41IDcuNSAwIDAgMS02LjcxNC02LjcxNGwtLjAzNy4wMDJIMi43NWEuNzUuNzUgMCAwIDEtLjEwMi0xLjQ5M2wuMTAyLS4wMDdoMS43ODhhNy41IDcuNSAwIDAgMSA2LjcxNC02LjcxM0wxMS4yNSA0LjVWMi43NUEuNzUuNzUgMCAwIDEgMTIgMm0wIDRhNiA2IDAgMSAwIDAgMTIgNiA2IDAgMCAwIDAtMTJtMCAyYTQgNCAwIDEgMSAwIDggNCA0IDAgMCAxIDAtOFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJsb2NrXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMTUuNWExLjUgMS41IDAgMSAwIDAtMyAxLjUgMS41IDAgMCAwIDAgM004IDZhNCA0IDAgMSAxIDggMHYxaC43NUEzLjI1IDMuMjUgMCAwIDEgMjAgMTAuMjV2Ny41QTMuMjUgMy4yNSAwIDAgMSAxNi43NSAyMWgtOS41QTMuMjUgMy4yNSAwIDAgMSA0IDE3Ljc1di03LjVBMy4yNSAzLjI1IDAgMCAxIDcuMjUgN0g4em00LTIuNUEyLjUgMi41IDAgMCAwIDkuNSA2djFoNVY2QTIuNSAyLjUgMCAwIDAgMTIgMy41bS00Ljc1IDVhMS43NSAxLjc1IDAgMCAwLTEuNzUgMS43NXY3LjVjMCAuOTY2Ljc4NCAxLjc1IDEuNzUgMS43NWg5LjVhMS43NSAxLjc1IDAgMCAwIDEuNzUtMS43NXYtNy41YTEuNzUgMS43NSAwIDAgMC0xLjc1LTEuNzV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxvY2tfb3BlblwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE2IDVhMi41IDIuNSAwIDAgMSA1IDB2LjI1YS43NS43NSAwIDAgMCAxLjUgMFY1YTQgNCAwIDAgMC04IDB2Mkg3LjI1QTMuMjUgMy4yNSAwIDAgMCA0IDEwLjI1djcuNUEzLjI1IDMuMjUgMCAwIDAgNy4yNSAyMWg5LjVBMy4yNSAzLjI1IDAgMCAwIDIwIDE3Ljc1di03LjVBMy4yNSAzLjI1IDAgMCAwIDE2Ljc1IDdIMTZ6TTcuMjUgOC41aDkuNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djcuNWExLjc1IDEuNzUgMCAwIDEtMS43NSAxLjc1aC05LjVhMS43NSAxLjc1IDAgMCAxLTEuNzUtMS43NXYtNy41YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVtNC43NSA3YTEuNSAxLjUgMCAxIDAgMC0zIDEuNSAxLjUgMCAwIDAgMCAzXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cImxvZ2luXCIgdmlld0JveD1cIjAgMCAzMiAzMlwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMjYgMzBIMTRhMiAyIDAgMCAxLTItMnYtM2gydjNoMTJWNEgxNHYzaC0yVjRhMiAyIDAgMCAxIDItMmgxMmEyIDIgMCAwIDEgMiAydjI0YTIgMiAwIDAgMS0yIDJcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNC41OSAyMC41OSAxOC4xNyAxN0g0di0yaDE0LjE3bC0zLjU4LTMuNTlMMTYgMTBsNiA2LTYgNnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibG9nb3V0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNOC41MDIgMTEuNWExLjAwMiAxLjAwMiAwIDEgMSAwIDIuMDA0IDEuMDAyIDEuMDAyIDAgMCAxIDAtMi4wMDVNMTIgNC4zNTN2Ni42NWg3LjQ0MkwxNy43MiA5LjI4YS43NS43NSAwIDAgMS0uMDczLS45NzdsLjA3My0uMDg0YS43NS43NSAwIDAgMSAuOTc2LS4wNzJsLjA4NC4wNzIgMi45OTcgMi45OThhLjc1Ljc1IDAgMCAxIC4wNzMuOTc2bC0uMDczLjA4NC0yLjk5NiAzLjAwM2EuNzUuNzUgMCAwIDEtMS4xMzQtLjk3NWwuMDcyLS4wODQgMS43MTMtMS43MTdoLTcuNDMxTDEyIDE5LjI1YS43NS43NSAwIDAgMS0uODguNzM4bC04LjUtMS41MDFhLjc1Ljc1IDAgMCAxLS42Mi0uNzM5VjUuNzVhLjc1Ljc1IDAgMCAxIC42MjgtLjc0bDguNS0xLjM5NmEuNzUuNzUgMCAwIDEgLjg3Mi43NG0tMS41Ljg4My03IDEuMTV2MTAuNzMybDcgMS4yMzZ6TTEzIDE4LjVoLjc2NWwuMTAyLS4wMDdhLjc1Ljc1IDAgMCAwIC42NDgtLjc0NGwtLjAwNy00LjI1SDEzem0uMDAyLTguNUwxMyA4LjcyNVY1aC43NDVhLjc1Ljc1IDAgMCAxIC43NDMuNjQ3bC4wMDcuMTAxLjAwNyA0LjI1MnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibWFpbFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTUuMjUgNGgxMy41YTMuMjUgMy4yNSAwIDAgMSAzLjI0NSAzLjA2NkwyMiA3LjI1djkuNWEzLjI1IDMuMjUgMCAwIDEtMy4wNjYgMy4yNDVMMTguNzUgMjBINS4yNWEzLjI1IDMuMjUgMCAwIDEtMy4yNDUtMy4wNjZMMiAxNi43NXYtOS41YTMuMjUgMy4yNSAwIDAgMSAzLjA2Ni0zLjI0NXpoMTMuNXpNMjAuNSA5LjM3M2wtOC4xNSA0LjI5YS43NS43NSAwIDAgMS0uNjAzLjA0M2wtLjA5Ni0uMDQyTDMuNSA5LjM3NHY3LjM3NmExLjc1IDEuNzUgMCAwIDAgMS42MDYgMS43NDRsLjE0NC4wMDZoMTMuNWExLjc1IDEuNzUgMCAwIDAgMS43NDQtMS42MDdsLjAwNi0uMTQzek0xOC43NSA1LjVINS4yNWExLjc1IDEuNzUgMCAwIDAtMS43NDQgMS42MDZMMy41IDcuMjV2LjQyOWw4LjUgNC40NzQgOC41LTQuNDc1VjcuMjVhMS43NSAxLjc1IDAgMCAwLTEuNjA3LTEuNzQ0elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtYXBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIm05LjIwMyA0IC4wNDctLjAwMi4wNDYuMDAxLjA2OC4wMDcuMDE2LjAwNHEuMTI5LjAyLjI1LjA5MmwuMDUzLjAzNCA1LjA3IDMuNTY1TDE5LjgyIDQuMTRhLjc1Ljc1IDAgMCAxIDEuMTc0LjUxbC4wMDcuMTA0djEwLjYzMmEuNzUuNzUgMCAwIDEtLjIzOC41NDhsLS4wOC4wNjYtNS41IDMuODY2YS43NC43NCAwIDAgMS0uODI4LjAyM0w5LjI1IDE2LjI5N2wtNS4wNyAzLjU2NWEuNzUuNzUgMCAwIDEtMS4xNzQtLjUxbC0uMDA3LS4xMDRWOC42MTZhLjc1Ljc1IDAgMCAxIC4yMzgtLjU0OGwuMDgtLjA2NiA1LjUtMy44NjZhLjguOCAwIDAgMSAuMi0uMTAxbC4xMjMtLjAyOHptMTAuMjk4IDIuMTk3LTQgMi44MTJ2OC43OTlsNC0yLjgxMnpNOC41IDYuMTkzbC00IDIuODEydjguOGw0LTIuODEzem0xLjUwMiAwdjguOGw0IDIuODExVjkuMDA1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtaWNcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC4yNSAxMWEuNzUuNzUgMCAwIDEgLjc0My42NDhsLjAwNy4xMDJ2LjVhNi43NSA2Ljc1IDAgMCAxLTYuMjQ5IDYuNzMybC0uMDAxIDIuMjY4YS43NS43NSAwIDAgMS0xLjQ5My4xMDJsLS4wMDctLjEwMnYtMi4yNjhhNi43NSA2Ljc1IDAgMCAxLTYuMjQ2LTYuNDk2TDUgMTIuMjV2LS41YS43NS43NSAwIDAgMSAxLjQ5My0uMTAybC4wMDcuMTAydi41YTUuMjUgNS4yNSAwIDAgMCA1LjAzNCA1LjI0NmwuMjE2LjAwNGguNWE1LjI1IDUuMjUgMCAwIDAgNS4yNDYtNS4wMzRsLjAwNC0uMjE2di0uNWEuNzUuNzUgMCAwIDEgLjc1LS43NU0xMiAyYTQgNCAwIDAgMSA0IDR2NmE0IDQgMCAwIDEtOCAwVjZhNCA0IDAgMCAxIDQtNG0wIDEuNUEyLjUgMi41IDAgMCAwIDkuNSA2djZhMi41IDIuNSAwIDAgMCA1IDBWNkEyLjUgMi41IDAgMCAwIDEyIDMuNVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtaWNfcmVjb3JkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTEgMTcuNWMwIDEuMDk2LjI3MSAyLjEyOS43NSAzLjAzNXYuNzE1YS43NS43NSAwIDAgMS0xLjQ5My4xMDJsLS4wMDctLjEwMnYtMi4yNjhhNi43NSA2Ljc1IDAgMCAxLTYuMjQ2LTYuNDk2TDQgMTIuMjV2LS41YS43NS43NSAwIDAgMSAxLjQ5My0uMTAybC4wMDcuMTAydi41YTUuMjUgNS4yNSAwIDAgMCA1LjAzNCA1LjI0NmwuMjE2LjAwNHptLjE3NS0xLjUwNEE2LjUxIDYuNTEgMCAwIDEgMTUgMTEuNDk4VjZhNCA0IDAgMCAwLTggMHY2YTQgNCAwIDAgMCA0LjE3NSAzLjk5Nk0yMCAxNy41YTIuNSAyLjUgMCAxIDEtNSAwIDIuNSAyLjUgMCAwIDEgNSAwbTMgMGE1LjUgNS41IDAgMSAxLTExIDAgNS41IDUuNSAwIDAgMSAxMSAwbS05LjUgMGE0IDQgMCAxIDAgOCAwIDQgNCAwIDAgMC04IDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibWljcm9jaGlwX2FpXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGZpbGwtcnVsZT1cImV2ZW5vZGRcIlxuICAgICAgZD1cIk04Ljc1IDRhLjc1Ljc1IDAgMCAwLTEuNSAwdjEuMjVIN0ExLjc1IDEuNzUgMCAwIDAgNS4yNSA3di4yNUg0YS43NS43NSAwIDAgMCAwIDEuNWgxLjI1djIuNUg0YS43NS43NSAwIDAgMCAwIDEuNWgxLjI1djIuNUg0YS43NS43NSAwIDAgMCAwIDEuNWgxLjI1VjE3YzAgLjk2Ni43ODQgMS43NSAxLjc1IDEuNzVoLjI1VjIwYS43NS43NSAwIDAgMCAxLjUgMHYtMS4yNWgyLjVWMjBhLjc1Ljc1IDAgMCAwIDEuNSAwdi0xLjI1aDIuNVYyMGEuNzUuNzUgMCAwIDAgMS41IDB2LTEuMjVIMTdBMS43NSAxLjc1IDAgMCAwIDE4Ljc1IDE3di0uMjVIMjBhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjI1di0yLjVIMjBhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjI1di0yLjVIMjBhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjI1VjdBMS43NSAxLjc1IDAgMCAwIDE3IDUuMjVoLS4yNVY0YS43NS43NSAwIDAgMC0xLjUgMHYxLjI1aC0yLjVWNGEuNzUuNzUgMCAwIDAtMS41IDB2MS4yNWgtMi41em0tMiAzQS4yNS4yNSAwIDAgMSA3IDYuNzVoMTBhLjI1LjI1IDAgMCAxIC4yNS4yNXYxMGEuMjUuMjUgMCAwIDEtLjI1LjI1SDdhLjI1LjI1IDAgMCAxLS4yNS0uMjV6bTUuMDQ5IDcuNzUzLS4yNzUtLjc3Mkg5LjQ5N2wtLjI3NS43NzJhLjc1Ljc1IDAgMCAxLTEuNDEzLS41MDRsMS43LTQuNzcuMDAzLS4wMDkuMDA0LS4wMWMuMTUyLS4zOTIuNTE2LS43MTEuOTk0LS43MTEuNDc5IDAgLjg0Mi4zMTkuOTk1LjcxMmwuMDAzLjAwOS4wMDQuMDEgMS43IDQuNzdhLjc1Ljc1IDAgMCAxLTEuNDEzLjUwM20tMS4yODktMy42MTUuNDc5IDEuMzQzaC0uOTU4em0zLjc0LTEuNjRhLjc1Ljc1IDAgMCAxIDEuNSAwdjUuMDAzYS43NS43NSAwIDEgMS0xLjUgMHpcIlxuICAgICAgY2xpcC1ydWxlPVwiZXZlbm9kZFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtaWNyb3NvZnRcIiB2aWV3Qm94PVwiMCAwIDIxIDIxXCI+XG4gICAgPHBhdGggZmlsbD1cIiNmMjUwMjJcIiBkPVwiTTEgMWg5djlIMXpcIiAvPlxuICAgIDxwYXRoIGZpbGw9XCIjMDBhNGVmXCIgZD1cIk0xIDExaDl2OUgxelwiIC8+XG4gICAgPHBhdGggZmlsbD1cIiM3ZmJhMDBcIiBkPVwiTTExIDFoOXY5aC05elwiIC8+XG4gICAgPHBhdGggZmlsbD1cIiNmZmI5MDBcIiBkPVwiTTExIDExaDl2OWgtOXpcIiAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cIm1vb25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yMC4wMjYgMTcuMDAxYy0yLjc2MiA0Ljc4NC04Ljg3OSA2LjQyMy0xMy42NjMgMy42NjFBMTAgMTAgMCAwIDEgMy4xMyAxNy42OGEuNzUuNzUgMCAwIDEgLjM2NS0xLjEzMmMzLjc2Ny0xLjM0OCA1Ljc4NS0yLjkxIDYuOTU2LTUuMTQ2IDEuMjMzLTIuMzUzIDEuNTUxLTQuOTMuNjg5LTguNDYzYS43NS43NSAwIDAgMSAuNzY5LS45MjcgOS45NiA5Ljk2IDAgMCAxIDQuNDU3IDEuMzI3YzQuNzg0IDIuNzYyIDYuNDIzIDguODc5IDMuNjYgMTMuNjYybS04LjI0Ny00LjkwM2MtMS4yNTIgMi4zODktMy4zMTIgNC4xLTYuODE4IDUuNDk5YTguNSA4LjUgMCAwIDAgMi4xNTIgMS43NjYgOC41MDIgOC41MDIgMCAwIDAgOC41MDItMTQuNzI1IDguNSA4LjUgMCAwIDAtMi43OTItMS4wMTVjLjY0NyAzLjM4NC4yMyA2LjA0My0xLjA0NSA4LjQ3NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtb3JlX2hvcml6b250YWxcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk03Ljc1IDEyYTEuNzUgMS43NSAwIDEgMS0zLjUgMCAxLjc1IDEuNzUgMCAwIDEgMy41IDBtNiAwYTEuNzUgMS43NSAwIDEgMS0zLjUgMCAxLjc1IDEuNzUgMCAwIDEgMy41IDBNMTggMTMuNzVhMS43NSAxLjc1IDAgMSAwIDAtMy41IDEuNzUgMS43NSAwIDAgMCAwIDMuNVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJtb3JlX3ZlcnRpY2FsXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgNy43NWExLjc1IDEuNzUgMCAxIDEgMC0zLjUgMS43NSAxLjc1IDAgMCAxIDAgMy41bTAgNmExLjc1IDEuNzUgMCAxIDEgMC0zLjUgMS43NSAxLjc1IDAgMCAxIDAgMy41TTEwLjI1IDE4YTEuNzUgMS43NSAwIDEgMCAzLjUgMCAxLjc1IDEuNzUgMCAwIDAtMy41IDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibmF2aWdhdGlvblwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE5Ljk1OCAyLjEwNGMxLjIxMy0uNDY3IDIuNDA1LjcyNSAxLjkzOCAxLjkzOEwxNS4zNiAyMS4wMzhjLS41MjIgMS4zNi0yLjQ4IDEuMjUyLTIuODUtLjE1NmwtMS44NDUtNy4wMTFhLjc1Ljc1IDAgMCAwLS41MzUtLjUzNWwtNy4wMS0xLjg0NWMtMS40MDktLjM3LTEuNTE2LTIuMzI4LS4xNTctMi44NXptLjUzOCAxLjRMMy41IDEwLjA0bDcuMDExIDEuODQ1YTIuMjUgMi4yNSAwIDAgMSAxLjYwMyAxLjYwM2wxLjg0NSA3LjAxelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJub3RpZmljYXRpb25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAxLjk5NmE3LjQ5IDcuNDkgMCAwIDEgNy40OTYgNy4yNWwuMDA0LjI1djQuMDk3bDEuMzggMy4xNTZhMS4yNSAxLjI1IDAgMCAxLTEuMTQ1IDEuNzVMMTUgMTguNTAyYTMgMyAwIDAgMS01Ljk5NS4xNzdMOSAxOC40OTlINC4yNzVhMS4yNSAxLjI1IDAgMCAxLTEuMTQ3LTEuNzQ3TDQuNSAxMy41OTRWOS40OTZjMC00LjE1NSAzLjM1Mi03LjUgNy41LTcuNU0xMy41IDE4LjVsLTMgLjAwMmExLjUgMS41IDAgMCAwIDIuOTkzLjE0NXpNMTIgMy40OTZjLTMuMzIgMC02IDIuNjc0LTYgNnY0LjQxTDQuNjU2IDE3aDE0LjY5N0wxOCAxMy45MDdWOS41MDlsLS4wMDMtLjIyNUE1Ljk5IDUuOTkgMCAwIDAgMTIgMy40OTZcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwibm90aWZpY2F0aW9uX29mZlwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwibTUuMjIgNi4yOC0zLTNhLjc1Ljc1IDAgMCAxIDEuMDYtMS4wNmwxOC41IDE4LjVhLjc1Ljc1IDAgMSAxLTEuMDYgMS4wNmwtMy4yOC0zLjI4LTIuNDQuMDAxYTMgMyAwIDAgMS01Ljk5NS4xNzdMOSAxOC40OTlINC4yNzVhMS4yNSAxLjI1IDAgMCAxLTEuMTQ3LTEuNzQ3TDQuNSAxMy41OTRWOS40OTZjMC0xLjE1Mi4yNTgtMi4yNDIuNzItMy4yMTZNMTUuOTQgMTcgNi4zNjQgNy40MjVBNiA2IDAgMCAwIDYgOS40OTZ2NC40MUw0LjY1NiAxN3ptLTIuNDQgMS41LTMgLjAwMWExLjUgMS41IDAgMCAwIDIuOTkzLjE0NXptNC41LTQuNTkzLjcwOCAxLjYyIDIuMTg4IDIuMTg3YTEuMjUgMS4yNSAwIDAgMC0uMDE2LS45NjVsLTEuMzgtMy4xNTZWOS40OTZsLS4wMDQtLjI1QTcuNDkgNy40OSAwIDAgMCAxMiAxLjk5NSA3LjQ4IDcuNDggMCAwIDAgNy4wNDMgMy44NmwxLjA2NCAxLjA2NEE1Ljk4IDUuOTggMCAwIDEgMTIgMy40OTZhNS45OSA1Ljk5IDAgMCAxIDUuOTk3IDUuNzg4bC4wMDMuMjI1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJvZmZlci1yZXF1ZXN0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAuNzUgMTEuNWEuNzUuNzUgMCAwIDAtLjcyLjU0Yy40MjMuMjc1LjgxMy41OTggMS4xNi45Nmg1LjA2YS43NS43NSAwIDAgMCAwLTEuNXpNNS41IDR2Ny4wNzZhNi41IDYuNSAwIDAgMC0xLjUuNDIyVjRhMiAyIDAgMCAxIDItMmg2LjE3MnEuMDQyLjAwMS4wODIuMDA3LjAzLjAwNS4wNTkuMDA3Yy4yMTUuMDE1LjQyNy4wNTYuNjI0LjEzOC4wNTcuMDI0LjExMi4wNTYuMTY2LjA4N2wuMDUuMDI5LjA0Ny4wMjRhMSAxIDAgMCAxIC4wODEuMDQ0Yy4wNzguMDUzLjE0OC4xMTYuMjE5LjE4bC4wMzYuMDMuMDQ5LjA0IDUuODI5IDUuODI4QTIgMiAwIDAgMSAyMCA5LjgyOFYyMGEyIDIgMCAwIDEtMiAyaC02LjgxYTYuNSA2LjUgMCAwIDAgMS4wNzgtMS41SDE4YS41LjUgMCAwIDAgLjUtLjVWMTBIMTRhMiAyIDAgMCAxLTItMlYzLjVINmEuNS41IDAgMCAwLS41LjVtMTAuNzUgMTVoLTMuNDI0QTYuNSA2LjUgMCAwIDAgMTMgMTcuNWgzLjI1YS43NS43NSAwIDAgMSAwIDEuNW0wLTNoLTMuNDI0YTYuNSA2LjUgMCAwIDAtLjU1OC0xLjVoMy45ODJhLjc1Ljc1IDAgMCAxIDAgMS41TTEzLjUgNC42MjFWOGEuNS41IDAgMCAwIC41LjVoMy4zNzh6TTYuNSAyM2E1LjUgNS41IDAgMSAxIDAtMTEgNS41IDUuNSAwIDAgMSAwIDExbTMtNWEuNS41IDAgMCAwIDAtMUg0LjcwN2wxLjY0Ny0xLjY0NmEuNS41IDAgMCAwLS43MDgtLjcwOGwtMi41IDIuNWEuNS41IDAgMCAwIDAgLjcwOGwyLjUgMi41YS41LjUgMCAwIDAgLjcwOC0uNzA4TDQuNzA3IDE4elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJwYXJlbnRfY2hpbGRcIiB2aWV3Qm94PVwiMCAwIDMyIDMyXCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0yOCAxMmEyIDIgMCAwIDAgMi0yVjRhMiAyIDAgMCAwLTItMkg0YTIgMiAwIDAgMC0yIDJ2NmEyIDIgMCAwIDAgMiAyaDExdjRIOWEyIDIgMCAwIDAtMiAydjRINGEyIDIgMCAwIDAtMiAydjRhMiAyIDAgMCAwIDIgMmg4YTIgMiAwIDAgMCAyLTJ2LTRhMiAyIDAgMCAwLTItMkg5di00aDE0djRoLTNhMiAyIDAgMCAwLTIgMnY0YTIgMiAwIDAgMCAyIDJoOGEyIDIgMCAwIDAgMi0ydi00YTIgMiAwIDAgMC0yLTJoLTN2LTRhMiAyIDAgMCAwLTItMmgtNnYtNFpNMTIgMjhINHYtNGg4Wm0xNiAwaC04di00aDhaTTQgNGgyNHY2SDRaXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInBlb3BsZV9jb21tdW5pdHlcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk03LjUgMy41YTEuNSAxLjUgMCAxIDAgMCAzIDEuNSAxLjUgMCAwIDAgMC0zTTQuNSA1YTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMG0tLjczMiA0QzIuNzkgOSAyIDkuNzkxIDIgMTAuNzY4di4zNmMwIC4yMDcgMCAxLjQwOC43IDIuNTc1LjU0OC45MSAxLjQ3NyAxLjcyNyAyLjk3NSAyLjA5M2EyLjc4IDIuNzggMCAwIDEgMS4wNjItMS4zMzVjLTEuNjAzLS4xNzEtMi4zNjEtLjg4My0yLjc1LTEuNTMtLjQ4NC0uODA2LS40ODctMS42NjQtLjQ4Ny0xLjgwNnYtLjM1N2MwLS4xNDguMTItLjI2OC4yNjgtLjI2OEg4LjAzQTQgNCAwIDAgMSA4LjUzNSA5em0xMS42OTcgMGMuMjYxLjQ1Mi40MzcuOTU5LjUwNCAxLjVoNC4yNjNjLjE0OCAwIC4yNjguMTIuMjY4LjI2OHYuMzU3YzAgLjE0Mi0uMDAzIDEtLjQ4NyAxLjgwNS0uMzg5LjY0OC0xLjE0NyAxLjM2LTIuNzUgMS41MzEuNDguMzIuODU2Ljc4NiAxLjA2MiAxLjMzNSAxLjQ5OC0uMzY2IDIuNDI3LTEuMTgzIDIuOTc0LTIuMDkzLjcwMS0xLjE2Ny43MDEtMi4zNjcuNzAxLTIuNTc2di0uMzZDMjIgOS43OTIgMjEuMjA5IDkgMjAuMjMyIDl6TTE1IDVhMS41IDEuNSAwIDEgMSAzIDAgMS41IDEuNSAwIDAgMS0zIDBtMS41LTNhMyAzIDAgMSAwIDAgNiAzIDMgMCAwIDAgMC02TTEyIDkuNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM005IDExYTMgMyAwIDEgMSA2IDAgMyAzIDAgMCAxLTYgMG0tMi41IDUuNzY4QzYuNSAxNS43OSA3LjI5MSAxNSA4LjI2OCAxNWg3LjQ2NGMuOTc3IDAgMS43NjguNzkxIDEuNzY4IDEuNzY4di4zNmMwIC4yMDcgMCAxLjQwOC0uNyAyLjU3NUMxNi4wNTcgMjAuOTM3IDE0LjYxMyAyMiAxMiAyMnMtNC4wNTgtMS4wNjMtNC44LTIuMjk3Yy0uNy0xLjE2Ny0uNy0yLjM2Ny0uNy0yLjU3NnptMS43NjgtLjI2OGEuMjcuMjcgMCAwIDAtLjI2OC4yNjh2LjM1N2MwIC4xNDIuMDAzIDEgLjQ4NyAxLjgwNS40NDYuNzQzIDEuMzc3IDEuNTcgMy41MTMgMS41N3MzLjA2Ny0uODI3IDMuNTEzLTEuNTdjLjQ4NC0uODA1LjQ4Ny0xLjY2My40ODctMS44MDV2LS4zNTdhLjI3LjI3IDAgMCAwLS4yNjgtLjI2OHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwicGVyc29uX3N3YXBcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNS43NSAxMy45OTdjLjk4MSAwIDEuODE1LjYyOCAyLjEyMyAxLjUwM2gtMi4wNTZsLS4wNjYtLjAwM0g0LjI0OWEuNzUuNzUgMCAwIDAtLjc0OS43NXYuNTc3YzAgLjUzNS4xOTEgMS4wNTQuNTM5IDEuNDYgMS4yNTMgMS40NjkgMy4yMiAyLjIxNCA1Ljk1NyAyLjIxNGguMTY4Yy4wODYuMTgzLjIwMy4zNTIuMzUuNDk4bC45MzQuOTMzYTE1IDE1IDAgMCAxLTEuNDUyLjA3Yy0zLjE0NSAwLTUuNTMxLS45MDYtNy4wOTgtMi43NEEzLjc1IDMuNzUgMCAwIDEgMiAxNi44MjR2LS41NzhhMi4yNSAyLjI1IDAgMCAxIDIuMjQ5LTIuMjQ5ek05Ljk5NyAyLjAwMmE1IDUgMCAxIDEgMCAxMCA1IDUgMCAwIDEgMC0xMG0wIDEuNWEzLjUgMy41IDAgMSAwIDAgNyAzLjUgMy41IDAgMCAwIDAtN200Ljc4NCAxNC4yODJhLjc1Ljc1IDAgMCAwLTEuMDYtMS4wNmwtMi41IDIuNWEuNzUuNzUgMCAwIDAgMCAxLjA2bDIuNSAyLjVhLjc1Ljc1IDAgMCAwIDEuMDYtMS4wNjFsLTEuMjItMS4yMmg2Ljg4bC0xLjIyIDEuMjJhLjc1Ljc1IDAgMCAwIDEuMDYgMS4wNmwyLjUtMi40OThhLjc1Ljc1IDAgMCAwIDAtMS4wNmwtMi41LTIuNTAyYS43NS43NSAwIDEgMC0xLjA2IDEuMDZsMS4yMTggMS4yMmgtNi44Nzd6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInBob25lXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTUuNzUgMkEyLjI1IDIuMjUgMCAwIDEgMTggNC4yNXYxNS41QTIuMjUgMi4yNSAwIDAgMSAxNS43NSAyMmgtNy41QTIuMjUgMi4yNSAwIDAgMSA2IDE5Ljc1VjQuMjVBMi4yNSAyLjI1IDAgMCAxIDguMjUgMnptMCAxLjVoLTcuNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djE1LjVjMCAuNDE0LjMzNi43NS43NS43NWg3LjVhLjc1Ljc1IDAgMCAwIC43NS0uNzVWNC4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NW0tMi41MDEgMTRhLjc1Ljc1IDAgMCAxIC4wMDIgMS41bC0yLjUuMDA0YS43NS43NSAwIDAgMS0uMDAyLTEuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwicXVlc3Rpb25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiA0YTUgNSAwIDAgMC01IDUgMSAxIDAgMCAwIDIgMGMwLTEuNjU4IDEuMzQyLTMgMy0zczMgMS4zNDIgMyAzYzAgLjgxNi0uMTk5IDEuMjk0LS40MzggMS42MjktLjI2Mi4zNjUtLjYyNS42MzgtMS4xMjguOTg1bC0uMTE2LjA3OGMtLjQ0Ny4zMDYtMS4wMjMuNjk5LTEuNDY5IDEuMjQ3LS41MjcuNjQ4LS44NDkgMS40NjctLjg0OSAyLjU2MXYuNWExIDEgMCAxIDAgMiAwdi0uNWMwLS42NTYuMTc4LTEuMDI0LjQtMS4yOTkuMjU3LS4zMTQuNjAzLS41NTIgMS4xMTQtLjkwM2wuMDUzLS4wMzdjLjQ5Ni0uMzQgMS4xMzMtLjc4NiAxLjYyLTEuNDY4QzE2LjcgMTEuMDgxIDE3IDEwLjE4MyAxNyA5YTUgNSAwIDAgMC01LTVtMCAxNy4yNWExLjI1IDEuMjUgMCAxIDAgMC0yLjUgMS4yNSAxLjI1IDAgMCAwIDAgMi41XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInF1ZXN0aW9uX2NpcmNsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJjNS41MjMgMCAxMCA0LjQ3OCAxMCAxMHMtNC40NzcgMTAtMTAgMTBTMiAxNy41MjIgMiAxMiA2LjQ3NyAyIDEyIDJtMCAxLjY2N2MtNC41OTUgMC04LjMzMyAzLjczOC04LjMzMyA4LjMzM1M3LjQwNSAyMC4zMzMgMTIgMjAuMzMzczguMzMzLTMuNzM4IDguMzMzLTguMzMzUzE2LjU5NSAzLjY2NyAxMiAzLjY2N00xMiAxNS41YTEgMSAwIDEgMSAwIDIgMSAxIDAgMCAxIDAtMm0wLTguNzVhMi43NSAyLjc1IDAgMCAxIDIuNzUgMi43NWMwIDEuMDEtLjI5NyAxLjU3NC0xLjA1MSAyLjM1OWwtLjE2OS4xNzFjLS42MjIuNjIyLS43OC44ODYtLjc4IDEuNDdhLjc1Ljc1IDAgMCAxLTEuNSAwYzAtMS4wMS4yOTctMS41NzQgMS4wNTEtMi4zNTlsLjE2OS0uMTcxYy42MjItLjYyMi43OC0uODg2Ljc4LTEuNDdhMS4yNSAxLjI1IDAgMCAwLTIuNDkzLS4xMjhsLS4wMDcuMTI4YS43NS43NSAwIDAgMS0xLjUgMEEyLjc1IDIuNzUgMCAwIDEgMTIgNi43NVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJyYWRpb19idXR0b25cIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMiAyMi4wMDJjNS41MjQgMCAxMC4wMDItNC40NzggMTAuMDAyLTEwLjAwMSAwLTUuNTI0LTQuNDc4LTEwLjAwMi0xMC4wMDItMTAuMDAyUzEuOTk4IDYuNDc3IDEuOTk4IDEyLjAwMWMwIDUuNTIzIDQuNDc4IDEwLjAwMSAxMC4wMDIgMTAuMDAxbTAtMS41QTguNTAyIDguNTAyIDAgMSAxIDEyIDMuNWE4LjUwMiA4LjUwMiAwIDAgMSAwIDE3LjAwM1wiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJyYWRpb19idXR0b25fZmlsbGVkXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIgMS45OTljNS41MjQgMCAxMC4wMDIgNC40NzggMTAuMDAyIDEwLjAwMiAwIDUuNTIzLTQuNDc4IDEwLjAwMS0xMC4wMDIgMTAuMDAxUzEuOTk4IDE3LjUyNCAxLjk5OCAxMi4wMDFDMS45OTggNi40NzcgNi40NzYgMS45OTkgMTIgMS45OTltMCAxLjVhOC41MDIgOC41MDIgMCAxIDAgMCAxNy4wMDNBOC41MDIgOC41MDIgMCAwIDAgMTIgMy41TTExLjk5NiA2YTUuOTk4IDUuOTk4IDAgMSAxIDAgMTEuOTk2IDUuOTk4IDUuOTk4IDAgMCAxIDAtMTEuOTk2XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInJlY29yZF9zdG9wXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTAgM2E3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNG0tOCA3YTggOCAwIDEgMSAxNiAwIDggOCAwIDAgMS0xNiAwbTUtMmExIDEgMCAwIDEgMS0xaDRhMSAxIDAgMCAxIDEgMXY0YTEgMSAwIDAgMS0xIDFIOGExIDEgMCAwIDEtMS0xelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJyb2NrZXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMy4wNTcgNy40M2EyLjUgMi41IDAgMSAxIDMuNTM2IDMuNTM2IDIuNSAyLjUgMCAwIDEtMy41MzYtMy41MzVtMi40NzUgMS4wNjFhMSAxIDAgMSAwLTEuNDE0IDEuNDE1IDEgMSAwIDAgMCAxLjQxNC0xLjQxNW01Ljk3Ny00LjE2OWEyLjc1IDIuNzUgMCAwIDAtMS44MTEtMS44MWwtLjY2My0uMjA2YTYuNzUgNi43NSAwIDAgMC02Ljc3MyAxLjY3NGwtLjk5Ni45OTZhMy41IDMuNSAwIDAgMC00LjU3LjMyN0w1LjQ1NSA2LjU0NWEuNzUuNzUgMCAwIDAgMCAxLjA2bDEuNTkxIDEuNTkyLS4xOC4xOGExLjc1IDEuNzUgMCAwIDAgMCAyLjQ3NGwuNDk2LjQ5Ni0xLjM5Ni43OTZhLjc1Ljc1IDAgMCAwLS4xNTggMS4xODFsMy44ODkgMy44OWEuNzUuNzUgMCAwIDAgMS4xODEtLjE1OGwuNzk4LTEuMzk1LjQ5Ny40OTdhMS43NSAxLjc1IDAgMCAwIDIuNDc1IDBsLjE3Ny0uMTc3IDEuNTkgMS41OWEuNzUuNzUgMCAwIDAgMS4wNiAwbDEuMjQyLTEuMjQzYTMuNSAzLjUgMCAwIDAgLjMyOC00LjU2N2wuOTk4LS45OThhNi43NSA2Ljc1IDAgMCAwIDEuNjczLTYuNzc3em0tMi4yNTYtLjM3OGMuMzkzLjEyMi43MDEuNDMuODIzLjgyM2wuMjA3LjY2NWE1LjI1IDUuMjUgMCAwIDEtMS4zMDIgNS4yN2wtNS4zOTUgNS4zOTVhLjI1LjI1IDAgMCAxLS4zNTMgMGwtNS4zMDctNS4zMDZhLjI1LjI1IDAgMCAxIDAtLjM1NGw1LjM5Ny01LjM5NmE1LjI1IDUuMjUgMCAwIDEgNS4yNjgtMS4zMDJ6bS0xLjI4OSA5Ljg5N2MuNDUzLjc2Ni4zNSAxLjc2OS0uMzA4IDIuNDI3bC0uNzEyLjcxMi0xLjA2LTEuMDZ6TTcuNzU4IDYuMzYzYTIgMiAwIDAgMSAyLjQyOC0uMzA3bC0yLjA4IDIuMDgtMS4wNi0xLjA2em0yLjgxOCA5LjE5OS0uNTE0Ljg5Ny0yLjUtMi41Ljg5OC0uNTEzek02LjY5IDE4LjM5NGEuNzUuNzUgMCAwIDAtMS4wNi0xLjA2bC0yLjQ3NiAyLjQ3NGEuNzUuNzUgMCAwIDAgMS4wNjEgMS4wNjF6TTQuNzQ1IDE1LjM5YS43NS43NSAwIDAgMSAwIDEuMDZsLTEuMDYgMS4wNjFhLjc1Ljc1IDAgMCAxLTEuMDYxLTEuMDZsMS4wNi0xLjA2MWEuNzUuNzUgMCAwIDEgMS4wNjEgMG0zLjg4NyA0Ljk1MmEuNzUuNzUgMCAxIDAtMS4wNi0xLjA2TDYuNTEzIDIwLjM0YS43NS43NSAwIDAgMCAxLjA2IDEuMDZ6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNhdmVcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zIDUuNzVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2g5Ljk2NWEzLjI1IDMuMjUgMCAwIDEgMi4yOTguOTUybDIuMDM1IDIuMDM1Yy42MS42MS45NTIgMS40MzcuOTUyIDIuMjk5djkuOTY0QTIuNzUgMi43NSAwIDAgMSAxOC4yNSAyMUg1Ljc1QTIuNzUgMi43NSAwIDAgMSAzIDE4LjI1ek01Ljc1IDQuNWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjV2MTIuNWMwIC42OS41NiAxLjI1IDEuMjUgMS4yNUg2di01LjI1QTIuMjUgMi4yNSAwIDAgMSA4LjI1IDEyaDcuNUEyLjI1IDIuMjUgMCAwIDEgMTggMTQuMjV2NS4yNWguMjVjLjY5IDAgMS4yNS0uNTYgMS4yNS0xLjI1VjguMjg2YzAtLjQ2NS0uMTg0LS45MS0uNTEzLTEuMjM4bC0yLjAzNS0yLjAzNWExLjc1IDEuNzUgMCAwIDAtLjk1Mi0uNDlWNy4yNWEyLjI1IDIuMjUgMCAwIDEtMi4yNSAyLjI1aC00LjVBMi4yNSAyLjI1IDAgMCAxIDcgNy4yNVY0LjV6bTEwLjc1IDE1di01LjI1YS43NS43NSAwIDAgMC0uNzUtLjc1aC03LjVhLjc1Ljc1IDAgMCAwLS43NS43NXY1LjI1em0tOC0xNXYyLjc1YzAgLjQxNC4zMzYuNzUuNzUuNzVoNC41YS43NS43NSAwIDAgMCAuNzUtLjc1VjQuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic2F2ZV9hbGxcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk01Ljc1IDE4QTIuNzUgMi43NSAwIDAgMSAzIDE1LjI1di05LjVBMi43NSAyLjc1IDAgMCAxIDUuNzUgM2g2Ljk2NGEzLjI1IDMuMjUgMCAwIDEgMi4yOTkuOTUybDIuMDM1IDIuMDM1Yy42MS42MS45NTIgMS40MzcuOTUyIDIuMjk5djYuOTY0QTIuNzUgMi43NSAwIDAgMSAxNS4yNSAxOHpNNC41IDUuNzV2OS41YzAgLjY5LjU2IDEuMjUgMS4yNSAxLjI1SDZ2LTMuMjVBMi4yNSAyLjI1IDAgMCAxIDguMjUgMTFoNC41QTIuMjUgMi4yNSAwIDAgMSAxNSAxMy4yNXYzLjI1aC4yNWMuNjkgMCAxLjI1LS41NiAxLjI1LTEuMjVWOC4yODZjMC0uNDY1LS4xODQtLjkxLS41MTMtMS4yMzhMMTQgNS4wNjFWNi4yNWEyLjI1IDIuMjUgMCAwIDEtMi4yNSAyLjI1aC0yLjVBMi4yNSAyLjI1IDAgMCAxIDcgNi4yNVY0LjVINS43NWMtLjY5IDAtMS4yNS41Ni0xLjI1IDEuMjVtOSAxMC43NXYtMy4yNWEuNzUuNzUgMCAwIDAtLjc1LS43NWgtNC41YS43NS43NSAwIDAgMC0uNzUuNzV2My4yNXptLTUtMTAuMjVjMCAuNDE0LjMzNi43NS43NS43NWgyLjVhLjc1Ljc1IDAgMCAwIC43NS0uNzVWNC41aC00ek0xMC43NSAyMWE0Ljc0IDQuNzQgMCAwIDEtMy40NjQtMS41aDguOTY0YTMuMjUgMy4yNSAwIDAgMCAzLjI1LTMuMjVWOC40NGwuNTQ4LjU0OGMuNjEuNjA5Ljk1MiAxLjQzNi45NTIgMi4yOTh2NC45NjRBNC43NSA0Ljc1IDAgMCAxIDE2LjI1IDIxelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzY2FuX3RleHRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk01LjI1IDMuNUExLjc1IDEuNzUgMCAwIDAgMy41IDUuMjV2M2EuNzUuNzUgMCAwIDEtMS41IDB2LTNBMy4yNSAzLjI1IDAgMCAxIDUuMjUgMmgzYS43NS43NSAwIDAgMSAwIDEuNXptMCAxN2ExLjc1IDEuNzUgMCAwIDEtMS43NS0xLjc1di0zYS43NS43NSAwIDAgMC0xLjUgMHYzQTMuMjUgMy4yNSAwIDAgMCA1LjI1IDIyaDNhLjc1Ljc1IDAgMCAwIDAtMS41ek0yMC41IDUuMjVhMS43NSAxLjc1IDAgMCAwLTEuNzUtMS43NWgtM2EuNzUuNzUgMCAwIDEgMC0xLjVoM0EzLjI1IDMuMjUgMCAwIDEgMjIgNS4yNXYzYS43NS43NSAwIDAgMS0xLjUgMHpNMTguNzUgMjAuNWExLjc1IDEuNzUgMCAwIDAgMS43NS0xLjc1di0zYS43NS43NSAwIDAgMSAxLjUgMHYzQTMuMjUgMy4yNSAwIDAgMSAxOC43NSAyMmgtM2EuNzUuNzUgMCAwIDEgMC0xLjV6TTcuNzUgN2EuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNXpNNyAxMS43NWEuNzUuNzUgMCAwIDEgLjc1LS43NWg4LjVhLjc1Ljc1IDAgMCAxIDAgMS41aC04LjVhLjc1Ljc1IDAgMCAxLS43NS0uNzVNNy43NSAxNWEuNzUuNzUgMCAwIDAgMCAxLjVoNC41YS43NS43NSAwIDAgMCAwLTEuNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic2NyZWVuXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNC43NSA0QTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2OC41QTIuNzUgMi43NSAwIDAgMCA0Ljc1IDE4aDE0LjVBMi43NSAyLjc1IDAgMCAwIDIyIDE1LjI1di04LjVBMi43NSAyLjc1IDAgMCAwIDE5LjI1IDR6TTMuNSA2Ljc1YzAtLjY5LjU2LTEuMjUgMS4yNS0xLjI1aDE0LjVjLjY5IDAgMS4yNS41NiAxLjI1IDEuMjV2OC41YzAgLjY5LS41NiAxLjI1LTEuMjUgMS4yNUg0Ljc1Yy0uNjkgMC0xLjI1LS41Ni0xLjI1LTEuMjV6TTUuNzUgMTkuNWEuNzUuNzUgMCAwIDAgMCAxLjVoMTIuNWEuNzUuNzUgMCAwIDAgMC0xLjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNlYXJjaFwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQuNSAxMGE1LjUgNS41IDAgMSAxIDExIDAgNS41IDUuNSAwIDAgMS0xMSAwTTEwIDNhNyA3IDAgMSAwIDQuMzkxIDEyLjQ1Mmw1LjMyOSA1LjMyOGEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC01LjMyOC01LjMyOUE3IDcgMCAwIDAgMTAgM1wiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzZW5kXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNNS42OTQgMTIgMi4yOTkgMy4yNzJhLjc1Ljc1IDAgMCAxIC45NDItLjk4MmwuMDkzLjAzOSAxOCA5YS43NS43NSAwIDAgMSAuMDk3IDEuMjg0bC0uMDk3LjA1OC0xOCA5Yy0uNTgzLjI5MS0xLjIxNy0uMjQ1LTEuMDY1LS44NDhsLjAzLS4wOTV6TDIuMjk5IDMuMjcyek00LjQwMiA0LjU0bDIuNjEgNi43MWg2LjYyN2EuNzUuNzUgMCAwIDEgLjc0My42NDhsLjAwNy4xMDJhLjc1Ljc1IDAgMCAxLS42NDkuNzQzbC0uMTAxLjAwN0g3LjAxbC0yLjYwOSA2LjcxTDE5LjMyMiAxMnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic2V0dGluZ3NcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMi4wMTIgMi4yNWMuNzM0LjAwOCAxLjQ2NS4wOTMgMi4xODIuMjUzYS43NS43NSAwIDAgMSAuNTgyLjY0OWwuMTcgMS41MjdhMS4zODQgMS4zODQgMCAwIDAgMS45MjcgMS4xMTZsMS40LS42MTVhLjc1Ljc1IDAgMCAxIC44NS4xNzQgOS44IDkuOCAwIDAgMSAyLjIwNSAzLjc5Mi43NS43NSAwIDAgMS0uMjcyLjgyNWwtMS4yNDEuOTE2YTEuMzggMS4zOCAwIDAgMCAwIDIuMjI2bDEuMjQzLjkxNWEuNzUuNzUgMCAwIDEgLjI3Mi44MjYgOS44IDkuOCAwIDAgMS0yLjIwNCAzLjc5Mi43NS43NSAwIDAgMS0uODQ5LjE3NWwtMS40MDYtLjYxN2ExLjM4IDEuMzggMCAwIDAtMS45MjYgMS4xMTRsLS4xNyAxLjUyNmEuNzUuNzUgMCAwIDEtLjU3MS42NDcgOS41IDkuNSAwIDAgMS00LjQwNiAwIC43NS43NSAwIDAgMS0uNTcyLS42NDdsLS4xNjktMS41MjRhMS4zODIgMS4zODIgMCAwIDAtMS45MjUtMS4xMWwtMS40MDYuNjE2YS43NS43NSAwIDAgMS0uODUtLjE3NSA5LjggOS44IDAgMCAxLTIuMjAzLTMuNzk2Ljc1Ljc1IDAgMCAxIC4yNzItLjgyNmwxLjI0My0uOTE2YTEuMzggMS4zOCAwIDAgMCAwLTIuMjI2bC0xLjI0My0uOTE0YS43NS43NSAwIDAgMS0uMjcyLS44MjYgOS44IDkuOCAwIDAgMSAyLjIwNS0zLjc5Mi43NS43NSAwIDAgMSAuODUtLjE3NGwxLjQuNjE1YTEuMzg3IDEuMzg3IDAgMCAwIDEuOTMtMS4xMThsLjE3LTEuNTI2YS43NS43NSAwIDAgMSAuNTgzLS42NXExLjA3NC0uMjM4IDIuMjAxLS4yNTJtMCAxLjVhOSA5IDAgMCAwLTEuMzU0LjExN2wtLjExLjk3N0EyLjg4NiAyLjg4NiAwIDAgMSA2LjUyNiA3LjE3bC0uODk5LS4zOTRBOC4zIDguMyAwIDAgMCA0LjI4IDkuMDkybC43OTcuNTg3YTIuODggMi44OCAwIDAgMSAuMDAxIDQuNjQzbC0uNzk5LjU4OGMuMzIuODQyLjc3NiAxLjYyNiAxLjM0OCAyLjMyMmwuOTA1LS4zOTdhMi44ODIgMi44ODIgMCAwIDEgNC4wMTcgMi4zMThsLjEwOS45ODRjLjg5LjE1IDEuNzk5LjE1IDIuNjg4IDBsLjExLS45ODRhMi44OCAyLjg4IDAgMCAxIDQuMDE4LTIuMzIybC45MDQuMzk2YTguMyA4LjMgMCAwIDAgMS4zNDgtMi4zMThsLS43OTgtLjU4OGEyLjg4IDIuODggMCAwIDEtLjAwMS00LjY0M2wuNzk3LS41ODdhOC4zIDguMyAwIDAgMC0xLjM0OC0yLjMxN2wtLjg5Ny4zOTNhMi44ODQgMi44ODQgMCAwIDEtNC4wMjMtMi4zMjRsLS4xMDktLjk3NmE5IDkgMCAwIDAtMS4zMzQtLjExN00xMiA4LjI1YTMuNzUgMy43NSAwIDEgMSAwIDcuNSAzLjc1IDMuNzUgMCAwIDEgMC03LjVtMCAxLjVhMi4yNSAyLjI1IDAgMSAwIDAgNC41IDIuMjUgMi4yNSAwIDAgMCAwLTQuNVwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzaGllbGRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0zIDUuNzVBLjc1Ljc1IDAgMCAxIDMuNzUgNWMyLjY2MyAwIDUuMjU4LS45NDMgNy44LTIuODVhLjc1Ljc1IDAgMCAxIC45IDBDMTQuOTkyIDQuMDU3IDE3LjU4NyA1IDIwLjI1IDVhLjc1Ljc1IDAgMCAxIC43NS43NVYxMWMwIDUuMDAxLTIuOTU4IDguNjc2LTguNzI1IDEwLjk0OGEuNzUuNzUgMCAwIDEtLjU1IDBDNS45NTggMTkuNjc2IDMgMTYgMyAxMXptMS41LjcyOFYxMWMwIDQuMjU2IDIuNDUzIDcuMzc5IDcuNSA5LjQ0MiA1LjA0Ny0yLjA2MyA3LjUtNS4xODYgNy41LTkuNDQyVjYuNDc4Yy0yLjU3Ny0uMTUyLTUuMDgtMS4wOS03LjUtMi44LTIuNDIgMS43MS00LjkyMyAyLjY0OC03LjUgMi44XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNoaWVsZF9kaXNtaXNzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIuNDUgMi4xNUMxNC45OTIgNC4wNTcgMTcuNTg3IDUgMjAuMjUgNWEuNzUuNzUgMCAwIDEgLjc1Ljc1VjExYzAgNS4wMDEtMi45NTggOC42NzYtOC43MjUgMTAuOTQ4YS43NS43NSAwIDAgMS0uNTUgMEM1Ljk1OCAxOS42NzYgMyAxNiAzIDExVjUuNzVBLjc1Ljc1IDAgMCAxIDMuNzUgNWMyLjY2MyAwIDUuMjU4LS45NDMgNy44LTIuODVhLjc1Ljc1IDAgMCAxIC45IDBNMTIgMy42NzhjLTIuNDIgMS43MS00LjkyMyAyLjY0OC03LjUgMi44VjExYzAgNC4yNTYgMi40NTMgNy4zNzkgNy41IDkuNDQyIDUuMDQ3LTIuMDYzIDcuNS01LjE4NiA3LjUtOS40NDJWNi40NzhjLTIuNTc3LS4xNTItNS4wOC0xLjA5LTcuNS0yLjhNOS4yOCA4LjIyMmwyLjcyNCAyLjcyMyAyLjcyNS0yLjcyM2EuNzUuNzUgMCAwIDEgLjk3NS0uMDczbC4wODQuMDczYS43NS43NSAwIDAgMSAuMDczLjk3NWwtLjA3My4wODQtMi43MjQgMi43MjMgMi43MjQgMi43MjVhLjc0OS43NDkgMCAxIDEtMS4wNiAxLjA1OWwtMi43MjQtMi43MjQtMi43MjMgMi43MjRhLjc1Ljc1IDAgMCAxLS45NzUuMDczbC0uMDg0LS4wNzNhLjc1Ljc1IDAgMCAxLS4wNzMtLjk3NWwuMDczLS4wODQgMi43MjMtMi43MjUtMi43MjMtMi43MjNBLjc1Ljc1IDAgMCAxIDkuMjggOC4yMlwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzaGllbGRfbG9ja1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTMgNS43NUEuNzUuNzUgMCAwIDEgMy43NSA1YzIuNjYzIDAgNS4yNTgtLjk0MyA3LjgtMi44NWEuNzUuNzUgMCAwIDEgLjkgMEMxNC45OTIgNC4wNTcgMTcuNTg3IDUgMjAuMjUgNWEuNzUuNzUgMCAwIDEgLjc1Ljc1VjExcTAgLjI3MS0uMDEyLjUzOWEzLjUgMy41IDAgMCAwLTEuNDg4LS44OTRWNi40NzhjLTIuNTc3LS4xNTItNS4wOC0xLjA5LTcuNS0yLjgtMi40MiAxLjcxLTQuOTIzIDIuNjQ4LTcuNSAyLjhWMTFjMCA0LjI1NiAyLjQ1MyA3LjM3OSA3LjUgOS40NDJhMjEgMjEgMCAwIDAgMS0uNDM5VjIxLjVxMCAuMDc1LjAwNC4xNDYtLjM1Ni4xNTUtLjczLjMwMmEuNzUuNzUgMCAwIDEtLjU0OSAwQzUuOTU4IDE5LjY3NiAzIDE2IDMgMTF6TTE2IDE1di0xYTIuNSAyLjUgMCAwIDEgNSAwdjFoLjVhMS41IDEuNSAwIDAgMSAxLjUgMS41djVhMS41IDEuNSAwIDAgMS0xLjUgMS41aC02YTEuNSAxLjUgMCAwIDEtMS41LTEuNXYtNWExLjUgMS41IDAgMCAxIDEuNS0xLjV6bTEuNS0xdjFoMnYtMWExIDEgMCAxIDAtMiAwbTIgNWExIDEgMCAxIDAtMiAwIDEgMSAwIDAgMCAyIDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic2hpZWxkX3BlcnNvblwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEwIDkuNWEyIDIgMCAxIDAgMC00IDIgMiAwIDAgMCAwIDRtMCA1YzIuNSAwIDMuNS0xLjI1NSAzLjUtMi41YTEuNSAxLjUgMCAwIDAtMS41LTEuNUg4QTEuNSAxLjUgMCAwIDAgNi41IDEyYzAgMS4yNSAxIDIuNSAzLjUgMi41bS4yNzctMTIuNDE2YS41LjUgMCAwIDAtLjU1NCAwIDE1LjA1IDE1LjA1IDAgMCAxLTYuMjk0IDIuNDIxQS41LjUgMCAwIDAgMyA1djQuNWMwIDMuODkxIDIuMzA3IDYuNzMgNi44MiA4LjQ2N2EuNS41IDAgMCAwIC4zNiAwQzE0LjY5MyAxNi4yMyAxNyAxMy4zOSAxNyA5LjVWNWEuNS41IDAgMCAwLS40My0uNDk1IDE1LjA1IDE1LjA1IDAgMCAxLTYuMjkzLTIuNDIxTTQgNS40MjhhMTYgMTYgMCAwIDAgNS42LTIuMDgybC40LS4yNDkuNC4yNDlBMTYgMTYgMCAwIDAgMTYgNS40MjhWOS41YzAgMy4zOTItMS45NjggNS44NjMtNiA3LjQ2My00LjAzMi0xLjYtNi00LjA3MS02LTcuNDYzelwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzaGlmdHNfYWN0aXZpdHlcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMS4zMTQgMy41MjdhLjc1Ljc1IDAgMSAwLS4xMi0xLjQ5NUM2LjA0OSAyLjQ0MiAyIDYuNzQ4IDIgMTJjMCA1LjUyMyA0LjQ3NyAxMCAxMCAxMCA1LjI0OSAwIDkuNTUzLTQuMDQ0IDkuOTY3LTkuMTg2YS43NS43NSAwIDEgMC0xLjQ5NS0uMTIgOC41IDguNSAwIDEgMS05LjE1OC05LjE2N202LjM4MyAxLjE0N2EuNzUuNzUgMCAwIDEgMS4wNi0uMDQ2cS4zMjIuMjk0LjYxNi42MTdhLjc1Ljc1IDAgMCAxLTEuMTA1IDEuMDEzIDkgOSAwIDAgMC0uNTI1LS41MjUuNzUuNzUgMCAwIDEtLjA0Ni0xLjA2TTExLjI1IDZhLjc1Ljc1IDAgMCAxIC43NDMuNjQ4TDEyIDYuNzVWMTJoMy4yNWEuNzUuNzUgMCAwIDEgLjEwMiAxLjQ5M2wtLjEwMi4wMDdoLTRhLjc1Ljc1IDAgMCAxLS43NDMtLjY0OWwtLjAwNy0uMTAxdi02YS43NS43NSAwIDAgMSAuNzUtLjc1bTIuNTMxLTMuMTFhLjc1Ljc1IDAgMCAxIC45MjUtLjUyIDEwIDEwIDAgMCAxIDEuMDc0LjM3Ljc1Ljc1IDAgMSAxLS41NjcgMS4zODhxLS40NDQtLjE4Mi0uOTEyLS4zMTNhLjc1Ljc1IDAgMCAxLS41Mi0uOTI1bTcuNDc4IDUuMzI1YS43NS43NSAwIDEgMC0xLjM4OS41NjggOCA4IDAgMCAxIC4zMTUuOTE1Ljc1Ljc1IDAgMSAwIDEuNDQ0LS40MDUgMTAgMTAgMCAwIDAtLjM3LTEuMDc4XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNoaWZ0c19jaGVja21hcmtcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk00LjUgNi4yNWMwLS45NjYuNzg0LTEuNzUgMS43NS0xLjc1aDExLjVjLjk2NiAwIDEuNzUuNzg0IDEuNzUgMS43NXYxMS41YTEuNzUgMS43NSAwIDAgMS0xLjc1IDEuNzVoLTUuMDYzYTYuNSA2LjUgMCAwIDEtLjcwOSAxLjVoNS43NzJBMy4yNSAzLjI1IDAgMCAwIDIxIDE3Ljc1VjYuMjVBMy4yNSAzLjI1IDAgMCAwIDE3Ljc1IDNINi4yNUEzLjI1IDMuMjUgMCAwIDAgMyA2LjI1djUuNzcyYTYuNSA2LjUgMCAwIDEgMS41LS43MDl6bTggLjVhLjc1Ljc1IDAgMCAwLTEuNSAwdjZjMCAuNDE0LjMzNi43NS43NS43NWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDEyLjV6TTEyIDE3LjVhNS41IDUuNSAwIDEgMS0xMSAwIDUuNSA1LjUgMCAwIDEgMTEgMG0tMy4xNDYtMS44NTRhLjUuNSAwIDAgMC0uNzA4IDBMNS41IDE4LjI5M2wtLjg5Ni0uODk3YS41LjUgMCAwIDAtLjcwOC43MDhsMS4yNSAxLjI1YS41LjUgMCAwIDAgLjcwOCAwbDMtM2EuNS41IDAgMCAwIDAtLjcwOFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJzaGlmdHNfb3BlblwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTQuNSA2LjI1YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVoM2EuNzUuNzUgMCAwIDAgMC0xLjVoLTNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QTMuMjUgMy4yNSAwIDAgMCA2LjI1IDIxaDNhLjc1Ljc1IDAgMCAwIDAtMS41aC0zYTEuNzUgMS43NSAwIDAgMS0xLjc1LTEuNzV6TTE0Ljc0NyAzYS43NS43NSAwIDAgMCAwIDEuNWgzLjAwM2MuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djExLjVhMS43NSAxLjc1IDAgMCAxLTEuNzUgMS43NWgtMy4wMDNhLjc1Ljc1IDAgMCAwIDAgMS41aDMuMDAzQTMuMjUgMy4yNSAwIDAgMCAyMSAxNy43NVY2LjI1QTMuMjUgMy4yNSAwIDAgMCAxNy43NSAzek0xMi41IDYuNzVhLjc1Ljc1IDAgMCAwLTEuNSAwdjZjMCAuNDE0LjMzNi43NS43NS43NWg0LjVhLjc1Ljc1IDAgMCAwIDAtMS41SDEyLjV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInNsaWRlX3RleHRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk02Ljc1IDhhLjc1Ljc1IDAgMCAwIDAgMS41aDQuNWEuNzUuNzUgMCAwIDAgMC0xLjV6TTYgMTEuNzVhLjc1Ljc1IDAgMCAxIC43NS0uNzVoOC41YS43NS43NSAwIDAgMSAwIDEuNWgtOC41YS43NS43NSAwIDAgMS0uNzUtLjc1TTYuNzUgMTRhLjc1Ljc1IDAgMCAwIDAgMS41aDYuNWEuNzUuNzUgMCAwIDAgMC0xLjV6bS0yLTEwQTIuNzUgMi43NSAwIDAgMCAyIDYuNzV2MTAuNUEyLjc1IDIuNzUgMCAwIDAgNC43NSAyMGgxNC41QTIuNzUgMi43NSAwIDAgMCAyMiAxNy4yNVY2Ljc1QTIuNzUgMi43NSAwIDAgMCAxOS4yNSA0ek0zLjUgNi43NWMwLS42OS41Ni0xLjI1IDEuMjUtMS4yNWgxNC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djEwLjVjMCAuNjktLjU2IDEuMjUtMS4yNSAxLjI1SDQuNzVjLS42OSAwLTEuMjUtLjU2LTEuMjUtMS4yNXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3F1YWxsc1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTguMDc3IDYuODg0QTQuMDcgNC4wNyAwIDAgMSAxMS45NzMgNEMxNC4xNzQgNCAxNiA1Ljc4MyAxNiA4YTQgNCAwIDAgMS00IDRIMi43NWEuNzUuNzUgMCAwIDEgMC0xLjVIMTJBMi41IDIuNSAwIDAgMCAxNC41IDhjMC0xLjM3My0xLjEzOC0yLjUtMi41MjctMi41LTEuMTMgMC0yLjEzOC43NDMtMi40NiAxLjgxNWwtLjA0NS4xNWEuNzUuNzUgMCAxIDEtMS40MzYtLjQzem04LjIxMiA1LjEyOUEyLjk0IDIuOTQgMCAwIDEgMTkuMDcgMTAgMi45MyAyLjkzIDAgMCAxIDIyIDEyLjkzVjEzYTMgMyAwIDAgMS0zIDNoLTEuM2EyLjc1IDIuNzUgMCAwIDEtMi40NSA0aC0uMTM1YTIuNTYgMi41NiAwIDAgMS0yLjI4NS0xLjQxLjc1Ljc1IDAgMCAxIDEuMzQtLjY3M2MuMTguMzU3LjU0NS41ODMuOTQ1LjU4M2guMTM1YTEuMjUgMS4yNSAwIDEgMCAwLTIuNUgyLjc1YS43NS43NSAwIDAgMSAwLTEuNUgxOWExLjUgMS41IDAgMCAwIDEuNS0xLjV2LS4wN2MwLS43OS0uNjQtMS40My0xLjQzLTEuNDMtLjYxIDAtMS4xNjMuNC0xLjM1OC45ODdhLjc1Ljc1IDAgMCAxLTEuNDI0LS40NzRcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3RhclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEwLjc4OCAzLjEwMmMuNDk1LTEuMDAzIDEuOTI2LTEuMDAzIDIuNDIxIDBsMi4zNTggNC43NzggNS4yNzMuNzY2YzEuMTA3LjE2IDEuNTQ5IDEuNTIyLjc0OCAyLjMwM2wtMy44MTYgMy43MTkuOTAxIDUuMjVjLjE5IDEuMTA0LS45NjggMS45NDUtMS45NTkgMS40MjRsLTQuNzE2LTIuNDgtNC43MTUgMi40OGMtLjk5LjUyLTIuMTQ4LS4zMi0xLjk2LTEuNDIzbC45MDEtNS4yNTEtMy44MTUtMy43MmMtLjgwMS0uNzgtLjM1OS0yLjE0MS43NDgtMi4zMDJMOC40MyA3Ljg4em0xLjIxLjkzN0w5Ljc0IDguNjE0YTEuMzUgMS4zNSAwIDAgMS0xLjAxNi43MzlsLTUuMDUuNzM0IDMuNjU0IDMuNTYyYy4zMTguMzEuNDYzLjc1Ny4zODggMS4xOTVsLS44NjIgNS4wMjkgNC41MTYtMi4zNzVhMS4zNSAxLjM1IDAgMCAxIDEuMjU3IDBsNC41MTYgMi4zNzUtLjg2Mi01LjAzYTEuMzUgMS4zNSAwIDAgMSAuMzg4LTEuMTk0bDMuNjU0LTMuNTYyLTUuMDUtLjczNGExLjM1IDEuMzUgMCAwIDEtMS4wMTYtLjczOXpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3Rhcl9maWxsZWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMC43ODggMy4xMDJjLjQ5NS0xLjAwMyAxLjkyNi0xLjAwMyAyLjQyMSAwbDIuMzU4IDQuNzc4IDUuMjczLjc2NmMxLjEwNy4xNiAxLjU0OSAxLjUyMi43NDggMi4zMDNsLTMuODE2IDMuNzE5LjkwMSA1LjI1Yy4xOSAxLjEwNC0uOTY4IDEuOTQ1LTEuOTU5IDEuNDI0bC00LjcxNi0yLjQ4LTQuNzE1IDIuNDhjLS45OS41Mi0yLjE0OC0uMzItMS45Ni0xLjQyM2wuOTAxLTUuMjUxLTMuODE1LTMuNzJjLS44MDEtLjc4LS4zNTktMi4xNDEuNzQ4LTIuMzAyTDguNDMgNy44OHpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3RhdHVzXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiIzIxMjEyMVwiXG4gICAgICBmaWxsLXJ1bGU9XCJub256ZXJvXCJcbiAgICAgIGQ9XCJNMTkuNzUgNEEyLjI1IDIuMjUgMCAwIDEgMjIgNi4yNXYxMS41QTIuMjUgMi4yNSAwIDAgMSAxOS43NSAyMEg0LjI1QTIuMjUgMi4yNSAwIDAgMSAyIDE3Ljc1VjYuMjVBMi4yNSAyLjI1IDAgMCAxIDQuMjUgNFptMCAxLjVINC4yNWEuNzUuNzUgMCAwIDAtLjc1Ljc1djExLjVjMCAuNDE0LjMzNi43NS43NS43NWgxNS41YS43NS43NSAwIDAgMCAuNzUtLjc1VjYuMjVhLjc1Ljc1IDAgMCAwLS43NS0uNzVcIlxuICAgIC8+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCIjMjEyMTIxXCJcbiAgICAgIGQ9XCJNOS40MiA4LjQxNWEuNzUuNzUgMCAwIDAtMS4zNDguMDE0TDYuMzgyIDEySDIuNzVhLjc1Ljc1IDAgMCAwIDAgMS41aDQuMTA3YS43NS43NSAwIDAgMCAuNjc4LS40M2wxLjIzNC0yLjYwNiAyLjU2IDUuMTIxYS43NS43NSAwIDAgMCAxLjI3OS4xMDRsMi42OTgtMy43MzYgMS4xMyAxLjI5QS43NS43NSAwIDAgMCAxNyAxMy41aDQuMjVhLjc1Ljc1IDAgMCAwIDAtMS41aC0zLjkxbC0xLjUyNi0xLjc0NGEuNzUuNzUgMCAwIDAtMS4xNzIuMDU1bC0yLjUyNSAzLjQ5NnpcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwic3VidHJhY3Rfc3F1YXJlXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTYuMjUgMTEuMjVoLTguNWEuNzUuNzUgMCAwIDAgMCAxLjVoOC41YS43NS43NSAwIDAgMCAwLTEuNU02LjI1IDNBMy4yNSAzLjI1IDAgMCAwIDMgNi4yNXYxMS41QTMuMjUgMy4yNSAwIDAgMCA2LjI1IDIxaDExLjVBMy4yNSAzLjI1IDAgMCAwIDIxIDE3Ljc1VjYuMjVBMy4yNSAzLjI1IDAgMCAwIDE3Ljc1IDN6TTQuNSA2LjI1YzAtLjk2Ni43ODQtMS43NSAxLjc1LTEuNzVoMTEuNWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djExLjVhMS43NSAxLjc1IDAgMCAxLTEuNzUgMS43NUg2LjI1YTEuNzUgMS43NSAwIDAgMS0xLjc1LTEuNzV6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInN1blwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDJhLjc1Ljc1IDAgMCAxIC43NS43NXYxLjVhLjc1Ljc1IDAgMCAxLTEuNSAwdi0xLjVBLjc1Ljc1IDAgMCAxIDEyIDJtMCAxNWE1IDUgMCAxIDAgMC0xMCA1IDUgMCAwIDAgMCAxMG0wLTEuNWEzLjUgMy41IDAgMSAxIDAtNyAzLjUgMy41IDAgMCAxIDAgN205LjI1LTIuNzVhLjc1Ljc1IDAgMCAwIDAtMS41aC0xLjVhLjc1Ljc1IDAgMCAwIDAgMS41ek0xMiAxOWEuNzUuNzUgMCAwIDEgLjc1Ljc1djEuNWEuNzUuNzUgMCAwIDEtMS41IDB2LTEuNUEuNzUuNzUgMCAwIDEgMTIgMTltLTcuNzUtNi4yNWEuNzUuNzUgMCAwIDAgMC0xLjVoLTEuNWEuNzUuNzUgMCAwIDAgMCAxLjV6bS0uMDMtOC41M2EuNzUuNzUgMCAwIDEgMS4wNiAwbDEuNSAxLjVhLjc1Ljc1IDAgMCAxLTEuMDYgMS4wNmwtMS41LTEuNWEuNzUuNzUgMCAwIDEgMC0xLjA2bTEuMDYgMTUuNTZhLjc1Ljc1IDAgMSAxLTEuMDYtMS4wNmwxLjUtMS41YS43NS43NSAwIDEgMSAxLjA2IDEuMDZ6bTE0LjUtMTUuNTZhLjc1Ljc1IDAgMCAwLTEuMDYgMGwtMS41IDEuNWEuNzUuNzUgMCAwIDAgMS4wNiAxLjA2bDEuNS0xLjVhLjc1Ljc1IDAgMCAwIDAtMS4wNm0tMS4wNiAxNS41NmEuNzUuNzUgMCAxIDAgMS4wNi0xLjA2bC0xLjUtMS41YS43NS43NSAwIDEgMC0xLjA2IDEuMDZ6XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInN5bmNcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xNi4yNSA1LjE4YS43NS43NSAwIDAgMCAuMTQyIDEuMDUxIDcuMjUxIDcuMjUxIDAgMCAxLTMuNTk5IDEyLjk3NmwuNjc3LS42NzdhLjc1Ljc1IDAgMCAwLS45NzctMS4xMzNsLS4wODQuMDczLTIgMmEuNzUuNzUgMCAwIDAtLjA3My45NzZsLjA3My4wODQgMiAyYS43NS43NSAwIDAgMCAxLjEzMy0uOTc2bC0uMDcyLS4wODQtLjc1LS43NWE4Ljc1IDguNzUgMCAwIDAgNC41ODEtMTUuNjguNzUuNzUgMCAwIDAtMS4wNTEuMTQxbS01LjcyLTMuNzFhLjc1Ljc1IDAgMCAwIDAgMS4wNmwuNzUuNzVhOC43NSA4Ljc1IDAgMCAwLTQuODUgMTUuNDcuNzUuNzUgMCAxIDAgLjk1Ni0xLjE1NyA3LjI1MSA3LjI1MSAwIDAgMSAzLjgyLTEyLjhsLS42NzYuNjc3YS43NS43NSAwIDEgMCAxLjA2MSAxLjA2bDItMmEuNzUuNzUgMCAwIDAgMC0xLjA2bC0yLTJhLjc1Ljc1IDAgMCAwLTEuMDYgMFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJ0YXNrc1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE5Ljk5NSA0LjA5N0EyLjI1IDIuMjUgMCAwIDAgMTcuNzUgMkg2LjI1bC0uMTU0LjAwNUEyLjI1IDIuMjUgMCAwIDAgNCA0LjI1MXYxNS40OThsLjAwNS4xNTRBMi4yNSAyLjI1IDAgMCAwIDYuMjUgMjJoNy41NjhsLTEuNS0xLjVINi4yNWwtLjEwMi0uMDA3YS43NS43NSAwIDAgMS0uNjQ4LS43NDNWNC4yNTFsLjAwNy0uMTAyYS43NS43NSAwIDAgMSAuNzQzLS42NDhoMTEuNWwuMTAyLjAwN2EuNzUuNzUgMCAwIDEgLjY0OC43NDN2MTEuNTY3bDEuMTU5LTEuMTU5cS4xNi0uMTYuMzQtLjI4VjQuMjV6bS0zLjcwNyAxNy45MDJoLS4wNzZhLjc1Ljc1IDAgMCAxLS40OTMtLjIxOWwtMi41LTIuNTAyYS43NS43NSAwIDAgMSAxLjA2Mi0xLjA2bDEuOTY5IDEuOTcxIDQuNDctNC40N2EuNzUuNzUgMCAxIDEgMS4wNiAxLjA2MWwtNSA1YS43NS43NSAwIDAgMS0uNDkyLjIxOU0xMy44NCAxNi41YTIgMiAwIDAgMC0uMTgyIDBoLTIuNDEzYS43NS43NSAwIDAgMSAwLTEuNWg1LjAwNGEuNzUuNzUgMCAxIDEgMCAxLjV6TTkgNy43NTJhMSAxIDAgMSAxLTIgMCAxIDEgMCAwIDEgMiAwbTEuNDk2LS4wMDJhLjc1Ljc1IDAgMCAxIC43NS0uNzVoNS4wMDRhLjc1Ljc1IDAgMSAxIDAgMS41aC01LjAwNGEuNzUuNzUgMCAwIDEtLjc1LS43NW0uNzUgMy4yNWEuNzUuNzUgMCAwIDAgMCAxLjVoNS4wMDRhLjc1Ljc1IDAgMSAwIDAtMS41ek04IDEyLjc1YTEgMSAwIDEgMCAwLTIgMSAxIDAgMCAwIDAgMm0xIDIuOTk4YTEgMSAwIDEgMS0yIDAgMSAxIDAgMCAxIDIgMFwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJ0aW1lclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEyIDVhOC41IDguNSAwIDEgMSAwIDE3IDguNSA4LjUgMCAwIDEgMC0xN20wIDEuNWE3IDcgMCAxIDAgMCAxNCA3IDcgMCAwIDAgMC0xNE0xMiA4YS43NS43NSAwIDAgMSAuNzQzLjY0OGwuMDA3LjEwMnY0LjVhLjc1Ljc1IDAgMCAxLTEuNDkzLjEwMmwtLjAwNy0uMTAydi00LjVBLjc1Ljc1IDAgMCAxIDEyIDhtNy4xNDctMi44ODYuMDgzLjA2IDEuMTU4Ljk2NGEuNzUuNzUgMCAwIDEtLjg3NyAxLjIxMmwtLjA4Mi0uMDYtMS4xNTktLjk2NGEuNzUuNzUgMCAwIDEgLjg3Ny0xLjIxMk0xNC4yNSAyLjVhLjc1Ljc1IDAgMCAxIC4xMDIgMS40OTNMMTQuMjUgNGgtNC41YS43NS43NSAwIDAgMS0uMTAyLTEuNDkzTDkuNzUgMi41elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJ1cGxvYWRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xOC4yNSAzLjUxYS43NS43NSAwIDEgMCAwLTEuNWwtMTMtLjAwNGEuNzUuNzUgMCAxIDAgMCAxLjV6bS02LjYwMiAxOC40ODguMTAyLjAwN2EuNzUuNzUgMCAwIDAgLjc0My0uNjQ5bC4wMDctLjEwMS0uMDAxLTEzLjY4NSAzLjcyMiAzLjcyYS43NS43NSAwIDAgMCAuOTc2LjA3M2wuMDg1LS4wNzNhLjc1Ljc1IDAgMCAwIC4wNzItLjk3N2wtLjA3My0uMDg0LTQuOTk3LTQuOTk2YS43NS43NSAwIDAgMC0uOTc2LS4wNzNsLS4wODUuMDcyTDYuMjIgMTAuMjNhLjc1Ljc1IDAgMCAwIC45NzYgMS4xMzRsLjA4NC0uMDczIDMuNzE5LTMuNzEzTDExIDIxLjI1NWMwIC4zOC4yODIuNjkzLjY0OC43NDNcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwidXNlclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE3Ljc1NSAxNGEyLjI1IDIuMjUgMCAwIDEgMi4yNDggMi4yNXYuNTc1YzAgLjg5NC0uMzIgMS43NTktLjkgMi40MzgtMS41NyAxLjgzMy0zLjk1NyAyLjczOC03LjEwMyAyLjczOHMtNS41MzItLjkwNS03LjA5OC0yLjc0YTMuNzUgMy43NSAwIDAgMS0uODk4LTIuNDM0di0uNTc4QTIuMjUgMi4yNSAwIDAgMSA2LjI1MyAxNHptMCAxLjVINi4yNTJhLjc1Ljc1IDAgMCAwLS43NS43NXYuNTc3YzAgLjUzNS4xOTIgMS4wNTMuNTQgMS40NiAxLjI1MyAxLjQ2OSAzLjIyIDIuMjE0IDUuOTU3IDIuMjE0IDIuNzM5IDAgNC43MDYtLjc0NSA1Ljk2My0yLjIxM2EyLjI1IDIuMjUgMCAwIDAgLjU0LTEuNDYzdi0uNTc2YS43NS43NSAwIDAgMC0uNzQ4LS43NDlNMTIgMi4wMDVhNSA1IDAgMSAxIDAgMTAgNSA1IDAgMCAxIDAtMTBtMCAxLjVhMy41IDMuNSAwIDEgMCAwIDcgMy41IDMuNSAwIDAgMCAwLTdcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwidXNlcl9tdWx0aXBsZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE0Ljc1NCAxMGMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1djQuNzQ5YTQuNTAxIDQuNTAxIDAgMCAxLTkuMDAyIDBWMTEuNzVjMC0uOTY2Ljc4My0xLjc1IDEuNzUtMS43NXptMCAxLjVIOS4yNTJhLjI1LjI1IDAgMCAwLS4yNS4yNXY0Ljc0OWEzLjAwMSAzLjAwMSAwIDAgMCA2LjAwMiAwVjExLjc1YS4yNS4yNSAwIDAgMC0uMjUtLjI1TTMuNzUgMTBoMy4zODFhMi43NCAyLjc0IDAgMCAwLS42MTggMS41SDMuNzVhLjI1LjI1IDAgMCAwLS4yNS4yNXYzLjI0OWEyLjUgMi41IDAgMCAwIDMuMDgyIDIuNDMzYy4wODUuNTA0LjI0Ljk4NS40NTMgMS40MzJRNi41MzkgMTguOTk5IDYgMTlhNCA0IDAgMCAxLTQtNC4wMDFWMTEuNzVjMC0uOTY2Ljc4NC0xLjc1IDEuNzUtMS43NW0xMy4xMjUgMGgzLjM3NWMuOTY2IDAgMS43NS43ODQgMS43NSAxLjc1VjE1YTQgNCAwIDAgMS01LjAzIDMuODY2Yy4yMTQtLjQ0OC4zNjktLjkyOS40NTUtMS40MzNxLjI3Ny4wNjYuNTc1LjA2N2EyLjUgMi41IDAgMCAwIDIuNS0yLjV2LTMuMjVhLjI1LjI1IDAgMCAwLS4yNS0uMjVoLTIuNzU3YTIuNzQgMi43NCAwIDAgMC0uNjE4LTEuNU0xMiAzYTMgMyAwIDEgMSAwIDYgMyAzIDAgMCAxIDAtNm02LjUgMWEyLjUgMi41IDAgMSAxIDAgNSAyLjUgMi41IDAgMCAxIDAtNW0tMTMgMGEyLjUgMi41IDAgMSAxIDAgNSAyLjUgMi41IDAgMCAxIDAtNW02LjUuNWExLjUgMS41IDAgMSAwIDAgMyAxLjUgMS41IDAgMCAwIDAtM202LjUgMWExIDEgMCAxIDAgMCAyIDEgMSAwIDAgMCAwLTJtLTEzIDBhMSAxIDAgMSAwIDAgMiAxIDEgMCAwIDAgMC0yXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInVzZXJfcm9sZVwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTE0IDE0SDQuMjUzYTIuMjUgMi4yNSAwIDAgMC0yLjI1IDIuMjV2LjU3N2MwIC44OTIuMzIgMS43NTYuOSAyLjQzNSAxLjU2NSAxLjgzNCAzLjk1MiAyLjc0IDcuMDk3IDIuNzRxMS4wNzIgMCAyLjAyNi0uMTQxYTIuNSAyLjUgMCAwIDEtLjAyNi0uMzZ2LTEuMTU0cS0uOTIuMTU0LTIgLjE1NGMtMi43MzggMC00LjcwNC0uNzQ1LTUuOTU3LTIuMjEzYTIuMjUgMi4yNSAwIDAgMS0uNTQtMS40NjF2LS41NzhhLjc1Ljc1IDAgMCAxIC43NS0uNzQ5aDcuOTU1QTIuNSAyLjUgMCAwIDEgMTQgMTQuMDV6TTEwIDIuMDA1YTUgNSAwIDEgMSAwIDEwIDUgNSAwIDAgMSAwLTEwbTAgMS41YTMuNSAzLjUgMCAxIDAgMCA3IDMuNSAzLjUgMCAwIDAgMC03TTE1IDE1aC0uNWExLjUgMS41IDAgMCAwLTEuNSAxLjV2NWExLjUgMS41IDAgMCAwIDEuNSAxLjVoNmExLjUgMS41IDAgMCAwIDEuNS0xLjV2LTVhMS41IDEuNSAwIDAgMC0xLjUtMS41SDIwdi0xYTIuNSAyLjUgMCAwIDAtNSAwem0xLjUtMWExIDEgMCAwIDEgMiAwdjFoLTJ6bTIgNWExIDEgMCAxIDEtMiAwIDEgMSAwIDAgMSAyIDBcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwid2FybmluZ1wiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICA8cGF0aFxuICAgICAgZmlsbD1cImN1cnJlbnRDb2xvclwiXG4gICAgICBkPVwiTTEzIDE3YS45OTkuOTk5IDAgMSAwLTEuOTk4IDAgLjk5OS45OTkgMCAwIDAgMS45OTcgMG0tLjI2LTcuODUzYS43NS43NSAwIDAgMC0xLjQ5My4xMDNsLjAwNCA0LjUwMS4wMDcuMTAyYS43NS43NSAwIDAgMCAxLjQ5My0uMTAzbC0uMDA0LTQuNTAyem0xLjIzLTUuNDg4Yy0uODU3LTEuNTQ4LTMuMDgyLTEuNTQ4LTMuOTM4IDBMMi4yODYgMTcuNjZjLS44MyAxLjUuMjU1IDMuMzQgMS45NyAzLjM0aDE1LjQ5YzEuNzE0IDAgMi43OTktMS44NCAxLjk2OS0zLjM0em0tMi42MjYuNzI2YS43NS43NSAwIDAgMSAxLjMxMyAwbDcuNzQ2IDE0LjAwMmEuNzUuNzUgMCAwIDEtLjY1NyAxLjExM0g0LjI1NmEuNzUuNzUgMCAwIDEtLjY1Ny0xLjExM3pcIlxuICAgIC8+XG4gIDwvc3ltYm9sPlxuICA8c3ltYm9sIGlkPVwiem9vbV9maXRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgPHBhdGhcbiAgICAgIGZpbGw9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgZD1cIk0xMS40OSAyLjcwN2EuNzUuNzUgMCAwIDEgMS4wMy4wMDJsMi4yMDYgMi4wOWEuNzUuNzUgMCAxIDAgMS4wMzItMS4wODhMMTMuNTUxIDEuNjJhMi4yNSAyLjI1IDAgMCAwLTMuMDktLjAwNUw4LjIzNyAzLjcxQS43NS43NSAwIDAgMCA5LjI2NSA0Ljh6TTQuODAyIDkuMjYzYS43NS43NSAwIDAgMC0xLjA5MS0xLjAyOGwtMi4wOTUgMi4yMjRhMi4yNSAyLjI1IDAgMCAwIC4wMDUgMy4wOWwyLjA5MSAyLjIwN2EuNzUuNzUgMCAxIDAgMS4wODktMS4wMzJMMi43MSAxMi41MTdhLjc1Ljc1IDAgMCAxLS4wMDEtMS4wM3ptMTUuNDg1LTEuMDJBLjc1Ljc1IDAgMSAwIDE5LjIgOS4yNzVsMi4wOTggMi4yMTNhLjc1Ljc1IDAgMCAxIDAgMS4wMzNMMTkuMiAxNC43MzRhLjc1Ljc1IDAgMCAwIDEuMDg4IDEuMDMybDIuMDk5LTIuMjEzYTIuMjUgMi4yNSAwIDAgMCAwLTMuMDk3em0tNC41MjIgMTIuMDQ1YS43NS43NSAwIDAgMC0xLjAzMi0xLjA4OGwtMi4yMTIgMi4wOTdhLjc1Ljc1IDAgMCAxLTEuMDMyIDBMOS4yNzUgMTkuMmEuNzUuNzUgMCAwIDAtMS4wMzIgMS4wOWwyLjIxNiAyLjA5N2EyLjI1IDIuMjUgMCAwIDAgMy4wOTUgMHpNOS43NSA3QTIuNzUgMi43NSAwIDAgMCA3IDkuNzV2NC41QTIuNzUgMi43NSAwIDAgMCA5Ljc1IDE3aDQuNUEyLjc1IDIuNzUgMCAwIDAgMTcgMTQuMjV2LTQuNUEyLjc1IDIuNzUgMCAwIDAgMTQuMjUgN3pNOC41IDkuNzVjMC0uNjkuNTYtMS4yNSAxLjI1LTEuMjVoNC41Yy42OSAwIDEuMjUuNTYgMS4yNSAxLjI1djQuNWMwIC42OS0uNTYgMS4yNS0xLjI1IDEuMjVoLTQuNWMtLjY5IDAtMS4yNS0uNTYtMS4yNS0xLjI1elwiXG4gICAgLz5cbiAgPC9zeW1ib2w+XG4gIDxzeW1ib2wgaWQ9XCJ6b29tX2luXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTMuNSAxMGEuNzUuNzUgMCAwIDAtLjc1LS43NWgtMnYtMmEuNzUuNzUgMCAwIDAtMS41IDB2MmgtMmEuNzUuNzUgMCAxIDAgMCAxLjVoMnYyYS43NS43NSAwIDAgMCAxLjUgMHYtMmgyYS43NS43NSAwIDAgMCAuNzUtLjc1TTEwIDIuNzVhNy4yNSA3LjI1IDAgMCAxIDUuNjMgMTEuODE5bDQuOSA0LjlhLjc1Ljc1IDAgMCAxLS45NzYgMS4xMzRsLS4wODQtLjA3My00LjkwMS00LjlBNy4yNSA3LjI1IDAgMSAxIDEwIDIuNzVtMCAxLjVhNS43NSA1Ljc1IDAgMSAwIDAgMTEuNSA1Ljc1IDUuNzUgMCAwIDAgMC0xMS41XCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbiAgPHN5bWJvbCBpZD1cInpvb21fb3V0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgIDxwYXRoXG4gICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgIGQ9XCJNMTIuNzUgOS4yNWEuNzUuNzUgMCAwIDEgMCAxLjVoLTUuNWEuNzUuNzUgMCAwIDEgMC0xLjV6bTQuNS43NWE3LjI1IDcuMjUgMCAxIDAtMi42ODEgNS42M2w0LjkgNC45LjA4NS4wNzNhLjc1Ljc1IDAgMCAwIC45NzYtMS4xMzNsLTQuOS00LjkwMUE3LjIyIDcuMjIgMCAwIDAgMTcuMjUgMTBtLTEzIDBhNS43NSA1Ljc1IDAgMSAxIDExLjUgMCA1Ljc1IDUuNzUgMCAwIDEtMTEuNSAwXCJcbiAgICAvPlxuICA8L3N5bWJvbD5cbjwvc3ZnPlxuPHN2Z1xuICBjbGFzcz1cImljb25cIlxuICBbYXR0ci53aWR0aF09XCJzaXplXCJcbiAgW2F0dHIuaGVpZ2h0XT1cInNpemVcIlxuICBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsXCJcbj5cbiAgPHVzZSBbYXR0ci5ocmVmXT1cIicjJyArIG5hbWVcIj48L3VzZT5cbjwvc3ZnPlxuIl19","import { InjectionToken } from '@angular/core';\nexport const AUTH_ADAPTER = new InjectionToken('AUTH_ADAPTER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYXV0aC9hdXRoLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVcvQyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsSUFBSSxjQUFjLENBQWMsY0FBYyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEF1dGhBZGFwdGVyIHtcbiAgaW5pdCgpOiBQcm9taXNlPHZvaWQ+O1xuICBpc0F1dGhlbnRpY2F0ZWQoKTogUHJvbWlzZTxib29sZWFuPjtcbiAgZ2V0QWNjZXNzVG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+O1xuICBsb2dpblJlZGlyZWN0KG9wdGlvbnM/OiB7IHJlZGlyZWN0VXJpPzogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+O1xuICBsb2dpblBvcHVwPygpOiBQcm9taXNlPHZvaWQ+O1xuICBsb2dvdXQ/KCk6IFByb21pc2U8dm9pZD47XG59XG5cbmV4cG9ydCBjb25zdCBBVVRIX0FEQVBURVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXV0aEFkYXB0ZXI+KCdBVVRIX0FEQVBURVInKTtcbiJdfQ==","import { inject, Injectable } from '@angular/core';\nimport { AUTH_ADAPTER } from '../auth/auth.adapter';\nimport * as i0 from \"@angular/core\";\nexport class ApiService {\n _baseUrl = 'https://adam.hahnpro.com';\n apiPath = '/api';\n auth = inject(AUTH_ADAPTER);\n httpClient = new HttpClient(this.auth);\n get baseUrl() {\n return this._baseUrl;\n }\n get apiUrl() {\n return `${this.baseUrl}${this.apiPath}`;\n }\n get user() {\n return this.httpClient.user;\n }\n addMessage(message, threadId, assistantId, context) {\n console.log('addMessage', message, threadId, assistantId, context);\n return this.httpClient.post(`${this.apiUrl}/ai/message`, {\n message,\n threadId,\n assistantId,\n context,\n });\n }\n getAccessToken() {\n return this.httpClient.getAccessToken();\n }\n createThread(assistantId, isEphemeral) {\n return this.httpClient.post(`${this.apiUrl}/ai/threads`, {\n assistantId,\n isEphemeral,\n });\n }\n getThread(threadId) {\n return this.httpClient.get(`${this.apiUrl}/ai/threads/${threadId}`);\n }\n getThreadMessages(threadId) {\n return this.httpClient.get(`${this.apiUrl}/ai/threads/${threadId}/messages`);\n }\n deleteThread(threadId) {\n return this.httpClient.delete(`${this.apiUrl}/ai/threads/${threadId}`);\n }\n getAssistants() {\n return this.httpClient.get(`${this.apiUrl}/ai/assistants`);\n }\n getSpeechToken() {\n return this.httpClient.get(`${this.apiUrl}/ai/speech/token`);\n }\n getAssets(params = {}) {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/assets`, { params });\n }\n getAssetTypes(params = {}) {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/assettypes`, { params });\n }\n getContents(params = {}) {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/contents`, { params });\n }\n getEvents(params = {}) {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/events`, { params });\n }\n downloadContent(id, type) {\n const query = type ? '?type=' + type : '';\n return this.httpClient.get(`${this.apiUrl}/contents/${id}/download${query}`);\n }\n async loadUsersAsPermissions() {\n if (this.httpClient.user?.roles.includes('superuser')) {\n return this.httpClient.get(`${this.apiUrl}/user/permissions`);\n }\n else {\n return [];\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ApiService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ApiService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ApiService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport class HttpClient {\n auth = null;\n _user = null;\n constructor(auth) {\n this.auth = auth;\n }\n delete = (url, config) => this.request('DELETE', url, config);\n get = (url, config) => this.request('GET', url, config);\n post = (url, data, config) => this.request('POST', url, config, data);\n put = (url, data, config) => this.request('PUT', url, config, data);\n get user() {\n return this._user;\n }\n request = async (method, url, config = {}, data) => {\n const token = await this.getAccessToken();\n if (config.params) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(config.params)) {\n params.append(key, String(value));\n }\n url += `?${params}`;\n }\n const response = await fetch(url, {\n method,\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n ...config.headers,\n },\n body: data ? JSON.stringify(data) : undefined,\n });\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return response.json();\n };\n async getAccessToken() {\n const token = await this.auth.getAccessToken();\n this.resolveUser(token);\n return token;\n }\n resolveUser(token) {\n try {\n const tokenParts = token.split('.');\n if (tokenParts.length !== 3) {\n throw new Error('Invalid JWT token format');\n }\n const payload = JSON.parse(atob(tokenParts[1]));\n this._user = {\n id: payload.sub,\n username: payload.preferred_username || payload.email,\n roles: payload.roles || [],\n activeOrg: payload.active_organization\n ? {\n id: payload.active_organization.id,\n name: payload.active_organization.name,\n }\n : undefined,\n };\n }\n catch (error) {\n console.error('Error parsing JWT token:', error);\n this._user = null;\n }\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL2FwaS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBY25ELE9BQU8sRUFBRSxZQUFZLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHakUsTUFBTSxPQUFPLFVBQVU7SUFDYixRQUFRLEdBQUcsMEJBQTBCLENBQUM7SUFDdEMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUNqQixJQUFJLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQzVCLFVBQVUsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFL0MsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUM7SUFDOUIsQ0FBQztJQUVELFVBQVUsQ0FDUixPQUFlLEVBQ2YsUUFBaUIsRUFDakIsV0FBb0IsRUFDcEIsT0FBaUM7UUFFakMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLGFBQWEsRUFBRTtZQUN2RCxPQUFPO1lBQ1AsUUFBUTtZQUNSLFdBQVc7WUFDWCxPQUFPO1NBQ1IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJ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QUU7d0JBQ2xDLElBQUksRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsSUFBSTtxQkFDdkM7b0JBQ0gsQ0FBQyxDQUFDLFNBQVM7YUFDZCxDQUFDO1FBQ0osQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtcbiAgQWlBc3Npc3RhbnQsXG4gIEFzc2V0LFxuICBBc3NldFR5cGUsXG4gIENvbnRlbnQsXG4gIEV2ZW50LFxuICBNZXNzYWdlLFxuICBQYWdpbmF0ZWQsXG4gIFJlcXVlc3RQYXJhbWV0ZXIsXG4gIFNwZWVjaFRva2VuLFxuICBUaHJlYWQsXG4gIFRocmVhZFBvcHVsYXRlZCxcbn0gZnJvbSAnQGhhaG5wcm8vaHBjLWFwaSc7XG5pbXBvcnQgeyBBVVRIX0FEQVBURVIsIEF1dGhBZGFwdGVyIH0gZnJvbSAnLi4vYXV0aC9hdXRoLmFkYXB0ZXInO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEFwaVNlcnZpY2Uge1xuICBwcml2YXRlIF9iYXNlVXJsID0gJ2h0dHBzOi8vYWRhbS5oYWhucHJvLmNvbSc7XG4gIHByaXZhdGUgYXBpUGF0aCA9ICcvYXBpJztcbiAgcHJpdmF0ZSBhdXRoID0gaW5qZWN0KEFVVEhfQURBUFRFUik7XG4gIHByaXZhdGUgaHR0cENsaWVudCA9IG5ldyBIdHRwQ2xpZW50KHRoaXMuYXV0aCk7XG5cbiAgZ2V0IGJhc2VVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYmFzZVVybDtcbiAgfVxuXG4gIGdldCBhcGlVcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5iYXNlVXJsfSR7dGhpcy5hcGlQYXRofWA7XG4gIH1cblxuICBnZXQgdXNlcigpOiBVc2VyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC51c2VyO1xuICB9XG5cbiAgYWRkTWVzc2FnZShcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgdGhyZWFkSWQ/OiBzdHJpbmcsXG4gICAgYXNzaXN0YW50SWQ/OiBzdHJpbmcsXG4gICAgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICApOiBQcm9taXNlPE1lc3NhZ2U+IHtcbiAgICBjb25zb2xlLmxvZygnYWRkTWVzc2FnZScsIG1lc3NhZ2UsIHRocmVhZElkLCBhc3Npc3RhbnRJZCwgY29udGV4dCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KGAke3RoaXMuYXBpVXJsfS9haS9tZXNzYWdlYCwge1xuICAgICAgbWVzc2FnZSxcbiAgICAgIHRocmVhZElkLFxuICAgICAgYXNzaXN0YW50SWQsXG4gICAgICBjb250ZXh0LFxuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWNjZXNzVG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldEFjY2Vzc1Rva2VuKCk7XG4gIH1cblxuICBjcmVhdGVUaHJlYWQoXG4gICAgYXNzaXN0YW50SWQ6IHN0cmluZyxcbiAgICBpc0VwaGVtZXJhbD86IGJvb2xlYW4sXG4gICk6IFByb21pc2U8VGhyZWFkUG9wdWxhdGVkPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0KGAke3RoaXMuYXBpVXJsfS9haS90aHJlYWRzYCwge1xuICAgICAgYXNzaXN0YW50SWQsXG4gICAgICBpc0VwaGVtZXJhbCxcbiAgICB9KTtcbiAgfVxuXG4gIGdldFRocmVhZCh0aHJlYWRJZDogc3RyaW5nKTogUHJvbWlzZTxUaHJlYWRQb3B1bGF0ZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmFwaVVybH0vYWkvdGhyZWFkcy8ke3RocmVhZElkfWApO1xuICB9XG5cbiAgZ2V0VGhyZWFkTWVzc2FnZXModGhyZWFkSWQ6IHN0cmluZyk6IFByb21pc2U8UGFnaW5hdGVkPE1lc3NhZ2VbXT4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChcbiAgICAgIGAke3RoaXMuYXBpVXJsfS9haS90aHJlYWRzLyR7dGhyZWFkSWR9L21lc3NhZ2VzYCxcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlVGhyZWFkKHRocmVhZElkOiBzdHJpbmcpOiBQcm9taXNlPFRocmVhZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlKGAke3RoaXMuYXBpVXJsfS9haS90aHJlYWRzLyR7dGhyZWFkSWR9YCk7XG4gIH1cblxuICBnZXRBc3Npc3RhbnRzKCk6IFByb21pc2U8QWlBc3Npc3RhbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuYXBpVXJsfS9haS9hc3Npc3RhbnRzYCk7XG4gIH1cblxuICBnZXRTcGVlY2hUb2tlbigpOiBQcm9taXNlPFNwZWVjaFRva2VuPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQ8U3BlZWNoVG9rZW4+KGAke3RoaXMuYXBpVXJsfS9haS9zcGVlY2gvdG9rZW5gKTtcbiAgfVxuXG4gIGdldEFzc2V0cyhwYXJhbXM6IFJlcXVlc3RQYXJhbWV0ZXIgPSB7fSk6IFByb21pc2U8UGFnaW5hdGVkPEFzc2V0W10+PiB7XG4gICAgcGFyYW1zLmxpbWl0ID0gcGFyYW1zLmxpbWl0IHx8IDA7XG4gICAgcGFyYW1zLnBhZ2UgPSBwYXJhbXMucGFnZSB8fCAxO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuYXBpVXJsfS9hc3NldHNgLCB7IHBhcmFtcyB9KTtcbiAgfVxuXG4gIGdldEFzc2V0VHlwZXMoXG4gICAgcGFyYW1zOiBSZXF1ZXN0UGFyYW1ldGVyID0ge30sXG4gICk6IFByb21pc2U8UGFnaW5hdGVkPEFzc2V0VHlwZVtdPj4ge1xuICAgIHBhcmFtcy5saW1pdCA9IHBhcmFtcy5saW1pdCB8fCAwO1xuICAgIHBhcmFtcy5wYWdlID0gcGFyYW1zLnBhZ2UgfHwgMTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldChgJHt0aGlzLmFwaVVybH0vYXNzZXR0eXBlc2AsIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgZ2V0Q29udGVudHMocGFyYW1zOiBSZXF1ZXN0UGFyYW1ldGVyID0ge30pOiBQcm9taXNlPFBhZ2luYXRlZDxDb250ZW50W10+PiB7XG4gICAgcGFyYW1zLmxpbWl0ID0gcGFyYW1zLmxpbWl0IHx8IDA7XG4gICAgcGFyYW1zLnBhZ2UgPSBwYXJhbXMucGFnZSB8fCAxO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGAke3RoaXMuYXBpVXJsfS9jb250ZW50c2AsIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgZ2V0RXZlbnRzKHBhcmFtczogUmVxdWVzdFBhcmFtZXRlciA9IHt9KTogUHJvbWlzZTxQYWdpbmF0ZWQ8RXZlbnRbXT4+IHtcbiAgICBwYXJhbXMubGltaXQgPSBwYXJhbXMubGltaXQgfHwgMDtcbiAgICBwYXJhbXMucGFnZSA9IHBhcmFtcy5wYWdlIHx8IDE7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQoYCR7dGhpcy5hcGlVcmx9L2V2ZW50c2AsIHsgcGFyYW1zIH0pO1xuICB9XG5cbiAgZG93bmxvYWRDb250ZW50KGlkOiBzdHJpbmcsIHR5cGU/OiBGaWxlVHlwZSk6IFByb21pc2U8QmxvYj4ge1xuICAgIGNvbnN0IHF1ZXJ5ID0gdHlwZSA/ICc/dHlwZT0nICsgdHlwZSA6ICcnO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KFxuICAgICAgYCR7dGhpcy5hcGlVcmx9L2NvbnRlbnRzLyR7aWR9L2Rvd25sb2FkJHtxdWVyeX1gLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBsb2FkVXNlcnNBc1Blcm1pc3Npb25zKCk6IFByb21pc2U8UGVybWlzc2lvbltdPiB7XG4gICAgaWYgKHRoaXMuaHR0cENsaWVudC51c2VyPy5yb2xlcy5pbmNsdWRlcygnc3VwZXJ1c2VyJykpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0PFBlcm1pc3Npb25bXT4oXG4gICAgICAgIGAke3RoaXMuYXBpVXJsfS91c2VyL3Blcm1pc3Npb25zYCxcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgVG9rZW5PcHRpb24gPSB7IHRva2VuPzogc3RyaW5nIH07XG5leHBvcnQgdHlwZSBDb25maWcgPSBUb2tlbk9wdGlvbiAmIHtcbiAgaGVhZGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIHBhcmFtcz86IGFueTtcbn07XG5cbmV4cG9ydCBjbGFzcyBIdHRwQ2xpZW50IHtcbiAgcHJpdmF0ZSBhdXRoOiBBdXRoQWRhcHRlciA9IG51bGw7XG4gIHByaXZhdGUgX3VzZXI6IFVzZXIgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihhdXRoOiBBdXRoQWRhcHRlcikge1xuICAgIHRoaXMuYXV0aCA9IGF1dGg7XG4gIH1cblxuICBwdWJsaWMgZGVsZXRlID0gPFQ+KHVybDogc3RyaW5nLCBjb25maWc/OiBDb25maWcpID0+XG4gICAgdGhpcy5yZXF1ZXN0PFQ+KCdERUxFVEUnLCB1cmwsIGNvbmZpZyk7XG4gIHB1YmxpYyBnZXQgPSA8VD4odXJsOiBzdHJpbmcsIGNvbmZpZz86IENvbmZpZykgPT5cbiAgICB0aGlzLnJlcXVlc3Q8VD4oJ0dFVCcsIHVybCwgY29uZmlnKTtcbiAgcHVibGljIHBvc3QgPSA8VD4odXJsOiBzdHJpbmcsIGRhdGE6IGFueSwgY29uZmlnPzogQ29uZmlnKSA9PlxuICAgIHRoaXMucmVxdWVzdDxUPignUE9TVCcsIHVybCwgY29uZmlnLCBkYXRhKTtcbiAgcHVibGljIHB1dCA9IDxUPih1cmw6IHN0cmluZywgZGF0YTogYW55LCBjb25maWc/OiBDb25maWcpID0+XG4gICAgdGhpcy5yZXF1ZXN0PFQ+KCdQVVQnLCB1cmwsIGNvbmZpZywgZGF0YSk7XG5cbiAgZ2V0IHVzZXIoKTogVXNlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl91c2VyO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlcXVlc3QgPSBhc3luYyA8VD4oXG4gICAgbWV0aG9kOiBNZXRob2QsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgY29uZmlnOiBDb25maWcgPSB7fSxcbiAgICBkYXRhPzogQm9keUluaXQgfCBudWxsIHwgdW5kZWZpbmVkLFxuICApOiBQcm9taXNlPFQ+ID0+IHtcbiAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgICBpZiAoY29uZmlnLnBhcmFtcykge1xuICAgICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcygpO1xuICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMoY29uZmlnLnBhcmFtcykpIHtcbiAgICAgICAgcGFyYW1zLmFwcGVuZChrZXksIFN0cmluZyh2YWx1ZSkpO1xuICAgICAgfVxuICAgICAgdXJsICs9IGA/JHtwYXJhbXN9YDtcbiAgICB9XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaCh1cmwsIHtcbiAgICAgIG1ldGhvZCxcbiAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3Rva2VufWAsXG4gICAgICAgIEFjY2VwdDogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAuLi5jb25maWcuaGVhZGVycyxcbiAgICAgIH0sXG4gICAgICBib2R5OiBkYXRhID8gSlNPTi5zdHJpbmdpZnkoZGF0YSkgOiB1bmRlZmluZWQsXG4gICAgfSk7XG5cbiAgICBpZiAoIXJlc3BvbnNlLm9rKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IocmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG4gICAgfVxuICAgIHJldHVybiByZXNwb25zZS5qc29uKCk7XG4gIH07XG5cbiAgYXN5bmMgZ2V0QWNjZXNzVG9rZW4oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHRoaXMuYXV0aC5nZXRBY2Nlc3NUb2tlbigpO1xuICAgIHRoaXMucmVzb2x2ZVVzZXIodG9rZW4pO1xuICAgIHJldHVybiB0b2tlbjtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVVzZXIodG9rZW46IHN0cmluZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0b2tlblBhcnRzID0gdG9rZW4uc3BsaXQoJy4nKTtcbiAgICAgIGlmICh0b2tlblBhcnRzLmxlbmd0aCAhPT0gMykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgSldUIHRva2VuIGZvcm1hdCcpO1xuICAgICAgfVxuICAgICAgY29uc3QgcGF5bG9hZCA9IEpTT04ucGFyc2UoYXRvYih0b2tlblBhcnRzWzFdKSk7XG4gICAgICB0aGlzLl91c2VyID0ge1xuICAgICAgICBpZDogcGF5bG9hZC5zdWIsXG4gICAgICAgIHVzZXJuYW1lOiBwYXlsb2FkLnByZWZlcnJlZF91c2VybmFtZSB8fCBwYXlsb2FkLmVtYWlsLFxuICAgICAgICByb2xlczogcGF5bG9hZC5yb2xlcyB8fCBbXSxcbiAgICAgICAgYWN0aXZlT3JnOiBwYXlsb2FkLmFjdGl2ZV9vcmdhbml6YXRpb25cbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgaWQ6IHBheWxvYWQuYWN0aXZlX29yZ2FuaXphdGlvbi5pZCxcbiAgICAgICAgICAgICAgbmFtZTogcGF5bG9hZC5hY3RpdmVfb3JnYW5pemF0aW9uLm5hbWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICB9O1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIEpXVCB0b2tlbjonLCBlcnJvcik7XG4gICAgICB0aGlzLl91c2VyID0gbnVsbDtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IHR5cGUgTWV0aG9kID1cbiAgfCAnZ2V0J1xuICB8ICdHRVQnXG4gIHwgJ2RlbGV0ZSdcbiAgfCAnREVMRVRFJ1xuICB8ICdoZWFkJ1xuICB8ICdIRUFEJ1xuICB8ICdvcHRpb25zJ1xuICB8ICdPUFRJT05TJ1xuICB8ICdwb3N0J1xuICB8ICdQT1NUJ1xuICB8ICdwdXQnXG4gIHwgJ1BVVCdcbiAgfCAncGF0Y2gnXG4gIHwgJ1BBVENIJ1xuICB8ICdwdXJnZSdcbiAgfCAnUFVSR0UnXG4gIHwgJ2xpbmsnXG4gIHwgJ0xJTksnXG4gIHwgJ3VubGluaydcbiAgfCAnVU5MSU5LJztcblxuZXhwb3J0IHR5cGUgRmlsZVR5cGUgPVxuICB8ICdvcmlnaW5hbCdcbiAgfCAncHJldmlldy1zbSdcbiAgfCAncHJldmlldy1tZCdcbiAgfCAncHJldmlldy1sZydcbiAgfCAncHJldmlldy14bCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVybWlzc2lvbiB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlciB7XG4gIGlkOiBzdHJpbmc7XG4gIHVzZXJuYW1lOiBzdHJpbmc7XG4gIGFjdGl2ZU9yZz86IHtcbiAgICBpZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgfTtcbiAgcm9sZXM6IHN0cmluZ1tdO1xufVxuIl19","import { inject, Injectable } from '@angular/core';\nimport { ApiService } from './api.service';\nimport * as i0 from \"@angular/core\";\n/**\n * Service to resolve owner names based on their IDs. It utilizes caching to minimize\n * redundant requests and leverages authentication and user services to fetch owner details.\n */\nexport class OwnerResolverService {\n cache = new ResponseCache(1000, 24 * 60 * 60 * 1000);\n apiService = inject(ApiService);\n /**\n * Resolves the owner name for a given ID.\n */\n async resolveOwner(id) {\n return (await this.resolveOwners(id))?.[id];\n }\n /**\n * Resolves owner names for a list of IDs.\n */\n async resolveOwners(ids) {\n if (typeof ids === 'string') {\n ids = [ids];\n }\n const idsMap = new Map();\n const idsToFetch = new Set();\n if (Array.isArray(ids) && ids.length > 0) {\n for (const id of ids) {\n const cachedValue = this.cache.get(id);\n if (cachedValue) {\n idsMap.set(id, cachedValue);\n }\n else {\n const resolved = await this.resolveFromAuth(id, idsMap);\n if (!resolved) {\n idsToFetch.add(id);\n }\n }\n }\n if (idsToFetch.size > 0) {\n await this.fetchIds(idsToFetch, idsMap);\n }\n return Object.fromEntries(idsMap);\n }\n else {\n return {};\n }\n }\n /**\n * Attempts to resolve the owner name from the authentication service.\n */\n async resolveFromAuth(id, idsMap) {\n const { id: userId, username, activeOrg } = this.apiService.user;\n let name;\n if (id === userId) {\n name = username;\n }\n else if (activeOrg.id === id) {\n name = activeOrg.name;\n }\n if (name) {\n idsMap.set(id, name);\n this.cache.set(id, name);\n return true;\n }\n else {\n return false;\n }\n }\n async fetchIds(idsToFetch, idsMap) {\n try {\n const permissions = await this.apiService.loadUsersAsPermissions();\n const ids = permissions.reduce((acc, user) => {\n acc[user.value] = user.label;\n return acc;\n }, {});\n for (const id of Object.keys(idsToFetch)) {\n if (ids[id]) {\n idsMap.set(id, ids[id]);\n this.cache.set(id, ids[id]);\n }\n }\n }\n catch (error) {\n console.error(error);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: OwnerResolverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: OwnerResolverService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: OwnerResolverService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nclass ResponseCache {\n sizeLimit;\n ttl;\n cache = new Map();\n constructor(sizeLimit, ttl) {\n this.sizeLimit = sizeLimit;\n this.ttl = ttl;\n }\n get(key) {\n if (!this.cache.has(key)) {\n return undefined;\n }\n const [value, ts] = this.cache.get(key);\n // if the cache value is older than the ttl, delete it and return undefined\n if (this.ttl && Date.now() - ts > this.ttl) {\n this.cache.delete(key);\n return undefined;\n }\n // delete the key/value pair from cache and then set it again to put\n // the retrieved key/value pair back at the front for the map\n this.cache.delete(key);\n this.cache.set(key, [value, ts]);\n return value;\n }\n set(key, value) {\n this.cache.delete(key);\n if (this.cache.size === this.sizeLimit) {\n this.cache.delete(this.cache.keys().next().value);\n }\n this.cache.set(key, [value, Date.now()]);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3duZXItcmVzb2x2ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvb3duZXItcmVzb2x2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUzQzs7O0dBR0c7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBQ2QsS0FBSyxHQUFHLElBQUksYUFBYSxDQUFDLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNyRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFVO1FBQzNCLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBc0I7UUFDeEMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNkLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztRQUN6QyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDO1FBRXJDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pDLEtBQUssTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ3JC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SUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi9hcGkuc2VydmljZSc7XG5cbi8qKlxuICogU2VydmljZSB0byByZXNvbHZlIG93bmVyIG5hbWVzIGJhc2VkIG9uIHRoZWlyIElEcy4gSXQgdXRpbGl6ZXMgY2FjaGluZyB0byBtaW5pbWl6ZVxuICogcmVkdW5kYW50IHJlcXVlc3RzIGFuZCBsZXZlcmFnZXMgYXV0aGVudGljYXRpb24gYW5kIHVzZXIgc2VydmljZXMgdG8gZmV0Y2ggb3duZXIgZGV0YWlscy5cbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBPd25lclJlc29sdmVyU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FjaGUgPSBuZXcgUmVzcG9uc2VDYWNoZSgxMDAwLCAyNCAqIDYwICogNjAgKiAxMDAwKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBSZXNvbHZlcyB0aGUgb3duZXIgbmFtZSBmb3IgYSBnaXZlbiBJRC5cbiAgICovXG4gIGFzeW5jIHJlc29sdmVPd25lcihpZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMucmVzb2x2ZU93bmVycyhpZCkpPy5baWRdO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIG93bmVyIG5hbWVzIGZvciBhIGxpc3Qgb2YgSURzLlxuICAgKi9cbiAgYXN5bmMgcmVzb2x2ZU93bmVycyhpZHM6IHN0cmluZyB8IHN0cmluZ1tdKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gICAgaWYgKHR5cGVvZiBpZHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZHMgPSBbaWRzXTtcbiAgICB9XG4gICAgY29uc3QgaWRzTWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcbiAgICBjb25zdCBpZHNUb0ZldGNoID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShpZHMpICYmIGlkcy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IGlkIG9mIGlkcykge1xuICAgICAgICBjb25zdCBjYWNoZWRWYWx1ZSA9IHRoaXMuY2FjaGUuZ2V0KGlkKTtcbiAgICAgICAgaWYgKGNhY2hlZFZhbHVlKSB7XG4gICAgICAgICAgaWRzTWFwLnNldChpZCwgY2FjaGVkVmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHJlc29sdmVkID0gYXdhaXQgdGhpcy5yZXNvbHZlRnJvbUF1dGgoaWQsIGlkc01hcCk7XG4gICAgICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAgICAgaWRzVG9GZXRjaC5hZGQoaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoaWRzVG9GZXRjaC5zaXplID4gMCkge1xuICAgICAgICBhd2FpdCB0aGlzLmZldGNoSWRzKGlkc1RvRmV0Y2gsIGlkc01hcCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKGlkc01hcCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQXR0ZW1wdHMgdG8gcmVzb2x2ZSB0aGUgb3duZXIgbmFtZSBmcm9tIHRoZSBhdXRoZW50aWNhdGlvbiBzZXJ2aWNlLlxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZXNvbHZlRnJvbUF1dGgoXG4gICAgaWQ6IHN0cmluZyxcbiAgICBpZHNNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gICk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IHsgaWQ6IHVzZXJJZCwgdXNlcm5hbWUsIGFjdGl2ZU9yZyB9ID0gdGhpcy5hcGlTZXJ2aWNlLnVzZXI7XG4gICAgbGV0IG5hbWU6IHN0cmluZztcbiAgICBpZiAoaWQgPT09IHVzZXJJZCkge1xuICAgICAgbmFtZSA9IHVzZXJuYW1lO1xuICAgIH0gZWxzZSBpZiAoYWN0aXZlT3JnLmlkID09PSBpZCkge1xuICAgICAgbmFtZSA9IGFjdGl2ZU9yZy5uYW1lO1xuICAgIH1cblxuICAgIGlmIChuYW1lKSB7XG4gICAgICBpZHNNYXAuc2V0KGlkLCBuYW1lKTtcbiAgICAgIHRoaXMuY2FjaGUuc2V0KGlkLCBuYW1lKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmZXRjaElkcyhcbiAgICBpZHNUb0ZldGNoOiBTZXQ8c3RyaW5nPixcbiAgICBpZHNNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBwZXJtaXNzaW9ucyA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5sb2FkVXNlcnNBc1Blcm1pc3Npb25zKCk7XG4gICAgICBjb25zdCBpZHMgPSBwZXJtaXNzaW9ucy5yZWR1Y2UoKGFjYywgdXNlcikgPT4ge1xuICAgICAgICBhY2NbdXNlci52YWx1ZV0gPSB1c2VyLmxhYmVsO1xuICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgfSwge30pO1xuXG4gICAgICBmb3IgKGNvbnN0IGlkIG9mIE9iamVjdC5rZXlzKGlkc1RvRmV0Y2gpKSB7XG4gICAgICAgIGlmIChpZHNbaWRdKSB7XG4gICAgICAgICAgaWRzTWFwLnNldChpZCwgaWRzW2lkXSk7XG4gICAgICAgICAgdGhpcy5jYWNoZS5zZXQoaWQsIGlkc1tpZF0pO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBSZXNwb25zZUNhY2hlIHtcbiAgcHJpdmF0ZSBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBbYW55LCBudW1iZXJdPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc2l6ZUxpbWl0OiBudW1iZXIsXG4gICAgcHJpdmF0ZSB0dGw/OiBudW1iZXIsXG4gICkge31cblxuICBnZXQoa2V5OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMuY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgW3ZhbHVlLCB0c10gPSB0aGlzLmNhY2hlLmdldChrZXkpO1xuXG4gICAgLy8gaWYgdGhlIGNhY2hlIHZhbHVlIGlzIG9sZGVyIHRoYW4gdGhlIHR0bCwgZGVsZXRlIGl0IGFuZCByZXR1cm4gdW5kZWZpbmVkXG4gICAgaWYgKHRoaXMudHRsICYmIERhdGUubm93KCkgLSB0cyA+IHRoaXMudHRsKSB7XG4gICAgICB0aGlzLmNhY2hlLmRlbGV0ZShrZXkpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvLyBkZWxldGUgdGhlIGtleS92YWx1ZSBwYWlyIGZyb20gY2FjaGUgYW5kIHRoZW4gc2V0IGl0IGFnYWluIHRvIHB1dFxuICAgIC8vIHRoZSByZXRyaWV2ZWQga2V5L3ZhbHVlIHBhaXIgYmFjayBhdCB0aGUgZnJvbnQgZm9yIHRoZSBtYXBcbiAgICB0aGlzLmNhY2hlLmRlbGV0ZShrZXkpO1xuICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgW3ZhbHVlLCB0c10pO1xuXG4gICAgcmV0dXJuIHZhbHVlO1xuICB9XG5cbiAgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5jYWNoZS5kZWxldGUoa2V5KTtcblxuICAgIGlmICh0aGlzLmNhY2hlLnNpemUgPT09IHRoaXMuc2l6ZUxpbWl0KSB7XG4gICAgICB0aGlzLmNhY2hlLmRlbGV0ZSh0aGlzLmNhY2hlLmtleXMoKS5uZXh0KCkudmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLmNhY2hlLnNldChrZXksIFt2YWx1ZSwgRGF0ZS5ub3coKV0pO1xuICB9XG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { ApiService } from '../core/api.service';\nimport { OwnerResolverService } from '../core/owner-resolver.service';\nimport * as i0 from \"@angular/core\";\nexport class ContextService {\n cache = new Map();\n status = new Map();\n apiService = inject(ApiService);\n ownerResolver = inject(OwnerResolverService);\n reset() {\n this.cache.clear();\n this.status.clear();\n }\n async loadReferences(references) {\n const assetIds = [];\n const contentIds = [];\n const eventIds = [];\n const assetTypeIds = [];\n for (const reference of references) {\n if (this.cache.has(reference.id) &&\n this.status.get(reference.id)?.isComplete) {\n continue;\n }\n if (reference.resourceType === 'asset') {\n assetIds.push(reference.id);\n }\n else if (reference.resourceType === 'asset-type') {\n assetTypeIds.push(reference.id);\n }\n else if (reference.resourceType === 'content') {\n contentIds.push(reference.id);\n }\n else if (reference.resourceType === 'event') {\n eventIds.push(reference.id);\n }\n }\n if (assetIds.length > 0) {\n assetIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }));\n this.apiService\n .getAssets({ filter: `_id=@${assetIds.join(',')}` })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(response.docs.map((a) => a.owner?.id));\n const foundIds = new Set();\n for (const asset of response.docs) {\n if (asset.owner?.id) {\n asset.owner.name =\n owners[asset.owner.id] || asset.owner.id;\n }\n this.cache.set(asset.id, asset);\n this.status.set(asset.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n foundIds.add(asset.id);\n }\n for (const id of assetIds) {\n if (!foundIds.has(id)) {\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n notFound: true,\n });\n }\n }\n })\n .catch((error) => {\n console.error(error);\n assetIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }));\n });\n }\n if (assetTypeIds.length > 0) {\n assetTypeIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }));\n this.apiService\n .getAssetTypes({ filter: `_id=@${assetTypeIds.join(',')}` })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(response.docs.map((a) => a.owner?.id));\n const foundIds = new Set();\n for (const assetType of response.docs) {\n if (assetType.owner?.id) {\n assetType.owner.name =\n owners[assetType.owner.id] || assetType.owner.id;\n }\n this.cache.set(assetType.id, assetType);\n this.status.set(assetType.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n foundIds.add(assetType.id);\n }\n for (const id of assetTypeIds) {\n if (!foundIds.has(id)) {\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n notFound: true,\n });\n }\n }\n })\n .catch((error) => {\n console.error(error);\n assetTypeIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }));\n });\n }\n if (contentIds.length > 0) {\n contentIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }));\n this.apiService\n .getContents({\n filter: `_id=@${contentIds.join(',')}`,\n populate: 'analysis',\n })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(response.docs.map((c) => c.owner?.id));\n const foundIds = new Set();\n for (const content of response.docs) {\n if (content.owner?.id) {\n content.owner.name =\n owners[content.owner.id] || content.owner.id;\n }\n this.cache.set(content.id, content);\n this.status.set(content.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n foundIds.add(content.id);\n }\n for (const id of contentIds) {\n if (!foundIds.has(id)) {\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n notFound: true,\n });\n }\n }\n })\n .catch((error) => {\n console.error(error);\n contentIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }));\n });\n }\n if (eventIds.length > 0) {\n eventIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: false,\n isLoading: true,\n }));\n this.apiService\n .getEvents({ filter: `_id=@${eventIds.join(',')}` })\n .then(async (response) => {\n const owners = await this.ownerResolver.resolveOwners(response.docs.map((e) => e.owner?.id));\n const foundIds = new Set();\n for (const event of response.docs) {\n if (event.owner?.id) {\n event.owner.name =\n owners[event.owner.id] || event.owner.id;\n }\n this.cache.set(event.id, event);\n this.status.set(event.id, {\n isComplete: true,\n isError: false,\n isLoading: false,\n });\n foundIds.add(event.id);\n }\n for (const id of eventIds) {\n if (!foundIds.has(id)) {\n this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n notFound: true,\n });\n }\n }\n const assetIds = response.docs.map((e) => ({\n id: e.assetRef,\n resourceType: 'asset',\n }));\n this.loadReferences(assetIds);\n })\n .catch((error) => {\n console.error(error);\n eventIds.forEach((id) => this.status.set(id, {\n isComplete: false,\n isError: true,\n isLoading: false,\n }));\n });\n }\n }\n getContext(id) {\n return this.cache.get(id);\n }\n assetForContent(contentId) {\n for (const resource of this.cache.values()) {\n if (resource.attachments?.includes(contentId)) {\n return resource;\n }\n }\n return null;\n }\n assetForEvent(event) {\n if (event.assetRef) {\n return this.cache.get(event.assetRef);\n }\n else {\n return null;\n }\n }\n getIdForName(name) {\n for (const resource of this.cache.values()) {\n if (resource.name?.toLowerCase() ===\n name.toLowerCase() ||\n resource.filename?.toLowerCase() === name.toLowerCase()) {\n return resource.id;\n }\n }\n return null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContextService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContextService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContextService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY29udGV4dC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFVdEUsTUFBTSxPQUFPLGNBQWM7SUFDekIsS0FBSyxHQUFHLElBQUksR0FBRyxFQUErQyxDQUFDO0lBQy9ELE1BQU0sR0FBRyxJQUFJLEdBQUcsRUFBa0IsQ0FBQztJQUVsQixVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLGFBQWEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUU5RCxLQUFLO1FBQ0gsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxLQUFLLENBQUMsY0FBYyxDQUFDLFVBQThCO1FBQ2pELE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixNQUFNLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDdEIsTUFBTSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUV4QixLQUFLLE1BQU0sU0FBUyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ25DLElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFVB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dGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBBc3NldCwgQXNzZXRUeXBlLCBDb250ZW50LCBFdmVudCB9IGZyb20gJ0BoYWhucHJvL2hwYy1hcGknO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uL2NvcmUvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgT3duZXJSZXNvbHZlclNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL293bmVyLXJlc29sdmVyLnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXR1cyB7XG4gIGlzQ29tcGxldGU/OiBib29sZWFuO1xuICBpc0Vycm9yPzogYm9vbGVhbjtcbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbiAgbm90Rm91bmQ/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ29udGV4dFNlcnZpY2Uge1xuICBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBBc3NldCB8IEFzc2V0VHlwZSB8IENvbnRlbnQgfCBFdmVudD4oKTtcbiAgc3RhdHVzID0gbmV3IE1hcDxzdHJpbmcsIFN0YXR1cz4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3duZXJSZXNvbHZlciA9IGluamVjdChPd25lclJlc29sdmVyU2VydmljZSk7XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5jYWNoZS5jbGVhcigpO1xuICAgIHRoaXMuc3RhdHVzLmNsZWFyKCk7XG4gIH1cblxuICBhc3luYyBsb2FkUmVmZXJlbmNlcyhyZWZlcmVuY2VzOiBDb250ZXh0UmVmZXJlbmNlW10pIHtcbiAgICBjb25zdCBhc3NldElkcyA9IFtdO1xuICAgIGNvbnN0IGNvbnRlbnRJZHMgPSBbXTtcbiAgICBjb25zdCBldmVudElkcyA9IFtdO1xuICAgIGNvbnN0IGFzc2V0VHlwZUlkcyA9IFtdO1xuXG4gICAgZm9yIChjb25zdCByZWZlcmVuY2Ugb2YgcmVmZXJlbmNlcykge1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmNhY2hlLmhhcyhyZWZlcmVuY2UuaWQpICYmXG4gICAgICAgIHRoaXMuc3RhdHVzLmdldChyZWZlcmVuY2UuaWQpPy5pc0NvbXBsZXRlXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAocmVmZXJlbmNlLnJlc291cmNlVHlwZSA9PT0gJ2Fzc2V0Jykge1xuICAgICAgICBhc3NldElkcy5wdXNoKHJlZmVyZW5jZS5pZCk7XG4gICAgICB9IGVsc2UgaWYgKHJlZmVyZW5jZS5yZXNvdXJjZVR5cGUgPT09ICdhc3NldC10eXBlJykge1xuICAgICAgICBhc3NldFR5cGVJZHMucHVzaChyZWZlcmVuY2UuaWQpO1xuICAgICAgfSBlbHNlIGlmIChyZWZlcmVuY2UucmVzb3VyY2VUeXBlID09PSAnY29udGVudCcpIHtcbiAgICAgICAgY29udGVudElkcy5wdXNoKHJlZmVyZW5jZS5pZCk7XG4gICAgICB9IGVsc2UgaWYgKHJlZmVyZW5jZS5yZXNvdXJjZVR5cGUgPT09ICdldmVudCcpIHtcbiAgICAgICAgZXZlbnRJZHMucHVzaChyZWZlcmVuY2UuaWQpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChhc3NldElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBhc3NldElkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmdldEFzc2V0cyh7IGZpbHRlcjogYF9pZD1AJHthc3NldElkcy5qb2luKCcsJyl9YCB9KVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBvd25lcnMgPSBhd2FpdCB0aGlzLm93bmVyUmVzb2x2ZXIucmVzb2x2ZU93bmVycyhcbiAgICAgICAgICAgIHJlc3BvbnNlLmRvY3MubWFwKChhKSA9PiBhLm93bmVyPy5pZCksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBmb3VuZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgYXNzZXQgb2YgcmVzcG9uc2UuZG9jcykge1xuICAgICAgICAgICAgaWYgKGFzc2V0Lm93bmVyPy5pZCkge1xuICAgICAgICAgICAgICAoYXNzZXQub3duZXIgYXMgYW55KS5uYW1lID1cbiAgICAgICAgICAgICAgICBvd25lcnNbYXNzZXQub3duZXIuaWRdIHx8IGFzc2V0Lm93bmVyLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoYXNzZXQuaWQsIGFzc2V0KTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChhc3NldC5pZCwge1xuICAgICAgICAgICAgICBpc0NvbXBsZXRlOiB0cnVlLFxuICAgICAgICAgICAgICBpc0Vycm9yOiBmYWxzZSxcbiAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm91bmRJZHMuYWRkKGFzc2V0LmlkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBhc3NldElkcykge1xuICAgICAgICAgICAgaWYgKCFmb3VuZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgYXNzZXRJZHMuZm9yRWFjaCgoaWQpID0+XG4gICAgICAgICAgICB0aGlzLnN0YXR1cy5zZXQoaWQsIHtcbiAgICAgICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoYXNzZXRUeXBlSWRzLmxlbmd0aCA+IDApIHtcbiAgICAgIGFzc2V0VHlwZUlkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmdldEFzc2V0VHlwZXMoeyBmaWx0ZXI6IGBfaWQ9QCR7YXNzZXRUeXBlSWRzLmpvaW4oJywnKX1gIH0pXG4gICAgICAgIC50aGVuKGFzeW5jIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgIGNvbnN0IG93bmVycyA9IGF3YWl0IHRoaXMub3duZXJSZXNvbHZlci5yZXNvbHZlT3duZXJzKFxuICAgICAgICAgICAgcmVzcG9uc2UuZG9jcy5tYXAoKGEpID0+IGEub3duZXI/LmlkKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGNvbnN0IGZvdW5kSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICAgICAgZm9yIChjb25zdCBhc3NldFR5cGUgb2YgcmVzcG9uc2UuZG9jcykge1xuICAgICAgICAgICAgaWYgKGFzc2V0VHlwZS5vd25lcj8uaWQpIHtcbiAgICAgICAgICAgICAgKGFzc2V0VHlwZS5vd25lciBhcyBhbnkpLm5hbWUgPVxuICAgICAgICAgICAgICAgIG93bmVyc1thc3NldFR5cGUub3duZXIuaWRdIHx8IGFzc2V0VHlwZS5vd25lci5pZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2FjaGUuc2V0KGFzc2V0VHlwZS5pZCwgYXNzZXRUeXBlKTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChhc3NldFR5cGUuaWQsIHtcbiAgICAgICAgICAgICAgaXNDb21wbGV0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgICAgIGlzTG9hZGluZzogZmFsc2UsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGZvdW5kSWRzLmFkZChhc3NldFR5cGUuaWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmb3IgKGNvbnN0IGlkIG9mIGFzc2V0VHlwZUlkcykge1xuICAgICAgICAgICAgaWYgKCFmb3VuZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgYXNzZXRUeXBlSWRzLmZvckVhY2goKGlkKSA9PlxuICAgICAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICBpc0Vycm9yOiB0cnVlLFxuICAgICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRlbnRJZHMubGVuZ3RoID4gMCkge1xuICAgICAgY29udGVudElkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmdldENvbnRlbnRzKHtcbiAgICAgICAgICBmaWx0ZXI6IGBfaWQ9QCR7Y29udGVudElkcy5qb2luKCcsJyl9YCxcbiAgICAgICAgICBwb3B1bGF0ZTogJ2FuYWx5c2lzJyxcbiAgICAgICAgfSlcbiAgICAgICAgLnRoZW4oYXN5bmMgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgY29uc3Qgb3duZXJzID0gYXdhaXQgdGhpcy5vd25lclJlc29sdmVyLnJlc29sdmVPd25lcnMoXG4gICAgICAgICAgICByZXNwb25zZS5kb2NzLm1hcCgoYykgPT4gYy5vd25lcj8uaWQpLFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgZm91bmRJZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNvbnRlbnQgb2YgcmVzcG9uc2UuZG9jcykge1xuICAgICAgICAgICAgaWYgKGNvbnRlbnQub3duZXI/LmlkKSB7XG4gICAgICAgICAgICAgIChjb250ZW50Lm93bmVyIGFzIGFueSkubmFtZSA9XG4gICAgICAgICAgICAgICAgb3duZXJzW2NvbnRlbnQub3duZXIuaWRdIHx8IGNvbnRlbnQub3duZXIuaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmNhY2hlLnNldChjb250ZW50LmlkLCBjb250ZW50KTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChjb250ZW50LmlkLCB7XG4gICAgICAgICAgICAgIGlzQ29tcGxldGU6IHRydWUsXG4gICAgICAgICAgICAgIGlzRXJyb3I6IGZhbHNlLFxuICAgICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBmb3VuZElkcy5hZGQoY29udGVudC5pZCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZvciAoY29uc3QgaWQgb2YgY29udGVudElkcykge1xuICAgICAgICAgICAgaWYgKCFmb3VuZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgY29udGVudElkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICBpc0NvbXBsZXRlOiBmYWxzZSxcbiAgICAgICAgICAgICAgaXNFcnJvcjogdHJ1ZSxcbiAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChldmVudElkcy5sZW5ndGggPiAwKSB7XG4gICAgICBldmVudElkcy5mb3JFYWNoKChpZCkgPT5cbiAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgaXNDb21wbGV0ZTogZmFsc2UsXG4gICAgICAgICAgaXNFcnJvcjogZmFsc2UsXG4gICAgICAgICAgaXNMb2FkaW5nOiB0cnVlLFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgICB0aGlzLmFwaVNlcnZpY2VcbiAgICAgICAgLmdldEV2ZW50cyh7IGZpbHRlcjogYF9pZD1AJHtldmVudElkcy5qb2luKCcsJyl9YCB9KVxuICAgICAgICAudGhlbihhc3luYyAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBvd25lcnMgPSBhd2FpdCB0aGlzLm93bmVyUmVzb2x2ZXIucmVzb2x2ZU93bmVycyhcbiAgICAgICAgICAgIHJlc3BvbnNlLmRvY3MubWFwKChlKSA9PiBlLm93bmVyPy5pZCksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBmb3VuZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgcmVzcG9uc2UuZG9jcykge1xuICAgICAgICAgICAgaWYgKGV2ZW50Lm93bmVyPy5pZCkge1xuICAgICAgICAgICAgICAoZXZlbnQub3duZXIgYXMgYW55KS5uYW1lID1cbiAgICAgICAgICAgICAgICBvd25lcnNbZXZlbnQub3duZXIuaWRdIHx8IGV2ZW50Lm93bmVyLmlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5jYWNoZS5zZXQoZXZlbnQuaWQsIGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChldmVudC5pZCwge1xuICAgICAgICAgICAgICBpc0NvbXBsZXRlOiB0cnVlLFxuICAgICAgICAgICAgICBpc0Vycm9yOiBmYWxzZSxcbiAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgZm91bmRJZHMuYWRkKGV2ZW50LmlkKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZm9yIChjb25zdCBpZCBvZiBldmVudElkcykge1xuICAgICAgICAgICAgaWYgKCFmb3VuZElkcy5oYXMoaWQpKSB7XG4gICAgICAgICAgICAgIHRoaXMuc3RhdHVzLnNldChpZCwge1xuICAgICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGlzRXJyb3I6IHRydWUsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nOiBmYWxzZSxcbiAgICAgICAgICAgICAgICBub3RGb3VuZDogdHJ1ZSxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGFzc2V0SWRzID0gcmVzcG9uc2UuZG9jcy5tYXAoXG4gICAgICAgICAgICAoZSkgPT5cbiAgICAgICAgICAgICAgKHtcbiAgICAgICAgICAgICAgICBpZDogZS5hc3NldFJlZixcbiAgICAgICAgICAgICAgICByZXNvdXJjZVR5cGU6ICdhc3NldCcsXG4gICAgICAgICAgICAgIH0pIGFzIENvbnRleHRSZWZlcmVuY2UsXG4gICAgICAgICAgKTtcbiAgICAgICAgICB0aGlzLmxvYWRSZWZlcmVuY2VzKGFzc2V0SWRzKTtcbiAgICAgICAgfSlcbiAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgICAgICAgIGV2ZW50SWRzLmZvckVhY2goKGlkKSA9PlxuICAgICAgICAgICAgdGhpcy5zdGF0dXMuc2V0KGlkLCB7XG4gICAgICAgICAgICAgIGlzQ29tcGxldGU6IGZhbHNlLFxuICAgICAgICAgICAgICBpc0Vycm9yOiB0cnVlLFxuICAgICAgICAgICAgICBpc0xvYWRpbmc6IGZhbHNlLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0Q29udGV4dChpZDogc3RyaW5nKTogQXNzZXQgfCBBc3NldFR5cGUgfCBDb250ZW50IHwgRXZlbnQge1xuICAgIHJldHVybiB0aGlzLmNhY2hlLmdldChpZCk7XG4gIH1cblxuICBhc3NldEZvckNvbnRlbnQoY29udGVudElkOiBzdHJpbmcpOiBBc3NldCB8IG51bGwge1xuICAgIGZvciAoY29uc3QgcmVzb3VyY2Ugb2YgdGhpcy5jYWNoZS52YWx1ZXMoKSkge1xuICAgICAgaWYgKChyZXNvdXJjZSBhcyBBc3NldCkuYXR0YWNobWVudHM/LmluY2x1ZGVzKGNvbnRlbnRJZCkpIHtcbiAgICAgICAgcmV0dXJuIHJlc291cmNlIGFzIEFzc2V0O1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGFzc2V0Rm9yRXZlbnQoZXZlbnQ6IEV2ZW50KTogQXNzZXQgfCBudWxsIHtcbiAgICBpZiAoZXZlbnQuYXNzZXRSZWYpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlLmdldChldmVudC5hc3NldFJlZikgYXMgQXNzZXQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIGdldElkRm9yTmFtZShuYW1lOiBzdHJpbmcpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBmb3IgKGNvbnN0IHJlc291cmNlIG9mIHRoaXMuY2FjaGUudmFsdWVzKCkpIHtcbiAgICAgIGlmIChcbiAgICAgICAgKHJlc291cmNlIGFzIEFzc2V0IHwgQXNzZXRUeXBlIHwgRXZlbnQpLm5hbWU/LnRvTG93ZXJDYXNlKCkgPT09XG4gICAgICAgICAgbmFtZS50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICAgIChyZXNvdXJjZSBhcyBDb250ZW50KS5maWxlbmFtZT8udG9Mb3dlckNhc2UoKSA9PT0gbmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIHJlc291cmNlLmlkO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbnRleHRSZWZlcmVuY2Uge1xuICByZWZlcmVuY2VfaWQ6IG51bWJlcjtcbiAgaWQ6IHN0cmluZztcbiAgcmVzb3VyY2VUeXBlOiAnYXNzZXQnIHwgJ2Fzc2V0LXR5cGUnIHwgJ2NvbnRlbnQnIHwgJ2V2ZW50JyB8ICd3ZWItc291cmNlJztcbiAgcGFnZU51bWJlcj86IG51bWJlcjtcbiAgZmlyc3RPY2N1cnJlbmNlPzogYm9vbGVhbjtcbiAgcmV0cmlldmFsRGF0ZT86IHN0cmluZztcbiAgdGl0bGU/OiBzdHJpbmc7XG59XG4iXX0=","import { NgModule, isDevMode } from '@angular/core';\nimport { DefaultTranspiler, TRANSLOCO_LOADER, TRANSLOCO_TRANSPILER, TranslocoModule, provideTransloco, } from '@jsverse/transloco';\nimport { Injectable } from '@angular/core';\nimport { of } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport const translations = {\n en: {\n accepted: 'Accepted',\n access_restricted: 'Access restricted',\n access_unrestricted: 'Access unrestricted',\n account: 'Account',\n action: 'Action',\n actions: 'Actions',\n active: 'Active',\n add_attachment: 'Add Attachment',\n add_attribute: 'Add Attribute',\n add_new: 'Add New',\n add_new_member: 'Add new member',\n add_new_organization: 'Add new Organization',\n add_to_clipboard: 'Add to clipboard',\n address: 'Address',\n administration: 'Administration',\n ai: {\n abort: 'Abort',\n accept: 'Accept',\n accessed_at: 'Accessed at',\n adam_ai_intro: 'Engage in real-time conversations with Adam AI, your expert assistant in Asset Intelligence. Get instant, intelligent insights and solutions tailored to your needs.',\n agent_unavailable: 'Agent unavailable',\n ai_placeholder: 'How can ADAM help you today?',\n and: 'and',\n ask_about_asset: 'Ask ADAM AI about this asset',\n ask_adam: 'Ask Adam AI',\n asset_intelligence: 'Asset Intelligence',\n assistants: 'Assistants',\n chat_deleted: 'Chat deleted',\n chats: 'Chats',\n clear_history: 'Clear History',\n complete_and_create_report: 'Complete and create report',\n context: 'Referenced Context',\n context_found: 'Found related context',\n context_none: 'No related Assets or files found. Consider revising your prompt.',\n context_search: 'Searching for related Assets and files...',\n continue_chat: 'Continue Chat',\n continue_previous_chat: 'Continue previous Chat',\n cookies: 'Cookies',\n create_new_chat: 'Create New Chat',\n create_new_event: 'Create new Event with the help of Adam AI',\n de: 'Deutsch',\n delete_chat: 'Delete Chat',\n delete_item: 'Delete Item',\n delete_item_message: '{count, plural, one {Are you sure you want to delete this item?<br><br><b>{{ items }}</b>} other {Are you sure you want to delete these # items?}}',\n delete_item_message_general: 'Are you sure you want to delete this item?',\n delete_item_title: '{count, plural, one {Delete Item} other {Delete Multiple Items}}',\n document: 'Document',\n en: 'English',\n failed_to_create_chat: 'Failed to create chat',\n failed_to_delete_chat: 'Failed to delete chat',\n failed_to_initialize_chat: 'Failed to initialize chat',\n failed_to_load_assistants: 'Failed to load assistants',\n failed_to_load_chats: 'Failed to load chat history',\n failed_to_process_message: 'The message could not be processed. Please try again.',\n failed_to_send_message: 'Failed to send message',\n failed_to_update_model: 'Failed to update model',\n file_type: {\n archive: 'Archive',\n audio: 'Audio',\n image: 'Image',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unknown',\n video: 'Video',\n },\n finish_reason: {\n 'content-filter': 'Your request was blocked due to content filters. Please try rephrasing your question and try again.',\n error: 'Something went wrong. Please try again later.',\n length: 'The request is too long to process. Please try again or start a new conversation.',\n unknown: 'Something went wrong. Please try again later.',\n },\n 'gpt-4o': 'GPT-4o',\n 'gpt-4o-2024-08-06': 'GPT-4o',\n 'gpt-4o-2024-11-20': 'GPT-4o',\n 'gpt-4o-mini': 'GPT-4o Mini',\n 'gpt-4o-mini-2024-07-18': 'GPT-4o Mini',\n help_me: 'Ask Adam AI for help',\n last_message: 'Last Message',\n model: 'GPT Model',\n model_updated: 'Model updated',\n no_chats_found: 'No chats found',\n no_messages: 'No messages yet',\n none_of_those: 'None of those',\n of_document: 'of document',\n openai_disclaimer: 'In the preview version of the Asset Web Assistant, your data will be processed by OpenAI outside the EU. Do you agree with this?',\n previous_chats: 'Previous Chats',\n prompt_suggestions: {\n 'asset-info': {\n prompt: 'Provide a detailed maintenance plan for my asset',\n title: 'Asset Info',\n },\n intro: {\n prompt: 'What is Adam AI and how can it help me with asset management?',\n title: 'Introduction',\n },\n },\n prompts: {\n assetId: '. The ID of the Asset is {{assetId}}',\n assetKey: '. The external ID of the Asset is {{assetKey}}',\n asset: 'I have a question related to the Asset {{assetName}}',\n help: 'Please help me solve this task {{taskId}}',\n incident: 'Please create a new incident for the Asset {{assetName}}',\n report: 'Please create a report for the Asset {{assetName}}',\n },\n reference_not_found: 'Reference not found',\n retry: 'Retry',\n select_asset: 'Select Asset',\n send_message: 'Send Message',\n source: 'Source',\n stop_recording: 'Stop Recording',\n suggested_prompts: 'Suggested prompts to get started with ADAM AI',\n threads: 'Threads',\n toast_error_delete_entry: 'Could not delete {{entry}}.',\n toast_success_delete_entry: '{{entry}} deleted.',\n tools: {\n createAxaltaEvent: {\n completed: 'Event was created',\n failed: 'Event could not be created',\n pending: 'Creating Event',\n processing: 'Creating Event',\n },\n createEvent: {\n completed: 'Event was created',\n failed: 'Event could not be created',\n pending: 'Creating Event',\n processing: 'Creating Event',\n },\n createReport: {\n completed: 'Report was created',\n failed: 'Report could not be created',\n pending: 'Creating Report',\n processing: 'Creating Report',\n },\n getAdditionalDataTemplate: {\n completed: 'Additional data was retrieved',\n failed: 'Additional data could not be retrieved',\n pending: 'Retrieving Additional data',\n processing: 'Retrieving Additional data',\n },\n getAssetData: {\n completed: 'Asset data was retrieved',\n failed: 'Asset data could not be retrieved',\n pending: 'Retrieving Asset data',\n processing: 'Retrieving Asset data',\n },\n getReportTemplate: {\n completed: 'Report template was retrieved',\n failed: 'Report template could not be retrieved',\n pending: 'Retrieving Report template',\n processing: 'Retrieving Report template',\n },\n searchForAssetAxalta: {\n completed: 'Search for Asset completed',\n failed: 'Search for Asset failed',\n pending: 'Searching for Asset',\n processing: 'Searching for Asset',\n },\n searchForAssetWithId: {\n completed: 'Search for Asset with ID completed',\n failed: 'Search for Asset with ID failed',\n pending: 'Searching for Asset with ID',\n processing: 'Searching for Asset with ID',\n },\n searchForAssets: {\n completed: 'Search for Assets completed',\n failed: 'Search for Assets failed',\n pending: 'Searching for Assets',\n processing: 'Searching for Assets',\n },\n searchForDocuments: {\n completed: 'Search for Documents completed',\n failed: 'Search for Documents failed',\n pending: 'Searching for Documents',\n processing: 'Searching for Documents',\n },\n searchForEvents: {\n completed: 'Search for Events completed',\n failed: 'Search for Events failed',\n pending: 'Searching for Events',\n processing: 'Searching for Events',\n },\n },\n use_microphone: 'Use Microphone',\n use_web_search: 'Search in Web',\n view_previous_chats: 'View Previous Chats',\n web_source: 'Web Source',\n },\n alert: 'Alert',\n alerts: 'Alerts',\n allowed_to: \"You're allowed to\",\n and: 'and',\n applications: 'Applications',\n apps: 'Applications',\n appstore: 'App Store',\n ascending: 'Ascending',\n asset: 'Asset',\n asset_intelligence: 'Asset Intelligence',\n asset_manager: 'Asset Manager',\n asset_type: 'Asset Type',\n assets: 'Assets',\n assettype: 'Asset Type',\n assettypes: 'Asset Types',\n attachment: 'Attachment',\n attachments: 'Attachments',\n audit_logs: 'Audit Logs',\n author: 'Author',\n authorization_type: 'Authorization Type',\n average: 'Average',\n back: 'Back',\n back_to_organizations: 'Back to organizations',\n bucket_time_range: 'Bucket Time Range (Default is 24h)',\n by: 'by',\n 'cad-preview': {\n 'cad-direction-y': 'Set Y as up vector',\n 'cad-direction-z': 'Set Z as up vector',\n 'cad-fixed-vector': 'Fixed up vector',\n 'cad-menu-center': 'Center',\n 'cad-menu-flip-vector': 'Flip',\n 'cad-unfixed-vector': 'Unfixed vector',\n 'cad-viewer-flip-camera-mode-orthogonal': 'Turn on the Orthographic camera',\n 'cad-viewer-flip-camera-mode-perspective': 'Turn on the Perspective camera',\n 'error-default-filetype': 'Invalid filetype',\n 'error-invalid-filetype': '{{filetype}} is not supported. Try compressing files in a ZIP file if this is a CAD-drawing',\n },\n calendar: 'Calendar',\n cancel: 'Cancel',\n catalog: 'Catalog',\n 'category.delete': 'Remove category',\n 'cert.add.new': 'Add new Certificate',\n 'cert.delete': 'Remove Certificate',\n 'cert.edit': 'Edit Certificate',\n 'cert.name': \"Certificate's name\",\n cert_add_new_description: 'Management of organization related certificates',\n certificate: 'Certificate',\n 'certificate.add.new': 'Add new Certificate',\n certification: {\n date_issue: 'Date of Issue',\n expiration_date: 'Expiration date',\n institution: 'Certification Institution',\n number: 'Certificate number',\n },\n children: 'Children',\n choose: 'Choose',\n choose_file: 'Choose file',\n city: 'City',\n color: 'Color',\n column_settings: 'Column Settings',\n comment: 'Comment',\n company_manager: 'Company Manager',\n company_matching: 'Company Matching',\n complete_subscription: 'Complete Subscription',\n confirm: 'Confirm',\n consent_management: {\n accept_all: 'Accept all',\n accept_all_note: 'By clicking \"Accept all\", you agree to the use of essential and analytics cookies.',\n always_enabled: 'Always enabled',\n cookie_groups: {\n analytics: {\n description: 'These cookies gather data on website usage, such as which pages are visited, to help us identify the most popular pages and understand how visitors navigate the site. <br /> Website usage data is captured using persistent first and third-party cookies and other tracking technologies to determine the popularity of products and online activity.',\n title: 'Analytics cookies',\n },\n essential: {\n description: 'These cookies are essential for the operation of the website. They are usually only set in response to your actions, such as setting your privacy preferences. These cookies do not store any personally identifiable information.',\n title: 'Essential cookies',\n },\n },\n cookie_intro: 'This website uses cookies and other tracking technologies to enable essential site functionality, improve the user experience, as well as for analytics and personalisation purposes.',\n cookie_intro_extended: 'This website uses cookies and other tracking technologies to enable essential site functionality, improve the user experience, as well as for analytics and personalisation purposes.<br />We use Microsoft Clarity to analyse how our website is used and to improve our products. By using our site, you consent to us and Microsoft collecting and using this data.',\n cookie_learn_more: 'To learn more, please view our',\n cookie_preferences_center: 'Cookie Preferences Center',\n cookie_settings: 'Cookie Settings',\n cookie_usage: 'Cookie usage',\n manage_preferences: 'Manage preferences',\n reject_all: 'Reject all',\n save_preferences: 'Save preferences',\n },\n content: 'Content',\n 'content.file_type': {\n archive: 'Archive',\n audio: 'Audio',\n image: 'Image',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unknown',\n video: 'Video',\n },\n 'content.show_preview': 'Show Preview',\n 'content.size': 'Size',\n 'content.toast_downloading_content': 'Downloading content...',\n 'content.toast_error_download_content': 'Could not download content.',\n 'content.toast_success_download_content': 'Content downloaded successfully.',\n content_drop_zone_text: 'Drag & Drop File',\n content_manager: 'Content Manager',\n contents: 'Contents',\n copy_id: 'Copy ID',\n count: 'Count',\n created: 'Created',\n critical: 'Critical',\n current_organization: 'Current Organization',\n danger_zone: 'Danger Zone',\n dashboards: 'Dashboards',\n data: 'Data',\n date: 'Date',\n day: 'Day',\n days: 'Days',\n de: 'Deutsch',\n default: 'Default',\n delete: 'Delete',\n delete_attachment: 'Delete Attachment',\n delete_member: 'Remove member',\n delete_revision: 'Delete Revision',\n delete_title: 'Delete Title',\n deleted: 'Deleted',\n delimiter: 'Delimiter, like ; or :',\n descending: 'Descending',\n description: 'Description',\n details: 'Details',\n domain: 'Domain',\n 'domain.delete': 'Delete Domain name',\n domain_name: 'Domain name',\n domain_name_placeholder: 'www.domain.com',\n domain_new: 'Add new domain',\n domains: 'Domains',\n download: 'Download',\n download_attachment: 'Download Attachment',\n drag_drop_file: {\n error: {\n file_too_large: \"The file '{{fileName}}' exceeds the maximum allowed size of {{maxFileSize}} and has been ignored.\",\n file_type_not_allowed: \"The file type of '{{fileName}}' is not allowed and has been rejected.\",\n },\n max_file_size: 'Maximum file size',\n prompt_1: 'Drag & drop {limit, plural, one {file} other {files}} here or ',\n prompt_2: 'click to browse',\n warning: {\n max_file_count: 'You have selected {{fileCount}} files, but the maximum allowed is {{maxFileCount}}. Only the first {{maxFileCount}} files have been accepted.',\n },\n },\n duration: 'Duration',\n edit: 'Edit',\n edit_attachment: 'Edit Attachment',\n edit_event_level: 'Edit Event Level',\n edit_title: 'Edit Title',\n editor: 'Editor',\n email: 'Email',\n employees: 'Employees',\n en: 'English',\n encoding: 'Encoding',\n endpoints: 'Notification Endpoints',\n english: 'English',\n entries: 'Entries',\n error: 'Error',\n error_loading: 'Failed to load {item}',\n error_message_update: 'Could not update User Settings',\n errors: 'Errors',\n event: 'Event',\n event_level: 'Event Level',\n events: 'Events',\n filename: 'Filename',\n flow: 'Flow',\n flow_studio: 'Flow Studio',\n flowdeployment: 'Flow Deployment',\n flowdeployments: 'Flow Deployments',\n flowfunction: 'Flow Function',\n flowfunctions: 'Flow Functions',\n flowmodel: 'Flow Model',\n flowmodule: 'Flow Module',\n flowmodules: 'Flow Modules',\n flows: 'Flows',\n form_error_delimiter: 'Delimiter required.',\n form_error_details: 'Details Form has Errors.',\n form_error_email: 'Email is required.',\n form_error_empty_method: 'The method must be not empty.',\n form_error_empty_url: 'The URL must be not empty.',\n form_error_encoding: 'Encoding need to set.',\n form_error_expiry_date: 'Expiry date is required.',\n form_error_group: 'At least one group must be selected.',\n form_error_length: 'Name must be at least {{length}} characters long.',\n form_error_max_length: 'Must be no more than {{length}} characters',\n form_error_min_length: 'Must be at least {{length}} characters',\n form_error_name: 'Name is required.',\n form_error_name_pattern: 'Only letters, numbers, spaces, hyphens (-), and underscores (_) are allowed',\n form_error_read: 'At least one read permission must be selected.',\n form_error_read_write: 'At least one read/write permission must be selected.',\n form_error_required: 'Field is required',\n form_error_role_pattern: 'Only lowercase letters, hyphens (-), and underscores (_) are allowed',\n form_error_schema_req: 'Schema is required.',\n form_error_select_file: 'A file must be selected.',\n form_error_select_type: 'An asset type must be selected.',\n form_error_source: 'Source is needed.',\n form_error_unique: 'Property has to be unique: ',\n form_error_view: 'View is needed.',\n general: 'General',\n german: 'German',\n global: 'Global',\n group: 'Group',\n group_by: 'Group by',\n history: 'History',\n hour_format: '{{time}}-hour Time Format',\n id: 'ID',\n inactive: 'Inactive',\n info: 'Info',\n invite_new_employee: 'Invite new employee',\n invite_new_employee_description: 'Inviting new employees and assigning them to specific roles',\n invite_new_member: 'Invite new member',\n invite_new_member_description: 'Inviting new member and assigning them to specific roles',\n 'jsf_widgets.content.error.resolving_content_failed': 'Could not resolve Content',\n 'jsf_widgets.content_reference.error.asset_id_missing': 'Asset ID not set',\n 'jsf_widgets.content_reference.error.loading_attachments_failed': 'Could not load Asset Attachments',\n 'jsf_widgets.cron.error.invalid_expression': 'Not a valid cron expression',\n 'jsf_widgets.duration.error.invalid_duration': 'Not a valid duration',\n 'jsf_widgets.permission.error.load_permissions_all_users_failed': 'Could not load Permissions of all users',\n 'jsf_widgets.permission.error.load_permissions_failed': 'Could not load Permissions',\n 'jsf_widgets.resource_reference.error.searching_failed': 'Search could not be completed',\n keys: 'Keys',\n label: 'Label',\n labels: 'Labels',\n labels_edit: 'Edit Labels',\n labels_edit_default: 'Edit Global Default Labels',\n language: 'Language',\n last_updated: 'Last updated',\n leave: 'Leave',\n legal_notice: 'Legal Notice',\n list: 'List',\n loading: 'loading...',\n logo: 'Logo',\n manage_groups: 'Manage Groups',\n manage_identity_providers: 'Role that allows to manage the configured identity providers of the company',\n manage_invitations: 'Role that allows to manage open invitations of the company',\n manage_members: 'Role that allows to manage the members of the company',\n manage_organization: 'Role that allows to manage the company and its details',\n manage_roles: 'Role that allows to manage the roles of the company',\n manager: 'App Manager',\n maximum: 'Maximum',\n member: 'Mitglied',\n message: 'Message',\n method: 'Method',\n modules: 'Modules',\n month: 'Month',\n months: 'Months',\n my_tasks: 'My Tasks',\n name: 'Name',\n new_feminine: 'New',\n new_masculine: 'New',\n new_neutral: 'New',\n new_tag: 'New Label',\n next: 'Next',\n next_step: 'Next',\n no_description: 'No description',\n no_labels: 'No Labels',\n no_preview: 'No preview available',\n no_result: 'No results found!',\n not_assigned: 'Not assigned',\n notification_close_tooltip: 'Close',\n notification_info_empty_list: 'No notifications available',\n notification_open_manager_tooltip: 'Open Notification Manager',\n notification_open_tooltip: 'Open',\n notification_read_all_tooltip: 'Mark all as read',\n notification_read_tooltip: 'Mark as read',\n notification_rules: 'Notification Rules',\n notification_toast_info: 'Received a new notification!',\n notification_unread_tooltip: 'Mark as unread',\n notificationendpoint: 'Notification Endpoint',\n notificationendpoints: 'Notification Endpoints',\n notificationrule: 'Notification Rule',\n notificationrules: 'Notification Rules',\n notifications: 'Notifications',\n offer_requests: 'Offer Requests',\n offers: 'Offers',\n ok: 'OK',\n open: 'Open',\n opened: 'Opened',\n organization: 'Organization',\n 'organization.delete': 'Delete Organization',\n 'organization.delete_as_superuser': 'Delete Organization as Superuser',\n 'organization.request_delete': 'Request Organization Deletion',\n organization_delete_message: 'Should the Organization <b>{organization}</b> and all associated data really be deleted?',\n organization_overview: 'Organization Overview',\n organization_request_delete_description: 'You hereby request the deletion of your Organization. Please note that the deletion of an Organization is irrevocable and all data belonging to the Organization will also be deleted.',\n organization_tenders: 'Organization Tenders',\n organizations: 'Organizations',\n overview: 'Overview',\n owner: {\n edit_permission: 'Members of {{org}} are allowed to view and edit',\n managed_by: 'Managed by',\n view_permission: 'Members of {{org}} are allowed to view',\n },\n page: 'Page',\n parent: 'Parent',\n password: 'Password',\n pending: 'Pending',\n period: 'Period',\n permissions: 'Permissions',\n phone_number: 'Phone Number',\n preview: 'Preview',\n previous: 'Previous',\n privacy_policy: 'Privacy Policy',\n profile: 'Profile',\n properties: 'Properties',\n property: 'Property',\n quarter: 'Quarter',\n read_permissions: 'Read Permissions',\n read_permissions_edit_default: 'Edit Default Read/Write Permissions',\n read_write_permissions: 'Read/Write Permissions',\n reference: 'Reference',\n references: 'References',\n reset: 'Reset',\n response_type: 'Response Type',\n revision: 'Revision',\n 'role.add.new': 'Add role',\n 'role.delete': 'Remove role',\n 'role.edit': 'Edit role description',\n 'role.edit.info': 'Each role must have a unique name and cannot be modified after creating of the role. Only lowercase letters, hyphens (-), and underscores (_) are allowed in the name.',\n 'role.name': 'Name of the role',\n role_add_new_description: 'Establishing new roles within your organization and distributing them to resources or assigning them to members as needed.',\n role_admin: 'Admin Role',\n role_info: 'Roles to assign the user. Admin role gets all roles. View role gets view only.',\n role_view: 'View Role',\n roles: 'Roles',\n rollback_version: 'Roll back To selected version',\n save: 'Save',\n schema: 'Schema',\n search: 'Search...',\n 'search.no_results': 'No results found',\n search_asset_types: 'Search asset types...',\n search_assets: 'Search assets...',\n search_for_page: 'Search for a page',\n search_roles: 'Search roles...',\n search_tsm: 'Search timeseries...',\n secret: 'Secret',\n secrets: 'Secrets',\n select: 'Select',\n select_file: 'Select File',\n selected_file: 'Selected File',\n 'service.add.new': 'Add Service',\n 'service.delete': 'Remove Service',\n services: 'Services',\n settings: 'Settings',\n setup_certs_description: 'Setup associated certificates',\n show: 'Show',\n show_differences: 'Show differences',\n show_preview: 'Show Preview',\n sign_in: 'Sign in',\n sign_out: 'Sign out',\n signed_in_as: 'Signed in as',\n sort: 'Sort',\n statistic_queries: 'Statistic Queries',\n status: 'Status',\n supertype: 'Supertype',\n system: 'System',\n tags: 'Labels',\n task: 'Task',\n tasks: 'Tasks',\n time: 'Time',\n time_series: 'Time Series',\n time_series_manager: 'Time Series Manager',\n timeseries: 'Time Series',\n title: 'Title',\n toast_active_organization_error: 'Failed to change active organization.',\n toast_active_organization_loading: 'Changing active organization...',\n toast_active_organization_success: 'Successfully changed active organization.',\n toast_error: 'Error!',\n toast_error_add_employee: \"Couldn't send the invitation of the new employee\",\n toast_error_add_member: \"Couldn't send the invitation of the new member\",\n toast_error_add_role: \"Couldn't add role\",\n toast_error_authenticate: 'Could not authenticate.',\n toast_error_create_tsm: 'Could not create Time Series.',\n toast_error_index_content: 'Error when retrieving indexing status',\n toast_error_invitation_send: 'Could not send invitation',\n toast_error_load_cert: 'Could not load certificates',\n toast_error_load_event_causes: 'Could not load Event causes override.',\n toast_error_load_item: 'Could not load {{item}}.',\n toast_error_load_list: 'Could not load list.',\n toast_error_load_org_roles: 'Could not load roles of the active company.',\n toast_error_load_permissions: 'Could not load Permissions',\n toast_error_load_permissions_all_users: 'Could not load Permissions of all users',\n toast_error_load_preview: 'Could not load preview.',\n toast_error_load_role: 'Could not load roles',\n toast_error_load_service: 'Could not load services',\n toast_error_load_tender: 'Could not load tender.',\n toast_error_organization_delete: 'Could not delete organization',\n toast_error_organization_name_exists: 'Organization with name {{name}} already exists',\n toast_error_rollback_version: 'Cannot roll back to selected version',\n toast_error_save_item: 'Could not save {{item}}',\n toast_error_update_attachment: '{count, plural, one {Could not update attachment} other {Could not update # attachments}}',\n toast_error_update_event_causes: 'Could not update Event causes override.',\n toast_error_update_service: 'Could not update services',\n toast_error_upload_file: '{count, plural, one {Could not upload {{file}}} other {Could not upload # files}}',\n toast_error_upload_file_max: 'No more than {{max}} files may be uploaded at the same time.',\n toast_form_error_required: '{{param}} cannot be empty',\n toast_form_error_required_selection: 'You must select at least one {{param}}',\n toast_form_error_required_selection_feminine: 'You must select at least one {{param}}',\n toast_info: 'Info!',\n toast_success: 'Success!',\n toast_success_add_employee: 'The invitation of the new employee has been sent successfully',\n toast_success_add_member: 'The invitation of the new member has been sent successfully',\n toast_success_add_role: 'Role has been added successfully',\n toast_success_invitation_send: 'Invitation sent',\n toast_success_update_attachment: '{count, plural, one {Attachment updated} other {# Attachments updated}}',\n toast_success_update_service: 'Service updated.',\n toast_success_upload_file: '{count, plural, one {Upload of {{file}} completed} other {Upload of # files completed}}',\n toast_warning: 'Warning!',\n toast_warning_invalid_form_data: 'Invalid form data. Please check the form for errors.',\n toast_warning_invalid_schema: 'Properties Schema is invalid',\n toast_warning_rollback_version: \"These referenced elements of the revision don't exist anymore: {{entries}}\",\n tour_start: 'Start tour',\n type: 'Type',\n unknown: 'unknown',\n unverified: 'Unverified',\n updated: 'Updated',\n updated_by: 'Updated by',\n upload_date: 'Upload Date',\n upload_file: 'Upload File',\n url: 'URL',\n user: 'User',\n user_roles: 'User Roles',\n username: 'Username',\n vat: 'VAT-ID',\n vat_example: 'VAT-ID must be from Germany (DE followed by 9 digits, e.g. DE123456789) or Austria (ATU followed by 8 digits, e.g. ATU12345678)',\n verified: 'Verified',\n view: 'View',\n view_identity_providers: 'Role that allows to view the configured identity providers of the company',\n view_invitations: 'Role that allows to view all open invitations of the company',\n view_members: 'Role that allows to view all current members of the company',\n view_organization: 'Role that allows to view the company',\n view_roles: 'Role that allows to view all roles of the company',\n warning: 'Warning',\n week: 'Week',\n write_permissions: 'Write Permissions',\n year: 'Year',\n years: 'Years',\n zip_code: 'Postal Code',\n zip_code_error: 'The Postal Code must be valid and not be longer than 10 digits.',\n },\n de: {\n accepted: 'Angenommen',\n access_restricted: 'Zugriff beschränkt',\n access_unrestricted: 'Unbeschränkter Zugriff',\n account: 'Nutzerkonto',\n action: 'Aktion',\n actions: 'Aktionen',\n active: 'Aktiv',\n add_attachment: 'Anhang Hinzufügen',\n add_attribute: 'Attribut Hinzufügen',\n add_new: 'Neue Hinzufügen',\n add_new_member: 'Neues Mitglied hinzufügen',\n add_new_organization: 'Neue Organisation hinzufügen',\n add_to_clipboard: 'Zur Zwischenablage hinzufügen',\n address: 'Adresse',\n administration: 'Verwaltung',\n ai: {\n abort: 'Abbrechen',\n accept: 'Akzeptieren',\n accessed_at: 'Zugegriffen am',\n adam_ai_intro: 'Unterhalten Sie sich in Echtzeit mit Adam AI, Ihrem Expertenassistenten für Asset Intelligence. Erhalten Sie intelligente Einblicke und Lösungen, die auf Ihre Bedürfnisse zugeschnitten sind.',\n agent_unavailable: 'Agent nicht verfügbar',\n ai_placeholder: 'Wie kann ADAM Ihnen heute helfen?',\n and: 'und',\n ask_about_asset: 'ADAM AI über dieses Asset fragen',\n ask_adam: 'Frag Adam AI',\n asset_intelligence: 'Asset Intelligence',\n assistants: 'Assistenten',\n chat_deleted: 'Chat gelöscht',\n chats: 'Chats',\n clear_history: 'Verlauf löschen',\n complete_and_create_report: 'Abschließen und Bericht erstellen',\n context: 'Referenzierter Kontext',\n context_found: 'Kontext gefunden',\n context_none: 'Keine zugehörigen Assets oder Dateien gefunden.',\n context_search: 'Suche nach zugehörigen Assets und Dateien...',\n continue_chat: 'Chat fortsetzen',\n continue_previous_chat: 'Vorherigen Chat fortsetzen',\n cookies: 'Cookies',\n create_new_chat: 'Neuen Chat erstellen',\n create_new_event: 'Neue Meldung mit Hilfe von Adam erstellen',\n de: 'Deutsch',\n delete_chat: 'Chat löschen',\n delete_item: 'Eintrag löschen',\n delete_item_message: '{count, plural, one {Möchten Sie dieses Element wirklich löschen?<br><br><b>{{ items }}</b>} other {Möchten Sie diese # Elemente wirklich löschen?}}',\n delete_item_message_general: 'Möchten Sie dieses Element wirklich löschen?',\n delete_item_title: '{count, plural, one {Element löschen} other {Mehrere Elemente löschen}}',\n document: 'Dokument',\n en: 'English',\n failed_to_create_chat: 'Chat konnte nicht erstellt werden',\n failed_to_delete_chat: 'Chat konnte nicht gelöscht werden',\n failed_to_initialize_chat: 'Chat konnte nicht initialisiert werden',\n failed_to_load_assistants: 'Assistenten konnten nicht geladen werden',\n failed_to_load_chats: 'Chat-Verlauf konnte nicht geladen werden',\n failed_to_process_message: 'Die Nachricht konnte nicht verarbeitet werden. Bitte versuchen Sie es erneut.',\n failed_to_send_message: 'Nachricht konnte nicht gesendet werden',\n failed_to_update_model: 'Modell konnte nicht aktualisiert werden',\n file_type: {\n archive: 'Archiv',\n audio: 'Audio',\n image: 'Bild',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unbekannt',\n video: 'Video',\n },\n finish_reason: {\n 'content-filter': 'Ihre Anfrage wurde aufgrund von Inhaltsfiltern blockiert. Bitte formulieren Sie Ihre Frage um und versuchen Sie es erneut.',\n error: 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.',\n length: 'Die Anfrage ist zu lang, um verarbeitet zu werden. Bitte versuchen Sie es erneut oder starten Sie einen neuen Chat.',\n unknown: 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.',\n },\n 'gpt-4o': 'GPT-4o',\n 'gpt-4o-2024-08-06': 'GPT-4o',\n 'gpt-4o-2024-11-20': 'GPT-4o',\n 'gpt-4o-mini': 'GPT-4o Mini',\n 'gpt-4o-mini-2024-07-18': 'GPT-4o Mini',\n help_me: 'Frag Adam AI um Hilfe',\n last_message: 'Letzte Nachricht',\n model: 'GPT-Modell',\n model_updated: 'Modell aktualisiert',\n no_chats_found: 'Keine Chats gefunden',\n no_messages: 'Noch keine Nachrichten',\n none_of_those: 'Keines davon',\n of_document: 'des Dokuments',\n openai_disclaimer: 'In der Vorschauversion des Asset Web Assistenten werden Ihre Daten von OpenAI außerhalb der EU verarbeitet. Sind Sie damit einverstanden?',\n previous_chats: 'Vorherige Chats',\n prompt_suggestions: {\n 'asset-info': {\n prompt: 'Erstelle einen detaillierten Wartungsplan für mein Asset',\n title: 'Asset-Info',\n },\n intro: {\n prompt: 'Was ist Adam AI und wie kann es mir bei der Asset-Verwaltung helfen?',\n title: 'Einführung',\n },\n },\n prompts: {\n assetId: '. Die ID des Assets ist {{assetId}}',\n assetKey: '. Die externe ID des Assets ist {{assetKey}}',\n asset: 'Ich habe eine Frage zu dem Asset {{assetName}}',\n help: 'Bitte hilf mir bei der Lösung dieser Aufgabe {{taskId}}',\n incident: 'Bitte erstelle eine neue Meldung für das Asset {{assetName}}',\n report: 'Bitte erstelle einen Bericht für das Asset {{assetName}}',\n },\n reference_not_found: 'Referenz nicht gefunden',\n retry: 'Erneut versuchen',\n select_asset: 'Asset auswählen',\n send_message: 'Nachricht senden',\n source: 'Quelle',\n stop_recording: 'Aufnahme stoppen',\n suggested_prompts: 'Vorgeschlagene Prompts für den Einstieg in ADAM AI',\n threads: 'Chats',\n toast_error_delete_entry: '{{entry}} konnte nicht gelöscht werden.',\n toast_success_delete_entry: '{{entry}} gelöscht.',\n tools: {\n createAxaltaEvent: {\n completed: 'Ereignis wurde erstellt',\n failed: 'Ereignis konnte nicht erstellt werden',\n pending: 'Ereignis wird erstellt',\n processing: 'Ereignis wird erstellt',\n },\n createEvent: {\n completed: 'Ereignis wurde erstellt',\n failed: 'Ereignis konnte nicht erstellt werden',\n pending: 'Ereignis wird erstellt',\n processing: 'Ereignis wird erstellt',\n },\n createReport: {\n completed: 'Bericht wurde erstellt',\n failed: 'Bericht konnte nicht erstellt werden',\n pending: 'Bericht wird erstellt',\n processing: 'Bericht wird erstellt',\n },\n getAdditionalDataTemplate: {\n completed: 'Zusatzdaten wurden abgerufen',\n failed: 'Zusatzdaten konnten nicht abgerufen werden',\n pending: 'Zusatzdaten werden abgerufen',\n processing: 'Zusatzdaten werden abgerufen',\n },\n getAssetData: {\n completed: 'Assetdaten wurden abgerufen',\n failed: 'Assetdaten konnten nicht abgerufen werden',\n pending: 'Assetdaten werden abgerufen',\n processing: 'Assetdaten werden abgerufen',\n },\n getReportTemplate: {\n completed: 'Berichtsvorlage wurde abgerufen',\n failed: 'Berichtsvorlage konnte nicht abgerufen werden',\n pending: 'Berichtsvorlage wird abgerufen',\n processing: 'Berichtsvorlage wird abgerufen',\n },\n searchForAssetAxalta: {\n completed: 'Suche nach Asset abgeschlossen',\n failed: 'Suche nach Asset fehlgeschlagen',\n pending: 'Suche nach Asset',\n processing: 'Suche nach Asset',\n },\n searchForAssetWithId: {\n completed: 'Suche nach Asset mit ID abgeschlossen',\n failed: 'Suche nach Asset mit ID fehlgeschlagen',\n pending: 'Suche nach Asset mit ID',\n processing: 'Suche nach Asset mit ID',\n },\n searchForAssets: {\n completed: 'Suche nach Assets abgeschlossen',\n failed: 'Suche nach Assets fehlgeschlagen',\n pending: 'Suche nach Assets',\n processing: 'Suche nach Assets',\n },\n searchForDocuments: {\n completed: 'Suche nach Dokumenten abgeschlossen',\n failed: 'Suche nach Dokumenten fehlgeschlagen',\n pending: 'Suche nach Dokumenten',\n processing: 'Suche nach Dokumenten',\n },\n searchForEvents: {\n completed: 'Suche nach Ereignissen abgeschlossen',\n failed: 'Suche nach Ereignissen fehlgeschlagen',\n pending: 'Suche nach Ereignissen',\n processing: 'Suche nach Ereignissen',\n },\n },\n use_microphone: 'Mikrofon verwenden',\n use_web_search: 'Im Web suchen',\n view_previous_chats: 'Vorherige Chats anzeigen',\n web_source: 'Web-Quelle',\n },\n alert: 'Alarm',\n alerts: 'Alarme',\n allowed_to: 'Sie dürfen',\n and: 'und',\n applications: 'Anwendungen',\n apps: 'Applikationen',\n appstore: 'App Store',\n ascending: 'Aufsteigend',\n asset: 'Asset',\n asset_intelligence: 'Asset Intelligence',\n asset_manager: 'Asset Manager',\n asset_type: 'Asset Typ',\n assets: 'Assets',\n assettype: 'Asset Typ',\n assettypes: 'Asset Typen',\n attachment: 'Anhang',\n attachments: 'Anhänge',\n audit_logs: 'Audit Logs',\n author: 'Autor',\n authorization_type: 'Authorization Type',\n average: 'Durchschnitt',\n back: 'Zurück',\n back_to_organizations: 'Zurück zu Organisationen',\n bucket_time_range: 'Bucket Zeitspanne (Default ist 24h)',\n by: 'von',\n calendar: 'Kalender',\n cancel: 'Abbrechen',\n catalog: 'Katalog',\n 'category.delete': 'Dienstleistungskatalog entfernen ',\n 'cert.add.new': 'Zertifikat hinzufügen',\n 'cert.delete': 'Zertifikat entfernen',\n 'cert.edit': 'Zertifikat editieren',\n 'cert.name': 'Zertifikatsname',\n cert_add_new_description: 'Verwaltung Organisationsbezogener Zertifikate',\n certificate: 'Zertifikate',\n 'certificate.add.new': 'Zertifikat hinzufügen',\n certification: {\n date_issue: 'Ausstelldatum',\n expiration_date: 'Ablaufsdatum',\n institution: 'Zertifizierungseinrichtung',\n number: 'Zertifikatsnummer',\n },\n children: 'Kinder',\n choose: 'Auswählen',\n choose_file: 'Datei auswählen',\n city: 'Stadt',\n color: 'Farbe',\n column_settings: 'Spalten-Einstellungen',\n comment: 'Kommentar',\n company_manager: 'Unternehmen Manager',\n company_matching: 'Company-Matching',\n complete_subscription: 'Abonnement abschließen',\n confirm: 'Bestätigen',\n consent_management: {\n accept_all: 'Alle akzeptieren',\n accept_all_note: 'Durch Klicken auf \"Alle akzeptieren\" stimmen Sie der Verwendung von essentiellen und analytischen Cookies zu.',\n always_enabled: 'Immer aktiv',\n cookie_groups: {\n analytics: {\n description: 'Diese Cookies sammeln Daten über die Nutzung der Website, z.B. welche Seiten besucht werden, um uns zu helfen, die beliebtesten Seiten zu identifizieren und zu verstehen, wie Besucher auf der Website navigieren.<br />Daten zur Nutzung der Website werden mithilfe von dauerhaften Cookies von Erst- und Drittanbietern und anderen Tracking-Technologien erfasst, um die Beliebtheit von Produkten und Online-Aktivitäten zu ermitteln.',\n title: 'Analytische Cookies',\n },\n essential: {\n description: 'Diese Cookies sind für den Betrieb der Webseite unbedingt erforderlich. Sie werden in der Regel nur als Reaktion auf Ihre Handlungen gesetzt, wie z. B. die Einstellung Ihrer Datenschutzeinstellungen. Diese Cookies speichern keine persönlich identifizierbaren Informationen.',\n title: 'Erforderliche Cookies',\n },\n },\n cookie_intro: 'Diese Website verwendet Cookies und andere Tracking-Technologien, um wesentliche Funktionen der Website zu ermöglichen, die Benutzerfreundlichkeit zu verbessern sowie zu Analyse- und Personalisierungszwecken.',\n cookie_intro_extended: 'Diese Website verwendet Cookies und andere Tracking-Technologien, um wesentliche Funktionen der Website zu ermöglichen, die Benutzerfreundlichkeit zu verbessern sowie zu Analyse- und Personalisierungszwecken.<br />Wir verwenden Microsoft Clarity, um zu analysieren, wie unsere Website genutzt wird, und um unsere Produkte zu verbessern. Durch die Nutzung unserer Website erklären Sie sich damit einverstanden, dass wir und Microsoft diese Daten sammeln und nutzen.',\n cookie_learn_more: 'Um mehr zu erfahren, lesen Sie bitte unsere',\n cookie_preferences_center: 'Cookie Einstellungen',\n cookie_settings: 'Cookie Einstellungen',\n cookie_usage: 'Nutzung von Cookies',\n manage_preferences: 'Einstellungen verwalten',\n reject_all: 'Alle ablehnen',\n save_preferences: 'Einstellungen speichern',\n },\n content: 'Inhalt',\n 'content.file_type': {\n archive: 'Archiv',\n audio: 'Audio',\n image: 'Bild',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unbekannt',\n video: 'Video',\n },\n 'content.show_preview': 'Vorschau anzeigen',\n 'content.size': 'Größe',\n 'content.toast_downloading_content': 'Datei wird heruntergeladen...',\n 'content.toast_error_download_content': 'Datei konnte nicht heruntergeladen werden.',\n 'content.toast_success_download_content': 'Datei erfolgreich heruntergeladen.',\n content_drop_zone_text: 'Drag & Drop Datei',\n content_manager: 'Content Manager',\n contents: 'Contents',\n copy_id: 'ID kopieren',\n count: 'Anzahl',\n created: 'Erstellt',\n critical: 'Kritisch',\n current_organization: 'Aktuelles Organisation',\n danger_zone: 'Gefahrenzone',\n dashboards: 'Dashboards',\n data: 'Daten',\n date: 'Datum',\n day: 'Tag',\n days: 'Tage',\n de: 'Deutsch',\n default: 'Standard',\n delete: 'Löschen',\n delete_attachment: 'Anhang Löschen',\n delete_member: 'Mitglied Entfernen',\n delete_revision: 'Version löschen',\n delete_title: 'Titel löschen',\n deleted: 'Gelöscht',\n delimiter: 'Trennzeichen, wie ; oder :',\n descending: 'Absteigend',\n description: 'Beschreibung',\n details: 'Details',\n domain: 'Domäne',\n 'domain.delete': 'Domänenname löschen',\n domain_name: 'Domänenname',\n domain_name_placeholder: 'www.domain.com',\n domain_new: 'neue Domäne hinzufügen',\n domains: 'Domänen',\n download: 'Herunterladen',\n download_attachment: 'Anhang Herunterladen',\n drag_drop_file: {\n error: {\n file_too_large: \"Die Datei '{{fileName}}' überschreitet die maximal zulässige Größe von {{maxFileSize}} und wurde ignoriert.\",\n file_type_not_allowed: \"Der Dateityp von '{{fileName}}' ist nicht erlaubt und wurde abgelehnt.\",\n },\n max_file_size: 'Maximale Dateigröße',\n prompt_1: 'Drag & Drop {limit, plural, one {Datei} other {Dateien}} hier oder ',\n prompt_2: 'hier klicken, um Dateien zu durchsuchen',\n warning: {\n max_file_count: 'Sie haben {{fileCount}} Dateien ausgewählt, aber maximal sind {{maxFileCount}} erlaubt. Nur die ersten {{maxFileCount}} Dateien wurden akzeptiert.',\n },\n },\n duration: 'Laufzeit',\n edit: 'Editieren',\n edit_attachment: 'Anhang Editieren',\n edit_event_level: 'Ereignis-Level editieren',\n edit_title: 'Titel anpassen',\n editor: 'Editor',\n email: 'Email',\n employees: 'Mitarbeiter',\n en: 'English',\n encoding: 'Verschlüsselung',\n endpoints: 'Benachrichtigungsendpunkte',\n english: 'Englisch',\n entries: 'Einträge',\n error: 'Fehler',\n error_loading: '{item} konnte nicht geladen werden',\n error_message_update: 'Benutzer Einstellungen konnten nicht aktualisiert werden',\n errors: 'Fehler',\n event: 'Ereignis',\n event_level: 'Ereignis-Level',\n events: 'Ereignisse',\n filename: 'Dateiname',\n flow: 'Flow',\n flow_studio: 'Flow Studio',\n flowdeployment: 'Flow Deployment',\n flowdeployments: 'Flow Deployments',\n flowfunction: 'Flow Funktion',\n flowfunctions: 'Flow Funktionen',\n flowmodel: 'Flow Modell',\n flowmodule: 'Flow Modul',\n flowmodules: 'Flow Module',\n flows: 'Flows',\n form_error_delimiter: 'Trennzeichen wird benötigt.',\n form_error_details: 'Auf der Details Seite sind fehlerhafte Einträge.',\n form_error_email: 'Email wird benötigt.',\n form_error_empty_method: 'Eine Methode muss ausgewählt werden.',\n form_error_empty_url: 'Das URL Feld muss ausgefüllt werden.',\n form_error_encoding: 'Eine Verschlüsselung muss angegeben werden.',\n form_error_expiry_date: 'Ein Ablaufdatum muss angegeben werden.',\n form_error_group: 'Zumindest eine Gruppe muss ausgewählt werden.',\n form_error_length: 'Der Name muss aus mindestens {{length}} Zeichen bestehen.',\n form_error_max_length: 'Darf maximal {{length}} Zeichen lang sein',\n form_error_min_length: 'Muss mindestens {{length}} Zeichen lang sein',\n form_error_name: 'Namens-Feld wird benötigt.',\n form_error_name_pattern: 'Nur Buchstaben, Zahlen, Leerzeichen, Bindestriche (-) und Unterstriche (_) sind erlaubt',\n form_error_read: 'Mindestens ein Lese-Recht muss ausgewählt werden.',\n form_error_read_write: 'Mindestens ein Lese/Schreibe-Recht muss ausgewählt werden.',\n form_error_required: 'Pflichtfeld',\n form_error_role_pattern: 'Nur Kleinbuchstaben, Bindestriche (-) und Unterstriche (_) sind erlaubt',\n form_error_schema_req: 'Ein Schema wird benötigt.',\n form_error_select_file: 'Eine Datei muss ausgewählt werden.',\n form_error_select_type: 'Ein Asset Typ muss ausgewählt werden.',\n form_error_source: 'Source is needed.',\n form_error_unique: 'Der Wert muss eindeutig sein: ',\n form_error_view: 'View is needed.',\n general: 'Allgemein',\n german: 'Deutsch',\n global: 'Global',\n group: 'Gruppe',\n group_by: 'Gruppieren nach',\n history: 'Verlauf',\n hour_format: '{{time}}-Stunden-Zeitformat',\n id: 'ID',\n inactive: 'Inaktiv',\n info: 'Info',\n invite_new_employee: 'Neuen Mitarbeiter einladen',\n invite_new_employee_description: 'Einladung neuer Mitarbeiter und deren Zuweisung zu bestimmten Rollen',\n invite_new_member: 'Neues Mitglied einladen',\n invite_new_member_description: 'Einladung neuer Mitglied und deren Zuweisung zu bestimmten Rollen',\n 'jsf_widgets.content.error.resolving_content_failed': 'Inhalt konnte nicht aufgelöst werden',\n 'jsf_widgets.content_reference.error.asset_id_missing': 'Asset ID ist nicht gesetzt',\n 'jsf_widgets.content_reference.error.loading_attachments_failed': 'Asset Anhänge konnten nicht geladen werden',\n 'jsf_widgets.cron.error.invalid_expression': 'Kein gültiger cron Ausdruck',\n 'jsf_widgets.duration.error.invalid_duration': 'Keine gültige Dauer',\n 'jsf_widgets.permission.error.load_permissions_all_users_failed': 'Rechte aller Benutzer konnten nicht geladen werden',\n 'jsf_widgets.permission.error.load_permissions_failed': 'Rechte konnten nicht geladen werden',\n 'jsf_widgets.resource_reference.error.searching_failed': 'Suche konnte nicht abgeschlossen werden',\n keys: 'Schlüssel',\n label: 'Label',\n labels: 'Labels',\n labels_edit: 'Labels bearbeiten',\n labels_edit_default: 'Globale Standard-Labels bearbeiten',\n language: 'Sprache',\n last_updated: 'Zuletzt aktualisiert',\n leave: 'Verlassen',\n legal_notice: 'Impressum',\n list: 'Liste',\n loading: 'lade...',\n logo: 'Logo',\n manage_groups: 'Gruppen verwalten',\n manage_identity_providers: 'Rolle, die zur Verwaltung der konfigurierten Identitätsanbieter ermächtigt',\n manage_invitations: 'Rolle, die zur Verwaltung der offenen Mitarbeitereinladungen ermächtigt',\n manage_members: 'Rolle, die zur Verwaltung der Mitgliedern ermächtigt',\n manage_organization: 'Rolle, die zur Verwaltung des Unternehmens und dessen Eigenschaften ermächtigt',\n manage_roles: 'Rolle, die zur Verwaltung der Unternehmensrollen ermächtigt',\n manager: 'App Manager',\n maximum: 'Maximum',\n member: 'Mitglied',\n message: 'Nachricht',\n method: 'Funktion',\n modules: 'Module',\n month: 'Monat',\n months: 'Monate',\n my_tasks: 'Meine Aufgaben',\n name: 'Name',\n new_feminine: 'Neue',\n new_masculine: 'Neuer',\n new_neutral: 'Neues',\n new_tag: 'Neues Label',\n next: 'Nächste',\n next_step: 'Weiter',\n no_description: 'Keine Beschreibung',\n no_labels: 'Keine Labels',\n no_preview: 'Keine Vorschau verfügbar',\n no_result: 'Keine Ergebnisse!',\n not_assigned: 'Nicht zugewiesen',\n notification_close_tooltip: 'Schließen',\n notification_info_empty_list: 'Keine Benachrichtigungen vorhanden',\n notification_open_manager_tooltip: 'Notification Manager öffnen',\n notification_open_tooltip: 'Öffnen',\n notification_read_all_tooltip: 'Alles als gelesen markieren',\n notification_read_tooltip: 'Als gelesen markieren',\n notification_rules: 'Benachrichtigungsregel',\n notification_toast_info: 'Neue Benachrichtigung erhalten!',\n notification_unread_tooltip: 'Als ungelesen markieren',\n notificationendpoint: 'Benachrichtigungsendpunkt',\n notificationendpoints: 'Benachrichtigungsendpunkte',\n notificationrule: 'Benachrichtigungsregel',\n notificationrules: 'Benachrichtigungsregeln',\n notifications: 'Benachrichtigungen',\n offer_requests: 'Anfragen',\n offers: 'Angebote',\n ok: 'OK',\n open: 'Öffnen',\n opened: 'Geöffnet',\n organization: 'Organisation',\n 'organization.delete': 'Organisation löschen',\n 'organization.delete_as_superuser': 'Organisation löschen als Superuser',\n 'organization.request_delete': 'Löschen der Organisation beantragen',\n organization_delete_message: 'Soll die Organisation <b>{organization}</b> mitsamt aller zugehöriger Daten wirklich gelöscht werden?',\n organization_overview: 'Organisations-Profil',\n organization_request_delete_description: 'Hiermit beantragen Sie das Löschen ihrer Organisation. Bitte beachten Sie, dass das Löschen einer Organisation unwiderruflich ist und alle zur Organisation gehörigen Daten ebenfalls gelöscht werden.',\n organization_tenders: 'Ausschreibungen der Organisations',\n organizations: 'Organisationen',\n overview: 'Übersicht',\n owner: {\n edit_permission: 'Mitglieder von {{org}} dürfen ansehen und bearbeiten',\n managed_by: 'Verwaltet von',\n view_permission: 'Mitglieder von {{org}} dürfen ansehen',\n },\n page: 'Seite',\n parent: 'Elternteil',\n password: 'Passwort',\n pending: 'Ausstehend',\n period: 'Zeitraum',\n permissions: 'Rechte',\n phone_number: 'Telefonnummer',\n preview: 'Vorschau',\n previous: 'Vorherige',\n privacy_policy: 'Datenschutzerklärung',\n profile: 'Profil',\n properties: 'Eigenschaften',\n property: 'Eigenschaft',\n quarter: 'Quartal',\n read_permissions: 'Lese Rechte',\n read_permissions_edit_default: 'Standard Lese-/Schreibe-Rechte bearbeiten',\n read_write_permissions: 'Lese/Schreibe-Rechte',\n reference: 'Referenz',\n references: 'Referenzen',\n reset: 'Zurücksetzen',\n response_type: 'Response Type',\n revision: 'Version',\n 'role.add.new': 'Rolle hinzufügen',\n 'role.delete': 'Rolle entfernen',\n 'role.edit': 'Rolle editieren',\n 'role.edit.info': 'Jede Rolle muss einen eindeutigen Namen haben und kann nach der Erstellung der Rolle nicht mehr geändert werden. Es sind nur Kleinbuchstaben, Bindestriche (-) und Unterstriche (_) im Namen erlaubt.',\n 'role.name': 'Name der Rolle',\n role_add_new_description: 'Einrichtung neuer Rollen in Ihrer Organisation und deren Zuweisung nach Bedarf zu Ressourcen bzw. Mitgliedern',\n role_admin: 'Adminrechte',\n role_info: 'Rollen, die dem Benutzer zugewiesen werden sollen. Adminrechte erhält alle Rollen. Leserechte erhält nur die View-Rechte',\n role_view: 'Leserechte',\n roles: 'Rollen',\n rollback_version: 'Auf die ausgewählte Version zurücksetzen',\n save: 'Speichern',\n schema: 'Schema',\n search: 'Suche...',\n 'search.no_results': 'Keine Ergebnisse gefunden',\n search_asset_types: 'Suche Asset Types...',\n search_assets: 'Suche Assets...',\n search_for_page: 'Seite suchen',\n search_roles: 'Suche Rollen...',\n search_tsm: 'Suche Zeitreihen...',\n secret: 'Secret',\n secrets: 'Secrets',\n select: 'Auswählen',\n select_file: 'Datei Auswählen',\n selected_file: 'Ausgewählte Datei',\n 'service.add.new': 'Dienstleistung hinzufügen',\n 'service.delete': 'Dienstleistung entfernen',\n services: 'Dienstleistungen',\n settings: 'Einstellungen',\n setup_certs_description: 'Einrichtung zugehöriger Zertifikate',\n show: 'Zeige',\n show_differences: 'Zeige Unterschiede',\n show_preview: 'Vorschau anzeigen',\n sign_in: 'Einloggen',\n sign_out: 'Ausloggen',\n signed_in_as: 'Angemeldet als',\n sort: 'Sortierung',\n statistic_queries: 'Statistik Anfragen',\n status: 'Status',\n supertype: 'Obertyp',\n system: 'System',\n tags: 'Label',\n task: 'Aufgabe',\n tasks: 'Aufgaben',\n time: 'Zeit',\n time_series: 'Zeitreihen',\n time_series_manager: 'Time Series Manager',\n timeseries: 'Zeitreihen',\n title: 'Titel',\n toast_active_organization_error: 'Aktive Organisation konnte nicht geändert werden.',\n toast_active_organization_loading: 'Aktive Organisation wird geändert...',\n toast_active_organization_success: 'Aktive Organisation erfolgreich geändert.',\n toast_error: 'Fehler!',\n toast_error_add_employee: 'Die Einladung des neuen Mitarbeiters konnte nicht versendet werden',\n toast_error_add_member: 'Die Einladung des neuen Mitglieds konnte nicht versendet werden',\n toast_error_add_role: 'Die Rolle konnte nicht hinzugefügt werden',\n toast_error_authenticate: 'Authentifizierung fehlgeschlagen.',\n toast_error_create_tsm: 'Zeitreihe konnte nicht erstellt werden.',\n toast_error_index_content: 'Fehler beim Abrufen des Indizierungsstatus.',\n toast_error_invitation_send: 'Einladung konnte nicht gesendet werden',\n toast_error_load_cert: 'Zertifikate konnten nicht geladen werden',\n toast_error_load_event_causes: 'Eventursachen-Override konnte nicht geladen werden.',\n toast_error_load_item: '{{item}} konnte nicht geladen werden.',\n toast_error_load_list: 'Liste konnte nicht geladen werden.',\n toast_error_load_org_roles: 'Rollen des aktiven Unternehmens konnten nicht geladen werden',\n toast_error_load_permissions: 'Rechte konnten nicht geladen werden',\n toast_error_load_permissions_all_users: 'Rechte aller Benutzer konnten nicht geladen werden',\n toast_error_load_preview: 'Vorschau konnte nicht geladen werden.',\n toast_error_load_role: 'Rollen konnten nicht geladen werden',\n toast_error_load_service: 'Dienstleistungen konnten nicht geladen werden',\n toast_error_load_tender: 'Ausschreibung konnte nicht geladen werden.',\n toast_error_organization_delete: 'Organisation konnte nicht gelöscht werden.',\n toast_error_organization_name_exists: 'Eine Organisation mit dem Namen {{name}} existiert bereits',\n toast_error_rollback_version: 'Fehler beim Zurücksetzen auf die ausgewählte Version',\n toast_error_save_item: '{{item}} konnte nicht gespeichert werden',\n toast_error_update_attachment: '{count, plural, one {Anhang konnte nicht aktualisiert werden} other {# Anhänge konnten nicht aktualisiert werden}}',\n toast_error_update_event_causes: 'Eventursachen-Override konnte nicht aktualisiert werden.',\n toast_error_update_service: 'Dienstleistung konnte nicht aktualisiert werden',\n toast_error_upload_file: '{count, plural, one {Datei konnte nicht hochgeladen werden {{file}}} other {# Dateien konnten nicht hochgeladen werden}}',\n toast_error_upload_file_max: 'Es dürfen nicht mehr als {{max}} Dateien Zeitgleich hochgeladen werden.',\n toast_form_error_required: '{{param}} darf nicht leer sein',\n toast_form_error_required_selection: 'Es muss mindestens ein {{param}} ausgewählt werden',\n toast_form_error_required_selection_feminine: 'Es muss mindestens eine {{param}} ausgewählt werden',\n toast_info: 'Info!',\n toast_success: 'Erfolgreich!',\n toast_success_add_employee: 'Die Einladung des neuen Mitarbeiters wurde erfolgreich versendet',\n toast_success_add_member: 'Die Einladung des neuen Mitglieds wurde erfolgreich versendet',\n toast_success_add_role: 'Die Rolle wurde erfolgreich hinzugefügt',\n toast_success_invitation_send: 'Einladung gesendet',\n toast_success_update_attachment: '{count, plural, one {Anhang aktualisiert} other {# Anhänge aktualisiert}}',\n toast_success_update_service: 'Dienstleistung wurde aktualisiert',\n toast_success_upload_file: '{count, plural, one {Datei wurde erfolgreich hochgeladen: {{file}}} other {# Dateien wurden erfolgreich hochgeladen}}',\n toast_warning: 'Warnung!',\n toast_warning_invalid_form_data: 'Ungültige Daten im Formular. Bitte überprüfen Sie das Formular auf Fehler.',\n toast_warning_invalid_schema: 'Das angegebene Schema ist nicht gültig.',\n toast_warning_rollback_version: 'Folgende referenzierte Elemente existieren in der Revision nicht mehr: {{entries}}',\n tour_start: 'Starte Tour',\n type: 'Typ',\n unknown: 'Unbekannt',\n unverified: 'Unverifiziert',\n updated: 'Bearbeitet',\n updated_by: 'Aktualisiert von',\n upload_date: 'Hochgeladen am',\n upload_file: 'Datei hochladen',\n url: 'URL',\n user: 'Benutzer',\n user_roles: 'Benutzerrollen',\n username: 'Benutzername',\n vat: 'USt-IdNr./UID',\n vat_example: 'Es muss eine gültige USt-IdNr. (DE gefolgt von 9 Ziffern, z.B. DE123456789) oder UID (ATU gefolgt von 8 Ziffern, z.B. ATU12345678) angegeben werden',\n verified: 'Verifiziert',\n view: 'Ansehen',\n view_identity_providers: 'Rolle, die den Lesezugriff auf die konfigurierten Identitätsanbieter ermöglicht',\n view_invitations: 'Rolle, die den Lesezugriff auf offene Mitarbeitereinladungen ermöglicht',\n view_members: 'Rolle, die den Lesezugriff auf alle bestehenden Mitarbeiter ermöglicht',\n view_organization: 'Rolle, die den Lesezugriff auf das Unternehmen ermöglicht',\n view_roles: 'Rolle, die den Lesezugriff auf Unternehmensrollen ermöglicht',\n warning: 'Warnung',\n week: 'Woche',\n write_permissions: 'Schreibe-Rechte',\n year: 'Jahr',\n years: 'Jahre',\n zip_code: 'Postleitzahl',\n zip_code_error: 'Die Postleitzahl muss gültig sein und darf maximal 10 Zeichen enthalten.',\n },\n};\nexport class AiTranslocoLoader {\n getTranslation(lang) {\n return of(translations[lang] || {});\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiTranslocoLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiTranslocoLoader, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiTranslocoLoader, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\nexport class AiTranslocoModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiTranslocoModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: AiTranslocoModule, imports: [TranslocoModule], exports: [TranslocoModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiTranslocoModule, providers: [\n { provide: TRANSLOCO_TRANSPILER, useClass: DefaultTranspiler },\n { provide: TRANSLOCO_LOADER, useClass: AiTranslocoLoader },\n provideTransloco({\n config: {\n availableLangs: ['de', 'en'],\n defaultLang: 'de',\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: AiTranslocoLoader,\n }),\n ], imports: [TranslocoModule, TranslocoModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiTranslocoModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [TranslocoModule],\n exports: [TranslocoModule],\n providers: [\n { provide: TRANSLOCO_TRANSPILER, useClass: DefaultTranspiler },\n { provide: TRANSLOCO_LOADER, useClass: AiTranslocoLoader },\n provideTransloco({\n config: {\n availableLangs: ['de', 'en'],\n defaultLang: 'de',\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: AiTranslocoLoader,\n }),\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsb2NvLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL3RyYW5zbG9jby5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBRXBCLGVBQWUsRUFDZixnQkFBZ0IsR0FDakIsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRXRDLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRztJQUMxQixFQUFFLEVBQUU7UUFDRixRQUFRLEVBQUUsVUFBVTtRQUNwQixpQkFBaUIsRUFBRSxtQkFBbUI7UUFDdEMsbUJBQW1CLEVBQUUscUJBQXFCO1FBQzFDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLE1BQU0sRUFBRSxRQUFRO1FBQ2hCLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsYUFBYSxFQUFFLGVBQWU7UUFDOUIsT0FBTyxFQUFFLFNBQVM7UUFDbEIsY0FBYyxFQUFFLGdCQUFnQjtRQUNoQyxvQkFBb0IsRUFBRSxzQkFBc0I7UUFDNUMsZ0JBQWdCLEVBQUUsa0JBQWtCO1FBQ3BDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLGNBQWMsRUFBRSxnQkFBZ0I7UUFDaEMsRUFBRSxFQUFFO1lBQ0YsS0FBSyxFQUFFLE9BQU87WUFDZCxNQUFNLEVBQUUsUUFBUTtZQUNoQixXQUFXLEVBQUUsYUFBYTtZQUMxQixhQUFhLEVBQ1gsc0tBQXNLO1lBQ3hLLGlCQUFpQixFQUFFLG1CQUFtQjtZQUN0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QkFBaUI7d0dBQWpCLGlCQUFpQixZQWhCbEIsZUFBZSxhQUNmLGVBQWU7d0dBZWQsaUJBQWlCLGFBZGpCO1lBQ1QsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO1lBQzlELEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTtZQUMxRCxnQkFBZ0IsQ0FBQztnQkFDZixNQUFNLEVBQUU7b0JBQ04sY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztvQkFDNUIsV0FBVyxFQUFFLElBQUk7b0JBQ2pCLG9CQUFvQixFQUFFLElBQUk7b0JBQzFCLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRTtpQkFDdkI7Z0JBQ0QsTUFBTSxFQUFFLGlCQUFpQjthQUMxQixDQUFDO1NBQ0gsWUFkUyxlQUFlLEVBQ2YsZUFBZTs7MkZBZWQsaUJBQWlCO2tCQWpCN0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTt3QkFDOUQsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUMxRCxnQkFBZ0IsQ0FBQzs0QkFDZixNQUFNLEVBQUU7Z0NBQ04sY0FBYyxFQUFFLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztnQ0FDNUIsV0FBVyxFQUFFLElBQUk7Z0NBQ2pCLG9CQUFvQixFQUFFLElBQUk7Z0NBQzFCLFFBQVEsRUFBRSxDQUFDLFNBQVMsRUFBRTs2QkFDdkI7NEJBQ0QsTUFBTSxFQUFFLGlCQUFpQjt5QkFDMUIsQ0FBQztxQkFDSDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBpc0Rldk1vZGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIERlZmF1bHRUcmFuc3BpbGVyLFxuICBUUkFOU0xPQ09fTE9BREVSLFxuICBUUkFOU0xPQ09fVFJBTlNQSUxFUixcbiAgVHJhbnNsb2NvTG9hZGVyLFxuICBUcmFuc2xvY29Nb2R1bGUsXG4gIHByb3ZpZGVUcmFuc2xvY28sXG59IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgdHJhbnNsYXRpb25zID0ge1xuICBlbjoge1xuICAgIGFjY2VwdGVkOiAnQWNjZXB0ZWQnLFxuICAgIGFjY2Vzc19yZXN0cmljdGVkOiAnQWNjZXNzIHJlc3RyaWN0ZWQnLFxuICAgIGFjY2Vzc191bnJlc3RyaWN0ZWQ6ICdBY2Nlc3MgdW5yZXN0cmljdGVkJyxcbiAgICBhY2NvdW50OiAnQWNjb3VudCcsXG4gICAgYWN0aW9uOiAnQWN0aW9uJyxcbiAgICBhY3Rpb25zOiAnQWN0aW9ucycsXG4gICAgYWN0aXZlOiAnQWN0aXZlJyxcbiAgICBhZGRfYXR0YWNobWVudDogJ0FkZCBBdHRhY2htZW50JyxcbiAgICBhZGRfYXR0cmlidXRlOiAnQWRkIEF0dHJpYnV0ZScsXG4gICAgYWRkX25ldzogJ0FkZCBOZXcnLFxuICAgIGFkZF9uZXdfbWVtYmVyOiAnQWRkIG5ldyBtZW1iZXInLFxuICAgIGFkZF9uZXdfb3JnYW5pemF0aW9uOiAnQWRkIG5ldyBPcmdhbml6YXRpb24nLFxuICAgIGFkZF90b19jbGlwYm9hcmQ6ICdBZGQgdG8gY2xpcGJvYXJkJyxcbiAgICBhZGRyZXNzOiAnQWRkcmVzcycsXG4gICAgYWRtaW5pc3RyYXRpb246ICdBZG1pbmlzdHJhdGlvbicsXG4gICAgYWk6IHtcbiAgICAgIGFib3J0OiAnQWJvcnQnLFxuICAgICAgYWNjZXB0OiAnQWNjZXB0JyxcbiAgICAgIGFjY2Vzc2VkX2F0OiAnQWNjZXNzZWQgYXQnLFxuICAgICAgYWRhbV9haV9pbnRybzpcbiAgICAgICAgJ0VuZ2FnZSBpbiByZWFsLXRpbWUgY29udmVyc2F0aW9ucyB3aXRoIEFkYW0gQUksIHlvdXIgZXhwZXJ0IGFzc2lzdGFudCBpbiBBc3NldCBJbnRlbGxpZ2VuY2UuIEdldCBpbnN0YW50LCBpbnRlbGxpZ2VudCBpbnNpZ2h0cyBhbmQgc29sdXRpb25zIHRhaWxvcmVkIHRvIHlvdXIgbmVlZHMuJyxcbiAgICAgIGFnZW50X3VuYXZhaWxhYmxlOiAnQWdlbnQgdW5hdmFpbGFibGUnLFxuICAgICAgYWlfcGxhY2Vob2xkZXI6ICdIb3cgY2FuIEFEQU0gaGVscCB5b3UgdG9kYXk/JyxcbiAgICAgIGFuZDogJ2FuZCcsXG4gICAgICBhc2tfYWJvdXRfYXNzZXQ6ICdBc2sgQURBTSBBSSBhYm91dCB0aGlzIGFzc2V0JyxcbiAgICAgIGFza19hZGFtOiAnQXNrIEFkYW0gQUknLFxuICAgICAgYXNzZXRfaW50ZWxsaWdlbmNlOiAnQXNzZXQgSW50ZWxsaWdlbmNlJyxcbiAgICAgIGFzc2lzdGFudHM6ICdBc3Npc3RhbnRzJyxcbiAgICAgIGNoYXRfZGVsZXRlZDogJ0NoYXQgZGVsZXRlZCcsXG4gICAgICBjaGF0czogJ0NoYXRzJyxcbiAgICAgIGNsZWFyX2hpc3Rvcnk6ICdDbGVhciBIaXN0b3J5JyxcbiAgICAgIGNvbXBsZXRlX2FuZF9jcmVhdGVfcmVwb3J0OiAnQ29tcGxldGUgYW5kIGNyZWF0ZSByZXBvcnQnLFxuICAgICAgY29udGV4dDogJ1JlZmVyZW5jZWQgQ29udGV4dCcsXG4gICAgICBjb250ZXh0X2ZvdW5kOiAnRm91bmQgcmVsYXRlZCBjb250ZXh0JyxcbiAgICAgIGNvbnRleHRfbm9uZTpcbiAgICAgICAgJ05vIHJlbGF0ZWQgQXNzZXRzIG9yIGZpbGVzIGZvdW5kLiBDb25zaWRlciByZXZpc2luZyB5b3VyIHByb21wdC4nLFxuICAgICAgY29udGV4dF9zZWFyY2g6ICdTZWFyY2hpbmcgZm9yIHJlbGF0ZWQgQXNzZXRzIGFuZCBmaWxlcy4uLicsXG4gICAgICBjb250aW51ZV9jaGF0OiAnQ29udGludWUgQ2hhdCcsXG4gICAgICBjb250aW51ZV9wcmV2aW91c19jaGF0OiAnQ29udGludWUgcHJldmlvdXMgQ2hhdCcsXG4gICAgICBjb29raWVzOiAnQ29va2llcycsXG4gICAgICBjcmVhdGVfbmV3X2NoYXQ6ICdDcmVhdGUgTmV3IENoYXQnLFxuICAgICAgY3JlYXRlX25ld19ldmVudDogJ0NyZWF0ZSBuZXcgRXZlbnQgd2l0aCB0aGUgaGVscCBvZiBBZGFtIEFJJyxcbiAgICAgIGRlOiAnRGV1dHNjaCcsXG4gICAgICBkZWxldGVfY2hhdDogJ0RlbGV0ZSBDaGF0JyxcbiAgICAgIGRlbGV0ZV9pdGVtOiAnRGVsZXRlIEl0ZW0nLFxuICAgICAgZGVsZXRlX2l0ZW1fbWVzc2FnZTpcbiAgICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBpdGVtPzxicj48YnI+PGI+e3sgaXRlbXMgfX08L2I+fSBvdGhlciB7QXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRlbGV0ZSB0aGVzZSAjIGl0ZW1zP319JyxcbiAgICAgIGRlbGV0ZV9pdGVtX21lc3NhZ2VfZ2VuZXJhbDogJ0FyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBkZWxldGUgdGhpcyBpdGVtPycsXG4gICAgICBkZWxldGVfaXRlbV90aXRsZTpcbiAgICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0RlbGV0ZSBJdGVtfSBvdGhlciB7RGVsZXRlIE11bHRpcGxlIEl0ZW1zfX0nLFxuICAgICAgZG9jdW1lbnQ6ICdEb2N1bWVudCcsXG4gICAgICBlbjogJ0VuZ2xpc2gnLFxuICAgICAgZmFpbGVkX3RvX2NyZWF0ZV9jaGF0OiAnRmFpbGVkIHRvIGNyZWF0ZSBjaGF0JyxcbiAgICAgIGZhaWxlZF90b19kZWxldGVfY2hhdDogJ0ZhaWxlZCB0byBkZWxldGUgY2hhdCcsXG4gICAgICBmYWlsZWRfdG9faW5pdGlhbGl6ZV9jaGF0OiAnRmFpbGVkIHRvIGluaXRpYWxpemUgY2hhdCcsXG4gICAgICBmYWlsZWRfdG9fbG9hZF9hc3Npc3RhbnRzOiAnRmFpbGVkIHRvIGxvYWQgYXNzaXN0YW50cycsXG4gICAgICBmYWlsZWRfdG9fbG9hZF9jaGF0czogJ0ZhaWxlZCB0byBsb2FkIGNoYXQgaGlzdG9yeScsXG4gICAgICBmYWlsZWRfdG9fcHJvY2Vzc19tZXNzYWdlOlxuICAgICAgICAnVGhlIG1lc3NhZ2UgY291bGQgbm90IGJlIHByb2Nlc3NlZC4gUGxlYXNlIHRyeSBhZ2Fpbi4nLFxuICAgICAgZmFpbGVkX3RvX3NlbmRfbWVzc2FnZTogJ0ZhaWxlZCB0byBzZW5kIG1lc3NhZ2UnLFxuICAgICAgZmFpbGVkX3RvX3VwZGF0ZV9tb2RlbDogJ0ZhaWxlZCB0byB1cGRhdGUgbW9kZWwnLFxuICAgICAgZmlsZV90eXBlOiB7XG4gICAgICAgIGFyY2hpdmU6ICdBcmNoaXZlJyxcbiAgICAgICAgYXVkaW86ICdBdWRpbycsXG4gICAgICAgIGltYWdlOiAnSW1hZ2UnLFxuICAgICAgICBwZGY6ICdQREYnLFxuICAgICAgICB0ZXh0OiAnVGV4dCcsXG4gICAgICAgIHVua25vd246ICdVbmtub3duJyxcbiAgICAgICAgdmlkZW86ICdWaWRlbycsXG4gICAgICB9LFxuICAgICAgZmluaXNoX3JlYXNvbjoge1xuICAgICAgICAnY29udGVudC1maWx0ZXInOlxuICAgICAgICAgICdZb3VyIHJlcXVlc3Qgd2FzIGJsb2NrZWQgZHVlIHRvIGNvbnRlbnQgZmlsdGVycy4gUGxlYXNlIHRyeSByZXBocmFzaW5nIHlvdXIgcXVlc3Rpb24gYW5kIHRyeSBhZ2Fpbi4nLFxuICAgICAgICBlcnJvcjogJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICAgICAgIGxlbmd0aDpcbiAgICAgICAgICAnVGhlIHJlcXVlc3QgaXMgdG9vIGxvbmcgdG8gcHJvY2Vzcy4gUGxlYXNlIHRyeSBhZ2FpbiBvciBzdGFydCBhIG5ldyBjb252ZXJzYXRpb24uJyxcbiAgICAgICAgdW5rbm93bjogJ1NvbWV0aGluZyB3ZW50IHdyb25nLiBQbGVhc2UgdHJ5IGFnYWluIGxhdGVyLicsXG4gICAgICB9LFxuICAgICAgJ2dwdC00byc6ICdHUFQtNG8nLFxuICAgICAgJ2dwdC00by0yMDI0LTA4LTA2JzogJ0dQVC00bycsXG4gICAgICAnZ3B0LTRvLTIwMjQtMTEtMjAnOiAnR1BULTRvJyxcbiAgICAgICdncHQtNG8tbWluaSc6ICdHUFQtNG8gTWluaScsXG4gICAgICAnZ3B0LTRvLW1pbmktMjAyNC0wNy0xOCc6ICdHUFQtNG8gTWluaScsXG4gICAgICBoZWxwX21lOiAnQXNrIEFkYW0gQUkgZm9yIGhlbHAnLFxuICAgICAgbGFzdF9tZXNzYWdlOiAnTGFzdCBNZXNzYWdlJyxcbiAgICAgIG1vZGVsOiAnR1BUIE1vZGVsJyxcbiAgICAgIG1vZGVsX3VwZGF0ZWQ6ICdNb2RlbCB1cGRhdGVkJyxcbiAgICAgIG5vX2NoYXRzX2ZvdW5kOiAnTm8gY2hhdHMgZm91bmQnLFxuICAgICAgbm9fbWVzc2FnZXM6ICdObyBtZXNzYWdlcyB5ZXQnLFxuICAgICAgbm9uZV9vZl90aG9zZTogJ05vbmUgb2YgdGhvc2UnLFxuICAgICAgb2ZfZG9jdW1lbnQ6ICdvZiBkb2N1bWVudCcsXG4gICAgICBvcGVuYWlfZGlzY2xhaW1lcjpcbiAgICAgICAgJ0luIHRoZSBwcmV2aWV3IHZlcnNpb24gb2YgdGhlIEFzc2V0IFdlYiBBc3Npc3RhbnQsIHlvdXIgZGF0YSB3aWxsIGJlIHByb2Nlc3NlZCBieSBPcGVuQUkgb3V0c2lkZSB0aGUgRVUuIERvIHlvdSBhZ3JlZSB3aXRoIHRoaXM/JyxcbiAgICAgIHByZXZpb3VzX2NoYXRzOiAnUHJldmlvdXMgQ2hhdHMnLFxuICAgICAgcHJvbXB0X3N1Z2dlc3Rpb25zOiB7XG4gICAgICAgICdhc3NldC1pbmZvJzoge1xuICAgICAgICAgIHByb21wdDogJ1Byb3ZpZGUgYSBkZXRhaWxlZCBtYWludGVuYW5jZSBwbGFuIGZvciBteSBhc3NldCcsXG4gICAgICAgICAgdGl0bGU6ICdBc3NldCBJbmZvJyxcbiAgICAgICAgfSxcbiAgICAgICAgaW50cm86IHtcbiAgICAgICAgICBwcm9tcHQ6XG4gICAgICAgICAgICAnV2hhdCBpcyBBZGFtIEFJIGFuZCBob3cgY2FuIGl0IGhlbHAgbWUgd2l0aCBhc3NldCBtYW5hZ2VtZW50PycsXG4gICAgICAgICAgdGl0bGU6ICdJbnRyb2R1Y3Rpb24nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByb21wdHM6IHtcbiAgICAgICAgYXNzZXRJZDogJy4gVGhlIElEIG9mIHRoZSBBc3NldCBpcyB7e2Fzc2V0SWR9fScsXG4gICAgICAgIGFzc2V0S2V5OiAnLiBUaGUgZXh0ZXJuYWwgSUQgb2YgdGhlIEFzc2V0IGlzIHt7YXNzZXRLZXl9fScsXG4gICAgICAgIGFzc2V0OiAnSSBoYXZlIGEgcXVlc3Rpb24gcmVsYXRlZCB0byB0aGUgQXNzZXQge3thc3NldE5hbWV9fScsXG4gICAgICAgIGhlbHA6ICdQbGVhc2UgaGVscCBtZSBzb2x2ZSB0aGlzIHRhc2sge3t0YXNrSWR9fScsXG4gICAgICAgIGluY2lkZW50OiAnUGxlYXNlIGNyZWF0ZSBhIG5ldyBpbmNpZGVudCBmb3IgdGhlIEFzc2V0IHt7YXNzZXROYW1lfX0nLFxuICAgICAgICByZXBvcnQ6ICdQbGVhc2UgY3JlYXRlIGEgcmVwb3J0IGZvciB0aGUgQXNzZXQge3thc3NldE5hbWV9fScsXG4gICAgICB9LFxuICAgICAgcmVmZXJlbmNlX25vdF9mb3VuZDogJ1JlZmVyZW5jZSBub3QgZm91bmQnLFxuICAgICAgcmV0cnk6ICdSZXRyeScsXG4gICAgICBzZWxlY3RfYXNzZXQ6ICdTZWxlY3QgQXNzZXQnLFxuICAgICAgc2VuZF9tZXNzYWdlOiAnU2VuZCBNZXNzYWdlJyxcbiAgICAgIHNvdXJjZTogJ1NvdXJjZScsXG4gICAgICBzdG9wX3JlY29yZGluZzogJ1N0b3AgUmVjb3JkaW5nJyxcbiAgICAgIHN1Z2dlc3RlZF9wcm9tcHRzOiAnU3VnZ2VzdGVkIHByb21wdHMgdG8gZ2V0IHN0YXJ0ZWQgd2l0aCBBREFNIEFJJyxcbiAgICAgIHRocmVhZHM6ICdUaHJlYWRzJyxcbiAgICAgIHRvYXN0X2Vycm9yX2RlbGV0ZV9lbnRyeTogJ0NvdWxkIG5vdCBkZWxldGUge3tlbnRyeX19LicsXG4gICAgICB0b2FzdF9zdWNjZXNzX2RlbGV0ZV9lbnRyeTogJ3t7ZW50cnl9fSBkZWxldGVkLicsXG4gICAgICB0b29sczoge1xuICAgICAgICBjcmVhdGVBeGFsdGFFdmVudDoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ0V2ZW50IHdhcyBjcmVhdGVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdFdmVudCBjb3VsZCBub3QgYmUgY3JlYXRlZCcsXG4gICAgICAgICAgcGVuZGluZzogJ0NyZWF0aW5nIEV2ZW50JyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnQ3JlYXRpbmcgRXZlbnQnLFxuICAgICAgICB9LFxuICAgICAgICBjcmVhdGVFdmVudDoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ0V2ZW50IHdhcyBjcmVhdGVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdFdmVudCBjb3VsZCBub3QgYmUgY3JlYXRlZCcsXG4gICAgICAgICAgcGVuZGluZzogJ0NyZWF0aW5nIEV2ZW50JyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnQ3JlYXRpbmcgRXZlbnQnLFxuICAgICAgICB9LFxuICAgICAgICBjcmVhdGVSZXBvcnQ6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdSZXBvcnQgd2FzIGNyZWF0ZWQnLFxuICAgICAgICAgIGZhaWxlZDogJ1JlcG9ydCBjb3VsZCBub3QgYmUgY3JlYXRlZCcsXG4gICAgICAgICAgcGVuZGluZzogJ0NyZWF0aW5nIFJlcG9ydCcsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ0NyZWF0aW5nIFJlcG9ydCcsXG4gICAgICAgIH0sXG4gICAgICAgIGdldEFkZGl0aW9uYWxEYXRhVGVtcGxhdGU6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdBZGRpdGlvbmFsIGRhdGEgd2FzIHJldHJpZXZlZCcsXG4gICAgICAgICAgZmFpbGVkOiAnQWRkaXRpb25hbCBkYXRhIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdSZXRyaWV2aW5nIEFkZGl0aW9uYWwgZGF0YScsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1JldHJpZXZpbmcgQWRkaXRpb25hbCBkYXRhJyxcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0QXNzZXREYXRhOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnQXNzZXQgZGF0YSB3YXMgcmV0cmlldmVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdBc3NldCBkYXRhIGNvdWxkIG5vdCBiZSByZXRyaWV2ZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdSZXRyaWV2aW5nIEFzc2V0IGRhdGEnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdSZXRyaWV2aW5nIEFzc2V0IGRhdGEnLFxuICAgICAgICB9LFxuICAgICAgICBnZXRSZXBvcnRUZW1wbGF0ZToge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1JlcG9ydCB0ZW1wbGF0ZSB3YXMgcmV0cmlldmVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdSZXBvcnQgdGVtcGxhdGUgY291bGQgbm90IGJlIHJldHJpZXZlZCcsXG4gICAgICAgICAgcGVuZGluZzogJ1JldHJpZXZpbmcgUmVwb3J0IHRlbXBsYXRlJyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnUmV0cmlldmluZyBSZXBvcnQgdGVtcGxhdGUnLFxuICAgICAgICB9LFxuICAgICAgICBzZWFyY2hGb3JBc3NldEF4YWx0YToge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1NlYXJjaCBmb3IgQXNzZXQgY29tcGxldGVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdTZWFyY2ggZm9yIEFzc2V0IGZhaWxlZCcsXG4gICAgICAgICAgcGVuZGluZzogJ1NlYXJjaGluZyBmb3IgQXNzZXQnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdTZWFyY2hpbmcgZm9yIEFzc2V0JyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRm9yQXNzZXRXaXRoSWQ6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdTZWFyY2ggZm9yIEFzc2V0IHdpdGggSUQgY29tcGxldGVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdTZWFyY2ggZm9yIEFzc2V0IHdpdGggSUQgZmFpbGVkJyxcbiAgICAgICAgICBwZW5kaW5nOiAnU2VhcmNoaW5nIGZvciBBc3NldCB3aXRoIElEJyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnU2VhcmNoaW5nIGZvciBBc3NldCB3aXRoIElEJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRm9yQXNzZXRzOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnU2VhcmNoIGZvciBBc3NldHMgY29tcGxldGVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdTZWFyY2ggZm9yIEFzc2V0cyBmYWlsZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdTZWFyY2hpbmcgZm9yIEFzc2V0cycsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1NlYXJjaGluZyBmb3IgQXNzZXRzJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRm9yRG9jdW1lbnRzOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnU2VhcmNoIGZvciBEb2N1bWVudHMgY29tcGxldGVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdTZWFyY2ggZm9yIERvY3VtZW50cyBmYWlsZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdTZWFyY2hpbmcgZm9yIERvY3VtZW50cycsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1NlYXJjaGluZyBmb3IgRG9jdW1lbnRzJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRm9yRXZlbnRzOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnU2VhcmNoIGZvciBFdmVudHMgY29tcGxldGVkJyxcbiAgICAgICAgICBmYWlsZWQ6ICdTZWFyY2ggZm9yIEV2ZW50cyBmYWlsZWQnLFxuICAgICAgICAgIHBlbmRpbmc6ICdTZWFyY2hpbmcgZm9yIEV2ZW50cycsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1NlYXJjaGluZyBmb3IgRXZlbnRzJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1c2VfbWljcm9waG9uZTogJ1VzZSBNaWNyb3Bob25lJyxcbiAgICAgIHVzZV93ZWJfc2VhcmNoOiAnU2VhcmNoIGluIFdlYicsXG4gICAgICB2aWV3X3ByZXZpb3VzX2NoYXRzOiAnVmlldyBQcmV2aW91cyBDaGF0cycsXG4gICAgICB3ZWJfc291cmNlOiAnV2ViIFNvdXJjZScsXG4gICAgfSxcbiAgICBhbGVydDogJ0FsZXJ0JyxcbiAgICBhbGVydHM6ICdBbGVydHMnLFxuICAgIGFsbG93ZWRfdG86IFwiWW91J3JlIGFsbG93ZWQgdG9cIixcbiAgICBhbmQ6ICdhbmQnLFxuICAgIGFwcGxpY2F0aW9uczogJ0FwcGxpY2F0aW9ucycsXG4gICAgYXBwczogJ0FwcGxpY2F0aW9ucycsXG4gICAgYXBwc3RvcmU6ICdBcHAgU3RvcmUnLFxuICAgIGFzY2VuZGluZzogJ0FzY2VuZGluZycsXG4gICAgYXNzZXQ6ICdBc3NldCcsXG4gICAgYXNzZXRfaW50ZWxsaWdlbmNlOiAnQXNzZXQgSW50ZWxsaWdlbmNlJyxcbiAgICBhc3NldF9tYW5hZ2VyOiAnQXNzZXQgTWFuYWdlcicsXG4gICAgYXNzZXRfdHlwZTogJ0Fzc2V0IFR5cGUnLFxuICAgIGFzc2V0czogJ0Fzc2V0cycsXG4gICAgYXNzZXR0eXBlOiAnQXNzZXQgVHlwZScsXG4gICAgYXNzZXR0eXBlczogJ0Fzc2V0IFR5cGVzJyxcbiAgICBhdHRhY2htZW50OiAnQXR0YWNobWVudCcsXG4gICAgYXR0YWNobWVudHM6ICdBdHRhY2htZW50cycsXG4gICAgYXVkaXRfbG9nczogJ0F1ZGl0IExvZ3MnLFxuICAgIGF1dGhvcjogJ0F1dGhvcicsXG4gICAgYXV0aG9yaXphdGlvbl90eXBlOiAnQXV0aG9yaXphdGlvbiBUeXBlJyxcbiAgICBhdmVyYWdlOiAnQXZlcmFnZScsXG4gICAgYmFjazogJ0JhY2snLFxuICAgIGJhY2tfdG9fb3JnYW5pemF0aW9uczogJ0JhY2sgdG8gb3JnYW5pemF0aW9ucycsXG4gICAgYnVja2V0X3RpbWVfcmFuZ2U6ICdCdWNrZXQgVGltZSBSYW5nZSAoRGVmYXVsdCBpcyAyNGgpJyxcbiAgICBieTogJ2J5JyxcbiAgICAnY2FkLXByZXZpZXcnOiB7XG4gICAgICAnY2FkLWRpcmVjdGlvbi15JzogJ1NldCBZIGFzIHVwIHZlY3RvcicsXG4gICAgICAnY2FkLWRpcmVjdGlvbi16JzogJ1NldCBaIGFzIHVwIHZlY3RvcicsXG4gICAgICAnY2FkLWZpeGVkLXZlY3Rvcic6ICdGaXhlZCB1cCB2ZWN0b3InLFxuICAgICAgJ2NhZC1tZW51LWNlbnRlcic6ICdDZW50ZXInLFxuICAgICAgJ2NhZC1tZW51LWZsaXAtdmVjdG9yJzogJ0ZsaXAnLFxuICAgICAgJ2NhZC11bmZpeGVkLXZlY3Rvcic6ICdVbmZpeGVkIHZlY3RvcicsXG4gICAgICAnY2FkLXZpZXdlci1mbGlwLWNhbWVyYS1tb2RlLW9ydGhvZ29uYWwnOlxuICAgICAgICAnVHVybiBvbiB0aGUgT3J0aG9ncmFwaGljIGNhbWVyYScsXG4gICAgICAnY2FkLXZpZXdlci1mbGlwLWNhbWVyYS1tb2RlLXBlcnNwZWN0aXZlJzpcbiAgICAgICAgJ1R1cm4gb24gdGhlIFBlcnNwZWN0aXZlIGNhbWVyYScsXG4gICAgICAnZXJyb3ItZGVmYXVsdC1maWxldHlwZSc6ICdJbnZhbGlkIGZpbGV0eXBlJyxcbiAgICAgICdlcnJvci1pbnZhbGlkLWZpbGV0eXBlJzpcbiAgICAgICAgJ3t7ZmlsZXR5cGV9fSBpcyBub3Qgc3VwcG9ydGVkLiBUcnkgY29tcHJlc3NpbmcgZmlsZXMgaW4gYSBaSVAgZmlsZSBpZiB0aGlzIGlzIGEgQ0FELWRyYXdpbmcnLFxuICAgIH0sXG4gICAgY2FsZW5kYXI6ICdDYWxlbmRhcicsXG4gICAgY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICBjYXRhbG9nOiAnQ2F0YWxvZycsXG4gICAgJ2NhdGVnb3J5LmRlbGV0ZSc6ICdSZW1vdmUgY2F0ZWdvcnknLFxuICAgICdjZXJ0LmFkZC5uZXcnOiAnQWRkIG5ldyBDZXJ0aWZpY2F0ZScsXG4gICAgJ2NlcnQuZGVsZXRlJzogJ1JlbW92ZSBDZXJ0aWZpY2F0ZScsXG4gICAgJ2NlcnQuZWRpdCc6ICdFZGl0IENlcnRpZmljYXRlJyxcbiAgICAnY2VydC5uYW1lJzogXCJDZXJ0aWZpY2F0ZSdzIG5hbWVcIixcbiAgICBjZXJ0X2FkZF9uZXdfZGVzY3JpcHRpb246ICdNYW5hZ2VtZW50IG9mIG9yZ2FuaXphdGlvbiByZWxhdGVkIGNlcnRpZmljYXRlcycsXG4gICAgY2VydGlmaWNhdGU6ICdDZXJ0aWZpY2F0ZScsXG4gICAgJ2NlcnRpZmljYXRlLmFkZC5uZXcnOiAnQWRkIG5ldyBDZXJ0aWZpY2F0ZScsXG4gICAgY2VydGlmaWNhdGlvbjoge1xuICAgICAgZGF0ZV9pc3N1ZTogJ0RhdGUgb2YgSXNzdWUnLFxuICAgICAgZXhwaXJhdGlvbl9kYXRlOiAnRXhwaXJhdGlvbiBkYXRlJyxcbiAgICAgIGluc3RpdHV0aW9uOiAnQ2VydGlmaWNhdGlvbiBJbnN0aXR1dGlvbicsXG4gICAgICBudW1iZXI6ICdDZXJ0aWZpY2F0ZSBudW1iZXInLFxuICAgIH0sXG4gICAgY2hpbGRyZW46ICdDaGlsZHJlbicsXG4gICAgY2hvb3NlOiAnQ2hvb3NlJyxcbiAgICBjaG9vc2VfZmlsZTogJ0Nob29zZSBmaWxlJyxcbiAgICBjaXR5OiAnQ2l0eScsXG4gICAgY29sb3I6ICdDb2xvcicsXG4gICAgY29sdW1uX3NldHRpbmdzOiAnQ29sdW1uIFNldHRpbmdzJyxcbiAgICBjb21tZW50OiAnQ29tbWVudCcsXG4gICAgY29tcGFueV9tYW5hZ2VyOiAnQ29tcGFueSBNYW5hZ2VyJyxcbiAgICBjb21wYW55X21hdGNoaW5nOiAnQ29tcGFueSBNYXRjaGluZycsXG4gICAgY29tcGxldGVfc3Vic2NyaXB0aW9uOiAnQ29tcGxldGUgU3Vic2NyaXB0aW9uJyxcbiAgICBjb25maXJtOiAnQ29uZmlybScsXG4gICAgY29uc2VudF9tYW5hZ2VtZW50OiB7XG4gICAgICBhY2NlcHRfYWxsOiAnQWNjZXB0IGFsbCcsXG4gICAgICBhY2NlcHRfYWxsX25vdGU6XG4gICAgICAgICdCeSBjbGlja2luZyBcIkFjY2VwdCBhbGxcIiwgeW91IGFncmVlIHRvIHRoZSB1c2Ugb2YgZXNzZW50aWFsIGFuZCBhbmFseXRpY3MgY29va2llcy4nLFxuICAgICAgYWx3YXlzX2VuYWJsZWQ6ICdBbHdheXMgZW5hYmxlZCcsXG4gICAgICBjb29raWVfZ3JvdXBzOiB7XG4gICAgICAgIGFuYWx5dGljczoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgJ1RoZXNlIGNvb2tpZXMgZ2F0aGVyIGRhdGEgb24gd2Vic2l0ZSB1c2FnZSwgc3VjaCBhcyB3aGljaCBwYWdlcyBhcmUgdmlzaXRlZCwgdG8gaGVscCB1cyBpZGVudGlmeSB0aGUgbW9zdCBwb3B1bGFyIHBhZ2VzIGFuZCB1bmRlcnN0YW5kIGhvdyB2aXNpdG9ycyBuYXZpZ2F0ZSB0aGUgc2l0ZS4gPGJyIC8+IFdlYnNpdGUgdXNhZ2UgZGF0YSBpcyBjYXB0dXJlZCB1c2luZyBwZXJzaXN0ZW50IGZpcnN0IGFuZCB0aGlyZC1wYXJ0eSBjb29raWVzIGFuZCBvdGhlciB0cmFja2luZyB0ZWNobm9sb2dpZXMgdG8gZGV0ZXJtaW5lIHRoZSBwb3B1bGFyaXR5IG9mIHByb2R1Y3RzIGFuZCBvbmxpbmUgYWN0aXZpdHkuJyxcbiAgICAgICAgICB0aXRsZTogJ0FuYWx5dGljcyBjb29raWVzJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXNzZW50aWFsOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAnVGhlc2UgY29va2llcyBhcmUgZXNzZW50aWFsIGZvciB0aGUgb3BlcmF0aW9uIG9mIHRoZSB3ZWJzaXRlLiBUaGV5IGFyZSB1c3VhbGx5IG9ubHkgc2V0IGluIHJlc3BvbnNlIHRvIHlvdXIgYWN0aW9ucywgc3VjaCBhcyBzZXR0aW5nIHlvdXIgcHJpdmFjeSBwcmVmZXJlbmNlcy4gVGhlc2UgY29va2llcyBkbyBub3Qgc3RvcmUgYW55IHBlcnNvbmFsbHkgaWRlbnRpZmlhYmxlIGluZm9ybWF0aW9uLicsXG4gICAgICAgICAgdGl0bGU6ICdFc3NlbnRpYWwgY29va2llcycsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29va2llX2ludHJvOlxuICAgICAgICAnVGhpcyB3ZWJzaXRlIHVzZXMgY29va2llcyBhbmQgb3RoZXIgdHJhY2tpbmcgdGVjaG5vbG9naWVzIHRvIGVuYWJsZSBlc3NlbnRpYWwgc2l0ZSBmdW5jdGlvbmFsaXR5LCBpbXByb3ZlIHRoZSB1c2VyIGV4cGVyaWVuY2UsIGFzIHdlbGwgYXMgZm9yIGFuYWx5dGljcyBhbmQgcGVyc29uYWxpc2F0aW9uIHB1cnBvc2VzLicsXG4gICAgICBjb29raWVfaW50cm9fZXh0ZW5kZWQ6XG4gICAgICAgICdUaGlzIHdlYnNpdGUgdXNlcyBjb29raWVzIGFuZCBvdGhlciB0cmFja2luZyB0ZWNobm9sb2dpZXMgdG8gZW5hYmxlIGVzc2VudGlhbCBzaXRlIGZ1bmN0aW9uYWxpdHksIGltcHJvdmUgdGhlIHVzZXIgZXhwZXJpZW5jZSwgYXMgd2VsbCBhcyBmb3IgYW5hbHl0aWNzIGFuZCBwZXJzb25hbGlzYXRpb24gcHVycG9zZXMuPGJyIC8+V2UgdXNlIE1pY3Jvc29mdCBDbGFyaXR5IHRvIGFuYWx5c2UgaG93IG91ciB3ZWJzaXRlIGlzIHVzZWQgYW5kIHRvIGltcHJvdmUgb3VyIHByb2R1Y3RzLiBCeSB1c2luZyBvdXIgc2l0ZSwgeW91IGNvbnNlbnQgdG8gdXMgYW5kIE1pY3Jvc29mdCBjb2xsZWN0aW5nIGFuZCB1c2luZyB0aGlzIGRhdGEuJyxcbiAgICAgIGNvb2tpZV9sZWFybl9tb3JlOiAnVG8gbGVhcm4gbW9yZSwgcGxlYXNlIHZpZXcgb3VyJyxcbiAgICAgIGNvb2tpZV9wcmVmZXJlbmNlc19jZW50ZXI6ICdDb29raWUgUHJlZmVyZW5jZXMgQ2VudGVyJyxcbiAgICAgIGNvb2tpZV9zZXR0aW5nczogJ0Nvb2tpZSBTZXR0aW5ncycsXG4gICAgICBjb29raWVfdXNhZ2U6ICdDb29raWUgdXNhZ2UnLFxuICAgICAgbWFuYWdlX3ByZWZlcmVuY2VzOiAnTWFuYWdlIHByZWZlcmVuY2VzJyxcbiAgICAgIHJlamVjdF9hbGw6ICdSZWplY3QgYWxsJyxcbiAgICAgIHNhdmVfcHJlZmVyZW5jZXM6ICdTYXZlIHByZWZlcmVuY2VzJyxcbiAgICB9LFxuICAgIGNvbnRlbnQ6ICdDb250ZW50JyxcbiAgICAnY29udGVudC5maWxlX3R5cGUnOiB7XG4gICAgICBhcmNoaXZlOiAnQXJjaGl2ZScsXG4gICAgICBhdWRpbzogJ0F1ZGlvJyxcbiAgICAgIGltYWdlOiAnSW1hZ2UnLFxuICAgICAgcGRmOiAnUERGJyxcbiAgICAgIHRleHQ6ICdUZXh0JyxcbiAgICAgIHVua25vd246ICdVbmtub3duJyxcbiAgICAgIHZpZGVvOiAnVmlkZW8nLFxuICAgIH0sXG5cbiAgICAnY29udGVudC5zaG93X3ByZXZpZXcnOiAnU2hvdyBQcmV2aWV3JyxcbiAgICAnY29udGVudC5zaXplJzogJ1NpemUnLFxuICAgICdjb250ZW50LnRvYXN0X2Rvd25sb2FkaW5nX2NvbnRlbnQnOiAnRG93bmxvYWRpbmcgY29udGVudC4uLicsXG4gICAgJ2NvbnRlbnQudG9hc3RfZXJyb3JfZG93bmxvYWRfY29udGVudCc6ICdDb3VsZCBub3QgZG93bmxvYWQgY29udGVudC4nLFxuICAgICdjb250ZW50LnRvYXN0X3N1Y2Nlc3NfZG93bmxvYWRfY29udGVudCc6XG4gICAgICAnQ29udGVudCBkb3dubG9hZGVkIHN1Y2Nlc3NmdWxseS4nLFxuICAgIGNvbnRlbnRfZHJvcF96b25lX3RleHQ6ICdEcmFnICYgRHJvcCBGaWxlJyxcbiAgICBjb250ZW50X21hbmFnZXI6ICdDb250ZW50IE1hbmFnZXInLFxuICAgIGNvbnRlbnRzOiAnQ29udGVudHMnLFxuICAgIGNvcHlfaWQ6ICdDb3B5IElEJyxcbiAgICBjb3VudDogJ0NvdW50JyxcbiAgICBjcmVhdGVkOiAnQ3JlYXRlZCcsXG4gICAgY3JpdGljYWw6ICdDcml0aWNhbCcsXG4gICAgY3VycmVudF9vcmdhbml6YXRpb246ICdDdXJyZW50IE9yZ2FuaXphdGlvbicsXG4gICAgZGFuZ2VyX3pvbmU6ICdEYW5nZXIgWm9uZScsXG4gICAgZGFzaGJvYXJkczogJ0Rhc2hib2FyZHMnLFxuICAgIGRhdGE6ICdEYXRhJyxcbiAgICBkYXRlOiAnRGF0ZScsXG4gICAgZGF5OiAnRGF5JyxcbiAgICBkYXlzOiAnRGF5cycsXG4gICAgZGU6ICdEZXV0c2NoJyxcbiAgICBkZWZhdWx0OiAnRGVmYXVsdCcsXG4gICAgZGVsZXRlOiAnRGVsZXRlJyxcbiAgICBkZWxldGVfYXR0YWNobWVudDogJ0RlbGV0ZSBBdHRhY2htZW50JyxcbiAgICBkZWxldGVfbWVtYmVyOiAnUmVtb3ZlIG1lbWJlcicsXG4gICAgZGVsZXRlX3JldmlzaW9uOiAnRGVsZXRlIFJldmlzaW9uJyxcbiAgICBkZWxldGVfdGl0bGU6ICdEZWxldGUgVGl0bGUnLFxuICAgIGRlbGV0ZWQ6ICdEZWxldGVkJyxcbiAgICBkZWxpbWl0ZXI6ICdEZWxpbWl0ZXIsIGxpa2UgOyBvciA6JyxcbiAgICBkZXNjZW5kaW5nOiAnRGVzY2VuZGluZycsXG4gICAgZGVzY3JpcHRpb246ICdEZXNjcmlwdGlvbicsXG4gICAgZGV0YWlsczogJ0RldGFpbHMnLFxuICAgIGRvbWFpbjogJ0RvbWFpbicsXG4gICAgJ2RvbWFpbi5kZWxldGUnOiAnRGVsZXRlIERvbWFpbiBuYW1lJyxcbiAgICBkb21haW5fbmFtZTogJ0RvbWFpbiBuYW1lJyxcbiAgICBkb21haW5fbmFtZV9wbGFjZWhvbGRlcjogJ3d3dy5kb21haW4uY29tJyxcbiAgICBkb21haW5fbmV3OiAnQWRkIG5ldyBkb21haW4nLFxuICAgIGRvbWFpbnM6ICdEb21haW5zJyxcbiAgICBkb3dubG9hZDogJ0Rvd25sb2FkJyxcbiAgICBkb3dubG9hZF9hdHRhY2htZW50OiAnRG93bmxvYWQgQXR0YWNobWVudCcsXG4gICAgZHJhZ19kcm9wX2ZpbGU6IHtcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGZpbGVfdG9vX2xhcmdlOlxuICAgICAgICAgIFwiVGhlIGZpbGUgJ3t7ZmlsZU5hbWV9fScgZXhjZWVkcyB0aGUgbWF4aW11bSBhbGxvd2VkIHNpemUgb2Yge3ttYXhGaWxlU2l6ZX19IGFuZCBoYXMgYmVlbiBpZ25vcmVkLlwiLFxuICAgICAgICBmaWxlX3R5cGVfbm90X2FsbG93ZWQ6XG4gICAgICAgICAgXCJUaGUgZmlsZSB0eXBlIG9mICd7e2ZpbGVOYW1lfX0nIGlzIG5vdCBhbGxvd2VkIGFuZCBoYXMgYmVlbiByZWplY3RlZC5cIixcbiAgICAgIH0sXG4gICAgICBtYXhfZmlsZV9zaXplOiAnTWF4aW11bSBmaWxlIHNpemUnLFxuICAgICAgcHJvbXB0XzE6XG4gICAgICAgICdEcmFnICYgZHJvcCB7bGltaXQsIHBsdXJhbCwgb25lIHtmaWxlfSBvdGhlciB7ZmlsZXN9fSBoZXJlIG9yICcsXG4gICAgICBwcm9tcHRfMjogJ2NsaWNrIHRvIGJyb3dzZScsXG4gICAgICB3YXJuaW5nOiB7XG4gICAgICAgIG1heF9maWxlX2NvdW50OlxuICAgICAgICAgICdZb3UgaGF2ZSBzZWxlY3RlZCB7e2ZpbGVDb3VudH19IGZpbGVzLCBidXQgdGhlIG1heGltdW0gYWxsb3dlZCBpcyB7e21heEZpbGVDb3VudH19LiBPbmx5IHRoZSBmaXJzdCB7e21heEZpbGVDb3VudH19IGZpbGVzIGhhdmUgYmVlbiBhY2NlcHRlZC4nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGR1cmF0aW9uOiAnRHVyYXRpb24nLFxuICAgIGVkaXQ6ICdFZGl0JyxcbiAgICBlZGl0X2F0dGFjaG1lbnQ6ICdFZGl0IEF0dGFjaG1lbnQnLFxuICAgIGVkaXRfZXZlbnRfbGV2ZWw6ICdFZGl0IEV2ZW50IExldmVsJyxcbiAgICBlZGl0X3RpdGxlOiAnRWRpdCBUaXRsZScsXG4gICAgZWRpdG9yOiAnRWRpdG9yJyxcbiAgICBlbWFpbDogJ0VtYWlsJyxcbiAgICBlbXBsb3llZXM6ICdFbXBsb3llZXMnLFxuICAgIGVuOiAnRW5nbGlzaCcsXG4gICAgZW5jb2Rpbmc6ICdFbmNvZGluZycsXG4gICAgZW5kcG9pbnRzOiAnTm90aWZpY2F0aW9uIEVuZHBvaW50cycsXG4gICAgZW5nbGlzaDogJ0VuZ2xpc2gnLFxuICAgIGVudHJpZXM6ICdFbnRyaWVzJyxcbiAgICBlcnJvcjogJ0Vycm9yJyxcbiAgICBlcnJvcl9sb2FkaW5nOiAnRmFpbGVkIHRvIGxvYWQge2l0ZW19JyxcbiAgICBlcnJvcl9tZXNzYWdlX3VwZGF0ZTogJ0NvdWxkIG5vdCB1cGRhdGUgVXNlciBTZXR0aW5ncycsXG4gICAgZXJyb3JzOiAnRXJyb3JzJyxcbiAgICBldmVudDogJ0V2ZW50JyxcbiAgICBldmVudF9sZXZlbDogJ0V2ZW50IExldmVsJyxcbiAgICBldmVudHM6ICdFdmVudHMnLFxuICAgIGZpbGVuYW1lOiAnRmlsZW5hbWUnLFxuICAgIGZsb3c6ICdGbG93JyxcbiAgICBmbG93X3N0dWRpbzogJ0Zsb3cgU3R1ZGlvJyxcbiAgICBmbG93ZGVwbG95bWVudDogJ0Zsb3cgRGVwbG95bWVudCcsXG4gICAgZmxvd2RlcGxveW1lbnRzOiAnRmxvdyBEZXBsb3ltZW50cycsXG4gICAgZmxvd2Z1bmN0aW9uOiAnRmxvdyBGdW5jdGlvbicsXG4gICAgZmxvd2Z1bmN0aW9uczogJ0Zsb3cgRnVuY3Rpb25zJyxcbiAgICBmbG93bW9kZWw6ICdGbG93IE1vZGVsJyxcbiAgICBmbG93bW9kdWxlOiAnRmxvdyBNb2R1bGUnLFxuICAgIGZsb3dtb2R1bGVzOiAnRmxvdyBNb2R1bGVzJyxcbiAgICBmbG93czogJ0Zsb3dzJyxcbiAgICBmb3JtX2Vycm9yX2RlbGltaXRlcjogJ0RlbGltaXRlciByZXF1aXJlZC4nLFxuICAgIGZvcm1fZXJyb3JfZGV0YWlsczogJ0RldGFpbHMgRm9ybSBoYXMgRXJyb3JzLicsXG4gICAgZm9ybV9lcnJvcl9lbWFpbDogJ0VtYWlsIGlzIHJlcXVpcmVkLicsXG4gICAgZm9ybV9lcnJvcl9lbXB0eV9tZXRob2Q6ICdUaGUgbWV0aG9kIG11c3QgYmUgbm90IGVtcHR5LicsXG4gICAgZm9ybV9lcnJvcl9lbXB0eV91cmw6ICdUaGUgVVJMIG11c3QgYmUgbm90IGVtcHR5LicsXG4gICAgZm9ybV9lcnJvcl9lbmNvZGluZzogJ0VuY29kaW5nIG5lZWQgdG8gc2V0LicsXG4gICAgZm9ybV9lcnJvcl9leHBpcnlfZGF0ZTogJ0V4cGlyeSBkYXRlIGlzIHJlcXVpcmVkLicsXG4gICAgZm9ybV9lcnJvcl9ncm91cDogJ0F0IGxlYXN0IG9uZSBncm91cCBtdXN0IGJlIHNlbGVjdGVkLicsXG4gICAgZm9ybV9lcnJvcl9sZW5ndGg6ICdOYW1lIG11c3QgYmUgYXQgbGVhc3Qge3tsZW5ndGh9fSBjaGFyYWN0ZXJzIGxvbmcuJyxcbiAgICBmb3JtX2Vycm9yX21heF9sZW5ndGg6ICdNdXN0IGJlIG5vIG1vcmUgdGhhbiB7e2xlbmd0aH19IGNoYXJhY3RlcnMnLFxuICAgIGZvcm1fZXJyb3JfbWluX2xlbmd0aDogJ011c3QgYmUgYXQgbGVhc3Qge3tsZW5ndGh9fSBjaGFyYWN0ZXJzJyxcbiAgICBmb3JtX2Vycm9yX25hbWU6ICdOYW1lIGlzIHJlcXVpcmVkLicsXG4gICAgZm9ybV9lcnJvcl9uYW1lX3BhdHRlcm46XG4gICAgICAnT25seSBsZXR0ZXJzLCBudW1iZXJzLCBzcGFjZXMsIGh5cGhlbnMgKC0pLCBhbmQgdW5kZXJzY29yZXMgKF8pIGFyZSBhbGxvd2VkJyxcbiAgICBmb3JtX2Vycm9yX3JlYWQ6ICdBdCBsZWFzdCBvbmUgcmVhZCBwZXJtaXNzaW9uIG11c3QgYmUgc2VsZWN0ZWQuJyxcbiAgICBmb3JtX2Vycm9yX3JlYWRfd3JpdGU6XG4gICAgICAnQXQgbGVhc3Qgb25lIHJlYWQvd3JpdGUgcGVybWlzc2lvbiBtdXN0IGJlIHNlbGVjdGVkLicsXG4gICAgZm9ybV9lcnJvcl9yZXF1aXJlZDogJ0ZpZWxkIGlzIHJlcXVpcmVkJyxcbiAgICBmb3JtX2Vycm9yX3JvbGVfcGF0dGVybjpcbiAgICAgICdPbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBoeXBoZW5zICgtKSwgYW5kIHVuZGVyc2NvcmVzIChfKSBhcmUgYWxsb3dlZCcsXG4gICAgZm9ybV9lcnJvcl9zY2hlbWFfcmVxOiAnU2NoZW1hIGlzIHJlcXVpcmVkLicsXG4gICAgZm9ybV9lcnJvcl9zZWxlY3RfZmlsZTogJ0EgZmlsZSBtdXN0IGJlIHNlbGVjdGVkLicsXG4gICAgZm9ybV9lcnJvcl9zZWxlY3RfdHlwZTogJ0FuIGFzc2V0IHR5cGUgbXVzdCBiZSBzZWxlY3RlZC4nLFxuICAgIGZvcm1fZXJyb3Jfc291cmNlOiAnU291cmNlIGlzIG5lZWRlZC4nLFxuICAgIGZvcm1fZXJyb3JfdW5pcXVlOiAnUHJvcGVydHkgaGFzIHRvIGJlIHVuaXF1ZTogJyxcbiAgICBmb3JtX2Vycm9yX3ZpZXc6ICdWaWV3IGlzIG5lZWRlZC4nLFxuICAgIGdlbmVyYWw6ICdHZW5lcmFsJyxcbiAgICBnZXJtYW46ICdHZXJtYW4nLFxuICAgIGdsb2JhbDogJ0dsb2JhbCcsXG4gICAgZ3JvdXA6ICdHcm91cCcsXG4gICAgZ3JvdXBfYnk6ICdHcm91cCBieScsXG4gICAgaGlzdG9yeTogJ0hpc3RvcnknLFxuICAgIGhvdXJfZm9ybWF0OiAne3t0aW1lfX0taG91ciBUaW1lIEZvcm1hdCcsXG4gICAgaWQ6ICdJRCcsXG4gICAgaW5hY3RpdmU6ICdJbmFjdGl2ZScsXG4gICAgaW5mbzogJ0luZm8nLFxuICAgIGludml0ZV9uZXdfZW1wbG95ZWU6ICdJbnZpdGUgbmV3IGVtcGxveWVlJyxcbiAgICBpbnZpdGVfbmV3X2VtcGxveWVlX2Rlc2NyaXB0aW9uOlxuICAgICAgJ0ludml0aW5nIG5ldyBlbXBsb3llZXMgYW5kIGFzc2lnbmluZyB0aGVtIHRvIHNwZWNpZmljIHJvbGVzJyxcbiAgICBpbnZpdGVfbmV3X21lbWJlcjogJ0ludml0ZSBuZXcgbWVtYmVyJyxcbiAgICBpbnZpdGVfbmV3X21lbWJlcl9kZXNjcmlwdGlvbjpcbiAgICAgICdJbnZpdGluZyBuZXcgbWVtYmVyIGFuZCBhc3NpZ25pbmcgdGhlbSB0byBzcGVjaWZpYyByb2xlcycsXG4gICAgJ2pzZl93aWRnZXRzLmNvbnRlbnQuZXJyb3IucmVzb2x2aW5nX2NvbnRlbnRfZmFpbGVkJzpcbiAgICAgICdDb3VsZCBub3QgcmVzb2x2ZSBDb250ZW50JyxcbiAgICAnanNmX3dpZGdldHMuY29udGVudF9yZWZlcmVuY2UuZXJyb3IuYXNzZXRfaWRfbWlzc2luZyc6ICdBc3NldCBJRCBub3Qgc2V0JyxcbiAgICAnanNmX3dpZGdldHMuY29udGVudF9yZWZlcmVuY2UuZXJyb3IubG9hZGluZ19hdHRhY2htZW50c19mYWlsZWQnOlxuICAgICAgJ0NvdWxkIG5vdCBsb2FkIEFzc2V0IEF0dGFjaG1lbnRzJyxcbiAgICAnanNmX3dpZGdldHMuY3Jvbi5lcnJvci5pbnZhbGlkX2V4cHJlc3Npb24nOiAnTm90IGEgdmFsaWQgY3JvbiBleHByZXNzaW9uJyxcbiAgICAnanNmX3dpZGdldHMuZHVyYXRpb24uZXJyb3IuaW52YWxpZF9kdXJhdGlvbic6ICdOb3QgYSB2YWxpZCBkdXJhdGlvbicsXG4gICAgJ2pzZl93aWRnZXRzLnBlcm1pc3Npb24uZXJyb3IubG9hZF9wZXJtaXNzaW9uc19hbGxfdXNlcnNfZmFpbGVkJzpcbiAgICAgICdDb3VsZCBub3QgbG9hZCBQZXJtaXNzaW9ucyBvZiBhbGwgdXNlcnMnLFxuICAgICdqc2Zfd2lkZ2V0cy5wZXJtaXNzaW9uLmVycm9yLmxvYWRfcGVybWlzc2lvbnNfZmFpbGVkJzpcbiAgICAgICdDb3VsZCBub3QgbG9hZCBQZXJtaXNzaW9ucycsXG4gICAgJ2pzZl93aWRnZXRzLnJlc291cmNlX3JlZmVyZW5jZS5lcnJvci5zZWFyY2hpbmdfZmFpbGVkJzpcbiAgICAgICdTZWFyY2ggY291bGQgbm90IGJlIGNvbXBsZXRlZCcsXG4gICAga2V5czogJ0tleXMnLFxuICAgIGxhYmVsOiAnTGFiZWwnLFxuICAgIGxhYmVsczogJ0xhYmVscycsXG4gICAgbGFiZWxzX2VkaXQ6ICdFZGl0IExhYmVscycsXG4gICAgbGFiZWxzX2VkaXRfZGVmYXVsdDogJ0VkaXQgR2xvYmFsIERlZmF1bHQgTGFiZWxzJyxcbiAgICBsYW5ndWFnZTogJ0xhbmd1YWdlJyxcbiAgICBsYXN0X3VwZGF0ZWQ6ICdMYXN0IHVwZGF0ZWQnLFxuICAgIGxlYXZlOiAnTGVhdmUnLFxuICAgIGxlZ2FsX25vdGljZTogJ0xlZ2FsIE5vdGljZScsXG4gICAgbGlzdDogJ0xpc3QnLFxuICAgIGxvYWRpbmc6ICdsb2FkaW5nLi4uJyxcbiAgICBsb2dvOiAnTG9nbycsXG4gICAgbWFuYWdlX2dyb3VwczogJ01hbmFnZSBHcm91cHMnLFxuICAgIG1hbmFnZV9pZGVudGl0eV9wcm92aWRlcnM6XG4gICAgICAnUm9sZSB0aGF0IGFsbG93cyB0byBtYW5hZ2UgdGhlIGNvbmZpZ3VyZWQgaWRlbnRpdHkgcHJvdmlkZXJzIG9mIHRoZSBjb21wYW55JyxcbiAgICBtYW5hZ2VfaW52aXRhdGlvbnM6XG4gICAgICAnUm9sZSB0aGF0IGFsbG93cyB0byBtYW5hZ2Ugb3BlbiBpbnZpdGF0aW9ucyBvZiB0aGUgY29tcGFueScsXG4gICAgbWFuYWdlX21lbWJlcnM6ICdSb2xlIHRoYXQgYWxsb3dzIHRvIG1hbmFnZSB0aGUgbWVtYmVycyBvZiB0aGUgY29tcGFueScsXG4gICAgbWFuYWdlX29yZ2FuaXphdGlvbjpcbiAgICAgICdSb2xlIHRoYXQgYWxsb3dzIHRvIG1hbmFnZSB0aGUgY29tcGFueSBhbmQgaXRzIGRldGFpbHMnLFxuICAgIG1hbmFnZV9yb2xlczogJ1JvbGUgdGhhdCBhbGxvd3MgdG8gbWFuYWdlIHRoZSByb2xlcyBvZiB0aGUgY29tcGFueScsXG4gICAgbWFuYWdlcjogJ0FwcCBNYW5hZ2VyJyxcbiAgICBtYXhpbXVtOiAnTWF4aW11bScsXG4gICAgbWVtYmVyOiAnTWl0Z2xpZWQnLFxuICAgIG1lc3NhZ2U6ICdNZXNzYWdlJyxcbiAgICBtZXRob2Q6ICdNZXRob2QnLFxuICAgIG1vZHVsZXM6ICdNb2R1bGVzJyxcbiAgICBtb250aDogJ01vbnRoJyxcbiAgICBtb250aHM6ICdNb250aHMnLFxuICAgIG15X3Rhc2tzOiAnTXkgVGFza3MnLFxuICAgIG5hbWU6ICdOYW1lJyxcbiAgICBuZXdfZmVtaW5pbmU6ICdOZXcnLFxuICAgIG5ld19tYXNjdWxpbmU6ICdOZXcnLFxuICAgIG5ld19uZXV0cmFsOiAnTmV3JyxcbiAgICBuZXdfdGFnOiAnTmV3IExhYmVsJyxcbiAgICBuZXh0OiAnTmV4dCcsXG4gICAgbmV4dF9zdGVwOiAnTmV4dCcsXG4gICAgbm9fZGVzY3JpcHRpb246ICdObyBkZXNjcmlwdGlvbicsXG4gICAgbm9fbGFiZWxzOiAnTm8gTGFiZWxzJyxcbiAgICBub19wcmV2aWV3OiAnTm8gcHJldmlldyBhdmFpbGFibGUnLFxuICAgIG5vX3Jlc3VsdDogJ05vIHJlc3VsdHMgZm91bmQhJyxcbiAgICBub3RfYXNzaWduZWQ6ICdOb3QgYXNzaWduZWQnLFxuICAgIG5vdGlmaWNhdGlvbl9jbG9zZV90b29sdGlwOiAnQ2xvc2UnLFxuICAgIG5vdGlmaWNhdGlvbl9pbmZvX2VtcHR5X2xpc3Q6ICdObyBub3RpZmljYXRpb25zIGF2YWlsYWJsZScsXG4gICAgbm90aWZpY2F0aW9uX29wZW5fbWFuYWdlcl90b29sdGlwOiAnT3BlbiBOb3RpZmljYXRpb24gTWFuYWdlcicsXG4gICAgbm90aWZpY2F0aW9uX29wZW5fdG9vbHRpcDogJ09wZW4nLFxuICAgIG5vdGlmaWNhdGlvbl9yZWFkX2FsbF90b29sdGlwOiAnTWFyayBhbGwgYXMgcmVhZCcsXG4gICAgbm90aWZpY2F0aW9uX3JlYWRfdG9vbHRpcDogJ01hcmsgYXMgcmVhZCcsXG4gICAgbm90aWZpY2F0aW9uX3J1bGVzOiAnTm90aWZpY2F0aW9uIFJ1bGVzJyxcbiAgICBub3RpZmljYXRpb25fdG9hc3RfaW5mbzogJ1JlY2VpdmVkIGEgbmV3IG5vdGlmaWNhdGlvbiEnLFxuICAgIG5vdGlmaWNhdGlvbl91bnJlYWRfdG9vbHRpcDogJ01hcmsgYXMgdW5yZWFkJyxcbiAgICBub3RpZmljYXRpb25lbmRwb2ludDogJ05vdGlmaWNhdGlvbiBFbmRwb2ludCcsXG4gICAgbm90aWZpY2F0aW9uZW5kcG9pbnRzOiAnTm90aWZpY2F0aW9uIEVuZHBvaW50cycsXG4gICAgbm90aWZpY2F0aW9ucnVsZTogJ05vdGlmaWNhdGlvbiBSdWxlJyxcbiAgICBub3RpZmljYXRpb25ydWxlczogJ05vdGlmaWNhdGlvbiBSdWxlcycsXG4gICAgbm90aWZpY2F0aW9uczogJ05vdGlmaWNhdGlvbnMnLFxuICAgIG9mZmVyX3JlcXVlc3RzOiAnT2ZmZXIgUmVxdWVzdHMnLFxuICAgIG9mZmVyczogJ09mZmVycycsXG4gICAgb2s6ICdPSycsXG4gICAgb3BlbjogJ09wZW4nLFxuICAgIG9wZW5lZDogJ09wZW5lZCcsXG4gICAgb3JnYW5pemF0aW9uOiAnT3JnYW5pemF0aW9uJyxcbiAgICAnb3JnYW5pemF0aW9uLmRlbGV0ZSc6ICdEZWxldGUgT3JnYW5pemF0aW9uJyxcbiAgICAnb3JnYW5pemF0aW9uLmRlbGV0ZV9hc19zdXBlcnVzZXInOiAnRGVsZXRlIE9yZ2FuaXphdGlvbiBhcyBTdXBlcnVzZXInLFxuICAgICdvcmdhbml6YXRpb24ucmVxdWVzdF9kZWxldGUnOiAnUmVxdWVzdCBPcmdhbml6YXRpb24gRGVsZXRpb24nLFxuICAgIG9yZ2FuaXphdGlvbl9kZWxldGVfbWVzc2FnZTpcbiAgICAgICdTaG91bGQgdGhlIE9yZ2FuaXphdGlvbiA8Yj57b3JnYW5pemF0aW9ufTwvYj4gYW5kIGFsbCBhc3NvY2lhdGVkIGRhdGEgcmVhbGx5IGJlIGRlbGV0ZWQ/JyxcbiAgICBvcmdhbml6YXRpb25fb3ZlcnZpZXc6ICdPcmdhbml6YXRpb24gT3ZlcnZpZXcnLFxuICAgIG9yZ2FuaXphdGlvbl9yZXF1ZXN0X2RlbGV0ZV9kZXNjcmlwdGlvbjpcbiAgICAgICdZb3UgaGVyZWJ5IHJlcXVlc3QgdGhlIGRlbGV0aW9uIG9mIHlvdXIgT3JnYW5pemF0aW9uLiBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBkZWxldGlvbiBvZiBhbiBPcmdhbml6YXRpb24gaXMgaXJyZXZvY2FibGUgYW5kIGFsbCBkYXRhIGJlbG9uZ2luZyB0byB0aGUgT3JnYW5pemF0aW9uIHdpbGwgYWxzbyBiZSBkZWxldGVkLicsXG4gICAgb3JnYW5pemF0aW9uX3RlbmRlcnM6ICdPcmdhbml6YXRpb24gVGVuZGVycycsXG4gICAgb3JnYW5pemF0aW9uczogJ09yZ2FuaXphdGlvbnMnLFxuICAgIG92ZXJ2aWV3OiAnT3ZlcnZpZXcnLFxuICAgIG93bmVyOiB7XG4gICAgICBlZGl0X3Blcm1pc3Npb246ICdNZW1iZXJzIG9mIHt7b3JnfX0gYXJlIGFsbG93ZWQgdG8gdmlldyBhbmQgZWRpdCcsXG4gICAgICBtYW5hZ2VkX2J5OiAnTWFuYWdlZCBieScsXG4gICAgICB2aWV3X3Blcm1pc3Npb246ICdNZW1iZXJzIG9mIHt7b3JnfX0gYXJlIGFsbG93ZWQgdG8gdmlldycsXG4gICAgfSxcbiAgICBwYWdlOiAnUGFnZScsXG4gICAgcGFyZW50OiAnUGFyZW50JyxcbiAgICBwYXNzd29yZDogJ1Bhc3N3b3JkJyxcbiAgICBwZW5kaW5nOiAnUGVuZGluZycsXG4gICAgcGVyaW9kOiAnUGVyaW9kJyxcbiAgICBwZXJtaXNzaW9uczogJ1Blcm1pc3Npb25zJyxcbiAgICBwaG9uZV9udW1iZXI6ICdQaG9uZSBOdW1iZXInLFxuICAgIHByZXZpZXc6ICdQcmV2aWV3JyxcbiAgICBwcmV2aW91czogJ1ByZXZpb3VzJyxcbiAgICBwcml2YWN5X3BvbGljeTogJ1ByaXZhY3kgUG9saWN5JyxcbiAgICBwcm9maWxlOiAnUHJvZmlsZScsXG4gICAgcHJvcGVydGllczogJ1Byb3BlcnRpZXMnLFxuICAgIHByb3BlcnR5OiAnUHJvcGVydHknLFxuICAgIHF1YXJ0ZXI6ICdRdWFydGVyJyxcbiAgICByZWFkX3Blcm1pc3Npb25zOiAnUmVhZCBQZXJtaXNzaW9ucycsXG4gICAgcmVhZF9wZXJtaXNzaW9uc19lZGl0X2RlZmF1bHQ6ICdFZGl0IERlZmF1bHQgUmVhZC9Xcml0ZSBQZXJtaXNzaW9ucycsXG4gICAgcmVhZF93cml0ZV9wZXJtaXNzaW9uczogJ1JlYWQvV3JpdGUgUGVybWlzc2lvbnMnLFxuICAgIHJlZmVyZW5jZTogJ1JlZmVyZW5jZScsXG4gICAgcmVmZXJlbmNlczogJ1JlZmVyZW5jZXMnLFxuICAgIHJlc2V0OiAnUmVzZXQnLFxuICAgIHJlc3BvbnNlX3R5cGU6ICdSZXNwb25zZSBUeXBlJyxcbiAgICByZXZpc2lvbjogJ1JldmlzaW9uJyxcbiAgICAncm9sZS5hZGQubmV3JzogJ0FkZCByb2xlJyxcbiAgICAncm9sZS5kZWxldGUnOiAnUmVtb3ZlIHJvbGUnLFxuICAgICdyb2xlLmVkaXQnOiAnRWRpdCByb2xlIGRlc2NyaXB0aW9uJyxcbiAgICAncm9sZS5lZGl0LmluZm8nOlxuICAgICAgJ0VhY2ggcm9sZSBtdXN0IGhhdmUgYSB1bmlxdWUgbmFtZSBhbmQgY2Fubm90IGJlIG1vZGlmaWVkIGFmdGVyIGNyZWF0aW5nIG9mIHRoZSByb2xlLiBPbmx5IGxvd2VyY2FzZSBsZXR0ZXJzLCBoeXBoZW5zICgtKSwgYW5kIHVuZGVyc2NvcmVzIChfKSBhcmUgYWxsb3dlZCBpbiB0aGUgbmFtZS4nLFxuICAgICdyb2xlLm5hbWUnOiAnTmFtZSBvZiB0aGUgcm9sZScsXG4gICAgcm9sZV9hZGRfbmV3X2Rlc2NyaXB0aW9uOlxuICAgICAgJ0VzdGFibGlzaGluZyBuZXcgcm9sZXMgd2l0aGluIHlvdXIgb3JnYW5pemF0aW9uIGFuZCBkaXN0cmlidXRpbmcgdGhlbSB0byByZXNvdXJjZXMgb3IgYXNzaWduaW5nIHRoZW0gdG8gbWVtYmVycyBhcyBuZWVkZWQuJyxcbiAgICByb2xlX2FkbWluOiAnQWRtaW4gUm9sZScsXG4gICAgcm9sZV9pbmZvOlxuICAgICAgJ1JvbGVzIHRvIGFzc2lnbiB0aGUgdXNlci4gQWRtaW4gcm9sZSBnZXRzIGFsbCByb2xlcy4gVmlldyByb2xlIGdldHMgdmlldyBvbmx5LicsXG4gICAgcm9sZV92aWV3OiAnVmlldyBSb2xlJyxcbiAgICByb2xlczogJ1JvbGVzJyxcbiAgICByb2xsYmFja192ZXJzaW9uOiAnUm9sbCBiYWNrIFRvIHNlbGVjdGVkIHZlcnNpb24nLFxuICAgIHNhdmU6ICdTYXZlJyxcbiAgICBzY2hlbWE6ICdTY2hlbWEnLFxuICAgIHNlYXJjaDogJ1NlYXJjaC4uLicsXG4gICAgJ3NlYXJjaC5ub19yZXN1bHRzJzogJ05vIHJlc3VsdHMgZm91bmQnLFxuICAgIHNlYXJjaF9hc3NldF90eXBlczogJ1NlYXJjaCBhc3NldCB0eXBlcy4uLicsXG4gICAgc2VhcmNoX2Fzc2V0czogJ1NlYXJjaCBhc3NldHMuLi4nLFxuICAgIHNlYXJjaF9mb3JfcGFnZTogJ1NlYXJjaCBmb3IgYSBwYWdlJyxcbiAgICBzZWFyY2hfcm9sZXM6ICdTZWFyY2ggcm9sZXMuLi4nLFxuICAgIHNlYXJjaF90c206ICdTZWFyY2ggdGltZXNlcmllcy4uLicsXG4gICAgc2VjcmV0OiAnU2VjcmV0JyxcbiAgICBzZWNyZXRzOiAnU2VjcmV0cycsXG4gICAgc2VsZWN0OiAnU2VsZWN0JyxcbiAgICBzZWxlY3RfZmlsZTogJ1NlbGVjdCBGaWxlJyxcbiAgICBzZWxlY3RlZF9maWxlOiAnU2VsZWN0ZWQgRmlsZScsXG4gICAgJ3NlcnZpY2UuYWRkLm5ldyc6ICdBZGQgU2VydmljZScsXG4gICAgJ3NlcnZpY2UuZGVsZXRlJzogJ1JlbW92ZSBTZXJ2aWNlJyxcbiAgICBzZXJ2aWNlczogJ1NlcnZpY2VzJyxcbiAgICBzZXR0aW5nczogJ1NldHRpbmdzJyxcbiAgICBzZXR1cF9jZXJ0c19kZXNjcmlwdGlvbjogJ1NldHVwIGFzc29jaWF0ZWQgY2VydGlmaWNhdGVzJyxcbiAgICBzaG93OiAnU2hvdycsXG4gICAgc2hvd19kaWZmZXJlbmNlczogJ1Nob3cgZGlmZmVyZW5jZXMnLFxuICAgIHNob3dfcHJldmlldzogJ1Nob3cgUHJldmlldycsXG4gICAgc2lnbl9pbjogJ1NpZ24gaW4nLFxuICAgIHNpZ25fb3V0OiAnU2lnbiBvdXQnLFxuICAgIHNpZ25lZF9pbl9hczogJ1NpZ25lZCBpbiBhcycsXG4gICAgc29ydDogJ1NvcnQnLFxuICAgIHN0YXRpc3RpY19xdWVyaWVzOiAnU3RhdGlzdGljIFF1ZXJpZXMnLFxuICAgIHN0YXR1czogJ1N0YXR1cycsXG4gICAgc3VwZXJ0eXBlOiAnU3VwZXJ0eXBlJyxcbiAgICBzeXN0ZW06ICdTeXN0ZW0nLFxuICAgIHRhZ3M6ICdMYWJlbHMnLFxuICAgIHRhc2s6ICdUYXNrJyxcbiAgICB0YXNrczogJ1Rhc2tzJyxcbiAgICB0aW1lOiAnVGltZScsXG4gICAgdGltZV9zZXJpZXM6ICdUaW1lIFNlcmllcycsXG4gICAgdGltZV9zZXJpZXNfbWFuYWdlcjogJ1RpbWUgU2VyaWVzIE1hbmFnZXInLFxuICAgIHRpbWVzZXJpZXM6ICdUaW1lIFNlcmllcycsXG4gICAgdGl0bGU6ICdUaXRsZScsXG4gICAgdG9hc3RfYWN0aXZlX29yZ2FuaXphdGlvbl9lcnJvcjogJ0ZhaWxlZCB0byBjaGFuZ2UgYWN0aXZlIG9yZ2FuaXphdGlvbi4nLFxuICAgIHRvYXN0X2FjdGl2ZV9vcmdhbml6YXRpb25fbG9hZGluZzogJ0NoYW5naW5nIGFjdGl2ZSBvcmdhbml6YXRpb24uLi4nLFxuICAgIHRvYXN0X2FjdGl2ZV9vcmdhbml6YXRpb25fc3VjY2VzczpcbiAgICAgICdTdWNjZXNzZnVsbHkgY2hhbmdlZCBhY3RpdmUgb3JnYW5pemF0aW9uLicsXG4gICAgdG9hc3RfZXJyb3I6ICdFcnJvciEnLFxuICAgIHRvYXN0X2Vycm9yX2FkZF9lbXBsb3llZTpcbiAgICAgIFwiQ291bGRuJ3Qgc2VuZCB0aGUgaW52aXRhdGlvbiBvZiB0aGUgbmV3IGVtcGxveWVlXCIsXG4gICAgdG9hc3RfZXJyb3JfYWRkX21lbWJlcjogXCJDb3VsZG4ndCBzZW5kIHRoZSBpbnZpdGF0aW9uIG9mIHRoZSBuZXcgbWVtYmVyXCIsXG4gICAgdG9hc3RfZXJyb3JfYWRkX3JvbGU6IFwiQ291bGRuJ3QgYWRkIHJvbGVcIixcbiAgICB0b2FzdF9lcnJvcl9hdXRoZW50aWNhdGU6ICdDb3VsZCBub3QgYXV0aGVudGljYXRlLicsXG4gICAgdG9hc3RfZXJyb3JfY3JlYXRlX3RzbTogJ0NvdWxkIG5vdCBjcmVhdGUgVGltZSBTZXJpZXMuJyxcbiAgICB0b2FzdF9lcnJvcl9pbmRleF9jb250ZW50OiAnRXJyb3Igd2hlbiByZXRyaWV2aW5nIGluZGV4aW5nIHN0YXR1cycsXG4gICAgdG9hc3RfZXJyb3JfaW52aXRhdGlvbl9zZW5kOiAnQ291bGQgbm90IHNlbmQgaW52aXRhdGlvbicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9jZXJ0OiAnQ291bGQgbm90IGxvYWQgY2VydGlmaWNhdGVzJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX2V2ZW50X2NhdXNlczogJ0NvdWxkIG5vdCBsb2FkIEV2ZW50IGNhdXNlcyBvdmVycmlkZS4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfaXRlbTogJ0NvdWxkIG5vdCBsb2FkIHt7aXRlbX19LicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9saXN0OiAnQ291bGQgbm90IGxvYWQgbGlzdC4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfb3JnX3JvbGVzOiAnQ291bGQgbm90IGxvYWQgcm9sZXMgb2YgdGhlIGFjdGl2ZSBjb21wYW55LicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9wZXJtaXNzaW9uczogJ0NvdWxkIG5vdCBsb2FkIFBlcm1pc3Npb25zJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3Blcm1pc3Npb25zX2FsbF91c2VyczpcbiAgICAgICdDb3VsZCBub3QgbG9hZCBQZXJtaXNzaW9ucyBvZiBhbGwgdXNlcnMnLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfcHJldmlldzogJ0NvdWxkIG5vdCBsb2FkIHByZXZpZXcuJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3JvbGU6ICdDb3VsZCBub3QgbG9hZCByb2xlcycsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9zZXJ2aWNlOiAnQ291bGQgbm90IGxvYWQgc2VydmljZXMnLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfdGVuZGVyOiAnQ291bGQgbm90IGxvYWQgdGVuZGVyLicsXG4gICAgdG9hc3RfZXJyb3Jfb3JnYW5pemF0aW9uX2RlbGV0ZTogJ0NvdWxkIG5vdCBkZWxldGUgb3JnYW5pemF0aW9uJyxcbiAgICB0b2FzdF9lcnJvcl9vcmdhbml6YXRpb25fbmFtZV9leGlzdHM6XG4gICAgICAnT3JnYW5pemF0aW9uIHdpdGggbmFtZSB7e25hbWV9fSBhbHJlYWR5IGV4aXN0cycsXG4gICAgdG9hc3RfZXJyb3Jfcm9sbGJhY2tfdmVyc2lvbjogJ0Nhbm5vdCByb2xsIGJhY2sgdG8gc2VsZWN0ZWQgdmVyc2lvbicsXG4gICAgdG9hc3RfZXJyb3Jfc2F2ZV9pdGVtOiAnQ291bGQgbm90IHNhdmUge3tpdGVtfX0nLFxuICAgIHRvYXN0X2Vycm9yX3VwZGF0ZV9hdHRhY2htZW50OlxuICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0NvdWxkIG5vdCB1cGRhdGUgYXR0YWNobWVudH0gb3RoZXIge0NvdWxkIG5vdCB1cGRhdGUgIyBhdHRhY2htZW50c319JyxcbiAgICB0b2FzdF9lcnJvcl91cGRhdGVfZXZlbnRfY2F1c2VzOiAnQ291bGQgbm90IHVwZGF0ZSBFdmVudCBjYXVzZXMgb3ZlcnJpZGUuJyxcbiAgICB0b2FzdF9lcnJvcl91cGRhdGVfc2VydmljZTogJ0NvdWxkIG5vdCB1cGRhdGUgc2VydmljZXMnLFxuICAgIHRvYXN0X2Vycm9yX3VwbG9hZF9maWxlOlxuICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0NvdWxkIG5vdCB1cGxvYWQge3tmaWxlfX19IG90aGVyIHtDb3VsZCBub3QgdXBsb2FkICMgZmlsZXN9fScsXG4gICAgdG9hc3RfZXJyb3JfdXBsb2FkX2ZpbGVfbWF4OlxuICAgICAgJ05vIG1vcmUgdGhhbiB7e21heH19IGZpbGVzIG1heSBiZSB1cGxvYWRlZCBhdCB0aGUgc2FtZSB0aW1lLicsXG4gICAgdG9hc3RfZm9ybV9lcnJvcl9yZXF1aXJlZDogJ3t7cGFyYW19fSBjYW5ub3QgYmUgZW1wdHknLFxuICAgIHRvYXN0X2Zvcm1fZXJyb3JfcmVxdWlyZWRfc2VsZWN0aW9uOlxuICAgICAgJ1lvdSBtdXN0IHNlbGVjdCBhdCBsZWFzdCBvbmUge3twYXJhbX19JyxcbiAgICB0b2FzdF9mb3JtX2Vycm9yX3JlcXVpcmVkX3NlbGVjdGlvbl9mZW1pbmluZTpcbiAgICAgICdZb3UgbXVzdCBzZWxlY3QgYXQgbGVhc3Qgb25lIHt7cGFyYW19fScsXG4gICAgdG9hc3RfaW5mbzogJ0luZm8hJyxcbiAgICB0b2FzdF9zdWNjZXNzOiAnU3VjY2VzcyEnLFxuICAgIHRvYXN0X3N1Y2Nlc3NfYWRkX2VtcGxveWVlOlxuICAgICAgJ1RoZSBpbnZpdGF0aW9uIG9mIHRoZSBuZXcgZW1wbG95ZWUgaGFzIGJlZW4gc2VudCBzdWNjZXNzZnVsbHknLFxuICAgIHRvYXN0X3N1Y2Nlc3NfYWRkX21lbWJlcjpcbiAgICAgICdUaGUgaW52aXRhdGlvbiBvZiB0aGUgbmV3IG1lbWJlciBoYXMgYmVlbiBzZW50IHN1Y2Nlc3NmdWxseScsXG4gICAgdG9hc3Rfc3VjY2Vzc19hZGRfcm9sZTogJ1JvbGUgaGFzIGJlZW4gYWRkZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICB0b2FzdF9zdWNjZXNzX2ludml0YXRpb25fc2VuZDogJ0ludml0YXRpb24gc2VudCcsXG4gICAgdG9hc3Rfc3VjY2Vzc191cGRhdGVfYXR0YWNobWVudDpcbiAgICAgICd7Y291bnQsIHBsdXJhbCwgb25lIHtBdHRhY2htZW50IHVwZGF0ZWR9IG90aGVyIHsjIEF0dGFjaG1lbnRzIHVwZGF0ZWR9fScsXG4gICAgdG9hc3Rfc3VjY2Vzc191cGRhdGVfc2VydmljZTogJ1NlcnZpY2UgdXBkYXRlZC4nLFxuICAgIHRvYXN0X3N1Y2Nlc3NfdXBsb2FkX2ZpbGU6XG4gICAgICAne2NvdW50LCBwbHVyYWwsIG9uZSB7VXBsb2FkIG9mIHt7ZmlsZX19IGNvbXBsZXRlZH0gb3RoZXIge1VwbG9hZCBvZiAjIGZpbGVzIGNvbXBsZXRlZH19JyxcbiAgICB0b2FzdF93YXJuaW5nOiAnV2FybmluZyEnLFxuICAgIHRvYXN0X3dhcm5pbmdfaW52YWxpZF9mb3JtX2RhdGE6XG4gICAgICAnSW52YWxpZCBmb3JtIGRhdGEuIFBsZWFzZSBjaGVjayB0aGUgZm9ybSBmb3IgZXJyb3JzLicsXG4gICAgdG9hc3Rfd2FybmluZ19pbnZhbGlkX3NjaGVtYTogJ1Byb3BlcnRpZXMgU2NoZW1hIGlzIGludmFsaWQnLFxuICAgIHRvYXN0X3dhcm5pbmdfcm9sbGJhY2tfdmVyc2lvbjpcbiAgICAgIFwiVGhlc2UgcmVmZXJlbmNlZCBlbGVtZW50cyBvZiB0aGUgcmV2aXNpb24gZG9uJ3QgZXhpc3QgYW55bW9yZToge3tlbnRyaWVzfX1cIixcbiAgICB0b3VyX3N0YXJ0OiAnU3RhcnQgdG91cicsXG4gICAgdHlwZTogJ1R5cGUnLFxuICAgIHVua25vd246ICd1bmtub3duJyxcbiAgICB1bnZlcmlmaWVkOiAnVW52ZXJpZmllZCcsXG4gICAgdXBkYXRlZDogJ1VwZGF0ZWQnLFxuICAgIHVwZGF0ZWRfYnk6ICdVcGRhdGVkIGJ5JyxcbiAgICB1cGxvYWRfZGF0ZTogJ1VwbG9hZCBEYXRlJyxcbiAgICB1cGxvYWRfZmlsZTogJ1VwbG9hZCBGaWxlJyxcbiAgICB1cmw6ICdVUkwnLFxuICAgIHVzZXI6ICdVc2VyJyxcbiAgICB1c2VyX3JvbGVzOiAnVXNlciBSb2xlcycsXG4gICAgdXNlcm5hbWU6ICdVc2VybmFtZScsXG4gICAgdmF0OiAnVkFULUlEJyxcbiAgICB2YXRfZXhhbXBsZTpcbiAgICAgICdWQVQtSUQgbXVzdCBiZSBmcm9tIEdlcm1hbnkgKERFIGZvbGxvd2VkIGJ5IDkgZGlnaXRzLCBlLmcuIERFMTIzNDU2Nzg5KSBvciBBdXN0cmlhIChBVFUgZm9sbG93ZWQgYnkgOCBkaWdpdHMsIGUuZy4gQVRVMTIzNDU2NzgpJyxcbiAgICB2ZXJpZmllZDogJ1ZlcmlmaWVkJyxcbiAgICB2aWV3OiAnVmlldycsXG4gICAgdmlld19pZGVudGl0eV9wcm92aWRlcnM6XG4gICAgICAnUm9sZSB0aGF0IGFsbG93cyB0byB2aWV3IHRoZSBjb25maWd1cmVkIGlkZW50aXR5IHByb3ZpZGVycyBvZiB0aGUgY29tcGFueScsXG4gICAgdmlld19pbnZpdGF0aW9uczpcbiAgICAgICdSb2xlIHRoYXQgYWxsb3dzIHRvIHZpZXcgYWxsIG9wZW4gaW52aXRhdGlvbnMgb2YgdGhlIGNvbXBhbnknLFxuICAgIHZpZXdfbWVtYmVyczogJ1JvbGUgdGhhdCBhbGxvd3MgdG8gdmlldyBhbGwgY3VycmVudCBtZW1iZXJzIG9mIHRoZSBjb21wYW55JyxcbiAgICB2aWV3X29yZ2FuaXphdGlvbjogJ1JvbGUgdGhhdCBhbGxvd3MgdG8gdmlldyB0aGUgY29tcGFueScsXG4gICAgdmlld19yb2xlczogJ1JvbGUgdGhhdCBhbGxvd3MgdG8gdmlldyBhbGwgcm9sZXMgb2YgdGhlIGNvbXBhbnknLFxuICAgIHdhcm5pbmc6ICdXYXJuaW5nJyxcbiAgICB3ZWVrOiAnV2VlaycsXG4gICAgd3JpdGVfcGVybWlzc2lvbnM6ICdXcml0ZSBQZXJtaXNzaW9ucycsXG4gICAgeWVhcjogJ1llYXInLFxuICAgIHllYXJzOiAnWWVhcnMnLFxuICAgIHppcF9jb2RlOiAnUG9zdGFsIENvZGUnLFxuICAgIHppcF9jb2RlX2Vycm9yOlxuICAgICAgJ1RoZSBQb3N0YWwgQ29kZSBtdXN0IGJlIHZhbGlkIGFuZCBub3QgYmUgbG9uZ2VyIHRoYW4gMTAgZGlnaXRzLicsXG4gIH0sXG4gIGRlOiB7XG4gICAgYWNjZXB0ZWQ6ICdBbmdlbm9tbWVuJyxcbiAgICBhY2Nlc3NfcmVzdHJpY3RlZDogJ1p1Z3JpZmYgYmVzY2hyw6Rua3QnLFxuICAgIGFjY2Vzc191bnJlc3RyaWN0ZWQ6ICdVbmJlc2NocsOkbmt0ZXIgWnVncmlmZicsXG4gICAgYWNjb3VudDogJ051dHplcmtvbnRvJyxcbiAgICBhY3Rpb246ICdBa3Rpb24nLFxuICAgIGFjdGlvbnM6ICdBa3Rpb25lbicsXG4gICAgYWN0aXZlOiAnQWt0aXYnLFxuICAgIGFkZF9hdHRhY2htZW50OiAnQW5oYW5nIEhpbnp1ZsO8Z2VuJyxcbiAgICBhZGRfYXR0cmlidXRlOiAnQXR0cmlidXQgSGluenVmw7xnZW4nLFxuICAgIGFkZF9uZXc6ICdOZXVlIEhpbnp1ZsO8Z2VuJyxcbiAgICBhZGRfbmV3X21lbWJlcjogJ05ldWVzIE1pdGdsaWVkIGhpbnp1ZsO8Z2VuJyxcbiAgICBhZGRfbmV3X29yZ2FuaXphdGlvbjogJ05ldWUgT3JnYW5pc2F0aW9uIGhpbnp1ZsO8Z2VuJyxcbiAgICBhZGRfdG9fY2xpcGJvYXJkOiAnWnVyIFp3aXNjaGVuYWJsYWdlIGhpbnp1ZsO8Z2VuJyxcbiAgICBhZGRyZXNzOiAnQWRyZXNzZScsXG4gICAgYWRtaW5pc3RyYXRpb246ICdWZXJ3YWx0dW5nJyxcbiAgICBhaToge1xuICAgICAgYWJvcnQ6ICdBYmJyZWNoZW4nLFxuICAgICAgYWNjZXB0OiAnQWt6ZXB0aWVyZW4nLFxuICAgICAgYWNjZXNzZWRfYXQ6ICdadWdlZ3JpZmZlbiBhbScsXG4gICAgICBhZGFtX2FpX2ludHJvOlxuICAgICAgICAnVW50ZXJoYWx0ZW4gU2llIHNpY2ggaW4gRWNodHplaXQgbWl0IEFkYW0gQUksIElocmVtIEV4cGVydGVuYXNzaXN0ZW50ZW4gZsO8ciBBc3NldCBJbnRlbGxpZ2VuY2UuIEVyaGFsdGVuIFNpZSBpbnRlbGxpZ2VudGUgRWluYmxpY2tlIHVuZCBMw7ZzdW5nZW4sIGRpZSBhdWYgSWhyZSBCZWTDvHJmbmlzc2UgenVnZXNjaG5pdHRlbiBzaW5kLicsXG4gICAgICBhZ2VudF91bmF2YWlsYWJsZTogJ0FnZW50IG5pY2h0IHZlcmbDvGdiYXInLFxuICAgICAgYWlfcGxhY2Vob2xkZXI6ICdXaWUga2FubiBBREFNIElobmVuIGhldXRlIGhlbGZlbj8nLFxuICAgICAgYW5kOiAndW5kJyxcbiAgICAgIGFza19hYm91dF9hc3NldDogJ0FEQU0gQUkgw7xiZXIgZGllc2VzIEFzc2V0IGZyYWdlbicsXG4gICAgICBhc2tfYWRhbTogJ0ZyYWcgQWRhbSBBSScsXG4gICAgICBhc3NldF9pbnRlbGxpZ2VuY2U6ICdBc3NldCBJbnRlbGxpZ2VuY2UnLFxuICAgICAgYXNzaXN0YW50czogJ0Fzc2lzdGVudGVuJyxcbiAgICAgIGNoYXRfZGVsZXRlZDogJ0NoYXQgZ2Vsw7ZzY2h0JyxcbiAgICAgIGNoYXRzOiAnQ2hhdHMnLFxuICAgICAgY2xlYXJfaGlzdG9yeTogJ1ZlcmxhdWYgbMO2c2NoZW4nLFxuICAgICAgY29tcGxldGVfYW5kX2NyZWF0ZV9yZXBvcnQ6ICdBYnNjaGxpZcOfZW4gdW5kIEJlcmljaHQgZXJzdGVsbGVuJyxcbiAgICAgIGNvbnRleHQ6ICdSZWZlcmVuemllcnRlciBLb250ZXh0JyxcbiAgICAgIGNvbnRleHRfZm91bmQ6ICdLb250ZXh0IGdlZnVuZGVuJyxcbiAgICAgIGNvbnRleHRfbm9uZTogJ0tlaW5lIHp1Z2Vow7ZyaWdlbiBBc3NldHMgb2RlciBEYXRlaWVuIGdlZnVuZGVuLicsXG4gICAgICBjb250ZXh0X3NlYXJjaDogJ1N1Y2hlIG5hY2ggenVnZWjDtnJpZ2VuIEFzc2V0cyB1bmQgRGF0ZWllbi4uLicsXG4gICAgICBjb250aW51ZV9jaGF0OiAnQ2hhdCBmb3J0c2V0emVuJyxcbiAgICAgIGNvbnRpbnVlX3ByZXZpb3VzX2NoYXQ6ICdWb3JoZXJpZ2VuIENoYXQgZm9ydHNldHplbicsXG4gICAgICBjb29raWVzOiAnQ29va2llcycsXG4gICAgICBjcmVhdGVfbmV3X2NoYXQ6ICdOZXVlbiBDaGF0IGVyc3RlbGxlbicsXG4gICAgICBjcmVhdGVfbmV3X2V2ZW50OiAnTmV1ZSBNZWxkdW5nIG1pdCBIaWxmZSB2b24gQWRhbSBlcnN0ZWxsZW4nLFxuICAgICAgZGU6ICdEZXV0c2NoJyxcbiAgICAgIGRlbGV0ZV9jaGF0OiAnQ2hhdCBsw7ZzY2hlbicsXG4gICAgICBkZWxldGVfaXRlbTogJ0VpbnRyYWcgbMO2c2NoZW4nLFxuICAgICAgZGVsZXRlX2l0ZW1fbWVzc2FnZTpcbiAgICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge03DtmNodGVuIFNpZSBkaWVzZXMgRWxlbWVudCB3aXJrbGljaCBsw7ZzY2hlbj88YnI+PGJyPjxiPnt7IGl0ZW1zIH19PC9iPn0gb3RoZXIge03DtmNodGVuIFNpZSBkaWVzZSAjIEVsZW1lbnRlIHdpcmtsaWNoIGzDtnNjaGVuP319JyxcbiAgICAgIGRlbGV0ZV9pdGVtX21lc3NhZ2VfZ2VuZXJhbDpcbiAgICAgICAgJ03DtmNodGVuIFNpZSBkaWVzZXMgRWxlbWVudCB3aXJrbGljaCBsw7ZzY2hlbj8nLFxuICAgICAgZGVsZXRlX2l0ZW1fdGl0bGU6XG4gICAgICAgICd7Y291bnQsIHBsdXJhbCwgb25lIHtFbGVtZW50IGzDtnNjaGVufSBvdGhlciB7TWVocmVyZSBFbGVtZW50ZSBsw7ZzY2hlbn19JyxcbiAgICAgIGRvY3VtZW50OiAnRG9rdW1lbnQnLFxuICAgICAgZW46ICdFbmdsaXNoJyxcbiAgICAgIGZhaWxlZF90b19jcmVhdGVfY2hhdDogJ0NoYXQga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdlcmRlbicsXG4gICAgICBmYWlsZWRfdG9fZGVsZXRlX2NoYXQ6ICdDaGF0IGtvbm50ZSBuaWNodCBnZWzDtnNjaHQgd2VyZGVuJyxcbiAgICAgIGZhaWxlZF90b19pbml0aWFsaXplX2NoYXQ6ICdDaGF0IGtvbm50ZSBuaWNodCBpbml0aWFsaXNpZXJ0IHdlcmRlbicsXG4gICAgICBmYWlsZWRfdG9fbG9hZF9hc3Npc3RhbnRzOiAnQXNzaXN0ZW50ZW4ga29ubnRlbiBuaWNodCBnZWxhZGVuIHdlcmRlbicsXG4gICAgICBmYWlsZWRfdG9fbG9hZF9jaGF0czogJ0NoYXQtVmVybGF1ZiBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgICAgZmFpbGVkX3RvX3Byb2Nlc3NfbWVzc2FnZTpcbiAgICAgICAgJ0RpZSBOYWNocmljaHQga29ubnRlIG5pY2h0IHZlcmFyYmVpdGV0IHdlcmRlbi4gQml0dGUgdmVyc3VjaGVuIFNpZSBlcyBlcm5ldXQuJyxcbiAgICAgIGZhaWxlZF90b19zZW5kX21lc3NhZ2U6ICdOYWNocmljaHQga29ubnRlIG5pY2h0IGdlc2VuZGV0IHdlcmRlbicsXG4gICAgICBmYWlsZWRfdG9fdXBkYXRlX21vZGVsOiAnTW9kZWxsIGtvbm50ZSBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVuJyxcbiAgICAgIGZpbGVfdHlwZToge1xuICAgICAgICBhcmNoaXZlOiAnQXJjaGl2JyxcbiAgICAgICAgYXVkaW86ICdBdWRpbycsXG4gICAgICAgIGltYWdlOiAnQmlsZCcsXG4gICAgICAgIHBkZjogJ1BERicsXG4gICAgICAgIHRleHQ6ICdUZXh0JyxcbiAgICAgICAgdW5rbm93bjogJ1VuYmVrYW5udCcsXG4gICAgICAgIHZpZGVvOiAnVmlkZW8nLFxuICAgICAgfSxcbiAgICAgIGZpbmlzaF9yZWFzb246IHtcbiAgICAgICAgJ2NvbnRlbnQtZmlsdGVyJzpcbiAgICAgICAgICAnSWhyZSBBbmZyYWdlIHd1cmRlIGF1ZmdydW5kIHZvbiBJbmhhbHRzZmlsdGVybiBibG9ja2llcnQuIEJpdHRlIGZvcm11bGllcmVuIFNpZSBJaHJlIEZyYWdlIHVtIHVuZCB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dC4nLFxuICAgICAgICBlcnJvcjpcbiAgICAgICAgICAnRXMgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgc3DDpHRlciBlcm5ldXQuJyxcbiAgICAgICAgbGVuZ3RoOlxuICAgICAgICAgICdEaWUgQW5mcmFnZSBpc3QgenUgbGFuZywgdW0gdmVyYXJiZWl0ZXQgenUgd2VyZGVuLiBCaXR0ZSB2ZXJzdWNoZW4gU2llIGVzIGVybmV1dCBvZGVyIHN0YXJ0ZW4gU2llIGVpbmVuIG5ldWVuIENoYXQuJyxcbiAgICAgICAgdW5rbm93bjpcbiAgICAgICAgICAnRXMgaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uIEJpdHRlIHZlcnN1Y2hlbiBTaWUgZXMgc3DDpHRlciBlcm5ldXQuJyxcbiAgICAgIH0sXG4gICAgICAnZ3B0LTRvJzogJ0dQVC00bycsXG4gICAgICAnZ3B0LTRvLTIwMjQtMDgtMDYnOiAnR1BULTRvJyxcbiAgICAgICdncHQtNG8tMjAyNC0xMS0yMCc6ICdHUFQtNG8nLFxuICAgICAgJ2dwdC00by1taW5pJzogJ0dQVC00byBNaW5pJyxcbiAgICAgICdncHQtNG8tbWluaS0yMDI0LTA3LTE4JzogJ0dQVC00byBNaW5pJyxcbiAgICAgIGhlbHBfbWU6ICdGcmFnIEFkYW0gQUkgdW0gSGlsZmUnLFxuICAgICAgbGFzdF9tZXNzYWdlOiAnTGV0enRlIE5hY2hyaWNodCcsXG4gICAgICBtb2RlbDogJ0dQVC1Nb2RlbGwnLFxuICAgICAgbW9kZWxfdXBkYXRlZDogJ01vZGVsbCBha3R1YWxpc2llcnQnLFxuICAgICAgbm9fY2hhdHNfZm91bmQ6ICdLZWluZSBDaGF0cyBnZWZ1bmRlbicsXG4gICAgICBub19tZXNzYWdlczogJ05vY2gga2VpbmUgTmFjaHJpY2h0ZW4nLFxuICAgICAgbm9uZV9vZl90aG9zZTogJ0tlaW5lcyBkYXZvbicsXG4gICAgICBvZl9kb2N1bWVudDogJ2RlcyBEb2t1bWVudHMnLFxuICAgICAgb3BlbmFpX2Rpc2NsYWltZXI6XG4gICAgICAgICdJbiBkZXIgVm9yc2NoYXV2ZXJzaW9uIGRlcyBBc3NldCBXZWIgQXNzaXN0ZW50ZW4gd2VyZGVuIElocmUgRGF0ZW4gdm9uIE9wZW5BSSBhdcOfZXJoYWxiIGRlciBFVSB2ZXJhcmJlaXRldC4gU2luZCBTaWUgZGFtaXQgZWludmVyc3RhbmRlbj8nLFxuICAgICAgcHJldmlvdXNfY2hhdHM6ICdWb3JoZXJpZ2UgQ2hhdHMnLFxuICAgICAgcHJvbXB0X3N1Z2dlc3Rpb25zOiB7XG4gICAgICAgICdhc3NldC1pbmZvJzoge1xuICAgICAgICAgIHByb21wdDogJ0Vyc3RlbGxlIGVpbmVuIGRldGFpbGxpZXJ0ZW4gV2FydHVuZ3NwbGFuIGbDvHIgbWVpbiBBc3NldCcsXG4gICAgICAgICAgdGl0bGU6ICdBc3NldC1JbmZvJyxcbiAgICAgICAgfSxcbiAgICAgICAgaW50cm86IHtcbiAgICAgICAgICBwcm9tcHQ6XG4gICAgICAgICAgICAnV2FzIGlzdCBBZGFtIEFJIHVuZCB3aWUga2FubiBlcyBtaXIgYmVpIGRlciBBc3NldC1WZXJ3YWx0dW5nIGhlbGZlbj8nLFxuICAgICAgICAgIHRpdGxlOiAnRWluZsO8aHJ1bmcnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHByb21wdHM6IHtcbiAgICAgICAgYXNzZXRJZDogJy4gRGllIElEIGRlcyBBc3NldHMgaXN0IHt7YXNzZXRJZH19JyxcbiAgICAgICAgYXNzZXRLZXk6ICcuIERpZSBleHRlcm5lIElEIGRlcyBBc3NldHMgaXN0IHt7YXNzZXRLZXl9fScsXG4gICAgICAgIGFzc2V0OiAnSWNoIGhhYmUgZWluZSBGcmFnZSB6dSBkZW0gQXNzZXQge3thc3NldE5hbWV9fScsXG4gICAgICAgIGhlbHA6ICdCaXR0ZSBoaWxmIG1pciBiZWkgZGVyIEzDtnN1bmcgZGllc2VyIEF1ZmdhYmUge3t0YXNrSWR9fScsXG4gICAgICAgIGluY2lkZW50OlxuICAgICAgICAgICdCaXR0ZSBlcnN0ZWxsZSBlaW5lIG5ldWUgTWVsZHVuZyBmw7xyIGRhcyBBc3NldCB7e2Fzc2V0TmFtZX19JyxcbiAgICAgICAgcmVwb3J0OiAnQml0dGUgZXJzdGVsbGUgZWluZW4gQmVyaWNodCBmw7xyIGRhcyBBc3NldCB7e2Fzc2V0TmFtZX19JyxcbiAgICAgIH0sXG4gICAgICByZWZlcmVuY2Vfbm90X2ZvdW5kOiAnUmVmZXJlbnogbmljaHQgZ2VmdW5kZW4nLFxuICAgICAgcmV0cnk6ICdFcm5ldXQgdmVyc3VjaGVuJyxcbiAgICAgIHNlbGVjdF9hc3NldDogJ0Fzc2V0IGF1c3fDpGhsZW4nLFxuICAgICAgc2VuZF9tZXNzYWdlOiAnTmFjaHJpY2h0IHNlbmRlbicsXG4gICAgICBzb3VyY2U6ICdRdWVsbGUnLFxuICAgICAgc3RvcF9yZWNvcmRpbmc6ICdBdWZuYWhtZSBzdG9wcGVuJyxcbiAgICAgIHN1Z2dlc3RlZF9wcm9tcHRzOiAnVm9yZ2VzY2hsYWdlbmUgUHJvbXB0cyBmw7xyIGRlbiBFaW5zdGllZyBpbiBBREFNIEFJJyxcbiAgICAgIHRocmVhZHM6ICdDaGF0cycsXG4gICAgICB0b2FzdF9lcnJvcl9kZWxldGVfZW50cnk6ICd7e2VudHJ5fX0ga29ubnRlIG5pY2h0IGdlbMO2c2NodCB3ZXJkZW4uJyxcbiAgICAgIHRvYXN0X3N1Y2Nlc3NfZGVsZXRlX2VudHJ5OiAne3tlbnRyeX19IGdlbMO2c2NodC4nLFxuICAgICAgdG9vbHM6IHtcbiAgICAgICAgY3JlYXRlQXhhbHRhRXZlbnQ6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdFcmVpZ25pcyB3dXJkZSBlcnN0ZWxsdCcsXG4gICAgICAgICAgZmFpbGVkOiAnRXJlaWduaXMga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdlcmRlbicsXG4gICAgICAgICAgcGVuZGluZzogJ0VyZWlnbmlzIHdpcmQgZXJzdGVsbHQnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdFcmVpZ25pcyB3aXJkIGVyc3RlbGx0JyxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlRXZlbnQ6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdFcmVpZ25pcyB3dXJkZSBlcnN0ZWxsdCcsXG4gICAgICAgICAgZmFpbGVkOiAnRXJlaWduaXMga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdlcmRlbicsXG4gICAgICAgICAgcGVuZGluZzogJ0VyZWlnbmlzIHdpcmQgZXJzdGVsbHQnLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdFcmVpZ25pcyB3aXJkIGVyc3RlbGx0JyxcbiAgICAgICAgfSxcbiAgICAgICAgY3JlYXRlUmVwb3J0OiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnQmVyaWNodCB3dXJkZSBlcnN0ZWxsdCcsXG4gICAgICAgICAgZmFpbGVkOiAnQmVyaWNodCBrb25udGUgbmljaHQgZXJzdGVsbHQgd2VyZGVuJyxcbiAgICAgICAgICBwZW5kaW5nOiAnQmVyaWNodCB3aXJkIGVyc3RlbGx0JyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnQmVyaWNodCB3aXJkIGVyc3RlbGx0JyxcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0QWRkaXRpb25hbERhdGFUZW1wbGF0ZToge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1p1c2F0emRhdGVuIHd1cmRlbiBhYmdlcnVmZW4nLFxuICAgICAgICAgIGZhaWxlZDogJ1p1c2F0emRhdGVuIGtvbm50ZW4gbmljaHQgYWJnZXJ1ZmVuIHdlcmRlbicsXG4gICAgICAgICAgcGVuZGluZzogJ1p1c2F0emRhdGVuIHdlcmRlbiBhYmdlcnVmZW4nLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdadXNhdHpkYXRlbiB3ZXJkZW4gYWJnZXJ1ZmVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgZ2V0QXNzZXREYXRhOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnQXNzZXRkYXRlbiB3dXJkZW4gYWJnZXJ1ZmVuJyxcbiAgICAgICAgICBmYWlsZWQ6ICdBc3NldGRhdGVuIGtvbm50ZW4gbmljaHQgYWJnZXJ1ZmVuIHdlcmRlbicsXG4gICAgICAgICAgcGVuZGluZzogJ0Fzc2V0ZGF0ZW4gd2VyZGVuIGFiZ2VydWZlbicsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ0Fzc2V0ZGF0ZW4gd2VyZGVuIGFiZ2VydWZlbicsXG4gICAgICAgIH0sXG4gICAgICAgIGdldFJlcG9ydFRlbXBsYXRlOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnQmVyaWNodHN2b3JsYWdlIHd1cmRlIGFiZ2VydWZlbicsXG4gICAgICAgICAgZmFpbGVkOiAnQmVyaWNodHN2b3JsYWdlIGtvbm50ZSBuaWNodCBhYmdlcnVmZW4gd2VyZGVuJyxcbiAgICAgICAgICBwZW5kaW5nOiAnQmVyaWNodHN2b3JsYWdlIHdpcmQgYWJnZXJ1ZmVuJyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnQmVyaWNodHN2b3JsYWdlIHdpcmQgYWJnZXJ1ZmVuJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRm9yQXNzZXRBeGFsdGE6IHtcbiAgICAgICAgICBjb21wbGV0ZWQ6ICdTdWNoZSBuYWNoIEFzc2V0IGFiZ2VzY2hsb3NzZW4nLFxuICAgICAgICAgIGZhaWxlZDogJ1N1Y2hlIG5hY2ggQXNzZXQgZmVobGdlc2NobGFnZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdTdWNoZSBuYWNoIEFzc2V0JyxcbiAgICAgICAgICBwcm9jZXNzaW5nOiAnU3VjaGUgbmFjaCBBc3NldCcsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckFzc2V0V2l0aElkOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnU3VjaGUgbmFjaCBBc3NldCBtaXQgSUQgYWJnZXNjaGxvc3NlbicsXG4gICAgICAgICAgZmFpbGVkOiAnU3VjaGUgbmFjaCBBc3NldCBtaXQgSUQgZmVobGdlc2NobGFnZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdTdWNoZSBuYWNoIEFzc2V0IG1pdCBJRCcsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1N1Y2hlIG5hY2ggQXNzZXQgbWl0IElEJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRm9yQXNzZXRzOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnU3VjaGUgbmFjaCBBc3NldHMgYWJnZXNjaGxvc3NlbicsXG4gICAgICAgICAgZmFpbGVkOiAnU3VjaGUgbmFjaCBBc3NldHMgZmVobGdlc2NobGFnZW4nLFxuICAgICAgICAgIHBlbmRpbmc6ICdTdWNoZSBuYWNoIEFzc2V0cycsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1N1Y2hlIG5hY2ggQXNzZXRzJyxcbiAgICAgICAgfSxcbiAgICAgICAgc2VhcmNoRm9yRG9jdW1lbnRzOiB7XG4gICAgICAgICAgY29tcGxldGVkOiAnU3VjaGUgbmFjaCBEb2t1bWVudGVuIGFiZ2VzY2hsb3NzZW4nLFxuICAgICAgICAgIGZhaWxlZDogJ1N1Y2hlIG5hY2ggRG9rdW1lbnRlbiBmZWhsZ2VzY2hsYWdlbicsXG4gICAgICAgICAgcGVuZGluZzogJ1N1Y2hlIG5hY2ggRG9rdW1lbnRlbicsXG4gICAgICAgICAgcHJvY2Vzc2luZzogJ1N1Y2hlIG5hY2ggRG9rdW1lbnRlbicsXG4gICAgICAgIH0sXG4gICAgICAgIHNlYXJjaEZvckV2ZW50czoge1xuICAgICAgICAgIGNvbXBsZXRlZDogJ1N1Y2hlIG5hY2ggRXJlaWduaXNzZW4gYWJnZXNjaGxvc3NlbicsXG4gICAgICAgICAgZmFpbGVkOiAnU3VjaGUgbmFjaCBFcmVpZ25pc3NlbiBmZWhsZ2VzY2hsYWdlbicsXG4gICAgICAgICAgcGVuZGluZzogJ1N1Y2hlIG5hY2ggRXJlaWduaXNzZW4nLFxuICAgICAgICAgIHByb2Nlc3Npbmc6ICdTdWNoZSBuYWNoIEVyZWlnbmlzc2VuJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB1c2VfbWljcm9waG9uZTogJ01pa3JvZm9uIHZlcndlbmRlbicsXG4gICAgICB1c2Vfd2ViX3NlYXJjaDogJ0ltIFdlYiBzdWNoZW4nLFxuICAgICAgdmlld19wcmV2aW91c19jaGF0czogJ1ZvcmhlcmlnZSBDaGF0cyBhbnplaWdlbicsXG4gICAgICB3ZWJfc291cmNlOiAnV2ViLVF1ZWxsZScsXG4gICAgfSxcbiAgICBhbGVydDogJ0FsYXJtJyxcbiAgICBhbGVydHM6ICdBbGFybWUnLFxuICAgIGFsbG93ZWRfdG86ICdTaWUgZMO8cmZlbicsXG4gICAgYW5kOiAndW5kJyxcbiAgICBhcHBsaWNhdGlvbnM6ICdBbndlbmR1bmdlbicsXG4gICAgYXBwczogJ0FwcGxpa2F0aW9uZW4nLFxuICAgIGFwcHN0b3JlOiAnQXBwIFN0b3JlJyxcbiAgICBhc2NlbmRpbmc6ICdBdWZzdGVpZ2VuZCcsXG4gICAgYXNzZXQ6ICdBc3NldCcsXG4gICAgYXNzZXRfaW50ZWxsaWdlbmNlOiAnQXNzZXQgSW50ZWxsaWdlbmNlJyxcbiAgICBhc3NldF9tYW5hZ2VyOiAnQXNzZXQgTWFuYWdlcicsXG4gICAgYXNzZXRfdHlwZTogJ0Fzc2V0IFR5cCcsXG4gICAgYXNzZXRzOiAnQXNzZXRzJyxcbiAgICBhc3NldHR5cGU6ICdBc3NldCBUeXAnLFxuICAgIGFzc2V0dHlwZXM6ICdBc3NldCBUeXBlbicsXG4gICAgYXR0YWNobWVudDogJ0FuaGFuZycsXG4gICAgYXR0YWNobWVudHM6ICdBbmjDpG5nZScsXG4gICAgYXVkaXRfbG9nczogJ0F1ZGl0IExvZ3MnLFxuICAgIGF1dGhvcjogJ0F1dG9yJyxcbiAgICBhdXRob3JpemF0aW9uX3R5cGU6ICdBdXRob3JpemF0aW9uIFR5cGUnLFxuICAgIGF2ZXJhZ2U6ICdEdXJjaHNjaG5pdHQnLFxuICAgIGJhY2s6ICdadXLDvGNrJyxcbiAgICBiYWNrX3RvX29yZ2FuaXphdGlvbnM6ICdadXLDvGNrIHp1IE9yZ2FuaXNhdGlvbmVuJyxcbiAgICBidWNrZXRfdGltZV9yYW5nZTogJ0J1Y2tldCBaZWl0c3Bhbm5lIChEZWZhdWx0IGlzdCAyNGgpJyxcbiAgICBieTogJ3ZvbicsXG4gICAgY2FsZW5kYXI6ICdLYWxlbmRlcicsXG4gICAgY2FuY2VsOiAnQWJicmVjaGVuJyxcbiAgICBjYXRhbG9nOiAnS2F0YWxvZycsXG4gICAgJ2NhdGVnb3J5LmRlbGV0ZSc6ICdEaWVuc3RsZWlzdHVuZ3NrYXRhbG9nIGVudGZlcm5lbiAnLFxuICAgICdjZXJ0LmFkZC5uZXcnOiAnWmVydGlmaWthdCBoaW56dWbDvGdlbicsXG4gICAgJ2NlcnQuZGVsZXRlJzogJ1plcnRpZmlrYXQgZW50ZmVybmVuJyxcbiAgICAnY2VydC5lZGl0JzogJ1plcnRpZmlrYXQgZWRpdGllcmVuJyxcbiAgICAnY2VydC5uYW1lJzogJ1plcnRpZmlrYXRzbmFtZScsXG4gICAgY2VydF9hZGRfbmV3X2Rlc2NyaXB0aW9uOiAnVmVyd2FsdHVuZyBPcmdhbmlzYXRpb25zYmV6b2dlbmVyIFplcnRpZmlrYXRlJyxcbiAgICBjZXJ0aWZpY2F0ZTogJ1plcnRpZmlrYXRlJyxcbiAgICAnY2VydGlmaWNhdGUuYWRkLm5ldyc6ICdaZXJ0aWZpa2F0IGhpbnp1ZsO8Z2VuJyxcbiAgICBjZXJ0aWZpY2F0aW9uOiB7XG4gICAgICBkYXRlX2lzc3VlOiAnQXVzc3RlbGxkYXR1bScsXG4gICAgICBleHBpcmF0aW9uX2RhdGU6ICdBYmxhdWZzZGF0dW0nLFxuICAgICAgaW5zdGl0dXRpb246ICdaZXJ0aWZpemllcnVuZ3NlaW5yaWNodHVuZycsXG4gICAgICBudW1iZXI6ICdaZXJ0aWZpa2F0c251bW1lcicsXG4gICAgfSxcbiAgICBjaGlsZHJlbjogJ0tpbmRlcicsXG4gICAgY2hvb3NlOiAnQXVzd8OkaGxlbicsXG4gICAgY2hvb3NlX2ZpbGU6ICdEYXRlaSBhdXN3w6RobGVuJyxcbiAgICBjaXR5OiAnU3RhZHQnLFxuICAgIGNvbG9yOiAnRmFyYmUnLFxuICAgIGNvbHVtbl9zZXR0aW5nczogJ1NwYWx0ZW4tRWluc3RlbGx1bmdlbicsXG4gICAgY29tbWVudDogJ0tvbW1lbnRhcicsXG4gICAgY29tcGFueV9tYW5hZ2VyOiAnVW50ZXJuZWhtZW4gTWFuYWdlcicsXG4gICAgY29tcGFueV9tYXRjaGluZzogJ0NvbXBhbnktTWF0Y2hpbmcnLFxuICAgIGNvbXBsZXRlX3N1YnNjcmlwdGlvbjogJ0Fib25uZW1lbnQgYWJzY2hsaWXDn2VuJyxcbiAgICBjb25maXJtOiAnQmVzdMOkdGlnZW4nLFxuICAgIGNvbnNlbnRfbWFuYWdlbWVudDoge1xuICAgICAgYWNjZXB0X2FsbDogJ0FsbGUgYWt6ZXB0aWVyZW4nLFxuICAgICAgYWNjZXB0X2FsbF9ub3RlOlxuICAgICAgICAnRHVyY2ggS2xpY2tlbiBhdWYgXCJBbGxlIGFremVwdGllcmVuXCIgc3RpbW1lbiBTaWUgZGVyIFZlcndlbmR1bmcgdm9uIGVzc2VudGllbGxlbiB1bmQgYW5hbHl0aXNjaGVuIENvb2tpZXMgenUuJyxcbiAgICAgIGFsd2F5c19lbmFibGVkOiAnSW1tZXIgYWt0aXYnLFxuICAgICAgY29va2llX2dyb3Vwczoge1xuICAgICAgICBhbmFseXRpY3M6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdEaWVzZSBDb29raWVzIHNhbW1lbG4gRGF0ZW4gw7xiZXIgZGllIE51dHp1bmcgZGVyIFdlYnNpdGUsIHouQi4gd2VsY2hlIFNlaXRlbiBiZXN1Y2h0IHdlcmRlbiwgdW0gdW5zIHp1IGhlbGZlbiwgZGllIGJlbGllYnRlc3RlbiBTZWl0ZW4genUgaWRlbnRpZml6aWVyZW4gdW5kIHp1IHZlcnN0ZWhlbiwgd2llIEJlc3VjaGVyIGF1ZiBkZXIgV2Vic2l0ZSBuYXZpZ2llcmVuLjxiciAvPkRhdGVuIHp1ciBOdXR6dW5nIGRlciBXZWJzaXRlIHdlcmRlbiBtaXRoaWxmZSB2b24gZGF1ZXJoYWZ0ZW4gQ29va2llcyB2b24gRXJzdC0gdW5kIERyaXR0YW5iaWV0ZXJuIHVuZCBhbmRlcmVuIFRyYWNraW5nLVRlY2hub2xvZ2llbiBlcmZhc3N0LCB1bSBkaWUgQmVsaWVidGhlaXQgdm9uIFByb2R1a3RlbiB1bmQgT25saW5lLUFrdGl2aXTDpHRlbiB6dSBlcm1pdHRlbG4uJyxcbiAgICAgICAgICB0aXRsZTogJ0FuYWx5dGlzY2hlIENvb2tpZXMnLFxuICAgICAgICB9LFxuICAgICAgICBlc3NlbnRpYWw6IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICdEaWVzZSBDb29raWVzIHNpbmQgZsO8ciBkZW4gQmV0cmllYiBkZXIgV2Vic2VpdGUgdW5iZWRpbmd0IGVyZm9yZGVybGljaC4gU2llIHdlcmRlbiBpbiBkZXIgUmVnZWwgbnVyIGFscyBSZWFrdGlvbiBhdWYgSWhyZSBIYW5kbHVuZ2VuIGdlc2V0enQsIHdpZSB6LiBCLiBkaWUgRWluc3RlbGx1bmcgSWhyZXIgRGF0ZW5zY2h1dHplaW5zdGVsbHVuZ2VuLiBEaWVzZSBDb29raWVzIHNwZWljaGVybiBrZWluZSBwZXJzw7ZubGljaCBpZGVudGlmaXppZXJiYXJlbiBJbmZvcm1hdGlvbmVuLicsXG4gICAgICAgICAgdGl0bGU6ICdFcmZvcmRlcmxpY2hlIENvb2tpZXMnLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvb2tpZV9pbnRybzpcbiAgICAgICAgJ0RpZXNlIFdlYnNpdGUgdmVyd2VuZGV0IENvb2tpZXMgdW5kIGFuZGVyZSBUcmFja2luZy1UZWNobm9sb2dpZW4sIHVtIHdlc2VudGxpY2hlIEZ1bmt0aW9uZW4gZGVyIFdlYnNpdGUgenUgZXJtw7ZnbGljaGVuLCBkaWUgQmVudXR6ZXJmcmV1bmRsaWNoa2VpdCB6dSB2ZXJiZXNzZXJuIHNvd2llIHp1IEFuYWx5c2UtIHVuZCBQZXJzb25hbGlzaWVydW5nc3p3ZWNrZW4uJyxcbiAgICAgIGNvb2tpZV9pbnRyb19leHRlbmRlZDpcbiAgICAgICAgJ0RpZXNlIFdlYnNpdGUgdmVyd2VuZGV0IENvb2tpZXMgdW5kIGFuZGVyZSBUcmFja2luZy1UZWNobm9sb2dpZW4sIHVtIHdlc2VudGxpY2hlIEZ1bmt0aW9uZW4gZGVyIFdlYnNpdGUgenUgZXJtw7ZnbGljaGVuLCBkaWUgQmVudXR6ZXJmcmV1bmRsaWNoa2VpdCB6dSB2ZXJiZXNzZXJuIHNvd2llIHp1IEFuYWx5c2UtIHVuZCBQZXJzb25hbGlzaWVydW5nc3p3ZWNrZW4uPGJyIC8+V2lyIHZlcndlbmRlbiBNaWNyb3NvZnQgQ2xhcml0eSwgdW0genUgYW5hbHlzaWVyZW4sIHdpZSB1bnNlcmUgV2Vic2l0ZSBnZW51dHp0IHdpcmQsIHVuZCB1bSB1bnNlcmUgUHJvZHVrdGUgenUgdmVyYmVzc2Vybi4gRHVyY2ggZGllIE51dHp1bmcgdW5zZXJlciBXZWJzaXRlIGVya2zDpHJlbiBTaWUgc2ljaCBkYW1pdCBlaW52ZXJzdGFuZGVuLCBkYXNzIHdpciB1bmQgTWljcm9zb2Z0IGRpZXNlIERhdGVuIHNhbW1lbG4gdW5kIG51dHplbi4nLFxuICAgICAgY29va2llX2xlYXJuX21vcmU6ICdVbSBtZWhyIHp1IGVyZmFocmVuLCBsZXNlbiBTaWUgYml0dGUgdW5zZXJlJyxcbiAgICAgIGNvb2tpZV9wcmVmZXJlbmNlc19jZW50ZXI6ICdDb29raWUgRWluc3RlbGx1bmdlbicsXG4gICAgICBjb29raWVfc2V0dGluZ3M6ICdDb29raWUgRWluc3RlbGx1bmdlbicsXG4gICAgICBjb29raWVfdXNhZ2U6ICdOdXR6dW5nIHZvbiBDb29raWVzJyxcbiAgICAgIG1hbmFnZV9wcmVmZXJlbmNlczogJ0VpbnN0ZWxsdW5nZW4gdmVyd2FsdGVuJyxcbiAgICAgIHJlamVjdF9hbGw6ICdBbGxlIGFibGVobmVuJyxcbiAgICAgIHNhdmVfcHJlZmVyZW5jZXM6ICdFaW5zdGVsbHVuZ2VuIHNwZWljaGVybicsXG4gICAgfSxcbiAgICBjb250ZW50OiAnSW5oYWx0JyxcbiAgICAnY29udGVudC5maWxlX3R5cGUnOiB7XG4gICAgICBhcmNoaXZlOiAnQXJjaGl2JyxcbiAgICAgIGF1ZGlvOiAnQXVkaW8nLFxuICAgICAgaW1hZ2U6ICdCaWxkJyxcbiAgICAgIHBkZjogJ1BERicsXG4gICAgICB0ZXh0OiAnVGV4dCcsXG4gICAgICB1bmtub3duOiAnVW5iZWthbm50JyxcbiAgICAgIHZpZGVvOiAnVmlkZW8nLFxuICAgIH0sXG4gICAgJ2NvbnRlbnQuc2hvd19wcmV2aWV3JzogJ1ZvcnNjaGF1IGFuemVpZ2VuJyxcbiAgICAnY29udGVudC5zaXplJzogJ0dyw7bDn2UnLFxuICAgICdjb250ZW50LnRvYXN0X2Rvd25sb2FkaW5nX2NvbnRlbnQnOiAnRGF0ZWkgd2lyZCBoZXJ1bnRlcmdlbGFkZW4uLi4nLFxuICAgICdjb250ZW50LnRvYXN0X2Vycm9yX2Rvd25sb2FkX2NvbnRlbnQnOlxuICAgICAgJ0RhdGVpIGtvbm50ZSBuaWNodCBoZXJ1bnRlcmdlbGFkZW4gd2VyZGVuLicsXG4gICAgJ2NvbnRlbnQudG9hc3Rfc3VjY2Vzc19kb3dubG9hZF9jb250ZW50JzpcbiAgICAgICdEYXRlaSBlcmZvbGdyZWljaCBoZXJ1bnRlcmdlbGFkZW4uJyxcbiAgICBjb250ZW50X2Ryb3Bfem9uZV90ZXh0OiAnRHJhZyAmIERyb3AgRGF0ZWknLFxuICAgIGNvbnRlbnRfbWFuYWdlcjogJ0NvbnRlbnQgTWFuYWdlcicsXG4gICAgY29udGVudHM6ICdDb250ZW50cycsXG4gICAgY29weV9pZDogJ0lEIGtvcGllcmVuJyxcbiAgICBjb3VudDogJ0FuemFobCcsXG4gICAgY3JlYXRlZDogJ0Vyc3RlbGx0JyxcbiAgICBjcml0aWNhbDogJ0tyaXRpc2NoJyxcbiAgICBjdXJyZW50X29yZ2FuaXphdGlvbjogJ0FrdHVlbGxlcyBPcmdhbmlzYXRpb24nLFxuICAgIGRhbmdlcl96b25lOiAnR2VmYWhyZW56b25lJyxcbiAgICBkYXNoYm9hcmRzOiAnRGFzaGJvYXJkcycsXG4gICAgZGF0YTogJ0RhdGVuJyxcbiAgICBkYXRlOiAnRGF0dW0nLFxuICAgIGRheTogJ1RhZycsXG4gICAgZGF5czogJ1RhZ2UnLFxuICAgIGRlOiAnRGV1dHNjaCcsXG4gICAgZGVmYXVsdDogJ1N0YW5kYXJkJyxcbiAgICBkZWxldGU6ICdMw7ZzY2hlbicsXG4gICAgZGVsZXRlX2F0dGFjaG1lbnQ6ICdBbmhhbmcgTMO2c2NoZW4nLFxuICAgIGRlbGV0ZV9tZW1iZXI6ICdNaXRnbGllZCBFbnRmZXJuZW4nLFxuICAgIGRlbGV0ZV9yZXZpc2lvbjogJ1ZlcnNpb24gbMO2c2NoZW4nLFxuICAgIGRlbGV0ZV90aXRsZTogJ1RpdGVsIGzDtnNjaGVuJyxcbiAgICBkZWxldGVkOiAnR2Vsw7ZzY2h0JyxcbiAgICBkZWxpbWl0ZXI6ICdUcmVubnplaWNoZW4sIHdpZSA7IG9kZXIgOicsXG4gICAgZGVzY2VuZGluZzogJ0Fic3RlaWdlbmQnLFxuICAgIGRlc2NyaXB0aW9uOiAnQmVzY2hyZWlidW5nJyxcbiAgICBkZXRhaWxzOiAnRGV0YWlscycsXG4gICAgZG9tYWluOiAnRG9tw6RuZScsXG4gICAgJ2RvbWFpbi5kZWxldGUnOiAnRG9tw6RuZW5uYW1lIGzDtnNjaGVuJyxcbiAgICBkb21haW5fbmFtZTogJ0RvbcOkbmVubmFtZScsXG4gICAgZG9tYWluX25hbWVfcGxhY2Vob2xkZXI6ICd3d3cuZG9tYWluLmNvbScsXG4gICAgZG9tYWluX25ldzogJ25ldWUgRG9tw6RuZSBoaW56dWbDvGdlbicsXG4gICAgZG9tYWluczogJ0RvbcOkbmVuJyxcbiAgICBkb3dubG9hZDogJ0hlcnVudGVybGFkZW4nLFxuICAgIGRvd25sb2FkX2F0dGFjaG1lbnQ6ICdBbmhhbmcgSGVydW50ZXJsYWRlbicsXG4gICAgZHJhZ19kcm9wX2ZpbGU6IHtcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGZpbGVfdG9vX2xhcmdlOlxuICAgICAgICAgIFwiRGllIERhdGVpICd7e2ZpbGVOYW1lfX0nIMO8YmVyc2NocmVpdGV0IGRpZSBtYXhpbWFsIHp1bMOkc3NpZ2UgR3LDtsOfZSB2b24ge3ttYXhGaWxlU2l6ZX19IHVuZCB3dXJkZSBpZ25vcmllcnQuXCIsXG4gICAgICAgIGZpbGVfdHlwZV9ub3RfYWxsb3dlZDpcbiAgICAgICAgICBcIkRlciBEYXRlaXR5cCB2b24gJ3t7ZmlsZU5hbWV9fScgaXN0IG5pY2h0IGVybGF1YnQgdW5kIHd1cmRlIGFiZ2VsZWhudC5cIixcbiAgICAgIH0sXG4gICAgICBtYXhfZmlsZV9zaXplOiAnTWF4aW1hbGUgRGF0ZWlncsO2w59lJyxcbiAgICAgIHByb21wdF8xOlxuICAgICAgICAnRHJhZyAmIERyb3Age2xpbWl0LCBwbHVyYWwsIG9uZSB7RGF0ZWl9IG90aGVyIHtEYXRlaWVufX0gaGllciBvZGVyICcsXG4gICAgICBwcm9tcHRfMjogJ2hpZXIga2xpY2tlbiwgdW0gRGF0ZWllbiB6dSBkdXJjaHN1Y2hlbicsXG4gICAgICB3YXJuaW5nOiB7XG4gICAgICAgIG1heF9maWxlX2NvdW50OlxuICAgICAgICAgICdTaWUgaGFiZW4ge3tmaWxlQ291bnR9fSBEYXRlaWVuIGF1c2dld8OkaGx0LCBhYmVyIG1heGltYWwgc2luZCB7e21heEZpbGVDb3VudH19IGVybGF1YnQuIE51ciBkaWUgZXJzdGVuIHt7bWF4RmlsZUNvdW50fX0gRGF0ZWllbiB3dXJkZW4gYWt6ZXB0aWVydC4nLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGR1cmF0aW9uOiAnTGF1ZnplaXQnLFxuICAgIGVkaXQ6ICdFZGl0aWVyZW4nLFxuICAgIGVkaXRfYXR0YWNobWVudDogJ0FuaGFuZyBFZGl0aWVyZW4nLFxuICAgIGVkaXRfZXZlbnRfbGV2ZWw6ICdFcmVpZ25pcy1MZXZlbCBlZGl0aWVyZW4nLFxuICAgIGVkaXRfdGl0bGU6ICdUaXRlbCBhbnBhc3NlbicsXG4gICAgZWRpdG9yOiAnRWRpdG9yJyxcbiAgICBlbWFpbDogJ0VtYWlsJyxcbiAgICBlbXBsb3llZXM6ICdNaXRhcmJlaXRlcicsXG4gICAgZW46ICdFbmdsaXNoJyxcbiAgICBlbmNvZGluZzogJ1ZlcnNjaGzDvHNzZWx1bmcnLFxuICAgIGVuZHBvaW50czogJ0JlbmFjaHJpY2h0aWd1bmdzZW5kcHVua3RlJyxcbiAgICBlbmdsaXNoOiAnRW5nbGlzY2gnLFxuICAgIGVudHJpZXM6ICdFaW50csOkZ2UnLFxuICAgIGVycm9yOiAnRmVobGVyJyxcbiAgICBlcnJvcl9sb2FkaW5nOiAne2l0ZW19IGtvbm50ZSBuaWNodCBnZWxhZGVuIHdlcmRlbicsXG4gICAgZXJyb3JfbWVzc2FnZV91cGRhdGU6XG4gICAgICAnQmVudXR6ZXIgRWluc3RlbGx1bmdlbiBrb25udGVuIG5pY2h0IGFrdHVhbGlzaWVydCB3ZXJkZW4nLFxuICAgIGVycm9yczogJ0ZlaGxlcicsXG4gICAgZXZlbnQ6ICdFcmVpZ25pcycsXG4gICAgZXZlbnRfbGV2ZWw6ICdFcmVpZ25pcy1MZXZlbCcsXG4gICAgZXZlbnRzOiAnRXJlaWduaXNzZScsXG4gICAgZmlsZW5hbWU6ICdEYXRlaW5hbWUnLFxuICAgIGZsb3c6ICdGbG93JyxcbiAgICBmbG93X3N0dWRpbzogJ0Zsb3cgU3R1ZGlvJyxcbiAgICBmbG93ZGVwbG95bWVudDogJ0Zsb3cgRGVwbG95bWVudCcsXG4gICAgZmxvd2RlcGxveW1lbnRzOiAnRmxvdyBEZXBsb3ltZW50cycsXG4gICAgZmxvd2Z1bmN0aW9uOiAnRmxvdyBGdW5rdGlvbicsXG4gICAgZmxvd2Z1bmN0aW9uczogJ0Zsb3cgRnVua3Rpb25lbicsXG4gICAgZmxvd21vZGVsOiAnRmxvdyBNb2RlbGwnLFxuICAgIGZsb3dtb2R1bGU6ICdGbG93IE1vZHVsJyxcbiAgICBmbG93bW9kdWxlczogJ0Zsb3cgTW9kdWxlJyxcbiAgICBmbG93czogJ0Zsb3dzJyxcbiAgICBmb3JtX2Vycm9yX2RlbGltaXRlcjogJ1RyZW5uemVpY2hlbiB3aXJkIGJlbsO2dGlndC4nLFxuICAgIGZvcm1fZXJyb3JfZGV0YWlsczogJ0F1ZiBkZXIgRGV0YWlscyBTZWl0ZSBzaW5kIGZlaGxlcmhhZnRlIEVpbnRyw6RnZS4nLFxuICAgIGZvcm1fZXJyb3JfZW1haWw6ICdFbWFpbCB3aXJkIGJlbsO2dGlndC4nLFxuICAgIGZvcm1fZXJyb3JfZW1wdHlfbWV0aG9kOiAnRWluZSBNZXRob2RlIG11c3MgYXVzZ2V3w6RobHQgd2VyZGVuLicsXG4gICAgZm9ybV9lcnJvcl9lbXB0eV91cmw6ICdEYXMgVVJMIEZlbGQgbXVzcyBhdXNnZWbDvGxsdCB3ZXJkZW4uJyxcbiAgICBmb3JtX2Vycm9yX2VuY29kaW5nOiAnRWluZSBWZXJzY2hsw7xzc2VsdW5nIG11c3MgYW5nZWdlYmVuIHdlcmRlbi4nLFxuICAgIGZvcm1fZXJyb3JfZXhwaXJ5X2RhdGU6ICdFaW4gQWJsYXVmZGF0dW0gbXVzcyBhbmdlZ2ViZW4gd2VyZGVuLicsXG4gICAgZm9ybV9lcnJvcl9ncm91cDogJ1p1bWluZGVzdCBlaW5lIEdydXBwZSBtdXNzIGF1c2dld8OkaGx0IHdlcmRlbi4nLFxuICAgIGZvcm1fZXJyb3JfbGVuZ3RoOlxuICAgICAgJ0RlciBOYW1lIG11c3MgYXVzIG1pbmRlc3RlbnMge3tsZW5ndGh9fSBaZWljaGVuIGJlc3RlaGVuLicsXG4gICAgZm9ybV9lcnJvcl9tYXhfbGVuZ3RoOiAnRGFyZiBtYXhpbWFsIHt7bGVuZ3RofX0gWmVpY2hlbiBsYW5nIHNlaW4nLFxuICAgIGZvcm1fZXJyb3JfbWluX2xlbmd0aDogJ011c3MgbWluZGVzdGVucyB7e2xlbmd0aH19IFplaWNoZW4gbGFuZyBzZWluJyxcbiAgICBmb3JtX2Vycm9yX25hbWU6ICdOYW1lbnMtRmVsZCB3aXJkIGJlbsO2dGlndC4nLFxuICAgIGZvcm1fZXJyb3JfbmFtZV9wYXR0ZXJuOlxuICAgICAgJ051ciBCdWNoc3RhYmVuLCBaYWhsZW4sIExlZXJ6ZWljaGVuLCBCaW5kZXN0cmljaGUgKC0pIHVuZCBVbnRlcnN0cmljaGUgKF8pIHNpbmQgZXJsYXVidCcsXG4gICAgZm9ybV9lcnJvcl9yZWFkOiAnTWluZGVzdGVucyBlaW4gTGVzZS1SZWNodCBtdXNzIGF1c2dld8OkaGx0IHdlcmRlbi4nLFxuICAgIGZvcm1fZXJyb3JfcmVhZF93cml0ZTpcbiAgICAgICdNaW5kZXN0ZW5zIGVpbiBMZXNlL1NjaHJlaWJlLVJlY2h0IG11c3MgYXVzZ2V3w6RobHQgd2VyZGVuLicsXG4gICAgZm9ybV9lcnJvcl9yZXF1aXJlZDogJ1BmbGljaHRmZWxkJyxcbiAgICBmb3JtX2Vycm9yX3JvbGVfcGF0dGVybjpcbiAgICAgICdOdXIgS2xlaW5idWNoc3RhYmVuLCBCaW5kZXN0cmljaGUgKC0pIHVuZCBVbnRlcnN0cmljaGUgKF8pIHNpbmQgZXJsYXVidCcsXG4gICAgZm9ybV9lcnJvcl9zY2hlbWFfcmVxOiAnRWluIFNjaGVtYSB3aXJkIGJlbsO2dGlndC4nLFxuICAgIGZvcm1fZXJyb3Jfc2VsZWN0X2ZpbGU6ICdFaW5lIERhdGVpIG11c3MgYXVzZ2V3w6RobHQgd2VyZGVuLicsXG4gICAgZm9ybV9lcnJvcl9zZWxlY3RfdHlwZTogJ0VpbiBBc3NldCBUeXAgbXVzcyBhdXNnZXfDpGhsdCB3ZXJkZW4uJyxcbiAgICBmb3JtX2Vycm9yX3NvdXJjZTogJ1NvdXJjZSBpcyBuZWVkZWQuJyxcbiAgICBmb3JtX2Vycm9yX3VuaXF1ZTogJ0RlciBXZXJ0IG11c3MgZWluZGV1dGlnIHNlaW46ICcsXG4gICAgZm9ybV9lcnJvcl92aWV3OiAnVmlldyBpcyBuZWVkZWQuJyxcbiAgICBnZW5lcmFsOiAnQWxsZ2VtZWluJyxcbiAgICBnZXJtYW46ICdEZXV0c2NoJyxcbiAgICBnbG9iYWw6ICdHbG9iYWwnLFxuICAgIGdyb3VwOiAnR3J1cHBlJyxcbiAgICBncm91cF9ieTogJ0dydXBwaWVyZW4gbmFjaCcsXG4gICAgaGlzdG9yeTogJ1ZlcmxhdWYnLFxuICAgIGhvdXJfZm9ybWF0OiAne3t0aW1lfX0tU3R1bmRlbi1aZWl0Zm9ybWF0JyxcbiAgICBpZDogJ0lEJyxcbiAgICBpbmFjdGl2ZTogJ0luYWt0aXYnLFxuICAgIGluZm86ICdJbmZvJyxcbiAgICBpbnZpdGVfbmV3X2VtcGxveWVlOiAnTmV1ZW4gTWl0YXJiZWl0ZXIgZWlubGFkZW4nLFxuICAgIGludml0ZV9uZXdfZW1wbG95ZWVfZGVzY3JpcHRpb246XG4gICAgICAnRWlubGFkdW5nIG5ldWVyIE1pdGFyYmVpdGVyIHVuZCBkZXJlbiBadXdlaXN1bmcgenUgYmVzdGltbXRlbiBSb2xsZW4nLFxuICAgIGludml0ZV9uZXdfbWVtYmVyOiAnTmV1ZXMgTWl0Z2xpZWQgZWlubGFkZW4nLFxuICAgIGludml0ZV9uZXdfbWVtYmVyX2Rlc2NyaXB0aW9uOlxuICAgICAgJ0VpbmxhZHVuZyBuZXVlciBNaXRnbGllZCB1bmQgZGVyZW4gWnV3ZWlzdW5nIHp1IGJlc3RpbW10ZW4gUm9sbGVuJyxcbiAgICAnanNmX3dpZGdldHMuY29udGVudC5lcnJvci5yZXNvbHZpbmdfY29udGVudF9mYWlsZWQnOlxuICAgICAgJ0luaGFsdCBrb25udGUgbmljaHQgYXVmZ2Vsw7ZzdCB3ZXJkZW4nLFxuICAgICdqc2Zfd2lkZ2V0cy5jb250ZW50X3JlZmVyZW5jZS5lcnJvci5hc3NldF9pZF9taXNzaW5nJzpcbiAgICAgICdBc3NldCBJRCBpc3QgbmljaHQgZ2VzZXR6dCcsXG4gICAgJ2pzZl93aWRnZXRzLmNvbnRlbnRfcmVmZXJlbmNlLmVycm9yLmxvYWRpbmdfYXR0YWNobWVudHNfZmFpbGVkJzpcbiAgICAgICdBc3NldCBBbmjDpG5nZSBrb25udGVuIG5pY2h0IGdlbGFkZW4gd2VyZGVuJyxcbiAgICAnanNmX3dpZGdldHMuY3Jvbi5lcnJvci5pbnZhbGlkX2V4cHJlc3Npb24nOiAnS2VpbiBnw7xsdGlnZXIgY3JvbiBBdXNkcnVjaycsXG4gICAgJ2pzZl93aWRnZXRzLmR1cmF0aW9uLmVycm9yLmludmFsaWRfZHVyYXRpb24nOiAnS2VpbmUgZ8O8bHRpZ2UgRGF1ZXInLFxuICAgICdqc2Zfd2lkZ2V0cy5wZXJtaXNzaW9uLmVycm9yLmxvYWRfcGVybWlzc2lvbnNfYWxsX3VzZXJzX2ZhaWxlZCc6XG4gICAgICAnUmVjaHRlIGFsbGVyIEJlbnV0emVyIGtvbm50ZW4gbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgICdqc2Zfd2lkZ2V0cy5wZXJtaXNzaW9uLmVycm9yLmxvYWRfcGVybWlzc2lvbnNfZmFpbGVkJzpcbiAgICAgICdSZWNodGUga29ubnRlbiBuaWNodCBnZWxhZGVuIHdlcmRlbicsXG4gICAgJ2pzZl93aWRnZXRzLnJlc291cmNlX3JlZmVyZW5jZS5lcnJvci5zZWFyY2hpbmdfZmFpbGVkJzpcbiAgICAgICdTdWNoZSBrb25udGUgbmljaHQgYWJnZXNjaGxvc3NlbiB3ZXJkZW4nLFxuICAgIGtleXM6ICdTY2hsw7xzc2VsJyxcbiAgICBsYWJlbDogJ0xhYmVsJyxcbiAgICBsYWJlbHM6ICdMYWJlbHMnLFxuICAgIGxhYmVsc19lZGl0OiAnTGFiZWxzIGJlYXJiZWl0ZW4nLFxuICAgIGxhYmVsc19lZGl0X2RlZmF1bHQ6ICdHbG9iYWxlIFN0YW5kYXJkLUxhYmVscyBiZWFyYmVpdGVuJyxcbiAgICBsYW5ndWFnZTogJ1NwcmFjaGUnLFxuICAgIGxhc3RfdXBkYXRlZDogJ1p1bGV0enQgYWt0dWFsaXNpZXJ0JyxcbiAgICBsZWF2ZTogJ1Zlcmxhc3NlbicsXG4gICAgbGVnYWxfbm90aWNlOiAnSW1wcmVzc3VtJyxcbiAgICBsaXN0OiAnTGlzdGUnLFxuICAgIGxvYWRpbmc6ICdsYWRlLi4uJyxcbiAgICBsb2dvOiAnTG9nbycsXG4gICAgbWFuYWdlX2dyb3VwczogJ0dydXBwZW4gdmVyd2FsdGVuJyxcbiAgICBtYW5hZ2VfaWRlbnRpdHlfcHJvdmlkZXJzOlxuICAgICAgJ1JvbGxlLCBkaWUgenVyIFZlcndhbHR1bmcgZGVyIGtvbmZpZ3VyaWVydGVuIElkZW50aXTDpHRzYW5iaWV0ZXIgZXJtw6RjaHRpZ3QnLFxuICAgIG1hbmFnZV9pbnZpdGF0aW9uczpcbiAgICAgICdSb2xsZSwgZGllIHp1ciBWZXJ3YWx0dW5nIGRlciBvZmZlbmVuIE1pdGFyYmVpdGVyZWlubGFkdW5nZW4gZXJtw6RjaHRpZ3QnLFxuICAgIG1hbmFnZV9tZW1iZXJzOiAnUm9sbGUsIGRpZSB6dXIgVmVyd2FsdHVuZyBkZXIgTWl0Z2xpZWRlcm4gZXJtw6RjaHRpZ3QnLFxuICAgIG1hbmFnZV9vcmdhbml6YXRpb246XG4gICAgICAnUm9sbGUsIGRpZSB6dXIgVmVyd2FsdHVuZyBkZXMgVW50ZXJuZWhtZW5zIHVuZCBkZXNzZW4gRWlnZW5zY2hhZnRlbiBlcm3DpGNodGlndCcsXG4gICAgbWFuYWdlX3JvbGVzOiAnUm9sbGUsIGRpZSB6dXIgVmVyd2FsdHVuZyBkZXIgVW50ZXJuZWhtZW5zcm9sbGVuIGVybcOkY2h0aWd0JyxcbiAgICBtYW5hZ2VyOiAnQXBwIE1hbmFnZXInLFxuICAgIG1heGltdW06ICdNYXhpbXVtJyxcbiAgICBtZW1iZXI6ICdNaXRnbGllZCcsXG4gICAgbWVzc2FnZTogJ05hY2hyaWNodCcsXG4gICAgbWV0aG9kOiAnRnVua3Rpb24nLFxuICAgIG1vZHVsZXM6ICdNb2R1bGUnLFxuICAgIG1vbnRoOiAnTW9uYXQnLFxuICAgIG1vbnRoczogJ01vbmF0ZScsXG4gICAgbXlfdGFza3M6ICdNZWluZSBBdWZnYWJlbicsXG4gICAgbmFtZTogJ05hbWUnLFxuICAgIG5ld19mZW1pbmluZTogJ05ldWUnLFxuICAgIG5ld19tYXNjdWxpbmU6ICdOZXVlcicsXG4gICAgbmV3X25ldXRyYWw6ICdOZXVlcycsXG4gICAgbmV3X3RhZzogJ05ldWVzIExhYmVsJyxcbiAgICBuZXh0OiAnTsOkY2hzdGUnLFxuICAgIG5leHRfc3RlcDogJ1dlaXRlcicsXG4gICAgbm9fZGVzY3JpcHRpb246ICdLZWluZSBCZXNjaHJlaWJ1bmcnLFxuICAgIG5vX2xhYmVsczogJ0tlaW5lIExhYmVscycsXG4gICAgbm9fcHJldmlldzogJ0tlaW5lIFZvcnNjaGF1IHZlcmbDvGdiYXInLFxuICAgIG5vX3Jlc3VsdDogJ0tlaW5lIEVyZ2Vibmlzc2UhJyxcbiAgICBub3RfYXNzaWduZWQ6ICdOaWNodCB6dWdld2llc2VuJyxcbiAgICBub3RpZmljYXRpb25fY2xvc2VfdG9vbHRpcDogJ1NjaGxpZcOfZW4nLFxuICAgIG5vdGlmaWNhdGlvbl9pbmZvX2VtcHR5X2xpc3Q6ICdLZWluZSBCZW5hY2hyaWNodGlndW5nZW4gdm9yaGFuZGVuJyxcbiAgICBub3RpZmljYXRpb25fb3Blbl9tYW5hZ2VyX3Rvb2x0aXA6ICdOb3RpZmljYXRpb24gTWFuYWdlciDDtmZmbmVuJyxcbiAgICBub3RpZmljYXRpb25fb3Blbl90b29sdGlwOiAnw5ZmZm5lbicsXG4gICAgbm90aWZpY2F0aW9uX3JlYWRfYWxsX3Rvb2x0aXA6ICdBbGxlcyBhbHMgZ2VsZXNlbiBtYXJraWVyZW4nLFxuICAgIG5vdGlmaWNhdGlvbl9yZWFkX3Rvb2x0aXA6ICdBbHMgZ2VsZXNlbiBtYXJraWVyZW4nLFxuICAgIG5vdGlmaWNhdGlvbl9ydWxlczogJ0JlbmFjaHJpY2h0aWd1bmdzcmVnZWwnLFxuICAgIG5vdGlmaWNhdGlvbl90b2FzdF9pbmZvOiAnTmV1ZSBCZW5hY2hyaWNodGlndW5nIGVyaGFsdGVuIScsXG4gICAgbm90aWZpY2F0aW9uX3VucmVhZF90b29sdGlwOiAnQWxzIHVuZ2VsZXNlbiBtYXJraWVyZW4nLFxuICAgIG5vdGlmaWNhdGlvbmVuZHBvaW50OiAnQmVuYWNocmljaHRpZ3VuZ3NlbmRwdW5rdCcsXG4gICAgbm90aWZpY2F0aW9uZW5kcG9pbnRzOiAnQmVuYWNocmljaHRpZ3VuZ3NlbmRwdW5rdGUnLFxuICAgIG5vdGlmaWNhdGlvbnJ1bGU6ICdCZW5hY2hyaWNodGlndW5nc3JlZ2VsJyxcbiAgICBub3RpZmljYXRpb25ydWxlczogJ0JlbmFjaHJpY2h0aWd1bmdzcmVnZWxuJyxcbiAgICBub3RpZmljYXRpb25zOiAnQmVuYWNocmljaHRpZ3VuZ2VuJyxcbiAgICBvZmZlcl9yZXF1ZXN0czogJ0FuZnJhZ2VuJyxcbiAgICBvZmZlcnM6ICdBbmdlYm90ZScsXG4gICAgb2s6ICdPSycsXG4gICAgb3BlbjogJ8OWZmZuZW4nLFxuICAgIG9wZW5lZDogJ0dlw7ZmZm5ldCcsXG4gICAgb3JnYW5pemF0aW9uOiAnT3JnYW5pc2F0aW9uJyxcbiAgICAnb3JnYW5pemF0aW9uLmRlbGV0ZSc6ICdPcmdhbmlzYXRpb24gbMO2c2NoZW4nLFxuICAgICdvcmdhbml6YXRpb24uZGVsZXRlX2FzX3N1cGVydXNlcic6ICdPcmdhbmlzYXRpb24gbMO2c2NoZW4gYWxzIFN1cGVydXNlcicsXG4gICAgJ29yZ2FuaXphdGlvbi5yZXF1ZXN0X2RlbGV0ZSc6ICdMw7ZzY2hlbiBkZXIgT3JnYW5pc2F0aW9uIGJlYW50cmFnZW4nLFxuICAgIG9yZ2FuaXphdGlvbl9kZWxldGVfbWVzc2FnZTpcbiAgICAgICdTb2xsIGRpZSBPcmdhbmlzYXRpb24gPGI+e29yZ2FuaXphdGlvbn08L2I+IG1pdHNhbXQgYWxsZXIgenVnZWjDtnJpZ2VyIERhdGVuIHdpcmtsaWNoIGdlbMO2c2NodCB3ZXJkZW4/JyxcbiAgICBvcmdhbml6YXRpb25fb3ZlcnZpZXc6ICdPcmdhbmlzYXRpb25zLVByb2ZpbCcsXG4gICAgb3JnYW5pemF0aW9uX3JlcXVlc3RfZGVsZXRlX2Rlc2NyaXB0aW9uOlxuICAgICAgJ0hpZXJtaXQgYmVhbnRyYWdlbiBTaWUgZGFzIEzDtnNjaGVuIGlocmVyIE9yZ2FuaXNhdGlvbi4gQml0dGUgYmVhY2h0ZW4gU2llLCBkYXNzIGRhcyBMw7ZzY2hlbiBlaW5lciBPcmdhbmlzYXRpb24gdW53aWRlcnJ1ZmxpY2ggaXN0IHVuZCBhbGxlIHp1ciBPcmdhbmlzYXRpb24gZ2Vow7ZyaWdlbiBEYXRlbiBlYmVuZmFsbHMgZ2Vsw7ZzY2h0IHdlcmRlbi4nLFxuICAgIG9yZ2FuaXphdGlvbl90ZW5kZXJzOiAnQXVzc2NocmVpYnVuZ2VuIGRlciBPcmdhbmlzYXRpb25zJyxcbiAgICBvcmdhbml6YXRpb25zOiAnT3JnYW5pc2F0aW9uZW4nLFxuICAgIG92ZXJ2aWV3OiAnw5xiZXJzaWNodCcsXG4gICAgb3duZXI6IHtcbiAgICAgIGVkaXRfcGVybWlzc2lvbjogJ01pdGdsaWVkZXIgdm9uIHt7b3JnfX0gZMO8cmZlbiBhbnNlaGVuIHVuZCBiZWFyYmVpdGVuJyxcbiAgICAgIG1hbmFnZWRfYnk6ICdWZXJ3YWx0ZXQgdm9uJyxcbiAgICAgIHZpZXdfcGVybWlzc2lvbjogJ01pdGdsaWVkZXIgdm9uIHt7b3JnfX0gZMO8cmZlbiBhbnNlaGVuJyxcbiAgICB9LFxuICAgIHBhZ2U6ICdTZWl0ZScsXG4gICAgcGFyZW50OiAnRWx0ZXJudGVpbCcsXG4gICAgcGFzc3dvcmQ6ICdQYXNzd29ydCcsXG4gICAgcGVuZGluZzogJ0F1c3N0ZWhlbmQnLFxuICAgIHBlcmlvZDogJ1plaXRyYXVtJyxcbiAgICBwZXJtaXNzaW9uczogJ1JlY2h0ZScsXG4gICAgcGhvbmVfbnVtYmVyOiAnVGVsZWZvbm51bW1lcicsXG4gICAgcHJldmlldzogJ1ZvcnNjaGF1JyxcbiAgICBwcmV2aW91czogJ1ZvcmhlcmlnZScsXG4gICAgcHJpdmFjeV9wb2xpY3k6ICdEYXRlbnNjaHV0emVya2zDpHJ1bmcnLFxuICAgIHByb2ZpbGU6ICdQcm9maWwnLFxuICAgIHByb3BlcnRpZXM6ICdFaWdlbnNjaGFmdGVuJyxcbiAgICBwcm9wZXJ0eTogJ0VpZ2Vuc2NoYWZ0JyxcbiAgICBxdWFydGVyOiAnUXVhcnRhbCcsXG4gICAgcmVhZF9wZXJtaXNzaW9uczogJ0xlc2UgUmVjaHRlJyxcbiAgICByZWFkX3Blcm1pc3Npb25zX2VkaXRfZGVmYXVsdDogJ1N0YW5kYXJkIExlc2UtL1NjaHJlaWJlLVJlY2h0ZSBiZWFyYmVpdGVuJyxcbiAgICByZWFkX3dyaXRlX3Blcm1pc3Npb25zOiAnTGVzZS9TY2hyZWliZS1SZWNodGUnLFxuICAgIHJlZmVyZW5jZTogJ1JlZmVyZW56JyxcbiAgICByZWZlcmVuY2VzOiAnUmVmZXJlbnplbicsXG4gICAgcmVzZXQ6ICdadXLDvGNrc2V0emVuJyxcbiAgICByZXNwb25zZV90eXBlOiAnUmVzcG9uc2UgVHlwZScsXG4gICAgcmV2aXNpb246ICdWZXJzaW9uJyxcbiAgICAncm9sZS5hZGQubmV3JzogJ1JvbGxlIGhpbnp1ZsO8Z2VuJyxcbiAgICAncm9sZS5kZWxldGUnOiAnUm9sbGUgZW50ZmVybmVuJyxcbiAgICAncm9sZS5lZGl0JzogJ1JvbGxlIGVkaXRpZXJlbicsXG4gICAgJ3JvbGUuZWRpdC5pbmZvJzpcbiAgICAgICdKZWRlIFJvbGxlIG11c3MgZWluZW4gZWluZGV1dGlnZW4gTmFtZW4gaGFiZW4gdW5kIGthbm4gbmFjaCBkZXIgRXJzdGVsbHVuZyBkZXIgUm9sbGUgbmljaHQgbWVociBnZcOkbmRlcnQgd2VyZGVuLiBFcyBzaW5kIG51ciBLbGVpbmJ1Y2hzdGFiZW4sIEJpbmRlc3RyaWNoZSAoLSkgdW5kIFVudGVyc3RyaWNoZSAoXykgaW0gTmFtZW4gZXJsYXVidC4nLFxuICAgICdyb2xlLm5hbWUnOiAnTmFtZSBkZXIgUm9sbGUnLFxuICAgIHJvbGVfYWRkX25ld19kZXNjcmlwdGlvbjpcbiAgICAgICdFaW5yaWNodHVuZyBuZXVlciBSb2xsZW4gaW4gSWhyZXIgT3JnYW5pc2F0aW9uIHVuZCBkZXJlbiBadXdlaXN1bmcgbmFjaCBCZWRhcmYgenUgUmVzc291cmNlbiBiencuIE1pdGdsaWVkZXJuJyxcbiAgICByb2xlX2FkbWluOiAnQWRtaW5yZWNodGUnLFxuICAgIHJvbGVfaW5mbzpcbiAgICAgICdSb2xsZW4sIGRpZSBkZW0gQmVudXR6ZXIgenVnZXdpZXNlbiB3ZXJkZW4gc29sbGVuLiBBZG1pbnJlY2h0ZSBlcmjDpGx0IGFsbGUgUm9sbGVuLiBMZXNlcmVjaHRlIGVyaMOkbHQgbnVyIGRpZSBWaWV3LVJlY2h0ZScsXG4gICAgcm9sZV92aWV3OiAnTGVzZXJlY2h0ZScsXG4gICAgcm9sZXM6ICdSb2xsZW4nLFxuICAgIHJvbGxiYWNrX3ZlcnNpb246ICdBdWYgZGllIGF1c2dld8OkaGx0ZSBWZXJzaW9uIHp1csO8Y2tzZXR6ZW4nLFxuICAgIHNhdmU6ICdTcGVpY2hlcm4nLFxuICAgIHNjaGVtYTogJ1NjaGVtYScsXG4gICAgc2VhcmNoOiAnU3VjaGUuLi4nLFxuICAgICdzZWFyY2gubm9fcmVzdWx0cyc6ICdLZWluZSBFcmdlYm5pc3NlIGdlZnVuZGVuJyxcbiAgICBzZWFyY2hfYXNzZXRfdHlwZXM6ICdTdWNoZSBBc3NldCBUeXBlcy4uLicsXG4gICAgc2VhcmNoX2Fzc2V0czogJ1N1Y2hlIEFzc2V0cy4uLicsXG4gICAgc2VhcmNoX2Zvcl9wYWdlOiAnU2VpdGUgc3VjaGVuJyxcbiAgICBzZWFyY2hfcm9sZXM6ICdTdWNoZSBSb2xsZW4uLi4nLFxuICAgIHNlYXJjaF90c206ICdTdWNoZSBaZWl0cmVpaGVuLi4uJyxcbiAgICBzZWNyZXQ6ICdTZWNyZXQnLFxuICAgIHNlY3JldHM6ICdTZWNyZXRzJyxcbiAgICBzZWxlY3Q6ICdBdXN3w6RobGVuJyxcbiAgICBzZWxlY3RfZmlsZTogJ0RhdGVpIEF1c3fDpGhsZW4nLFxuICAgIHNlbGVjdGVkX2ZpbGU6ICdBdXNnZXfDpGhsdGUgRGF0ZWknLFxuICAgICdzZXJ2aWNlLmFkZC5uZXcnOiAnRGllbnN0bGVpc3R1bmcgaGluenVmw7xnZW4nLFxuICAgICdzZXJ2aWNlLmRlbGV0ZSc6ICdEaWVuc3RsZWlzdHVuZyBlbnRmZXJuZW4nLFxuICAgIHNlcnZpY2VzOiAnRGllbnN0bGVpc3R1bmdlbicsXG4gICAgc2V0dGluZ3M6ICdFaW5zdGVsbHVuZ2VuJyxcbiAgICBzZXR1cF9jZXJ0c19kZXNjcmlwdGlvbjogJ0VpbnJpY2h0dW5nIHp1Z2Vow7ZyaWdlciBaZXJ0aWZpa2F0ZScsXG4gICAgc2hvdzogJ1plaWdlJyxcbiAgICBzaG93X2RpZmZlcmVuY2VzOiAnWmVpZ2UgVW50ZXJzY2hpZWRlJyxcbiAgICBzaG93X3ByZXZpZXc6ICdWb3JzY2hhdSBhbnplaWdlbicsXG4gICAgc2lnbl9pbjogJ0VpbmxvZ2dlbicsXG4gICAgc2lnbl9vdXQ6ICdBdXNsb2dnZW4nLFxuICAgIHNpZ25lZF9pbl9hczogJ0FuZ2VtZWxkZXQgYWxzJyxcbiAgICBzb3J0OiAnU29ydGllcnVuZycsXG4gICAgc3RhdGlzdGljX3F1ZXJpZXM6ICdTdGF0aXN0aWsgQW5mcmFnZW4nLFxuICAgIHN0YXR1czogJ1N0YXR1cycsXG4gICAgc3VwZXJ0eXBlOiAnT2JlcnR5cCcsXG4gICAgc3lzdGVtOiAnU3lzdGVtJyxcbiAgICB0YWdzOiAnTGFiZWwnLFxuICAgIHRhc2s6ICdBdWZnYWJlJyxcbiAgICB0YXNrczogJ0F1ZmdhYmVuJyxcbiAgICB0aW1lOiAnWmVpdCcsXG4gICAgdGltZV9zZXJpZXM6ICdaZWl0cmVpaGVuJyxcbiAgICB0aW1lX3Nlcmllc19tYW5hZ2VyOiAnVGltZSBTZXJpZXMgTWFuYWdlcicsXG4gICAgdGltZXNlcmllczogJ1plaXRyZWloZW4nLFxuICAgIHRpdGxlOiAnVGl0ZWwnLFxuICAgIHRvYXN0X2FjdGl2ZV9vcmdhbml6YXRpb25fZXJyb3I6XG4gICAgICAnQWt0aXZlIE9yZ2FuaXNhdGlvbiBrb25udGUgbmljaHQgZ2XDpG5kZXJ0IHdlcmRlbi4nLFxuICAgIHRvYXN0X2FjdGl2ZV9vcmdhbml6YXRpb25fbG9hZGluZzogJ0FrdGl2ZSBPcmdhbmlzYXRpb24gd2lyZCBnZcOkbmRlcnQuLi4nLFxuICAgIHRvYXN0X2FjdGl2ZV9vcmdhbml6YXRpb25fc3VjY2VzczpcbiAgICAgICdBa3RpdmUgT3JnYW5pc2F0aW9uIGVyZm9sZ3JlaWNoIGdlw6RuZGVydC4nLFxuICAgIHRvYXN0X2Vycm9yOiAnRmVobGVyIScsXG4gICAgdG9hc3RfZXJyb3JfYWRkX2VtcGxveWVlOlxuICAgICAgJ0RpZSBFaW5sYWR1bmcgZGVzIG5ldWVuIE1pdGFyYmVpdGVycyBrb25udGUgbmljaHQgdmVyc2VuZGV0IHdlcmRlbicsXG4gICAgdG9hc3RfZXJyb3JfYWRkX21lbWJlcjpcbiAgICAgICdEaWUgRWlubGFkdW5nIGRlcyBuZXVlbiBNaXRnbGllZHMga29ubnRlIG5pY2h0IHZlcnNlbmRldCB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX2FkZF9yb2xlOiAnRGllIFJvbGxlIGtvbm50ZSBuaWNodCBoaW56dWdlZsO8Z3Qgd2VyZGVuJyxcbiAgICB0b2FzdF9lcnJvcl9hdXRoZW50aWNhdGU6ICdBdXRoZW50aWZpemllcnVuZyBmZWhsZ2VzY2hsYWdlbi4nLFxuICAgIHRvYXN0X2Vycm9yX2NyZWF0ZV90c206ICdaZWl0cmVpaGUga29ubnRlIG5pY2h0IGVyc3RlbGx0IHdlcmRlbi4nLFxuICAgIHRvYXN0X2Vycm9yX2luZGV4X2NvbnRlbnQ6ICdGZWhsZXIgYmVpbSBBYnJ1ZmVuIGRlcyBJbmRpemllcnVuZ3NzdGF0dXMuJyxcbiAgICB0b2FzdF9lcnJvcl9pbnZpdGF0aW9uX3NlbmQ6ICdFaW5sYWR1bmcga29ubnRlIG5pY2h0IGdlc2VuZGV0IHdlcmRlbicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9jZXJ0OiAnWmVydGlmaWthdGUga29ubnRlbiBuaWNodCBnZWxhZGVuIHdlcmRlbicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9ldmVudF9jYXVzZXM6XG4gICAgICAnRXZlbnR1cnNhY2hlbi1PdmVycmlkZSBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4uJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX2l0ZW06ICd7e2l0ZW19fSBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4uJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX2xpc3Q6ICdMaXN0ZSBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4uJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX29yZ19yb2xlczpcbiAgICAgICdSb2xsZW4gZGVzIGFrdGl2ZW4gVW50ZXJuZWhtZW5zIGtvbm50ZW4gbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfcGVybWlzc2lvbnM6ICdSZWNodGUga29ubnRlbiBuaWNodCBnZWxhZGVuIHdlcmRlbicsXG4gICAgdG9hc3RfZXJyb3JfbG9hZF9wZXJtaXNzaW9uc19hbGxfdXNlcnM6XG4gICAgICAnUmVjaHRlIGFsbGVyIEJlbnV0emVyIGtvbm50ZW4gbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfcHJldmlldzogJ1ZvcnNjaGF1IGtvbm50ZSBuaWNodCBnZWxhZGVuIHdlcmRlbi4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfcm9sZTogJ1JvbGxlbiBrb25udGVuIG5pY2h0IGdlbGFkZW4gd2VyZGVuJyxcbiAgICB0b2FzdF9lcnJvcl9sb2FkX3NlcnZpY2U6ICdEaWVuc3RsZWlzdHVuZ2VuIGtvbm50ZW4gbmljaHQgZ2VsYWRlbiB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX2xvYWRfdGVuZGVyOiAnQXVzc2NocmVpYnVuZyBrb25udGUgbmljaHQgZ2VsYWRlbiB3ZXJkZW4uJyxcbiAgICB0b2FzdF9lcnJvcl9vcmdhbml6YXRpb25fZGVsZXRlOlxuICAgICAgJ09yZ2FuaXNhdGlvbiBrb25udGUgbmljaHQgZ2Vsw7ZzY2h0IHdlcmRlbi4nLFxuICAgIHRvYXN0X2Vycm9yX29yZ2FuaXphdGlvbl9uYW1lX2V4aXN0czpcbiAgICAgICdFaW5lIE9yZ2FuaXNhdGlvbiBtaXQgZGVtIE5hbWVuIHt7bmFtZX19IGV4aXN0aWVydCBiZXJlaXRzJyxcbiAgICB0b2FzdF9lcnJvcl9yb2xsYmFja192ZXJzaW9uOlxuICAgICAgJ0ZlaGxlciBiZWltIFp1csO8Y2tzZXR6ZW4gYXVmIGRpZSBhdXNnZXfDpGhsdGUgVmVyc2lvbicsXG4gICAgdG9hc3RfZXJyb3Jfc2F2ZV9pdGVtOiAne3tpdGVtfX0ga29ubnRlIG5pY2h0IGdlc3BlaWNoZXJ0IHdlcmRlbicsXG4gICAgdG9hc3RfZXJyb3JfdXBkYXRlX2F0dGFjaG1lbnQ6XG4gICAgICAne2NvdW50LCBwbHVyYWwsIG9uZSB7QW5oYW5nIGtvbm50ZSBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVufSBvdGhlciB7IyBBbmjDpG5nZSBrb25udGVuIG5pY2h0IGFrdHVhbGlzaWVydCB3ZXJkZW59fScsXG4gICAgdG9hc3RfZXJyb3JfdXBkYXRlX2V2ZW50X2NhdXNlczpcbiAgICAgICdFdmVudHVyc2FjaGVuLU92ZXJyaWRlIGtvbm50ZSBuaWNodCBha3R1YWxpc2llcnQgd2VyZGVuLicsXG4gICAgdG9hc3RfZXJyb3JfdXBkYXRlX3NlcnZpY2U6XG4gICAgICAnRGllbnN0bGVpc3R1bmcga29ubnRlIG5pY2h0IGFrdHVhbGlzaWVydCB3ZXJkZW4nLFxuICAgIHRvYXN0X2Vycm9yX3VwbG9hZF9maWxlOlxuICAgICAgJ3tjb3VudCwgcGx1cmFsLCBvbmUge0RhdGVpIGtvbm50ZSBuaWNodCBob2NoZ2VsYWRlbiB3ZXJkZW4ge3tmaWxlfX19IG90aGVyIHsjIERhdGVpZW4ga29ubnRlbiBuaWNodCBob2NoZ2VsYWRlbiB3ZXJkZW59fScsXG4gICAgdG9hc3RfZXJyb3JfdXBsb2FkX2ZpbGVfbWF4OlxuICAgICAgJ0VzIGTDvHJmZW4gbmljaHQgbWVociBhbHMge3ttYXh9fSBEYXRlaWVuIFplaXRnbGVpY2ggaG9jaGdlbGFkZW4gd2VyZGVuLicsXG4gICAgdG9hc3RfZm9ybV9lcnJvcl9yZXF1aXJlZDogJ3t7cGFyYW19fSBkYXJmIG5pY2h0IGxlZXIgc2VpbicsXG4gICAgdG9hc3RfZm9ybV9lcnJvcl9yZXF1aXJlZF9zZWxlY3Rpb246XG4gICAgICAnRXMgbXVzcyBtaW5kZXN0ZW5zIGVpbiB7e3BhcmFtfX0gYXVzZ2V3w6RobHQgd2VyZGVuJyxcbiAgICB0b2FzdF9mb3JtX2Vycm9yX3JlcXVpcmVkX3NlbGVjdGlvbl9mZW1pbmluZTpcbiAgICAgICdFcyBtdXNzIG1pbmRlc3RlbnMgZWluZSB7e3BhcmFtfX0gYXVzZ2V3w6RobHQgd2VyZGVuJyxcbiAgICB0b2FzdF9pbmZvOiAnSW5mbyEnLFxuICAgIHRvYXN0X3N1Y2Nlc3M6ICdFcmZvbGdyZWljaCEnLFxuICAgIHRvYXN0X3N1Y2Nlc3NfYWRkX2VtcGxveWVlOlxuICAgICAgJ0RpZSBFaW5sYWR1bmcgZGVzIG5ldWVuIE1pdGFyYmVpdGVycyB3dXJkZSBlcmZvbGdyZWljaCB2ZXJzZW5kZXQnLFxuICAgIHRvYXN0X3N1Y2Nlc3NfYWRkX21lbWJlcjpcbiAgICAgICdEaWUgRWlubGFkdW5nIGRlcyBuZXVlbiBNaXRnbGllZHMgd3VyZGUgZXJmb2xncmVpY2ggdmVyc2VuZGV0JyxcbiAgICB0b2FzdF9zdWNjZXNzX2FkZF9yb2xlOiAnRGllIFJvbGxlIHd1cmRlIGVyZm9sZ3JlaWNoIGhpbnp1Z2Vmw7xndCcsXG4gICAgdG9hc3Rfc3VjY2Vzc19pbnZpdGF0aW9uX3NlbmQ6ICdFaW5sYWR1bmcgZ2VzZW5kZXQnLFxuICAgIHRvYXN0X3N1Y2Nlc3NfdXBkYXRlX2F0dGFjaG1lbnQ6XG4gICAgICAne2NvdW50LCBwbHVyYWwsIG9uZSB7QW5oYW5nIGFrdHVhbGlzaWVydH0gb3RoZXIgeyMgQW5ow6RuZ2UgYWt0dWFsaXNpZXJ0fX0nLFxuICAgIHRvYXN0X3N1Y2Nlc3NfdXBkYXRlX3NlcnZpY2U6ICdEaWVuc3RsZWlzdHVuZyB3dXJkZSBha3R1YWxpc2llcnQnLFxuICAgIHRvYXN0X3N1Y2Nlc3NfdXBsb2FkX2ZpbGU6XG4gICAgICAne2NvdW50LCBwbHVyYWwsIG9uZSB7RGF0ZWkgd3VyZGUgZXJmb2xncmVpY2ggaG9jaGdlbGFkZW46IHt7ZmlsZX19fSBvdGhlciB7IyBEYXRlaWVuIHd1cmRlbiBlcmZvbGdyZWljaCBob2NoZ2VsYWRlbn19JyxcbiAgICB0b2FzdF93YXJuaW5nOiAnV2FybnVuZyEnLFxuICAgIHRvYXN0X3dhcm5pbmdfaW52YWxpZF9mb3JtX2RhdGE6XG4gICAgICAnVW5nw7xsdGlnZSBEYXRlbiBpbSBGb3JtdWxhci4gQml0dGUgw7xiZXJwcsO8ZmVuIFNpZSBkYXMgRm9ybXVsYXIgYXVmIEZlaGxlci4nLFxuICAgIHRvYXN0X3dhcm5pbmdfaW52YWxpZF9zY2hlbWE6ICdEYXMgYW5nZWdlYmVuZSBTY2hlbWEgaXN0IG5pY2h0IGfDvGx0aWcuJyxcbiAgICB0b2FzdF93YXJuaW5nX3JvbGxiYWNrX3ZlcnNpb246XG4gICAgICAnRm9sZ2VuZGUgcmVmZXJlbnppZXJ0ZSBFbGVtZW50ZSBleGlzdGllcmVuIGluIGRlciBSZXZpc2lvbiBuaWNodCBtZWhyOiB7e2VudHJpZXN9fScsXG4gICAgdG91cl9zdGFydDogJ1N0YXJ0ZSBUb3VyJyxcbiAgICB0eXBlOiAnVHlwJyxcbiAgICB1bmtub3duOiAnVW5iZWthbm50JyxcbiAgICB1bnZlcmlmaWVkOiAnVW52ZXJpZml6aWVydCcsXG4gICAgdXBkYXRlZDogJ0JlYXJiZWl0ZXQnLFxuICAgIHVwZGF0ZWRfYnk6ICdBa3R1YWxpc2llcnQgdm9uJyxcbiAgICB1cGxvYWRfZGF0ZTogJ0hvY2hnZWxhZGVuIGFtJyxcbiAgICB1cGxvYWRfZmlsZTogJ0RhdGVpIGhvY2hsYWRlbicsXG4gICAgdXJsOiAnVVJMJyxcbiAgICB1c2VyOiAnQmVudXR6ZXInLFxuICAgIHVzZXJfcm9sZXM6ICdCZW51dHplcnJvbGxlbicsXG4gICAgdXNlcm5hbWU6ICdCZW51dHplcm5hbWUnLFxuICAgIHZhdDogJ1VTdC1JZE5yLi9VSUQnLFxuICAgIHZhdF9leGFtcGxlOlxuICAgICAgJ0VzIG11c3MgZWluZSBnw7xsdGlnZSBVU3QtSWROci4gKERFIGdlZm9sZ3Qgdm9uIDkgWmlmZmVybiwgei5CLiBERTEyMzQ1Njc4OSkgb2RlciBVSUQgKEFUVSBnZWZvbGd0IHZvbiA4IFppZmZlcm4sIHouQi4gQVRVMTIzNDU2NzgpIGFuZ2VnZWJlbiB3ZXJkZW4nLFxuICAgIHZlcmlmaWVkOiAnVmVyaWZpemllcnQnLFxuICAgIHZpZXc6ICdBbnNlaGVuJyxcbiAgICB2aWV3X2lkZW50aXR5X3Byb3ZpZGVyczpcbiAgICAgICdSb2xsZSwgZGllIGRlbiBMZXNlenVncmlmZiBhdWYgZGllIGtvbmZpZ3VyaWVydGVuIElkZW50aXTDpHRzYW5iaWV0ZXIgZXJtw7ZnbGljaHQnLFxuICAgIHZpZXdfaW52aXRhdGlvbnM6XG4gICAgICAnUm9sbGUsIGRpZSBkZW4gTGVzZXp1Z3JpZmYgYXVmIG9mZmVuZSBNaXRhcmJlaXRlcmVpbmxhZHVuZ2VuIGVybcO2Z2xpY2h0JyxcbiAgICB2aWV3X21lbWJlcnM6XG4gICAgICAnUm9sbGUsIGRpZSBkZW4gTGVzZXp1Z3JpZmYgYXVmIGFsbGUgYmVzdGVoZW5kZW4gTWl0YXJiZWl0ZXIgZXJtw7ZnbGljaHQnLFxuICAgIHZpZXdfb3JnYW5pemF0aW9uOlxuICAgICAgJ1JvbGxlLCBkaWUgZGVuIExlc2V6dWdyaWZmIGF1ZiBkYXMgVW50ZXJuZWhtZW4gZXJtw7ZnbGljaHQnLFxuICAgIHZpZXdfcm9sZXM6ICdSb2xsZSwgZGllIGRlbiBMZXNlenVncmlmZiBhdWYgVW50ZXJuZWhtZW5zcm9sbGVuIGVybcO2Z2xpY2h0JyxcbiAgICB3YXJuaW5nOiAnV2FybnVuZycsXG4gICAgd2VlazogJ1dvY2hlJyxcbiAgICB3cml0ZV9wZXJtaXNzaW9uczogJ1NjaHJlaWJlLVJlY2h0ZScsXG4gICAgeWVhcjogJ0phaHInLFxuICAgIHllYXJzOiAnSmFocmUnLFxuICAgIHppcF9jb2RlOiAnUG9zdGxlaXR6YWhsJyxcbiAgICB6aXBfY29kZV9lcnJvcjpcbiAgICAgICdEaWUgUG9zdGxlaXR6YWhsIG11c3MgZ8O8bHRpZyBzZWluIHVuZCBkYXJmIG1heGltYWwgMTAgWmVpY2hlbiBlbnRoYWx0ZW4uJyxcbiAgfSxcbn07XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQWlUcmFuc2xvY29Mb2FkZXIgaW1wbGVtZW50cyBUcmFuc2xvY29Mb2FkZXIge1xuICBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBvZih0cmFuc2xhdGlvbnNbbGFuZ10gfHwge30pO1xuICB9XG59XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtUcmFuc2xvY29Nb2R1bGVdLFxuICBleHBvcnRzOiBbVHJhbnNsb2NvTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgeyBwcm92aWRlOiBUUkFOU0xPQ09fVFJBTlNQSUxFUiwgdXNlQ2xhc3M6IERlZmF1bHRUcmFuc3BpbGVyIH0sXG4gICAgeyBwcm92aWRlOiBUUkFOU0xPQ09fTE9BREVSLCB1c2VDbGFzczogQWlUcmFuc2xvY29Mb2FkZXIgfSxcbiAgICBwcm92aWRlVHJhbnNsb2NvKHtcbiAgICAgIGNvbmZpZzoge1xuICAgICAgICBhdmFpbGFibGVMYW5nczogWydkZScsICdlbiddLFxuICAgICAgICBkZWZhdWx0TGFuZzogJ2RlJyxcbiAgICAgICAgcmVSZW5kZXJPbkxhbmdDaGFuZ2U6IHRydWUsXG4gICAgICAgIHByb2RNb2RlOiAhaXNEZXZNb2RlKCksXG4gICAgICB9LFxuICAgICAgbG9hZGVyOiBBaVRyYW5zbG9jb0xvYWRlcixcbiAgICB9KSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQWlUcmFuc2xvY29Nb2R1bGUge31cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { io } from 'socket.io-client';\nimport * as i0 from \"@angular/core\";\nexport class WebsocketService {\n socket;\n subscribersCounter = {};\n eventObservables$ = {};\n init(apiService) {\n this.socket = io(apiService.baseUrl, {\n path: `/api/ws/ai`,\n auth: (cb) => {\n apiService.getAccessToken().then((token) => {\n cb({ token: 'Bearer ' + token });\n });\n },\n });\n }\n emitToAi(threadId, message, context, toolCallId, result) {\n return this.socket.emit('message', {\n threadId,\n message,\n context,\n toolCallId,\n result,\n });\n }\n emitToolCallResult(threadId, toolCallId, result) {\n return this.socket.emit('message', { threadId, toolCallId, result });\n }\n emitRetry(threadId, messageId) {\n return this.socket.emit('retry', { threadId, messageId });\n }\n abortAi(threadId) {\n return this.socket.emit('abort', { threadId });\n }\n subscribeToThread(threadId) {\n return new Observable((observer) => {\n const listener = (data) => observer.next(data);\n this.socket.on(threadId, listener);\n });\n }\n unsubscribeFromThread(threadId) {\n this.socket.removeListener(threadId);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WebsocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WebsocketService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: WebsocketService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS93ZWJzb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLEVBQUUsRUFBVSxNQUFNLGtCQUFrQixDQUFDOztBQUs5QyxNQUFNLE9BQU8sZ0JBQWdCO0lBQ25CLE1BQU0sQ0FBUztJQUV2QixrQkFBa0IsR0FBMkIsRUFBRSxDQUFDO0lBQ2hELGlCQUFpQixHQUFvQyxFQUFFLENBQUM7SUFFeEQsSUFBSSxDQUFDLFVBQXNCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUU7WUFDbkMsSUFBSSxFQUFFLFlBQVk7WUFDbEIsSUFBSSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUU7Z0JBQ1gsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUN6QyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsU0FBUyxHQUFHLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQ25DLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRLENBQ04sUUFBZ0IsRUFDaEIsT0FBZSxFQUNmLE9BSUMsRUFDRCxVQUFtQixFQUNuQixNQUFZO1FBRVosT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakMsUUFBUTtZQUNSLE9BQU87WUFDUCxPQUFPO1lBQ1AsVUFBVTtZQUNWLE1BQU07U0FDUCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsa0JBQWtCLENBQ2hCLFFBQWdCLEVBQ2hCLFVBQWtCLEVBQ2xCLE1BQVc7UUFFWCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsU0FBUyxDQUFDLFFBQWdCLEVBQUUsU0FBaUI7UUFDM0MsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsT0FBTyxDQUFDLFFBQWdCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsUUFBZ0I7UUFDaEMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2pDLE1BQU0sUUFBUSxHQUFHLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxRQUFnQjtRQUNwQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2QyxDQUFDO3VHQTlEVSxnQkFBZ0I7MkdBQWhCLGdCQUFnQjs7MkZBQWhCLGdCQUFnQjtrQkFENUIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgaW8sIFNvY2tldCB9IGZyb20gJ3NvY2tldC5pby1jbGllbnQnO1xuXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9hcGkuc2VydmljZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXZWJzb2NrZXRTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzb2NrZXQ6IFNvY2tldDtcblxuICBzdWJzY3JpYmVyc0NvdW50ZXI6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcbiAgZXZlbnRPYnNlcnZhYmxlcyQ6IFJlY29yZDxzdHJpbmcsIE9ic2VydmFibGU8YW55Pj4gPSB7fTtcblxuICBpbml0KGFwaVNlcnZpY2U6IEFwaVNlcnZpY2UpOiB2b2lkIHtcbiAgICB0aGlzLnNvY2tldCA9IGlvKGFwaVNlcnZpY2UuYmFzZVVybCwge1xuICAgICAgcGF0aDogYC9hcGkvd3MvYWlgLFxuICAgICAgYXV0aDogKGNiKSA9PiB7XG4gICAgICAgIGFwaVNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKS50aGVuKCh0b2tlbikgPT4ge1xuICAgICAgICAgIGNiKHsgdG9rZW46ICdCZWFyZXIgJyArIHRva2VuIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBlbWl0VG9BaShcbiAgICB0aHJlYWRJZDogc3RyaW5nLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBjb250ZXh0Pzoge1xuICAgICAgdGltZVpvbmU/OiBzdHJpbmc7XG4gICAgICBkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICB1c2VXZWJTZWFyY2g/OiBib29sZWFuO1xuICAgIH0sXG4gICAgdG9vbENhbGxJZD86IHN0cmluZyxcbiAgICByZXN1bHQ/OiBhbnksXG4gICk6IFNvY2tldCB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0LmVtaXQoJ21lc3NhZ2UnLCB7XG4gICAgICB0aHJlYWRJZCxcbiAgICAgIG1lc3NhZ2UsXG4gICAgICBjb250ZXh0LFxuICAgICAgdG9vbENhbGxJZCxcbiAgICAgIHJlc3VsdCxcbiAgICB9KTtcbiAgfVxuXG4gIGVtaXRUb29sQ2FsbFJlc3VsdChcbiAgICB0aHJlYWRJZDogc3RyaW5nLFxuICAgIHRvb2xDYWxsSWQ6IHN0cmluZyxcbiAgICByZXN1bHQ6IGFueSxcbiAgKTogU29ja2V0IHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQuZW1pdCgnbWVzc2FnZScsIHsgdGhyZWFkSWQsIHRvb2xDYWxsSWQsIHJlc3VsdCB9KTtcbiAgfVxuXG4gIGVtaXRSZXRyeSh0aHJlYWRJZDogc3RyaW5nLCBtZXNzYWdlSWQ6IHN0cmluZyk6IFNvY2tldCB7XG4gICAgcmV0dXJuIHRoaXMuc29ja2V0LmVtaXQoJ3JldHJ5JywgeyB0aHJlYWRJZCwgbWVzc2FnZUlkIH0pO1xuICB9XG5cbiAgYWJvcnRBaSh0aHJlYWRJZDogc3RyaW5nKTogU29ja2V0IHtcbiAgICByZXR1cm4gdGhpcy5zb2NrZXQuZW1pdCgnYWJvcnQnLCB7IHRocmVhZElkIH0pO1xuICB9XG5cbiAgc3Vic2NyaWJlVG9UaHJlYWQodGhyZWFkSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcikgPT4ge1xuICAgICAgY29uc3QgbGlzdGVuZXIgPSAoZGF0YSkgPT4gb2JzZXJ2ZXIubmV4dChkYXRhKTtcbiAgICAgIHRoaXMuc29ja2V0Lm9uKHRocmVhZElkLCBsaXN0ZW5lcik7XG4gICAgfSk7XG4gIH1cblxuICB1bnN1YnNjcmliZUZyb21UaHJlYWQodGhyZWFkSWQ6IHN0cmluZykge1xuICAgIHRoaXMuc29ja2V0LnJlbW92ZUxpc3RlbmVyKHRocmVhZElkKTtcbiAgfVxufVxuIl19","function isWhitespace(char) {\n return '\\u0020\\u000D\\u000A\\u0009'.indexOf(char) >= 0;\n}\n// based on https://github.com/dphilipson/untruncate-json\nexport function untruncateJson(json) {\n const contextStack = [\"topLevel\" /* ContextType.TOP_LEVEL */];\n let position = 0;\n let respawnPosition;\n let respawnStackLength;\n let respawnReason;\n const push = (context) => contextStack.push(context);\n const replace = (context) => (contextStack[contextStack.length - 1] = context);\n const setRespawn = (reason) => {\n if (respawnPosition == null) {\n respawnPosition = position;\n respawnStackLength = contextStack.length;\n respawnReason = reason;\n }\n };\n const clearRespawn = (reason) => {\n if (reason === respawnReason) {\n respawnPosition = undefined;\n respawnStackLength = undefined;\n respawnReason = undefined;\n }\n };\n const pop = () => contextStack.pop();\n const dontConsumeCharacter = () => position--;\n const startAny = (char) => {\n if ('0' <= char && char <= '9') {\n push(\"number\" /* ContextType.NUMBER */);\n return;\n }\n switch (char) {\n case '\"':\n push(\"string\" /* ContextType.STRING */);\n return;\n case '-':\n push(\"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */);\n return;\n case 't':\n push(\"true\" /* ContextType.TRUE */);\n return;\n case 'f':\n push(\"false\" /* ContextType.FALSE */);\n return;\n case 'n':\n push(\"null\" /* ContextType.NULL */);\n return;\n case '[':\n push(\"arrayNeedsValue\" /* ContextType.ARRAY_NEEDS_VALUE */);\n return;\n case '{':\n push(\"objectNeedsKey\" /* ContextType.OBJECT_NEEDS_KEY */);\n return;\n }\n };\n for (const { length } = json; position < length; position++) {\n const char = json[position];\n switch (contextStack[contextStack.length - 1]) {\n case \"topLevel\" /* ContextType.TOP_LEVEL */:\n startAny(char);\n break;\n case \"string\" /* ContextType.STRING */:\n switch (char) {\n case '\"':\n pop();\n break;\n case '\\\\':\n setRespawn(\"stringEscape\" /* RespawnReason.STRING_ESCAPE */);\n push(\"stringEscaped\" /* ContextType.STRING_ESCAPED */);\n break;\n }\n break;\n case \"stringEscaped\" /* ContextType.STRING_ESCAPED */:\n if (char === 'u') {\n push(\"stringUnicode\" /* ContextType.STRING_UNICODE */);\n }\n else {\n clearRespawn(\"stringEscape\" /* RespawnReason.STRING_ESCAPE */);\n pop();\n }\n break;\n case \"stringUnicode\" /* ContextType.STRING_UNICODE */:\n if (position - json.lastIndexOf('u', position) === 4) {\n clearRespawn(\"stringEscape\" /* RespawnReason.STRING_ESCAPE */);\n pop();\n }\n break;\n case \"number\" /* ContextType.NUMBER */:\n if (char === '.') {\n replace(\"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */);\n }\n else if (char === 'e' || char === 'E') {\n replace(\"numberNeedsExponent\" /* ContextType.NUMBER_NEEDS_EXPONENT */);\n }\n else if (char < '0' || char > '9') {\n dontConsumeCharacter();\n pop();\n }\n break;\n case \"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */:\n replace(\"number\" /* ContextType.NUMBER */);\n break;\n case \"numberNeedsExponent\" /* ContextType.NUMBER_NEEDS_EXPONENT */:\n if (char === '+' || char === '-') {\n replace(\"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */);\n }\n else {\n replace(\"number\" /* ContextType.NUMBER */);\n }\n break;\n case \"true\" /* ContextType.TRUE */:\n case \"false\" /* ContextType.FALSE */:\n case \"null\" /* ContextType.NULL */:\n if (char < 'a' || char > 'z') {\n dontConsumeCharacter();\n pop();\n }\n break;\n case \"arrayNeedsValue\" /* ContextType.ARRAY_NEEDS_VALUE */:\n if (char === ']') {\n pop();\n }\n else if (!isWhitespace(char)) {\n clearRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"arrayNeedsComma\" /* ContextType.ARRAY_NEEDS_COMMA */);\n startAny(char);\n }\n break;\n case \"arrayNeedsComma\" /* ContextType.ARRAY_NEEDS_COMMA */:\n if (char === ']') {\n pop();\n }\n else if (char === ',') {\n setRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"arrayNeedsValue\" /* ContextType.ARRAY_NEEDS_VALUE */);\n }\n break;\n case \"objectNeedsKey\" /* ContextType.OBJECT_NEEDS_KEY */:\n if (char === '}') {\n pop();\n }\n else if (char === '\"') {\n setRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"objectNeedsColon\" /* ContextType.OBJECT_NEEDS_COLON */);\n push(\"string\" /* ContextType.STRING */);\n }\n break;\n case \"objectNeedsColon\" /* ContextType.OBJECT_NEEDS_COLON */:\n if (char === ':') {\n replace(\"objectNeedsValue\" /* ContextType.OBJECT_NEEDS_VALUE */);\n }\n break;\n case \"objectNeedsValue\" /* ContextType.OBJECT_NEEDS_VALUE */:\n if (!isWhitespace(char)) {\n clearRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"objectNeedsComma\" /* ContextType.OBJECT_NEEDS_COMMA */);\n startAny(char);\n }\n break;\n case \"objectNeedsComma\" /* ContextType.OBJECT_NEEDS_COMMA */:\n if (char === '}') {\n pop();\n }\n else if (char === ',') {\n setRespawn(\"collectionItem\" /* RespawnReason.COLLECTION_ITEM */);\n replace(\"objectNeedsKey\" /* ContextType.OBJECT_NEEDS_KEY */);\n }\n break;\n }\n }\n if (respawnStackLength != null) {\n contextStack.length = respawnStackLength;\n }\n const result = [\n respawnPosition != null ? json.slice(0, respawnPosition) : json,\n ];\n const finishWord = (word) => result.push(word.slice(json.length - json.lastIndexOf(word[0])));\n for (let i = contextStack.length - 1; i >= 0; i--) {\n switch (contextStack[i]) {\n case \"string\" /* ContextType.STRING */:\n result.push('\"');\n break;\n case \"numberNeedsDigit\" /* ContextType.NUMBER_NEEDS_DIGIT */:\n case \"numberNeedsExponent\" /* ContextType.NUMBER_NEEDS_EXPONENT */:\n result.push('0');\n break;\n case \"true\" /* ContextType.TRUE */:\n finishWord('true');\n break;\n case \"false\" /* ContextType.FALSE */:\n finishWord('false');\n break;\n case \"null\" /* ContextType.NULL */:\n finishWord('null');\n break;\n case \"arrayNeedsValue\" /* ContextType.ARRAY_NEEDS_VALUE */:\n case \"arrayNeedsComma\" /* ContextType.ARRAY_NEEDS_COMMA */:\n result.push(']');\n break;\n case \"objectNeedsKey\" /* ContextType.OBJECT_NEEDS_KEY */:\n case \"objectNeedsColon\" /* ContextType.OBJECT_NEEDS_COLON */:\n case \"objectNeedsValue\" /* ContextType.OBJECT_NEEDS_VALUE */:\n case \"objectNeedsComma\" /* ContextType.OBJECT_NEEDS_COMMA */:\n result.push('}');\n break;\n }\n }\n return result.join('');\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF3QkEsU0FBUyxZQUFZLENBQUMsSUFBWTtJQUNoQyxPQUFPLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELHlEQUF5RDtBQUN6RCxNQUFNLFVBQVUsY0FBYyxDQUFDLElBQVk7SUFDekMsTUFBTSxZQUFZLEdBQWtCLHdDQUF1QixDQUFDO0lBQzVELElBQUksUUFBUSxHQUFHLENBQUMsQ0FBQztJQUNqQixJQUFJLGVBQW1DLENBQUM7SUFDeEMsSUFBSSxrQkFBc0MsQ0FBQztJQUMzQyxJQUFJLGFBQXdDLENBQUM7SUFFN0MsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUFvQixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xFLE1BQU0sT0FBTyxHQUFHLENBQUMsT0FBb0IsRUFBRSxFQUFFLENBQ3ZDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDcEQsTUFBTSxVQUFVLEdBQUcsQ0FBQyxNQUFxQixFQUFFLEVBQUU7UUFDM0MsSUFBSSxlQUFlLElBQUksSUFBSSxFQUFFLENBQUM7WUFDNUIsZUFBZSxHQUFHLFFBQVEsQ0FBQztZQUMzQixrQkFBa0IsR0FBRyxZQUFZLENBQUMsTUFBTSxDQUFDO1lBQ3pDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUMsQ0FBQztJQUNGLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBcUIsRUFBRSxFQUFFO1FBQzdDLElBQUksTUFBTSxLQUFLLGFBQWEsRUFBRSxDQUFDO1lBQzdCLGVBQWUsR0FBRyxTQUFTLENBQUM7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QyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDbEQsUUFBUSxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4QjtnQkFDRSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNqQixNQUFNO1lBQ1IsNkRBQW9DO1lBQ3BDO2dCQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLE1BQU07WUFDUjtnQkFDRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUjtnQkFDRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3BCLE1BQU07WUFDUjtnQkFDRSxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLE1BQU07WUFDUiwyREFBbUM7WUFDbkM7Z0JBQ0UsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakIsTUFBTTtZQUNSLHlEQUFrQztZQUNsQyw2REFBb0M7WUFDcEMsNkRBQW9DO1lBQ3BDO2dCQUNFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2pCLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiY29uc3QgZW51bSBDb250ZXh0VHlwZSB7XG4gIFRPUF9MRVZFTCA9ICd0b3BMZXZlbCcsXG4gIFNUUklORyA9ICdzdHJpbmcnLFxuICBTVFJJTkdfRVNDQVBFRCA9ICdzdHJpbmdFc2NhcGVkJyxcbiAgU1RSSU5HX1VOSUNPREUgPSAnc3RyaW5nVW5pY29kZScsXG4gIE5VTUJFUiA9ICdudW1iZXInLFxuICBOVU1CRVJfTkVFRFNfRElHSVQgPSAnbnVtYmVyTmVlZHNEaWdpdCcsXG4gIE5VTUJFUl9ORUVEU19FWFBPTkVOVCA9ICdudW1iZXJOZWVkc0V4cG9uZW50JyxcbiAgVFJVRSA9ICd0cnVlJyxcbiAgRkFMU0UgPSAnZmFsc2UnLFxuICBOVUxMID0gJ251bGwnLFxuICBBUlJBWV9ORUVEU19WQUxVRSA9ICdhcnJheU5lZWRzVmFsdWUnLFxuICBBUlJBWV9ORUVEU19DT01NQSA9ICdhcnJheU5lZWRzQ29tbWEnLFxuICBPQkpFQ1RfTkVFRFNfS0VZID0gJ29iamVjdE5lZWRzS2V5JyxcbiAgT0JKRUNUX05FRURTX0NPTE9OID0gJ29iamVjdE5lZWRzQ29sb24nLFxuICBPQkpFQ1RfTkVFRFNfVkFMVUUgPSAnb2JqZWN0TmVlZHNWYWx1ZScsXG4gIE9CSkVDVF9ORUVEU19DT01NQSA9ICdvYmplY3ROZWVkc0NvbW1hJyxcbn1cblxuY29uc3QgZW51bSBSZXNwYXduUmVhc29uIHtcbiAgU1RSSU5HX0VTQ0FQRSA9ICdzdHJpbmdFc2NhcGUnLFxuICBDT0xMRUNUSU9OX0lURU0gPSAnY29sbGVjdGlvbkl0ZW0nLFxufVxuXG5mdW5jdGlvbiBpc1doaXRlc3BhY2UoY2hhcjogc3RyaW5nKTogYm9vbGVhbiB7XG4gIHJldHVybiAnXFx1MDAyMFxcdTAwMERcXHUwMDBBXFx1MDAwOScuaW5kZXhPZihjaGFyKSA+PSAwO1xufVxuXG4vLyBiYXNlZCBvbiBodHRwczovL2dpdGh1Yi5jb20vZHBoaWxpcHNvbi91bnRydW5jYXRlLWpzb25cbmV4cG9ydCBmdW5jdGlvbiB1bnRydW5jYXRlSnNvbihqc29uOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBjb250ZXh0U3RhY2s6IENvbnRleHRUeXBlW10gPSBbQ29udGV4dFR5cGUuVE9QX0xFVkVMXTtcbiAgbGV0IHBvc2l0aW9uID0gMDtcbiAgbGV0IHJlc3Bhd25Qb3NpdGlvbjogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICBsZXQgcmVzcGF3blN0YWNrTGVuZ3RoOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gIGxldCByZXNwYXduUmVhc29uOiBSZXNwYXduUmVhc29uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IHB1c2ggPSAoY29udGV4dDogQ29udGV4dFR5cGUpID0+IGNvbnRleHRTdGFjay5wdXNoKGNvbnRleHQpO1xuICBjb25zdCByZXBsYWNlID0gKGNvbnRleHQ6IENvbnRleHRUeXBlKSA9PlxuICAgIChjb250ZXh0U3RhY2tbY29udGV4dFN0YWNrLmxlbmd0aCAtIDFdID0gY29udGV4dCk7XG4gIGNvbnN0IHNldFJlc3Bhd24gPSAocmVhc29uOiBSZXNwYXduUmVhc29uKSA9PiB7XG4gICAgaWYgKHJlc3Bhd25Qb3NpdGlvbiA9PSBudWxsKSB7XG4gICAgICByZXNwYXduUG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICAgIHJlc3Bhd25TdGFja0xlbmd0aCA9IGNvbnRleHRTdGFjay5sZW5ndGg7XG4gICAgICByZXNwYXduUmVhc29uID0gcmVhc29uO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgY2xlYXJSZXNwYXduID0gKHJlYXNvbjogUmVzcGF3blJlYXNvbikgPT4ge1xuICAgIGlmIChyZWFzb24gPT09IHJlc3Bhd25SZWFzb24pIHtcbiAgICAgIHJlc3Bhd25Qb3NpdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIHJlc3Bhd25TdGFja0xlbmd0aCA9IHVuZGVmaW5lZDtcbiAgICAgIHJlc3Bhd25SZWFzb24gPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9O1xuICBjb25zdCBwb3AgPSAoKSA9PiBjb250ZXh0U3RhY2sucG9wKCk7XG4gIGNvbnN0IGRvbnRDb25zdW1lQ2hhcmFjdGVyID0gKCkgPT4gcG9zaXRpb24tLTtcblxuICBjb25zdCBzdGFydEFueSA9IChjaGFyOiBzdHJpbmcpID0+IHtcbiAgICBpZiAoJzAnIDw9IGNoYXIgJiYgY2hhciA8PSAnOScpIHtcbiAgICAgIHB1c2goQ29udGV4dFR5cGUuTlVNQkVSKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgc3dpdGNoIChjaGFyKSB7XG4gICAgICBjYXNlICdcIic6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuU1RSSU5HKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnLSc6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuTlVNQkVSX05FRURTX0RJR0lUKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAndCc6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuVFJVRSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ2YnOlxuICAgICAgICBwdXNoKENvbnRleHRUeXBlLkZBTFNFKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAnbic6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuTlVMTCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIGNhc2UgJ1snOlxuICAgICAgICBwdXNoKENvbnRleHRUeXBlLkFSUkFZX05FRURTX1ZBTFVFKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgY2FzZSAneyc6XG4gICAgICAgIHB1c2goQ29udGV4dFR5cGUuT0JKRUNUX05FRURTX0tFWSk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH07XG5cbiAgZm9yIChjb25zdCB7IGxlbmd0aCB9ID0ganNvbjsgcG9zaXRpb24gPCBsZW5ndGg7IHBvc2l0aW9uKyspIHtcbiAgICBjb25zdCBjaGFyID0ganNvbltwb3NpdGlvbl07XG4gICAgc3dpdGNoIChjb250ZXh0U3RhY2tbY29udGV4dFN0YWNrLmxlbmd0aCAtIDFdKSB7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLlRPUF9MRVZFTDpcbiAgICAgICAgc3RhcnRBbnkoY2hhcik7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5TVFJJTkc6XG4gICAgICAgIHN3aXRjaCAoY2hhcikge1xuICAgICAgICAgIGNhc2UgJ1wiJzpcbiAgICAgICAgICAgIHBvcCgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnXFxcXCc6XG4gICAgICAgICAgICBzZXRSZXNwYXduKFJlc3Bhd25SZWFzb24uU1RSSU5HX0VTQ0FQRSk7XG4gICAgICAgICAgICBwdXNoKENvbnRleHRUeXBlLlNUUklOR19FU0NBUEVEKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5TVFJJTkdfRVNDQVBFRDpcbiAgICAgICAgaWYgKGNoYXIgPT09ICd1Jykge1xuICAgICAgICAgIHB1c2goQ29udGV4dFR5cGUuU1RSSU5HX1VOSUNPREUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNsZWFyUmVzcGF3bihSZXNwYXduUmVhc29uLlNUUklOR19FU0NBUEUpO1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5TVFJJTkdfVU5JQ09ERTpcbiAgICAgICAgaWYgKHBvc2l0aW9uIC0ganNvbi5sYXN0SW5kZXhPZigndScsIHBvc2l0aW9uKSA9PT0gNCkge1xuICAgICAgICAgIGNsZWFyUmVzcGF3bihSZXNwYXduUmVhc29uLlNUUklOR19FU0NBUEUpO1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5OVU1CRVI6XG4gICAgICAgIGlmIChjaGFyID09PSAnLicpIHtcbiAgICAgICAgICByZXBsYWNlKENvbnRleHRUeXBlLk5VTUJFUl9ORUVEU19ESUdJVCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gJ2UnIHx8IGNoYXIgPT09ICdFJykge1xuICAgICAgICAgIHJlcGxhY2UoQ29udGV4dFR5cGUuTlVNQkVSX05FRURTX0VYUE9ORU5UKTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFyIDwgJzAnIHx8IGNoYXIgPiAnOScpIHtcbiAgICAgICAgICBkb250Q29uc3VtZUNoYXJhY3RlcigpO1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5OVU1CRVJfTkVFRFNfRElHSVQ6XG4gICAgICAgIHJlcGxhY2UoQ29udGV4dFR5cGUuTlVNQkVSKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk5VTUJFUl9ORUVEU19FWFBPTkVOVDpcbiAgICAgICAgaWYgKGNoYXIgPT09ICcrJyB8fCBjaGFyID09PSAnLScpIHtcbiAgICAgICAgICByZXBsYWNlKENvbnRleHRUeXBlLk5VTUJFUl9ORUVEU19ESUdJVCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5OVU1CRVIpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5UUlVFOlxuICAgICAgY2FzZSBDb250ZXh0VHlwZS5GQUxTRTpcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuTlVMTDpcbiAgICAgICAgaWYgKGNoYXIgPCAnYScgfHwgY2hhciA+ICd6Jykge1xuICAgICAgICAgIGRvbnRDb25zdW1lQ2hhcmFjdGVyKCk7XG4gICAgICAgICAgcG9wKCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLkFSUkFZX05FRURTX1ZBTFVFOlxuICAgICAgICBpZiAoY2hhciA9PT0gJ10nKSB7XG4gICAgICAgICAgcG9wKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzV2hpdGVzcGFjZShjaGFyKSkge1xuICAgICAgICAgIGNsZWFyUmVzcGF3bihSZXNwYXduUmVhc29uLkNPTExFQ1RJT05fSVRFTSk7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5BUlJBWV9ORUVEU19DT01NQSk7XG4gICAgICAgICAgc3RhcnRBbnkoY2hhcik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLkFSUkFZX05FRURTX0NPTU1BOlxuICAgICAgICBpZiAoY2hhciA9PT0gJ10nKSB7XG4gICAgICAgICAgcG9wKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gJywnKSB7XG4gICAgICAgICAgc2V0UmVzcGF3bihSZXNwYXduUmVhc29uLkNPTExFQ1RJT05fSVRFTSk7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5BUlJBWV9ORUVEU19WQUxVRSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk9CSkVDVF9ORUVEU19LRVk6XG4gICAgICAgIGlmIChjaGFyID09PSAnfScpIHtcbiAgICAgICAgICBwb3AoKTtcbiAgICAgICAgfSBlbHNlIGlmIChjaGFyID09PSAnXCInKSB7XG4gICAgICAgICAgc2V0UmVzcGF3bihSZXNwYXduUmVhc29uLkNPTExFQ1RJT05fSVRFTSk7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfQ09MT04pO1xuICAgICAgICAgIHB1c2goQ29udGV4dFR5cGUuU1RSSU5HKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuT0JKRUNUX05FRURTX0NPTE9OOlxuICAgICAgICBpZiAoY2hhciA9PT0gJzonKSB7XG4gICAgICAgICAgcmVwbGFjZShDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfVkFMVUUpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfVkFMVUU6XG4gICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKGNoYXIpKSB7XG4gICAgICAgICAgY2xlYXJSZXNwYXduKFJlc3Bhd25SZWFzb24uQ09MTEVDVElPTl9JVEVNKTtcbiAgICAgICAgICByZXBsYWNlKENvbnRleHRUeXBlLk9CSkVDVF9ORUVEU19DT01NQSk7XG4gICAgICAgICAgc3RhcnRBbnkoY2hhcik7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk9CSkVDVF9ORUVEU19DT01NQTpcbiAgICAgICAgaWYgKGNoYXIgPT09ICd9Jykge1xuICAgICAgICAgIHBvcCgpO1xuICAgICAgICB9IGVsc2UgaWYgKGNoYXIgPT09ICcsJykge1xuICAgICAgICAgIHNldFJlc3Bhd24oUmVzcGF3blJlYXNvbi5DT0xMRUNUSU9OX0lURU0pO1xuICAgICAgICAgIHJlcGxhY2UoQ29udGV4dFR5cGUuT0JKRUNUX05FRURTX0tFWSk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgaWYgKHJlc3Bhd25TdGFja0xlbmd0aCAhPSBudWxsKSB7XG4gICAgY29udGV4dFN0YWNrLmxlbmd0aCA9IHJlc3Bhd25TdGFja0xlbmd0aDtcbiAgfVxuICBjb25zdCByZXN1bHQgPSBbXG4gICAgcmVzcGF3blBvc2l0aW9uICE9IG51bGwgPyBqc29uLnNsaWNlKDAsIHJlc3Bhd25Qb3NpdGlvbikgOiBqc29uLFxuICBdO1xuICBjb25zdCBmaW5pc2hXb3JkID0gKHdvcmQ6IHN0cmluZykgPT5cbiAgICByZXN1bHQucHVzaCh3b3JkLnNsaWNlKGpzb24ubGVuZ3RoIC0ganNvbi5sYXN0SW5kZXhPZih3b3JkWzBdKSkpO1xuICBmb3IgKGxldCBpID0gY29udGV4dFN0YWNrLmxlbmd0aCAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgc3dpdGNoIChjb250ZXh0U3RhY2tbaV0pIHtcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuU1RSSU5HOlxuICAgICAgICByZXN1bHQucHVzaCgnXCInKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk5VTUJFUl9ORUVEU19ESUdJVDpcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuTlVNQkVSX05FRURTX0VYUE9ORU5UOlxuICAgICAgICByZXN1bHQucHVzaCgnMCcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuVFJVRTpcbiAgICAgICAgZmluaXNoV29yZCgndHJ1ZScpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuRkFMU0U6XG4gICAgICAgIGZpbmlzaFdvcmQoJ2ZhbHNlJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5OVUxMOlxuICAgICAgICBmaW5pc2hXb3JkKCdudWxsJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5BUlJBWV9ORUVEU19WQUxVRTpcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuQVJSQVlfTkVFRFNfQ09NTUE6XG4gICAgICAgIHJlc3VsdC5wdXNoKCddJyk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfS0VZOlxuICAgICAgY2FzZSBDb250ZXh0VHlwZS5PQkpFQ1RfTkVFRFNfQ09MT046XG4gICAgICBjYXNlIENvbnRleHRUeXBlLk9CSkVDVF9ORUVEU19WQUxVRTpcbiAgICAgIGNhc2UgQ29udGV4dFR5cGUuT0JKRUNUX05FRURTX0NPTU1BOlxuICAgICAgICByZXN1bHQucHVzaCgnfScpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3VsdC5qb2luKCcnKTtcbn1cbiJdfQ==","import { effect, inject, Injectable, signal, } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { Subject, takeUntil } from 'rxjs';\nimport { ApiService } from '../core/api.service';\nimport { ContextService } from './context.service';\nimport { WebsocketService } from './websocket.service';\nimport { untruncateJson } from './utils';\nimport * as i0 from \"@angular/core\";\nexport var ChatView;\n(function (ChatView) {\n ChatView[ChatView[\"Start\"] = 0] = \"Start\";\n ChatView[ChatView[\"Thread\"] = 1] = \"Thread\";\n ChatView[ChatView[\"ThreadList\"] = 2] = \"ThreadList\";\n})(ChatView || (ChatView = {}));\nconst ChatViewTitles = {\n [ChatView.ThreadList]: 'ai.chats',\n};\nexport class ChatService {\n ChatView = ChatView;\n highlightContext = null;\n isLoading = false;\n model = null;\n locale = 'en';\n isProcessing = false;\n threadEventSubject = new Subject();\n apiService = inject(ApiService);\n contextService = inject(ContextService);\n destroy$ = new Subject();\n router = inject(Router);\n socket = inject(WebsocketService);\n translocoService = inject(TranslocoService);\n _activeView = ChatView.Start;\n _activeAssistant = null;\n _activeThread = null;\n _assistants = signal([], ...(ngDevMode ? [{ debugName: \"_assistants\" }] : []));\n _messages = [];\n threadEvents$ = null;\n constructor() {\n this.locale = this.translocoService.getActiveLang() || 'en';\n effect(() => {\n const threadAssistantId = this.activeThread?.assistantId;\n if (threadAssistantId &&\n (!this.activeAssistant || this.activeAssistant.id !== threadAssistantId)) {\n this._activeAssistant = this.assistants?.find((a) => a.id === threadAssistantId);\n }\n });\n }\n get activeAssistant() {\n return this._activeAssistant;\n }\n get activeThread() {\n return this._activeThread;\n }\n get activeView() {\n return this._activeView;\n }\n get assistants() {\n return this._assistants();\n }\n get messages() {\n return this._messages;\n }\n get title() {\n return ChatViewTitles[this.activeView];\n }\n async init() {\n if (this.assistants?.length > 0) {\n // already initialized\n return;\n }\n this.isLoading = true;\n try {\n this.socket.init(this.apiService);\n this._assistants.set(await this.apiService.getAssistants());\n const defaultAssistant = this.assistants.find((a) => a.id === 'asset-assistant');\n if (defaultAssistant) {\n this._activeAssistant = defaultAssistant;\n }\n }\n catch (err) {\n console.error(err);\n }\n finally {\n this.isLoading = false;\n }\n }\n async createThreadForModal(assistantId, initialMessage, context, hidden) {\n try {\n this.isLoading = true;\n this._messages = [];\n this._activeThread = await this.apiService.createThread(assistantId);\n this.setupWebsockets();\n if (initialMessage) {\n await this.sendMessage(initialMessage, context, hidden);\n }\n }\n catch (err) {\n console.error(err);\n throw err;\n }\n finally {\n this.isLoading = false;\n }\n }\n async openEmptyThread(assistantId) {\n this._activeAssistant = this.assistants.find((a) => a.id === assistantId);\n if (!this.activeAssistant) {\n return;\n }\n this._activeView = ChatView.Thread;\n this._activeThread = null;\n this._messages = [];\n const welcomeMessage = this.activeAssistant.i18n[this.locale]?.welcomeMessage;\n const currentDate = new Date().toISOString();\n this._messages = [\n {\n thread: null,\n role: 'assistant',\n content: welcomeMessage,\n createdAt: currentDate,\n updatedAt: currentDate,\n parsedContent: {\n response: welcomeMessage,\n references: [],\n },\n },\n ];\n }\n async createThread(initialMessage, assistantId) {\n if (this.isLoading || (!this.activeAssistant?.id && !assistantId)) {\n return;\n }\n assistantId = assistantId || this.activeAssistant?.id;\n this.isLoading = true;\n try {\n const thread = await this.apiService.createThread(assistantId);\n if (initialMessage) {\n await this.sendMessage(initialMessage);\n }\n this.router.navigate(['/ai/threads', thread.id]);\n }\n catch (err) {\n console.error(err);\n }\n finally {\n this.isLoading = false;\n }\n }\n deleteThread(threadId) {\n if (threadId === this.activeThread?.id) {\n this._activeThread = null;\n }\n return this.apiService.deleteThread(threadId);\n }\n showStart() {\n this._activeView = ChatView.Start;\n }\n showThreadList() {\n if (this._activeView === ChatView.ThreadList) {\n return;\n }\n this._activeView = ChatView.ThreadList;\n }\n async openThread(thread, isNewThread = false) {\n if (!thread) {\n return;\n }\n if (typeof thread === 'string') {\n thread = await this.apiService.getThread(thread);\n }\n this._activeThread = thread;\n this._activeView = ChatView.Thread;\n if (isNewThread) {\n this._messages = [];\n }\n else {\n await this.getMessages();\n }\n this.setupWebsockets();\n }\n getAssistantName(thread) {\n const assistant = this.assistants.find((a) => a.id === thread.assistantId);\n return assistant?.i18n?.[this.locale]?.name;\n }\n async getMessages() {\n const threadId = this.activeThread?.id;\n if (!threadId) {\n return;\n }\n this._messages = [];\n this.isLoading = true;\n try {\n const { docs: messages } = await this.apiService.getThreadMessages(threadId);\n this.isLoading = false;\n if (messages.length === 0) {\n const assistant = this.assistants.find((a) => a.id === this.activeThread.assistantId);\n const welcomeMessage = assistant.i18n[this.locale]?.welcomeMessage;\n const currentDate = new Date().toISOString();\n this._messages = [\n {\n thread: threadId,\n role: 'assistant',\n content: welcomeMessage,\n createdAt: currentDate,\n updatedAt: currentDate,\n parsedContent: {\n response: welcomeMessage,\n references: [],\n },\n },\n ];\n }\n else {\n messages.reverse().forEach((message) => this.updateMessage(message));\n }\n }\n catch (err) {\n this.isLoading = false;\n console.error(err);\n throw err;\n }\n }\n async sendMessage(content, context = {}, hidden) {\n content = content.trim();\n if (!content || !this.activeAssistant?.id) {\n return;\n }\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\n context = { ...context, timeZone };\n if (!this.activeThread) {\n const message = await this.apiService.addMessage(content, null, this.activeAssistant.id, context);\n if (message.thread) {\n this.isProcessing = true;\n return this.openThread(message.thread);\n }\n }\n else {\n const currentDate = new Date().toISOString();\n const message = {\n id: globalThis.crypto.randomUUID(),\n thread: this.activeThread.id,\n content,\n createdAt: currentDate,\n updatedAt: currentDate,\n role: 'user',\n hidden,\n };\n const item = this._messages[this._messages.length - 1];\n if (item?.role === 'tool' &&\n item?.toolType === 'choice' &&\n item?.status === 'processing' &&\n item?.args?.choices) {\n // the last message was a tool-call, it needs to be finished by setting `thread` and `toolCallId`\n this.socket.emitToAi(this.activeThread.id, content, context, item.toolCallId, 'none');\n }\n else {\n this.socket.emitToAi(this.activeThread.id, content, context);\n }\n this._messages.push(message);\n this.updateMessage(message);\n }\n }\n selectChoice(selection, toolMessage) {\n this.socket.emitToolCallResult(toolMessage.thread, toolMessage.toolCallId, selection);\n }\n closeThread() {\n if (this.threadEvents$) {\n this.threadEvents$.unsubscribe();\n this.threadEvents$ = null;\n }\n if (this.activeThread?.id) {\n this.socket.unsubscribeFromThread(this.activeThread.id);\n }\n this._activeThread = null;\n }\n async abortThread() {\n if (this.activeThread?.id) {\n this.socket.abortAi(this.activeThread.id);\n }\n }\n setupWebsockets() {\n if (this.threadEvents$) {\n this.threadEvents$.unsubscribe();\n this.threadEvents$ = null;\n }\n if (!this.activeThread) {\n return;\n }\n if (this.activeThread) {\n this.threadEvents$ = this.socket\n .subscribeToThread(this.activeThread.id)\n .pipe(takeUntil(this.destroy$))\n .subscribe(({ type, data }) => {\n this.handleThreadEvent(type, data);\n this.threadEventSubject.next({ type, data });\n });\n }\n }\n collectContext(references) {\n if (!references?.length) {\n return;\n }\n const seenIds = new Set();\n references.forEach((ref) => {\n if (ref.resourceType === 'document') {\n ref.resourceType = 'content';\n }\n if (!seenIds.has(ref.id)) {\n ref.firstOccurrence = true;\n }\n seenIds.add(ref.id);\n });\n const refs = references.filter((ref) => ref.firstOccurrence);\n this.contextService.loadReferences(refs);\n }\n handleThreadEvent(type, message) {\n if (type === WebSocketMessageType.AI_PROCESSING) {\n // Message is being processed\n this.isProcessing = true;\n }\n else if (type === WebSocketMessageType.AI_MESSAGE) {\n // Message received\n this.updateMessage(message);\n }\n else if (type === WebSocketMessageType.AI_PARTIAL_MESSAGE) {\n // Message Delta received\n this.updatePartialMessage(message);\n }\n else if (type === WebSocketMessageType.AI_COMPLETE) {\n // Message processing is complete\n this.isProcessing = false;\n }\n else if (type === WebSocketMessageType.AI_ABORTED) {\n // Message processing was aborted\n this.isProcessing = false;\n }\n else if (type === WebSocketMessageType.AI_FAILED_TO_PROCESS ||\n type === WebSocketMessageType.AI_INVALID_MESSAGE) {\n // Message processing failed or message is invalid\n this.isProcessing = false;\n console.error(message);\n this.updateMessage({\n id: globalThis.crypto.randomUUID(),\n thread: this.activeThread.id,\n role: 'assistant',\n status: 'failed',\n content: this.translocoService.translate('ai.failed_to_process_message'),\n finishReason: 'error',\n });\n }\n else {\n // ignore event\n }\n }\n updateMessage(message) {\n const index = this._messages.findIndex((m) => (m.id && m.id === message.id) ||\n (m.responseId && m.responseId === message.responseId));\n let newMessage;\n if (message.role === 'assistant') {\n newMessage = { ...message };\n if (message.content) {\n try {\n newMessage.parsedContent = JSON.parse(untruncateJson(message.content));\n }\n catch (_) {\n newMessage.parsedContent = {\n response: message.content,\n references: [],\n };\n }\n newMessage = this.prettifyMessage(newMessage);\n this.collectContext(newMessage.parsedContent?.references);\n }\n }\n else if (message.role === 'user') {\n if (message.content) {\n newMessage = { ...message };\n newMessage = this.prettifyMessage(newMessage);\n this.collectContext(newMessage.parsedContent?.references);\n }\n }\n if (index !== -1) {\n this._messages[index] = newMessage || message; // update message\n }\n else {\n this._messages.push(newMessage || message); // add message\n }\n }\n updatePartialMessage(message) {\n const index = this._messages.findIndex((m) => m.responseId && m.responseId === message.responseId);\n if (index === -1) {\n return this.updateMessage(message);\n }\n const newMessage = { ...this._messages[index] };\n newMessage.content = newMessage.content + message.content;\n try {\n newMessage.parsedContent = JSON.parse(untruncateJson(newMessage.content));\n this.collectContext(newMessage.parsedContent?.references);\n }\n catch (_) {\n newMessage.parsedContent = {\n response: newMessage.content,\n references: [],\n };\n }\n this._messages[index] = newMessage;\n }\n prettifyMessage(message) {\n message.parsedContent = this.replaceIds(message);\n message.parsedContent.response = this.replaceJsonWithMdTable(message.parsedContent.response);\n return message;\n }\n /**\n * Replace IDs in the message content with a more readable format, which can be processed to properly identify references.\n * @param message The message to process.\n * @returns The processed message content.\n */\n replaceIds(message) {\n let response = message.parsedContent?.response || message.content || '';\n const references = message.parsedContent?.references || [];\n const bracketedIdRegExp = /\\(([iI][dD]):?[ \\t]*'?([0-9a-fA-F]{24})'?\\)/g;\n const unbracketedIdRegExp = /([iI][dD])[ \\t]+'?([0-9a-fA-F]{24})'?/g;\n let index = message.parsedContent?.references?.length + 1 || 1;\n response = response.replace(bracketedIdRegExp, (match, idText, id) => {\n const before = response.slice(0, response.indexOf(match));\n const lastKeywordCheck = this.checkLastKeyword(before);\n if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Asset') {\n references.push({ id, resourceType: 'asset', reference_id: index++ });\n return '';\n }\n else if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Typ') {\n references.push({\n id,\n resourceType: 'asset-type',\n reference_id: index++,\n });\n return '';\n }\n return `[[${id}]]`;\n });\n response = response.replace(unbracketedIdRegExp, (match, idText, id) => {\n const before = response.slice(0, response.indexOf(match));\n const lastKeywordCheck = this.checkLastKeyword(before);\n if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Asset') {\n references.push({ id, resourceType: 'asset', reference_id: index++ });\n return idText;\n }\n else if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Typ') {\n references.push({\n id,\n resourceType: 'asset-type',\n reference_id: index++,\n });\n return idText;\n }\n return idText;\n });\n return { response, references };\n }\n /**\n * Check if the last keyword in the string is 'Asset' or 'Typ'.\n * @param str The string to check.\n * @returns An object with the last keyword and its index, or null if neither is found.\n */\n checkLastKeyword(str) {\n const lowerStr = str.toLowerCase();\n const typVariants = [\n 'typ',\n 'type',\n 'assettype',\n 'assettyp',\n 'asset-type',\n 'asset-typ',\n ];\n const lastTypIndex = Math.max(...typVariants.map((v) => lowerStr.lastIndexOf(v)));\n const lastAssetIndex = lowerStr.lastIndexOf('asset');\n if (lastTypIndex === -1 && lastAssetIndex === -1) {\n return null;\n }\n else if (lastAssetIndex > lastTypIndex) {\n return { lastKeyword: 'Asset', result: lastAssetIndex };\n }\n else if (lastTypIndex !== -1) {\n return { lastKeyword: 'Typ', result: lastTypIndex };\n }\n return null;\n }\n /**\n * Prettify JSON strings in messages by converting them to a Markdown table.\n * @param content The content of the message.\n * @returns The prettified content.\n */\n replaceJsonWithMdTable(content) {\n const jsonRegExp = /(```json)?\\s*(```)?(\\{\\s*((\"[^\"]*\"\\s*:\\s*\"[^\"]*\"\\s*)(\\s*,\\s*\"[^\"]*\"\\s*:\\s*\"[^\"]*\"\\s*)*)\\})\\s*(```)?/;\n if (jsonRegExp.test(content)) {\n while (jsonRegExp.test(content)) {\n const match = jsonRegExp.exec(content);\n const first = match.index;\n const last = match.index + match[0].length - 1;\n try {\n const jsonString = match[3];\n const jsonObj = JSON.parse(jsonString);\n let markdownTable = '\\n\\n| | |\\n| --- | --- |\\n';\n for (const key in jsonObj) {\n if (Object.prototype.hasOwnProperty.call(jsonObj, key)) {\n const value = String(jsonObj[key]).replace(/\\|/g, '\\\\|');\n markdownTable += `| **${key}** | ${value} |\\n`;\n }\n }\n markdownTable += '\\n';\n const partOne = content.slice(0, first);\n const partTwo = content.slice(last + 1);\n content = partOne + markdownTable + partTwo;\n }\n catch (error) {\n break;\n }\n }\n }\n return content;\n }\n retryMessage(message) {\n if (!message ||\n !this.activeThread?.id ||\n this.isProcessing ||\n message.role !== 'assistant') {\n return;\n }\n this.isProcessing = true;\n this._messages = this._messages.filter((m) => m.id !== message.id);\n this.socket.emitRetry(this.activeThread.id, message.id);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ChatService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ChatService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ChatService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [] });\nexport var WebSocketMessageType;\n(function (WebSocketMessageType) {\n WebSocketMessageType[\"AI_ABORTED\"] = \"ai_aborted\";\n WebSocketMessageType[\"AI_ABORT_FAILED\"] = \"ai_abort_failed\";\n WebSocketMessageType[\"AI_COMPLETE\"] = \"ai_complete\";\n WebSocketMessageType[\"AI_FAILED_TO_PROCESS\"] = \"ai_failed_to_process\";\n WebSocketMessageType[\"AI_INVALID_MESSAGE\"] = \"ai_invalid_message\";\n WebSocketMessageType[\"AI_MESSAGE\"] = \"ai_message\";\n WebSocketMessageType[\"AI_PARTIAL_MESSAGE\"] = \"ai_partial_message\";\n WebSocketMessageType[\"AI_PROCESSING\"] = \"ai_processing\";\n})(WebSocketMessageType || (WebSocketMessageType = {}));\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY2hhdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxNQUFNLEVBQ04sTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQVd4RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakQsT0FBTyxFQUFvQixjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOztBQUV6QyxNQUFNLENBQU4sSUFBWSxRQUlYO0FBSkQsV0FBWSxRQUFRO0lBQ2xCLHlDQUFLLENBQUE7SUFDTCwyQ0FBTSxDQUFBO0lBQ04sbURBQVUsQ0FBQTtBQUNaLENBQUMsRUFKVyxRQUFRLEtBQVIsUUFBUSxRQUluQjtBQUVELE1BQU0sY0FBYyxHQUFHO0lBQ3JCLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFVBQVU7Q0FDbEMsQ0FBQztBQUdGLE1BQU0sT0FBTyxXQUFXO0lBQ2IsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM3QixnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBQ3ZDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsS0FBSyxHQUFrQixJQUFJLENBQUM7SUFDNUIsTUFBTSxHQUFHLElBQUksQ0FBQztJQUNkLFlBQVksR0FB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akIsQ0FBQztJQUVELFlBQVksQ0FBQyxPQUF5QjtRQUNwQyxJQUNFLENBQUMsT0FBTztZQUNSLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3RCLElBQUksQ0FBQyxZQUFZO1lBQ2pCLE9BQU8sQ0FBQyxJQUFJLEtBQUssV0FBVyxFQUM1QixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDMUQsQ0FBQzt1R0FubUJVLFdBQVc7MkdBQVgsV0FBVzs7MkZBQVgsV0FBVztrQkFEdkIsVUFBVTs7QUE0bkJYLE1BQU0sQ0FBTixJQUFZLG9CQVNYO0FBVEQsV0FBWSxvQkFBb0I7SUFDOUIsaURBQXlCLENBQUE7SUFDekIsMkRBQW1DLENBQUE7SUFDbkMsbURBQTJCLENBQUE7SUFDM0IscUVBQTZDLENBQUE7SUFDN0MsaUVBQXlDLENBQUE7SUFDekMsaURBQXlCLENBQUE7SUFDekIsaUVBQXlDLENBQUE7SUFDekMsdURBQStCLENBQUE7QUFDakMsQ0FBQyxFQVRXLG9CQUFvQixLQUFwQixvQkFBb0IsUUFTL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgSW5qZWN0YWJsZSxcbiAgc2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsb2NvU2VydmljZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7XG4gIEFpQXNzaXN0YW50LFxuICBBc3Npc3RhbnRNZXNzYWdlIGFzIEFpQXNzaXN0YW50TWVzc2FnZSxcbiAgVXNlck1lc3NhZ2UgYXMgQWlVc2VyTWVzc2FnZSxcbiAgTWVzc2FnZSxcbiAgU3lzdGVtTWVzc2FnZSxcbiAgVGhyZWFkUG9wdWxhdGVkLFxuICBUb29sTWVzc2FnZSxcbn0gZnJvbSAnQGhhaG5wcm8vaHBjLWFwaSc7XG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vY29yZS9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBDb250ZXh0UmVmZXJlbmNlLCBDb250ZXh0U2VydmljZSB9IGZyb20gJy4vY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3dlYnNvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IHVudHJ1bmNhdGVKc29uIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBlbnVtIENoYXRWaWV3IHtcbiAgU3RhcnQsXG4gIFRocmVhZCxcbiAgVGhyZWFkTGlzdCxcbn1cblxuY29uc3QgQ2hhdFZpZXdUaXRsZXMgPSB7XG4gIFtDaGF0Vmlldy5UaHJlYWRMaXN0XTogJ2FpLmNoYXRzJyxcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDaGF0U2VydmljZSB7XG4gIHJlYWRvbmx5IENoYXRWaWV3ID0gQ2hhdFZpZXc7XG4gIGhpZ2hsaWdodENvbnRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgbW9kZWw6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBsb2NhbGUgPSAnZW4nO1xuICBpc1Byb2Nlc3NpbmcgPSBmYWxzZTtcblxuICBwdWJsaWMgdGhyZWFkRXZlbnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8eyB0eXBlOiBXZWJTb2NrZXRNZXNzYWdlVHlwZTsgZGF0YTogTWVzc2FnZSB9PigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgYXBpU2VydmljZSA9IGluamVjdChBcGlTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0U2VydmljZSA9IGluamVjdChDb250ZXh0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJlYWRvbmx5IHNvY2tldCA9IGluamVjdChXZWJzb2NrZXRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuICBwcml2YXRlIF9hY3RpdmVWaWV3OiBDaGF0VmlldyA9IENoYXRWaWV3LlN0YXJ0O1xuICBwcml2YXRlIF9hY3RpdmVBc3Npc3RhbnQ6IEFpQXNzaXN0YW50IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2FjdGl2ZVRocmVhZDogVGhyZWFkUG9wdWxhdGVkIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX2Fzc2lzdGFudHM6IFdyaXRhYmxlU2lnbmFsPEFpQXNzaXN0YW50W10+ID0gc2lnbmFsKFtdKTtcbiAgcHJpdmF0ZSBfbWVzc2FnZXM6IENoYXRNZXNzYWdlW10gPSBbXTtcbiAgcHJpdmF0ZSB0aHJlYWRFdmVudHMkOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmxvY2FsZSA9IHRoaXMudHJhbnNsb2NvU2VydmljZS5nZXRBY3RpdmVMYW5nKCkgfHwgJ2VuJztcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgdGhyZWFkQXNzaXN0YW50SWQgPSB0aGlzLmFjdGl2ZVRocmVhZD8uYXNzaXN0YW50SWQ7XG4gICAgICBpZiAoXG4gICAgICAgIHRocmVhZEFzc2lzdGFudElkICYmXG4gICAgICAgICghdGhpcy5hY3RpdmVBc3Npc3RhbnQgfHwgdGhpcy5hY3RpdmVBc3Npc3RhbnQuaWQgIT09IHRocmVhZEFzc2lzdGFudElkKVxuICAgICAgKSB7XG4gICAgICAgIHRoaXMuX2FjdGl2ZUFzc2lzdGFudCA9IHRoaXMuYXNzaXN0YW50cz8uZmluZChcbiAgICAgICAgICAoYSkgPT4gYS5pZCA9PT0gdGhyZWFkQXNzaXN0YW50SWQsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBnZXQgYWN0aXZlQXNzaXN0YW50KCk6IEFpQXNzaXN0YW50IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlQXNzaXN0YW50O1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVRocmVhZCgpOiBUaHJlYWRQb3B1bGF0ZWQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlVGhyZWFkO1xuICB9XG5cbiAgZ2V0IGFjdGl2ZVZpZXcoKTogQ2hhdFZpZXcge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVWaWV3O1xuICB9XG5cbiAgZ2V0IGFzc2lzdGFudHMoKTogQWlBc3Npc3RhbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Fzc2lzdGFudHMoKTtcbiAgfVxuXG4gIGdldCBtZXNzYWdlcygpOiBDaGF0TWVzc2FnZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fbWVzc2FnZXM7XG4gIH1cblxuICBnZXQgdGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gQ2hhdFZpZXdUaXRsZXNbdGhpcy5hY3RpdmVWaWV3XTtcbiAgfVxuXG4gIGFzeW5jIGluaXQoKSB7XG4gICAgaWYgKHRoaXMuYXNzaXN0YW50cz8ubGVuZ3RoID4gMCkge1xuICAgICAgLy8gYWxyZWFkeSBpbml0aWFsaXplZFxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0cnkge1xuICAgICAgdGhpcy5zb2NrZXQuaW5pdCh0aGlzLmFwaVNlcnZpY2UpO1xuICAgICAgdGhpcy5fYXNzaXN0YW50cy5zZXQoYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldEFzc2lzdGFudHMoKSk7XG4gICAgICBjb25zdCBkZWZhdWx0QXNzaXN0YW50ID0gdGhpcy5hc3Npc3RhbnRzLmZpbmQoXG4gICAgICAgIChhKSA9PiBhLmlkID09PSAnYXNzZXQtYXNzaXN0YW50JyxcbiAgICAgICk7XG4gICAgICBpZiAoZGVmYXVsdEFzc2lzdGFudCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVBc3Npc3RhbnQgPSBkZWZhdWx0QXNzaXN0YW50O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNyZWF0ZVRocmVhZEZvck1vZGFsKFxuICAgIGFzc2lzdGFudElkOiBzdHJpbmcsXG4gICAgaW5pdGlhbE1lc3NhZ2U/OiBzdHJpbmcsXG4gICAgY29udGV4dD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHwgbnVsbCxcbiAgICBoaWRkZW4/OiBib29sZWFuLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0cnkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTtcbiAgICAgIHRoaXMuX2FjdGl2ZVRocmVhZCA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5jcmVhdGVUaHJlYWQoYXNzaXN0YW50SWQpO1xuICAgICAgdGhpcy5zZXR1cFdlYnNvY2tldHMoKTtcbiAgICAgIGlmIChpbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlbmRNZXNzYWdlKGluaXRpYWxNZXNzYWdlLCBjb250ZXh0LCBoaWRkZW4pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIG9wZW5FbXB0eVRocmVhZChhc3Npc3RhbnRJZDogc3RyaW5nKSB7XG4gICAgdGhpcy5fYWN0aXZlQXNzaXN0YW50ID0gdGhpcy5hc3Npc3RhbnRzLmZpbmQoKGEpID0+IGEuaWQgPT09IGFzc2lzdGFudElkKTtcbiAgICBpZiAoIXRoaXMuYWN0aXZlQXNzaXN0YW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZVZpZXcgPSBDaGF0Vmlldy5UaHJlYWQ7XG4gICAgdGhpcy5fYWN0aXZlVGhyZWFkID0gbnVsbDtcbiAgICB0aGlzLl9tZXNzYWdlcyA9IFtdO1xuICAgIGNvbnN0IHdlbGNvbWVNZXNzYWdlID1cbiAgICAgIHRoaXMuYWN0aXZlQXNzaXN0YW50LmkxOG5bdGhpcy5sb2NhbGVdPy53ZWxjb21lTWVzc2FnZTtcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKTtcbiAgICB0aGlzLl9tZXNzYWdlcyA9IFtcbiAgICAgIHtcbiAgICAgICAgdGhyZWFkOiBudWxsLFxuICAgICAgICByb2xlOiAnYXNzaXN0YW50JyxcbiAgICAgICAgY29udGVudDogd2VsY29tZU1lc3NhZ2UsXG4gICAgICAgIGNyZWF0ZWRBdDogY3VycmVudERhdGUsXG4gICAgICAgIHVwZGF0ZWRBdDogY3VycmVudERhdGUsXG4gICAgICAgIHBhcnNlZENvbnRlbnQ6IHtcbiAgICAgICAgICByZXNwb25zZTogd2VsY29tZU1lc3NhZ2UsXG4gICAgICAgICAgcmVmZXJlbmNlczogW10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG4gIH1cblxuICBhc3luYyBjcmVhdGVUaHJlYWQoXG4gICAgaW5pdGlhbE1lc3NhZ2U/OiBzdHJpbmcsXG4gICAgYXNzaXN0YW50SWQ/OiBzdHJpbmcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCAoIXRoaXMuYWN0aXZlQXNzaXN0YW50Py5pZCAmJiAhYXNzaXN0YW50SWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGFzc2lzdGFudElkID0gYXNzaXN0YW50SWQgfHwgdGhpcy5hY3RpdmVBc3Npc3RhbnQ/LmlkO1xuXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB0aHJlYWQgPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2UuY3JlYXRlVGhyZWFkKGFzc2lzdGFudElkKTtcbiAgICAgIGlmIChpbml0aWFsTWVzc2FnZSkge1xuICAgICAgICBhd2FpdCB0aGlzLnNlbmRNZXNzYWdlKGluaXRpYWxNZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2FpL3RocmVhZHMnLCB0aHJlYWQuaWRdKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBkZWxldGVUaHJlYWQodGhyZWFkSWQ6IHN0cmluZykge1xuICAgIGlmICh0aHJlYWRJZCA9PT0gdGhpcy5hY3RpdmVUaHJlYWQ/LmlkKSB7XG4gICAgICB0aGlzLl9hY3RpdmVUaHJlYWQgPSBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hcGlTZXJ2aWNlLmRlbGV0ZVRocmVhZCh0aHJlYWRJZCk7XG4gIH1cblxuICBzaG93U3RhcnQoKSB7XG4gICAgdGhpcy5fYWN0aXZlVmlldyA9IENoYXRWaWV3LlN0YXJ0O1xuICB9XG5cbiAgc2hvd1RocmVhZExpc3QoKSB7XG4gICAgaWYgKHRoaXMuX2FjdGl2ZVZpZXcgPT09IENoYXRWaWV3LlRocmVhZExpc3QpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlVmlldyA9IENoYXRWaWV3LlRocmVhZExpc3Q7XG4gIH1cblxuICBhc3luYyBvcGVuVGhyZWFkKFxuICAgIHRocmVhZDogc3RyaW5nIHwgVGhyZWFkUG9wdWxhdGVkLFxuICAgIGlzTmV3VGhyZWFkID0gZmFsc2UsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhyZWFkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2YgdGhyZWFkID09PSAnc3RyaW5nJykge1xuICAgICAgdGhyZWFkID0gYXdhaXQgdGhpcy5hcGlTZXJ2aWNlLmdldFRocmVhZCh0aHJlYWQpO1xuICAgIH1cblxuICAgIHRoaXMuX2FjdGl2ZVRocmVhZCA9IHRocmVhZDtcbiAgICB0aGlzLl9hY3RpdmVWaWV3ID0gQ2hhdFZpZXcuVGhyZWFkO1xuICAgIGlmIChpc05ld1RocmVhZCkge1xuICAgICAgdGhpcy5fbWVzc2FnZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5nZXRNZXNzYWdlcygpO1xuICAgIH1cbiAgICB0aGlzLnNldHVwV2Vic29ja2V0cygpO1xuICB9XG5cbiAgZ2V0QXNzaXN0YW50TmFtZSh0aHJlYWQ6IFRocmVhZFBvcHVsYXRlZCk6IHN0cmluZyB7XG4gICAgY29uc3QgYXNzaXN0YW50ID0gdGhpcy5hc3Npc3RhbnRzLmZpbmQoKGEpID0+IGEuaWQgPT09IHRocmVhZC5hc3Npc3RhbnRJZCk7XG4gICAgcmV0dXJuIGFzc2lzdGFudD8uaTE4bj8uW3RoaXMubG9jYWxlXT8ubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TWVzc2FnZXMoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgdGhyZWFkSWQgPSB0aGlzLmFjdGl2ZVRocmVhZD8uaWQ7XG4gICAgaWYgKCF0aHJlYWRJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX21lc3NhZ2VzID0gW107XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGRvY3M6IG1lc3NhZ2VzIH0gPVxuICAgICAgICBhd2FpdCB0aGlzLmFwaVNlcnZpY2UuZ2V0VGhyZWFkTWVzc2FnZXModGhyZWFkSWQpO1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIGlmIChtZXNzYWdlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgY29uc3QgYXNzaXN0YW50ID0gdGhpcy5hc3Npc3RhbnRzLmZpbmQoXG4gICAgICAgICAgKGEpID0+IGEuaWQgPT09IHRoaXMuYWN0aXZlVGhyZWFkLmFzc2lzdGFudElkLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCB3ZWxjb21lTWVzc2FnZSA9IGFzc2lzdGFudC5pMThuW3RoaXMubG9jYWxlXT8ud2VsY29tZU1lc3NhZ2U7XG4gICAgICAgIGNvbnN0IGN1cnJlbnREYXRlID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xuICAgICAgICB0aGlzLl9tZXNzYWdlcyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0aHJlYWQ6IHRocmVhZElkLFxuICAgICAgICAgICAgcm9sZTogJ2Fzc2lzdGFudCcsXG4gICAgICAgICAgICBjb250ZW50OiB3ZWxjb21lTWVzc2FnZSxcbiAgICAgICAgICAgIGNyZWF0ZWRBdDogY3VycmVudERhdGUsXG4gICAgICAgICAgICB1cGRhdGVkQXQ6IGN1cnJlbnREYXRlLFxuICAgICAgICAgICAgcGFyc2VkQ29udGVudDoge1xuICAgICAgICAgICAgICByZXNwb25zZTogd2VsY29tZU1lc3NhZ2UsXG4gICAgICAgICAgICAgIHJlZmVyZW5jZXM6IFtdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbWVzc2FnZXMucmV2ZXJzZSgpLmZvckVhY2goKG1lc3NhZ2UpID0+IHRoaXMudXBkYXRlTWVzc2FnZShtZXNzYWdlKSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIHNlbmRNZXNzYWdlKFxuICAgIGNvbnRlbnQ6IHN0cmluZyxcbiAgICBjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9LFxuICAgIGhpZGRlbj86IGJvb2xlYW4sXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnRlbnQgPSBjb250ZW50LnRyaW0oKTtcbiAgICBpZiAoIWNvbnRlbnQgfHwgIXRoaXMuYWN0aXZlQXNzaXN0YW50Py5pZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB0aW1lWm9uZSA9IEludGwuRGF0ZVRpbWVGb3JtYXQoKS5yZXNvbHZlZE9wdGlvbnMoKS50aW1lWm9uZTtcbiAgICBjb250ZXh0ID0geyAuLi5jb250ZXh0LCB0aW1lWm9uZSB9O1xuXG4gICAgaWYgKCF0aGlzLmFjdGl2ZVRocmVhZCkge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHRoaXMuYXBpU2VydmljZS5hZGRNZXNzYWdlKFxuICAgICAgICBjb250ZW50LFxuICAgICAgICBudWxsLFxuICAgICAgICB0aGlzLmFjdGl2ZUFzc2lzdGFudC5pZCxcbiAgICAgICAgY29udGV4dCxcbiAgICAgICk7XG4gICAgICBpZiAobWVzc2FnZS50aHJlYWQpIHtcbiAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5vcGVuVGhyZWFkKG1lc3NhZ2UudGhyZWFkKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY3VycmVudERhdGUgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG5cbiAgICAgIGNvbnN0IG1lc3NhZ2U6IE1lc3NhZ2UgPSB7XG4gICAgICAgIGlkOiBnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICAgIHRocmVhZDogdGhpcy5hY3RpdmVUaHJlYWQuaWQsXG4gICAgICAgIGNvbnRlbnQsXG4gICAgICAgIGNyZWF0ZWRBdDogY3VycmVudERhdGUsXG4gICAgICAgIHVwZGF0ZWRBdDogY3VycmVudERhdGUsXG4gICAgICAgIHJvbGU6ICd1c2VyJyxcbiAgICAgICAgaGlkZGVuLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgaXRlbSA9IHRoaXMuX21lc3NhZ2VzW3RoaXMuX21lc3NhZ2VzLmxlbmd0aCAtIDFdO1xuICAgICAgaWYgKFxuICAgICAgICBpdGVtPy5yb2xlID09PSAndG9vbCcgJiZcbiAgICAgICAgaXRlbT8udG9vbFR5cGUgPT09ICdjaG9pY2UnICYmXG4gICAgICAgIGl0ZW0/LnN0YXR1cyA9PT0gJ3Byb2Nlc3NpbmcnICYmXG4gICAgICAgIGl0ZW0/LmFyZ3M/LmNob2ljZXNcbiAgICAgICkge1xuICAgICAgICAvLyB0aGUgbGFzdCBtZXNzYWdlIHdhcyBhIHRvb2wtY2FsbCwgaXQgbmVlZHMgdG8gYmUgZmluaXNoZWQgYnkgc2V0dGluZyBgdGhyZWFkYCBhbmQgYHRvb2xDYWxsSWRgXG4gICAgICAgIHRoaXMuc29ja2V0LmVtaXRUb0FpKFxuICAgICAgICAgIHRoaXMuYWN0aXZlVGhyZWFkLmlkLFxuICAgICAgICAgIGNvbnRlbnQsXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBpdGVtLnRvb2xDYWxsSWQsXG4gICAgICAgICAgJ25vbmUnLFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zb2NrZXQuZW1pdFRvQWkodGhpcy5hY3RpdmVUaHJlYWQuaWQsIGNvbnRlbnQsIGNvbnRleHQpO1xuICAgICAgfVxuICAgICAgdGhpcy5fbWVzc2FnZXMucHVzaChtZXNzYWdlKTtcbiAgICAgIHRoaXMudXBkYXRlTWVzc2FnZShtZXNzYWdlKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDaG9pY2Uoc2VsZWN0aW9uOiBhbnksIHRvb2xNZXNzYWdlOiBhbnkpIHtcbiAgICB0aGlzLnNvY2tldC5lbWl0VG9vbENhbGxSZXN1bHQoXG4gICAgICB0b29sTWVzc2FnZS50aHJlYWQsXG4gICAgICB0b29sTWVzc2FnZS50b29sQ2FsbElkLFxuICAgICAgc2VsZWN0aW9uLFxuICAgICk7XG4gIH1cblxuICBjbG9zZVRocmVhZCgpIHtcbiAgICBpZiAodGhpcy50aHJlYWRFdmVudHMkKSB7XG4gICAgICB0aGlzLnRocmVhZEV2ZW50cyQudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMudGhyZWFkRXZlbnRzJCA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmFjdGl2ZVRocmVhZD8uaWQpIHtcbiAgICAgIHRoaXMuc29ja2V0LnVuc3Vic2NyaWJlRnJvbVRocmVhZCh0aGlzLmFjdGl2ZVRocmVhZC5pZCk7XG4gICAgfVxuICAgIHRoaXMuX2FjdGl2ZVRocmVhZCA9IG51bGw7XG4gIH1cblxuICBhc3luYyBhYm9ydFRocmVhZCgpIHtcbiAgICBpZiAodGhpcy5hY3RpdmVUaHJlYWQ/LmlkKSB7XG4gICAgICB0aGlzLnNvY2tldC5hYm9ydEFpKHRoaXMuYWN0aXZlVGhyZWFkLmlkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwV2Vic29ja2V0cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50aHJlYWRFdmVudHMkKSB7XG4gICAgICB0aGlzLnRocmVhZEV2ZW50cyQudW5zdWJzY3JpYmUoKTtcbiAgICAgIHRoaXMudGhyZWFkRXZlbnRzJCA9IG51bGw7XG4gICAgfVxuICAgIGlmICghdGhpcy5hY3RpdmVUaHJlYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hY3RpdmVUaHJlYWQpIHtcbiAgICAgIHRoaXMudGhyZWFkRXZlbnRzJCA9IHRoaXMuc29ja2V0XG4gICAgICAgIC5zdWJzY3JpYmVUb1RocmVhZCh0aGlzLmFjdGl2ZVRocmVhZC5pZClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxuICAgICAgICAuc3Vic2NyaWJlKFxuICAgICAgICAgICh7IHR5cGUsIGRhdGEgfTogeyB0eXBlOiBXZWJTb2NrZXRNZXNzYWdlVHlwZTsgZGF0YTogTWVzc2FnZSB9KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhbmRsZVRocmVhZEV2ZW50KHR5cGUsIGRhdGEpO1xuICAgICAgICAgICAgdGhpcy50aHJlYWRFdmVudFN1YmplY3QubmV4dCh7IHR5cGUsIGRhdGEgfSk7XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbGxlY3RDb250ZXh0KHJlZmVyZW5jZXM6IENvbnRleHRSZWZlcmVuY2VbXSkge1xuICAgIGlmICghcmVmZXJlbmNlcz8ubGVuZ3RoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHNlZW5JZHMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICByZWZlcmVuY2VzLmZvckVhY2goKHJlZikgPT4ge1xuICAgICAgaWYgKChyZWYucmVzb3VyY2VUeXBlIGFzIHN0cmluZykgPT09ICdkb2N1bWVudCcpIHtcbiAgICAgICAgcmVmLnJlc291cmNlVHlwZSA9ICdjb250ZW50JztcbiAgICAgIH1cbiAgICAgIGlmICghc2Vlbklkcy5oYXMocmVmLmlkKSkge1xuICAgICAgICByZWYuZmlyc3RPY2N1cnJlbmNlID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIHNlZW5JZHMuYWRkKHJlZi5pZCk7XG4gICAgfSk7XG4gICAgY29uc3QgcmVmcyA9IHJlZmVyZW5jZXMuZmlsdGVyKChyZWYpID0+IHJlZi5maXJzdE9jY3VycmVuY2UpO1xuICAgIHRoaXMuY29udGV4dFNlcnZpY2UubG9hZFJlZmVyZW5jZXMocmVmcyk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVRocmVhZEV2ZW50KHR5cGU6IFdlYlNvY2tldE1lc3NhZ2VUeXBlLCBtZXNzYWdlOiBNZXNzYWdlKSB7XG4gICAgaWYgKHR5cGUgPT09IFdlYlNvY2tldE1lc3NhZ2VUeXBlLkFJX1BST0NFU1NJTkcpIHtcbiAgICAgIC8vIE1lc3NhZ2UgaXMgYmVpbmcgcHJvY2Vzc2VkXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBXZWJTb2NrZXRNZXNzYWdlVHlwZS5BSV9NRVNTQUdFKSB7XG4gICAgICAvLyBNZXNzYWdlIHJlY2VpdmVkXG4gICAgICB0aGlzLnVwZGF0ZU1lc3NhZ2UobWVzc2FnZSk7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBXZWJTb2NrZXRNZXNzYWdlVHlwZS5BSV9QQVJUSUFMX01FU1NBR0UpIHtcbiAgICAgIC8vIE1lc3NhZ2UgRGVsdGEgcmVjZWl2ZWRcbiAgICAgIHRoaXMudXBkYXRlUGFydGlhbE1lc3NhZ2UobWVzc2FnZSBhcyBBc3Npc3RhbnRNZXNzYWdlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGUgPT09IFdlYlNvY2tldE1lc3NhZ2VUeXBlLkFJX0NPTVBMRVRFKSB7XG4gICAgICAvLyBNZXNzYWdlIHByb2Nlc3NpbmcgaXMgY29tcGxldGVcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmICh0eXBlID09PSBXZWJTb2NrZXRNZXNzYWdlVHlwZS5BSV9BQk9SVEVEKSB7XG4gICAgICAvLyBNZXNzYWdlIHByb2Nlc3Npbmcgd2FzIGFib3J0ZWRcbiAgICAgIHRoaXMuaXNQcm9jZXNzaW5nID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHR5cGUgPT09IFdlYlNvY2tldE1lc3NhZ2VUeXBlLkFJX0ZBSUxFRF9UT19QUk9DRVNTIHx8XG4gICAgICB0eXBlID09PSBXZWJTb2NrZXRNZXNzYWdlVHlwZS5BSV9JTlZBTElEX01FU1NBR0VcbiAgICApIHtcbiAgICAgIC8vIE1lc3NhZ2UgcHJvY2Vzc2luZyBmYWlsZWQgb3IgbWVzc2FnZSBpcyBpbnZhbGlkXG4gICAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IGZhbHNlO1xuICAgICAgY29uc29sZS5lcnJvcihtZXNzYWdlKTtcbiAgICAgIHRoaXMudXBkYXRlTWVzc2FnZSh7XG4gICAgICAgIGlkOiBnbG9iYWxUaGlzLmNyeXB0by5yYW5kb21VVUlEKCksXG4gICAgICAgIHRocmVhZDogdGhpcy5hY3RpdmVUaHJlYWQuaWQsXG4gICAgICAgIHJvbGU6ICdhc3Npc3RhbnQnLFxuICAgICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgICAgICBjb250ZW50OiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKFxuICAgICAgICAgICdhaS5mYWlsZWRfdG9fcHJvY2Vzc19tZXNzYWdlJyxcbiAgICAgICAgKSxcbiAgICAgICAgZmluaXNoUmVhc29uOiAnZXJyb3InLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGlnbm9yZSBldmVudFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTWVzc2FnZShtZXNzYWdlOiBNZXNzYWdlKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9tZXNzYWdlcy5maW5kSW5kZXgoXG4gICAgICAobSkgPT5cbiAgICAgICAgKG0uaWQgJiYgbS5pZCA9PT0gbWVzc2FnZS5pZCkgfHxcbiAgICAgICAgKG0ucmVzcG9uc2VJZCAmJiBtLnJlc3BvbnNlSWQgPT09IG1lc3NhZ2UucmVzcG9uc2VJZCksXG4gICAgKTtcbiAgICBsZXQgbmV3TWVzc2FnZTogQ2hhdE1lc3NhZ2U7XG5cbiAgICBpZiAobWVzc2FnZS5yb2xlID09PSAnYXNzaXN0YW50Jykge1xuICAgICAgbmV3TWVzc2FnZSA9IHsgLi4ubWVzc2FnZSB9IGFzIEFzc2lzdGFudE1lc3NhZ2U7XG4gICAgICBpZiAobWVzc2FnZS5jb250ZW50KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgbmV3TWVzc2FnZS5wYXJzZWRDb250ZW50ID0gSlNPTi5wYXJzZShcbiAgICAgICAgICAgIHVudHJ1bmNhdGVKc29uKG1lc3NhZ2UuY29udGVudCksXG4gICAgICAgICAgKTtcbiAgICAgICAgfSBjYXRjaCAoXykge1xuICAgICAgICAgIG5ld01lc3NhZ2UucGFyc2VkQ29udGVudCA9IHtcbiAgICAgICAgICAgIHJlc3BvbnNlOiBtZXNzYWdlLmNvbnRlbnQsXG4gICAgICAgICAgICByZWZlcmVuY2VzOiBbXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIG5ld01lc3NhZ2UgPSB0aGlzLnByZXR0aWZ5TWVzc2FnZShuZXdNZXNzYWdlKTtcbiAgICAgICAgdGhpcy5jb2xsZWN0Q29udGV4dChuZXdNZXNzYWdlLnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAobWVzc2FnZS5yb2xlID09PSAndXNlcicpIHtcbiAgICAgIGlmIChtZXNzYWdlLmNvbnRlbnQpIHtcbiAgICAgICAgbmV3TWVzc2FnZSA9IHsgLi4ubWVzc2FnZSB9IGFzIFVzZXJNZXNzYWdlO1xuICAgICAgICBuZXdNZXNzYWdlID0gdGhpcy5wcmV0dGlmeU1lc3NhZ2UobmV3TWVzc2FnZSk7XG4gICAgICAgIHRoaXMuY29sbGVjdENvbnRleHQobmV3TWVzc2FnZS5wYXJzZWRDb250ZW50Py5yZWZlcmVuY2VzKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5fbWVzc2FnZXNbaW5kZXhdID0gbmV3TWVzc2FnZSB8fCBtZXNzYWdlOyAvLyB1cGRhdGUgbWVzc2FnZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9tZXNzYWdlcy5wdXNoKG5ld01lc3NhZ2UgfHwgbWVzc2FnZSk7IC8vIGFkZCBtZXNzYWdlXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVQYXJ0aWFsTWVzc2FnZShtZXNzYWdlOiBBc3Npc3RhbnRNZXNzYWdlKSB7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLl9tZXNzYWdlcy5maW5kSW5kZXgoXG4gICAgICAobSkgPT4gbS5yZXNwb25zZUlkICYmIG0ucmVzcG9uc2VJZCA9PT0gbWVzc2FnZS5yZXNwb25zZUlkLFxuICAgICk7XG4gICAgaWYgKGluZGV4ID09PSAtMSkge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlTWVzc2FnZShtZXNzYWdlKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXdNZXNzYWdlID0geyAuLi50aGlzLl9tZXNzYWdlc1tpbmRleF0gfSBhcyBBc3Npc3RhbnRNZXNzYWdlO1xuXG4gICAgbmV3TWVzc2FnZS5jb250ZW50ID0gbmV3TWVzc2FnZS5jb250ZW50ICsgbWVzc2FnZS5jb250ZW50O1xuICAgIHRyeSB7XG4gICAgICBuZXdNZXNzYWdlLnBhcnNlZENvbnRlbnQgPSBKU09OLnBhcnNlKHVudHJ1bmNhdGVKc29uKG5ld01lc3NhZ2UuY29udGVudCkpO1xuICAgICAgdGhpcy5jb2xsZWN0Q29udGV4dChuZXdNZXNzYWdlLnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXMpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIG5ld01lc3NhZ2UucGFyc2VkQ29udGVudCA9IHtcbiAgICAgICAgcmVzcG9uc2U6IG5ld01lc3NhZ2UuY29udGVudCxcbiAgICAgICAgcmVmZXJlbmNlczogW10sXG4gICAgICB9O1xuICAgIH1cbiAgICB0aGlzLl9tZXNzYWdlc1tpbmRleF0gPSBuZXdNZXNzYWdlO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmV0dGlmeU1lc3NhZ2UoXG4gICAgbWVzc2FnZTogVXNlck1lc3NhZ2UgfCBBc3Npc3RhbnRNZXNzYWdlLFxuICApOiBVc2VyTWVzc2FnZSB8IEFzc2lzdGFudE1lc3NhZ2Uge1xuICAgIG1lc3NhZ2UucGFyc2VkQ29udGVudCA9IHRoaXMucmVwbGFjZUlkcyhtZXNzYWdlKTtcbiAgICBtZXNzYWdlLnBhcnNlZENvbnRlbnQucmVzcG9uc2UgPSB0aGlzLnJlcGxhY2VKc29uV2l0aE1kVGFibGUoXG4gICAgICBtZXNzYWdlLnBhcnNlZENvbnRlbnQucmVzcG9uc2UsXG4gICAgKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBsYWNlIElEcyBpbiB0aGUgbWVzc2FnZSBjb250ZW50IHdpdGggYSBtb3JlIHJlYWRhYmxlIGZvcm1hdCwgd2hpY2ggY2FuIGJlIHByb2Nlc3NlZCB0byBwcm9wZXJseSBpZGVudGlmeSByZWZlcmVuY2VzLlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgbWVzc2FnZSB0byBwcm9jZXNzLlxuICAgKiBAcmV0dXJucyBUaGUgcHJvY2Vzc2VkIG1lc3NhZ2UgY29udGVudC5cbiAgICovXG4gIHByaXZhdGUgcmVwbGFjZUlkcyhtZXNzYWdlOiBVc2VyTWVzc2FnZSB8IEFzc2lzdGFudE1lc3NhZ2UpOiBNZXNzYWdlQ29udGVudCB7XG4gICAgbGV0IHJlc3BvbnNlOiBzdHJpbmcgPVxuICAgICAgbWVzc2FnZS5wYXJzZWRDb250ZW50Py5yZXNwb25zZSB8fCBtZXNzYWdlLmNvbnRlbnQgfHwgJyc7XG4gICAgY29uc3QgcmVmZXJlbmNlczogQ29udGV4dFJlZmVyZW5jZVtdID1cbiAgICAgIG1lc3NhZ2UucGFyc2VkQ29udGVudD8ucmVmZXJlbmNlcyB8fCBbXTtcbiAgICBjb25zdCBicmFja2V0ZWRJZFJlZ0V4cCA9IC9cXCgoW2lJXVtkRF0pOj9bIFxcdF0qJz8oWzAtOWEtZkEtRl17MjR9KSc/XFwpL2c7XG4gICAgY29uc3QgdW5icmFja2V0ZWRJZFJlZ0V4cCA9IC8oW2lJXVtkRF0pWyBcXHRdKyc/KFswLTlhLWZBLUZdezI0fSknPy9nO1xuICAgIGxldCBpbmRleCA9IG1lc3NhZ2UucGFyc2VkQ29udGVudD8ucmVmZXJlbmNlcz8ubGVuZ3RoICsgMSB8fCAxO1xuXG4gICAgcmVzcG9uc2UgPSByZXNwb25zZS5yZXBsYWNlKGJyYWNrZXRlZElkUmVnRXhwLCAobWF0Y2gsIGlkVGV4dCwgaWQpID0+IHtcbiAgICAgIGNvbnN0IGJlZm9yZSA9IHJlc3BvbnNlLnNsaWNlKDAsIHJlc3BvbnNlLmluZGV4T2YobWF0Y2gpKTtcbiAgICAgIGNvbnN0IGxhc3RLZXl3b3JkQ2hlY2sgPSB0aGlzLmNoZWNrTGFzdEtleXdvcmQoYmVmb3JlKTtcblxuICAgICAgaWYgKGxhc3RLZXl3b3JkQ2hlY2sgJiYgbGFzdEtleXdvcmRDaGVjay5sYXN0S2V5d29yZCA9PT0gJ0Fzc2V0Jykge1xuICAgICAgICByZWZlcmVuY2VzLnB1c2goeyBpZCwgcmVzb3VyY2VUeXBlOiAnYXNzZXQnLCByZWZlcmVuY2VfaWQ6IGluZGV4KysgfSk7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH0gZWxzZSBpZiAobGFzdEtleXdvcmRDaGVjayAmJiBsYXN0S2V5d29yZENoZWNrLmxhc3RLZXl3b3JkID09PSAnVHlwJykge1xuICAgICAgICByZWZlcmVuY2VzLnB1c2goe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogJ2Fzc2V0LXR5cGUnLFxuICAgICAgICAgIHJlZmVyZW5jZV9pZDogaW5kZXgrKyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiAnJztcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGBbWyR7aWR9XV1gO1xuICAgIH0pO1xuXG4gICAgcmVzcG9uc2UgPSByZXNwb25zZS5yZXBsYWNlKHVuYnJhY2tldGVkSWRSZWdFeHAsIChtYXRjaCwgaWRUZXh0LCBpZCkgPT4ge1xuICAgICAgY29uc3QgYmVmb3JlID0gcmVzcG9uc2Uuc2xpY2UoMCwgcmVzcG9uc2UuaW5kZXhPZihtYXRjaCkpO1xuICAgICAgY29uc3QgbGFzdEtleXdvcmRDaGVjayA9IHRoaXMuY2hlY2tMYXN0S2V5d29yZChiZWZvcmUpO1xuXG4gICAgICBpZiAobGFzdEtleXdvcmRDaGVjayAmJiBsYXN0S2V5d29yZENoZWNrLmxhc3RLZXl3b3JkID09PSAnQXNzZXQnKSB7XG4gICAgICAgIHJlZmVyZW5jZXMucHVzaCh7IGlkLCByZXNvdXJjZVR5cGU6ICdhc3NldCcsIHJlZmVyZW5jZV9pZDogaW5kZXgrKyB9KTtcbiAgICAgICAgcmV0dXJuIGlkVGV4dDtcbiAgICAgIH0gZWxzZSBpZiAobGFzdEtleXdvcmRDaGVjayAmJiBsYXN0S2V5d29yZENoZWNrLmxhc3RLZXl3b3JkID09PSAnVHlwJykge1xuICAgICAgICByZWZlcmVuY2VzLnB1c2goe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHJlc291cmNlVHlwZTogJ2Fzc2V0LXR5cGUnLFxuICAgICAgICAgIHJlZmVyZW5jZV9pZDogaW5kZXgrKyxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBpZFRleHQ7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBpZFRleHQ7XG4gICAgfSk7XG5cbiAgICByZXR1cm4geyByZXNwb25zZSwgcmVmZXJlbmNlcyB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHRoZSBsYXN0IGtleXdvcmQgaW4gdGhlIHN0cmluZyBpcyAnQXNzZXQnIG9yICdUeXAnLlxuICAgKiBAcGFyYW0gc3RyIFRoZSBzdHJpbmcgdG8gY2hlY2suXG4gICAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIHRoZSBsYXN0IGtleXdvcmQgYW5kIGl0cyBpbmRleCwgb3IgbnVsbCBpZiBuZWl0aGVyIGlzIGZvdW5kLlxuICAgKi9cbiAgcHJpdmF0ZSBjaGVja0xhc3RLZXl3b3JkKFxuICAgIHN0cjogc3RyaW5nLFxuICApOiB7IGxhc3RLZXl3b3JkOiBzdHJpbmc7IHJlc3VsdDogbnVtYmVyIH0gfCBudWxsIHtcbiAgICBjb25zdCBsb3dlclN0ciA9IHN0ci50b0xvd2VyQ2FzZSgpO1xuICAgIGNvbnN0IHR5cFZhcmlhbnRzID0gW1xuICAgICAgJ3R5cCcsXG4gICAgICAndHlwZScsXG4gICAgICAnYXNzZXR0eXBlJyxcbiAgICAgICdhc3NldHR5cCcsXG4gICAgICAnYXNzZXQtdHlwZScsXG4gICAgICAnYXNzZXQtdHlwJyxcbiAgICBdO1xuICAgIGNvbnN0IGxhc3RUeXBJbmRleCA9IE1hdGgubWF4KFxuICAgICAgLi4udHlwVmFyaWFudHMubWFwKCh2KSA9PiBsb3dlclN0ci5sYXN0SW5kZXhPZih2KSksXG4gICAgKTtcbiAgICBjb25zdCBsYXN0QXNzZXRJbmRleCA9IGxvd2VyU3RyLmxhc3RJbmRleE9mKCdhc3NldCcpO1xuXG4gICAgaWYgKGxhc3RUeXBJbmRleCA9PT0gLTEgJiYgbGFzdEFzc2V0SW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9IGVsc2UgaWYgKGxhc3RBc3NldEluZGV4ID4gbGFzdFR5cEluZGV4KSB7XG4gICAgICByZXR1cm4geyBsYXN0S2V5d29yZDogJ0Fzc2V0JywgcmVzdWx0OiBsYXN0QXNzZXRJbmRleCB9O1xuICAgIH0gZWxzZSBpZiAobGFzdFR5cEluZGV4ICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHsgbGFzdEtleXdvcmQ6ICdUeXAnLCByZXN1bHQ6IGxhc3RUeXBJbmRleCB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBQcmV0dGlmeSBKU09OIHN0cmluZ3MgaW4gbWVzc2FnZXMgYnkgY29udmVydGluZyB0aGVtIHRvIGEgTWFya2Rvd24gdGFibGUuXG4gICAqIEBwYXJhbSBjb250ZW50IFRoZSBjb250ZW50IG9mIHRoZSBtZXNzYWdlLlxuICAgKiBAcmV0dXJucyBUaGUgcHJldHRpZmllZCBjb250ZW50LlxuICAgKi9cbiAgcHJpdmF0ZSByZXBsYWNlSnNvbldpdGhNZFRhYmxlKGNvbnRlbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QganNvblJlZ0V4cCA9XG4gICAgICAvKGBgYGpzb24pP1xccyooYGBgKT8oXFx7XFxzKigoXCJbXlwiXSpcIlxccyo6XFxzKlwiW15cIl0qXCJcXHMqKShcXHMqLFxccypcIlteXCJdKlwiXFxzKjpcXHMqXCJbXlwiXSpcIlxccyopKilcXH0pXFxzKihgYGApPy87XG4gICAgaWYgKGpzb25SZWdFeHAudGVzdChjb250ZW50KSkge1xuICAgICAgd2hpbGUgKGpzb25SZWdFeHAudGVzdChjb250ZW50KSkge1xuICAgICAgICBjb25zdCBtYXRjaCA9IGpzb25SZWdFeHAuZXhlYyhjb250ZW50KTtcbiAgICAgICAgY29uc3QgZmlyc3QgPSBtYXRjaC5pbmRleDtcbiAgICAgICAgY29uc3QgbGFzdCA9IG1hdGNoLmluZGV4ICsgbWF0Y2hbMF0ubGVuZ3RoIC0gMTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBqc29uU3RyaW5nID0gbWF0Y2hbM107XG4gICAgICAgICAgY29uc3QganNvbk9iaiA9IEpTT04ucGFyc2UoanNvblN0cmluZyk7XG4gICAgICAgICAgbGV0IG1hcmtkb3duVGFibGUgPSAnXFxuXFxufCB8IHxcXG58IC0tLSB8IC0tLSB8XFxuJztcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBqc29uT2JqKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGpzb25PYmosIGtleSkpIHtcbiAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBTdHJpbmcoanNvbk9ialtrZXldKS5yZXBsYWNlKC9cXHwvZywgJ1xcXFx8Jyk7XG4gICAgICAgICAgICAgIG1hcmtkb3duVGFibGUgKz0gYHwgKioke2tleX0qKiB8ICR7dmFsdWV9IHxcXG5gO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICBtYXJrZG93blRhYmxlICs9ICdcXG4nO1xuICAgICAgICAgIGNvbnN0IHBhcnRPbmUgPSBjb250ZW50LnNsaWNlKDAsIGZpcnN0KTtcbiAgICAgICAgICBjb25zdCBwYXJ0VHdvID0gY29udGVudC5zbGljZShsYXN0ICsgMSk7XG4gICAgICAgICAgY29udGVudCA9IHBhcnRPbmUgKyBtYXJrZG93blRhYmxlICsgcGFydFR3bztcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBjb250ZW50O1xuICB9XG5cbiAgcmV0cnlNZXNzYWdlKG1lc3NhZ2U6IEFzc2lzdGFudE1lc3NhZ2UpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhbWVzc2FnZSB8fFxuICAgICAgIXRoaXMuYWN0aXZlVGhyZWFkPy5pZCB8fFxuICAgICAgdGhpcy5pc1Byb2Nlc3NpbmcgfHxcbiAgICAgIG1lc3NhZ2Uucm9sZSAhPT0gJ2Fzc2lzdGFudCdcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzUHJvY2Vzc2luZyA9IHRydWU7XG4gICAgdGhpcy5fbWVzc2FnZXMgPSB0aGlzLl9tZXNzYWdlcy5maWx0ZXIoKG0pID0+IG0uaWQgIT09IG1lc3NhZ2UuaWQpO1xuXG4gICAgdGhpcy5zb2NrZXQuZW1pdFJldHJ5KHRoaXMuYWN0aXZlVGhyZWFkLmlkLCBtZXNzYWdlLmlkKTtcbiAgfVxufVxuXG5pbnRlcmZhY2UgTWVzc2FnZUNvbnRlbnQge1xuICByZXNwb25zZTogc3RyaW5nO1xuICByZWZlcmVuY2VzOiBDb250ZXh0UmVmZXJlbmNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzaXN0YW50TWVzc2FnZSBleHRlbmRzIEFpQXNzaXN0YW50TWVzc2FnZSB7XG4gIHJvbGU6ICdhc3Npc3RhbnQnO1xuICBwYXJzZWRDb250ZW50PzogTWVzc2FnZUNvbnRlbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlck1lc3NhZ2UgZXh0ZW5kcyBBaVVzZXJNZXNzYWdlIHtcbiAgcm9sZTogJ3VzZXInO1xuICBwYXJzZWRDb250ZW50PzogTWVzc2FnZUNvbnRlbnQ7XG59XG5cbmV4cG9ydCB0eXBlIENoYXRNZXNzYWdlID1cbiAgfCBBc3Npc3RhbnRNZXNzYWdlXG4gIHwgU3lzdGVtTWVzc2FnZVxuICB8IFRvb2xNZXNzYWdlXG4gIHwgVXNlck1lc3NhZ2U7XG5cbmV4cG9ydCBlbnVtIFdlYlNvY2tldE1lc3NhZ2VUeXBlIHtcbiAgQUlfQUJPUlRFRCA9ICdhaV9hYm9ydGVkJyxcbiAgQUlfQUJPUlRfRkFJTEVEID0gJ2FpX2Fib3J0X2ZhaWxlZCcsXG4gIEFJX0NPTVBMRVRFID0gJ2FpX2NvbXBsZXRlJyxcbiAgQUlfRkFJTEVEX1RPX1BST0NFU1MgPSAnYWlfZmFpbGVkX3RvX3Byb2Nlc3MnLFxuICBBSV9JTlZBTElEX01FU1NBR0UgPSAnYWlfaW52YWxpZF9tZXNzYWdlJyxcbiAgQUlfTUVTU0FHRSA9ICdhaV9tZXNzYWdlJyxcbiAgQUlfUEFSVElBTF9NRVNTQUdFID0gJ2FpX3BhcnRpYWxfbWVzc2FnZScsXG4gIEFJX1BST0NFU1NJTkcgPSAnYWlfcHJvY2Vzc2luZycsXG59XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { AudioConfig, SpeechConfig, SpeechRecognizer, } from '@hahnpro/ms-speech-sdk';\nimport { Subject } from 'rxjs';\nimport { ApiService } from '../core/api.service';\nimport * as i0 from \"@angular/core\";\nexport class VoiceRecognitionService {\n _isListening = false;\n recognizer;\n tokenExpiration = 0;\n _preResult$ = new Subject();\n _result$ = new Subject();\n audioConfig = AudioConfig.fromDefaultMicrophoneInput();\n apiService = inject(ApiService);\n get isInitialized() {\n return !!this.recognizer;\n }\n get isListening() {\n return this._isListening;\n }\n get isTokenExpired() {\n const currentTime = Math.floor(Date.now() / 1000);\n const bufferTime = 180; // 3 min\n return currentTime + bufferTime >= this.tokenExpiration;\n }\n get preResult$() {\n return this._preResult$.asObservable();\n }\n get result$() {\n return this._result$.asObservable();\n }\n async start(language) {\n if (!this.isInitialized || this.isTokenExpired) {\n await this.init(language).catch((err) => console.error(err));\n }\n this.recognizer?.startContinuousRecognitionAsync(() => { }, (err) => console.error(err));\n }\n async stop() {\n this.recognizer?.stopContinuousRecognitionAsync(() => (this._isListening = false), (err) => {\n console.error(err);\n this._isListening = false;\n this.recognizer.close();\n this.recognizer = null;\n });\n }\n async toggle(language) {\n if (this.isListening) {\n await this.stop();\n }\n else {\n await this.start(language);\n }\n }\n parseJwtToken(token) {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = atob(base64);\n const payload = JSON.parse(jsonPayload);\n return payload.exp || 0;\n }\n catch (error) {\n console.error('Error parsing JWT token:', error);\n return 0;\n }\n }\n async init(language = 'de-DE') {\n const { token, region } = await this.apiService.getSpeechToken();\n this.tokenExpiration = this.parseJwtToken(token);\n const speechConfig = SpeechConfig.fromAuthorizationToken(token, region);\n speechConfig.speechRecognitionLanguage = language;\n this.recognizer = new SpeechRecognizer(speechConfig, this.audioConfig);\n this.recognizer.recognized = (_sender, event) => {\n if (event.result.text) {\n this._result$.next(event.result.text);\n }\n };\n this.recognizer.recognizing = (_sender, event) => {\n if (event.result.text) {\n this._preResult$.next(event.result.text);\n }\n };\n this.recognizer.sessionStarted = (_sender, _event) => {\n this._isListening = true;\n };\n this.recognizer.sessionStopped = (_sender, _event) => {\n this._isListening = false;\n };\n this.recognizer.canceled = (_sender, event) => {\n this._isListening = false;\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: VoiceRecognitionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: VoiceRecognitionService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: VoiceRecognitionService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidm9pY2UtcmVjb2duaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL3ZvaWNlLXJlY29nbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUNMLFdBQVcsRUFHWCxZQUFZLEVBR1osZ0JBQWdCLEdBQ2pCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBR2pELE1BQU0sT0FBTyx1QkFBdUI7SUFDMUIsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixVQUFVLENBQW1CO0lBQzdCLGVBQWUsR0FBRyxDQUFDLENBQUM7SUFDWCxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNwQyxRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNqQyxXQUFXLEdBQUcsV0FBVyxDQUFDLDBCQUEwQixFQUFFLENBQUM7SUFDdkQsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUVqRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUNsRCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBQyxRQUFRO1FBQ2hDLE9BQU8sV0FB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LENBQUM7dUdBcEhVLHVCQUF1QjsyR0FBdkIsdUJBQXVCLGNBRFYsTUFBTTs7MkZBQ25CLHVCQUF1QjtrQkFEbkMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEF1ZGlvQ29uZmlnLFxuICBSZWNvZ25pemVyLFxuICBTZXNzaW9uRXZlbnRBcmdzLFxuICBTcGVlY2hDb25maWcsXG4gIFNwZWVjaFJlY29nbml0aW9uQ2FuY2VsZWRFdmVudEFyZ3MsXG4gIFNwZWVjaFJlY29nbml0aW9uRXZlbnRBcmdzLFxuICBTcGVlY2hSZWNvZ25pemVyLFxufSBmcm9tICdAaGFobnByby9tcy1zcGVlY2gtc2RrJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFwaVNlcnZpY2UgfSBmcm9tICcuLi9jb3JlL2FwaS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBWb2ljZVJlY29nbml0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgX2lzTGlzdGVuaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgcmVjb2duaXplcjogU3BlZWNoUmVjb2duaXplcjtcbiAgcHJpdmF0ZSB0b2tlbkV4cGlyYXRpb24gPSAwO1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcmVSZXN1bHQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IF9yZXN1bHQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1ZGlvQ29uZmlnID0gQXVkaW9Db25maWcuZnJvbURlZmF1bHRNaWNyb3Bob25lSW5wdXQoKTtcbiAgcHJpdmF0ZSByZWFkb25seSBhcGlTZXJ2aWNlID0gaW5qZWN0KEFwaVNlcnZpY2UpO1xuXG4gIGdldCBpc0luaXRpYWxpemVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMucmVjb2duaXplcjtcbiAgfVxuXG4gIGdldCBpc0xpc3RlbmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5faXNMaXN0ZW5pbmc7XG4gIH1cblxuICBnZXQgaXNUb2tlbkV4cGlyZWQoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgY3VycmVudFRpbWUgPSBNYXRoLmZsb29yKERhdGUubm93KCkgLyAxMDAwKTtcbiAgICBjb25zdCBidWZmZXJUaW1lID0gMTgwOyAvLyAzIG1pblxuICAgIHJldHVybiBjdXJyZW50VGltZSArIGJ1ZmZlclRpbWUgPj0gdGhpcy50b2tlbkV4cGlyYXRpb247XG4gIH1cblxuICBnZXQgcHJlUmVzdWx0JCgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgIHJldHVybiB0aGlzLl9wcmVSZXN1bHQkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgZ2V0IHJlc3VsdCQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5fcmVzdWx0JC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KGxhbmd1YWdlPzogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmlzSW5pdGlhbGl6ZWQgfHwgdGhpcy5pc1Rva2VuRXhwaXJlZCkge1xuICAgICAgYXdhaXQgdGhpcy5pbml0KGxhbmd1YWdlKS5jYXRjaCgoZXJyKSA9PiBjb25zb2xlLmVycm9yKGVycikpO1xuICAgIH1cbiAgICB0aGlzLnJlY29nbml6ZXI/LnN0YXJ0Q29udGludW91c1JlY29nbml0aW9uQXN5bmMoXG4gICAgICAoKSA9PiB7fSxcbiAgICAgIChlcnIpID0+IGNvbnNvbGUuZXJyb3IoZXJyKSxcbiAgICApO1xuICB9XG5cbiAgYXN5bmMgc3RvcCgpIHtcbiAgICB0aGlzLnJlY29nbml6ZXI/LnN0b3BDb250aW51b3VzUmVjb2duaXRpb25Bc3luYyhcbiAgICAgICgpID0+ICh0aGlzLl9pc0xpc3RlbmluZyA9IGZhbHNlKSxcbiAgICAgIChlcnIpID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICB0aGlzLl9pc0xpc3RlbmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLnJlY29nbml6ZXIuY2xvc2UoKTtcbiAgICAgICAgdGhpcy5yZWNvZ25pemVyID0gbnVsbDtcbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIHRvZ2dsZShsYW5ndWFnZT86IHN0cmluZykge1xuICAgIGlmICh0aGlzLmlzTGlzdGVuaW5nKSB7XG4gICAgICBhd2FpdCB0aGlzLnN0b3AoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYXdhaXQgdGhpcy5zdGFydChsYW5ndWFnZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZUp3dFRva2VuKHRva2VuOiBzdHJpbmcpOiBudW1iZXIge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBiYXNlNjRVcmwgPSB0b2tlbi5zcGxpdCgnLicpWzFdO1xuICAgICAgY29uc3QgYmFzZTY0ID0gYmFzZTY0VXJsLnJlcGxhY2UoLy0vZywgJysnKS5yZXBsYWNlKC9fL2csICcvJyk7XG4gICAgICBjb25zdCBqc29uUGF5bG9hZCA9IGF0b2IoYmFzZTY0KTtcbiAgICAgIGNvbnN0IHBheWxvYWQgPSBKU09OLnBhcnNlKGpzb25QYXlsb2FkKTtcbiAgICAgIHJldHVybiBwYXlsb2FkLmV4cCB8fCAwO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIEpXVCB0b2tlbjonLCBlcnJvcik7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGluaXQobGFuZ3VhZ2UgPSAnZGUtREUnKSB7XG4gICAgY29uc3QgeyB0b2tlbiwgcmVnaW9uIH0gPSBhd2FpdCB0aGlzLmFwaVNlcnZpY2UuZ2V0U3BlZWNoVG9rZW4oKTtcbiAgICB0aGlzLnRva2VuRXhwaXJhdGlvbiA9IHRoaXMucGFyc2VKd3RUb2tlbih0b2tlbik7XG5cbiAgICBjb25zdCBzcGVlY2hDb25maWcgPSBTcGVlY2hDb25maWcuZnJvbUF1dGhvcml6YXRpb25Ub2tlbih0b2tlbiwgcmVnaW9uKTtcbiAgICBzcGVlY2hDb25maWcuc3BlZWNoUmVjb2duaXRpb25MYW5ndWFnZSA9IGxhbmd1YWdlO1xuXG4gICAgdGhpcy5yZWNvZ25pemVyID0gbmV3IFNwZWVjaFJlY29nbml6ZXIoc3BlZWNoQ29uZmlnLCB0aGlzLmF1ZGlvQ29uZmlnKTtcbiAgICB0aGlzLnJlY29nbml6ZXIucmVjb2duaXplZCA9IChcbiAgICAgIF9zZW5kZXI6IFJlY29nbml6ZXIsXG4gICAgICBldmVudDogU3BlZWNoUmVjb2duaXRpb25FdmVudEFyZ3MsXG4gICAgKSA9PiB7XG4gICAgICBpZiAoZXZlbnQucmVzdWx0LnRleHQpIHtcbiAgICAgICAgdGhpcy5fcmVzdWx0JC5uZXh0KGV2ZW50LnJlc3VsdC50ZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMucmVjb2duaXplci5yZWNvZ25pemluZyA9IChcbiAgICAgIF9zZW5kZXI6IFJlY29nbml6ZXIsXG4gICAgICBldmVudDogU3BlZWNoUmVjb2duaXRpb25FdmVudEFyZ3MsXG4gICAgKSA9PiB7XG4gICAgICBpZiAoZXZlbnQucmVzdWx0LnRleHQpIHtcbiAgICAgICAgdGhpcy5fcHJlUmVzdWx0JC5uZXh0KGV2ZW50LnJlc3VsdC50ZXh0KTtcbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMucmVjb2duaXplci5zZXNzaW9uU3RhcnRlZCA9IChcbiAgICAgIF9zZW5kZXI6IFJlY29nbml6ZXIsXG4gICAgICBfZXZlbnQ6IFNlc3Npb25FdmVudEFyZ3MsXG4gICAgKSA9PiB7XG4gICAgICB0aGlzLl9pc0xpc3RlbmluZyA9IHRydWU7XG4gICAgfTtcbiAgICB0aGlzLnJlY29nbml6ZXIuc2Vzc2lvblN0b3BwZWQgPSAoXG4gICAgICBfc2VuZGVyOiBSZWNvZ25pemVyLFxuICAgICAgX2V2ZW50OiBTZXNzaW9uRXZlbnRBcmdzLFxuICAgICkgPT4ge1xuICAgICAgdGhpcy5faXNMaXN0ZW5pbmcgPSBmYWxzZTtcbiAgICB9O1xuICAgIHRoaXMucmVjb2duaXplci5jYW5jZWxlZCA9IChcbiAgICAgIF9zZW5kZXI6IFJlY29nbml6ZXIsXG4gICAgICBldmVudDogU3BlZWNoUmVjb2duaXRpb25DYW5jZWxlZEV2ZW50QXJncyxcbiAgICApID0+IHtcbiAgICAgIHRoaXMuX2lzTGlzdGVuaW5nID0gZmFsc2U7XG4gICAgfTtcbiAgfVxufVxuIl19","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { CdkTextareaAutosize, TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport { Component, DestroyRef, ElementRef, inject, Input, ViewChild, } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { IconComponent } from '../../core/icons';\nimport { ChatService } from '../chat.service';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { VoiceRecognitionService } from '../voice-recognition.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nimport * as i3 from \"@angular/material/button\";\nimport * as i4 from \"@angular/material/input\";\nimport * as i5 from \"@angular/material/tooltip\";\nimport * as i6 from \"@jsverse/transloco\";\nexport class MessageInputComponent {\n messageInput;\n startConversation = '';\n chatService = inject(ChatService);\n voiceRecognitionService = inject(VoiceRecognitionService);\n isMobileView;\n message;\n tmpMessage;\n useWebSearch = false;\n destroyRef = inject(DestroyRef);\n lang;\n constructor() {\n const breakpointObserver = inject(BreakpointObserver);\n breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((result) => (this.isMobileView = result.matches));\n }\n ngOnInit() {\n this.lang = 'de';\n this.voiceRecognitionService.preResult$.subscribe((result) => {\n const msg = (this.tmpMessage || '') + ' ' + result;\n this.message = msg.trim();\n });\n this.voiceRecognitionService.result$.subscribe((result) => {\n const msg = (this.tmpMessage || '') + ' ' + result;\n this.message = msg.trim();\n this.tmpMessage = this.message;\n });\n }\n sendMessage() {\n this.message = this.message.trim();\n if (!this.message) {\n return;\n }\n this.chatService.sendMessage(this.message, {\n useWebSearch: this.useWebSearch,\n });\n this.message = '';\n if (this.messageInput) {\n this.messageInput.nativeElement.value = '';\n this.messageInput.nativeElement.focus();\n }\n }\n toggleWebSearch() {\n this.useWebSearch = !this.useWebSearch;\n }\n toggleVoice() {\n this.tmpMessage = this.message;\n const lang = this.lang === 'de' ? 'de-DE' : 'en-US';\n this.voiceRecognitionService.toggle(lang);\n }\n stopVoice() {\n this.voiceRecognitionService.stop();\n }\n abort() {\n this.chatService.abortThread();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MessageInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: MessageInputComponent, isStandalone: true, selector: \"ai-message-input\", inputs: { startConversation: \"startConversation\" }, viewQueries: [{ propertyName: \"messageInput\", first: true, predicate: [\"messageInput\"], descendants: true }], ngImport: i0, template: \"<div\\n class=\\\"mx-auto flex w-full items-end justify-center border bg-zinc-50 py-2 pl-4 pr-2 md:gap-x-2 md:rounded-2xl md:py-4 md:pr-4 lg:max-w-screen-md xl:max-w-screen-lg dark:bg-black\\\"\\n [ngClass]=\\\"{\\n 'border-highlight dark:border-highlight': useWebSearch,\\n 'border-white dark:border-zinc-600/30': !useWebSearch,\\n }\\\"\\n *transloco=\\\"let t\\\"\\n>\\n <textarea\\n class=\\\"w-full md:text-lg md:font-semibold\\\"\\n matInput\\n cdkAutosizeMaxRows=\\\"10\\\"\\n cdkTextareaAutosize\\n [cdkAutosizeMinRows]=\\\"isMobileView ? 2 : 4\\\"\\n [placeholder]=\\\"t('message')\\\"\\n [(ngModel)]=\\\"message\\\"\\n (keydown.enter)=\\\"sendMessage() || $event.preventDefault()\\\"\\n spellcheck=\\\"false\\\"\\n #autosize=\\\"cdkTextareaAutosize\\\"\\n #messageInput\\n ></textarea>\\n <div class=\\\"flex md:flex-col md:gap-2\\\">\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.use_microphone')\\\"\\n matTooltipPosition=\\\"above\\\"\\n [disabled]=\\\"chatService.isProcessing\\\"\\n (click)=\\\"toggleVoice()\\\"\\n >\\n @if (voiceRecognitionService.isListening) {\\n <ai-icon\\n name=\\\"mic_record\\\"\\n size=\\\"24\\\"\\n class=\\\"icon-md text-red-600\\\"\\n ></ai-icon>\\n } @else {\\n <ai-icon name=\\\"mic\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n }\\n </button>\\n @if (!voiceRecognitionService.isListening && !chatService.isProcessing) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.send_message')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"sendMessage()\\\"\\n >\\n <ai-icon name=\\\"send\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n </button>\\n } @else if (voiceRecognitionService.isListening) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.stop_recording')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"stopVoice()\\\"\\n >\\n <ai-icon name=\\\"record_stop\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n </button>\\n } @else if (chatService.isProcessing) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.abort')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"abort()\\\"\\n >\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n size=\\\"24\\\"\\n class=\\\"icon-md text-red-600\\\"\\n ></ai-icon>\\n </button>\\n }\\n </div>\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: CdkTextareaAutosize, selector: \"textarea[cdkTextareaAutosize]\", inputs: [\"cdkAutosizeMinRows\", \"cdkAutosizeMaxRows\", \"cdkTextareaAutosize\", \"placeholder\"], exportAs: [\"cdkTextareaAutosize\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i3.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"directive\", type: i4.MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i5.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"ngmodule\", type: TextFieldModule }, { kind: \"ngmodule\", type: TranslocoModule }, { kind: \"directive\", type: i6.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MessageInputComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n CdkTextareaAutosize,\n FormsModule,\n IconComponent,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n TextFieldModule,\n TranslocoModule,\n ], selector: 'ai-message-input', template: \"<div\\n class=\\\"mx-auto flex w-full items-end justify-center border bg-zinc-50 py-2 pl-4 pr-2 md:gap-x-2 md:rounded-2xl md:py-4 md:pr-4 lg:max-w-screen-md xl:max-w-screen-lg dark:bg-black\\\"\\n [ngClass]=\\\"{\\n 'border-highlight dark:border-highlight': useWebSearch,\\n 'border-white dark:border-zinc-600/30': !useWebSearch,\\n }\\\"\\n *transloco=\\\"let t\\\"\\n>\\n <textarea\\n class=\\\"w-full md:text-lg md:font-semibold\\\"\\n matInput\\n cdkAutosizeMaxRows=\\\"10\\\"\\n cdkTextareaAutosize\\n [cdkAutosizeMinRows]=\\\"isMobileView ? 2 : 4\\\"\\n [placeholder]=\\\"t('message')\\\"\\n [(ngModel)]=\\\"message\\\"\\n (keydown.enter)=\\\"sendMessage() || $event.preventDefault()\\\"\\n spellcheck=\\\"false\\\"\\n #autosize=\\\"cdkTextareaAutosize\\\"\\n #messageInput\\n ></textarea>\\n <div class=\\\"flex md:flex-col md:gap-2\\\">\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.use_microphone')\\\"\\n matTooltipPosition=\\\"above\\\"\\n [disabled]=\\\"chatService.isProcessing\\\"\\n (click)=\\\"toggleVoice()\\\"\\n >\\n @if (voiceRecognitionService.isListening) {\\n <ai-icon\\n name=\\\"mic_record\\\"\\n size=\\\"24\\\"\\n class=\\\"icon-md text-red-600\\\"\\n ></ai-icon>\\n } @else {\\n <ai-icon name=\\\"mic\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n }\\n </button>\\n @if (!voiceRecognitionService.isListening && !chatService.isProcessing) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.send_message')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"sendMessage()\\\"\\n >\\n <ai-icon name=\\\"send\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n </button>\\n } @else if (voiceRecognitionService.isListening) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.stop_recording')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"stopVoice()\\\"\\n >\\n <ai-icon name=\\\"record_stop\\\" size=\\\"24\\\" class=\\\"icon-md\\\"></ai-icon>\\n </button>\\n } @else if (chatService.isProcessing) {\\n <button\\n mat-icon-button\\n [matTooltip]=\\\"t('ai.abort')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"abort()\\\"\\n >\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n size=\\\"24\\\"\\n class=\\\"icon-md text-red-600\\\"\\n ></ai-icon>\\n </button>\\n }\\n </div>\\n</div>\\n\" }]\n }], ctorParameters: () => [], propDecorators: { messageInput: [{\n type: ViewChild,\n args: ['messageInput']\n }], startConversation: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS9tZXNzYWdlLWlucHV0L21lc3NhZ2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvbWVzc2FnZS1pbnB1dC9tZXNzYWdlLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUVMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVB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LE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUNwRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNqQyxDQUFDO3VHQWxFVSxxQkFBcUI7MkZBQXJCLHFCQUFxQiw4T0MxQ2xDLG8wRUF5RUEsMkNEOUNJLFlBQVksNkhBQ1osbUJBQW1CLHdNQUNuQixXQUFXLCttQkFDWCxhQUFhLHNGQUNiLGVBQWUscU5BQ2Ysa0JBQWtCLDhCQUNsQixjQUFjLGlZQUNkLHdCQUF3Qiw4QkFDeEIsZ0JBQWdCLDRUQUNoQixlQUFlLDhCQUNmLGVBQWU7OzJGQUtOLHFCQUFxQjtrQkFqQmpDLFNBQVM7OEJBQ0M7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixlQUFlO3FCQUNoQixZQUNTLGtCQUFrQjt3REFJRCxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBQ1AsaUJBQWlCO3NCQUFsQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQnJlYWtwb2ludE9ic2VydmVyLCBCcmVha3BvaW50cyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9sYXlvdXQnO1xuaW1wb3J0IHsgQ2RrVGV4dGFyZWFBdXRvc2l6ZSwgVGV4dEZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3RleHQtZmllbGQnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRGVzdHJveVJlZixcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB7IFRyYW5zbG9jb01vZHVsZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2ljb25zJztcbmltcG9ydCB7IENoYXRTZXJ2aWNlIH0gZnJvbSAnLi4vY2hhdC5zZXJ2aWNlJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgVm9pY2VSZWNvZ25pdGlvblNlcnZpY2UgfSBmcm9tICcuLi92b2ljZS1yZWNvZ25pdGlvbi5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ2RrVGV4dGFyZWFBdXRvc2l6ZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlLFxuICAgIFRyYW5zbG9jb01vZHVsZSxcbiAgXSxcbiAgc2VsZWN0b3I6ICdhaS1tZXNzYWdlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lc3NhZ2UtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBAVmlld0NoaWxkKCdtZXNzYWdlSW5wdXQnKSBtZXNzYWdlSW5wdXQ6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG4gIEBJbnB1dCgpIHJlYWRvbmx5IHN0YXJ0Q29udmVyc2F0aW9uOiBzdHJpbmcgPSAnJztcbiAgcmVhZG9ubHkgY2hhdFNlcnZpY2UgPSBpbmplY3QoQ2hhdFNlcnZpY2UpO1xuICByZWFkb25seSB2b2ljZVJlY29nbml0aW9uU2VydmljZSA9IGluamVjdChWb2ljZVJlY29nbml0aW9uU2VydmljZSk7XG4gIGlzTW9iaWxlVmlldzogYm9vbGVhbjtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICB0bXBNZXNzYWdlOiBzdHJpbmc7XG4gIHVzZVdlYlNlYXJjaCA9IGZhbHNlO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcHJpdmF0ZSBsYW5nOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgYnJlYWtwb2ludE9ic2VydmVyID0gaW5qZWN0KEJyZWFrcG9pbnRPYnNlcnZlcik7XG5cbiAgICBicmVha3BvaW50T2JzZXJ2ZXJcbiAgICAgIC5vYnNlcnZlKFtCcmVha3BvaW50cy5YU21hbGwsIEJyZWFrcG9pbnRzLlNtYWxsXSlcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgLnN1YnNjcmliZSgocmVzdWx0KSA9PiAodGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQubWF0Y2hlcykpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sYW5nID0gJ2RlJztcbiAgICB0aGlzLnZvaWNlUmVjb2duaXRpb25TZXJ2aWNlLnByZVJlc3VsdCQuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGNvbnN0IG1zZyA9ICh0aGlzLnRtcE1lc3NhZ2UgfHwgJycpICsgJyAnICsgcmVzdWx0O1xuICAgICAgdGhpcy5tZXNzYWdlID0gbXNnLnRyaW0oKTtcbiAgICB9KTtcbiAgICB0aGlzLnZvaWNlUmVjb2duaXRpb25TZXJ2aWNlLnJlc3VsdCQuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgIGNvbnN0IG1zZyA9ICh0aGlzLnRtcE1lc3NhZ2UgfHwgJycpICsgJyAnICsgcmVzdWx0O1xuICAgICAgdGhpcy5tZXNzYWdlID0gbXNnLnRyaW0oKTtcbiAgICAgIHRoaXMudG1wTWVzc2FnZSA9IHRoaXMubWVzc2FnZTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlbmRNZXNzYWdlKCkge1xuICAgIHRoaXMubWVzc2FnZSA9IHRoaXMubWVzc2FnZS50cmltKCk7XG4gICAgaWYgKCF0aGlzLm1lc3NhZ2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jaGF0U2VydmljZS5zZW5kTWVzc2FnZSh0aGlzLm1lc3NhZ2UsIHtcbiAgICAgIHVzZVdlYlNlYXJjaDogdGhpcy51c2VXZWJTZWFyY2gsXG4gICAgfSk7XG4gICAgdGhpcy5tZXNzYWdlID0gJyc7XG4gICAgaWYgKHRoaXMubWVzc2FnZUlucHV0KSB7XG4gICAgICB0aGlzLm1lc3NhZ2VJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gJyc7XG4gICAgICB0aGlzLm1lc3NhZ2VJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlV2ViU2VhcmNoKCkge1xuICAgIHRoaXMudXNlV2ViU2VhcmNoID0gIXRoaXMudXNlV2ViU2VhcmNoO1xuICB9XG5cbiAgdG9nZ2xlVm9pY2UoKSB7XG4gICAgdGhpcy50bXBNZXNzYWdlID0gdGhpcy5tZXNzYWdlO1xuICAgIGNvbnN0IGxhbmcgPSB0aGlzLmxhbmcgPT09ICdkZScgPyAnZGUtREUnIDogJ2VuLVVTJztcbiAgICB0aGlzLnZvaWNlUmVjb2duaXRpb25TZXJ2aWNlLnRvZ2dsZShsYW5nKTtcbiAgfVxuXG4gIHN0b3BWb2ljZSgpIHtcbiAgICB0aGlzLnZvaWNlUmVjb2duaXRpb25TZXJ2aWNlLnN0b3AoKTtcbiAgfVxuXG4gIGFib3J0KCkge1xuICAgIHRoaXMuY2hhdFNlcnZpY2UuYWJvcnRUaHJlYWQoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm14LWF1dG8gZmxleCB3LWZ1bGwgaXRlbXMtZW5kIGp1c3RpZnktY2VudGVyIGJvcmRlciBiZy16aW5jLTUwIHB5LTIgcGwtNCBwci0yIG1kOmdhcC14LTIgbWQ6cm91bmRlZC0yeGwgbWQ6cHktNCBtZDpwci00IGxnOm1heC13LXNjcmVlbi1tZCB4bDptYXgtdy1zY3JlZW4tbGcgZGFyazpiZy1ibGFja1wiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnYm9yZGVyLWhpZ2hsaWdodCBkYXJrOmJvcmRlci1oaWdobGlnaHQnOiB1c2VXZWJTZWFyY2gsXG4gICAgJ2JvcmRlci13aGl0ZSBkYXJrOmJvcmRlci16aW5jLTYwMC8zMCc6ICF1c2VXZWJTZWFyY2gsXG4gIH1cIlxuICAqdHJhbnNsb2NvPVwibGV0IHRcIlxuPlxuICA8dGV4dGFyZWFcbiAgICBjbGFzcz1cInctZnVsbCBtZDp0ZXh0LWxnIG1kOmZvbnQtc2VtaWJvbGRcIlxuICAgIG1hdElucHV0XG4gICAgY2RrQXV0b3NpemVNYXhSb3dzPVwiMTBcIlxuICAgIGNka1RleHRhcmVhQXV0b3NpemVcbiAgICBbY2RrQXV0b3NpemVNaW5Sb3dzXT1cImlzTW9iaWxlVmlldyA/IDIgOiA0XCJcbiAgICBbcGxhY2Vob2xkZXJdPVwidCgnbWVzc2FnZScpXCJcbiAgICBbKG5nTW9kZWwpXT1cIm1lc3NhZ2VcIlxuICAgIChrZXlkb3duLmVudGVyKT1cInNlbmRNZXNzYWdlKCkgfHwgJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxuICAgIHNwZWxsY2hlY2s9XCJmYWxzZVwiXG4gICAgI2F1dG9zaXplPVwiY2RrVGV4dGFyZWFBdXRvc2l6ZVwiXG4gICAgI21lc3NhZ2VJbnB1dFxuICA+PC90ZXh0YXJlYT5cbiAgPGRpdiBjbGFzcz1cImZsZXggbWQ6ZmxleC1jb2wgbWQ6Z2FwLTJcIj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFttYXRUb29sdGlwXT1cInQoJ2FpLnVzZV9taWNyb3Bob25lJylcIlxuICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgW2Rpc2FibGVkXT1cImNoYXRTZXJ2aWNlLmlzUHJvY2Vzc2luZ1wiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlVm9pY2UoKVwiXG4gICAgPlxuICAgICAgQGlmICh2b2ljZVJlY29nbml0aW9uU2VydmljZS5pc0xpc3RlbmluZykge1xuICAgICAgICA8YWktaWNvblxuICAgICAgICAgIG5hbWU9XCJtaWNfcmVjb3JkXCJcbiAgICAgICAgICBzaXplPVwiMjRcIlxuICAgICAgICAgIGNsYXNzPVwiaWNvbi1tZCB0ZXh0LXJlZC02MDBcIlxuICAgICAgICA+PC9haS1pY29uPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxhaS1pY29uIG5hbWU9XCJtaWNcIiBzaXplPVwiMjRcIiBjbGFzcz1cImljb24tbWRcIj48L2FpLWljb24+XG4gICAgICB9XG4gICAgPC9idXR0b24+XG4gICAgQGlmICghdm9pY2VSZWNvZ25pdGlvblNlcnZpY2UuaXNMaXN0ZW5pbmcgJiYgIWNoYXRTZXJ2aWNlLmlzUHJvY2Vzc2luZykge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkuc2VuZF9tZXNzYWdlJylcIlxuICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gICAgICAgIChjbGljayk9XCJzZW5kTWVzc2FnZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGFpLWljb24gbmFtZT1cInNlbmRcIiBzaXplPVwiMjRcIiBjbGFzcz1cImljb24tbWRcIj48L2FpLWljb24+XG4gICAgICA8L2J1dHRvbj5cbiAgICB9IEBlbHNlIGlmICh2b2ljZVJlY29nbml0aW9uU2VydmljZS5pc0xpc3RlbmluZykge1xuICAgICAgPGJ1dHRvblxuICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkuc3RvcF9yZWNvcmRpbmcnKVwiXG4gICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgKGNsaWNrKT1cInN0b3BWb2ljZSgpXCJcbiAgICAgID5cbiAgICAgICAgPGFpLWljb24gbmFtZT1cInJlY29yZF9zdG9wXCIgc2l6ZT1cIjI0XCIgY2xhc3M9XCJpY29uLW1kXCI+PC9haS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgfSBAZWxzZSBpZiAoY2hhdFNlcnZpY2UuaXNQcm9jZXNzaW5nKSB7XG4gICAgICA8YnV0dG9uXG4gICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICBbbWF0VG9vbHRpcF09XCJ0KCdhaS5hYm9ydCcpXCJcbiAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICAoY2xpY2spPVwiYWJvcnQoKVwiXG4gICAgICA+XG4gICAgICAgIDxhaS1pY29uXG4gICAgICAgICAgbmFtZT1cImRpc21pc3NfY2lyY2xlXCJcbiAgICAgICAgICBzaXplPVwiMjRcIlxuICAgICAgICAgIGNsYXNzPVwiaWNvbi1tZCB0ZXh0LXJlZC02MDBcIlxuICAgICAgICA+PC9haS1pY29uPlxuICAgICAgPC9idXR0b24+XG4gICAgfVxuICA8L2Rpdj5cbjwvZGl2PlxuIl19","import { Pipe } from '@angular/core';\nimport prettyBytes from 'pretty-bytes';\nimport * as i0 from \"@angular/core\";\nfunction isNumberFinite(value) {\n return typeof value === 'number' && isFinite(value);\n}\nexport class BytesPipe {\n transform(input) {\n if (!isNumberFinite(input)) {\n return input;\n }\n return prettyBytes(input);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: BytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: BytesPipe, isStandalone: false, name: \"bytes\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: BytesPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'bytes',\n standalone: false,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnl0ZXMucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvcGlwZXMvYnl0ZXMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLFdBQVcsTUFBTSxjQUFjLENBQUM7O0FBRXZDLFNBQVMsY0FBYyxDQUFDLEtBQVU7SUFDaEMsT0FBTyxPQUFPLEtBQUssS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFNRCxNQUFNLE9BQU8sU0FBUztJQUNwQixTQUFTLENBQUMsS0FBVTtRQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzt1R0FOVSxTQUFTO3FHQUFULFNBQVM7OzJGQUFULFNBQVM7a0JBSnJCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLE9BQU87b0JBQ2IsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHByZXR0eUJ5dGVzIGZyb20gJ3ByZXR0eS1ieXRlcyc7XG5cbmZ1bmN0aW9uIGlzTnVtYmVyRmluaXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBudW1iZXIge1xuICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyAmJiBpc0Zpbml0ZSh2YWx1ZSk7XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2J5dGVzJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG59KVxuZXhwb3J0IGNsYXNzIEJ5dGVzUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oaW5wdXQ6IGFueSk6IGFueSB7XG4gICAgaWYgKCFpc051bWJlckZpbml0ZShpbnB1dCkpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG4gICAgcmV0dXJuIHByZXR0eUJ5dGVzKGlucHV0KTtcbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class ColorLevelPipe {\n transform(level, type = 'bg') {\n let color;\n switch (level) {\n case 'OK':\n color =\n type === 'svg'\n ? '#10B981'\n : type === 'text'\n ? 'text-green-600'\n : 'bg-green-600';\n break;\n case 'WARNING':\n color =\n type === 'svg'\n ? '#F59E0B'\n : type === 'text'\n ? 'text-amber-600'\n : 'bg-yellow-600';\n break;\n case 'CRITICAL':\n color =\n type === 'svg'\n ? '#EF4444'\n : type === 'text'\n ? 'text-red-600'\n : 'bg-red-600';\n break;\n case 'INFO':\n color =\n type === 'svg'\n ? '#3B82F6'\n : type === 'text'\n ? 'text-blue-600'\n : 'bg-blue-600';\n break;\n case 'ANY':\n color =\n type === 'svg'\n ? '#78716C'\n : type === 'text'\n ? 'text-gray-600'\n : 'bg-gray-600';\n break;\n default:\n console.error(`Unresolved level ${level}`);\n break;\n }\n return color;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ColorLevelPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: ColorLevelPipe, isStandalone: false, name: \"colorLevel\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ColorLevelPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'colorLevel',\n standalone: false,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sb3ItbGV2ZWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvcGlwZXMvY29sb3ItbGV2ZWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLGNBQWM7SUFDekIsU0FBUyxDQUFDLEtBQWEsRUFBRSxPQUE4QixJQUFJO1FBQ3pELElBQUksS0FBSyxDQUFDO1FBQ1YsUUFBUSxLQUFLLEVBQUUsQ0FBQztZQUNkLEtBQUssSUFBSTtnQkFDUCxLQUFLO29CQUNILElBQUksS0FBSyxLQUFLO3dCQUNaLENBQUMsQ0FBQyxTQUFTO3dCQUNYLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTTs0QkFDZixDQUFDLENBQUMsZ0JBQWdCOzRCQUNsQixDQUFDLENBQUMsY0FBYyxDQUFDO2dCQUN2QixNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLEtBQUs7b0JBQ0gsSUFBSSxLQUFLLEtBQUs7d0JBQ1osQ0FBQyxDQUFDLFNBQVM7d0JBQ1gsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNOzRCQUNmLENBQUMsQ0FBQyxnQkFBZ0I7NEJBQ2xCLENBQUMsQ0FBQyxlQUFlLENBQUM7Z0JBQ3hCLE1BQU07WUFDUixLQUFLLFVBQVU7Z0JBQ2IsS0FBSztvQkFDSCxJQUFJLEtBQUssS0FBSzt3QkFDWixDQUFDLENBQUMsU0FBUzt3QkFDWCxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07NEJBQ2YsQ0FBQyxDQUFDLGNBQWM7NEJBQ2hCLENBQUMsQ0FBQyxZQUFZLENBQUM7Z0JBQ3JCLE1BQU07WUFDUixLQUFLLE1BQU07Z0JBQ1QsS0FBSztvQkFDSCxJQUFJLEtBQUssS0FBSzt3QkFDWixDQUFDLENBQUMsU0FBUzt3QkFDWCxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07NEJBQ2YsQ0FBQyxDQUFDLGVBQWU7NEJBQ2pCLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RCLE1BQU07WUFDUixLQUFLLEtBQUs7Z0JBQ1IsS0FBSztvQkFDSCxJQUFJLEtBQUssS0FBSzt3QkFDWixDQUFDLENBQUMsU0FBUzt3QkFDWCxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU07NEJBQ2YsQ0FBQyxDQUFDLGVBQWU7NEJBQ2pCLENBQUMsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RCLE1BQU07WUFDUjtnQkFDRSxPQUFPLENBQUMsS0FBSyxDQUFDLG9CQUFvQixLQUFLLEVBQUUsQ0FBQyxDQUFDO2dCQUMzQyxNQUFNO1FBQ1YsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzt1R0FqRFUsY0FBYztxR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUoxQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxZQUFZO29CQUNsQixVQUFVLEVBQUUsS0FBSztpQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NvbG9yTGV2ZWwnLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQ29sb3JMZXZlbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKGxldmVsOiBzdHJpbmcsIHR5cGU6ICdzdmcnIHwgJ2JnJyB8ICd0ZXh0JyA9ICdiZycpOiBzdHJpbmcge1xuICAgIGxldCBjb2xvcjtcbiAgICBzd2l0Y2ggKGxldmVsKSB7XG4gICAgICBjYXNlICdPSyc6XG4gICAgICAgIGNvbG9yID1cbiAgICAgICAgICB0eXBlID09PSAnc3ZnJ1xuICAgICAgICAgICAgPyAnIzEwQjk4MSdcbiAgICAgICAgICAgIDogdHlwZSA9PT0gJ3RleHQnXG4gICAgICAgICAgICAgID8gJ3RleHQtZ3JlZW4tNjAwJ1xuICAgICAgICAgICAgICA6ICdiZy1ncmVlbi02MDAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ1dBUk5JTkcnOlxuICAgICAgICBjb2xvciA9XG4gICAgICAgICAgdHlwZSA9PT0gJ3N2ZydcbiAgICAgICAgICAgID8gJyNGNTlFMEInXG4gICAgICAgICAgICA6IHR5cGUgPT09ICd0ZXh0J1xuICAgICAgICAgICAgICA/ICd0ZXh0LWFtYmVyLTYwMCdcbiAgICAgICAgICAgICAgOiAnYmcteWVsbG93LTYwMCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQ1JJVElDQUwnOlxuICAgICAgICBjb2xvciA9XG4gICAgICAgICAgdHlwZSA9PT0gJ3N2ZydcbiAgICAgICAgICAgID8gJyNFRjQ0NDQnXG4gICAgICAgICAgICA6IHR5cGUgPT09ICd0ZXh0J1xuICAgICAgICAgICAgICA/ICd0ZXh0LXJlZC02MDAnXG4gICAgICAgICAgICAgIDogJ2JnLXJlZC02MDAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0lORk8nOlxuICAgICAgICBjb2xvciA9XG4gICAgICAgICAgdHlwZSA9PT0gJ3N2ZydcbiAgICAgICAgICAgID8gJyMzQjgyRjYnXG4gICAgICAgICAgICA6IHR5cGUgPT09ICd0ZXh0J1xuICAgICAgICAgICAgICA/ICd0ZXh0LWJsdWUtNjAwJ1xuICAgICAgICAgICAgICA6ICdiZy1ibHVlLTYwMCc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnQU5ZJzpcbiAgICAgICAgY29sb3IgPVxuICAgICAgICAgIHR5cGUgPT09ICdzdmcnXG4gICAgICAgICAgICA/ICcjNzg3MTZDJ1xuICAgICAgICAgICAgOiB0eXBlID09PSAndGV4dCdcbiAgICAgICAgICAgICAgPyAndGV4dC1ncmF5LTYwMCdcbiAgICAgICAgICAgICAgOiAnYmctZ3JheS02MDAnO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFVucmVzb2x2ZWQgbGV2ZWwgJHtsZXZlbH1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICAgIHJldHVybiBjb2xvcjtcbiAgfVxufVxuIl19","import { Pipe } from '@angular/core';\nimport { formatDistanceToNow } from 'date-fns';\nimport * as i0 from \"@angular/core\";\nexport class DateAgoPipe {\n transform(value) {\n return formatDistanceToNow(value);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: DateAgoPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: DateAgoPipe, isStandalone: false, name: \"dateAgo\", pure: false });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: DateAgoPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'dateAgo',\n pure: false,\n standalone: false,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1hZ28ucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvcGlwZXMvZGF0ZS1hZ28ucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxVQUFVLENBQUM7O0FBTy9DLE1BQU0sT0FBTyxXQUFXO0lBQ3RCLFNBQVMsQ0FBQyxLQUFhO1FBQ3JCLE9BQU8sbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzt1R0FIVSxXQUFXO3FHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBTHZCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLFNBQVM7b0JBQ2YsSUFBSSxFQUFFLEtBQUs7b0JBQ1gsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZm9ybWF0RGlzdGFuY2VUb05vdyB9IGZyb20gJ2RhdGUtZm5zJztcblxuQFBpcGUoe1xuICBuYW1lOiAnZGF0ZUFnbycsXG4gIHB1cmU6IGZhbHNlLFxuICBzdGFuZGFsb25lOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZUFnb1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBmb3JtYXREaXN0YW5jZVRvTm93KHZhbHVlKTtcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { BytesPipe } from './bytes.pipe';\nimport { ColorLevelPipe } from './color-level.pipe';\nimport { DateAgoPipe } from './date-ago.pipe';\nimport * as i0 from \"@angular/core\";\nexport class UiPipesModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: UiPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: UiPipesModule, declarations: [BytesPipe, ColorLevelPipe, DateAgoPipe], imports: [CommonModule], exports: [BytesPipe, ColorLevelPipe, DateAgoPipe] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: UiPipesModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: UiPipesModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n exports: [BytesPipe, ColorLevelPipe, DateAgoPipe],\n declarations: [BytesPipe, ColorLevelPipe, DateAgoPipe],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvY29yZS9waXBlcy9waXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN6QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQU85QyxNQUFNLE9BQU8sYUFBYTt1R0FBYixhQUFhO3dHQUFiLGFBQWEsaUJBRlQsU0FBUyxFQUFFLGNBQWMsRUFBRSxXQUFXLGFBRjNDLFlBQVksYUFDWixTQUFTLEVBQUUsY0FBYyxFQUFFLFdBQVc7d0dBR3JDLGFBQWEsWUFKZCxZQUFZOzsyRkFJWCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsU0FBUyxFQUFFLGNBQWMsRUFBRSxXQUFXLENBQUM7b0JBQ2pELFlBQVksRUFBRSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsV0FBVyxDQUFDO2lCQUN2RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBCeXRlc1BpcGUgfSBmcm9tICcuL2J5dGVzLnBpcGUnO1xuaW1wb3J0IHsgQ29sb3JMZXZlbFBpcGUgfSBmcm9tICcuL2NvbG9yLWxldmVsLnBpcGUnO1xuaW1wb3J0IHsgRGF0ZUFnb1BpcGUgfSBmcm9tICcuL2RhdGUtYWdvLnBpcGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW0J5dGVzUGlwZSwgQ29sb3JMZXZlbFBpcGUsIERhdGVBZ29QaXBlXSxcbiAgZGVjbGFyYXRpb25zOiBbQnl0ZXNQaXBlLCBDb2xvckxldmVsUGlwZSwgRGF0ZUFnb1BpcGVdLFxufSlcbmV4cG9ydCBjbGFzcyBVaVBpcGVzTW9kdWxlIHt9XG4iXX0=","const SUPPORTED_LANGUAGES = ['en', 'de'];\nexport function InlineLoaderFactory(loader) {\n return SUPPORTED_LANGUAGES.reduce((acc, lang) => {\n acc[lang] = () => loader(lang);\n return acc;\n }, {});\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2NvcmUvdXRpbHMvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLG1CQUFtQixHQUFHLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRXpDLE1BQU0sVUFBVSxtQkFBbUIsQ0FDakMsTUFBMEM7SUFFMUMsT0FBTyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDOUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNULENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEhhc2hNYXAgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5jb25zdCBTVVBQT1JURURfTEFOR1VBR0VTID0gWydlbicsICdkZSddO1xuXG5leHBvcnQgZnVuY3Rpb24gSW5saW5lTG9hZGVyRmFjdG9yeShcbiAgbG9hZGVyOiAobGFuZzogc3RyaW5nKSA9PiBQcm9taXNlPEhhc2hNYXA+LFxuKSB7XG4gIHJldHVybiBTVVBQT1JURURfTEFOR1VBR0VTLnJlZHVjZSgoYWNjLCBsYW5nKSA9PiB7XG4gICAgYWNjW2xhbmddID0gKCkgPT4gbG9hZGVyKGxhbmcpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cbiJdfQ==","export function iconForMimeType(mimetype) {\n if (!mimetype) {\n return 'file';\n }\n if (mimetype.startsWith('audio')) {\n return 'file_audio';\n }\n else if (mimetype.startsWith('image')) {\n return 'image';\n }\n else if (mimetype.startsWith('text')) {\n return 'file_text';\n }\n else if (mimetype.startsWith('video')) {\n return 'file_video';\n }\n else {\n return ({\n 'application/pdf': 'file_pdf',\n 'application/json': 'file_text',\n 'application/js': 'file_text',\n 'application/msword': 'file_text',\n 'application/gzip': 'file_zip',\n 'application/typescript': 'file_text',\n 'application/vnd.rar': 'file_zip',\n 'application/x-7z-compressed': 'file_zip',\n 'application/x-tar': 'file_zip',\n 'application/xml': 'file_text',\n 'application/zip': 'file_zip',\n }[mimetype] || 'file');\n }\n}\nexport function labelForMimeType(mimetype) {\n if (!mimetype) {\n return 'unknown';\n }\n if (mimetype.startsWith('audio')) {\n return 'audio';\n }\n else if (mimetype.startsWith('image')) {\n return 'image';\n }\n else if (mimetype.startsWith('text')) {\n return 'text';\n }\n else if (mimetype.startsWith('video')) {\n return 'video';\n }\n else {\n return ({\n 'application/pdf': 'pdf',\n 'application/json': 'text',\n 'application/js': 'text',\n 'application/msword': 'text',\n 'application/gzip': 'archive',\n 'application/typescript': 'text',\n 'application/vnd.rar': 'archive',\n 'application/x-7z-compressed': 'archive',\n 'application/x-tar': 'archive',\n 'application/xml': 'text',\n 'application/zip': 'archive',\n }[mimetype] || 'unknown');\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWltZXR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL3V0aWxzL21pbWV0eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sVUFBVSxlQUFlLENBQUMsUUFBZ0I7SUFDOUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztTQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUNMO1lBQ0UsaUJBQWlCLEVBQUUsVUFBVTtZQUM3QixrQkFBa0IsRUFBRSxXQUFXO1lBQy9CLGdCQUFnQixFQUFFLFdBQVc7WUFDN0Isb0JBQW9CLEVBQUUsV0FBVztZQUNqQyxrQkFBa0IsRUFBRSxVQUFVO1lBQzlCLHdCQUF3QixFQUFFLFdBQVc7WUFDckMscUJBQXFCLEVBQUUsVUFBVTtZQUNqQyw2QkFBNkIsRUFBRSxVQUFVO1lBQ3pDLG1CQUFtQixFQUFFLFVBQVU7WUFDL0IsaUJBQWlCLEVBQUUsV0FBVztZQUM5QixpQkFBaUIsRUFBRSxVQUFVO1NBQzlCLENBQUMsUUFBUSxDQUFDLElBQUksTUFBTSxDQUN0QixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2QsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7U0FBTSxJQUFJLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUN4QyxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO1NBQU0sSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkMsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztTQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ3hDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxDQUNMO1lBQ0UsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixrQkFBa0IsRUFBRSxNQUFNO1lBQzFCLGdCQUFnQixFQUFFLE1BQU07WUFDeEIsb0JBQW9CLEVBQUUsTUFBTTtZQUM1QixrQkFBa0IsRUFBRSxTQUFTO1lBQzdCLHdCQUF3QixFQUFFLE1BQU07WUFDaEMscUJBQXFCLEVBQUUsU0FBUztZQUNoQyw2QkFBNkIsRUFBRSxTQUFTO1lBQ3hDLG1CQUFtQixFQUFFLFNBQVM7WUFDOUIsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixpQkFBaUIsRUFBRSxTQUFTO1NBQzdCLENBQUMsUUFBUSxDQUFDLElBQUksU0FBUyxDQUN6QixDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZnVuY3Rpb24gaWNvbkZvck1pbWVUeXBlKG1pbWV0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIW1pbWV0eXBlKSB7XG4gICAgcmV0dXJuICdmaWxlJztcbiAgfVxuXG4gIGlmIChtaW1ldHlwZS5zdGFydHNXaXRoKCdhdWRpbycpKSB7XG4gICAgcmV0dXJuICdmaWxlX2F1ZGlvJztcbiAgfSBlbHNlIGlmIChtaW1ldHlwZS5zdGFydHNXaXRoKCdpbWFnZScpKSB7XG4gICAgcmV0dXJuICdpbWFnZSc7XG4gIH0gZWxzZSBpZiAobWltZXR5cGUuc3RhcnRzV2l0aCgndGV4dCcpKSB7XG4gICAgcmV0dXJuICdmaWxlX3RleHQnO1xuICB9IGVsc2UgaWYgKG1pbWV0eXBlLnN0YXJ0c1dpdGgoJ3ZpZGVvJykpIHtcbiAgICByZXR1cm4gJ2ZpbGVfdmlkZW8nO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoXG4gICAgICB7XG4gICAgICAgICdhcHBsaWNhdGlvbi9wZGYnOiAnZmlsZV9wZGYnLFxuICAgICAgICAnYXBwbGljYXRpb24vanNvbic6ICdmaWxlX3RleHQnLFxuICAgICAgICAnYXBwbGljYXRpb24vanMnOiAnZmlsZV90ZXh0JyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCc6ICdmaWxlX3RleHQnLFxuICAgICAgICAnYXBwbGljYXRpb24vZ3ppcCc6ICdmaWxlX3ppcCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi90eXBlc2NyaXB0JzogJ2ZpbGVfdGV4dCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi92bmQucmFyJzogJ2ZpbGVfemlwJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCc6ICdmaWxlX3ppcCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi94LXRhcic6ICdmaWxlX3ppcCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi94bWwnOiAnZmlsZV90ZXh0JyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3ppcCc6ICdmaWxlX3ppcCcsXG4gICAgICB9W21pbWV0eXBlXSB8fCAnZmlsZSdcbiAgICApO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsYWJlbEZvck1pbWVUeXBlKG1pbWV0eXBlOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIW1pbWV0eXBlKSB7XG4gICAgcmV0dXJuICd1bmtub3duJztcbiAgfVxuXG4gIGlmIChtaW1ldHlwZS5zdGFydHNXaXRoKCdhdWRpbycpKSB7XG4gICAgcmV0dXJuICdhdWRpbyc7XG4gIH0gZWxzZSBpZiAobWltZXR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UnKSkge1xuICAgIHJldHVybiAnaW1hZ2UnO1xuICB9IGVsc2UgaWYgKG1pbWV0eXBlLnN0YXJ0c1dpdGgoJ3RleHQnKSkge1xuICAgIHJldHVybiAndGV4dCc7XG4gIH0gZWxzZSBpZiAobWltZXR5cGUuc3RhcnRzV2l0aCgndmlkZW8nKSkge1xuICAgIHJldHVybiAndmlkZW8nO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiAoXG4gICAgICB7XG4gICAgICAgICdhcHBsaWNhdGlvbi9wZGYnOiAncGRmJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL2pzb24nOiAndGV4dCcsXG4gICAgICAgICdhcHBsaWNhdGlvbi9qcyc6ICd0ZXh0JyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL21zd29yZCc6ICd0ZXh0JyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL2d6aXAnOiAnYXJjaGl2ZScsXG4gICAgICAgICdhcHBsaWNhdGlvbi90eXBlc2NyaXB0JzogJ3RleHQnLFxuICAgICAgICAnYXBwbGljYXRpb24vdm5kLnJhcic6ICdhcmNoaXZlJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3gtN3otY29tcHJlc3NlZCc6ICdhcmNoaXZlJyxcbiAgICAgICAgJ2FwcGxpY2F0aW9uL3gtdGFyJzogJ2FyY2hpdmUnLFxuICAgICAgICAnYXBwbGljYXRpb24veG1sJzogJ3RleHQnLFxuICAgICAgICAnYXBwbGljYXRpb24vemlwJzogJ2FyY2hpdmUnLFxuICAgICAgfVttaW1ldHlwZV0gfHwgJ3Vua25vd24nXG4gICAgKTtcbiAgfVxufVxuIl19","export { InlineLoaderFactory } from './i18n';\nexport { iconForMimeType, labelForMimeType } from './mimetype';\nexport function saveAs(blob, name) {\n const anchor = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');\n anchor.style.display = 'none';\n anchor.download = name;\n anchor.rel = 'noopener';\n if (typeof blob === 'string') {\n anchor.href = blob;\n if (anchor.origin !== location.origin) {\n anchor.target = '_blank';\n corsEnabled(anchor.href) ? download(blob, name) : anchor.click();\n }\n else {\n anchor.click();\n }\n }\n else {\n anchor.href = URL.createObjectURL(blob);\n setTimeout(() => URL.revokeObjectURL(anchor.href), 4e4);\n setTimeout(() => anchor.click(), 0);\n }\n}\nfunction corsEnabled(url) {\n const xhr = new XMLHttpRequest();\n xhr.open('HEAD', url, false);\n try {\n xhr.send();\n }\n catch (e) { }\n return xhr.status >= 200 && xhr.status <= 299;\n}\nfunction download(url, name) {\n const xhr = new XMLHttpRequest();\n xhr.open('GET', url);\n xhr.responseType = 'blob';\n xhr.onload = function () {\n saveAs(xhr.response, name);\n };\n xhr.send();\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRS9ELE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBbUIsRUFBRSxJQUFZO0lBQ3RELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQ3JDLDhCQUE4QixFQUM5QixHQUFHLENBQ2lCLENBQUM7SUFDdkIsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO0lBQzlCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3ZCLE1BQU0sQ0FBQyxHQUFHLEdBQUcsVUFBVSxDQUFDO0lBRXhCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDN0IsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDbkIsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QyxNQUFNLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQztZQUN6QixXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkUsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDakIsQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN4RCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQUMsR0FBRztJQUN0QixNQUFNLEdBQUcsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM3QixJQUFJLENBQUM7UUFDSCxHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDYixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7SUFDZCxPQUFPLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDO0FBQ2hELENBQUM7QUFFRCxTQUFTLFFBQVEsQ0FBQyxHQUFXLEVBQUUsSUFBWTtJQUN6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ2pDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLEdBQUcsQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO0lBQzFCLEdBQUcsQ0FBQyxNQUFNLEdBQUc7UUFDWCxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM3QixDQUFDLENBQUM7SUFDRixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgSW5saW5lTG9hZGVyRmFjdG9yeSB9IGZyb20gJy4vaTE4bic7XG5leHBvcnQgeyBpY29uRm9yTWltZVR5cGUsIGxhYmVsRm9yTWltZVR5cGUgfSBmcm9tICcuL21pbWV0eXBlJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNhdmVBcyhibG9iOiBCbG9iIHwgc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgYW5jaG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKFxuICAgICdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJyxcbiAgICAnYScsXG4gICkgYXMgSFRNTEFuY2hvckVsZW1lbnQ7XG4gIGFuY2hvci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICBhbmNob3IuZG93bmxvYWQgPSBuYW1lO1xuICBhbmNob3IucmVsID0gJ25vb3BlbmVyJztcblxuICBpZiAodHlwZW9mIGJsb2IgPT09ICdzdHJpbmcnKSB7XG4gICAgYW5jaG9yLmhyZWYgPSBibG9iO1xuICAgIGlmIChhbmNob3Iub3JpZ2luICE9PSBsb2NhdGlvbi5vcmlnaW4pIHtcbiAgICAgIGFuY2hvci50YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgIGNvcnNFbmFibGVkKGFuY2hvci5ocmVmKSA/IGRvd25sb2FkKGJsb2IsIG5hbWUpIDogYW5jaG9yLmNsaWNrKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFuY2hvci5jbGljaygpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBhbmNob3IuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgc2V0VGltZW91dCgoKSA9PiBVUkwucmV2b2tlT2JqZWN0VVJMKGFuY2hvci5ocmVmKSwgNGU0KTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IGFuY2hvci5jbGljaygpLCAwKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjb3JzRW5hYmxlZCh1cmwpIHtcbiAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gIHhoci5vcGVuKCdIRUFEJywgdXJsLCBmYWxzZSk7XG4gIHRyeSB7XG4gICAgeGhyLnNlbmQoKTtcbiAgfSBjYXRjaCAoZSkge31cbiAgcmV0dXJuIHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPD0gMjk5O1xufVxuXG5mdW5jdGlvbiBkb3dubG9hZCh1cmw6IHN0cmluZywgbmFtZTogc3RyaW5nKSB7XG4gIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICB4aHIub3BlbignR0VUJywgdXJsKTtcbiAgeGhyLnJlc3BvbnNlVHlwZSA9ICdibG9iJztcbiAgeGhyLm9ubG9hZCA9IGZ1bmN0aW9uICgpIHtcbiAgICBzYXZlQXMoeGhyLnJlc3BvbnNlLCBuYW1lKTtcbiAgfTtcbiAgeGhyLnNlbmQoKTtcbn1cbiJdfQ==","import { Component, inject } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { NgxExtendedPdfViewerModule, pdfDefaultOptions, } from 'ngx-extended-pdf-viewer';\nimport { NGXLogger } from 'ngx-logger';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { ApiService } from '../../core/api.service';\nimport { IconComponent } from '../../core/icons';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"ngx-markdown\";\nimport * as i2 from \"@angular/material/button\";\nimport * as i3 from \"@angular/material/dialog\";\nimport * as i4 from \"ngx-extended-pdf-viewer\";\nexport class PreviewComponent {\n content;\n isLoading = false;\n pageNumber;\n previewUrl;\n token;\n markdown;\n apiService = inject(ApiService);\n logger = inject(NGXLogger);\n sanitizer = inject(DomSanitizer);\n constructor() {\n const data = inject(MAT_DIALOG_DATA);\n pdfDefaultOptions.assetsFolder = 'assets/ngx-extended-pdf';\n this.pageNumber = data.pageNumber || 1;\n this.content = data;\n }\n get pdfSrc() {\n if (this.content?.id) {\n return this.apiService.downloadContent(this.content.id);\n }\n else {\n return null;\n }\n }\n ngOnInit() {\n this.apiService.getAccessToken().then((t) => (this.token = `Bearer ${t}`));\n if (this.content.mimetype === 'application/pdf') {\n // ignore\n }\n else if (this.content.mimetype?.startsWith('image/')) {\n this.loadPreview();\n }\n else if (this.content.mimetype?.startsWith('text/')) {\n if (typeof this.content.analysis === 'object') {\n this.markdown = this.content.analysis.text;\n }\n }\n }\n loadPreview() {\n if (this.isLoading || !this.content.id) {\n return;\n }\n this.isLoading = true;\n this.apiService\n .downloadContent(this.content.id, 'preview-lg')\n .then((data) => {\n const blob = new Blob([data], { type: 'image/png' });\n this.previewUrl = this.sanitizer.bypassSecurityTrustUrl(window.URL.createObjectURL(blob));\n this.isLoading = false;\n })\n .catch((error) => {\n this.logger.error(error);\n this.isLoading = false;\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: PreviewComponent, isStandalone: true, selector: \"ai-content-preview\", ngImport: i0, template: \"<ng-container>\\n <div mat-dialog-title class=\\\"relative\\\">\\n <div class=\\\"truncate pr-10\\\">{{ content.filename }}</div>\\n <button\\n mat-icon-button\\n matDialogClose\\n class=\\\"small absolute right-4 top-4 bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\\\"\\n >\\n <ai-icon name=\\\"dismiss\\\"></ai-icon>\\n </button>\\n </div>\\n <div mat-dialog-content class=\\\"flex grow flex-col\\\">\\n @if (markdown) {\\n <div class=\\\"w-full overflow-y-auto rounded-xl bg-white p-4\\\">\\n <markdown class=\\\"markdown-body\\\" [data]=\\\"markdown\\\"></markdown>\\n </div>\\n } @else if (content.mimetype === 'application/pdf') {\\n <div class=\\\"mx-auto w-[50rem] sm:h-[65vh]\\\">\\n <ngx-extended-pdf-viewer\\n [authorization]=\\\"token\\\"\\n [src]=\\\"pdfSrc\\\"\\n [disableHistory]=\\\"true\\\"\\n [showBorders]=\\\"false\\\"\\n [showDownloadButton]=\\\"false\\\"\\n [showDrawEditor]=\\\"false\\\"\\n [showEditor]=\\\"false\\\"\\n [showHighlightEditor]=\\\"false\\\"\\n [showOpenFileButton]=\\\"false\\\"\\n [showPrintButton]=\\\"false\\\"\\n [showRotateButton]=\\\"false\\\"\\n [showSecondaryToolbarButton]=\\\"false\\\"\\n [showSidebarButton]=\\\"false\\\"\\n [showStampEditor]=\\\"false\\\"\\n [showTextEditor]=\\\"false\\\"\\n [sidebarVisible]=\\\"false\\\"\\n [useBrowserLocale]=\\\"true\\\"\\n [zoom]=\\\"auto\\\"\\n [page]=\\\"pageNumber\\\"\\n ></ngx-extended-pdf-viewer>\\n </div>\\n } @else if (previewUrl) {\\n <div\\n class=\\\"group relative w-full overflow-hidden rounded-2xl border border-zinc-300/40 bg-zinc-300/30 p-4 dark:border-zinc-700/40 dark:bg-zinc-700/30\\\"\\n >\\n <div class=\\\"w-full overflow-hidden rounded-lg\\\">\\n <img class=\\\"w-full\\\" [src]=\\\"previewUrl\\\" alt=\\\"\\\" />\\n </div>\\n </div>\\n }\\n </div>\\n</ng-container>\\n\", dependencies: [{ kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MarkdownModule }, { kind: \"component\", type: i1.MarkdownComponent, selector: \"markdown, [markdown]\", inputs: [\"data\", \"src\", \"disableSanitizer\", \"inline\", \"clipboard\", \"clipboardButtonComponent\", \"clipboardButtonTemplate\", \"emoji\", \"katex\", \"katexOptions\", \"mermaid\", \"mermaidOptions\", \"lineHighlight\", \"line\", \"lineOffset\", \"lineNumbers\", \"start\", \"commandLine\", \"filterOutput\", \"host\", \"prompt\", \"output\", \"user\"], outputs: [\"error\", \"load\", \"ready\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatDialogModule }, { kind: \"directive\", type: i3.MatDialogClose, selector: \"[mat-dialog-close], [matDialogClose]\", inputs: [\"aria-label\", \"type\", \"mat-dialog-close\", \"matDialogClose\"], exportAs: [\"matDialogClose\"] }, { kind: \"directive\", type: i3.MatDialogTitle, selector: \"[mat-dialog-title], [matDialogTitle]\", inputs: [\"id\"], exportAs: [\"matDialogTitle\"] }, { kind: \"directive\", type: i3.MatDialogContent, selector: \"[mat-dialog-content], mat-dialog-content, [matDialogContent]\" }, { kind: \"ngmodule\", type: NgxExtendedPdfViewerModule }, { kind: \"component\", type: i4.NgxExtendedPdfViewerComponent, selector: \"ngx-extended-pdf-viewer\", inputs: [\"customFindbarInputArea\", \"customToolbar\", \"customFindbar\", \"customFindbarButtons\", \"customPdfViewer\", \"customSecondaryToolbar\", \"customSidebar\", \"customThumbnail\", \"customFreeFloatingBar\", \"showFreeFloatingBar\", \"enableDragAndDrop\", \"forceUsingLegacyES5\", \"formData\", \"disableForms\", \"pageViewMode\", \"scrollMode\", \"authorization\", \"httpHeaders\", \"contextMenuAllowed\", \"enablePrint\", \"enablePrintAutoRotate\", \"forceFullReloadOfJavaScriptCode\", \"showTextEditor\", \"showStampEditor\", \"showDrawEditor\", \"showHighlightEditor\", \"logLevel\", \"minifiedJSLibraries\", \"printResolution\", \"rotation\", \"src\", \"base64Src\", \"minHeight\", \"height\", \"backgroundColor\", \"filenameForDownload\", \"ignoreKeyboard\", \"ignoreKeys\", \"acceptKeys\", \"imageResourcesPath\", \"localeFolderPath\", \"language\", \"listenToURL\", \"nameddest\", \"password\", \"replaceBrowserPrint\", \"useInlineScripts\", \"showUnverifiedSignatures\", \"startTabindex\", \"showSidebarButton\", \"sidebarVisible\", \"activeSidebarView\", \"findbarVisible\", \"propertiesDialogVisible\", \"showFindButton\", \"showFindHighlightAll\", \"showFindMatchCase\", \"showFindMultiple\", \"showFindRegexp\", \"showFindEntireWord\", \"showFindMatchDiacritics\", \"showFindResultsCount\", \"showFindMessages\", \"showPagingButtons\", \"showFirstAndLastPageButtons\", \"showPreviousAndNextPageButtons\", \"showPageNumber\", \"showPageLabel\", \"showZoomButtons\", \"showZoomDropdown\", \"showPresentationModeButton\", \"showOpenFileButton\", \"showPrintButton\", \"showDownloadButton\", \"theme\", \"showToolbar\", \"showSecondaryToolbarButton\", \"showSinglePageModeButton\", \"showVerticalScrollButton\", \"showHorizontalScrollButton\", \"showWrappedScrollButton\", \"showInfiniteScrollButton\", \"showBookModeButton\", \"showRotateButton\", \"showRotateCwButton\", \"showRotateCcwButton\", \"handTool\", \"showHandToolButton\", \"showSpreadButton\", \"showPropertiesButton\", \"showBorders\", \"spread\", \"showScrollingButtons\", \"page\", \"pageLabel\", \"textLayer\", \"zoom\", \"zoomLevels\", \"maxZoom\", \"minZoom\", \"mobileFriendlyZoom\"], outputs: [\"annotationEditorEvent\", \"formDataChange\", \"pageViewModeChange\", \"progress\", \"srcChange\", \"scrollModeChange\", \"afterPrint\", \"beforePrint\", \"currentZoomFactor\", \"rotationChange\", \"annotationLayerRendered\", \"annotationEditorLayerRendered\", \"xfaLayerRendered\", \"outlineLoaded\", \"attachmentsloaded\", \"layersloaded\", \"sidebarVisibleChange\", \"activeSidebarViewChange\", \"findbarVisibleChange\", \"propertiesDialogVisibleChange\", \"handToolChange\", \"spreadChange\", \"thumbnailDrawn\", \"pageChange\", \"pageLabelChange\", \"pagesLoaded\", \"pageRender\", \"pageRendered\", \"pdfDownloaded\", \"pdfLoaded\", \"pdfLoadingStarts\", \"pdfLoadingFailed\", \"textLayerRendered\", \"annotationEditorModeChanged\", \"updateFindMatchesCount\", \"updateFindState\", \"zoomChange\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PreviewComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n IconComponent,\n MarkdownModule,\n MatButtonModule,\n MatDialogModule,\n NgxExtendedPdfViewerModule,\n ], selector: 'ai-content-preview', template: \"<ng-container>\\n <div mat-dialog-title class=\\\"relative\\\">\\n <div class=\\\"truncate pr-10\\\">{{ content.filename }}</div>\\n <button\\n mat-icon-button\\n matDialogClose\\n class=\\\"small absolute right-4 top-4 bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\\\"\\n >\\n <ai-icon name=\\\"dismiss\\\"></ai-icon>\\n </button>\\n </div>\\n <div mat-dialog-content class=\\\"flex grow flex-col\\\">\\n @if (markdown) {\\n <div class=\\\"w-full overflow-y-auto rounded-xl bg-white p-4\\\">\\n <markdown class=\\\"markdown-body\\\" [data]=\\\"markdown\\\"></markdown>\\n </div>\\n } @else if (content.mimetype === 'application/pdf') {\\n <div class=\\\"mx-auto w-[50rem] sm:h-[65vh]\\\">\\n <ngx-extended-pdf-viewer\\n [authorization]=\\\"token\\\"\\n [src]=\\\"pdfSrc\\\"\\n [disableHistory]=\\\"true\\\"\\n [showBorders]=\\\"false\\\"\\n [showDownloadButton]=\\\"false\\\"\\n [showDrawEditor]=\\\"false\\\"\\n [showEditor]=\\\"false\\\"\\n [showHighlightEditor]=\\\"false\\\"\\n [showOpenFileButton]=\\\"false\\\"\\n [showPrintButton]=\\\"false\\\"\\n [showRotateButton]=\\\"false\\\"\\n [showSecondaryToolbarButton]=\\\"false\\\"\\n [showSidebarButton]=\\\"false\\\"\\n [showStampEditor]=\\\"false\\\"\\n [showTextEditor]=\\\"false\\\"\\n [sidebarVisible]=\\\"false\\\"\\n [useBrowserLocale]=\\\"true\\\"\\n [zoom]=\\\"auto\\\"\\n [page]=\\\"pageNumber\\\"\\n ></ngx-extended-pdf-viewer>\\n </div>\\n } @else if (previewUrl) {\\n <div\\n class=\\\"group relative w-full overflow-hidden rounded-2xl border border-zinc-300/40 bg-zinc-300/30 p-4 dark:border-zinc-700/40 dark:bg-zinc-700/30\\\"\\n >\\n <div class=\\\"w-full overflow-hidden rounded-lg\\\">\\n <img class=\\\"w-full\\\" [src]=\\\"previewUrl\\\" alt=\\\"\\\" />\\n </div>\\n </div>\\n }\\n </div>\\n</ng-container>\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS9wcmV2aWV3L3ByZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVFLE9BQU8sRUFBRSxZQUFZLEVBQVcsTUFBTSwyQkFBMkIsQ0FBQztBQUVsRSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLGlCQUFpQixHQUNsQixNQUFNLHlCQUF5QixDQUFDO0FBQ2pDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7QUFhakQsTUFBTSxPQUFPLGdCQUFnQjtJQUMzQixPQUFPLENBQTRDO0lBQ25ELFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsVUFBVSxDQUFTO0lBQ25CLFVBQVUsQ0FBVTtJQUNwQixLQUFLLENBQVM7SUFDZCxRQUFRLENBQVU7SUFFRCxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLE1BQU0sR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDM0IsU0FBUyxHQUFH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Q2YsZUFBZTt3QkFDZiwwQkFBMEI7cUJBQzNCLFlBQ1Msb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IERvbVNhbml0aXplciwgU2FmZVVybCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHR5cGUgeyBDb250ZW50IH0gZnJvbSAnQGhhaG5wcm8vaHBjLWFwaSc7XG5pbXBvcnQge1xuICBOZ3hFeHRlbmRlZFBkZlZpZXdlck1vZHVsZSxcbiAgcGRmRGVmYXVsdE9wdGlvbnMsXG59IGZyb20gJ25neC1leHRlbmRlZC1wZGYtdmlld2VyJztcbmltcG9ydCB7IE5HWExvZ2dlciB9IGZyb20gJ25neC1sb2dnZXInO1xuaW1wb3J0IHsgTWFya2Rvd25Nb2R1bGUgfSBmcm9tICduZ3gtbWFya2Rvd24nO1xuXG5pbXBvcnQgeyBBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9hcGkuc2VydmljZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9pY29ucyc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBNYXJrZG93bk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE5neEV4dGVuZGVkUGRmVmlld2VyTW9kdWxlLFxuICBdLFxuICBzZWxlY3RvcjogJ2FpLWNvbnRlbnQtcHJldmlldycsXG4gIHRlbXBsYXRlVXJsOiAnLi9wcmV2aWV3LmNvbXBvbmVudC5odG1sJyxcbn0pXG5leHBvcnQgY2xhc3MgUHJldmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIGNvbnRlbnQ6IENvbnRlbnQgJiB7IGFuYWx5c2lzPzogeyB0ZXh0OiBzdHJpbmcgfSB9O1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgcGFnZU51bWJlcjogbnVtYmVyO1xuICBwcmV2aWV3VXJsOiBTYWZlVXJsO1xuICB0b2tlbjogc3RyaW5nO1xuICBtYXJrZG93bj86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGFwaVNlcnZpY2UgPSBpbmplY3QoQXBpU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KE5HWExvZ2dlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVyID0gaW5qZWN0KERvbVNhbml0aXplcik7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgY29uc3QgZGF0YSA9IGluamVjdChNQVRfRElBTE9HX0RBVEEpO1xuXG4gICAgcGRmRGVmYXVsdE9wdGlvbnMuYXNzZXRzRm9sZGVyID0gJ2Fzc2V0cy9uZ3gtZXh0ZW5kZWQtcGRmJztcbiAgICB0aGlzLnBhZ2VOdW1iZXIgPSBkYXRhLnBhZ2VOdW1iZXIgfHwgMTtcbiAgICB0aGlzLmNvbnRlbnQgPSBkYXRhO1xuICB9XG5cbiAgZ2V0IHBkZlNyYygpIHtcbiAgICBpZiAodGhpcy5jb250ZW50Py5pZCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXBpU2VydmljZS5kb3dubG9hZENvbnRlbnQodGhpcy5jb250ZW50LmlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5hcGlTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCkudGhlbigodCkgPT4gKHRoaXMudG9rZW4gPSBgQmVhcmVyICR7dH1gKSk7XG4gICAgaWYgKHRoaXMuY29udGVudC5taW1ldHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicpIHtcbiAgICAgIC8vIGlnbm9yZVxuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50Lm1pbWV0eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xuICAgICAgdGhpcy5sb2FkUHJldmlldygpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5jb250ZW50Lm1pbWV0eXBlPy5zdGFydHNXaXRoKCd0ZXh0LycpKSB7XG4gICAgICBpZiAodHlwZW9mIHRoaXMuY29udGVudC5hbmFseXNpcyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgdGhpcy5tYXJrZG93biA9IHRoaXMuY29udGVudC5hbmFseXNpcy50ZXh0O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZFByZXZpZXcoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nIHx8ICF0aGlzLmNvbnRlbnQuaWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuXG4gICAgdGhpcy5hcGlTZXJ2aWNlXG4gICAgICAuZG93bmxvYWRDb250ZW50KHRoaXMuY29udGVudC5pZCwgJ3ByZXZpZXctbGcnKVxuICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtkYXRhXSwgeyB0eXBlOiAnaW1hZ2UvcG5nJyB9KTtcbiAgICAgICAgdGhpcy5wcmV2aWV3VXJsID0gdGhpcy5zYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdFVybChcbiAgICAgICAgICB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKSxcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGVycm9yKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyPlxuICA8ZGl2IG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJyZWxhdGl2ZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0cnVuY2F0ZSBwci0xMFwiPnt7IGNvbnRlbnQuZmlsZW5hbWUgfX08L2Rpdj5cbiAgICA8YnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIG1hdERpYWxvZ0Nsb3NlXG4gICAgICBjbGFzcz1cInNtYWxsIGFic29sdXRlIHJpZ2h0LTQgdG9wLTQgYmctemluYy01MCB0ZXh0LXppbmMtNTAwIGhvdmVyOmJnLXppbmMtMTAwIGhvdmVyOnRleHQtemluYy05MDAgZGFyazpiZy16aW5jLTkwMCBkYXJrOnRleHQtemluYy00MDAgZGFyazpob3ZlcjpiZy16aW5jLTgwMCBkYXJrOmhvdmVyOnRleHQtemluYy01MFwiXG4gICAgPlxuICAgICAgPGFpLWljb24gbmFtZT1cImRpc21pc3NcIj48L2FpLWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImZsZXggZ3JvdyBmbGV4LWNvbFwiPlxuICAgIEBpZiAobWFya2Rvd24pIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgb3ZlcmZsb3cteS1hdXRvIHJvdW5kZWQteGwgYmctd2hpdGUgcC00XCI+XG4gICAgICAgIDxtYXJrZG93biBjbGFzcz1cIm1hcmtkb3duLWJvZHlcIiBbZGF0YV09XCJtYXJrZG93blwiPjwvbWFya2Rvd24+XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIGlmIChjb250ZW50Lm1pbWV0eXBlID09PSAnYXBwbGljYXRpb24vcGRmJykge1xuICAgICAgPGRpdiBjbGFzcz1cIm14LWF1dG8gdy1bNTByZW1dIHNtOmgtWzY1dmhdXCI+XG4gICAgICAgIDxuZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlclxuICAgICAgICAgIFthdXRob3JpemF0aW9uXT1cInRva2VuXCJcbiAgICAgICAgICBbc3JjXT1cInBkZlNyY1wiXG4gICAgICAgICAgW2Rpc2FibGVIaXN0b3J5XT1cInRydWVcIlxuICAgICAgICAgIFtzaG93Qm9yZGVyc109XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dEb3dubG9hZEJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dEcmF3RWRpdG9yXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2hvd0VkaXRvcl09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dIaWdobGlnaHRFZGl0b3JdPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93T3BlbkZpbGVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93UHJpbnRCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93Um90YXRlQnV0dG9uXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2hvd1NlY29uZGFyeVRvb2xiYXJCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICAgIFtzaG93U2lkZWJhckJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dTdGFtcEVkaXRvcl09XCJmYWxzZVwiXG4gICAgICAgICAgW3Nob3dUZXh0RWRpdG9yXT1cImZhbHNlXCJcbiAgICAgICAgICBbc2lkZWJhclZpc2libGVdPVwiZmFsc2VcIlxuICAgICAgICAgIFt1c2VCcm93c2VyTG9jYWxlXT1cInRydWVcIlxuICAgICAgICAgIFt6b29tXT1cImF1dG9cIlxuICAgICAgICAgIFtwYWdlXT1cInBhZ2VOdW1iZXJcIlxuICAgICAgICA+PC9uZ3gtZXh0ZW5kZWQtcGRmLXZpZXdlcj5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2UgaWYgKHByZXZpZXdVcmwpIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJncm91cCByZWxhdGl2ZSB3LWZ1bGwgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItemluYy0zMDAvNDAgYmctemluYy0zMDAvMzAgcC00IGRhcms6Ym9yZGVyLXppbmMtNzAwLzQwIGRhcms6YmctemluYy03MDAvMzBcIlxuICAgICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLWxnXCI+XG4gICAgICAgICAgPGltZyBjbGFzcz1cInctZnVsbFwiIFtzcmNdPVwicHJldmlld1VybFwiIGFsdD1cIlwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19","import { ClipboardModule } from '@angular/cdk/clipboard';\nimport { CommonModule } from '@angular/common';\nimport { Component, inject, InjectionToken } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialog } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { iconForMimeType, labelForMimeType } from '../../core/utils';\nimport { UiPipesModule } from '../../core/pipes';\nimport { ContextService } from '../context.service';\nimport { PreviewComponent } from '../preview/preview.component';\nimport { IconComponent } from '../../core/icons';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/material/button\";\nimport * as i2 from \"@angular/material/progress-spinner\";\nimport * as i3 from \"@angular/material/tooltip\";\nimport * as i4 from \"@jsverse/transloco\";\nimport * as i5 from \"@angular/common\";\nimport * as i6 from \"../../core/pipes/bytes.pipe\";\nimport * as i7 from \"../../core/pipes/date-ago.pipe\";\nexport const OVERLAY_PAGE_NUMBER = new InjectionToken('OVERLAY_PAGE_NUMBER');\nexport const OVERLAY_RESOURCE_ID = new InjectionToken('OVERLAY_RESOURCE_ID');\nexport const OVERLAY_RESOURCE_TYPE = new InjectionToken('OVERLAY_RESOURCE_TYPE');\nexport class ContextOverlayComponent {\n resourceId = inject(OVERLAY_RESOURCE_ID);\n resourceType = inject(OVERLAY_RESOURCE_TYPE);\n pageNumber = inject(OVERLAY_PAGE_NUMBER);\n contextService = inject(ContextService);\n matDialog = inject(MatDialog);\n get resource() {\n return this.contextService.getContext(this.resourceId);\n }\n get status() {\n return this.contextService.status.get(this.resourceId);\n }\n get asset() {\n if (this.resourceType === 'content') {\n return this.contextService.assetForContent(this.resourceId);\n }\n else if (this.resourceType === 'event') {\n return this.contextService.assetForEvent(this.resource);\n }\n return null;\n }\n iconForMimeType() {\n if (this.resourceType === 'asset') {\n return 'asset';\n }\n else if (this.resourceType === 'asset-type') {\n return 'cube';\n }\n else if (this.resourceType === 'content') {\n return iconForMimeType(this.resource?.mimetype);\n }\n else if (this.resourceType === 'event') {\n return 'calendar_clock';\n }\n }\n labelForType() {\n if (this.resourceType === 'content') {\n return ('content.file_type.' +\n labelForMimeType(this.resource?.mimetype));\n }\n else if (this.resourceType === 'asset-type') {\n return 'assettype';\n }\n else {\n return this.resourceType;\n }\n }\n previewContent(pageNumber) {\n if (this.resourceType === 'content' && this.resource) {\n const content = this.resource;\n this.matDialog.open(PreviewComponent, {\n autoFocus: false,\n panelClass: 'upload-modal',\n data: { ...content, pageNumber },\n });\n }\n }\n isPreviewSupported() {\n if (this.resourceType === 'content' && this.resource) {\n const content = this.resource;\n return (content.mimetype?.startsWith('image') ||\n content.mimetype === 'application/pdf' ||\n content.mimetype === 'text/markdown');\n }\n else {\n return false;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContextOverlayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: ContextOverlayComponent, isStandalone: true, selector: \"ng-component\", ngImport: i0, template: \"<div\\n class=\\\"relative min-w-48 max-w-md rounded-2xl border border-zinc-400/50 bg-zinc-100/60 p-4 shadow-md backdrop-blur-md dark:border-zinc-600/50 dark:bg-zinc-800/60\\\"\\n *transloco=\\\"let t\\\"\\n>\\n @if (resource) {\\n @if (pageNumber) {\\n <div class=\\\"flex w-full flex-col gap-y-2 px-2\\\">\\n <div class=\\\"flex items-center gap-x-1\\\">\\n <span>{{ t('ai.source') }}:</span>\\n <button\\n class=\\\"text-blue-700 underline hover:text-blue-500 dark:text-blue-100 dark:hover:text-blue-400\\\"\\n (click)=\\\"previewContent(pageNumber)\\\"\\n >\\n {{ t('page') }} {{ pageNumber }}\\n </button>\\n <span>{{ t('ai.of_document') }}</span>\\n </div>\\n <div class=\\\"mx-2 h-0.5 bg-zinc-200 dark:bg-zinc-700\\\"></div>\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon\\n [name]=\\\"iconForMimeType()\\\"\\n size=\\\"20\\\"\\n class=\\\"icon-sm\\\"\\n ></ai-icon>\\n <div>\\n {{ resource?.filename }}\\n </div>\\n </div>\\n @if (asset) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"asset\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>\\n {{ asset.name }}\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div\\n class=\\\"flex w-full flex-col items-center justify-center gap-x-3 pb-4 sm:flex-row sm:justify-start\\\"\\n >\\n <div\\n class=\\\"flex rounded-xl border border-zinc-300/50 bg-zinc-300/40 p-2 dark:border-zinc-700/50 dark:bg-zinc-700/30\\\"\\n >\\n <ai-icon\\n [name]=\\\"iconForMimeType()\\\"\\n size=\\\"20\\\"\\n class=\\\"icon-sm\\\"\\n ></ai-icon>\\n </div>\\n <div class=\\\"w-full overflow-hidden\\\">\\n <div class=\\\"flex w-full flex-col items-center pr-8 sm:items-start\\\">\\n <div\\n class=\\\"w-full truncate text-md font-semibold text-zinc-950 dark:text-zinc-50\\\"\\n >\\n {{ resource?.name || resource?.filename }}\\n </div>\\n <div\\n class=\\\"flex flex-col gap-x-2 text-sm text-zinc-900/70 sm:flex-row sm:items-center dark:text-zinc-100/70\\\"\\n >\\n <span>{{ t(labelForType()) }}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"flex w-full flex-col gap-y-2 px-2\\\">\\n @if (resource?.owner?.name) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"shield_person\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>\\n {{ t('owner.managed_by') }}\\n <span class=\\\"font-semibold\\\">{{ resource.owner.name }}</span>\\n </div>\\n </div>\\n }\\n @if (asset) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"asset\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>{{ asset.name }} ({{ asset.type$name }})</div>\\n </div>\\n }\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"history\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div class=\\\"flex flex-col gap-x-2 sm:flex-row sm:items-center\\\">\\n @if (\\n resource?.updatedAt && resource?.updatedAt !== resource?.createdAt\\n ) {\\n <span>\\n {{ t('last_updated') }}\\n <span\\n class=\\\"select-none\\\"\\n matTooltip=\\\"{{ resource?.updatedAt | date: 'medium' }}\\\"\\n matTooltipClass=\\\"text-sm\\\"\\n >\\n {{ resource?.updatedAt | dateAgo }}\\n </span>\\n </span>\\n } @else {\\n <span>\\n {{ t('created') }}\\n <span\\n class=\\\"select-none\\\"\\n matTooltip=\\\"{{ resource?.createdAt | date: 'medium' }}\\\"\\n matTooltipClass=\\\"text-sm\\\"\\n >\\n {{ resource?.createdAt | dateAgo }}\\n </span>\\n </span>\\n }\\n </div>\\n </div>\\n @if (resource?.description) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"slide_text\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div class=\\\"line-clamp-3\\\">{{ resource?.description }}</div>\\n </div>\\n }\\n @if (resource?.size) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"drive\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>{{ resource?.size | bytes }}</div>\\n </div>\\n }\\n @if (isPreviewSupported()) {\\n <div class=\\\"w-full px-4 pt-4\\\">\\n <button\\n mat-raised-button\\n color=\\\"primary\\\"\\n class=\\\"w-full\\\"\\n (click)=\\\"previewContent()\\\"\\n >\\n {{ t('show_preview') }}\\n </button>\\n </div>\\n }\\n </div>\\n }\\n } @else if (status?.isLoading) {\\n <div class=\\\"flex h-10 w-10 items-center justify-center\\\">\\n <mat-spinner strokeWidth=\\\"1\\\" diameter=\\\"18\\\"></mat-spinner>\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col gap-y-1 px-2 py-1\\\">\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_load_item', { item: t(resourceType?.replace('-', '_')) })\\n }}</span>\\n <span class=\\\"text-xs\\\">{{ resourceId }}</span>\\n </div>\\n }\\n</div>\\n\", dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: ClipboardModule }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i1.MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i2.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i3.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"ngmodule\", type: TranslocoModule }, { kind: \"directive\", type: i4.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: UiPipesModule }, { kind: \"pipe\", type: i5.DatePipe, name: \"date\" }, { kind: \"pipe\", type: i6.BytesPipe, name: \"bytes\" }, { kind: \"pipe\", type: i7.DateAgoPipe, name: \"dateAgo\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ContextOverlayComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CommonModule,\n ClipboardModule,\n IconComponent,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n TranslocoModule,\n UiPipesModule,\n ], template: \"<div\\n class=\\\"relative min-w-48 max-w-md rounded-2xl border border-zinc-400/50 bg-zinc-100/60 p-4 shadow-md backdrop-blur-md dark:border-zinc-600/50 dark:bg-zinc-800/60\\\"\\n *transloco=\\\"let t\\\"\\n>\\n @if (resource) {\\n @if (pageNumber) {\\n <div class=\\\"flex w-full flex-col gap-y-2 px-2\\\">\\n <div class=\\\"flex items-center gap-x-1\\\">\\n <span>{{ t('ai.source') }}:</span>\\n <button\\n class=\\\"text-blue-700 underline hover:text-blue-500 dark:text-blue-100 dark:hover:text-blue-400\\\"\\n (click)=\\\"previewContent(pageNumber)\\\"\\n >\\n {{ t('page') }} {{ pageNumber }}\\n </button>\\n <span>{{ t('ai.of_document') }}</span>\\n </div>\\n <div class=\\\"mx-2 h-0.5 bg-zinc-200 dark:bg-zinc-700\\\"></div>\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon\\n [name]=\\\"iconForMimeType()\\\"\\n size=\\\"20\\\"\\n class=\\\"icon-sm\\\"\\n ></ai-icon>\\n <div>\\n {{ resource?.filename }}\\n </div>\\n </div>\\n @if (asset) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"asset\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>\\n {{ asset.name }}\\n </div>\\n </div>\\n }\\n </div>\\n } @else {\\n <div\\n class=\\\"flex w-full flex-col items-center justify-center gap-x-3 pb-4 sm:flex-row sm:justify-start\\\"\\n >\\n <div\\n class=\\\"flex rounded-xl border border-zinc-300/50 bg-zinc-300/40 p-2 dark:border-zinc-700/50 dark:bg-zinc-700/30\\\"\\n >\\n <ai-icon\\n [name]=\\\"iconForMimeType()\\\"\\n size=\\\"20\\\"\\n class=\\\"icon-sm\\\"\\n ></ai-icon>\\n </div>\\n <div class=\\\"w-full overflow-hidden\\\">\\n <div class=\\\"flex w-full flex-col items-center pr-8 sm:items-start\\\">\\n <div\\n class=\\\"w-full truncate text-md font-semibold text-zinc-950 dark:text-zinc-50\\\"\\n >\\n {{ resource?.name || resource?.filename }}\\n </div>\\n <div\\n class=\\\"flex flex-col gap-x-2 text-sm text-zinc-900/70 sm:flex-row sm:items-center dark:text-zinc-100/70\\\"\\n >\\n <span>{{ t(labelForType()) }}</span>\\n </div>\\n </div>\\n </div>\\n </div>\\n <div class=\\\"flex w-full flex-col gap-y-2 px-2\\\">\\n @if (resource?.owner?.name) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"shield_person\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>\\n {{ t('owner.managed_by') }}\\n <span class=\\\"font-semibold\\\">{{ resource.owner.name }}</span>\\n </div>\\n </div>\\n }\\n @if (asset) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"asset\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>{{ asset.name }} ({{ asset.type$name }})</div>\\n </div>\\n }\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"history\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div class=\\\"flex flex-col gap-x-2 sm:flex-row sm:items-center\\\">\\n @if (\\n resource?.updatedAt && resource?.updatedAt !== resource?.createdAt\\n ) {\\n <span>\\n {{ t('last_updated') }}\\n <span\\n class=\\\"select-none\\\"\\n matTooltip=\\\"{{ resource?.updatedAt | date: 'medium' }}\\\"\\n matTooltipClass=\\\"text-sm\\\"\\n >\\n {{ resource?.updatedAt | dateAgo }}\\n </span>\\n </span>\\n } @else {\\n <span>\\n {{ t('created') }}\\n <span\\n class=\\\"select-none\\\"\\n matTooltip=\\\"{{ resource?.createdAt | date: 'medium' }}\\\"\\n matTooltipClass=\\\"text-sm\\\"\\n >\\n {{ resource?.createdAt | dateAgo }}\\n </span>\\n </span>\\n }\\n </div>\\n </div>\\n @if (resource?.description) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"slide_text\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div class=\\\"line-clamp-3\\\">{{ resource?.description }}</div>\\n </div>\\n }\\n @if (resource?.size) {\\n <div class=\\\"flex items-center gap-x-3\\\">\\n <ai-icon name=\\\"drive\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n <div>{{ resource?.size | bytes }}</div>\\n </div>\\n }\\n @if (isPreviewSupported()) {\\n <div class=\\\"w-full px-4 pt-4\\\">\\n <button\\n mat-raised-button\\n color=\\\"primary\\\"\\n class=\\\"w-full\\\"\\n (click)=\\\"previewContent()\\\"\\n >\\n {{ t('show_preview') }}\\n </button>\\n </div>\\n }\\n </div>\\n }\\n } @else if (status?.isLoading) {\\n <div class=\\\"flex h-10 w-10 items-center justify-center\\\">\\n <mat-spinner strokeWidth=\\\"1\\\" diameter=\\\"18\\\"></mat-spinner>\\n </div>\\n } @else {\\n <div class=\\\"flex flex-col gap-y-1 px-2 py-1\\\">\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_load_item', { item: t(resourceType?.replace('-', '_')) })\\n }}</span>\\n <span class=\\\"text-xs\\\">{{ resourceId }}</span>\\n </div>\\n }\\n</div>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1vdmVybGF5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL2NvbnRleHQtb3ZlcmxheS9jb250ZXh0LW92ZXJsYXkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY29udGV4dC1vdmVybGF5L2NvbnRleHQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUdyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQTJCLE1BQU0sb0JBQW9CLENBQUM7QUFDN0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7Ozs7QUFFakQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQ25ELHFCQUFxQixDQUN0QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxjQUFjLENBQ25ELHFCQUFxQixDQUN0QixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxjQUFjLENBQ3JELHVCQUF1QixDQUN4QixDQUFDO0FBZUYsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxVQUFVLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FLM0IsQ0FBQztJQUNqQixVQUFVLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFeEIsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9DLElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksS0FBSztRQUNQLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5RCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3pDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQWlCLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUNsQyxPQUFPLE9BQU8sQ0FBQztRQUNqQixDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQzlDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0MsT0FBTyxlQUFlLENBQUUsSUFBSSxDQUFDLFFBQW9CLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDL0QsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN6QyxPQUFPLGdCQUFnQixDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsWUFBWTtRQUNWLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNwQyxPQUFPLENBQ0wsb0JBQW9CO2dCQUNwQixnQkFBZ0IsQ0FBRSxJQUFJLENBQUMsUUFBb0IsRUFBRSxRQUFRLENBQUMsQ0FDdkQsQ0FBQztRQUNKLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDOUMsT0FBTyxXQUFXLENBQUM7UUFDckIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjLENBQUMsVUFBbUI7UUFDaEMsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQW1CLENBQUM7WUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3BDLFNBQVMsRUFBRSxLQUFLO2dCQUNoQixVQUFVLEVBQUUsY0FBYztnQkFDMUIsSUFBSSxFQUFFLEVBQUUsR0FBRyxPQUFPLEVBQUUsVUFBVSxFQUFFO2FBQ2pDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRUQsa0JBQWtCO1FBQ2hCLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3JELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFtQixDQUFDO1lBQ3pDLE9BQU8sQ0FDTCxPQUFPLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3JDLE9BQU8sQ0FBQyxRQUFRLEtBQUssaUJBQWlCO2dCQUN0QyxPQUFPLENBQUMsUUFBUSxLQUFLLGVBQWUsQ0FDckMsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQzt1R0E3RVUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsd0VDdkNwQyx3OUtBc0pBLDJDRDFISSxZQUFZLDhCQUNaLGVBQWUsK0JBQ2YsYUFBYSxzRkFDYixlQUFlLG1YQUNmLHdCQUF3QixrT0FDeEIsZ0JBQWdCLDRUQUNoQixlQUFlLG1QQUNmLGFBQWE7OzJGQUlKLHVCQUF1QjtrQkFibkMsU0FBUzs4QkFDQzt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsZ0JBQWdCO3dCQUNoQixlQUFlO3dCQUNmLGFBQWE7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlwYm9hcmRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvY2xpcGJvYXJkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XG5pbXBvcnQgeyBUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5pbXBvcnQgdHlwZSB7IEFzc2V0LCBBc3NldFR5cGUsIENvbnRlbnQsIEV2ZW50IH0gZnJvbSAnQGhhaG5wcm8vaHBjLWFwaSc7XG5pbXBvcnQgeyBpY29uRm9yTWltZVR5cGUsIGxhYmVsRm9yTWltZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IFVpUGlwZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9jb3JlL3BpcGVzJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlLCBTdGF0dXMgYXMgQ29udGV4dFN0YXR1cyB9IGZyb20gJy4uL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBQcmV2aWV3Q29tcG9uZW50IH0gZnJvbSAnLi4vcHJldmlldy9wcmV2aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29yZS9pY29ucyc7XG5cbmV4cG9ydCBjb25zdCBPVkVSTEFZX1BBR0VfTlVNQkVSID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oXG4gICdPVkVSTEFZX1BBR0VfTlVNQkVSJyxcbik7XG5leHBvcnQgY29uc3QgT1ZFUkxBWV9SRVNPVVJDRV9JRCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAnT1ZFUkxBWV9SRVNPVVJDRV9JRCcsXG4pO1xuZXhwb3J0IGNvbnN0IE9WRVJMQVlfUkVTT1VSQ0VfVFlQRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmc+KFxuICAnT1ZFUkxBWV9SRVNPVVJDRV9UWVBFJyxcbik7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIENsaXBib2FyZE1vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBUcmFuc2xvY29Nb2R1bGUsXG4gICAgVWlQaXBlc01vZHVsZSxcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRleHQtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIENvbnRleHRPdmVybGF5Q29tcG9uZW50IHtcbiAgcmVzb3VyY2VJZCA9IGluamVjdChPVkVSTEFZX1JFU09VUkNFX0lEKTtcbiAgcmVzb3VyY2VUeXBlID0gaW5qZWN0KE9WRVJMQVlfUkVTT1VSQ0VfVFlQRSkgYXNcbiAgICB8ICdhc3NldCdcbiAgICB8ICdhc3NldC10eXBlJ1xuICAgIHwgJ2NvbnRlbnQnXG4gICAgfCAnZXZlbnQnXG4gICAgfCAnd2ViLXNvdXJjZSc7XG4gIHBhZ2VOdW1iZXIgPSBpbmplY3QoT1ZFUkxBWV9QQUdFX05VTUJFUik7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0U2VydmljZSA9IGluamVjdChDb250ZXh0U2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nID0gaW5qZWN0KE1hdERpYWxvZyk7XG5cbiAgZ2V0IHJlc291cmNlKCk6IEFzc2V0IHwgQXNzZXRUeXBlIHwgQ29udGVudCB8IEV2ZW50IHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5nZXRDb250ZXh0KHRoaXMucmVzb3VyY2VJZCk7XG4gIH1cblxuICBnZXQgc3RhdHVzKCk6IENvbnRleHRTdGF0dXMgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZXh0U2VydmljZS5zdGF0dXMuZ2V0KHRoaXMucmVzb3VyY2VJZCk7XG4gIH1cblxuICBnZXQgYXNzZXQoKTogQXNzZXQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGUgPT09ICdjb250ZW50Jykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UuYXNzZXRGb3JDb250ZW50KHRoaXMucmVzb3VyY2VJZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlc291cmNlVHlwZSA9PT0gJ2V2ZW50Jykge1xuICAgICAgcmV0dXJuIHRoaXMuY29udGV4dFNlcnZpY2UuYXNzZXRGb3JFdmVudCh0aGlzLnJlc291cmNlIGFzIEV2ZW50KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpY29uRm9yTWltZVR5cGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGUgPT09ICdhc3NldCcpIHtcbiAgICAgIHJldHVybiAnYXNzZXQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5yZXNvdXJjZVR5cGUgPT09ICdhc3NldC10eXBlJykge1xuICAgICAgcmV0dXJuICdjdWJlJztcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzb3VyY2VUeXBlID09PSAnY29udGVudCcpIHtcbiAgICAgIHJldHVybiBpY29uRm9yTWltZVR5cGUoKHRoaXMucmVzb3VyY2UgYXMgQ29udGVudCk/Lm1pbWV0eXBlKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVzb3VyY2VUeXBlID09PSAnZXZlbnQnKSB7XG4gICAgICByZXR1cm4gJ2NhbGVuZGFyX2Nsb2NrJztcbiAgICB9XG4gIH1cblxuICBsYWJlbEZvclR5cGUoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5yZXNvdXJjZVR5cGUgPT09ICdjb250ZW50Jykge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgJ2NvbnRlbnQuZmlsZV90eXBlLicgK1xuICAgICAgICBsYWJlbEZvck1pbWVUeXBlKCh0aGlzLnJlc291cmNlIGFzIENvbnRlbnQpPy5taW1ldHlwZSlcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJlc291cmNlVHlwZSA9PT0gJ2Fzc2V0LXR5cGUnKSB7XG4gICAgICByZXR1cm4gJ2Fzc2V0dHlwZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc291cmNlVHlwZTtcbiAgICB9XG4gIH1cblxuICBwcmV2aWV3Q29udGVudChwYWdlTnVtYmVyPzogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMucmVzb3VyY2VUeXBlID09PSAnY29udGVudCcgJiYgdGhpcy5yZXNvdXJjZSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMucmVzb3VyY2UgYXMgQ29udGVudDtcbiAgICAgIHRoaXMubWF0RGlhbG9nLm9wZW4oUHJldmlld0NvbXBvbmVudCwge1xuICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICBwYW5lbENsYXNzOiAndXBsb2FkLW1vZGFsJyxcbiAgICAgICAgZGF0YTogeyAuLi5jb250ZW50LCBwYWdlTnVtYmVyIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBpc1ByZXZpZXdTdXBwb3J0ZWQoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucmVzb3VyY2VUeXBlID09PSAnY29udGVudCcgJiYgdGhpcy5yZXNvdXJjZSkge1xuICAgICAgY29uc3QgY29udGVudCA9IHRoaXMucmVzb3VyY2UgYXMgQ29udGVudDtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIGNvbnRlbnQubWltZXR5cGU/LnN0YXJ0c1dpdGgoJ2ltYWdlJykgfHxcbiAgICAgICAgY29udGVudC5taW1ldHlwZSA9PT0gJ2FwcGxpY2F0aW9uL3BkZicgfHxcbiAgICAgICAgY29udGVudC5taW1ldHlwZSA9PT0gJ3RleHQvbWFya2Rvd24nXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicmVsYXRpdmUgbWluLXctNDggbWF4LXctbWQgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci16aW5jLTQwMC81MCBiZy16aW5jLTEwMC82MCBwLTQgc2hhZG93LW1kIGJhY2tkcm9wLWJsdXItbWQgZGFyazpib3JkZXItemluYy02MDAvNTAgZGFyazpiZy16aW5jLTgwMC82MFwiXG4gICp0cmFuc2xvY289XCJsZXQgdFwiXG4+XG4gIEBpZiAocmVzb3VyY2UpIHtcbiAgICBAaWYgKHBhZ2VOdW1iZXIpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBnYXAteS0yIHB4LTJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTFcIj5cbiAgICAgICAgICA8c3Bhbj57eyB0KCdhaS5zb3VyY2UnKSB9fTo8L3NwYW4+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LWJsdWUtNzAwIHVuZGVybGluZSBob3Zlcjp0ZXh0LWJsdWUtNTAwIGRhcms6dGV4dC1ibHVlLTEwMCBkYXJrOmhvdmVyOnRleHQtYmx1ZS00MDBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInByZXZpZXdDb250ZW50KHBhZ2VOdW1iZXIpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyB0KCdwYWdlJykgfX0ge3sgcGFnZU51bWJlciB9fVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuPnt7IHQoJ2FpLm9mX2RvY3VtZW50JykgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibXgtMiBoLTAuNSBiZy16aW5jLTIwMCBkYXJrOmJnLXppbmMtNzAwXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0zXCI+XG4gICAgICAgICAgPGFpLWljb25cbiAgICAgICAgICAgIFtuYW1lXT1cImljb25Gb3JNaW1lVHlwZSgpXCJcbiAgICAgICAgICAgIHNpemU9XCIyMFwiXG4gICAgICAgICAgICBjbGFzcz1cImljb24tc21cIlxuICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIHt7IHJlc291cmNlPy5maWxlbmFtZSB9fVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChhc3NldCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0zXCI+XG4gICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiYXNzZXRcIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICB7eyBhc3NldC5uYW1lIH19XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZmxleCB3LWZ1bGwgZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC14LTMgcGItNCBzbTpmbGV4LXJvdyBzbTpqdXN0aWZ5LXN0YXJ0XCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItemluYy0zMDAvNTAgYmctemluYy0zMDAvNDAgcC0yIGRhcms6Ym9yZGVyLXppbmMtNzAwLzUwIGRhcms6YmctemluYy03MDAvMzBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFpLWljb25cbiAgICAgICAgICAgIFtuYW1lXT1cImljb25Gb3JNaW1lVHlwZSgpXCJcbiAgICAgICAgICAgIHNpemU9XCIyMFwiXG4gICAgICAgICAgICBjbGFzcz1cImljb24tc21cIlxuICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgcHItOCBzbTppdGVtcy1zdGFydFwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICBjbGFzcz1cInctZnVsbCB0cnVuY2F0ZSB0ZXh0LW1kIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTk1MCBkYXJrOnRleHQtemluYy01MFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHJlc291cmNlPy5uYW1lIHx8IHJlc291cmNlPy5maWxlbmFtZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAteC0yIHRleHQtc20gdGV4dC16aW5jLTkwMC83MCBzbTpmbGV4LXJvdyBzbTppdGVtcy1jZW50ZXIgZGFyazp0ZXh0LXppbmMtMTAwLzcwXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPHNwYW4+e3sgdChsYWJlbEZvclR5cGUoKSkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBmbGV4LWNvbCBnYXAteS0yIHB4LTJcIj5cbiAgICAgICAgQGlmIChyZXNvdXJjZT8ub3duZXI/Lm5hbWUpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtM1wiPlxuICAgICAgICAgICAgPGFpLWljb24gbmFtZT1cInNoaWVsZF9wZXJzb25cIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICB7eyB0KCdvd25lci5tYW5hZ2VkX2J5JykgfX1cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkXCI+e3sgcmVzb3VyY2Uub3duZXIubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoYXNzZXQpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtM1wiPlxuICAgICAgICAgICAgPGFpLWljb24gbmFtZT1cImFzc2V0XCIgc2l6ZT1cIjIwXCIgY2xhc3M9XCJpY29uLXNtXCI+PC9haS1pY29uPlxuICAgICAgICAgICAgPGRpdj57eyBhc3NldC5uYW1lIH19ICh7eyBhc3NldC50eXBlJG5hbWUgfX0pPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTNcIj5cbiAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiaGlzdG9yeVwiIHNpemU9XCIyMFwiIGNsYXNzPVwiaWNvbi1zbVwiPjwvYWktaWNvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAteC0yIHNtOmZsZXgtcm93IHNtOml0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgcmVzb3VyY2U/LnVwZGF0ZWRBdCAmJiByZXNvdXJjZT8udXBkYXRlZEF0ICE9PSByZXNvdXJjZT8uY3JlYXRlZEF0XG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3sgdCgnbGFzdF91cGRhdGVkJykgfX1cbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJzZWxlY3Qtbm9uZVwiXG4gICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwie3sgcmVzb3VyY2U/LnVwZGF0ZWRBdCB8IGRhdGU6ICdtZWRpdW0nIH19XCJcbiAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBDbGFzcz1cInRleHQtc21cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IHJlc291cmNlPy51cGRhdGVkQXQgfCBkYXRlQWdvIH19XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgICAge3sgdCgnY3JlYXRlZCcpIH19XG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwic2VsZWN0LW5vbmVcIlxuICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cInt7IHJlc291cmNlPy5jcmVhdGVkQXQgfCBkYXRlOiAnbWVkaXVtJyB9fVwiXG4gICAgICAgICAgICAgICAgICBtYXRUb29sdGlwQ2xhc3M9XCJ0ZXh0LXNtXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICB7eyByZXNvdXJjZT8uY3JlYXRlZEF0IHwgZGF0ZUFnbyB9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChyZXNvdXJjZT8uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtM1wiPlxuICAgICAgICAgICAgPGFpLWljb24gbmFtZT1cInNsaWRlX3RleHRcIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGluZS1jbGFtcC0zXCI+e3sgcmVzb3VyY2U/LmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChyZXNvdXJjZT8uc2l6ZSkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0zXCI+XG4gICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiZHJpdmVcIiBzaXplPVwiMjBcIiBjbGFzcz1cImljb24tc21cIj48L2FpLWljb24+XG4gICAgICAgICAgICA8ZGl2Pnt7IHJlc291cmNlPy5zaXplIHwgYnl0ZXMgfX08L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGlzUHJldmlld1N1cHBvcnRlZCgpKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBweC00IHB0LTRcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGxcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwicHJldmlld0NvbnRlbnQoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHt7IHQoJ3Nob3dfcHJldmlldycpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9IEBlbHNlIGlmIChzdGF0dXM/LmlzTG9hZGluZykge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDxtYXQtc3Bpbm5lciBzdHJva2VXaWR0aD1cIjFcIiBkaWFtZXRlcj1cIjE4XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgfSBAZWxzZSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLXktMSBweC0yIHB5LTFcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC1tZCBmb250LXNlbWlib2xkXCI+e3tcbiAgICAgICAgdCgndG9hc3RfZXJyb3JfbG9hZF9pdGVtJywgeyBpdGVtOiB0KHJlc291cmNlVHlwZT8ucmVwbGFjZSgnLScsICdfJykpIH0pXG4gICAgICB9fTwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC14c1wiPnt7IHJlc291cmNlSWQgfX08L3NwYW4+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, inject, Injector, Input, ViewContainerRef, } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoModule } from '@jsverse/transloco';\nimport { IconComponent } from '../../core/icons';\nimport { iconForMimeType, labelForMimeType } from '../../core/utils';\nimport { UiPipesModule } from '../../core/pipes';\nimport { ContextService } from '../context.service';\nimport { ChatService } from '../chat.service';\nimport { ContextOverlayComponent, OVERLAY_PAGE_NUMBER, OVERLAY_RESOURCE_ID, OVERLAY_RESOURCE_TYPE, } from '../context-overlay/context-overlay.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/cdk/accordion\";\nimport * as i2 from \"@angular/material/progress-spinner\";\nimport * as i3 from \"@jsverse/transloco\";\nexport class MessageContextComponent {\n isLastMessage;\n message;\n chatService = inject(ChatService);\n contextService = inject(ContextService);\n iconForMimeType = iconForMimeType;\n labelForMimeType = labelForMimeType;\n uniqueReferences = [];\n processedIds = new Set();\n overlay = inject(Overlay);\n viewContainerRef = inject(ViewContainerRef);\n overlayRef = null;\n ngOnChanges(changes) {\n if (changes['message']) {\n this.processReferences();\n }\n }\n processReferences() {\n this.uniqueReferences = [];\n this.processedIds.clear();\n if (this.message?.parsedContent?.references) {\n this.uniqueReferences = this.message.parsedContent.references.filter((ref) => {\n if (this.processedIds.has(ref.id)) {\n return false;\n }\n this.processedIds.add(ref.id);\n return true;\n });\n }\n }\n openOverlay(event, resourceId, resourceType, pageNumber) {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(event.target)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n const injector = Injector.create({\n providers: [\n { provide: OVERLAY_RESOURCE_ID, useValue: resourceId },\n { provide: OVERLAY_RESOURCE_TYPE, useValue: resourceType },\n { provide: OVERLAY_PAGE_NUMBER, useValue: pageNumber },\n { provide: ContextService, useValue: this.contextService },\n ],\n parent: this.viewContainerRef.injector,\n });\n const portal = new ComponentPortal(ContextOverlayComponent, this.viewContainerRef, injector);\n this.overlayRef.attach(portal);\n this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MessageContextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: MessageContextComponent, isStandalone: true, selector: \"ai-message-context\", inputs: { isLastMessage: \"isLastMessage\", message: \"message\" }, usesOnChanges: true, ngImport: i0, template: \"<cdk-accordion *transloco=\\\"let t\\\">\\n <cdk-accordion-item\\n #accordionItem=\\\"cdkAccordionItem\\\"\\n [expanded]=\\\"isLastMessage\\\"\\n >\\n <div\\n class=\\\"flex min-w-80 max-w-full flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\\\"\\n >\\n @if (message?.parsedContent?.references?.length) {\\n <div\\n class=\\\"flex cursor-pointer items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\\\"\\n (click)=\\\"accordionItem.toggle()\\\"\\n (keyup.enter)=\\\"accordionItem.toggle()\\\"\\n tabindex=\\\"0\\\"\\n >\\n <ai-icon name=\\\"layer_diagonal_sparkle\\\"></ai-icon>\\n <span class=\\\"font-bold\\\">{{ t('ai.context') }}</span>\\n </div>\\n @if (accordionItem.expanded) {\\n <div class=\\\"flex flex-nowrap gap-x-3 overflow-x-auto px-5 pb-3\\\">\\n @for (ref of uniqueReferences; track ref.reference_id) {\\n @if (contextService.getContext(ref.id); as resource) {\\n @if (\\n ref.resourceType === 'asset' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"asset\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n @if (resource.type$name) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{\\n resource.type$name\\n }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (ref.resourceType === 'content') {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon\\n [name]=\\\"iconForMimeType(resource.mimetype)\\\"\\n ></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.filename\\n }}</span>\\n @if (\\n contextService.assetForContent(resource.id);\\n as asset\\n ) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ asset.name }}</span>\\n <span>\\u00B7</span>\\n <span class=\\\"truncate\\\">{{ asset.type$name }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (\\n ref.resourceType === 'event' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"calendar_clock\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n @if (contextService.assetForEvent(resource); as asset) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ asset.name }}</span>\\n <span>\\u00B7</span>\\n <span class=\\\"truncate\\\">{{ asset.type$name }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (\\n ref.resourceType === 'asset-type' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"cube\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n </div>\\n </div>\\n </div>\\n }\\n } @else if (contextService.status.get(ref.id)?.isLoading) {\\n <div\\n class=\\\"flex rounded-2xl border border-zinc-400/40 bg-zinc-400/20 px-2 py-1 dark:border-black/50 dark:bg-black/20\\\"\\n >\\n <div class=\\\"flex h-10 w-10 items-center justify-center\\\">\\n <mat-spinner strokeWidth=\\\"1\\\" diameter=\\\"18\\\"></mat-spinner>\\n </div>\\n </div>\\n } @else {\\n <div\\n class=\\\"min-w-40 rounded-2xl border border-zinc-400/40 bg-zinc-400/20 dark:border-black/50 dark:bg-black/20\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-red-300 bg-red-100 text-red-700 dark:border-red-900 dark:bg-red-950/80 dark:text-red-400\\\"\\n >\\n <ai-icon name=\\\"error_circle\\\"></ai-icon>\\n </div>\\n <div class=\\\"flex h-full flex-col pr-4\\\">\\n @if (contextService.status.get(ref.id)?.notFound) {\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_not_found_item', {\\n item: t(ref.resourceType?.replace('-', '_')),\\n })\\n }}</span>\\n } @else {\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_load_item', {\\n item: t(ref.resourceType?.replace('-', '_')),\\n })\\n }}</span>\\n }\\n <span class=\\\"text-xs\\\">{{ ref.id }}</span>\\n </div>\\n </div>\\n </div>\\n }\\n }\\n </div>\\n }\\n }\\n </div>\\n </cdk-accordion-item>\\n</cdk-accordion>\\n\", styles: [\"@keyframes flash{0%,to{background:transparent}50%{background:#06b6d44d}}.animate-highlight{animation:flash .75s linear;animation-fill-mode:backwards;animation-iteration-count:2}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CdkAccordionModule }, { kind: \"directive\", type: i1.CdkAccordion, selector: \"cdk-accordion, [cdkAccordion]\", inputs: [\"multi\"], exportAs: [\"cdkAccordion\"] }, { kind: \"directive\", type: i1.CdkAccordionItem, selector: \"cdk-accordion-item, [cdkAccordionItem]\", inputs: [\"expanded\", \"disabled\"], outputs: [\"closed\", \"opened\", \"destroyed\", \"expandedChange\"], exportAs: [\"cdkAccordionItem\"] }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i2.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: OverlayModule }, { kind: \"ngmodule\", type: TranslocoModule }, { kind: \"directive\", type: i3.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: UiPipesModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MessageContextComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CdkAccordionModule,\n IconComponent,\n MatButtonModule,\n MatProgressSpinnerModule,\n OverlayModule,\n TranslocoModule,\n UiPipesModule,\n ], selector: 'ai-message-context', template: \"<cdk-accordion *transloco=\\\"let t\\\">\\n <cdk-accordion-item\\n #accordionItem=\\\"cdkAccordionItem\\\"\\n [expanded]=\\\"isLastMessage\\\"\\n >\\n <div\\n class=\\\"flex min-w-80 max-w-full flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\\\"\\n >\\n @if (message?.parsedContent?.references?.length) {\\n <div\\n class=\\\"flex cursor-pointer items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\\\"\\n (click)=\\\"accordionItem.toggle()\\\"\\n (keyup.enter)=\\\"accordionItem.toggle()\\\"\\n tabindex=\\\"0\\\"\\n >\\n <ai-icon name=\\\"layer_diagonal_sparkle\\\"></ai-icon>\\n <span class=\\\"font-bold\\\">{{ t('ai.context') }}</span>\\n </div>\\n @if (accordionItem.expanded) {\\n <div class=\\\"flex flex-nowrap gap-x-3 overflow-x-auto px-5 pb-3\\\">\\n @for (ref of uniqueReferences; track ref.reference_id) {\\n @if (contextService.getContext(ref.id); as resource) {\\n @if (\\n ref.resourceType === 'asset' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"asset\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n @if (resource.type$name) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{\\n resource.type$name\\n }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (ref.resourceType === 'content') {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon\\n [name]=\\\"iconForMimeType(resource.mimetype)\\\"\\n ></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.filename\\n }}</span>\\n @if (\\n contextService.assetForContent(resource.id);\\n as asset\\n ) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ asset.name }}</span>\\n <span>\\u00B7</span>\\n <span class=\\\"truncate\\\">{{ asset.type$name }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (\\n ref.resourceType === 'event' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"calendar_clock\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n @if (contextService.assetForEvent(resource); as asset) {\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ asset.name }}</span>\\n <span>\\u00B7</span>\\n <span class=\\\"truncate\\\">{{ asset.type$name }}</span>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (\\n ref.resourceType === 'asset-type' &&\\n contextService.getContext(ref.id)\\n ) {\\n <div\\n class=\\\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"openOverlay($event, ref.id, ref.resourceType)\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, ref.id, ref.resourceType)\\n \\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n [class.animate-highlight]=\\\"\\n resource.id === chatService.highlightContext\\n \\\"\\n (animationend)=\\\"chatService.highlightContext = ''\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"cube\\\"></ai-icon>\\n </div>\\n <div\\n class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\"\\n >\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n resource.name\\n }}</span>\\n </div>\\n </div>\\n </div>\\n }\\n } @else if (contextService.status.get(ref.id)?.isLoading) {\\n <div\\n class=\\\"flex rounded-2xl border border-zinc-400/40 bg-zinc-400/20 px-2 py-1 dark:border-black/50 dark:bg-black/20\\\"\\n >\\n <div class=\\\"flex h-10 w-10 items-center justify-center\\\">\\n <mat-spinner strokeWidth=\\\"1\\\" diameter=\\\"18\\\"></mat-spinner>\\n </div>\\n </div>\\n } @else {\\n <div\\n class=\\\"min-w-40 rounded-2xl border border-zinc-400/40 bg-zinc-400/20 dark:border-black/50 dark:bg-black/20\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-red-300 bg-red-100 text-red-700 dark:border-red-900 dark:bg-red-950/80 dark:text-red-400\\\"\\n >\\n <ai-icon name=\\\"error_circle\\\"></ai-icon>\\n </div>\\n <div class=\\\"flex h-full flex-col pr-4\\\">\\n @if (contextService.status.get(ref.id)?.notFound) {\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_not_found_item', {\\n item: t(ref.resourceType?.replace('-', '_')),\\n })\\n }}</span>\\n } @else {\\n <span class=\\\"text-md font-semibold\\\">{{\\n t('toast_error_load_item', {\\n item: t(ref.resourceType?.replace('-', '_')),\\n })\\n }}</span>\\n }\\n <span class=\\\"text-xs\\\">{{ ref.id }}</span>\\n </div>\\n </div>\\n </div>\\n }\\n }\\n </div>\\n }\\n }\\n </div>\\n </cdk-accordion-item>\\n</cdk-accordion>\\n\", styles: [\"@keyframes flash{0%,to{background:transparent}50%{background:#06b6d44d}}.animate-highlight{animation:flash .75s linear;animation-fill-mode:backwards;animation-iteration-count:2}\\n\"] }]\n }], propDecorators: { isLastMessage: [{\n type: Input\n }], message: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS1jb250ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL21lc3NhZ2UtY29udGV4dC9tZXNzYWdlLWNvbnRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvbWVzc2FnZS1jb250ZXh0L21lc3NhZ2UtY29udGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUdMLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXJELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQW9CLFdBQVcsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFDTCx1QkFBdUIs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YUFDM0Q7WUFDRCxNQUFNLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVE7U0FDdkMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQ2hDLHVCQUF1QixFQUN2QixJQUFJLENBQUMsZ0JBQWdCLEVBQ3JCLFFBQVEsQ0FDVCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7dUdBbEZVLHVCQUF1QjsyRkFBdkIsdUJBQXVCLG1LQzFDcEMsMm5WQWdPQSw0T0RsTUksa0JBQWtCLDZZQUNsQixhQUFhLHNGQUNiLGVBQWUsOEJBQ2Ysd0JBQXdCLGtPQUN4QixhQUFhLDhCQUNiLGVBQWUsbVBBQ2YsYUFBYTs7MkZBTUosdUJBQXVCO2tCQWRuQyxTQUFTOzhCQUNDO3dCQUNQLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLHdCQUF3Qjt3QkFDeEIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7cUJBQ2QsWUFDUyxvQkFBb0I7OEJBS3JCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2FjY29yZGlvbic7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5TW9kdWxlLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvaWNvbnMnO1xuaW1wb3J0IHsgaWNvbkZvck1pbWVUeXBlLCBsYWJlbEZvck1pbWVUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBVaVBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29yZS9waXBlcyc7XG5pbXBvcnQgeyBDb250ZXh0U2VydmljZSB9IGZyb20gJy4uL2NvbnRleHQuc2VydmljZSc7XG5pbXBvcnQgeyBBc3Npc3RhbnRNZXNzYWdlLCBDaGF0U2VydmljZSB9IGZyb20gJy4uL2NoYXQuc2VydmljZSc7XG5pbXBvcnQge1xuICBDb250ZXh0T3ZlcmxheUNvbXBvbmVudCxcbiAgT1ZFUkxBWV9QQUdFX05VTUJFUixcbiAgT1ZFUkxBWV9SRVNPVVJDRV9JRCxcbiAgT1ZFUkxBWV9SRVNPVVJDRV9UWVBFLFxufSBmcm9tICcuLi9jb250ZXh0LW92ZXJsYXkvY29udGV4dC1vdmVybGF5LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBpbXBvcnRzOiBbXG4gICAgQ2RrQWNjb3JkaW9uTW9kdWxlLFxuICAgIEljb25Db21wb25lbnQsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBPdmVybGF5TW9kdWxlLFxuICAgIFRyYW5zbG9jb01vZHVsZSxcbiAgICBVaVBpcGVzTW9kdWxlLFxuICBdLFxuICBzZWxlY3RvcjogJ2FpLW1lc3NhZ2UtY29udGV4dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLWNvbnRleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbWVzc2FnZS1jb250ZXh0LmNvbXBvbmVudC5zY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUNvbnRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpc0xhc3RNZXNzYWdlOiBib29sZWFuO1xuICBASW5wdXQoKSBtZXNzYWdlOiBBc3Npc3RhbnRNZXNzYWdlO1xuXG4gIHJlYWRvbmx5IGNoYXRTZXJ2aWNlID0gaW5qZWN0KENoYXRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgY29udGV4dFNlcnZpY2UgPSBpbmplY3QoQ29udGV4dFNlcnZpY2UpO1xuICBpY29uRm9yTWltZVR5cGUgPSBpY29uRm9yTWltZVR5cGU7XG4gIGxhYmVsRm9yTWltZVR5cGUgPSBsYWJlbEZvck1pbWVUeXBlO1xuICB1bmlxdWVSZWZlcmVuY2VzOiBhbnlbXSA9IFtdO1xuXG4gIHByaXZhdGUgcHJvY2Vzc2VkSWRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXNbJ21lc3NhZ2UnXSkge1xuICAgICAgdGhpcy5wcm9jZXNzUmVmZXJlbmNlcygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc1JlZmVyZW5jZXMoKTogdm9pZCB7XG4gICAgdGhpcy51bmlxdWVSZWZlcmVuY2VzID0gW107XG4gICAgdGhpcy5wcm9jZXNzZWRJZHMuY2xlYXIoKTtcblxuICAgIGlmICh0aGlzLm1lc3NhZ2U/LnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXMpIHtcbiAgICAgIHRoaXMudW5pcXVlUmVmZXJlbmNlcyA9IHRoaXMubWVzc2FnZS5wYXJzZWRDb250ZW50LnJlZmVyZW5jZXMuZmlsdGVyKFxuICAgICAgICAocmVmKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMucHJvY2Vzc2VkSWRzLmhhcyhyZWYuaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMucHJvY2Vzc2VkSWRzLmFkZChyZWYuaWQpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBvcGVuT3ZlcmxheShcbiAgICBldmVudDogTW91c2VFdmVudCxcbiAgICByZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgcmVzb3VyY2VUeXBlPzogJ2Fzc2V0JyB8ICdhc3NldC10eXBlJyB8ICdjb250ZW50JyB8ICdldmVudCcgfCAnd2ViLXNvdXJjZScsXG4gICAgcGFnZU51bWJlcj86IG51bWJlcixcbiAgKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9SRVNPVVJDRV9JRCwgdXNlVmFsdWU6IHJlc291cmNlSWQgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX1JFU09VUkNFX1RZUEUsIHVzZVZhbHVlOiByZXNvdXJjZVR5cGUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX1BBR0VfTlVNQkVSLCB1c2VWYWx1ZTogcGFnZU51bWJlciB9LFxuICAgICAgICB7IHByb3ZpZGU6IENvbnRleHRTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5jb250ZXh0U2VydmljZSB9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLFxuICAgIH0pO1xuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBDb250ZXh0T3ZlcmxheUNvbXBvbmVudCxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIGluamVjdG9yLFxuICAgICk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCkpO1xuICB9XG59XG4iLCI8Y2RrLWFjY29yZGlvbiAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgPGNkay1hY2NvcmRpb24taXRlbVxuICAgICNhY2NvcmRpb25JdGVtPVwiY2RrQWNjb3JkaW9uSXRlbVwiXG4gICAgW2V4cGFuZGVkXT1cImlzTGFzdE1lc3NhZ2VcIlxuICA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJmbGV4IG1pbi13LTgwIG1heC13LWZ1bGwgZmxleC1jb2wgcm91bmRlZC0yeGwgYmctemluYy0zMDAvNDAgcHQtMyBkYXJrOmJnLXppbmMtNzAwLzMwXCJcbiAgICA+XG4gICAgICBAaWYgKG1lc3NhZ2U/LnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXM/Lmxlbmd0aCkge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGN1cnNvci1wb2ludGVyIGl0ZW1zLWNlbnRlciBnYXAteC0zIHB4LTUgcGItMyB0ZXh0LXppbmMtODAwIGRhcms6dGV4dC16aW5jLTMwMFwiXG4gICAgICAgICAgKGNsaWNrKT1cImFjY29yZGlvbkl0ZW0udG9nZ2xlKClcIlxuICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJhY2NvcmRpb25JdGVtLnRvZ2dsZSgpXCJcbiAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICA+XG4gICAgICAgICAgPGFpLWljb24gbmFtZT1cImxheWVyX2RpYWdvbmFsX3NwYXJrbGVcIj48L2FpLWljb24+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGRcIj57eyB0KCdhaS5jb250ZXh0JykgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKGFjY29yZGlvbkl0ZW0uZXhwYW5kZWQpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LW5vd3JhcCBnYXAteC0zIG92ZXJmbG93LXgtYXV0byBweC01IHBiLTNcIj5cbiAgICAgICAgICAgIEBmb3IgKHJlZiBvZiB1bmlxdWVSZWZlcmVuY2VzOyB0cmFjayByZWYucmVmZXJlbmNlX2lkKSB7XG4gICAgICAgICAgICAgIEBpZiAoY29udGV4dFNlcnZpY2UuZ2V0Q29udGV4dChyZWYuaWQpOyBhcyByZXNvdXJjZSkge1xuICAgICAgICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAgICAgICByZWYucmVzb3VyY2VUeXBlID09PSAnYXNzZXQnICYmXG4gICAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5nZXRDb250ZXh0KHJlZi5pZClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW4tdy00MCBtYXgtdy04MCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIGhvdmVyOmJnLXppbmMtNDAwLzMwIGRhcms6Ym9yZGVyLWJsYWNrLzUwIGRhcms6YmctYmxhY2svMjBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZWYuaWQsIHJlZi5yZXNvdXJjZVR5cGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdmVybGF5KCRldmVudCwgcmVmLmlkLCByZWYucmVzb3VyY2VUeXBlKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdyb3cgaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgcHgtMiBweS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYW5pbWF0ZS1oaWdobGlnaHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5pZCA9PT0gY2hhdFNlcnZpY2UuaGlnaGxpZ2h0Q29udGV4dFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGFuaW1hdGlvbmVuZCk9XCJjaGF0U2VydmljZS5oaWdobGlnaHRDb250ZXh0ID0gJydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzMwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiYXNzZXRcIj48L2FpLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtZnVsbCBncm93IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBwci00XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlIHRleHQtbWQgZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZXNvdXJjZS50eXBlJG5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTIgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UudHlwZSRuYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKHJlZi5yZXNvdXJjZVR5cGUgPT09ICdjb250ZW50Jykge1xuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pbi13LTQwIG1heC13LTgwIGN1cnNvci1wb2ludGVyIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItemluYy00MDAvNDAgYmctemluYy00MDAvMjAgaG92ZXI6YmctemluYy00MDAvMzAgZGFyazpib3JkZXItYmxhY2svNTAgZGFyazpiZy1ibGFjay8yMFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuT3ZlcmxheSgkZXZlbnQsIHJlZi5pZCwgcmVmLnJlc291cmNlVHlwZSlcIlxuICAgICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiXG4gICAgICAgICAgICAgICAgICAgICAgb3Blbk92ZXJsYXkoJGV2ZW50LCByZWYuaWQsIHJlZi5yZXNvdXJjZVR5cGUpXG4gICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZ3JvdyBpdGVtcy1jZW50ZXIgZ2FwLXgtMiByb3VuZGVkLTJ4bCBweC0yIHB5LTFcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzcy5hbmltYXRlLWhpZ2hsaWdodF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLmlkID09PSBjaGF0U2VydmljZS5oaWdobGlnaHRDb250ZXh0XG4gICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAoYW5pbWF0aW9uZW5kKT1cImNoYXRTZXJ2aWNlLmhpZ2hsaWdodENvbnRleHQgPSAnJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaC0xMCB3LTEwIHNocmluay0wIGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLXhsIGJvcmRlciBib3JkZXItemluYy00MDAvMzBcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhaS1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtuYW1lXT1cImljb25Gb3JNaW1lVHlwZShyZXNvdXJjZS5taW1ldHlwZSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaC1mdWxsIGdyb3cgZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuIHByLTRcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUgdGV4dC1tZCBmb250LXNlbWlib2xkXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UuZmlsZW5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dFNlcnZpY2UuYXNzZXRGb3JDb250ZW50KHJlc291cmNlLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXMgYXNzZXRcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMiB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGFzc2V0Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+wrc8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGFzc2V0LnR5cGUkbmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICByZWYucmVzb3VyY2VUeXBlID09PSAnZXZlbnQnICYmXG4gICAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5nZXRDb250ZXh0KHJlZi5pZClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW4tdy00MCBtYXgtdy04MCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIGhvdmVyOmJnLXppbmMtNDAwLzMwIGRhcms6Ym9yZGVyLWJsYWNrLzUwIGRhcms6YmctYmxhY2svMjBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZWYuaWQsIHJlZi5yZXNvdXJjZVR5cGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdmVybGF5KCRldmVudCwgcmVmLmlkLCByZWYucmVzb3VyY2VUeXBlKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdyb3cgaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgcHgtMiBweS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYW5pbWF0ZS1oaWdobGlnaHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5pZCA9PT0gY2hhdFNlcnZpY2UuaGlnaGxpZ2h0Q29udGV4dFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGFuaW1hdGlvbmVuZCk9XCJjaGF0U2VydmljZS5oaWdobGlnaHRDb250ZXh0ID0gJydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzMwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiY2FsZW5kYXJfY2xvY2tcIj48L2FpLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtZnVsbCBncm93IGZsZXgtY29sIG92ZXJmbG93LWhpZGRlbiBwci00XCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRydW5jYXRlIHRleHQtbWQgZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250ZXh0U2VydmljZS5hc3NldEZvckV2ZW50KHJlc291cmNlKTsgYXMgYXNzZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTIgdGV4dC14c1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBhc3NldC5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPsK3PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGVcIj57eyBhc3NldC50eXBlJG5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKFxuICAgICAgICAgICAgICAgICAgcmVmLnJlc291cmNlVHlwZSA9PT0gJ2Fzc2V0LXR5cGUnICYmXG4gICAgICAgICAgICAgICAgICBjb250ZXh0U2VydmljZS5nZXRDb250ZXh0KHJlZi5pZClcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJtaW4tdy00MCBtYXgtdy04MCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIGhvdmVyOmJnLXppbmMtNDAwLzMwIGRhcms6Ym9yZGVyLWJsYWNrLzUwIGRhcms6YmctYmxhY2svMjBcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZWYuaWQsIHJlZi5yZXNvdXJjZVR5cGUpXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cIlxuICAgICAgICAgICAgICAgICAgICAgIG9wZW5PdmVybGF5KCRldmVudCwgcmVmLmlkLCByZWYucmVzb3VyY2VUeXBlKVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdyb3cgaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgcHgtMiBweS0xXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYW5pbWF0ZS1oaWdobGlnaHRdPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5pZCA9PT0gY2hhdFNlcnZpY2UuaGlnaGxpZ2h0Q29udGV4dFxuICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgKGFuaW1hdGlvbmVuZCk9XCJjaGF0U2VydmljZS5oaWdobGlnaHRDb250ZXh0ID0gJydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzMwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwiY3ViZVwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggaC1mdWxsIGdyb3cgZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuIHByLTRcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHJ1bmNhdGUgdGV4dC1tZCBmb250LXNlbWlib2xkXCI+e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChjb250ZXh0U2VydmljZS5zdGF0dXMuZ2V0KHJlZi5pZCk/LmlzTG9hZGluZykge1xuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIHB4LTIgcHktMSBkYXJrOmJvcmRlci1ibGFjay81MCBkYXJrOmJnLWJsYWNrLzIwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBoLTEwIHctMTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtc3Bpbm5lciBzdHJva2VXaWR0aD1cIjFcIiBkaWFtZXRlcj1cIjE4XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBjbGFzcz1cIm1pbi13LTQwIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItemluYy00MDAvNDAgYmctemluYy00MDAvMjAgZGFyazpib3JkZXItYmxhY2svNTAgZGFyazpiZy1ibGFjay8yMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsZXggZ3JvdyBpdGVtcy1jZW50ZXIgZ2FwLXgtMiByb3VuZGVkLTJ4bCBweC0yIHB5LTFcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGgtMTAgdy0xMCBzaHJpbmstMCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgcm91bmRlZC14bCBib3JkZXIgYm9yZGVyLXJlZC0zMDAgYmctcmVkLTEwMCB0ZXh0LXJlZC03MDAgZGFyazpib3JkZXItcmVkLTkwMCBkYXJrOmJnLXJlZC05NTAvODAgZGFyazp0ZXh0LXJlZC00MDBcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgPGFpLWljb24gbmFtZT1cImVycm9yX2NpcmNsZVwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGgtZnVsbCBmbGV4LWNvbCBwci00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChjb250ZXh0U2VydmljZS5zdGF0dXMuZ2V0KHJlZi5pZCk/Lm5vdEZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbWQgZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHQoJ3RvYXN0X2Vycm9yX25vdF9mb3VuZF9pdGVtJywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW06IHQocmVmLnJlc291cmNlVHlwZT8ucmVwbGFjZSgnLScsICdfJykpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbWQgZm9udC1zZW1pYm9sZFwiPnt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHQoJ3RvYXN0X2Vycm9yX2xvYWRfaXRlbScsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtOiB0KHJlZi5yZXNvdXJjZVR5cGU/LnJlcGxhY2UoJy0nLCAnXycpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQteHNcIj57eyByZWYuaWQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Nkay1hY2NvcmRpb24taXRlbT5cbjwvY2RrLWFjY29yZGlvbj5cbiJdfQ==","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { Overlay, OverlayModule } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Component, inject, Injector, ViewContainerRef, } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { MarkdownModule } from 'ngx-markdown';\nimport { IconComponent } from '../../core/icons';\nimport { UiPipesModule } from '../../core/pipes/pipes.module';\nimport { ChatService } from '../chat.service';\nimport { ContextOverlayComponent, OVERLAY_PAGE_NUMBER, OVERLAY_RESOURCE_ID, OVERLAY_RESOURCE_TYPE, } from '../context-overlay/context-overlay.component';\nimport { MessageContextComponent } from '../message-context/message-context.component';\nimport { ContextService } from '../context.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"ngx-markdown\";\nimport * as i2 from \"@angular/material/progress-spinner\";\nimport * as i3 from \"@angular/material/tooltip\";\nimport * as i4 from \"@jsverse/transloco\";\nexport class ThreadComponent {\n chatService = inject(ChatService);\n contextService = inject(ContextService);\n selection;\n translocoService = inject(TranslocoService);\n overlay = inject(Overlay);\n viewContainerRef = inject(ViewContainerRef);\n overlayRef = null;\n ngOnDestroy() {\n this.chatService.closeThread();\n }\n openOverlay(event, resourceId, resourceType, pageNumber) {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(event.target)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n const injector = Injector.create({\n providers: [\n { provide: OVERLAY_RESOURCE_ID, useValue: resourceId },\n { provide: OVERLAY_RESOURCE_TYPE, useValue: resourceType },\n { provide: OVERLAY_PAGE_NUMBER, useValue: pageNumber },\n { provide: ContextService, useValue: this.contextService },\n ],\n parent: this.viewContainerRef.injector,\n });\n const portal = new ComponentPortal(ContextOverlayComponent, this.viewContainerRef, injector);\n this.overlayRef.attach(portal);\n this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());\n }\n interceptClick(event) {\n const element = event.target;\n if (!(element instanceof HTMLAnchorElement)) {\n return;\n }\n let href = element.getAttribute('href');\n if (href.startsWith('$')) {\n href = href.substring(1);\n const params = href.split(',');\n const queryParams = params.reduce((acc, param) => {\n const [key, value] = param.split('=');\n acc[key] = value;\n return acc;\n }, {});\n if (queryParams.ref && queryParams.msg) {\n const message = this.chatService.messages.find((m) => m.id === queryParams.msg);\n if (message) {\n const { references } = message.parsedContent;\n const reference = references?.find((ref) => ref.reference_id === parseInt(queryParams.ref, 10));\n if (reference?.id) {\n const { id, pageNumber } = reference;\n this.chatService.highlightContext = id;\n this.openOverlay(event, id, reference.resourceType, pageNumber);\n }\n else {\n // this.toastService.error(\n // this.translocoService.translate('ai.reference_not_found'),\n // );\n }\n }\n }\n event.preventDefault();\n }\n }\n /**\n * Processes message content by:\n * 1. Converting names in quotes to bold references if they exist in the context cache\n * 2. Replacing reference IDs with clickable superscript elements\n *\n * @param message The assistant or user message to process\n * @returns Processed markdown content with enhanced references\n */\n getMarkdownContent(message) {\n const content = message.parsedContent?.response;\n let processedContent;\n if (typeof content !== 'string') {\n return '';\n }\n try {\n processedContent = content.replace(/'([^'\"]*)'|\"([^'\"]*)\"/g, (match, singleQuoted, doubleQuoted) => {\n const name = singleQuoted || doubleQuoted;\n const id = this.contextService.getIdForName(name);\n if (!id) {\n return name;\n }\n const reference = message.parsedContent?.references.find((ref) => ref.id === id);\n return reference ? `**${name}**[[${reference.reference_id}]]` : name;\n });\n }\n catch (_) {\n processedContent = content;\n }\n return processedContent.replace(/\\[\\[([\\s\\S]*?)\\]\\]/g, (match, inner) => {\n const ids = inner.match(/\\d+/g);\n if (!ids) {\n return match;\n }\n return ids\n .map((id) => `<sup><b>[[${id}]]($ref=${id},msg=${message.id},)</b></sup>`)\n .join(', ');\n });\n }\n getToolStatus(item) {\n const statusMessage = this.translocoService.translate(`ai.tools.${item.toolName}.${item.status}`);\n return statusMessage || null;\n }\n getFailReason(item) {\n const reason = this.translocoService.translate(`ai.finish_reason.${item.finishReason}`);\n return (reason || this.translocoService.translate('ai.finish_reason.unknown'));\n }\n getToolResult(item) {\n try {\n return JSON.parse(item.result.value);\n }\n catch (_) {\n return null;\n }\n }\n selectChoice(selection, toolMessage) {\n this.chatService.selectChoice(selection, toolMessage);\n }\n trackByMessageId(item) {\n return item.responseId || item.id || '';\n }\n retry(message) {\n if (!message) {\n return;\n }\n this.chatService.retryMessage(message);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ThreadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: ThreadComponent, isStandalone: true, selector: \"ai-thread\", ngImport: i0, template: \"<div\\n class=\\\"relative flex h-full w-full flex-col gap-1 px-6 py-4\\\"\\n *transloco=\\\"let t\\\"\\n>\\n @if (chatService.isLoading) {\\n <div\\n class=\\\"absolute inset-0 z-100 flex items-center justify-center backdrop-blur-lg\\\"\\n >\\n <mat-spinner diameter=\\\"28\\\"></mat-spinner>\\n </div>\\n }\\n @for (\\n item of chatService.messages;\\n track trackByMessageId(item);\\n let idx = $index\\n ) {\\n @if (item.role === 'assistant' && item.parsedContent) {\\n @if (item.status === 'failed') {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col self-center p-2 md:max-w-[85%]\\\"\\n >\\n <div\\n class=\\\"flex items-center gap-x-4 rounded-2xl bg-red-200/20 px-6 py-4 text-md md:text-lg dark:bg-red-800/20\\\"\\n >\\n <ai-icon\\n name=\\\"error_circle\\\"\\n class=\\\"text-red-600/80 icon-md dark:text-red-400/80\\\"\\n ></ai-icon>\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n ></markdown>\\n </div>\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n } @else {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\\\"\\n >\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n (click)=\\\"interceptClick($event)\\\"\\n ></markdown>\\n @if (item.parsedContent.references?.length) {\\n <ai-message-context\\n [message]=\\\"item\\\"\\n [isLastMessage]=\\\"idx === chatService.messages.length - 1\\\"\\n class=\\\"mt-2\\\"\\n ></ai-message-context>\\n }\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n }\\n } @else if (\\n item.role === 'assistant' &&\\n item.status === 'failed' &&\\n getFailReason(item)\\n ) {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\\\"\\n >\\n <div\\n class=\\\"flex items-center gap-x-2 rounded-2xl bg-red-400/10 px-4 py-2 dark:bg-red-600/10\\\"\\n >\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n class=\\\"text-red-600/80 icon-sm dark:text-red-400/80\\\"\\n ></ai-icon>\\n <span>{{ getFailReason(item) }}</span>\\n </div>\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n } @else if (\\n item.role === 'tool' &&\\n item.toolType === 'action' &&\\n item.status &&\\n getToolStatus(item)\\n ) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center px-2 py-1\\\">\\n <div\\n class=\\\"flex w-fit items-center gap-x-2 rounded-2xl bg-zinc-300/20 px-4 py-1 text-md text-zinc-800/90 dark:bg-black/70 dark:text-zinc-100/90\\\"\\n >\\n @if (item.status === 'completed') {\\n <ai-icon\\n name=\\\"checkmark_circle\\\"\\n class=\\\"text-green-500/80 icon-sm dark:text-green-400/80\\\"\\n ></ai-icon>\\n } @else if (item.status === 'failed') {\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n class=\\\"text-red-500/80 icon-sm dark:text-red-400/80\\\"\\n ></ai-icon>\\n } @else if (item.status === 'pending') {\\n <ai-icon\\n name=\\\"hourglass_quarter\\\"\\n class=\\\"text-zinc-700/60 icon-sm dark:text-zinc-300/40\\\"\\n ></ai-icon>\\n } @else if (item.status === 'processing') {\\n <mat-spinner diameter=\\\"16\\\"></mat-spinner>\\n }\\n <i>{{ getToolStatus(item) }}</i>\\n @if (item.status === 'completed') {\\n @if (getToolResult(item); as result) {\\n @if (result.event?.id) {\\n <i>-</i>\\n <a\\n (click)=\\\"openOverlay($event, result.event.id, 'event')\\\"\\n (keyup.enter)=\\\"openOverlay($event, result.event.id, 'event')\\\"\\n tabindex=\\\"0\\\"\\n class=\\\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\\\"\\n >\\n {{ result.event.name }}\\n </a>\\n } @else if (result.content?.id) {\\n <i>-</i>\\n <a\\n (click)=\\\"openOverlay($event, result.content.id, 'content')\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, result.content.id, 'content')\\n \\\"\\n tabindex=\\\"0\\\"\\n class=\\\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\\\"\\n >\\n {{ result.content.filename }}\\n </a>\\n }\\n }\\n }\\n </div>\\n </div>\\n } @else if (\\n item.role === 'tool' &&\\n item.toolType === 'choice' &&\\n item.status === 'processing' &&\\n item.args?.choices\\n ) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center px-2 py-2\\\">\\n <div\\n class=\\\"flex flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\\\"\\n >\\n @if (item.args.message) {\\n <div\\n class=\\\"flex items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\\\"\\n >\\n <ai-icon name=\\\"layer_diagonal_sparkle\\\"></ai-icon>\\n <span class=\\\"font-semibold\\\">{{ item.args.message }}</span>\\n </div>\\n }\\n <div class=\\\"flex flex-wrap gap-x-3 gap-y-2 overflow-x-auto px-5 pb-3\\\">\\n @for (choice of item.args.choices; track choice.id) {\\n <div\\n class=\\\"min-w-48 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"selectChoice(choice, item)\\\"\\n (keyup.enter)=\\\"selectChoice(choice, item)\\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"asset\\\"></ai-icon>\\n </div>\\n <div class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\">\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n choice.name\\n }}</span>\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ choice.typeName }}</span>\\n @if (choice.location) {\\n <span class=\\\"truncate\\\">{{ choice.location }}</span>\\n }\\n @if (choice.factory) {\\n <span class=\\\"truncate\\\">{{ choice.factory }}</span>\\n }\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (item.role === 'user' && !item.hidden) {\\n <div class=\\\"flex max-w-[90%] flex-col self-end py-4 md:max-w-[80%]\\\">\\n <div class=\\\"rounded-2xl bg-zinc-300/30 px-6 py-4 dark:bg-black/20\\\">\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n (click)=\\\"interceptClick($event)\\\"\\n ></markdown>\\n @if (item.parsedContent?.references?.length) {\\n <ai-message-context\\n [message]=\\\"item\\\"\\n [isLastMessage]=\\\"idx === chatService.messages.length - 1\\\"\\n class=\\\"mt-2\\\"\\n ></ai-message-context>\\n }\\n </div>\\n </div>\\n }\\n }\\n\\n @if (chatService.isProcessing) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center rounded-2xl\\\">\\n <div class=\\\"flex flex-col gap-y-2 px-2 py-4\\\">\\n <div\\n class=\\\"pulse-loader flex items-center gap-x-1 text-zinc-700/50 dark:text-zinc-300/30\\\"\\n >\\n <div></div>\\n <div></div>\\n <div></div>\\n </div>\\n </div>\\n </div>\\n }\\n</div>\\n\", styles: [\".pulse-loader>div{background-color:currentColor;width:8px;height:8px;border-radius:100%;animation:pulse 1s ease infinite}.pulse-loader>div:nth-child(2){animation-delay:.1s!important}.pulse-loader>div:nth-child(3){animation-delay:.2s!important}.retry-button-inline{width:22px;height:22px;min-width:22px;min-height:22px;max-height:22px;line-height:normal;padding:0;background:transparent;box-shadow:none;border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}@keyframes pulse{0%,60%,to{opacity:1;transform:scale(1)}30%{opacity:.1;transform:scale(.01)}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CdkAccordionModule }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: MarkdownModule }, { kind: \"component\", type: i1.MarkdownComponent, selector: \"markdown, [markdown]\", inputs: [\"data\", \"src\", \"disableSanitizer\", \"inline\", \"clipboard\", \"clipboardButtonComponent\", \"clipboardButtonTemplate\", \"emoji\", \"katex\", \"katexOptions\", \"mermaid\", \"mermaidOptions\", \"lineHighlight\", \"line\", \"lineOffset\", \"lineNumbers\", \"start\", \"commandLine\", \"filterOutput\", \"host\", \"prompt\", \"output\", \"user\"], outputs: [\"error\", \"load\", \"ready\"] }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: i2.MatProgressSpinner, selector: \"mat-progress-spinner, mat-spinner\", inputs: [\"color\", \"mode\", \"value\", \"diameter\", \"strokeWidth\"], exportAs: [\"matProgressSpinner\"] }, { kind: \"ngmodule\", type: MatTooltipModule }, { kind: \"directive\", type: i3.MatTooltip, selector: \"[matTooltip]\", inputs: [\"matTooltipPosition\", \"matTooltipPositionAtOrigin\", \"matTooltipDisabled\", \"matTooltipShowDelay\", \"matTooltipHideDelay\", \"matTooltipTouchGestures\", \"matTooltip\", \"matTooltipClass\"], exportAs: [\"matTooltip\"] }, { kind: \"component\", type: MessageContextComponent, selector: \"ai-message-context\", inputs: [\"isLastMessage\", \"message\"] }, { kind: \"ngmodule\", type: OverlayModule }, { kind: \"ngmodule\", type: TranslocoModule }, { kind: \"directive\", type: i4.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: UiPipesModule }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ThreadComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n CdkAccordionModule,\n IconComponent,\n MarkdownModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MessageContextComponent,\n OverlayModule,\n TranslocoModule,\n UiPipesModule,\n ], selector: 'ai-thread', template: \"<div\\n class=\\\"relative flex h-full w-full flex-col gap-1 px-6 py-4\\\"\\n *transloco=\\\"let t\\\"\\n>\\n @if (chatService.isLoading) {\\n <div\\n class=\\\"absolute inset-0 z-100 flex items-center justify-center backdrop-blur-lg\\\"\\n >\\n <mat-spinner diameter=\\\"28\\\"></mat-spinner>\\n </div>\\n }\\n @for (\\n item of chatService.messages;\\n track trackByMessageId(item);\\n let idx = $index\\n ) {\\n @if (item.role === 'assistant' && item.parsedContent) {\\n @if (item.status === 'failed') {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col self-center p-2 md:max-w-[85%]\\\"\\n >\\n <div\\n class=\\\"flex items-center gap-x-4 rounded-2xl bg-red-200/20 px-6 py-4 text-md md:text-lg dark:bg-red-800/20\\\"\\n >\\n <ai-icon\\n name=\\\"error_circle\\\"\\n class=\\\"text-red-600/80 icon-md dark:text-red-400/80\\\"\\n ></ai-icon>\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n ></markdown>\\n </div>\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n } @else {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\\\"\\n >\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n (click)=\\\"interceptClick($event)\\\"\\n ></markdown>\\n @if (item.parsedContent.references?.length) {\\n <ai-message-context\\n [message]=\\\"item\\\"\\n [isLastMessage]=\\\"idx === chatService.messages.length - 1\\\"\\n class=\\\"mt-2\\\"\\n ></ai-message-context>\\n }\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n }\\n } @else if (\\n item.role === 'assistant' &&\\n item.status === 'failed' &&\\n getFailReason(item)\\n ) {\\n <div\\n class=\\\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\\\"\\n >\\n <div\\n class=\\\"flex items-center gap-x-2 rounded-2xl bg-red-400/10 px-4 py-2 dark:bg-red-600/10\\\"\\n >\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n class=\\\"text-red-600/80 icon-sm dark:text-red-400/80\\\"\\n ></ai-icon>\\n <span>{{ getFailReason(item) }}</span>\\n </div>\\n @if (\\n !chatService.isProcessing && idx === chatService.messages.length - 1\\n ) {\\n <div class=\\\"mt-0 flex justify-start\\\">\\n <button\\n ai-icon-button\\n class=\\\"retry-button-inline\\\"\\n [matTooltip]=\\\"t('ai.retry')\\\"\\n matTooltipPosition=\\\"above\\\"\\n (click)=\\\"retry(item)\\\"\\n >\\n <ai-icon class=\\\"icon-sm\\\" name=\\\"arrow_clockwise\\\"></ai-icon>\\n </button>\\n </div>\\n }\\n </div>\\n } @else if (\\n item.role === 'tool' &&\\n item.toolType === 'action' &&\\n item.status &&\\n getToolStatus(item)\\n ) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center px-2 py-1\\\">\\n <div\\n class=\\\"flex w-fit items-center gap-x-2 rounded-2xl bg-zinc-300/20 px-4 py-1 text-md text-zinc-800/90 dark:bg-black/70 dark:text-zinc-100/90\\\"\\n >\\n @if (item.status === 'completed') {\\n <ai-icon\\n name=\\\"checkmark_circle\\\"\\n class=\\\"text-green-500/80 icon-sm dark:text-green-400/80\\\"\\n ></ai-icon>\\n } @else if (item.status === 'failed') {\\n <ai-icon\\n name=\\\"dismiss_circle\\\"\\n class=\\\"text-red-500/80 icon-sm dark:text-red-400/80\\\"\\n ></ai-icon>\\n } @else if (item.status === 'pending') {\\n <ai-icon\\n name=\\\"hourglass_quarter\\\"\\n class=\\\"text-zinc-700/60 icon-sm dark:text-zinc-300/40\\\"\\n ></ai-icon>\\n } @else if (item.status === 'processing') {\\n <mat-spinner diameter=\\\"16\\\"></mat-spinner>\\n }\\n <i>{{ getToolStatus(item) }}</i>\\n @if (item.status === 'completed') {\\n @if (getToolResult(item); as result) {\\n @if (result.event?.id) {\\n <i>-</i>\\n <a\\n (click)=\\\"openOverlay($event, result.event.id, 'event')\\\"\\n (keyup.enter)=\\\"openOverlay($event, result.event.id, 'event')\\\"\\n tabindex=\\\"0\\\"\\n class=\\\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\\\"\\n >\\n {{ result.event.name }}\\n </a>\\n } @else if (result.content?.id) {\\n <i>-</i>\\n <a\\n (click)=\\\"openOverlay($event, result.content.id, 'content')\\\"\\n (keyup.enter)=\\\"\\n openOverlay($event, result.content.id, 'content')\\n \\\"\\n tabindex=\\\"0\\\"\\n class=\\\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\\\"\\n >\\n {{ result.content.filename }}\\n </a>\\n }\\n }\\n }\\n </div>\\n </div>\\n } @else if (\\n item.role === 'tool' &&\\n item.toolType === 'choice' &&\\n item.status === 'processing' &&\\n item.args?.choices\\n ) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center px-2 py-2\\\">\\n <div\\n class=\\\"flex flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\\\"\\n >\\n @if (item.args.message) {\\n <div\\n class=\\\"flex items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\\\"\\n >\\n <ai-icon name=\\\"layer_diagonal_sparkle\\\"></ai-icon>\\n <span class=\\\"font-semibold\\\">{{ item.args.message }}</span>\\n </div>\\n }\\n <div class=\\\"flex flex-wrap gap-x-3 gap-y-2 overflow-x-auto px-5 pb-3\\\">\\n @for (choice of item.args.choices; track choice.id) {\\n <div\\n class=\\\"min-w-48 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\\\"\\n (click)=\\\"selectChoice(choice, item)\\\"\\n (keyup.enter)=\\\"selectChoice(choice, item)\\\"\\n tabindex=\\\"0\\\"\\n >\\n <div\\n class=\\\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\\\"\\n >\\n <div\\n class=\\\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\\\"\\n >\\n <ai-icon name=\\\"asset\\\"></ai-icon>\\n </div>\\n <div class=\\\"flex h-full grow flex-col overflow-hidden pr-4\\\">\\n <span class=\\\"truncate text-md font-semibold\\\">{{\\n choice.name\\n }}</span>\\n <div class=\\\"flex items-center gap-x-2 text-xs\\\">\\n <span class=\\\"truncate\\\">{{ choice.typeName }}</span>\\n @if (choice.location) {\\n <span class=\\\"truncate\\\">{{ choice.location }}</span>\\n }\\n @if (choice.factory) {\\n <span class=\\\"truncate\\\">{{ choice.factory }}</span>\\n }\\n </div>\\n </div>\\n </div>\\n </div>\\n }\\n </div>\\n </div>\\n </div>\\n } @else if (item.role === 'user' && !item.hidden) {\\n <div class=\\\"flex max-w-[90%] flex-col self-end py-4 md:max-w-[80%]\\\">\\n <div class=\\\"rounded-2xl bg-zinc-300/30 px-6 py-4 dark:bg-black/20\\\">\\n <markdown\\n class=\\\"markdown-body\\\"\\n [data]=\\\"getMarkdownContent(item)\\\"\\n (click)=\\\"interceptClick($event)\\\"\\n ></markdown>\\n @if (item.parsedContent?.references?.length) {\\n <ai-message-context\\n [message]=\\\"item\\\"\\n [isLastMessage]=\\\"idx === chatService.messages.length - 1\\\"\\n class=\\\"mt-2\\\"\\n ></ai-message-context>\\n }\\n </div>\\n </div>\\n }\\n }\\n\\n @if (chatService.isProcessing) {\\n <div class=\\\"flex w-full max-w-[85%] flex-col self-center rounded-2xl\\\">\\n <div class=\\\"flex flex-col gap-y-2 px-2 py-4\\\">\\n <div\\n class=\\\"pulse-loader flex items-center gap-x-1 text-zinc-700/50 dark:text-zinc-300/30\\\"\\n >\\n <div></div>\\n <div></div>\\n <div></div>\\n </div>\\n </div>\\n </div>\\n }\\n</div>\\n\", styles: [\".pulse-loader>div{background-color:currentColor;width:8px;height:8px;border-radius:100%;animation:pulse 1s ease infinite}.pulse-loader>div:nth-child(2){animation-delay:.1s!important}.pulse-loader>div:nth-child(3){animation-delay:.2s!important}.retry-button-inline{width:22px;height:22px;min-width:22px;min-height:22px;max-height:22px;line-height:normal;padding:0;background:transparent;box-shadow:none;border-radius:50%;box-sizing:border-box;display:flex;justify-content:center;align-items:center}@keyframes pulse{0%,60%,to{opacity:1;transform:scale(1)}30%{opacity:.1;transform:scale(.01)}}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhyZWFkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL3RocmVhZC90aHJlYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvdGhyZWFkL3RocmVhZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBYyxNQUFNLHNCQUFzQixDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixRQUFRLEVBRVIsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDakQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzlELE9BQU8sRUFBb0IsV0FBVyxFQUFlLE1BQU0saUJBQWlCLENBQUM7QUFDN0UsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixtQkFBbUIsRUFDbkIsbUJBQW1CLEVBQ25CLHFCQUFxQixHQUN0QixNQUFNLDhDQUE4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Q3ZDLENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVksQ0FBQyxTQUFjLEVBQUUsV0FBZ0I7UUFDM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxJQUFhO1FBQzVCLE9BQU8sSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQXlCO1FBQzdCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNiLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsQ0FBQzt1R0F2TFUsZUFBZTsyRkFBZixlQUFlLHFFQy9DNUIsMnBUQXFRQSx5b0JEck9JLGtCQUFrQiwrQkFDbEIsYUFBYSxzRkFDYixjQUFjLG9kQUNkLGVBQWUsOEJBQ2Ysd0JBQXdCLGtPQUN4QixnQkFBZ0IsNlRBQ2hCLHVCQUF1QixvR0FDdkIsYUFBYSw4QkFDYixlQUFlLG1QQUNmLGFBQWE7OzJGQU1KLGVBQWU7a0JBakIzQixTQUFTOzhCQUNDO3dCQUNQLGtCQUFrQjt3QkFDbEIsYUFBYTt3QkFDYixjQUFjO3dCQUNkLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixnQkFBZ0I7d0JBQ2hCLHVCQUF1Qjt3QkFDdkIsYUFBYTt3QkFDYixlQUFlO3dCQUNmLGFBQWE7cUJBQ2QsWUFDUyxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2FjY29yZGlvbic7XG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5TW9kdWxlLCBPdmVybGF5UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgaW5qZWN0LFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcbmltcG9ydCB0eXBlIHsgTWVzc2FnZSB9IGZyb20gJ0BoYWhucHJvL2hwYy1hcGknO1xuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IE1hcmtkb3duTW9kdWxlIH0gZnJvbSAnbmd4LW1hcmtkb3duJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvaWNvbnMnO1xuaW1wb3J0IHsgVWlQaXBlc01vZHVsZSB9IGZyb20gJy4uLy4uL2NvcmUvcGlwZXMvcGlwZXMubW9kdWxlJztcbmltcG9ydCB7IEFzc2lzdGFudE1lc3NhZ2UsIENoYXRTZXJ2aWNlLCBVc2VyTWVzc2FnZSB9IGZyb20gJy4uL2NoYXQuc2VydmljZSc7XG5pbXBvcnQge1xuICBDb250ZXh0T3ZlcmxheUNvbXBvbmVudCxcbiAgT1ZFUkxBWV9QQUdFX05VTUJFUixcbiAgT1ZFUkxBWV9SRVNPVVJDRV9JRCxcbiAgT1ZFUkxBWV9SRVNPVVJDRV9UWVBFLFxufSBmcm9tICcuLi9jb250ZXh0LW92ZXJsYXkvY29udGV4dC1vdmVybGF5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNZXNzYWdlQ29udGV4dENvbXBvbmVudCB9IGZyb20gJy4uL21lc3NhZ2UtY29udGV4dC9tZXNzYWdlLWNvbnRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29udGV4dC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtcbiAgICBDZGtBY2NvcmRpb25Nb2R1bGUsXG4gICAgSWNvbkNvbXBvbmVudCxcbiAgICBNYXJrZG93bk1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWVzc2FnZUNvbnRleHRDb21wb25lbnQsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBUcmFuc2xvY29Nb2R1bGUsXG4gICAgVWlQaXBlc01vZHVsZSxcbiAgXSxcbiAgc2VsZWN0b3I6ICdhaS10aHJlYWQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdGhyZWFkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RocmVhZC5jb21wb25lbnQuc2NzcycsXG59KVxuZXhwb3J0IGNsYXNzIFRocmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGNoYXRTZXJ2aWNlID0gaW5qZWN0KENoYXRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgY29udGV4dFNlcnZpY2UgPSBpbmplY3QoQ29udGV4dFNlcnZpY2UpO1xuICBzZWxlY3Rpb246IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcbiAgcHJpdmF0ZSByZWFkb25seSB2aWV3Q29udGFpbmVyUmVmID0gaW5qZWN0KFZpZXdDb250YWluZXJSZWYpO1xuICBwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYgfCBudWxsID0gbnVsbDtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNoYXRTZXJ2aWNlLmNsb3NlVGhyZWFkKCk7XG4gIH1cblxuICBvcGVuT3ZlcmxheShcbiAgICBldmVudDogTW91c2VFdmVudCxcbiAgICByZXNvdXJjZUlkOiBzdHJpbmcsXG4gICAgcmVzb3VyY2VUeXBlPzogJ2Fzc2V0JyB8ICdhc3NldC10eXBlJyB8ICdjb250ZW50JyB8ICdldmVudCcgfCAnd2ViLXNvdXJjZScsXG4gICAgcGFnZU51bWJlcj86IG51bWJlcixcbiAgKSB7XG4gICAgaWYgKHRoaXMub3ZlcmxheVJlZikge1xuICAgICAgdGhpcy5vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgIH1cblxuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpXG4gICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgIHtcbiAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgfSxcbiAgICAgIF0pO1xuXG4gICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5LFxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICBiYWNrZHJvcENsYXNzOiAnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogT1ZFUkxBWV9SRVNPVVJDRV9JRCwgdXNlVmFsdWU6IHJlc291cmNlSWQgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX1JFU09VUkNFX1RZUEUsIHVzZVZhbHVlOiByZXNvdXJjZVR5cGUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBPVkVSTEFZX1BBR0VfTlVNQkVSLCB1c2VWYWx1ZTogcGFnZU51bWJlciB9LFxuICAgICAgICB7IHByb3ZpZGU6IENvbnRleHRTZXJ2aWNlLCB1c2VWYWx1ZTogdGhpcy5jb250ZXh0U2VydmljZSB9LFxuICAgICAgXSxcbiAgICAgIHBhcmVudDogdGhpcy52aWV3Q29udGFpbmVyUmVmLmluamVjdG9yLFxuICAgIH0pO1xuICAgIGNvbnN0IHBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBDb250ZXh0T3ZlcmxheUNvbXBvbmVudCxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIGluamVjdG9yLFxuICAgICk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwpO1xuICAgIHRoaXMub3ZlcmxheVJlZi5iYWNrZHJvcENsaWNrKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCkpO1xuICB9XG5cbiAgaW50ZXJjZXB0Q2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZXZlbnQudGFyZ2V0O1xuICAgIGlmICghKGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQW5jaG9yRWxlbWVudCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGhyZWYgPSBlbGVtZW50LmdldEF0dHJpYnV0ZSgnaHJlZicpO1xuICAgIGlmIChocmVmLnN0YXJ0c1dpdGgoJyQnKSkge1xuICAgICAgaHJlZiA9IGhyZWYuc3Vic3RyaW5nKDEpO1xuICAgICAgY29uc3QgcGFyYW1zID0gaHJlZi5zcGxpdCgnLCcpO1xuICAgICAgY29uc3QgcXVlcnlQYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSBwYXJhbXMucmVkdWNlKFxuICAgICAgICAoYWNjLCBwYXJhbSkgPT4ge1xuICAgICAgICAgIGNvbnN0IFtrZXksIHZhbHVlXSA9IHBhcmFtLnNwbGl0KCc9Jyk7XG4gICAgICAgICAgYWNjW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fSxcbiAgICAgICk7XG4gICAgICBpZiAocXVlcnlQYXJhbXMucmVmICYmIHF1ZXJ5UGFyYW1zLm1zZykge1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5jaGF0U2VydmljZS5tZXNzYWdlcy5maW5kKFxuICAgICAgICAgIChtKSA9PiBtLmlkID09PSBxdWVyeVBhcmFtcy5tc2csXG4gICAgICAgICk7XG4gICAgICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICAgICAgY29uc3QgeyByZWZlcmVuY2VzIH0gPSAobWVzc2FnZSBhcyBBc3Npc3RhbnRNZXNzYWdlKS5wYXJzZWRDb250ZW50O1xuICAgICAgICAgIGNvbnN0IHJlZmVyZW5jZSA9IHJlZmVyZW5jZXM/LmZpbmQoXG4gICAgICAgICAgICAocmVmKSA9PiByZWYucmVmZXJlbmNlX2lkID09PSBwYXJzZUludChxdWVyeVBhcmFtcy5yZWYsIDEwKSxcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChyZWZlcmVuY2U/LmlkKSB7XG4gICAgICAgICAgICBjb25zdCB7IGlkLCBwYWdlTnVtYmVyIH0gPSByZWZlcmVuY2U7XG4gICAgICAgICAgICB0aGlzLmNoYXRTZXJ2aWNlLmhpZ2hsaWdodENvbnRleHQgPSBpZDtcbiAgICAgICAgICAgIHRoaXMub3Blbk92ZXJsYXkoZXZlbnQsIGlkLCByZWZlcmVuY2UucmVzb3VyY2VUeXBlLCBwYWdlTnVtYmVyKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhpcy50b2FzdFNlcnZpY2UuZXJyb3IoXG4gICAgICAgICAgICAvLyAgIHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ2FpLnJlZmVyZW5jZV9ub3RfZm91bmQnKSxcbiAgICAgICAgICAgIC8vICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQcm9jZXNzZXMgbWVzc2FnZSBjb250ZW50IGJ5OlxuICAgKiAxLiBDb252ZXJ0aW5nIG5hbWVzIGluIHF1b3RlcyB0byBib2xkIHJlZmVyZW5jZXMgaWYgdGhleSBleGlzdCBpbiB0aGUgY29udGV4dCBjYWNoZVxuICAgKiAyLiBSZXBsYWNpbmcgcmVmZXJlbmNlIElEcyB3aXRoIGNsaWNrYWJsZSBzdXBlcnNjcmlwdCBlbGVtZW50c1xuICAgKlxuICAgKiBAcGFyYW0gbWVzc2FnZSBUaGUgYXNzaXN0YW50IG9yIHVzZXIgbWVzc2FnZSB0byBwcm9jZXNzXG4gICAqIEByZXR1cm5zIFByb2Nlc3NlZCBtYXJrZG93biBjb250ZW50IHdpdGggZW5oYW5jZWQgcmVmZXJlbmNlc1xuICAgKi9cbiAgZ2V0TWFya2Rvd25Db250ZW50KG1lc3NhZ2U6IEFzc2lzdGFudE1lc3NhZ2UgfCBVc2VyTWVzc2FnZSk6IHN0cmluZyB7XG4gICAgY29uc3QgY29udGVudDogc3RyaW5nID0gbWVzc2FnZS5wYXJzZWRDb250ZW50Py5yZXNwb25zZTtcbiAgICBsZXQgcHJvY2Vzc2VkQ29udGVudDtcbiAgICBpZiAodHlwZW9mIGNvbnRlbnQgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICAgIHRyeSB7XG4gICAgICBwcm9jZXNzZWRDb250ZW50ID0gY29udGVudC5yZXBsYWNlKFxuICAgICAgICAvJyhbXidcIl0qKSd8XCIoW14nXCJdKilcIi9nLFxuICAgICAgICAobWF0Y2gsIHNpbmdsZVF1b3RlZCwgZG91YmxlUXVvdGVkKSA9PiB7XG4gICAgICAgICAgY29uc3QgbmFtZSA9IHNpbmdsZVF1b3RlZCB8fCBkb3VibGVRdW90ZWQ7XG4gICAgICAgICAgY29uc3QgaWQgPSB0aGlzLmNvbnRleHRTZXJ2aWNlLmdldElkRm9yTmFtZShuYW1lKTtcbiAgICAgICAgICBpZiAoIWlkKSB7XG4gICAgICAgICAgICByZXR1cm4gbmFtZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgcmVmZXJlbmNlID0gbWVzc2FnZS5wYXJzZWRDb250ZW50Py5yZWZlcmVuY2VzLmZpbmQoXG4gICAgICAgICAgICAocmVmKSA9PiByZWYuaWQgPT09IGlkLFxuICAgICAgICAgICk7XG4gICAgICAgICAgcmV0dXJuIHJlZmVyZW5jZSA/IGAqKiR7bmFtZX0qKltbJHtyZWZlcmVuY2UucmVmZXJlbmNlX2lkfV1dYCA6IG5hbWU7XG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIHByb2Nlc3NlZENvbnRlbnQgPSBjb250ZW50O1xuICAgIH1cbiAgICByZXR1cm4gcHJvY2Vzc2VkQ29udGVudC5yZXBsYWNlKC9cXFtcXFsoW1xcc1xcU10qPylcXF1cXF0vZywgKG1hdGNoLCBpbm5lcikgPT4ge1xuICAgICAgY29uc3QgaWRzID0gaW5uZXIubWF0Y2goL1xcZCsvZyk7XG4gICAgICBpZiAoIWlkcykge1xuICAgICAgICByZXR1cm4gbWF0Y2g7XG4gICAgICB9XG4gICAgICByZXR1cm4gaWRzXG4gICAgICAgIC5tYXAoXG4gICAgICAgICAgKGlkKSA9PiBgPHN1cD48Yj5bWyR7aWR9XV0oJHJlZj0ke2lkfSxtc2c9JHttZXNzYWdlLmlkfSwpPC9iPjwvc3VwPmAsXG4gICAgICAgIClcbiAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgfSk7XG4gIH1cblxuICBnZXRUb29sU3RhdHVzKGl0ZW06IGFueSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc3RhdHVzTWVzc2FnZSA9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoXG4gICAgICBgYWkudG9vbHMuJHtpdGVtLnRvb2xOYW1lfS4ke2l0ZW0uc3RhdHVzfWAsXG4gICAgKTtcbiAgICByZXR1cm4gc3RhdHVzTWVzc2FnZSB8fCBudWxsO1xuICB9XG5cbiAgZ2V0RmFpbFJlYXNvbihpdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCByZWFzb24gPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKFxuICAgICAgYGFpLmZpbmlzaF9yZWFzb24uJHtpdGVtLmZpbmlzaFJlYXNvbn1gLFxuICAgICk7XG4gICAgcmV0dXJuIChcbiAgICAgIHJlYXNvbiB8fCB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdhaS5maW5pc2hfcmVhc29uLnVua25vd24nKVxuICAgICk7XG4gIH1cblxuICBnZXRUb29sUmVzdWx0KGl0ZW0pIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoaXRlbS5yZXN1bHQudmFsdWUpO1xuICAgIH0gY2F0Y2ggKF8pIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdENob2ljZShzZWxlY3Rpb246IGFueSwgdG9vbE1lc3NhZ2U6IGFueSkge1xuICAgIHRoaXMuY2hhdFNlcnZpY2Uuc2VsZWN0Q2hvaWNlKHNlbGVjdGlvbiwgdG9vbE1lc3NhZ2UpO1xuICB9XG5cbiAgdHJhY2tCeU1lc3NhZ2VJZChpdGVtOiBNZXNzYWdlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gaXRlbS5yZXNwb25zZUlkIHx8IGl0ZW0uaWQgfHwgJyc7XG4gIH1cblxuICByZXRyeShtZXNzYWdlOiBBc3Npc3RhbnRNZXNzYWdlKSB7XG4gICAgaWYgKCFtZXNzYWdlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2hhdFNlcnZpY2UucmV0cnlNZXNzYWdlKG1lc3NhZ2UpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwicmVsYXRpdmUgZmxleCBoLWZ1bGwgdy1mdWxsIGZsZXgtY29sIGdhcC0xIHB4LTYgcHktNFwiXG4gICp0cmFuc2xvY289XCJsZXQgdFwiXG4+XG4gIEBpZiAoY2hhdFNlcnZpY2UuaXNMb2FkaW5nKSB7XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIHotMTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJhY2tkcm9wLWJsdXItbGdcIlxuICAgID5cbiAgICAgIDxtYXQtc3Bpbm5lciBkaWFtZXRlcj1cIjI4XCI+PC9tYXQtc3Bpbm5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuICBAZm9yIChcbiAgICBpdGVtIG9mIGNoYXRTZXJ2aWNlLm1lc3NhZ2VzO1xuICAgIHRyYWNrIHRyYWNrQnlNZXNzYWdlSWQoaXRlbSk7XG4gICAgbGV0IGlkeCA9ICRpbmRleFxuICApIHtcbiAgICBAaWYgKGl0ZW0ucm9sZSA9PT0gJ2Fzc2lzdGFudCcgJiYgaXRlbS5wYXJzZWRDb250ZW50KSB7XG4gICAgICBAaWYgKGl0ZW0uc3RhdHVzID09PSAnZmFpbGVkJykge1xuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IHctZnVsbCBtYXgtdy1bODUlXSBmbGV4LWNvbCBzZWxmLWNlbnRlciBwLTIgbWQ6bWF4LXctWzg1JV1cIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC00IHJvdW5kZWQtMnhsIGJnLXJlZC0yMDAvMjAgcHgtNiBweS00IHRleHQtbWQgbWQ6dGV4dC1sZyBkYXJrOmJnLXJlZC04MDAvMjBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxhaS1pY29uXG4gICAgICAgICAgICAgIG5hbWU9XCJlcnJvcl9jaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTYwMC84MCBpY29uLW1kIGRhcms6dGV4dC1yZWQtNDAwLzgwXCJcbiAgICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgICA8bWFya2Rvd25cbiAgICAgICAgICAgICAgY2xhc3M9XCJtYXJrZG93bi1ib2R5XCJcbiAgICAgICAgICAgICAgW2RhdGFdPVwiZ2V0TWFya2Rvd25Db250ZW50KGl0ZW0pXCJcbiAgICAgICAgICAgID48L21hcmtkb3duPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhY2hhdFNlcnZpY2UuaXNQcm9jZXNzaW5nICYmIGlkeCA9PT0gY2hhdFNlcnZpY2UubWVzc2FnZXMubGVuZ3RoIC0gMVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTAgZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhaS1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicmV0cnktYnV0dG9uLWlubGluZVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkucmV0cnknKVwiXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXRyeShpdGVtKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YWktaWNvbiBjbGFzcz1cImljb24tc21cIiBuYW1lPVwiYXJyb3dfY2xvY2t3aXNlXCI+PC9haS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCB3LWZ1bGwgbWF4LXctWzg1JV0gZmxleC1jb2wgZ2FwLXktMiBzZWxmLWNlbnRlciBweC0yIHB5LTJcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hcmtkb3duXG4gICAgICAgICAgICBjbGFzcz1cIm1hcmtkb3duLWJvZHlcIlxuICAgICAgICAgICAgW2RhdGFdPVwiZ2V0TWFya2Rvd25Db250ZW50KGl0ZW0pXCJcbiAgICAgICAgICAgIChjbGljayk9XCJpbnRlcmNlcHRDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICA+PC9tYXJrZG93bj5cbiAgICAgICAgICBAaWYgKGl0ZW0ucGFyc2VkQ29udGVudC5yZWZlcmVuY2VzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIDxhaS1tZXNzYWdlLWNvbnRleHRcbiAgICAgICAgICAgICAgW21lc3NhZ2VdPVwiaXRlbVwiXG4gICAgICAgICAgICAgIFtpc0xhc3RNZXNzYWdlXT1cImlkeCA9PT0gY2hhdFNlcnZpY2UubWVzc2FnZXMubGVuZ3RoIC0gMVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwibXQtMlwiXG4gICAgICAgICAgICA+PC9haS1tZXNzYWdlLWNvbnRleHQ+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoXG4gICAgICAgICAgICAhY2hhdFNlcnZpY2UuaXNQcm9jZXNzaW5nICYmIGlkeCA9PT0gY2hhdFNlcnZpY2UubWVzc2FnZXMubGVuZ3RoIC0gMVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTAgZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBhaS1pY29uLWJ1dHRvblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicmV0cnktYnV0dG9uLWlubGluZVwiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkucmV0cnknKVwiXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJyZXRyeShpdGVtKVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YWktaWNvbiBjbGFzcz1cImljb24tc21cIiBuYW1lPVwiYXJyb3dfY2xvY2t3aXNlXCI+PC9haS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgfSBAZWxzZSBpZiAoXG4gICAgICBpdGVtLnJvbGUgPT09ICdhc3Npc3RhbnQnICYmXG4gICAgICBpdGVtLnN0YXR1cyA9PT0gJ2ZhaWxlZCcgJiZcbiAgICAgIGdldEZhaWxSZWFzb24oaXRlbSlcbiAgICApIHtcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmbGV4IHctZnVsbCBtYXgtdy1bODUlXSBmbGV4LWNvbCBnYXAteS0yIHNlbGYtY2VudGVyIHB4LTIgcHktMlwiXG4gICAgICA+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgYmctcmVkLTQwMC8xMCBweC00IHB5LTIgZGFyazpiZy1yZWQtNjAwLzEwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxhaS1pY29uXG4gICAgICAgICAgICBuYW1lPVwiZGlzbWlzc19jaXJjbGVcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXJlZC02MDAvODAgaWNvbi1zbSBkYXJrOnRleHQtcmVkLTQwMC84MFwiXG4gICAgICAgICAgPjwvYWktaWNvbj5cbiAgICAgICAgICA8c3Bhbj57eyBnZXRGYWlsUmVhc29uKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgQGlmIChcbiAgICAgICAgICAhY2hhdFNlcnZpY2UuaXNQcm9jZXNzaW5nICYmIGlkeCA9PT0gY2hhdFNlcnZpY2UubWVzc2FnZXMubGVuZ3RoIC0gMVxuICAgICAgICApIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMCBmbGV4IGp1c3RpZnktc3RhcnRcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgYWktaWNvbi1idXR0b25cbiAgICAgICAgICAgICAgY2xhc3M9XCJyZXRyeS1idXR0b24taW5saW5lXCJcbiAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwidCgnYWkucmV0cnknKVwiXG4gICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInJldHJ5KGl0ZW0pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGFpLWljb24gY2xhc3M9XCJpY29uLXNtXCIgbmFtZT1cImFycm93X2Nsb2Nrd2lzZVwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIGlmIChcbiAgICAgIGl0ZW0ucm9sZSA9PT0gJ3Rvb2wnICYmXG4gICAgICBpdGVtLnRvb2xUeXBlID09PSAnYWN0aW9uJyAmJlxuICAgICAgaXRlbS5zdGF0dXMgJiZcbiAgICAgIGdldFRvb2xTdGF0dXMoaXRlbSlcbiAgICApIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IHctZnVsbCBtYXgtdy1bODUlXSBmbGV4LWNvbCBzZWxmLWNlbnRlciBweC0yIHB5LTFcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiZmxleCB3LWZpdCBpdGVtcy1jZW50ZXIgZ2FwLXgtMiByb3VuZGVkLTJ4bCBiZy16aW5jLTMwMC8yMCBweC00IHB5LTEgdGV4dC1tZCB0ZXh0LXppbmMtODAwLzkwIGRhcms6YmctYmxhY2svNzAgZGFyazp0ZXh0LXppbmMtMTAwLzkwXCJcbiAgICAgICAgPlxuICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICAgICAgICA8YWktaWNvblxuICAgICAgICAgICAgICBuYW1lPVwiY2hlY2ttYXJrX2NpcmNsZVwiXG4gICAgICAgICAgICAgIGNsYXNzPVwidGV4dC1ncmVlbi01MDAvODAgaWNvbi1zbSBkYXJrOnRleHQtZ3JlZW4tNDAwLzgwXCJcbiAgICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5zdGF0dXMgPT09ICdmYWlsZWQnKSB7XG4gICAgICAgICAgICA8YWktaWNvblxuICAgICAgICAgICAgICBuYW1lPVwiZGlzbWlzc19jaXJjbGVcIlxuICAgICAgICAgICAgICBjbGFzcz1cInRleHQtcmVkLTUwMC84MCBpY29uLXNtIGRhcms6dGV4dC1yZWQtNDAwLzgwXCJcbiAgICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5zdGF0dXMgPT09ICdwZW5kaW5nJykge1xuICAgICAgICAgICAgPGFpLWljb25cbiAgICAgICAgICAgICAgbmFtZT1cImhvdXJnbGFzc19xdWFydGVyXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXppbmMtNzAwLzYwIGljb24tc20gZGFyazp0ZXh0LXppbmMtMzAwLzQwXCJcbiAgICAgICAgICAgID48L2FpLWljb24+XG4gICAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5zdGF0dXMgPT09ICdwcm9jZXNzaW5nJykge1xuICAgICAgICAgICAgPG1hdC1zcGlubmVyIGRpYW1ldGVyPVwiMTZcIj48L21hdC1zcGlubmVyPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8aT57eyBnZXRUb29sU3RhdHVzKGl0ZW0pIH19PC9pPlxuICAgICAgICAgIEBpZiAoaXRlbS5zdGF0dXMgPT09ICdjb21wbGV0ZWQnKSB7XG4gICAgICAgICAgICBAaWYgKGdldFRvb2xSZXN1bHQoaXRlbSk7IGFzIHJlc3VsdCkge1xuICAgICAgICAgICAgICBAaWYgKHJlc3VsdC5ldmVudD8uaWQpIHtcbiAgICAgICAgICAgICAgICA8aT4tPC9pPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZXN1bHQuZXZlbnQuaWQsICdldmVudCcpXCJcbiAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJvcGVuT3ZlcmxheSgkZXZlbnQsIHJlc3VsdC5ldmVudC5pZCwgJ2V2ZW50JylcIlxuICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXIgZm9udC1zZW1pYm9sZCBob3Zlcjp0ZXh0LWJsdWUtNjAwIGhvdmVyOnVuZGVybGluZSBkYXJrOmhvdmVyOnRleHQtYmx1ZS0yMDBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIHt7IHJlc3VsdC5ldmVudC5uYW1lIH19XG4gICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICB9IEBlbHNlIGlmIChyZXN1bHQuY29udGVudD8uaWQpIHtcbiAgICAgICAgICAgICAgICA8aT4tPC9pPlxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwib3Blbk92ZXJsYXkoJGV2ZW50LCByZXN1bHQuY29udGVudC5pZCwgJ2NvbnRlbnQnKVwiXG4gICAgICAgICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwiXG4gICAgICAgICAgICAgICAgICAgIG9wZW5PdmVybGF5KCRldmVudCwgcmVzdWx0LmNvbnRlbnQuaWQsICdjb250ZW50JylcbiAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciBmb250LXNlbWlib2xkIGhvdmVyOnRleHQtYmx1ZS02MDAgaG92ZXI6dW5kZXJsaW5lIGRhcms6aG92ZXI6dGV4dC1ibHVlLTIwMFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge3sgcmVzdWx0LmNvbnRlbnQuZmlsZW5hbWUgfX1cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoXG4gICAgICBpdGVtLnJvbGUgPT09ICd0b29sJyAmJlxuICAgICAgaXRlbS50b29sVHlwZSA9PT0gJ2Nob2ljZScgJiZcbiAgICAgIGl0ZW0uc3RhdHVzID09PSAncHJvY2Vzc2luZycgJiZcbiAgICAgIGl0ZW0uYXJncz8uY2hvaWNlc1xuICAgICkge1xuICAgICAgPGRpdiBjbGFzcz1cImZsZXggdy1mdWxsIG1heC13LVs4NSVdIGZsZXgtY29sIHNlbGYtY2VudGVyIHB4LTIgcHktMlwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIHJvdW5kZWQtMnhsIGJnLXppbmMtMzAwLzQwIHB0LTMgZGFyazpiZy16aW5jLTcwMC8zMFwiXG4gICAgICAgID5cbiAgICAgICAgICBAaWYgKGl0ZW0uYXJncy5tZXNzYWdlKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMyBweC01IHBiLTMgdGV4dC16aW5jLTgwMCBkYXJrOnRleHQtemluYy0zMDBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8YWktaWNvbiBuYW1lPVwibGF5ZXJfZGlhZ29uYWxfc3BhcmtsZVwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LXNlbWlib2xkXCI+e3sgaXRlbS5hcmdzLm1lc3NhZ2UgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC14LTMgZ2FwLXktMiBvdmVyZmxvdy14LWF1dG8gcHgtNSBwYi0zXCI+XG4gICAgICAgICAgICBAZm9yIChjaG9pY2Ugb2YgaXRlbS5hcmdzLmNob2ljZXM7IHRyYWNrIGNob2ljZS5pZCkge1xuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtaW4tdy00OCBtYXgtdy04MCBjdXJzb3ItcG9pbnRlciByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXppbmMtNDAwLzQwIGJnLXppbmMtNDAwLzIwIGhvdmVyOmJnLXppbmMtNDAwLzMwIGRhcms6Ym9yZGVyLWJsYWNrLzUwIGRhcms6YmctYmxhY2svMjBcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RDaG9pY2UoY2hvaWNlLCBpdGVtKVwiXG4gICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cInNlbGVjdENob2ljZShjaG9pY2UsIGl0ZW0pXCJcbiAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjBcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbGV4IGdyb3cgaXRlbXMtY2VudGVyIGdhcC14LTIgcm91bmRlZC0yeGwgcHgtMiBweS0xXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZmxleCBoLTEwIHctMTAgc2hyaW5rLTAgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHJvdW5kZWQteGwgYm9yZGVyIGJvcmRlci16aW5jLTQwMC8zMFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxhaS1pY29uIG5hbWU9XCJhc3NldFwiPjwvYWktaWNvbj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIGdyb3cgZmxleC1jb2wgb3ZlcmZsb3ctaGlkZGVuIHByLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZSB0ZXh0LW1kIGZvbnQtc2VtaWJvbGRcIj57e1xuICAgICAgICAgICAgICAgICAgICAgIGNob2ljZS5uYW1lXG4gICAgICAgICAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLXgtMiB0ZXh0LXhzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGNob2ljZS50eXBlTmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICBAaWYgKGNob2ljZS5sb2NhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGNob2ljZS5sb2NhdGlvbiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgQGlmIChjaG9pY2UuZmFjdG9yeSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0cnVuY2F0ZVwiPnt7IGNob2ljZS5mYWN0b3J5IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSBpZiAoaXRlbS5yb2xlID09PSAndXNlcicgJiYgIWl0ZW0uaGlkZGVuKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBtYXgtdy1bOTAlXSBmbGV4LWNvbCBzZWxmLWVuZCBweS00IG1kOm1heC13LVs4MCVdXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3VuZGVkLTJ4bCBiZy16aW5jLTMwMC8zMCBweC02IHB5LTQgZGFyazpiZy1ibGFjay8yMFwiPlxuICAgICAgICAgIDxtYXJrZG93blxuICAgICAgICAgICAgY2xhc3M9XCJtYXJrZG93bi1ib2R5XCJcbiAgICAgICAgICAgIFtkYXRhXT1cImdldE1hcmtkb3duQ29udGVudChpdGVtKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaW50ZXJjZXB0Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgPjwvbWFya2Rvd24+XG4gICAgICAgICAgQGlmIChpdGVtLnBhcnNlZENvbnRlbnQ/LnJlZmVyZW5jZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgPGFpLW1lc3NhZ2UtY29udGV4dFxuICAgICAgICAgICAgICBbbWVzc2FnZV09XCJpdGVtXCJcbiAgICAgICAgICAgICAgW2lzTGFzdE1lc3NhZ2VdPVwiaWR4ID09PSBjaGF0U2VydmljZS5tZXNzYWdlcy5sZW5ndGggLSAxXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtdC0yXCJcbiAgICAgICAgICAgID48L2FpLW1lc3NhZ2UtY29udGV4dD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgfVxuICB9XG5cbiAgQGlmIChjaGF0U2VydmljZS5pc1Byb2Nlc3NpbmcpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwgbWF4LXctWzg1JV0gZmxleC1jb2wgc2VsZi1jZW50ZXIgcm91bmRlZC0yeGxcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC15LTIgcHgtMiBweS00XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInB1bHNlLWxvYWRlciBmbGV4IGl0ZW1zLWNlbnRlciBnYXAteC0xIHRleHQtemluYy03MDAvNTAgZGFyazp0ZXh0LXppbmMtMzAwLzMwXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXY+PC9kaXY+XG4gICAgICAgICAgPGRpdj48L2Rpdj5cbiAgICAgICAgICA8ZGl2PjwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==","import { Component, inject, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef, } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { LoggerModule, NGXLogger } from 'ngx-logger';\nimport { IconComponent } from '../../core/icons';\nimport { ContextService } from '../context.service';\nimport { AiTranslocoModule } from '../transloco.module';\nimport { ChatService } from '../chat.service';\nimport { MessageInputComponent } from '../message-input/message-input.component';\nimport { ThreadComponent } from '../thread/thread.component';\nimport { WebsocketService } from '../websocket.service';\nimport { filter } from 'rxjs';\nimport { AUTH_ADAPTER } from '../../auth/auth.adapter';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@jsverse/transloco\";\nimport * as i2 from \"@angular/material/button\";\nexport class AiChatDialogComponent {\n data = inject(MAT_DIALOG_DATA);\n matDialogRef = inject(MatDialogRef);\n auth = inject(AUTH_ADAPTER);\n chatService = inject(ChatService);\n asset;\n event;\n task;\n logger = inject(NGXLogger);\n type;\n translocoService = inject(TranslocoService);\n constructor() {\n this.asset = this.data.asset || {};\n this.event = this.data.event || {};\n this.type = this.data.assistant || 'asset';\n }\n async ngOnInit() {\n if (!this.auth.isAuthenticated()) {\n if (this.auth.loginPopup) {\n await this.auth.loginPopup();\n }\n else {\n await this.auth.loginRedirect({ redirectUri: window.location.href });\n }\n }\n this.chatService\n .init()\n .then(async () => {\n let initialMessage = this.data.initialMessage;\n if (!initialMessage) {\n initialMessage = this.translocoService.translate('ai.prompts.' + this.type, { assetName: this.asset?.name, taskId: this.task?.id });\n if (this.asset?.externalKey) {\n initialMessage += this.translocoService.translate('ai.prompts.assetKey', { assetKey: this.asset.externalKey });\n }\n if (this.asset?.id) {\n initialMessage += this.translocoService.translate('ai.prompts.assetId', { assetId: this.asset.id });\n }\n }\n const assistantId = this.type + '-assistant';\n await this.chatService.createThreadForModal(assistantId, initialMessage, this.data.context);\n if (this.data.messageHandler) {\n this.chatService.threadEventSubject\n .pipe(filter(({ type }) => !this.data.messageFilter ||\n this.data.messageFilter.length === 0 ||\n this.data.messageFilter.includes(type)))\n .subscribe((event) => {\n this.data.messageHandler(event);\n });\n }\n })\n .catch((err) => {\n this.logger.error(err);\n this.close();\n });\n }\n close(message) {\n this.matDialogRef.close(message);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiChatDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: AiChatDialogComponent, isStandalone: true, selector: \"ng-component\", providers: [ChatService, ContextService, WebsocketService], ngImport: i0, template: \"<div class=\\\"flex h-full w-full flex-col\\\" *transloco=\\\"let t\\\">\\n <div class=\\\"flex justify-end pb-2\\\">\\n <button\\n mat-icon-button\\n (click)=\\\"close()\\\"\\n class=\\\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\\\"\\n >\\n <ai-icon name=\\\"dismiss\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n </button>\\n </div>\\n <div class=\\\"flex h-full w-full flex-col items-center overflow-y-auto\\\">\\n <ai-thread class=\\\"flex h-full w-full\\\"></ai-thread>\\n </div>\\n <ai-message-input class=\\\"w-full\\\"></ai-message-input>\\n</div>\\n\", styles: [\"*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\\\"\\\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.right-4{right:1rem!important}.top-4{top:1rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-0{margin-top:0!important}.mt-2{margin-top:.5rem!important}.line-clamp-3{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important}.flex{display:flex!important}.table{display:table!important}.contents{display:contents!important}.hidden{display:none!important}.h-0\\\\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-full{height:100%!important}.w-10{width:2.5rem!important}.w-\\\\[50rem\\\\]{width:50rem!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-full{width:100%!important}.min-w-40{min-width:10rem!important}.min-w-48{min-width:12rem!important}.min-w-80{min-width:20rem!important}.max-w-80{max-width:20rem!important}.max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.max-w-\\\\[90\\\\%\\\\]{max-width:90%!important}.max-w-full{max-width:100%!important}.max-w-md{max-width:28rem!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-x-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.gap-x-3{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.gap-x-4{-moz-column-gap:1rem!important;column-gap:1rem!important}.gap-y-1{row-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.self-end{align-self:flex-end!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rounded-2xl{border-radius:1rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-red-300{border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-red-300,.border-white{--tw-border-opacity:1!important}.border-white{border-color:rgb(255 255 255/var(--tw-border-opacity,1))!important}.border-zinc-300\\\\/40{border-color:#d4d4d866!important}.border-zinc-300\\\\/50{border-color:#d4d4d880!important}.border-zinc-400\\\\/30{border-color:#a1a1aa4d!important}.border-zinc-400\\\\/40{border-color:#a1a1aa66!important}.border-zinc-400\\\\/50{border-color:#a1a1aa80!important}.border-zinc-600\\\\/30{border-color:#52525b4d!important}.bg-blue-600{background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-blue-600,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgb(75 85 99/var(--tw-bg-opacity,1))!important}.bg-green-600{background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-green-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-200\\\\/20{background-color:#fec8c833!important}.bg-red-400\\\\/10{background-color:#f872721a!important}.bg-red-600{background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.bg-red-600,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-yellow-600{--tw-bg-opacity:1!important;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))!important}.bg-zinc-100\\\\/60{background-color:#f4f4f599!important}.bg-zinc-200{--tw-bg-opacity:1!important;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))!important}.bg-zinc-300\\\\/20{background-color:#d4d4d833!important}.bg-zinc-300\\\\/30{background-color:#d4d4d84d!important}.bg-zinc-300\\\\/40{background-color:#d4d4d866!important}.bg-zinc-400\\\\/20{background-color:#a1a1aa33!important}.bg-zinc-50{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:.75rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.pr-10{padding-right:2.5rem!important}.pr-2{padding-right:.5rem!important}.pr-4{padding-right:1rem!important}.pr-8{padding-right:2rem!important}.pt-3{padding-top:.75rem!important}.pt-4{padding-top:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-semibold{font-weight:600!important}.lowercase{text-transform:lowercase!important}.text-amber-600{--tw-text-opacity:1!important;color:rgb(217 119 6/var(--tw-text-opacity,1))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity,1))!important}.text-green-500\\\\/80{color:#22c55ecc!important}.text-green-600{--tw-text-opacity:1!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-red-500\\\\/80{color:#ef4444cc!important}.text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-600\\\\/80{color:#dc2626cc!important}.text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-zinc-500{--tw-text-opacity:1!important;color:rgb(113 113 122/var(--tw-text-opacity,1))!important}.text-zinc-700\\\\/50{color:#3f3f4680!important}.text-zinc-700\\\\/60{color:#3f3f4699!important}.text-zinc-800{--tw-text-opacity:1!important;color:rgb(39 39 42/var(--tw-text-opacity,1))!important}.text-zinc-800\\\\/90{color:#27272ae6!important}.text-zinc-900\\\\/70{color:#18181bb3!important}.text-zinc-950{--tw-text-opacity:1!important;color:rgb(9 9 11/var(--tw-text-opacity,1))!important}.underline{text-decoration-line:underline!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)!important}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)!important}:root{--black:#000;--white:#fff;--white-rgb:255,255,255;--blue-slate-950-rgb:2,6,23;--blue-slate-900-rgb:15,23,42;--blue-slate-800-rgb:30,41,59;--blue-slate-700-rgb:51,65,85;--blue-slate-400-rgb:148,163,184;--blue-slate-300-rgb:203,213,225;--blue-slate-100-rgb:241,245,249;--blue-slate-050-rgb:248,250,252;--gray-800-rgb:31,41,55;--gray-700-rgb:55,65,81;--gray-600-rgb:75,85,99;--gray-200-rgb:229,231,235;--zinc-950-rgb:9,9,11;--zinc-900-rgb:24,24,27;--zinc-800-rgb:39,39,42;--zinc-700-rgb:63,63,70;--zinc-600-rgb:82,82,91;--zinc-500-rgb:113,113,122;--zinc-400-rgb:161,161,170;--zinc-300-rgb:212,212,216;--zinc-200-rgb:228,228,231;--zinc-100-rgb:244,244,245;--zinc-050-rgb:250,250,250;--red-700-rgb:185,28,28;--red-600-rgb:220,38,38;--red-500-rgb:239,68,68;--red-400-rgb:248,113,113;--red-300-rgb:252,165,165;--blue-gray-900-10:rgba(15,23,42,.1);--blue-gray-900-20:rgba(15,23,42,.2);--blue-gray-900:#0f172a;--blue-gray-800:#1e293b;--blue-gray-800-rgb:30,41,59;--blue-gray-700:#334155;--blue-gray-600:#475569;--blue-gray-500:#64748b;--blue-gray-400:#94a3b8;--blue-gray-300:#cbd5e1;--blue-gray-200:#e2e8f0;--blue-gray-100:#f1f5f9;--blue-gray-50:#f8fafc;--blue-gray-light-2:#141b2e;--blue-gray-light-4:#182032;--blue-gray-light-8:#21293b;--blue-gray-light-8-rgb:33,41,59;--blue-gray-light-16:#333b4b;--blue-gray-light-32:#575e6c;--blue-gray-light-64:#a0a5ae;--blue-gray-light-100:#f1f5f9;--blue-gray-dark-2:#e8ecf1;--blue-gray-dark-4:#e8ecf1;--blue-gray-dark-8:#dfe3e8;--blue-gray-dark-16:#cdd1d8;--blue-gray-dark-32:#a9aeb7;--blue-gray-dark-64:#606775;--blue-gray-dark-100:#0f172a;--blue-700:#1d4ed8;--blue-50:#eff6ff;--green-500:#10b981;--green-50:#ecfdf5;--yellow-50:#fffbeb;--yellow-500:#d97706;--red-700:#b91c1c;--red-50:#fef2f2;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--teal-500:#14b8a6;--teal-600:#0d9488;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--hp-light-blue:#13cae6;--hp-gradient-light:#3f8efe;--hp-gradient-highlight:#3ffbda;--hp-gradient-dark:#2b64ff;--font-family:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-chip-container-height:30px;--mat-chip-container-shape-radius:12px;--mat-fab-container-shape:12px;--mat-icon-button-icon-size:24px;--mat-icon-button-state-layer-size:40px;--mat-icon-button-icon-color:currentColor;--mat-progress-bar-active-indicator-color:#020617;--mat-progress-bar-active-indicator-height:10px;--mat-progress-bar-track-color:#f4f4f5;--mat-progress-bar-track-height:10px;--mat-progress-bar-track-shape:10px;--mat-tooltip-container-shape:8px;--mat-button-protected-container-shape:9999px;--mat-button-protected-keep-touch-target:false;--mat-button-protected-horizontal-padding:24px;--mat-button-protected-icon-spacing:8px;--mat-button-protected-icon-offset:-4px;--mat-dialog-actions-padding:16px;--mat-dialog-actions-alignment:normal;--mat-dialog-container-shape:16px;--mat-dialog-supporting-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-button-outlined-container-height:40px;--mat-button-outlined-container-shape:9999px;--mat-button-outlined-icon-spacing:8px;--mat-button-outlined-icon-offset:-4px;--mat-button-outlined-horizontal-padding:24px;--mat-button-outlined-keep-touch-target:false;--mat-button-outlined-outline-width:1px;--mat-button-text-container-height:40px;--mat-button-text-container-shape:9999px;--mat-button-text-horizontal-padding:24px;--mat-button-text-icon-spacing:8px;--mat-button-text-icon-offset:0;--mat-button-text-keep-touch-target:false;--mat-button-text-with-icon-horizontal-padding:8px;--mat-button-filled-container-shape:4px;--mat-button-filled-keep-touch-target:false;--mat-button-filled-horizontal-padding:16px;--mat-button-filled-icon-spacing:8px;--mat-button-filled-icon-offset:-4px;--mat-menu-container-shape:16px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-stepper-container-color:transparent;--mat-slide-toggle-track-height:28px;--mat-slide-toggle-track-outline-color:#52525b;--mat-slide-toggle-label-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-slide-toggle-label-text-color:#09090b;--mat-slide-toggle-label-text-tracking:0;--mat-slide-toggle-label-text-weight:600;--mat-slide-toggle-unselected-handle-color:#52525b;--mat-slide-toggle-unselected-track-color:#d4d4d8;--mat-slide-toggle-unselected-focus-track-color:#cbd5e1;--mat-slide-toggle-unselected-hover-track-color:#cbd5e1;--mat-slide-toggle-unselected-pressed-track-color:#cbd5e1;--mat-slide-toggle-selected-track-color:#1e293b;--mat-slide-toggle-selected-focus-track-color:#334155;--mat-slide-toggle-selected-hover-track-color:#334155;--mat-slide-toggle-selected-pressed-track-color:#334155;--mat-slide-toggle-selected-track-outline-color:#020617;--mat-slide-toggle-selected-handle-color:#cbd5e1;--mat-slide-toggle-selected-focus-handle-color:#3ffbda;--mat-slide-toggle-selected-hover-handle-color:#3ffbda;--mat-slide-toggle-selected-pressed-handle-color:#3ffbda;--mat-slide-toggle-selected-focus-state-layer-color:#3ffbda;--mat-slide-toggle-selected-hover-state-layer-color:#3ffbda;--mat-slide-toggle-selected-pressed-state-layer-color:#3ffbda;--mat-slide-toggle-unselected-focus-state-layer-color:#020617;--mat-slide-toggle-unselected-hover-state-layer-color:#020617;--mat-slide-toggle-unselected-pressed-state-layer-color:#020617;--mat-slide-toggle-selected-icon-color:#020617;--mat-slide-toggle-with-icon-handle-size:22px;--hot-toast-border-radius:16px;--hot-toast-padding:14px 20px;--hot-toast-info-icon-background-color:#1d4ed8;--hot-toast-checkmark-icon-background-color:#10b981;--hot-toast-warning-icon-background-color:#d97706;--hot-toast-error-icon-background-color:#b91c1c;--color-primary:#020617;--color-primary-inverted:#f8fafc;--color-on-primary:#f8fafc;--color-danger:#fca5a5;--color-on-danger:#dc2626;--menu_container-color:#020617;--menu_text-color:#f8fafc;--color-surface:#fff;--color-on-surface:#1e293b;--color-on-surface-lighter:#64748b;--color-base:#f1f5f9;--color-base-900:#f1f5f9;--color-base-800:#e2e8f0;--color-base-700:#cbd5e1;--color-base-600:#94a3b8;--color-base-500:#64748b;--color-base-400:#475569;--color-base-300:#334155;--color-base-200:#1e293b;--color-base-100:#0f172a;--color-border-around-base:#e2e8f0;--color-alternate:#f1f5f9;--color-alternate-lighter:#f8fafc;--color-active:#e2e8f0;--color-active-lighter:#f1f5f9;--color-on-active:#0f172a;--color-interactive:#cbd5e1;--color-on-interactive:#0f172a;--color-disabled:#fff;--color-highlight:#3f8efe;--color-highlight-hover:#06b6d4;--color-hint:#606775;--color-info:#eff6ff;--color-on-info:#1d4ed8;--color-success:#ecfdf5;--color-on-success:#10b981;--color-warning:#fffbeb;--color-on-warning:#d97706;--color-error:#fef2f2;--color-on-error:#b91c1c;--color-bg-primary:#fff;--color-bg-secondary:rgba(239,254,252,.3);--color-hover:#e2e8f0;--card_background-color:#fff;--card_background-color-rgb:255,255,255;--dialog_background-color:#fff;--query-sender_background-color:#f5f5ef;--query-sender_text-color:#000;--sidebar_text-color:#fff;--sidebar_border-color:#1e293b;--sidebar-title_font-size:1.7rem;--sidebar-title-letter-spacing:-1px;--sidebar-button_background-color:transparent;--sidebar-button_text-color:#94a3b8;--sidebar-button_font-weight:500;--sidebar-button_active_text-color:#f8fafc;--radio_background-color:#e2e8f0;--radio_border-color:#334155;--radio_active_background-color:#cbd5e1;--radio_active_border-color:#0f172a;--mat-radio-selected-icon-color:#0f172a;--mat-radio-selected-pressed-icon-color:#3f8efe;--mat-radio-selected-hover-icon-color:#06b6d4;--mat-radio-unselected-icon-color:#0f172a;--mat-radio-unselected-pressed-icon-color:#3f8efe;--mat-radio-unselected-hover-icon-color:#06b6d4;--checkbox_background-color:#f1f5f9;--mat-checkbox-state-layer-size:36px;--mat-checkbox-selected-icon-color:#0f172a;--mat-checkbox-selected-hover-icon-color:#0f172a;--mat-checkbox-selected-pressed-icon-color:#0f172a;--mat-checkbox-selected-focus-icon-color:#0f172a;--mat-checkbox-unselected-icon-color:#475569;--mat-checkbox-unselected-hover-icon-color:#0f172a;--mat-checkbox-unselected-pressed-icon-color:#0f172a;--mat-checkbox-unselected-focus-icon-color:#0f172a;--mat-checkbox-selected-checkmark-color:#f1f5f9;--mat-mdc-button-persistent-ripple-color:#0f172a;--mat-mdc-button-ripple-color:rgba(15,23,42,.2);--toggle-bar_color:#cbd5e1;--toggle-bar_active_color:#94a3b8;--toggle-bar-thumb_color:#64748b;--toggle-bar-thumb_active_color:#0f172a;--toggle-button_text-color:#000;--toggle-button_background-color:#f8fafc;--toggle-button_hover_background-color:#e2e8f0;--toggle-button_checked_text-color:#fff;--toggle-button_checked_background-color:#10b981;--tag_background-color:#e2e8f0;--tag_text-color:#475569;--tag_border-color:#e2e8f0;--tag_hover_background-color:#475569;--tag_hover_text-color:#e2e8f0;--tag_hover_border-color:#475569;--tag_disabled_background-color:#f8fafc;--tag_disabled_text-color:#cbd5e1;--tag_disabled_border-color:#f8fafc;--tag_system_background-color:#a5f3fc;--tag_border-radius:.75rem;--input_text-color:#1e293b;--input_border-color:#cbd5e1;--input_placeholder-color:#64748b;--input_xfix-color:#64748b;--input_caret-color:#1e293b;--input_border-radius:.5rem;--input_active_border-color:#334155;--form-field-label_text-color:#f1f5f9;--form-field-required_color:#b91c1c;--color-button-primary:#475569;--color-button-primary-text:#fff;--color-button-secondary:#cbd5e1;--color-button-secondary-text:#0f172a;--color-disabled-button:hsla(0,0%,100%,.5);--color-text-primary:#0f172a;--color-text-secondary:#0f172a;--color-text-accent:red;--color-text-disabled:#606775;--color-text-disabled-button:#606775;--color-text-hint:#606775;--color-dividers:#cbd5e1;--color-icons:#0f172a;--light-primary-text:#fff;--dark-primary-text:#000;--primary-color:#fff;--primary-lighter-color:#b3b6e8;--primary-darker-color:#010798;--text-primary-color:#0f172a;--text-primary-lighter-color:#000;--text-primary-darker-color:#fff;--accent-color:#475569;--accent-lighter-color:#94a3b8;--accent-darker-color:#1e293b;--text-accent-color:#fff;--text-accent-lighter-color:#000;--text-accent-darker-color:#fff;--white-color:#fff;--text-white-color:#000;--success-color:#6ee7b7;--text-success-color:#000;--warn-color:#be123c;--warn-lighter-color:#fef2f2;--warn-darker-color:#b91c1c;--text-warn-color:#fff;--text-warn-lighter-color:#000;--text-warn-darker-color:#fff;--text-primary:#0f172a;--form-filed-bg:#fff;--fab-button-bg:#fff;--fab-button-text:#0f172a;--fab-button-disabled-bg:hsla(0,0%,100%,.6);--fab-button-disabled-text:rgba(0,0,0,.3);--button-text-color:#0f172a;--button-bg-color:#cbd5e1;--button-hover-color:#94a3b8;--mat-button-filled-label-text-color:#0f172a;--mat-button-filled-container-color:#cbd5e1;--mat-button-protected-label-text-color:#0f172a;--mat-button-protected-container-color:#cbd5e1}html{--hp-dark-blue:#131d56;--hp-light-blue:#13cae6;--hp-gradient-light:63,142,254;--hp-gradient-highlight:63,251,218;--hp-gradient-dark:43,100,255;--hp-color-text-highlight:19,202,230;--hpc-highlight-color-light:6 182 212;--hpc-highlight-color-dark:19 202 230;--hpc-highlight-color:6 182 212;--mat-chip-elevated-container-color:#e2e8f0;--mat-tooltip-container-color:#020617;--mat-tooltip-supporting-text-color:#fff;--mat-menu-container-color:hsla(0,0%,100%,.5);--mat-select-panel-background-color:hsla(0,0%,100%,.4);--mat-paginator-container-background-color:#fafafa;--mat-paginator-container-border-color:#f4f4f5;--mat-paginator-container-border-top-color:#e4e4e7;--mat-sidenav-container-divider-color:#e2e8f0;--mat-stepper-line-color:#f1f5f9;--sidebar_background-color:#020617;--sidebar-submenu_hover_background-color:hsla(240,4%,46%,.7);--scrollbar-thumb-color:rgba(2,6,23,.25);--scrollbar-track-color:rgba(2,6,23,.1)}input,textarea{background:transparent}input::-moz-placeholder,textarea::-moz-placeholder{color:#d4d4d8}input::placeholder,textarea::placeholder{color:#d4d4d8}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#52525b}.dark input::placeholder,.dark textarea::placeholder{color:#52525b}input::-moz-placeholder,textarea::-moz-placeholder{color:#606775}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#606775}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#606775}input:-webkit-autofill,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}input:-webkit-autofill:active,input:-webkit-autofill:focus,textarea:-webkit-autofill:active,textarea:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}[data-autocompleted]{background-color:transparent!important}input:focus,textarea:focus{box-shadow:none!important;outline:none!important}.mdc-elevation--z4{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.mat-mdc-raised-button.mat-primary{background-color:#020617!important;color:#f8fafc!important;font-weight:600!important;line-height:1.375!important;padding-left:1rem!important;padding-right:1rem!important}.dark .mat-mdc-raised-button.mat-primary{background-color:#e4e4e7!important;color:#020617!important}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple:before{opacity:.05}.mat-mdc-outlined-button.mat-primary{background:linear-gradient(to bottom right,#3ffbdae6,#2b64ffe6)!important;border:none!important;color:#fff!important;font-weight:600!important}.mat-mdc-outlined-button.mat-primary:hover{background:linear-gradient(to bottom right,#3ffbda,#2b64ff)!important}.mat-mdc-outlined-button:not([disabled=true]){border-color:#27272a!important}.dark .mat-mdc-outlined-button:not([disabled=true]){border-color:#d4d4d8!important}.mat-mdc-outlined-button[disabled=true]{border-color:#e5e7eb!important}.dark .mat-mdc-outlined-button[disabled=true]{border-color:#4b5563!important}.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-raised-button:not(.mat-primary,.mat-accent),.mat-mdc-raised-button:not(.mat-primary,.mat-accent):hover,.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent),.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent):hover{background-color:#cbd5e1!important;color:#0f172a!important}.mat-mdc-raised-button.mat-white:not([disabled]),.mat-mdc-unelevated-button.mat-white:not([disabled]){background-color:#fff!important;color:#000!important}.mat-mdc-raised-button.mat-success:not([disabled]),.mat-mdc-unelevated-button.mat-success:not([disabled]){background-color:#6ee7b7!important;color:#000!important}.mat-mdc-raised-button.mat-accent:not([disabled]),.mat-mdc-unelevated-button.mat-accent:not([disabled]){background-color:#475569!important;color:#fff!important}.mat-mdc-raised-button.mat-warn:not([disabled]),.mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#ef4444!important;color:#fef2f2!important}.mat-mdc-raised-button.mat-warn:not([disabled]):hover,.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#dc2626!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]),.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#b91c1ccc!important;color:#ef4444!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]):hover,.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#b91c1c!important}.mat-mdc-raised-button.mat-info:not([disabled]),.mat-mdc-unelevated-button.mat-info:not([disabled]){background-color:#3b82f6!important;color:#fff!important}.mdc-button--raised{padding-left:1.5rem!important;padding-right:1.5rem!important}.mat-mdc-dialog-container .mdc-dialog__content{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{letter-spacing:inherit!important;line-height:inherit!important}.mat-mdc-dialog-title:before{display:none!important}.mat-mdc-tooltip .mdc-tooltip__surface{font-size:.875rem!important;padding:.5rem .75rem!important}.mat-expansion-panel{background-color:#fff!important;border-radius:.375rem!important;box-shadow:none!important;padding:.25rem!important}.mat-expansion-panel .mat-expansion-panel-header{background-color:#f8fafc!important;border:1px solid #f1f5f9!important;border-radius:.375rem!important;transition:padding .2s ease-in-out}.mat-expansion-panel .mat-expansion-panel-header:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded{background-color:#fff!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header .mat-content{justify-content:space-between}.mat-expansion-panel .mat-expansion-panel-header-description,.mat-expansion-panel .mat-expansion-panel-header-title{flex-basis:auto!important;margin:0!important}.mat-expansion-panel .mat-expansion-panel-header-description{flex-grow:0!important}.mat-expansion-panel .mat-expansion-panel-content{border-bottom:1px solid #f1f5f9!important;border-bottom-left-radius:.375rem!important;border-bottom-right-radius:.375rem!important;border-left:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.mat-expansion-panel .mat-expansion-panel-content,.mat-expansion-panel .mat-expansion-panel-header{font-size:.875rem}.mat-expansion-panel .mat-expansion-panel-header-title,.mat-expansion-panel .mat-panel-title{font-size:1rem;font-weight:600}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{margin-right:1.75rem}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{background-color:#d4d4d8!important;border-radius:9999px!important;display:inline-block!important;height:1.5rem!important;padding:3px;width:1.5rem!important;fill:currentColor!important;color:#18181b!important}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator:after{border:none;content:url(\\\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='3.5'><path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z' /></svg>\\\");height:100%;padding:0;transform:rotate(0);width:100%}.mat-accordion .mat-expansion-panel .mat-expansion-panel-body{color:#0f172a!important;line-height:1.625!important;padding:1rem!important}.mat-tree{background-color:#fff!important;border-radius:.5rem!important;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.mat-tree .mat-tree-node{color:#0f172a;padding:.25rem}.mat-mdc-button,.mat-mdc-fab,.mat-mdc-icon-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button{height:40px;line-height:1!important;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-small,.mat-mdc-fab.hpc-mat-button-small,.mat-mdc-icon-button.hpc-mat-button-small,.mat-mdc-raised-button.hpc-mat-button-small,.mat-mdc-unelevated-button.hpc-mat-button-small{height:32px;max-height:32px;min-height:32px}.mat-mdc-button.hpc-mat-button-medium,.mat-mdc-fab.hpc-mat-button-medium,.mat-mdc-icon-button.hpc-mat-button-medium,.mat-mdc-raised-button.hpc-mat-button-medium,.mat-mdc-unelevated-button.hpc-mat-button-medium{height:40px;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-large,.mat-mdc-fab.hpc-mat-button-large,.mat-mdc-icon-button.hpc-mat-button-large,.mat-mdc-raised-button.hpc-mat-button-large,.mat-mdc-unelevated-button.hpc-mat-button-large{height:48px;max-height:48px;min-height:48px;width:48px}.mat-mdc-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-button[disabled=true] ai-icon,.mat-mdc-fab[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-fab[disabled=true] ai-icon,.mat-mdc-icon-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-icon-button[disabled=true] ai-icon,.mat-mdc-raised-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-raised-button[disabled=true] ai-icon,.mat-mdc-unelevated-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-unelevated-button[disabled=true] ai-icon{opacity:.38!important}.mat-mdc-icon-button{border-radius:1rem!important}.mat-mdc-icon-button ai-icon{color:#020617e6}.mat-mdc-icon-button.small{border-radius:.75rem!important;height:32px;max-height:32px;min-height:32px;padding:6px;width:32px}.mat-mdc-icon-button.small ai-icon{font-size:20px;height:20px;line-height:20px;min-height:20px;min-width:20px;width:20px}.mat-mdc-icon-button.small ai-icon svg{height:20px;width:20px}.mat-mdc-icon-button.large{height:44px;max-height:44px;min-height:44px;width:44px}.mat-mdc-icon-button.large ai-icon{font-size:28px;height:28px;line-height:28px;min-height:28px;min-width:28px;width:28px}.mat-mdc-icon-button.large ai-icon svg{height:28px;width:28px}.mat-mdc-icon-button.inverted ai-icon{color:#f8fafccc}.mat-mdc-icon-button:hover{background-color:#02061726}.mat-mdc-icon-button:hover ai-icon{color:#020617}.mat-mdc-icon-button:hover.danger{background-color:#fca6a633}.mat-mdc-icon-button:hover.danger ai-icon{color:#dc2626}.mat-mdc-icon-button:hover.inverted{background-color:#f8fafc33}.mat-mdc-icon-button:hover.inverted ai-icon{color:#f8fafc}.mat-mdc-button .mat-ripple-element{background-color:#0f172a1a!important}.mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#0206170d!important}.dark .mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#fafafa26!important}.mat-mdc-button>ai-icon,.mat-mdc-raised-button>ai-icon,.mat-mdc-unelevated-button>ai-icon{margin-left:0!important}ai-icon,ai-icon.mat-primary{color:#18181b}.dark ai-icon,.dark ai-icon.mat-primary{color:#fafafa}.mdc-linear-progress__buffer-bar{background-color:#d4d4d8b3!important}.dark .mdc-linear-progress__buffer-bar{background-color:#52525bb3!important}.mdc-linear-progress__bar-inner{border-color:#3f8efe!important}.mat-mdc-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-fab .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-icon-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-raised-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-unelevated-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle{stroke:currentColor!important;animation-duration:6s}.mat-mdc-fab ai-icon,.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-fab .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element{background-color:#0000001a!important}.mat-mdc-button:not([disabled=true]).mat-primary ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-primary ai-icon{color:#020617!important}.mat-mdc-button:not([disabled=true]).mat-accent ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-accent ai-icon{color:#475569!important}.mat-mdc-button:not([disabled=true]).mat-warn ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-warn ai-icon{color:#fffbeb!important}.mdc-button .mdc-button__label{font-weight:600;white-space:nowrap}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:#fff!important;border-radius:0!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;padding:24px}@media(min-width:640px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:1.5rem!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}}.dark .mat-mdc-dialog-container .mdc-dialog__surface{background-color:#000!important;border:1px solid #3f3f46!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{color:#1e293b!important}ai-icon{align-items:center;-webkit-appearance:none!important;display:inline-flex!important;font-size:24px;height:24px;justify-content:center;line-height:24px;width:24px}.mat-mdc-input-element::-moz-placeholder{color:#d4d4d8!important}.mat-mdc-input-element::placeholder{color:#d4d4d8!important;transition:none!important}.dark .mat-mdc-input-element::-moz-placeholder{color:#52525b!important}.dark .mat-mdc-input-element::placeholder{color:#52525b!important}.mat-mdc-input-element::-moz-placeholder{color:#606775!important;-moz-transition:none!important;transition:none!important}.mat-mdc-input-element::placeholder,.mat-mdc-select .mat-mdc-select-placeholder{color:#64748b}.icon-sm{font-size:1.25rem!important;line-height:1.25rem!important;min-height:1.25rem!important;min-width:1.25rem!important}.icon-sm,.icon-sm svg{height:1.25rem!important;width:1.25rem!important}.icon-md{font-size:1.5rem!important;line-height:1.5rem!important;min-height:1.5rem!important;min-width:1.5rem!important}.icon-md,.icon-md svg{height:1.5rem!important;width:1.5rem!important}html{--color-prettylights-syntax-comment:#57606a;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-done-fg:#8250df;--color-done-emphasis:#8250df}.markdown-body{color:var(--color-fg-default)}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:\\\" \\\";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:\\\"\\\";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none!important}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type=\\\"a s\\\"]{list-style-type:lower-alpha}.markdown-body ol[type=\\\"A s\\\"]{list-style-type:upper-alpha}.markdown-body ol[type=\\\"i s\\\"]{list-style-type:lower-roman}.markdown-body ol[type=\\\"I s\\\"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type=\\\"1\\\"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--color-border-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:\\\"[\\\"}.markdown-body [data-footnote-ref]:after{content:\\\"]\\\"}.markdown-body .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;content:\\\"\\\";inset:-8px -8px -8px -24px;pointer-events:none;position:absolute}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.hover\\\\:bg-zinc-100:hover{--tw-bg-opacity:1!important;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))!important}.hover\\\\:bg-zinc-400\\\\/30:hover{background-color:#a1a1aa4d!important}.hover\\\\:text-blue-500:hover{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.hover\\\\:text-blue-600:hover{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.hover\\\\:text-zinc-900:hover{--tw-text-opacity:1!important;color:rgb(24 24 27/var(--tw-text-opacity,1))!important}.hover\\\\:underline:hover{text-decoration-line:underline!important}@media(min-width:640px){.sm\\\\:h-\\\\[65vh\\\\]{height:65vh!important}.sm\\\\:flex-row{flex-direction:row!important}.sm\\\\:items-start{align-items:flex-start!important}.sm\\\\:items-center{align-items:center!important}.sm\\\\:justify-start{justify-content:flex-start!important}}@media(min-width:768px){.md\\\\:max-w-\\\\[80\\\\%\\\\]{max-width:80%!important}.md\\\\:max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.md\\\\:flex-col{flex-direction:column!important}.md\\\\:gap-2{gap:.5rem!important}.md\\\\:gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.md\\\\:rounded-2xl{border-radius:1rem!important}.md\\\\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\\\\:pr-4{padding-right:1rem!important}.md\\\\:text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.md\\\\:font-semibold{font-weight:600!important}}@media(min-width:1024px){.lg\\\\:max-w-screen-md{max-width:768px!important}}@media(min-width:1280px){.xl\\\\:max-w-screen-lg{max-width:1024px!important}}.dark\\\\:border-black\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#00000080!important}.dark\\\\:border-red-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-border-opacity:1!important;border-color:rgb(127 29 29/var(--tw-border-opacity,1))!important}.dark\\\\:border-zinc-600\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b4d!important}.dark\\\\:border-zinc-600\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b80!important}.dark\\\\:border-zinc-700\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4666!important}.dark\\\\:border-zinc-700\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4680!important}.dark\\\\:bg-black:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-black\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#0003!important}.dark\\\\:bg-black\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#000000b3!important}.dark\\\\:bg-red-600\\\\/10:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#dc26261a!important}.dark\\\\:bg-red-800\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#991b1b33!important}.dark\\\\:bg-red-950\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#450a0acc!important}.dark\\\\:bg-zinc-700:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-zinc-700\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#3f3f464d!important}.dark\\\\:bg-zinc-800\\\\/60:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#27272a99!important}.dark\\\\:bg-zinc-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))!important}.dark\\\\:text-blue-100:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(219 234 254/var(--tw-text-opacity,1))!important}.dark\\\\:text-green-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#4ade80cc!important}.dark\\\\:text-red-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\\\\:text-red-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f87272cc!important}.dark\\\\:text-zinc-100\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5b3!important}.dark\\\\:text-zinc-100\\\\/90:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5e6!important}.dark\\\\:text-zinc-300:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(212 212 216/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-300\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d84d!important}.dark\\\\:text-zinc-300\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d866!important}.dark\\\\:text-zinc-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(161 161 170/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:bg-zinc-800:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-200:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(191 219 254/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-400:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-zinc-50:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}\\n/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/\\n\"], dependencies: [{ kind: \"ngmodule\", type: AiTranslocoModule }, { kind: \"directive\", type: i1.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"component\", type: IconComponent, selector: \"ai-icon\", inputs: [\"name\", \"size\", \"label\"] }, { kind: \"ngmodule\", type: LoggerModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"component\", type: i2.MatIconButton, selector: \"button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]\", exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"ngmodule\", type: MatDialogModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: MessageInputComponent, selector: \"ai-message-input\", inputs: [\"startConversation\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"component\", type: ThreadComponent, selector: \"ai-thread\" }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiChatDialogComponent, decorators: [{\n type: Component,\n args: [{ imports: [\n AiTranslocoModule,\n FormsModule,\n IconComponent,\n LoggerModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MessageInputComponent,\n ReactiveFormsModule,\n ThreadComponent,\n ], providers: [ChatService, ContextService, WebsocketService], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"flex h-full w-full flex-col\\\" *transloco=\\\"let t\\\">\\n <div class=\\\"flex justify-end pb-2\\\">\\n <button\\n mat-icon-button\\n (click)=\\\"close()\\\"\\n class=\\\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\\\"\\n >\\n <ai-icon name=\\\"dismiss\\\" size=\\\"20\\\" class=\\\"icon-sm\\\"></ai-icon>\\n </button>\\n </div>\\n <div class=\\\"flex h-full w-full flex-col items-center overflow-y-auto\\\">\\n <ai-thread class=\\\"flex h-full w-full\\\"></ai-thread>\\n </div>\\n <ai-message-input class=\\\"w-full\\\"></ai-message-input>\\n</div>\\n\", styles: [\"*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\\\"\\\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.right-4{right:1rem!important}.top-4{top:1rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-0{margin-top:0!important}.mt-2{margin-top:.5rem!important}.line-clamp-3{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important}.flex{display:flex!important}.table{display:table!important}.contents{display:contents!important}.hidden{display:none!important}.h-0\\\\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-full{height:100%!important}.w-10{width:2.5rem!important}.w-\\\\[50rem\\\\]{width:50rem!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-full{width:100%!important}.min-w-40{min-width:10rem!important}.min-w-48{min-width:12rem!important}.min-w-80{min-width:20rem!important}.max-w-80{max-width:20rem!important}.max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.max-w-\\\\[90\\\\%\\\\]{max-width:90%!important}.max-w-full{max-width:100%!important}.max-w-md{max-width:28rem!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-x-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.gap-x-3{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.gap-x-4{-moz-column-gap:1rem!important;column-gap:1rem!important}.gap-y-1{row-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.self-end{align-self:flex-end!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rounded-2xl{border-radius:1rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-red-300{border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-red-300,.border-white{--tw-border-opacity:1!important}.border-white{border-color:rgb(255 255 255/var(--tw-border-opacity,1))!important}.border-zinc-300\\\\/40{border-color:#d4d4d866!important}.border-zinc-300\\\\/50{border-color:#d4d4d880!important}.border-zinc-400\\\\/30{border-color:#a1a1aa4d!important}.border-zinc-400\\\\/40{border-color:#a1a1aa66!important}.border-zinc-400\\\\/50{border-color:#a1a1aa80!important}.border-zinc-600\\\\/30{border-color:#52525b4d!important}.bg-blue-600{background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-blue-600,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgb(75 85 99/var(--tw-bg-opacity,1))!important}.bg-green-600{background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-green-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-200\\\\/20{background-color:#fec8c833!important}.bg-red-400\\\\/10{background-color:#f872721a!important}.bg-red-600{background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.bg-red-600,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-yellow-600{--tw-bg-opacity:1!important;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))!important}.bg-zinc-100\\\\/60{background-color:#f4f4f599!important}.bg-zinc-200{--tw-bg-opacity:1!important;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))!important}.bg-zinc-300\\\\/20{background-color:#d4d4d833!important}.bg-zinc-300\\\\/30{background-color:#d4d4d84d!important}.bg-zinc-300\\\\/40{background-color:#d4d4d866!important}.bg-zinc-400\\\\/20{background-color:#a1a1aa33!important}.bg-zinc-50{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:.75rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.pr-10{padding-right:2.5rem!important}.pr-2{padding-right:.5rem!important}.pr-4{padding-right:1rem!important}.pr-8{padding-right:2rem!important}.pt-3{padding-top:.75rem!important}.pt-4{padding-top:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-semibold{font-weight:600!important}.lowercase{text-transform:lowercase!important}.text-amber-600{--tw-text-opacity:1!important;color:rgb(217 119 6/var(--tw-text-opacity,1))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity,1))!important}.text-green-500\\\\/80{color:#22c55ecc!important}.text-green-600{--tw-text-opacity:1!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-red-500\\\\/80{color:#ef4444cc!important}.text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-600\\\\/80{color:#dc2626cc!important}.text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-zinc-500{--tw-text-opacity:1!important;color:rgb(113 113 122/var(--tw-text-opacity,1))!important}.text-zinc-700\\\\/50{color:#3f3f4680!important}.text-zinc-700\\\\/60{color:#3f3f4699!important}.text-zinc-800{--tw-text-opacity:1!important;color:rgb(39 39 42/var(--tw-text-opacity,1))!important}.text-zinc-800\\\\/90{color:#27272ae6!important}.text-zinc-900\\\\/70{color:#18181bb3!important}.text-zinc-950{--tw-text-opacity:1!important;color:rgb(9 9 11/var(--tw-text-opacity,1))!important}.underline{text-decoration-line:underline!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)!important}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)!important}:root{--black:#000;--white:#fff;--white-rgb:255,255,255;--blue-slate-950-rgb:2,6,23;--blue-slate-900-rgb:15,23,42;--blue-slate-800-rgb:30,41,59;--blue-slate-700-rgb:51,65,85;--blue-slate-400-rgb:148,163,184;--blue-slate-300-rgb:203,213,225;--blue-slate-100-rgb:241,245,249;--blue-slate-050-rgb:248,250,252;--gray-800-rgb:31,41,55;--gray-700-rgb:55,65,81;--gray-600-rgb:75,85,99;--gray-200-rgb:229,231,235;--zinc-950-rgb:9,9,11;--zinc-900-rgb:24,24,27;--zinc-800-rgb:39,39,42;--zinc-700-rgb:63,63,70;--zinc-600-rgb:82,82,91;--zinc-500-rgb:113,113,122;--zinc-400-rgb:161,161,170;--zinc-300-rgb:212,212,216;--zinc-200-rgb:228,228,231;--zinc-100-rgb:244,244,245;--zinc-050-rgb:250,250,250;--red-700-rgb:185,28,28;--red-600-rgb:220,38,38;--red-500-rgb:239,68,68;--red-400-rgb:248,113,113;--red-300-rgb:252,165,165;--blue-gray-900-10:rgba(15,23,42,.1);--blue-gray-900-20:rgba(15,23,42,.2);--blue-gray-900:#0f172a;--blue-gray-800:#1e293b;--blue-gray-800-rgb:30,41,59;--blue-gray-700:#334155;--blue-gray-600:#475569;--blue-gray-500:#64748b;--blue-gray-400:#94a3b8;--blue-gray-300:#cbd5e1;--blue-gray-200:#e2e8f0;--blue-gray-100:#f1f5f9;--blue-gray-50:#f8fafc;--blue-gray-light-2:#141b2e;--blue-gray-light-4:#182032;--blue-gray-light-8:#21293b;--blue-gray-light-8-rgb:33,41,59;--blue-gray-light-16:#333b4b;--blue-gray-light-32:#575e6c;--blue-gray-light-64:#a0a5ae;--blue-gray-light-100:#f1f5f9;--blue-gray-dark-2:#e8ecf1;--blue-gray-dark-4:#e8ecf1;--blue-gray-dark-8:#dfe3e8;--blue-gray-dark-16:#cdd1d8;--blue-gray-dark-32:#a9aeb7;--blue-gray-dark-64:#606775;--blue-gray-dark-100:#0f172a;--blue-700:#1d4ed8;--blue-50:#eff6ff;--green-500:#10b981;--green-50:#ecfdf5;--yellow-50:#fffbeb;--yellow-500:#d97706;--red-700:#b91c1c;--red-50:#fef2f2;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--teal-500:#14b8a6;--teal-600:#0d9488;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--hp-light-blue:#13cae6;--hp-gradient-light:#3f8efe;--hp-gradient-highlight:#3ffbda;--hp-gradient-dark:#2b64ff;--font-family:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-chip-container-height:30px;--mat-chip-container-shape-radius:12px;--mat-fab-container-shape:12px;--mat-icon-button-icon-size:24px;--mat-icon-button-state-layer-size:40px;--mat-icon-button-icon-color:currentColor;--mat-progress-bar-active-indicator-color:#020617;--mat-progress-bar-active-indicator-height:10px;--mat-progress-bar-track-color:#f4f4f5;--mat-progress-bar-track-height:10px;--mat-progress-bar-track-shape:10px;--mat-tooltip-container-shape:8px;--mat-button-protected-container-shape:9999px;--mat-button-protected-keep-touch-target:false;--mat-button-protected-horizontal-padding:24px;--mat-button-protected-icon-spacing:8px;--mat-button-protected-icon-offset:-4px;--mat-dialog-actions-padding:16px;--mat-dialog-actions-alignment:normal;--mat-dialog-container-shape:16px;--mat-dialog-supporting-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-button-outlined-container-height:40px;--mat-button-outlined-container-shape:9999px;--mat-button-outlined-icon-spacing:8px;--mat-button-outlined-icon-offset:-4px;--mat-button-outlined-horizontal-padding:24px;--mat-button-outlined-keep-touch-target:false;--mat-button-outlined-outline-width:1px;--mat-button-text-container-height:40px;--mat-button-text-container-shape:9999px;--mat-button-text-horizontal-padding:24px;--mat-button-text-icon-spacing:8px;--mat-button-text-icon-offset:0;--mat-button-text-keep-touch-target:false;--mat-button-text-with-icon-horizontal-padding:8px;--mat-button-filled-container-shape:4px;--mat-button-filled-keep-touch-target:false;--mat-button-filled-horizontal-padding:16px;--mat-button-filled-icon-spacing:8px;--mat-button-filled-icon-offset:-4px;--mat-menu-container-shape:16px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-stepper-container-color:transparent;--mat-slide-toggle-track-height:28px;--mat-slide-toggle-track-outline-color:#52525b;--mat-slide-toggle-label-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-slide-toggle-label-text-color:#09090b;--mat-slide-toggle-label-text-tracking:0;--mat-slide-toggle-label-text-weight:600;--mat-slide-toggle-unselected-handle-color:#52525b;--mat-slide-toggle-unselected-track-color:#d4d4d8;--mat-slide-toggle-unselected-focus-track-color:#cbd5e1;--mat-slide-toggle-unselected-hover-track-color:#cbd5e1;--mat-slide-toggle-unselected-pressed-track-color:#cbd5e1;--mat-slide-toggle-selected-track-color:#1e293b;--mat-slide-toggle-selected-focus-track-color:#334155;--mat-slide-toggle-selected-hover-track-color:#334155;--mat-slide-toggle-selected-pressed-track-color:#334155;--mat-slide-toggle-selected-track-outline-color:#020617;--mat-slide-toggle-selected-handle-color:#cbd5e1;--mat-slide-toggle-selected-focus-handle-color:#3ffbda;--mat-slide-toggle-selected-hover-handle-color:#3ffbda;--mat-slide-toggle-selected-pressed-handle-color:#3ffbda;--mat-slide-toggle-selected-focus-state-layer-color:#3ffbda;--mat-slide-toggle-selected-hover-state-layer-color:#3ffbda;--mat-slide-toggle-selected-pressed-state-layer-color:#3ffbda;--mat-slide-toggle-unselected-focus-state-layer-color:#020617;--mat-slide-toggle-unselected-hover-state-layer-color:#020617;--mat-slide-toggle-unselected-pressed-state-layer-color:#020617;--mat-slide-toggle-selected-icon-color:#020617;--mat-slide-toggle-with-icon-handle-size:22px;--hot-toast-border-radius:16px;--hot-toast-padding:14px 20px;--hot-toast-info-icon-background-color:#1d4ed8;--hot-toast-checkmark-icon-background-color:#10b981;--hot-toast-warning-icon-background-color:#d97706;--hot-toast-error-icon-background-color:#b91c1c;--color-primary:#020617;--color-primary-inverted:#f8fafc;--color-on-primary:#f8fafc;--color-danger:#fca5a5;--color-on-danger:#dc2626;--menu_container-color:#020617;--menu_text-color:#f8fafc;--color-surface:#fff;--color-on-surface:#1e293b;--color-on-surface-lighter:#64748b;--color-base:#f1f5f9;--color-base-900:#f1f5f9;--color-base-800:#e2e8f0;--color-base-700:#cbd5e1;--color-base-600:#94a3b8;--color-base-500:#64748b;--color-base-400:#475569;--color-base-300:#334155;--color-base-200:#1e293b;--color-base-100:#0f172a;--color-border-around-base:#e2e8f0;--color-alternate:#f1f5f9;--color-alternate-lighter:#f8fafc;--color-active:#e2e8f0;--color-active-lighter:#f1f5f9;--color-on-active:#0f172a;--color-interactive:#cbd5e1;--color-on-interactive:#0f172a;--color-disabled:#fff;--color-highlight:#3f8efe;--color-highlight-hover:#06b6d4;--color-hint:#606775;--color-info:#eff6ff;--color-on-info:#1d4ed8;--color-success:#ecfdf5;--color-on-success:#10b981;--color-warning:#fffbeb;--color-on-warning:#d97706;--color-error:#fef2f2;--color-on-error:#b91c1c;--color-bg-primary:#fff;--color-bg-secondary:rgba(239,254,252,.3);--color-hover:#e2e8f0;--card_background-color:#fff;--card_background-color-rgb:255,255,255;--dialog_background-color:#fff;--query-sender_background-color:#f5f5ef;--query-sender_text-color:#000;--sidebar_text-color:#fff;--sidebar_border-color:#1e293b;--sidebar-title_font-size:1.7rem;--sidebar-title-letter-spacing:-1px;--sidebar-button_background-color:transparent;--sidebar-button_text-color:#94a3b8;--sidebar-button_font-weight:500;--sidebar-button_active_text-color:#f8fafc;--radio_background-color:#e2e8f0;--radio_border-color:#334155;--radio_active_background-color:#cbd5e1;--radio_active_border-color:#0f172a;--mat-radio-selected-icon-color:#0f172a;--mat-radio-selected-pressed-icon-color:#3f8efe;--mat-radio-selected-hover-icon-color:#06b6d4;--mat-radio-unselected-icon-color:#0f172a;--mat-radio-unselected-pressed-icon-color:#3f8efe;--mat-radio-unselected-hover-icon-color:#06b6d4;--checkbox_background-color:#f1f5f9;--mat-checkbox-state-layer-size:36px;--mat-checkbox-selected-icon-color:#0f172a;--mat-checkbox-selected-hover-icon-color:#0f172a;--mat-checkbox-selected-pressed-icon-color:#0f172a;--mat-checkbox-selected-focus-icon-color:#0f172a;--mat-checkbox-unselected-icon-color:#475569;--mat-checkbox-unselected-hover-icon-color:#0f172a;--mat-checkbox-unselected-pressed-icon-color:#0f172a;--mat-checkbox-unselected-focus-icon-color:#0f172a;--mat-checkbox-selected-checkmark-color:#f1f5f9;--mat-mdc-button-persistent-ripple-color:#0f172a;--mat-mdc-button-ripple-color:rgba(15,23,42,.2);--toggle-bar_color:#cbd5e1;--toggle-bar_active_color:#94a3b8;--toggle-bar-thumb_color:#64748b;--toggle-bar-thumb_active_color:#0f172a;--toggle-button_text-color:#000;--toggle-button_background-color:#f8fafc;--toggle-button_hover_background-color:#e2e8f0;--toggle-button_checked_text-color:#fff;--toggle-button_checked_background-color:#10b981;--tag_background-color:#e2e8f0;--tag_text-color:#475569;--tag_border-color:#e2e8f0;--tag_hover_background-color:#475569;--tag_hover_text-color:#e2e8f0;--tag_hover_border-color:#475569;--tag_disabled_background-color:#f8fafc;--tag_disabled_text-color:#cbd5e1;--tag_disabled_border-color:#f8fafc;--tag_system_background-color:#a5f3fc;--tag_border-radius:.75rem;--input_text-color:#1e293b;--input_border-color:#cbd5e1;--input_placeholder-color:#64748b;--input_xfix-color:#64748b;--input_caret-color:#1e293b;--input_border-radius:.5rem;--input_active_border-color:#334155;--form-field-label_text-color:#f1f5f9;--form-field-required_color:#b91c1c;--color-button-primary:#475569;--color-button-primary-text:#fff;--color-button-secondary:#cbd5e1;--color-button-secondary-text:#0f172a;--color-disabled-button:hsla(0,0%,100%,.5);--color-text-primary:#0f172a;--color-text-secondary:#0f172a;--color-text-accent:red;--color-text-disabled:#606775;--color-text-disabled-button:#606775;--color-text-hint:#606775;--color-dividers:#cbd5e1;--color-icons:#0f172a;--light-primary-text:#fff;--dark-primary-text:#000;--primary-color:#fff;--primary-lighter-color:#b3b6e8;--primary-darker-color:#010798;--text-primary-color:#0f172a;--text-primary-lighter-color:#000;--text-primary-darker-color:#fff;--accent-color:#475569;--accent-lighter-color:#94a3b8;--accent-darker-color:#1e293b;--text-accent-color:#fff;--text-accent-lighter-color:#000;--text-accent-darker-color:#fff;--white-color:#fff;--text-white-color:#000;--success-color:#6ee7b7;--text-success-color:#000;--warn-color:#be123c;--warn-lighter-color:#fef2f2;--warn-darker-color:#b91c1c;--text-warn-color:#fff;--text-warn-lighter-color:#000;--text-warn-darker-color:#fff;--text-primary:#0f172a;--form-filed-bg:#fff;--fab-button-bg:#fff;--fab-button-text:#0f172a;--fab-button-disabled-bg:hsla(0,0%,100%,.6);--fab-button-disabled-text:rgba(0,0,0,.3);--button-text-color:#0f172a;--button-bg-color:#cbd5e1;--button-hover-color:#94a3b8;--mat-button-filled-label-text-color:#0f172a;--mat-button-filled-container-color:#cbd5e1;--mat-button-protected-label-text-color:#0f172a;--mat-button-protected-container-color:#cbd5e1}html{--hp-dark-blue:#131d56;--hp-light-blue:#13cae6;--hp-gradient-light:63,142,254;--hp-gradient-highlight:63,251,218;--hp-gradient-dark:43,100,255;--hp-color-text-highlight:19,202,230;--hpc-highlight-color-light:6 182 212;--hpc-highlight-color-dark:19 202 230;--hpc-highlight-color:6 182 212;--mat-chip-elevated-container-color:#e2e8f0;--mat-tooltip-container-color:#020617;--mat-tooltip-supporting-text-color:#fff;--mat-menu-container-color:hsla(0,0%,100%,.5);--mat-select-panel-background-color:hsla(0,0%,100%,.4);--mat-paginator-container-background-color:#fafafa;--mat-paginator-container-border-color:#f4f4f5;--mat-paginator-container-border-top-color:#e4e4e7;--mat-sidenav-container-divider-color:#e2e8f0;--mat-stepper-line-color:#f1f5f9;--sidebar_background-color:#020617;--sidebar-submenu_hover_background-color:hsla(240,4%,46%,.7);--scrollbar-thumb-color:rgba(2,6,23,.25);--scrollbar-track-color:rgba(2,6,23,.1)}input,textarea{background:transparent}input::-moz-placeholder,textarea::-moz-placeholder{color:#d4d4d8}input::placeholder,textarea::placeholder{color:#d4d4d8}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#52525b}.dark input::placeholder,.dark textarea::placeholder{color:#52525b}input::-moz-placeholder,textarea::-moz-placeholder{color:#606775}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#606775}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#606775}input:-webkit-autofill,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}input:-webkit-autofill:active,input:-webkit-autofill:focus,textarea:-webkit-autofill:active,textarea:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}[data-autocompleted]{background-color:transparent!important}input:focus,textarea:focus{box-shadow:none!important;outline:none!important}.mdc-elevation--z4{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.mat-mdc-raised-button.mat-primary{background-color:#020617!important;color:#f8fafc!important;font-weight:600!important;line-height:1.375!important;padding-left:1rem!important;padding-right:1rem!important}.dark .mat-mdc-raised-button.mat-primary{background-color:#e4e4e7!important;color:#020617!important}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple:before{opacity:.05}.mat-mdc-outlined-button.mat-primary{background:linear-gradient(to bottom right,#3ffbdae6,#2b64ffe6)!important;border:none!important;color:#fff!important;font-weight:600!important}.mat-mdc-outlined-button.mat-primary:hover{background:linear-gradient(to bottom right,#3ffbda,#2b64ff)!important}.mat-mdc-outlined-button:not([disabled=true]){border-color:#27272a!important}.dark .mat-mdc-outlined-button:not([disabled=true]){border-color:#d4d4d8!important}.mat-mdc-outlined-button[disabled=true]{border-color:#e5e7eb!important}.dark .mat-mdc-outlined-button[disabled=true]{border-color:#4b5563!important}.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-raised-button:not(.mat-primary,.mat-accent),.mat-mdc-raised-button:not(.mat-primary,.mat-accent):hover,.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent),.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent):hover{background-color:#cbd5e1!important;color:#0f172a!important}.mat-mdc-raised-button.mat-white:not([disabled]),.mat-mdc-unelevated-button.mat-white:not([disabled]){background-color:#fff!important;color:#000!important}.mat-mdc-raised-button.mat-success:not([disabled]),.mat-mdc-unelevated-button.mat-success:not([disabled]){background-color:#6ee7b7!important;color:#000!important}.mat-mdc-raised-button.mat-accent:not([disabled]),.mat-mdc-unelevated-button.mat-accent:not([disabled]){background-color:#475569!important;color:#fff!important}.mat-mdc-raised-button.mat-warn:not([disabled]),.mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#ef4444!important;color:#fef2f2!important}.mat-mdc-raised-button.mat-warn:not([disabled]):hover,.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#dc2626!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]),.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#b91c1ccc!important;color:#ef4444!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]):hover,.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#b91c1c!important}.mat-mdc-raised-button.mat-info:not([disabled]),.mat-mdc-unelevated-button.mat-info:not([disabled]){background-color:#3b82f6!important;color:#fff!important}.mdc-button--raised{padding-left:1.5rem!important;padding-right:1.5rem!important}.mat-mdc-dialog-container .mdc-dialog__content{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{letter-spacing:inherit!important;line-height:inherit!important}.mat-mdc-dialog-title:before{display:none!important}.mat-mdc-tooltip .mdc-tooltip__surface{font-size:.875rem!important;padding:.5rem .75rem!important}.mat-expansion-panel{background-color:#fff!important;border-radius:.375rem!important;box-shadow:none!important;padding:.25rem!important}.mat-expansion-panel .mat-expansion-panel-header{background-color:#f8fafc!important;border:1px solid #f1f5f9!important;border-radius:.375rem!important;transition:padding .2s ease-in-out}.mat-expansion-panel .mat-expansion-panel-header:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded{background-color:#fff!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header .mat-content{justify-content:space-between}.mat-expansion-panel .mat-expansion-panel-header-description,.mat-expansion-panel .mat-expansion-panel-header-title{flex-basis:auto!important;margin:0!important}.mat-expansion-panel .mat-expansion-panel-header-description{flex-grow:0!important}.mat-expansion-panel .mat-expansion-panel-content{border-bottom:1px solid #f1f5f9!important;border-bottom-left-radius:.375rem!important;border-bottom-right-radius:.375rem!important;border-left:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.mat-expansion-panel .mat-expansion-panel-content,.mat-expansion-panel .mat-expansion-panel-header{font-size:.875rem}.mat-expansion-panel .mat-expansion-panel-header-title,.mat-expansion-panel .mat-panel-title{font-size:1rem;font-weight:600}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{margin-right:1.75rem}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{background-color:#d4d4d8!important;border-radius:9999px!important;display:inline-block!important;height:1.5rem!important;padding:3px;width:1.5rem!important;fill:currentColor!important;color:#18181b!important}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator:after{border:none;content:url(\\\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='3.5'><path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z' /></svg>\\\");height:100%;padding:0;transform:rotate(0);width:100%}.mat-accordion .mat-expansion-panel .mat-expansion-panel-body{color:#0f172a!important;line-height:1.625!important;padding:1rem!important}.mat-tree{background-color:#fff!important;border-radius:.5rem!important;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.mat-tree .mat-tree-node{color:#0f172a;padding:.25rem}.mat-mdc-button,.mat-mdc-fab,.mat-mdc-icon-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button{height:40px;line-height:1!important;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-small,.mat-mdc-fab.hpc-mat-button-small,.mat-mdc-icon-button.hpc-mat-button-small,.mat-mdc-raised-button.hpc-mat-button-small,.mat-mdc-unelevated-button.hpc-mat-button-small{height:32px;max-height:32px;min-height:32px}.mat-mdc-button.hpc-mat-button-medium,.mat-mdc-fab.hpc-mat-button-medium,.mat-mdc-icon-button.hpc-mat-button-medium,.mat-mdc-raised-button.hpc-mat-button-medium,.mat-mdc-unelevated-button.hpc-mat-button-medium{height:40px;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-large,.mat-mdc-fab.hpc-mat-button-large,.mat-mdc-icon-button.hpc-mat-button-large,.mat-mdc-raised-button.hpc-mat-button-large,.mat-mdc-unelevated-button.hpc-mat-button-large{height:48px;max-height:48px;min-height:48px;width:48px}.mat-mdc-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-button[disabled=true] ai-icon,.mat-mdc-fab[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-fab[disabled=true] ai-icon,.mat-mdc-icon-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-icon-button[disabled=true] ai-icon,.mat-mdc-raised-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-raised-button[disabled=true] ai-icon,.mat-mdc-unelevated-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-unelevated-button[disabled=true] ai-icon{opacity:.38!important}.mat-mdc-icon-button{border-radius:1rem!important}.mat-mdc-icon-button ai-icon{color:#020617e6}.mat-mdc-icon-button.small{border-radius:.75rem!important;height:32px;max-height:32px;min-height:32px;padding:6px;width:32px}.mat-mdc-icon-button.small ai-icon{font-size:20px;height:20px;line-height:20px;min-height:20px;min-width:20px;width:20px}.mat-mdc-icon-button.small ai-icon svg{height:20px;width:20px}.mat-mdc-icon-button.large{height:44px;max-height:44px;min-height:44px;width:44px}.mat-mdc-icon-button.large ai-icon{font-size:28px;height:28px;line-height:28px;min-height:28px;min-width:28px;width:28px}.mat-mdc-icon-button.large ai-icon svg{height:28px;width:28px}.mat-mdc-icon-button.inverted ai-icon{color:#f8fafccc}.mat-mdc-icon-button:hover{background-color:#02061726}.mat-mdc-icon-button:hover ai-icon{color:#020617}.mat-mdc-icon-button:hover.danger{background-color:#fca6a633}.mat-mdc-icon-button:hover.danger ai-icon{color:#dc2626}.mat-mdc-icon-button:hover.inverted{background-color:#f8fafc33}.mat-mdc-icon-button:hover.inverted ai-icon{color:#f8fafc}.mat-mdc-button .mat-ripple-element{background-color:#0f172a1a!important}.mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#0206170d!important}.dark .mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#fafafa26!important}.mat-mdc-button>ai-icon,.mat-mdc-raised-button>ai-icon,.mat-mdc-unelevated-button>ai-icon{margin-left:0!important}ai-icon,ai-icon.mat-primary{color:#18181b}.dark ai-icon,.dark ai-icon.mat-primary{color:#fafafa}.mdc-linear-progress__buffer-bar{background-color:#d4d4d8b3!important}.dark .mdc-linear-progress__buffer-bar{background-color:#52525bb3!important}.mdc-linear-progress__bar-inner{border-color:#3f8efe!important}.mat-mdc-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-fab .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-icon-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-raised-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-unelevated-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle{stroke:currentColor!important;animation-duration:6s}.mat-mdc-fab ai-icon,.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-fab .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element{background-color:#0000001a!important}.mat-mdc-button:not([disabled=true]).mat-primary ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-primary ai-icon{color:#020617!important}.mat-mdc-button:not([disabled=true]).mat-accent ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-accent ai-icon{color:#475569!important}.mat-mdc-button:not([disabled=true]).mat-warn ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-warn ai-icon{color:#fffbeb!important}.mdc-button .mdc-button__label{font-weight:600;white-space:nowrap}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:#fff!important;border-radius:0!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;padding:24px}@media(min-width:640px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:1.5rem!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}}.dark .mat-mdc-dialog-container .mdc-dialog__surface{background-color:#000!important;border:1px solid #3f3f46!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{color:#1e293b!important}ai-icon{align-items:center;-webkit-appearance:none!important;display:inline-flex!important;font-size:24px;height:24px;justify-content:center;line-height:24px;width:24px}.mat-mdc-input-element::-moz-placeholder{color:#d4d4d8!important}.mat-mdc-input-element::placeholder{color:#d4d4d8!important;transition:none!important}.dark .mat-mdc-input-element::-moz-placeholder{color:#52525b!important}.dark .mat-mdc-input-element::placeholder{color:#52525b!important}.mat-mdc-input-element::-moz-placeholder{color:#606775!important;-moz-transition:none!important;transition:none!important}.mat-mdc-input-element::placeholder,.mat-mdc-select .mat-mdc-select-placeholder{color:#64748b}.icon-sm{font-size:1.25rem!important;line-height:1.25rem!important;min-height:1.25rem!important;min-width:1.25rem!important}.icon-sm,.icon-sm svg{height:1.25rem!important;width:1.25rem!important}.icon-md{font-size:1.5rem!important;line-height:1.5rem!important;min-height:1.5rem!important;min-width:1.5rem!important}.icon-md,.icon-md svg{height:1.5rem!important;width:1.5rem!important}html{--color-prettylights-syntax-comment:#57606a;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-done-fg:#8250df;--color-done-emphasis:#8250df}.markdown-body{color:var(--color-fg-default)}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:\\\" \\\";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:\\\"\\\";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none!important}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type=\\\"a s\\\"]{list-style-type:lower-alpha}.markdown-body ol[type=\\\"A s\\\"]{list-style-type:upper-alpha}.markdown-body ol[type=\\\"i s\\\"]{list-style-type:lower-roman}.markdown-body ol[type=\\\"I s\\\"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type=\\\"1\\\"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--color-border-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:\\\"[\\\"}.markdown-body [data-footnote-ref]:after{content:\\\"]\\\"}.markdown-body .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;content:\\\"\\\";inset:-8px -8px -8px -24px;pointer-events:none;position:absolute}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.hover\\\\:bg-zinc-100:hover{--tw-bg-opacity:1!important;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))!important}.hover\\\\:bg-zinc-400\\\\/30:hover{background-color:#a1a1aa4d!important}.hover\\\\:text-blue-500:hover{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.hover\\\\:text-blue-600:hover{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.hover\\\\:text-zinc-900:hover{--tw-text-opacity:1!important;color:rgb(24 24 27/var(--tw-text-opacity,1))!important}.hover\\\\:underline:hover{text-decoration-line:underline!important}@media(min-width:640px){.sm\\\\:h-\\\\[65vh\\\\]{height:65vh!important}.sm\\\\:flex-row{flex-direction:row!important}.sm\\\\:items-start{align-items:flex-start!important}.sm\\\\:items-center{align-items:center!important}.sm\\\\:justify-start{justify-content:flex-start!important}}@media(min-width:768px){.md\\\\:max-w-\\\\[80\\\\%\\\\]{max-width:80%!important}.md\\\\:max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.md\\\\:flex-col{flex-direction:column!important}.md\\\\:gap-2{gap:.5rem!important}.md\\\\:gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.md\\\\:rounded-2xl{border-radius:1rem!important}.md\\\\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\\\\:pr-4{padding-right:1rem!important}.md\\\\:text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.md\\\\:font-semibold{font-weight:600!important}}@media(min-width:1024px){.lg\\\\:max-w-screen-md{max-width:768px!important}}@media(min-width:1280px){.xl\\\\:max-w-screen-lg{max-width:1024px!important}}.dark\\\\:border-black\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#00000080!important}.dark\\\\:border-red-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-border-opacity:1!important;border-color:rgb(127 29 29/var(--tw-border-opacity,1))!important}.dark\\\\:border-zinc-600\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b4d!important}.dark\\\\:border-zinc-600\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b80!important}.dark\\\\:border-zinc-700\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4666!important}.dark\\\\:border-zinc-700\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4680!important}.dark\\\\:bg-black:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-black\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#0003!important}.dark\\\\:bg-black\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#000000b3!important}.dark\\\\:bg-red-600\\\\/10:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#dc26261a!important}.dark\\\\:bg-red-800\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#991b1b33!important}.dark\\\\:bg-red-950\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#450a0acc!important}.dark\\\\:bg-zinc-700:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-zinc-700\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#3f3f464d!important}.dark\\\\:bg-zinc-800\\\\/60:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#27272a99!important}.dark\\\\:bg-zinc-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))!important}.dark\\\\:text-blue-100:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(219 234 254/var(--tw-text-opacity,1))!important}.dark\\\\:text-green-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#4ade80cc!important}.dark\\\\:text-red-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\\\\:text-red-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f87272cc!important}.dark\\\\:text-zinc-100\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5b3!important}.dark\\\\:text-zinc-100\\\\/90:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5e6!important}.dark\\\\:text-zinc-300:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(212 212 216/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-300\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d84d!important}.dark\\\\:text-zinc-300\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d866!important}.dark\\\\:text-zinc-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(161 161 170/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:bg-zinc-800:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-200:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(191 219 254/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-400:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-zinc-50:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}\\n/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY2hhdC1kaWFsb2cvY2hhdC1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvY2hhdC1kaWFsb2cvY2hhdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFDTCxlQUFlLEVBQ2YsZUFBZSxFQUNmLFlBQVksR0FDYixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUF3QixNQUFNLGlCQUFpQixDQUFD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RkFDYixZQUFZLDhCQUNaLGVBQWUscU5BQ2YsZUFBZSw4QkFDZixrQkFBa0IsOEJBQ2xCLGNBQWMsOEJBQ2Qsd0JBQXdCLCtCQUN4QixxQkFBcUIsMkZBQ3JCLG1CQUFtQiwrQkFDbkIsZUFBZTs7MkZBT04scUJBQXFCO2tCQXBCakMsU0FBUzs4QkFDQzt3QkFDUCxpQkFBaUI7d0JBQ2pCLFdBQVc7d0JBQ1gsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIsZUFBZTtxQkFDaEIsYUFDVSxDQUFDLFdBQVcsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsaUJBRzNDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7XG4gIE1BVF9ESUFMT0dfREFUQSxcbiAgTWF0RGlhbG9nTW9kdWxlLFxuICBNYXREaWFsb2dSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTG9nZ2VyTW9kdWxlLCBOR1hMb2dnZXIgfSBmcm9tICduZ3gtbG9nZ2VyJztcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NvcmUvaWNvbnMnO1xuaW1wb3J0IHsgQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWlUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICcuLi90cmFuc2xvY28ubW9kdWxlJztcbmltcG9ydCB7IENoYXRTZXJ2aWNlLCBXZWJTb2NrZXRNZXNzYWdlVHlwZSB9IGZyb20gJy4uL2NoYXQuc2VydmljZSc7XG5pbXBvcnQgeyBNZXNzYWdlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9tZXNzYWdlLWlucHV0L21lc3NhZ2UtaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IFRocmVhZENvbXBvbmVudCB9IGZyb20gJy4uL3RocmVhZC90aHJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tICcuLi93ZWJzb2NrZXQuc2VydmljZSc7XG5pbXBvcnQgdHlwZSB7IE1lc3NhZ2UgfSBmcm9tICdAaGFobnByby9ocGMtYXBpJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVVUSF9BREFQVEVSIH0gZnJvbSAnLi4vLi4vYXV0aC9hdXRoLmFkYXB0ZXInO1xuXG5pbnRlcmZhY2UgQXNzZXREYXRhIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGV4dGVybmFsS2V5Pzogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgRXZlbnREYXRhIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBjYXVzZT86IHN0cmluZztcbiAgbGV2ZWw/OiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBUYXNrRGF0YSB7XG4gIGlkPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICByZWFzb24/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwcmlvcml0eT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ2hhdEFzc2lzdGFudFR5cGUgPSAnYXNzZXQnIHwgJ2hlbHAnIHwgJ3JlcG9ydCcgfCAnaW5jaWRlbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENoYXREaWFsb2dEYXRhIHtcbiAgYXNzZXQ/OiBBc3NldERhdGE7XG4gIGV2ZW50PzogRXZlbnREYXRhO1xuICBhc3Npc3RhbnQ/OiBDaGF0QXNzaXN0YW50VHlwZTtcbiAgaW5pdGlhbE1lc3NhZ2U/OiBzdHJpbmc7XG4gIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgbWVzc2FnZUhhbmRsZXI/OiAobWVzc2FnZTogeyB0eXBlOiBXZWJTb2NrZXRNZXNzYWdlVHlwZTsgZGF0YTogTWVzc2FnZSB9KSA9PiB2b2lkO1xuICBtZXNzYWdlRmlsdGVyPzogV2ViU29ja2V0TWVzc2FnZVR5cGVbXTtcbn1cblxuQENvbXBvbmVudCh7XG4gIGltcG9ydHM6IFtcbiAgICBBaVRyYW5zbG9jb01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJY29uQ29tcG9uZW50LFxuICAgIExvZ2dlck1vZHVsZSxcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWVzc2FnZUlucHV0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVGhyZWFkQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtDaGF0U2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFdlYnNvY2tldFNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4uLy4uL3NoYXJlZC9zdHlsZXMuY3NzJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQWlDaGF0RGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgZGF0YSA9IGluamVjdDxDaGF0RGlhbG9nRGF0YT4oTUFUX0RJQUxPR19EQVRBKTtcbiAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2dSZWYgPVxuICAgIGluamVjdDxNYXREaWFsb2dSZWY8QWlDaGF0RGlhbG9nQ29tcG9uZW50Pj4oTWF0RGlhbG9nUmVmKTtcblxuICBwcml2YXRlIGF1dGggPSBpbmplY3QoQVVUSF9BREFQVEVSKTtcblxuICByZWFkb25seSBjaGF0U2VydmljZSA9IGluamVjdChDaGF0U2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBhc3NldDogQXNzZXREYXRhO1xuICBwcml2YXRlIHJlYWRvbmx5IGV2ZW50OiBFdmVudERhdGE7XG4gIHByaXZhdGUgcmVhZG9ubHkgdGFzazogVGFza0RhdGE7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyID0gaW5qZWN0KE5HWExvZ2dlcik7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHlwZTogQ2hhdEFzc2lzdGFudFR5cGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZSA9IGluamVjdChUcmFuc2xvY29TZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmFzc2V0ID0gdGhpcy5kYXRhLmFzc2V0IHx8IHt9O1xuICAgIHRoaXMuZXZlbnQgPSB0aGlzLmRhdGEuZXZlbnQgfHwge307XG4gICAgdGhpcy50eXBlID0gdGhpcy5kYXRhLmFzc2lzdGFudCB8fCAnYXNzZXQnO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG5cbiAgICBpZiAoIXRoaXMuYXV0aC5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgICAgaWYgKHRoaXMuYXV0aC5sb2dpblBvcHVwKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYXV0aC5sb2dpblBvcHVwKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLmF1dGgubG9naW5SZWRpcmVjdCh7IHJlZGlyZWN0VXJpOiB3aW5kb3cubG9jYXRpb24uaHJlZiB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLmNoYXRTZXJ2aWNlXG4gICAgICAuaW5pdCgpXG4gICAgICAudGhlbihhc3luYyAoKSA9PiB7XG4gICAgICAgIGxldCBpbml0aWFsTWVzc2FnZSA9IHRoaXMuZGF0YS5pbml0aWFsTWVzc2FnZTtcbiAgICAgICAgaWYgKCFpbml0aWFsTWVzc2FnZSkge1xuICAgICAgICAgIGluaXRpYWxNZXNzYWdlID0gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZShcbiAgICAgICAgICAgICdhaS5wcm9tcHRzLicgKyB0aGlzLnR5cGUsXG4gICAgICAgICAgICB7IGFzc2V0TmFtZTogdGhpcy5hc3NldD8ubmFtZSwgdGFza0lkOiB0aGlzLnRhc2s/LmlkIH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAodGhpcy5hc3NldD8uZXh0ZXJuYWxLZXkpIHtcbiAgICAgICAgICAgIGluaXRpYWxNZXNzYWdlICs9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoXG4gICAgICAgICAgICAgICdhaS5wcm9tcHRzLmFzc2V0S2V5JyxcbiAgICAgICAgICAgICAgeyBhc3NldEtleTogdGhpcy5hc3NldC5leHRlcm5hbEtleSB9LFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuYXNzZXQ/LmlkKSB7XG4gICAgICAgICAgICBpbml0aWFsTWVzc2FnZSArPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKFxuICAgICAgICAgICAgICAnYWkucHJvbXB0cy5hc3NldElkJyxcbiAgICAgICAgICAgICAgeyBhc3NldElkOiB0aGlzLmFzc2V0LmlkIH0sXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGFzc2lzdGFudElkID0gdGhpcy50eXBlICsgJy1hc3Npc3RhbnQnO1xuICAgICAgICBhd2FpdCB0aGlzLmNoYXRTZXJ2aWNlLmNyZWF0ZVRocmVhZEZvck1vZGFsKFxuICAgICAgICAgIGFzc2lzdGFudElkLFxuICAgICAgICAgIGluaXRpYWxNZXNzYWdlLFxuICAgICAgICAgIHRoaXMuZGF0YS5jb250ZXh0LFxuICAgICAgICApO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGEubWVzc2FnZUhhbmRsZXIpIHtcbiAgICAgICAgICB0aGlzLmNoYXRTZXJ2aWNlLnRocmVhZEV2ZW50U3ViamVjdFxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIGZpbHRlcihcbiAgICAgICAgICAgICAgICAoeyB0eXBlIH0pID0+XG4gICAgICAgICAgICAgICAgICAhdGhpcy5kYXRhLm1lc3NhZ2VGaWx0ZXIgfHxcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGF0YS5tZXNzYWdlRmlsdGVyLmxlbmd0aCA9PT0gMCB8fFxuICAgICAgICAgICAgICAgICAgdGhpcy5kYXRhLm1lc3NhZ2VGaWx0ZXIuaW5jbHVkZXModHlwZSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmRhdGEubWVzc2FnZUhhbmRsZXIoZXZlbnQpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihlcnIpO1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGNsb3NlKG1lc3NhZ2U/OiBzdHJpbmcpIHtcbiAgICB0aGlzLm1hdERpYWxvZ1JlZi5jbG9zZShtZXNzYWdlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIHctZnVsbCBmbGV4LWNvbFwiICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWVuZCBwYi0yXCI+XG4gICAgPGJ1dHRvblxuICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAoY2xpY2spPVwiY2xvc2UoKVwiXG4gICAgICBjbGFzcz1cInNtYWxsIGJnLXppbmMtNTAgdGV4dC16aW5jLTUwMCBob3ZlcjpiZy16aW5jLTEwMCBob3Zlcjp0ZXh0LXppbmMtOTAwIGRhcms6YmctemluYy05MDAgZGFyazp0ZXh0LXppbmMtNDAwIGRhcms6aG92ZXI6YmctemluYy04MDAgZGFyazpob3Zlcjp0ZXh0LXppbmMtNTBcIlxuICAgID5cbiAgICAgIDxhaS1pY29uIG5hbWU9XCJkaXNtaXNzXCIgc2l6ZT1cIjIwXCIgY2xhc3M9XCJpY29uLXNtXCI+PC9haS1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIHctZnVsbCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgPGFpLXRocmVhZCBjbGFzcz1cImZsZXggaC1mdWxsIHctZnVsbFwiPjwvYWktdGhyZWFkPlxuICA8L2Rpdj5cbiAgPGFpLW1lc3NhZ2UtaW5wdXQgY2xhc3M9XCJ3LWZ1bGxcIj48L2FpLW1lc3NhZ2UtaW5wdXQ+XG48L2Rpdj5cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, inject, Input, ViewEncapsulation } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { LoggerModule, NGXLogger } from 'ngx-logger';\nimport { ContextService } from '../context.service';\nimport { AiTranslocoModule } from '../transloco.module';\nimport { ChatService, WebSocketMessageType } from '../chat.service';\nimport { MessageInputComponent } from '../message-input/message-input.component';\nimport { ThreadComponent } from '../thread/thread.component';\nimport { WebsocketService } from '../websocket.service';\nimport { filter } from 'rxjs';\nimport { AUTH_ADAPTER } from '../../auth/auth.adapter';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@jsverse/transloco\";\nexport class AiChatComponent {\n chatService = inject(ChatService);\n translocoService = inject(TranslocoService);\n logger = inject(NGXLogger);\n elementRef = inject(ElementRef);\n auth = inject(AUTH_ADAPTER);\n asset = {};\n assistant = 'asset';\n initialMessage;\n context;\n async ngOnInit() {\n if (!this.auth.isAuthenticated()) {\n if (this.auth.loginPopup) {\n await this.auth.loginPopup();\n }\n else {\n await this.auth.loginRedirect({ redirectUri: window.location.href });\n }\n }\n this.chatService\n .init()\n .then(async () => {\n let initialMessage = this.initialMessage;\n if (!initialMessage) {\n initialMessage = this.translocoService.translate('ai.prompts.' + this.assistant, {\n assetId: this.asset?.id,\n assetName: this.asset?.name,\n });\n }\n if (this.asset?.externalKey) {\n initialMessage += this.translocoService.translate('ai.prompts.assetKey', { assetKey: this.asset.externalKey });\n }\n if (this.asset?.id) {\n initialMessage += this.translocoService.translate('ai.prompts.assetId', { assetId: this.asset.id });\n }\n const assistantId = this.assistant + '-assistant';\n await this.chatService.createThreadForModal(assistantId, initialMessage, this.context);\n this.chatService.threadEventSubject\n .pipe(filter((value) => value.type !== WebSocketMessageType.AI_PARTIAL_MESSAGE))\n .subscribe((event) => {\n const customEvent = new CustomEvent(event.type, {\n detail: event.data,\n bubbles: true,\n composed: true,\n });\n this.elementRef.nativeElement.dispatchEvent(customEvent);\n });\n })\n .catch((err) => {\n this.logger.error(err);\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiChatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: AiChatComponent, isStandalone: true, selector: \"ai-chat\", inputs: { asset: \"asset\", assistant: \"assistant\", initialMessage: \"initialMessage\", context: \"context\" }, providers: [ChatService, ContextService, WebsocketService], ngImport: i0, template: \"<div class=\\\"flex h-full w-full flex-col\\\" *transloco=\\\"let t\\\">\\n <div class=\\\"flex h-full w-full flex-col items-center overflow-y-auto\\\">\\n <ai-thread class=\\\"flex h-full w-full\\\"></ai-thread>\\n </div>\\n <ai-message-input class=\\\"w-full\\\"></ai-message-input>\\n</div>\\n\", styles: [\"*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\\\"\\\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.right-4{right:1rem!important}.top-4{top:1rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-0{margin-top:0!important}.mt-2{margin-top:.5rem!important}.line-clamp-3{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important}.flex{display:flex!important}.table{display:table!important}.contents{display:contents!important}.hidden{display:none!important}.h-0\\\\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-full{height:100%!important}.w-10{width:2.5rem!important}.w-\\\\[50rem\\\\]{width:50rem!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-full{width:100%!important}.min-w-40{min-width:10rem!important}.min-w-48{min-width:12rem!important}.min-w-80{min-width:20rem!important}.max-w-80{max-width:20rem!important}.max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.max-w-\\\\[90\\\\%\\\\]{max-width:90%!important}.max-w-full{max-width:100%!important}.max-w-md{max-width:28rem!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-x-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.gap-x-3{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.gap-x-4{-moz-column-gap:1rem!important;column-gap:1rem!important}.gap-y-1{row-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.self-end{align-self:flex-end!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rounded-2xl{border-radius:1rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-red-300{border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-red-300,.border-white{--tw-border-opacity:1!important}.border-white{border-color:rgb(255 255 255/var(--tw-border-opacity,1))!important}.border-zinc-300\\\\/40{border-color:#d4d4d866!important}.border-zinc-300\\\\/50{border-color:#d4d4d880!important}.border-zinc-400\\\\/30{border-color:#a1a1aa4d!important}.border-zinc-400\\\\/40{border-color:#a1a1aa66!important}.border-zinc-400\\\\/50{border-color:#a1a1aa80!important}.border-zinc-600\\\\/30{border-color:#52525b4d!important}.bg-blue-600{background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-blue-600,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgb(75 85 99/var(--tw-bg-opacity,1))!important}.bg-green-600{background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-green-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-200\\\\/20{background-color:#fec8c833!important}.bg-red-400\\\\/10{background-color:#f872721a!important}.bg-red-600{background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.bg-red-600,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-yellow-600{--tw-bg-opacity:1!important;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))!important}.bg-zinc-100\\\\/60{background-color:#f4f4f599!important}.bg-zinc-200{--tw-bg-opacity:1!important;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))!important}.bg-zinc-300\\\\/20{background-color:#d4d4d833!important}.bg-zinc-300\\\\/30{background-color:#d4d4d84d!important}.bg-zinc-300\\\\/40{background-color:#d4d4d866!important}.bg-zinc-400\\\\/20{background-color:#a1a1aa33!important}.bg-zinc-50{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:.75rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.pr-10{padding-right:2.5rem!important}.pr-2{padding-right:.5rem!important}.pr-4{padding-right:1rem!important}.pr-8{padding-right:2rem!important}.pt-3{padding-top:.75rem!important}.pt-4{padding-top:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-semibold{font-weight:600!important}.lowercase{text-transform:lowercase!important}.text-amber-600{--tw-text-opacity:1!important;color:rgb(217 119 6/var(--tw-text-opacity,1))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity,1))!important}.text-green-500\\\\/80{color:#22c55ecc!important}.text-green-600{--tw-text-opacity:1!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-red-500\\\\/80{color:#ef4444cc!important}.text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-600\\\\/80{color:#dc2626cc!important}.text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-zinc-500{--tw-text-opacity:1!important;color:rgb(113 113 122/var(--tw-text-opacity,1))!important}.text-zinc-700\\\\/50{color:#3f3f4680!important}.text-zinc-700\\\\/60{color:#3f3f4699!important}.text-zinc-800{--tw-text-opacity:1!important;color:rgb(39 39 42/var(--tw-text-opacity,1))!important}.text-zinc-800\\\\/90{color:#27272ae6!important}.text-zinc-900\\\\/70{color:#18181bb3!important}.text-zinc-950{--tw-text-opacity:1!important;color:rgb(9 9 11/var(--tw-text-opacity,1))!important}.underline{text-decoration-line:underline!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)!important}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)!important}:root{--black:#000;--white:#fff;--white-rgb:255,255,255;--blue-slate-950-rgb:2,6,23;--blue-slate-900-rgb:15,23,42;--blue-slate-800-rgb:30,41,59;--blue-slate-700-rgb:51,65,85;--blue-slate-400-rgb:148,163,184;--blue-slate-300-rgb:203,213,225;--blue-slate-100-rgb:241,245,249;--blue-slate-050-rgb:248,250,252;--gray-800-rgb:31,41,55;--gray-700-rgb:55,65,81;--gray-600-rgb:75,85,99;--gray-200-rgb:229,231,235;--zinc-950-rgb:9,9,11;--zinc-900-rgb:24,24,27;--zinc-800-rgb:39,39,42;--zinc-700-rgb:63,63,70;--zinc-600-rgb:82,82,91;--zinc-500-rgb:113,113,122;--zinc-400-rgb:161,161,170;--zinc-300-rgb:212,212,216;--zinc-200-rgb:228,228,231;--zinc-100-rgb:244,244,245;--zinc-050-rgb:250,250,250;--red-700-rgb:185,28,28;--red-600-rgb:220,38,38;--red-500-rgb:239,68,68;--red-400-rgb:248,113,113;--red-300-rgb:252,165,165;--blue-gray-900-10:rgba(15,23,42,.1);--blue-gray-900-20:rgba(15,23,42,.2);--blue-gray-900:#0f172a;--blue-gray-800:#1e293b;--blue-gray-800-rgb:30,41,59;--blue-gray-700:#334155;--blue-gray-600:#475569;--blue-gray-500:#64748b;--blue-gray-400:#94a3b8;--blue-gray-300:#cbd5e1;--blue-gray-200:#e2e8f0;--blue-gray-100:#f1f5f9;--blue-gray-50:#f8fafc;--blue-gray-light-2:#141b2e;--blue-gray-light-4:#182032;--blue-gray-light-8:#21293b;--blue-gray-light-8-rgb:33,41,59;--blue-gray-light-16:#333b4b;--blue-gray-light-32:#575e6c;--blue-gray-light-64:#a0a5ae;--blue-gray-light-100:#f1f5f9;--blue-gray-dark-2:#e8ecf1;--blue-gray-dark-4:#e8ecf1;--blue-gray-dark-8:#dfe3e8;--blue-gray-dark-16:#cdd1d8;--blue-gray-dark-32:#a9aeb7;--blue-gray-dark-64:#606775;--blue-gray-dark-100:#0f172a;--blue-700:#1d4ed8;--blue-50:#eff6ff;--green-500:#10b981;--green-50:#ecfdf5;--yellow-50:#fffbeb;--yellow-500:#d97706;--red-700:#b91c1c;--red-50:#fef2f2;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--teal-500:#14b8a6;--teal-600:#0d9488;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--hp-light-blue:#13cae6;--hp-gradient-light:#3f8efe;--hp-gradient-highlight:#3ffbda;--hp-gradient-dark:#2b64ff;--font-family:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-chip-container-height:30px;--mat-chip-container-shape-radius:12px;--mat-fab-container-shape:12px;--mat-icon-button-icon-size:24px;--mat-icon-button-state-layer-size:40px;--mat-icon-button-icon-color:currentColor;--mat-progress-bar-active-indicator-color:#020617;--mat-progress-bar-active-indicator-height:10px;--mat-progress-bar-track-color:#f4f4f5;--mat-progress-bar-track-height:10px;--mat-progress-bar-track-shape:10px;--mat-tooltip-container-shape:8px;--mat-button-protected-container-shape:9999px;--mat-button-protected-keep-touch-target:false;--mat-button-protected-horizontal-padding:24px;--mat-button-protected-icon-spacing:8px;--mat-button-protected-icon-offset:-4px;--mat-dialog-actions-padding:16px;--mat-dialog-actions-alignment:normal;--mat-dialog-container-shape:16px;--mat-dialog-supporting-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-button-outlined-container-height:40px;--mat-button-outlined-container-shape:9999px;--mat-button-outlined-icon-spacing:8px;--mat-button-outlined-icon-offset:-4px;--mat-button-outlined-horizontal-padding:24px;--mat-button-outlined-keep-touch-target:false;--mat-button-outlined-outline-width:1px;--mat-button-text-container-height:40px;--mat-button-text-container-shape:9999px;--mat-button-text-horizontal-padding:24px;--mat-button-text-icon-spacing:8px;--mat-button-text-icon-offset:0;--mat-button-text-keep-touch-target:false;--mat-button-text-with-icon-horizontal-padding:8px;--mat-button-filled-container-shape:4px;--mat-button-filled-keep-touch-target:false;--mat-button-filled-horizontal-padding:16px;--mat-button-filled-icon-spacing:8px;--mat-button-filled-icon-offset:-4px;--mat-menu-container-shape:16px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-stepper-container-color:transparent;--mat-slide-toggle-track-height:28px;--mat-slide-toggle-track-outline-color:#52525b;--mat-slide-toggle-label-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-slide-toggle-label-text-color:#09090b;--mat-slide-toggle-label-text-tracking:0;--mat-slide-toggle-label-text-weight:600;--mat-slide-toggle-unselected-handle-color:#52525b;--mat-slide-toggle-unselected-track-color:#d4d4d8;--mat-slide-toggle-unselected-focus-track-color:#cbd5e1;--mat-slide-toggle-unselected-hover-track-color:#cbd5e1;--mat-slide-toggle-unselected-pressed-track-color:#cbd5e1;--mat-slide-toggle-selected-track-color:#1e293b;--mat-slide-toggle-selected-focus-track-color:#334155;--mat-slide-toggle-selected-hover-track-color:#334155;--mat-slide-toggle-selected-pressed-track-color:#334155;--mat-slide-toggle-selected-track-outline-color:#020617;--mat-slide-toggle-selected-handle-color:#cbd5e1;--mat-slide-toggle-selected-focus-handle-color:#3ffbda;--mat-slide-toggle-selected-hover-handle-color:#3ffbda;--mat-slide-toggle-selected-pressed-handle-color:#3ffbda;--mat-slide-toggle-selected-focus-state-layer-color:#3ffbda;--mat-slide-toggle-selected-hover-state-layer-color:#3ffbda;--mat-slide-toggle-selected-pressed-state-layer-color:#3ffbda;--mat-slide-toggle-unselected-focus-state-layer-color:#020617;--mat-slide-toggle-unselected-hover-state-layer-color:#020617;--mat-slide-toggle-unselected-pressed-state-layer-color:#020617;--mat-slide-toggle-selected-icon-color:#020617;--mat-slide-toggle-with-icon-handle-size:22px;--hot-toast-border-radius:16px;--hot-toast-padding:14px 20px;--hot-toast-info-icon-background-color:#1d4ed8;--hot-toast-checkmark-icon-background-color:#10b981;--hot-toast-warning-icon-background-color:#d97706;--hot-toast-error-icon-background-color:#b91c1c;--color-primary:#020617;--color-primary-inverted:#f8fafc;--color-on-primary:#f8fafc;--color-danger:#fca5a5;--color-on-danger:#dc2626;--menu_container-color:#020617;--menu_text-color:#f8fafc;--color-surface:#fff;--color-on-surface:#1e293b;--color-on-surface-lighter:#64748b;--color-base:#f1f5f9;--color-base-900:#f1f5f9;--color-base-800:#e2e8f0;--color-base-700:#cbd5e1;--color-base-600:#94a3b8;--color-base-500:#64748b;--color-base-400:#475569;--color-base-300:#334155;--color-base-200:#1e293b;--color-base-100:#0f172a;--color-border-around-base:#e2e8f0;--color-alternate:#f1f5f9;--color-alternate-lighter:#f8fafc;--color-active:#e2e8f0;--color-active-lighter:#f1f5f9;--color-on-active:#0f172a;--color-interactive:#cbd5e1;--color-on-interactive:#0f172a;--color-disabled:#fff;--color-highlight:#3f8efe;--color-highlight-hover:#06b6d4;--color-hint:#606775;--color-info:#eff6ff;--color-on-info:#1d4ed8;--color-success:#ecfdf5;--color-on-success:#10b981;--color-warning:#fffbeb;--color-on-warning:#d97706;--color-error:#fef2f2;--color-on-error:#b91c1c;--color-bg-primary:#fff;--color-bg-secondary:rgba(239,254,252,.3);--color-hover:#e2e8f0;--card_background-color:#fff;--card_background-color-rgb:255,255,255;--dialog_background-color:#fff;--query-sender_background-color:#f5f5ef;--query-sender_text-color:#000;--sidebar_text-color:#fff;--sidebar_border-color:#1e293b;--sidebar-title_font-size:1.7rem;--sidebar-title-letter-spacing:-1px;--sidebar-button_background-color:transparent;--sidebar-button_text-color:#94a3b8;--sidebar-button_font-weight:500;--sidebar-button_active_text-color:#f8fafc;--radio_background-color:#e2e8f0;--radio_border-color:#334155;--radio_active_background-color:#cbd5e1;--radio_active_border-color:#0f172a;--mat-radio-selected-icon-color:#0f172a;--mat-radio-selected-pressed-icon-color:#3f8efe;--mat-radio-selected-hover-icon-color:#06b6d4;--mat-radio-unselected-icon-color:#0f172a;--mat-radio-unselected-pressed-icon-color:#3f8efe;--mat-radio-unselected-hover-icon-color:#06b6d4;--checkbox_background-color:#f1f5f9;--mat-checkbox-state-layer-size:36px;--mat-checkbox-selected-icon-color:#0f172a;--mat-checkbox-selected-hover-icon-color:#0f172a;--mat-checkbox-selected-pressed-icon-color:#0f172a;--mat-checkbox-selected-focus-icon-color:#0f172a;--mat-checkbox-unselected-icon-color:#475569;--mat-checkbox-unselected-hover-icon-color:#0f172a;--mat-checkbox-unselected-pressed-icon-color:#0f172a;--mat-checkbox-unselected-focus-icon-color:#0f172a;--mat-checkbox-selected-checkmark-color:#f1f5f9;--mat-mdc-button-persistent-ripple-color:#0f172a;--mat-mdc-button-ripple-color:rgba(15,23,42,.2);--toggle-bar_color:#cbd5e1;--toggle-bar_active_color:#94a3b8;--toggle-bar-thumb_color:#64748b;--toggle-bar-thumb_active_color:#0f172a;--toggle-button_text-color:#000;--toggle-button_background-color:#f8fafc;--toggle-button_hover_background-color:#e2e8f0;--toggle-button_checked_text-color:#fff;--toggle-button_checked_background-color:#10b981;--tag_background-color:#e2e8f0;--tag_text-color:#475569;--tag_border-color:#e2e8f0;--tag_hover_background-color:#475569;--tag_hover_text-color:#e2e8f0;--tag_hover_border-color:#475569;--tag_disabled_background-color:#f8fafc;--tag_disabled_text-color:#cbd5e1;--tag_disabled_border-color:#f8fafc;--tag_system_background-color:#a5f3fc;--tag_border-radius:.75rem;--input_text-color:#1e293b;--input_border-color:#cbd5e1;--input_placeholder-color:#64748b;--input_xfix-color:#64748b;--input_caret-color:#1e293b;--input_border-radius:.5rem;--input_active_border-color:#334155;--form-field-label_text-color:#f1f5f9;--form-field-required_color:#b91c1c;--color-button-primary:#475569;--color-button-primary-text:#fff;--color-button-secondary:#cbd5e1;--color-button-secondary-text:#0f172a;--color-disabled-button:hsla(0,0%,100%,.5);--color-text-primary:#0f172a;--color-text-secondary:#0f172a;--color-text-accent:red;--color-text-disabled:#606775;--color-text-disabled-button:#606775;--color-text-hint:#606775;--color-dividers:#cbd5e1;--color-icons:#0f172a;--light-primary-text:#fff;--dark-primary-text:#000;--primary-color:#fff;--primary-lighter-color:#b3b6e8;--primary-darker-color:#010798;--text-primary-color:#0f172a;--text-primary-lighter-color:#000;--text-primary-darker-color:#fff;--accent-color:#475569;--accent-lighter-color:#94a3b8;--accent-darker-color:#1e293b;--text-accent-color:#fff;--text-accent-lighter-color:#000;--text-accent-darker-color:#fff;--white-color:#fff;--text-white-color:#000;--success-color:#6ee7b7;--text-success-color:#000;--warn-color:#be123c;--warn-lighter-color:#fef2f2;--warn-darker-color:#b91c1c;--text-warn-color:#fff;--text-warn-lighter-color:#000;--text-warn-darker-color:#fff;--text-primary:#0f172a;--form-filed-bg:#fff;--fab-button-bg:#fff;--fab-button-text:#0f172a;--fab-button-disabled-bg:hsla(0,0%,100%,.6);--fab-button-disabled-text:rgba(0,0,0,.3);--button-text-color:#0f172a;--button-bg-color:#cbd5e1;--button-hover-color:#94a3b8;--mat-button-filled-label-text-color:#0f172a;--mat-button-filled-container-color:#cbd5e1;--mat-button-protected-label-text-color:#0f172a;--mat-button-protected-container-color:#cbd5e1}html{--hp-dark-blue:#131d56;--hp-light-blue:#13cae6;--hp-gradient-light:63,142,254;--hp-gradient-highlight:63,251,218;--hp-gradient-dark:43,100,255;--hp-color-text-highlight:19,202,230;--hpc-highlight-color-light:6 182 212;--hpc-highlight-color-dark:19 202 230;--hpc-highlight-color:6 182 212;--mat-chip-elevated-container-color:#e2e8f0;--mat-tooltip-container-color:#020617;--mat-tooltip-supporting-text-color:#fff;--mat-menu-container-color:hsla(0,0%,100%,.5);--mat-select-panel-background-color:hsla(0,0%,100%,.4);--mat-paginator-container-background-color:#fafafa;--mat-paginator-container-border-color:#f4f4f5;--mat-paginator-container-border-top-color:#e4e4e7;--mat-sidenav-container-divider-color:#e2e8f0;--mat-stepper-line-color:#f1f5f9;--sidebar_background-color:#020617;--sidebar-submenu_hover_background-color:hsla(240,4%,46%,.7);--scrollbar-thumb-color:rgba(2,6,23,.25);--scrollbar-track-color:rgba(2,6,23,.1)}input,textarea{background:transparent}input::-moz-placeholder,textarea::-moz-placeholder{color:#d4d4d8}input::placeholder,textarea::placeholder{color:#d4d4d8}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#52525b}.dark input::placeholder,.dark textarea::placeholder{color:#52525b}input::-moz-placeholder,textarea::-moz-placeholder{color:#606775}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#606775}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#606775}input:-webkit-autofill,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}input:-webkit-autofill:active,input:-webkit-autofill:focus,textarea:-webkit-autofill:active,textarea:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}[data-autocompleted]{background-color:transparent!important}input:focus,textarea:focus{box-shadow:none!important;outline:none!important}.mdc-elevation--z4{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.mat-mdc-raised-button.mat-primary{background-color:#020617!important;color:#f8fafc!important;font-weight:600!important;line-height:1.375!important;padding-left:1rem!important;padding-right:1rem!important}.dark .mat-mdc-raised-button.mat-primary{background-color:#e4e4e7!important;color:#020617!important}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple:before{opacity:.05}.mat-mdc-outlined-button.mat-primary{background:linear-gradient(to bottom right,#3ffbdae6,#2b64ffe6)!important;border:none!important;color:#fff!important;font-weight:600!important}.mat-mdc-outlined-button.mat-primary:hover{background:linear-gradient(to bottom right,#3ffbda,#2b64ff)!important}.mat-mdc-outlined-button:not([disabled=true]){border-color:#27272a!important}.dark .mat-mdc-outlined-button:not([disabled=true]){border-color:#d4d4d8!important}.mat-mdc-outlined-button[disabled=true]{border-color:#e5e7eb!important}.dark .mat-mdc-outlined-button[disabled=true]{border-color:#4b5563!important}.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-raised-button:not(.mat-primary,.mat-accent),.mat-mdc-raised-button:not(.mat-primary,.mat-accent):hover,.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent),.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent):hover{background-color:#cbd5e1!important;color:#0f172a!important}.mat-mdc-raised-button.mat-white:not([disabled]),.mat-mdc-unelevated-button.mat-white:not([disabled]){background-color:#fff!important;color:#000!important}.mat-mdc-raised-button.mat-success:not([disabled]),.mat-mdc-unelevated-button.mat-success:not([disabled]){background-color:#6ee7b7!important;color:#000!important}.mat-mdc-raised-button.mat-accent:not([disabled]),.mat-mdc-unelevated-button.mat-accent:not([disabled]){background-color:#475569!important;color:#fff!important}.mat-mdc-raised-button.mat-warn:not([disabled]),.mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#ef4444!important;color:#fef2f2!important}.mat-mdc-raised-button.mat-warn:not([disabled]):hover,.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#dc2626!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]),.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#b91c1ccc!important;color:#ef4444!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]):hover,.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#b91c1c!important}.mat-mdc-raised-button.mat-info:not([disabled]),.mat-mdc-unelevated-button.mat-info:not([disabled]){background-color:#3b82f6!important;color:#fff!important}.mdc-button--raised{padding-left:1.5rem!important;padding-right:1.5rem!important}.mat-mdc-dialog-container .mdc-dialog__content{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{letter-spacing:inherit!important;line-height:inherit!important}.mat-mdc-dialog-title:before{display:none!important}.mat-mdc-tooltip .mdc-tooltip__surface{font-size:.875rem!important;padding:.5rem .75rem!important}.mat-expansion-panel{background-color:#fff!important;border-radius:.375rem!important;box-shadow:none!important;padding:.25rem!important}.mat-expansion-panel .mat-expansion-panel-header{background-color:#f8fafc!important;border:1px solid #f1f5f9!important;border-radius:.375rem!important;transition:padding .2s ease-in-out}.mat-expansion-panel .mat-expansion-panel-header:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded{background-color:#fff!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header .mat-content{justify-content:space-between}.mat-expansion-panel .mat-expansion-panel-header-description,.mat-expansion-panel .mat-expansion-panel-header-title{flex-basis:auto!important;margin:0!important}.mat-expansion-panel .mat-expansion-panel-header-description{flex-grow:0!important}.mat-expansion-panel .mat-expansion-panel-content{border-bottom:1px solid #f1f5f9!important;border-bottom-left-radius:.375rem!important;border-bottom-right-radius:.375rem!important;border-left:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.mat-expansion-panel .mat-expansion-panel-content,.mat-expansion-panel .mat-expansion-panel-header{font-size:.875rem}.mat-expansion-panel .mat-expansion-panel-header-title,.mat-expansion-panel .mat-panel-title{font-size:1rem;font-weight:600}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{margin-right:1.75rem}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{background-color:#d4d4d8!important;border-radius:9999px!important;display:inline-block!important;height:1.5rem!important;padding:3px;width:1.5rem!important;fill:currentColor!important;color:#18181b!important}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator:after{border:none;content:url(\\\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='3.5'><path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z' /></svg>\\\");height:100%;padding:0;transform:rotate(0);width:100%}.mat-accordion .mat-expansion-panel .mat-expansion-panel-body{color:#0f172a!important;line-height:1.625!important;padding:1rem!important}.mat-tree{background-color:#fff!important;border-radius:.5rem!important;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.mat-tree .mat-tree-node{color:#0f172a;padding:.25rem}.mat-mdc-button,.mat-mdc-fab,.mat-mdc-icon-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button{height:40px;line-height:1!important;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-small,.mat-mdc-fab.hpc-mat-button-small,.mat-mdc-icon-button.hpc-mat-button-small,.mat-mdc-raised-button.hpc-mat-button-small,.mat-mdc-unelevated-button.hpc-mat-button-small{height:32px;max-height:32px;min-height:32px}.mat-mdc-button.hpc-mat-button-medium,.mat-mdc-fab.hpc-mat-button-medium,.mat-mdc-icon-button.hpc-mat-button-medium,.mat-mdc-raised-button.hpc-mat-button-medium,.mat-mdc-unelevated-button.hpc-mat-button-medium{height:40px;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-large,.mat-mdc-fab.hpc-mat-button-large,.mat-mdc-icon-button.hpc-mat-button-large,.mat-mdc-raised-button.hpc-mat-button-large,.mat-mdc-unelevated-button.hpc-mat-button-large{height:48px;max-height:48px;min-height:48px;width:48px}.mat-mdc-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-button[disabled=true] ai-icon,.mat-mdc-fab[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-fab[disabled=true] ai-icon,.mat-mdc-icon-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-icon-button[disabled=true] ai-icon,.mat-mdc-raised-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-raised-button[disabled=true] ai-icon,.mat-mdc-unelevated-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-unelevated-button[disabled=true] ai-icon{opacity:.38!important}.mat-mdc-icon-button{border-radius:1rem!important}.mat-mdc-icon-button ai-icon{color:#020617e6}.mat-mdc-icon-button.small{border-radius:.75rem!important;height:32px;max-height:32px;min-height:32px;padding:6px;width:32px}.mat-mdc-icon-button.small ai-icon{font-size:20px;height:20px;line-height:20px;min-height:20px;min-width:20px;width:20px}.mat-mdc-icon-button.small ai-icon svg{height:20px;width:20px}.mat-mdc-icon-button.large{height:44px;max-height:44px;min-height:44px;width:44px}.mat-mdc-icon-button.large ai-icon{font-size:28px;height:28px;line-height:28px;min-height:28px;min-width:28px;width:28px}.mat-mdc-icon-button.large ai-icon svg{height:28px;width:28px}.mat-mdc-icon-button.inverted ai-icon{color:#f8fafccc}.mat-mdc-icon-button:hover{background-color:#02061726}.mat-mdc-icon-button:hover ai-icon{color:#020617}.mat-mdc-icon-button:hover.danger{background-color:#fca6a633}.mat-mdc-icon-button:hover.danger ai-icon{color:#dc2626}.mat-mdc-icon-button:hover.inverted{background-color:#f8fafc33}.mat-mdc-icon-button:hover.inverted ai-icon{color:#f8fafc}.mat-mdc-button .mat-ripple-element{background-color:#0f172a1a!important}.mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#0206170d!important}.dark .mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#fafafa26!important}.mat-mdc-button>ai-icon,.mat-mdc-raised-button>ai-icon,.mat-mdc-unelevated-button>ai-icon{margin-left:0!important}ai-icon,ai-icon.mat-primary{color:#18181b}.dark ai-icon,.dark ai-icon.mat-primary{color:#fafafa}.mdc-linear-progress__buffer-bar{background-color:#d4d4d8b3!important}.dark .mdc-linear-progress__buffer-bar{background-color:#52525bb3!important}.mdc-linear-progress__bar-inner{border-color:#3f8efe!important}.mat-mdc-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-fab .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-icon-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-raised-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-unelevated-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle{stroke:currentColor!important;animation-duration:6s}.mat-mdc-fab ai-icon,.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-fab .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element{background-color:#0000001a!important}.mat-mdc-button:not([disabled=true]).mat-primary ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-primary ai-icon{color:#020617!important}.mat-mdc-button:not([disabled=true]).mat-accent ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-accent ai-icon{color:#475569!important}.mat-mdc-button:not([disabled=true]).mat-warn ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-warn ai-icon{color:#fffbeb!important}.mdc-button .mdc-button__label{font-weight:600;white-space:nowrap}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:#fff!important;border-radius:0!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;padding:24px}@media(min-width:640px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:1.5rem!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}}.dark .mat-mdc-dialog-container .mdc-dialog__surface{background-color:#000!important;border:1px solid #3f3f46!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{color:#1e293b!important}ai-icon{align-items:center;-webkit-appearance:none!important;display:inline-flex!important;font-size:24px;height:24px;justify-content:center;line-height:24px;width:24px}.mat-mdc-input-element::-moz-placeholder{color:#d4d4d8!important}.mat-mdc-input-element::placeholder{color:#d4d4d8!important;transition:none!important}.dark .mat-mdc-input-element::-moz-placeholder{color:#52525b!important}.dark .mat-mdc-input-element::placeholder{color:#52525b!important}.mat-mdc-input-element::-moz-placeholder{color:#606775!important;-moz-transition:none!important;transition:none!important}.mat-mdc-input-element::placeholder,.mat-mdc-select .mat-mdc-select-placeholder{color:#64748b}.icon-sm{font-size:1.25rem!important;line-height:1.25rem!important;min-height:1.25rem!important;min-width:1.25rem!important}.icon-sm,.icon-sm svg{height:1.25rem!important;width:1.25rem!important}.icon-md{font-size:1.5rem!important;line-height:1.5rem!important;min-height:1.5rem!important;min-width:1.5rem!important}.icon-md,.icon-md svg{height:1.5rem!important;width:1.5rem!important}html{--color-prettylights-syntax-comment:#57606a;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-done-fg:#8250df;--color-done-emphasis:#8250df}.markdown-body{color:var(--color-fg-default)}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:\\\" \\\";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:\\\"\\\";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none!important}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type=\\\"a s\\\"]{list-style-type:lower-alpha}.markdown-body ol[type=\\\"A s\\\"]{list-style-type:upper-alpha}.markdown-body ol[type=\\\"i s\\\"]{list-style-type:lower-roman}.markdown-body ol[type=\\\"I s\\\"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type=\\\"1\\\"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--color-border-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:\\\"[\\\"}.markdown-body [data-footnote-ref]:after{content:\\\"]\\\"}.markdown-body .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;content:\\\"\\\";inset:-8px -8px -8px -24px;pointer-events:none;position:absolute}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.hover\\\\:bg-zinc-100:hover{--tw-bg-opacity:1!important;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))!important}.hover\\\\:bg-zinc-400\\\\/30:hover{background-color:#a1a1aa4d!important}.hover\\\\:text-blue-500:hover{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.hover\\\\:text-blue-600:hover{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.hover\\\\:text-zinc-900:hover{--tw-text-opacity:1!important;color:rgb(24 24 27/var(--tw-text-opacity,1))!important}.hover\\\\:underline:hover{text-decoration-line:underline!important}@media(min-width:640px){.sm\\\\:h-\\\\[65vh\\\\]{height:65vh!important}.sm\\\\:flex-row{flex-direction:row!important}.sm\\\\:items-start{align-items:flex-start!important}.sm\\\\:items-center{align-items:center!important}.sm\\\\:justify-start{justify-content:flex-start!important}}@media(min-width:768px){.md\\\\:max-w-\\\\[80\\\\%\\\\]{max-width:80%!important}.md\\\\:max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.md\\\\:flex-col{flex-direction:column!important}.md\\\\:gap-2{gap:.5rem!important}.md\\\\:gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.md\\\\:rounded-2xl{border-radius:1rem!important}.md\\\\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\\\\:pr-4{padding-right:1rem!important}.md\\\\:text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.md\\\\:font-semibold{font-weight:600!important}}@media(min-width:1024px){.lg\\\\:max-w-screen-md{max-width:768px!important}}@media(min-width:1280px){.xl\\\\:max-w-screen-lg{max-width:1024px!important}}.dark\\\\:border-black\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#00000080!important}.dark\\\\:border-red-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-border-opacity:1!important;border-color:rgb(127 29 29/var(--tw-border-opacity,1))!important}.dark\\\\:border-zinc-600\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b4d!important}.dark\\\\:border-zinc-600\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b80!important}.dark\\\\:border-zinc-700\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4666!important}.dark\\\\:border-zinc-700\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4680!important}.dark\\\\:bg-black:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-black\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#0003!important}.dark\\\\:bg-black\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#000000b3!important}.dark\\\\:bg-red-600\\\\/10:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#dc26261a!important}.dark\\\\:bg-red-800\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#991b1b33!important}.dark\\\\:bg-red-950\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#450a0acc!important}.dark\\\\:bg-zinc-700:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-zinc-700\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#3f3f464d!important}.dark\\\\:bg-zinc-800\\\\/60:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#27272a99!important}.dark\\\\:bg-zinc-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))!important}.dark\\\\:text-blue-100:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(219 234 254/var(--tw-text-opacity,1))!important}.dark\\\\:text-green-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#4ade80cc!important}.dark\\\\:text-red-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\\\\:text-red-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f87272cc!important}.dark\\\\:text-zinc-100\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5b3!important}.dark\\\\:text-zinc-100\\\\/90:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5e6!important}.dark\\\\:text-zinc-300:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(212 212 216/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-300\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d84d!important}.dark\\\\:text-zinc-300\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d866!important}.dark\\\\:text-zinc-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(161 161 170/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:bg-zinc-800:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-200:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(191 219 254/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-400:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-zinc-50:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}\\n/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/\\n\"], dependencies: [{ kind: \"ngmodule\", type: AiTranslocoModule }, { kind: \"directive\", type: i1.TranslocoDirective, selector: \"[transloco]\", inputs: [\"transloco\", \"translocoParams\", \"translocoScope\", \"translocoRead\", \"translocoPrefix\", \"translocoLang\", \"translocoLoadingTpl\"] }, { kind: \"ngmodule\", type: CommonModule }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: LoggerModule }, { kind: \"ngmodule\", type: MatButtonModule }, { kind: \"ngmodule\", type: MatFormFieldModule }, { kind: \"ngmodule\", type: MatInputModule }, { kind: \"ngmodule\", type: MatProgressSpinnerModule }, { kind: \"component\", type: MessageInputComponent, selector: \"ai-message-input\", inputs: [\"startConversation\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"component\", type: ThreadComponent, selector: \"ai-thread\" }], encapsulation: i0.ViewEncapsulation.None });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiChatComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ai-chat', imports: [\n AiTranslocoModule,\n CommonModule,\n FormsModule,\n LoggerModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MessageInputComponent,\n ReactiveFormsModule,\n ThreadComponent,\n ], providers: [ChatService, ContextService, WebsocketService], encapsulation: ViewEncapsulation.None, template: \"<div class=\\\"flex h-full w-full flex-col\\\" *transloco=\\\"let t\\\">\\n <div class=\\\"flex h-full w-full flex-col items-center overflow-y-auto\\\">\\n <ai-thread class=\\\"flex h-full w-full\\\"></ai-thread>\\n </div>\\n <ai-message-input class=\\\"w-full\\\"></ai-message-input>\\n</div>\\n\", styles: [\"*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:\\\"\\\"}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-tap-highlight-color:transparent}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{color:inherit;font-family:inherit;font-feature-settings:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.right-4{right:1rem!important}.top-4{top:1rem!important}.mx-2{margin-left:.5rem!important;margin-right:.5rem!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mt-0{margin-top:0!important}.mt-2{margin-top:.5rem!important}.line-clamp-3{display:-webkit-box!important;overflow:hidden!important;-webkit-box-orient:vertical!important;-webkit-line-clamp:3!important}.flex{display:flex!important}.table{display:table!important}.contents{display:contents!important}.hidden{display:none!important}.h-0\\\\.5{height:.125rem!important}.h-10{height:2.5rem!important}.h-full{height:100%!important}.w-10{width:2.5rem!important}.w-\\\\[50rem\\\\]{width:50rem!important}.w-fit{width:-moz-fit-content!important;width:fit-content!important}.w-full{width:100%!important}.min-w-40{min-width:10rem!important}.min-w-48{min-width:12rem!important}.min-w-80{min-width:20rem!important}.max-w-80{max-width:20rem!important}.max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.max-w-\\\\[90\\\\%\\\\]{max-width:90%!important}.max-w-full{max-width:100%!important}.max-w-md{max-width:28rem!important}.shrink-0{flex-shrink:0!important}.grow{flex-grow:1!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.cursor-pointer{cursor:pointer!important}.select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.flex-col{flex-direction:column!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.gap-1{gap:.25rem!important}.gap-x-1{-moz-column-gap:.25rem!important;column-gap:.25rem!important}.gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.gap-x-3{-moz-column-gap:.75rem!important;column-gap:.75rem!important}.gap-x-4{-moz-column-gap:1rem!important;column-gap:1rem!important}.gap-y-1{row-gap:.25rem!important}.gap-y-2{row-gap:.5rem!important}.self-end{align-self:flex-end!important}.self-center{align-self:center!important}.overflow-hidden{overflow:hidden!important}.overflow-x-auto{overflow-x:auto!important}.overflow-y-auto{overflow-y:auto!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.rounded-2xl{border-radius:1rem!important}.rounded-lg{border-radius:.5rem!important}.rounded-xl{border-radius:.75rem!important}.border{border-width:1px!important}.border-red-300{border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-red-300,.border-white{--tw-border-opacity:1!important}.border-white{border-color:rgb(255 255 255/var(--tw-border-opacity,1))!important}.border-zinc-300\\\\/40{border-color:#d4d4d866!important}.border-zinc-300\\\\/50{border-color:#d4d4d880!important}.border-zinc-400\\\\/30{border-color:#a1a1aa4d!important}.border-zinc-400\\\\/40{border-color:#a1a1aa66!important}.border-zinc-400\\\\/50{border-color:#a1a1aa80!important}.border-zinc-600\\\\/30{border-color:#52525b4d!important}.bg-blue-600{background-color:rgb(37 99 235/var(--tw-bg-opacity,1))!important}.bg-blue-600,.bg-gray-600{--tw-bg-opacity:1!important}.bg-gray-600{background-color:rgb(75 85 99/var(--tw-bg-opacity,1))!important}.bg-green-600{background-color:rgb(22 163 74/var(--tw-bg-opacity,1))!important}.bg-green-600,.bg-red-100{--tw-bg-opacity:1!important}.bg-red-100{background-color:rgb(254 226 226/var(--tw-bg-opacity,1))!important}.bg-red-200\\\\/20{background-color:#fec8c833!important}.bg-red-400\\\\/10{background-color:#f872721a!important}.bg-red-600{background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.bg-red-600,.bg-white{--tw-bg-opacity:1!important}.bg-white{background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-yellow-600{--tw-bg-opacity:1!important;background-color:rgb(202 138 4/var(--tw-bg-opacity,1))!important}.bg-zinc-100\\\\/60{background-color:#f4f4f599!important}.bg-zinc-200{--tw-bg-opacity:1!important;background-color:rgb(228 228 231/var(--tw-bg-opacity,1))!important}.bg-zinc-300\\\\/20{background-color:#d4d4d833!important}.bg-zinc-300\\\\/30{background-color:#d4d4d84d!important}.bg-zinc-300\\\\/40{background-color:#d4d4d866!important}.bg-zinc-400\\\\/20{background-color:#a1a1aa33!important}.bg-zinc-50{--tw-bg-opacity:1!important;background-color:rgb(250 250 250/var(--tw-bg-opacity,1))!important}.p-2{padding:.5rem!important}.p-4{padding:1rem!important}.px-2{padding-left:.5rem!important;padding-right:.5rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-5{padding-left:1.25rem!important;padding-right:1.25rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.py-1{padding-bottom:.25rem!important;padding-top:.25rem!important}.py-2{padding-bottom:.5rem!important;padding-top:.5rem!important}.py-4{padding-bottom:1rem!important;padding-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:.75rem!important}.pb-4{padding-bottom:1rem!important}.pl-4{padding-left:1rem!important}.pr-10{padding-right:2.5rem!important}.pr-2{padding-right:.5rem!important}.pr-4{padding-right:1rem!important}.pr-8{padding-right:2rem!important}.pt-3{padding-top:.75rem!important}.pt-4{padding-top:1rem!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.text-xs{font-size:.75rem!important;line-height:1rem!important}.font-bold{font-weight:700!important}.font-semibold{font-weight:600!important}.lowercase{text-transform:lowercase!important}.text-amber-600{--tw-text-opacity:1!important;color:rgb(217 119 6/var(--tw-text-opacity,1))!important}.text-blue-600{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.text-blue-700{--tw-text-opacity:1!important;color:rgb(29 78 216/var(--tw-text-opacity,1))!important}.text-gray-600{--tw-text-opacity:1!important;color:rgb(75 85 99/var(--tw-text-opacity,1))!important}.text-green-500\\\\/80{color:#22c55ecc!important}.text-green-600{--tw-text-opacity:1!important;color:rgb(22 163 74/var(--tw-text-opacity,1))!important}.text-red-500\\\\/80{color:#ef4444cc!important}.text-red-600{--tw-text-opacity:1!important;color:rgb(220 38 38/var(--tw-text-opacity,1))!important}.text-red-600\\\\/80{color:#dc2626cc!important}.text-red-700{--tw-text-opacity:1!important;color:rgb(185 28 28/var(--tw-text-opacity,1))!important}.text-zinc-500{--tw-text-opacity:1!important;color:rgb(113 113 122/var(--tw-text-opacity,1))!important}.text-zinc-700\\\\/50{color:#3f3f4680!important}.text-zinc-700\\\\/60{color:#3f3f4699!important}.text-zinc-800{--tw-text-opacity:1!important;color:rgb(39 39 42/var(--tw-text-opacity,1))!important}.text-zinc-800\\\\/90{color:#27272ae6!important}.text-zinc-900\\\\/70{color:#18181bb3!important}.text-zinc-950{--tw-text-opacity:1!important;color:rgb(9 9 11/var(--tw-text-opacity,1))!important}.underline{text-decoration-line:underline!important}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.backdrop-blur-lg{--tw-backdrop-blur:blur(16px)!important}.backdrop-blur-lg,.backdrop-blur-md{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important;backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)!important}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)!important}:root{--black:#000;--white:#fff;--white-rgb:255,255,255;--blue-slate-950-rgb:2,6,23;--blue-slate-900-rgb:15,23,42;--blue-slate-800-rgb:30,41,59;--blue-slate-700-rgb:51,65,85;--blue-slate-400-rgb:148,163,184;--blue-slate-300-rgb:203,213,225;--blue-slate-100-rgb:241,245,249;--blue-slate-050-rgb:248,250,252;--gray-800-rgb:31,41,55;--gray-700-rgb:55,65,81;--gray-600-rgb:75,85,99;--gray-200-rgb:229,231,235;--zinc-950-rgb:9,9,11;--zinc-900-rgb:24,24,27;--zinc-800-rgb:39,39,42;--zinc-700-rgb:63,63,70;--zinc-600-rgb:82,82,91;--zinc-500-rgb:113,113,122;--zinc-400-rgb:161,161,170;--zinc-300-rgb:212,212,216;--zinc-200-rgb:228,228,231;--zinc-100-rgb:244,244,245;--zinc-050-rgb:250,250,250;--red-700-rgb:185,28,28;--red-600-rgb:220,38,38;--red-500-rgb:239,68,68;--red-400-rgb:248,113,113;--red-300-rgb:252,165,165;--blue-gray-900-10:rgba(15,23,42,.1);--blue-gray-900-20:rgba(15,23,42,.2);--blue-gray-900:#0f172a;--blue-gray-800:#1e293b;--blue-gray-800-rgb:30,41,59;--blue-gray-700:#334155;--blue-gray-600:#475569;--blue-gray-500:#64748b;--blue-gray-400:#94a3b8;--blue-gray-300:#cbd5e1;--blue-gray-200:#e2e8f0;--blue-gray-100:#f1f5f9;--blue-gray-50:#f8fafc;--blue-gray-light-2:#141b2e;--blue-gray-light-4:#182032;--blue-gray-light-8:#21293b;--blue-gray-light-8-rgb:33,41,59;--blue-gray-light-16:#333b4b;--blue-gray-light-32:#575e6c;--blue-gray-light-64:#a0a5ae;--blue-gray-light-100:#f1f5f9;--blue-gray-dark-2:#e8ecf1;--blue-gray-dark-4:#e8ecf1;--blue-gray-dark-8:#dfe3e8;--blue-gray-dark-16:#cdd1d8;--blue-gray-dark-32:#a9aeb7;--blue-gray-dark-64:#606775;--blue-gray-dark-100:#0f172a;--blue-700:#1d4ed8;--blue-50:#eff6ff;--green-500:#10b981;--green-50:#ecfdf5;--yellow-50:#fffbeb;--yellow-500:#d97706;--red-700:#b91c1c;--red-50:#fef2f2;--emerald-300:#6ee7b7;--emerald-400:#34d399;--emerald-500:#10b981;--emerald-600:#059669;--rose-400:#fb7185;--rose-500:#f43f5e;--rose-600:#e11d48;--rose-700:#be123c;--teal-500:#14b8a6;--teal-600:#0d9488;--cyan-200:#a5f3fc;--cyan-300:#67e8f9;--cyan-400:#22d3ee;--cyan-500:#06b6d4;--cyan-600:#0891b2;--cyan-700:#0e7490;--hp-light-blue:#13cae6;--hp-gradient-light:#3f8efe;--hp-gradient-highlight:#3ffbda;--hp-gradient-dark:#2b64ff;--font-family:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-chip-container-height:30px;--mat-chip-container-shape-radius:12px;--mat-fab-container-shape:12px;--mat-icon-button-icon-size:24px;--mat-icon-button-state-layer-size:40px;--mat-icon-button-icon-color:currentColor;--mat-progress-bar-active-indicator-color:#020617;--mat-progress-bar-active-indicator-height:10px;--mat-progress-bar-track-color:#f4f4f5;--mat-progress-bar-track-height:10px;--mat-progress-bar-track-shape:10px;--mat-tooltip-container-shape:8px;--mat-button-protected-container-shape:9999px;--mat-button-protected-keep-touch-target:false;--mat-button-protected-horizontal-padding:24px;--mat-button-protected-icon-spacing:8px;--mat-button-protected-icon-offset:-4px;--mat-dialog-actions-padding:16px;--mat-dialog-actions-alignment:normal;--mat-dialog-container-shape:16px;--mat-dialog-supporting-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-button-outlined-container-height:40px;--mat-button-outlined-container-shape:9999px;--mat-button-outlined-icon-spacing:8px;--mat-button-outlined-icon-offset:-4px;--mat-button-outlined-horizontal-padding:24px;--mat-button-outlined-keep-touch-target:false;--mat-button-outlined-outline-width:1px;--mat-button-text-container-height:40px;--mat-button-text-container-shape:9999px;--mat-button-text-horizontal-padding:24px;--mat-button-text-icon-spacing:8px;--mat-button-text-icon-offset:0;--mat-button-text-keep-touch-target:false;--mat-button-text-with-icon-horizontal-padding:8px;--mat-button-filled-container-shape:4px;--mat-button-filled-keep-touch-target:false;--mat-button-filled-horizontal-padding:16px;--mat-button-filled-icon-spacing:8px;--mat-button-filled-icon-offset:-4px;--mat-menu-container-shape:16px;--mat-menu-divider-bottom-spacing:0;--mat-menu-divider-top-spacing:0;--mat-menu-item-spacing:16px;--mat-menu-item-icon-size:24px;--mat-menu-item-leading-spacing:16px;--mat-menu-item-trailing-spacing:16px;--mat-menu-item-with-icon-leading-spacing:16px;--mat-menu-item-with-icon-trailing-spacing:16px;--mat-stepper-container-color:transparent;--mat-slide-toggle-track-height:28px;--mat-slide-toggle-track-outline-color:#52525b;--mat-slide-toggle-label-text-font:Lato,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Open Sans,Helvetica Neue,Helvetica,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--mat-slide-toggle-label-text-color:#09090b;--mat-slide-toggle-label-text-tracking:0;--mat-slide-toggle-label-text-weight:600;--mat-slide-toggle-unselected-handle-color:#52525b;--mat-slide-toggle-unselected-track-color:#d4d4d8;--mat-slide-toggle-unselected-focus-track-color:#cbd5e1;--mat-slide-toggle-unselected-hover-track-color:#cbd5e1;--mat-slide-toggle-unselected-pressed-track-color:#cbd5e1;--mat-slide-toggle-selected-track-color:#1e293b;--mat-slide-toggle-selected-focus-track-color:#334155;--mat-slide-toggle-selected-hover-track-color:#334155;--mat-slide-toggle-selected-pressed-track-color:#334155;--mat-slide-toggle-selected-track-outline-color:#020617;--mat-slide-toggle-selected-handle-color:#cbd5e1;--mat-slide-toggle-selected-focus-handle-color:#3ffbda;--mat-slide-toggle-selected-hover-handle-color:#3ffbda;--mat-slide-toggle-selected-pressed-handle-color:#3ffbda;--mat-slide-toggle-selected-focus-state-layer-color:#3ffbda;--mat-slide-toggle-selected-hover-state-layer-color:#3ffbda;--mat-slide-toggle-selected-pressed-state-layer-color:#3ffbda;--mat-slide-toggle-unselected-focus-state-layer-color:#020617;--mat-slide-toggle-unselected-hover-state-layer-color:#020617;--mat-slide-toggle-unselected-pressed-state-layer-color:#020617;--mat-slide-toggle-selected-icon-color:#020617;--mat-slide-toggle-with-icon-handle-size:22px;--hot-toast-border-radius:16px;--hot-toast-padding:14px 20px;--hot-toast-info-icon-background-color:#1d4ed8;--hot-toast-checkmark-icon-background-color:#10b981;--hot-toast-warning-icon-background-color:#d97706;--hot-toast-error-icon-background-color:#b91c1c;--color-primary:#020617;--color-primary-inverted:#f8fafc;--color-on-primary:#f8fafc;--color-danger:#fca5a5;--color-on-danger:#dc2626;--menu_container-color:#020617;--menu_text-color:#f8fafc;--color-surface:#fff;--color-on-surface:#1e293b;--color-on-surface-lighter:#64748b;--color-base:#f1f5f9;--color-base-900:#f1f5f9;--color-base-800:#e2e8f0;--color-base-700:#cbd5e1;--color-base-600:#94a3b8;--color-base-500:#64748b;--color-base-400:#475569;--color-base-300:#334155;--color-base-200:#1e293b;--color-base-100:#0f172a;--color-border-around-base:#e2e8f0;--color-alternate:#f1f5f9;--color-alternate-lighter:#f8fafc;--color-active:#e2e8f0;--color-active-lighter:#f1f5f9;--color-on-active:#0f172a;--color-interactive:#cbd5e1;--color-on-interactive:#0f172a;--color-disabled:#fff;--color-highlight:#3f8efe;--color-highlight-hover:#06b6d4;--color-hint:#606775;--color-info:#eff6ff;--color-on-info:#1d4ed8;--color-success:#ecfdf5;--color-on-success:#10b981;--color-warning:#fffbeb;--color-on-warning:#d97706;--color-error:#fef2f2;--color-on-error:#b91c1c;--color-bg-primary:#fff;--color-bg-secondary:rgba(239,254,252,.3);--color-hover:#e2e8f0;--card_background-color:#fff;--card_background-color-rgb:255,255,255;--dialog_background-color:#fff;--query-sender_background-color:#f5f5ef;--query-sender_text-color:#000;--sidebar_text-color:#fff;--sidebar_border-color:#1e293b;--sidebar-title_font-size:1.7rem;--sidebar-title-letter-spacing:-1px;--sidebar-button_background-color:transparent;--sidebar-button_text-color:#94a3b8;--sidebar-button_font-weight:500;--sidebar-button_active_text-color:#f8fafc;--radio_background-color:#e2e8f0;--radio_border-color:#334155;--radio_active_background-color:#cbd5e1;--radio_active_border-color:#0f172a;--mat-radio-selected-icon-color:#0f172a;--mat-radio-selected-pressed-icon-color:#3f8efe;--mat-radio-selected-hover-icon-color:#06b6d4;--mat-radio-unselected-icon-color:#0f172a;--mat-radio-unselected-pressed-icon-color:#3f8efe;--mat-radio-unselected-hover-icon-color:#06b6d4;--checkbox_background-color:#f1f5f9;--mat-checkbox-state-layer-size:36px;--mat-checkbox-selected-icon-color:#0f172a;--mat-checkbox-selected-hover-icon-color:#0f172a;--mat-checkbox-selected-pressed-icon-color:#0f172a;--mat-checkbox-selected-focus-icon-color:#0f172a;--mat-checkbox-unselected-icon-color:#475569;--mat-checkbox-unselected-hover-icon-color:#0f172a;--mat-checkbox-unselected-pressed-icon-color:#0f172a;--mat-checkbox-unselected-focus-icon-color:#0f172a;--mat-checkbox-selected-checkmark-color:#f1f5f9;--mat-mdc-button-persistent-ripple-color:#0f172a;--mat-mdc-button-ripple-color:rgba(15,23,42,.2);--toggle-bar_color:#cbd5e1;--toggle-bar_active_color:#94a3b8;--toggle-bar-thumb_color:#64748b;--toggle-bar-thumb_active_color:#0f172a;--toggle-button_text-color:#000;--toggle-button_background-color:#f8fafc;--toggle-button_hover_background-color:#e2e8f0;--toggle-button_checked_text-color:#fff;--toggle-button_checked_background-color:#10b981;--tag_background-color:#e2e8f0;--tag_text-color:#475569;--tag_border-color:#e2e8f0;--tag_hover_background-color:#475569;--tag_hover_text-color:#e2e8f0;--tag_hover_border-color:#475569;--tag_disabled_background-color:#f8fafc;--tag_disabled_text-color:#cbd5e1;--tag_disabled_border-color:#f8fafc;--tag_system_background-color:#a5f3fc;--tag_border-radius:.75rem;--input_text-color:#1e293b;--input_border-color:#cbd5e1;--input_placeholder-color:#64748b;--input_xfix-color:#64748b;--input_caret-color:#1e293b;--input_border-radius:.5rem;--input_active_border-color:#334155;--form-field-label_text-color:#f1f5f9;--form-field-required_color:#b91c1c;--color-button-primary:#475569;--color-button-primary-text:#fff;--color-button-secondary:#cbd5e1;--color-button-secondary-text:#0f172a;--color-disabled-button:hsla(0,0%,100%,.5);--color-text-primary:#0f172a;--color-text-secondary:#0f172a;--color-text-accent:red;--color-text-disabled:#606775;--color-text-disabled-button:#606775;--color-text-hint:#606775;--color-dividers:#cbd5e1;--color-icons:#0f172a;--light-primary-text:#fff;--dark-primary-text:#000;--primary-color:#fff;--primary-lighter-color:#b3b6e8;--primary-darker-color:#010798;--text-primary-color:#0f172a;--text-primary-lighter-color:#000;--text-primary-darker-color:#fff;--accent-color:#475569;--accent-lighter-color:#94a3b8;--accent-darker-color:#1e293b;--text-accent-color:#fff;--text-accent-lighter-color:#000;--text-accent-darker-color:#fff;--white-color:#fff;--text-white-color:#000;--success-color:#6ee7b7;--text-success-color:#000;--warn-color:#be123c;--warn-lighter-color:#fef2f2;--warn-darker-color:#b91c1c;--text-warn-color:#fff;--text-warn-lighter-color:#000;--text-warn-darker-color:#fff;--text-primary:#0f172a;--form-filed-bg:#fff;--fab-button-bg:#fff;--fab-button-text:#0f172a;--fab-button-disabled-bg:hsla(0,0%,100%,.6);--fab-button-disabled-text:rgba(0,0,0,.3);--button-text-color:#0f172a;--button-bg-color:#cbd5e1;--button-hover-color:#94a3b8;--mat-button-filled-label-text-color:#0f172a;--mat-button-filled-container-color:#cbd5e1;--mat-button-protected-label-text-color:#0f172a;--mat-button-protected-container-color:#cbd5e1}html{--hp-dark-blue:#131d56;--hp-light-blue:#13cae6;--hp-gradient-light:63,142,254;--hp-gradient-highlight:63,251,218;--hp-gradient-dark:43,100,255;--hp-color-text-highlight:19,202,230;--hpc-highlight-color-light:6 182 212;--hpc-highlight-color-dark:19 202 230;--hpc-highlight-color:6 182 212;--mat-chip-elevated-container-color:#e2e8f0;--mat-tooltip-container-color:#020617;--mat-tooltip-supporting-text-color:#fff;--mat-menu-container-color:hsla(0,0%,100%,.5);--mat-select-panel-background-color:hsla(0,0%,100%,.4);--mat-paginator-container-background-color:#fafafa;--mat-paginator-container-border-color:#f4f4f5;--mat-paginator-container-border-top-color:#e4e4e7;--mat-sidenav-container-divider-color:#e2e8f0;--mat-stepper-line-color:#f1f5f9;--sidebar_background-color:#020617;--sidebar-submenu_hover_background-color:hsla(240,4%,46%,.7);--scrollbar-thumb-color:rgba(2,6,23,.25);--scrollbar-track-color:rgba(2,6,23,.1)}input,textarea{background:transparent}input::-moz-placeholder,textarea::-moz-placeholder{color:#d4d4d8}input::placeholder,textarea::placeholder{color:#d4d4d8}.dark input::-moz-placeholder,.dark textarea::-moz-placeholder{color:#52525b}.dark input::placeholder,.dark textarea::placeholder{color:#52525b}input::-moz-placeholder,textarea::-moz-placeholder{color:#606775}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#606775}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#606775}input:-webkit-autofill,input:-webkit-autofill:hover,textarea:-webkit-autofill,textarea:-webkit-autofill:hover{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}input:-webkit-autofill:active,input:-webkit-autofill:focus,textarea:-webkit-autofill:active,textarea:-webkit-autofill:focus{-webkit-transition:background-color 600000s 0s,color 600000s 0s!important;transition:background-color 600000s 0s,color 600000s 0s!important}[data-autocompleted]{background-color:transparent!important}input:focus,textarea:focus{box-shadow:none!important;outline:none!important}.mdc-elevation--z4{box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}.mat-mdc-raised-button.mat-primary{background-color:#020617!important;color:#f8fafc!important;font-weight:600!important;line-height:1.375!important;padding-left:1rem!important;padding-right:1rem!important}.dark .mat-mdc-raised-button.mat-primary{background-color:#e4e4e7!important;color:#020617!important}.mat-mdc-outlined-button:hover .mat-mdc-button-persistent-ripple:before{opacity:.05}.mat-mdc-outlined-button.mat-primary{background:linear-gradient(to bottom right,#3ffbdae6,#2b64ffe6)!important;border:none!important;color:#fff!important;font-weight:600!important}.mat-mdc-outlined-button.mat-primary:hover{background:linear-gradient(to bottom right,#3ffbda,#2b64ff)!important}.mat-mdc-outlined-button:not([disabled=true]){border-color:#27272a!important}.dark .mat-mdc-outlined-button:not([disabled=true]){border-color:#d4d4d8!important}.mat-mdc-outlined-button[disabled=true]{border-color:#e5e7eb!important}.dark .mat-mdc-outlined-button[disabled=true]{border-color:#4b5563!important}.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-raised-button:not(.mat-primary,.mat-accent),.mat-mdc-raised-button:not(.mat-primary,.mat-accent):hover,.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent),.mat-mdc-unelevated-button:not(.mat-primary,.mat-accent):hover{background-color:#cbd5e1!important;color:#0f172a!important}.mat-mdc-raised-button.mat-white:not([disabled]),.mat-mdc-unelevated-button.mat-white:not([disabled]){background-color:#fff!important;color:#000!important}.mat-mdc-raised-button.mat-success:not([disabled]),.mat-mdc-unelevated-button.mat-success:not([disabled]){background-color:#6ee7b7!important;color:#000!important}.mat-mdc-raised-button.mat-accent:not([disabled]),.mat-mdc-unelevated-button.mat-accent:not([disabled]){background-color:#475569!important;color:#fff!important}.mat-mdc-raised-button.mat-warn:not([disabled]),.mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#ef4444!important;color:#fef2f2!important}.mat-mdc-raised-button.mat-warn:not([disabled]):hover,.mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#dc2626!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]),.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]){background-color:#b91c1ccc!important;color:#ef4444!important}.dark .mat-mdc-raised-button.mat-warn:not([disabled]):hover,.dark .mat-mdc-unelevated-button.mat-warn:not([disabled]):hover{background-color:#b91c1c!important}.mat-mdc-raised-button.mat-info:not([disabled]),.mat-mdc-unelevated-button.mat-info:not([disabled]){background-color:#3b82f6!important;color:#fff!important}.mdc-button--raised{padding-left:1.5rem!important;padding-right:1.5rem!important}.mat-mdc-dialog-container .mdc-dialog__content{font-family:inherit!important;font-size:inherit!important;font-weight:inherit!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{letter-spacing:inherit!important;line-height:inherit!important}.mat-mdc-dialog-title:before{display:none!important}.mat-mdc-tooltip .mdc-tooltip__surface{font-size:.875rem!important;padding:.5rem .75rem!important}.mat-expansion-panel{background-color:#fff!important;border-radius:.375rem!important;box-shadow:none!important;padding:.25rem!important}.mat-expansion-panel .mat-expansion-panel-header{background-color:#f8fafc!important;border:1px solid #f1f5f9!important;border-radius:.375rem!important;transition:padding .2s ease-in-out}.mat-expansion-panel .mat-expansion-panel-header:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded{background-color:#fff!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.mat-expansion-panel .mat-expansion-panel-header.mat-expanded:hover{background-color:#e2e8f0!important}.mat-expansion-panel .mat-expansion-panel-header .mat-content{justify-content:space-between}.mat-expansion-panel .mat-expansion-panel-header-description,.mat-expansion-panel .mat-expansion-panel-header-title{flex-basis:auto!important;margin:0!important}.mat-expansion-panel .mat-expansion-panel-header-description{flex-grow:0!important}.mat-expansion-panel .mat-expansion-panel-content{border-bottom:1px solid #f1f5f9!important;border-bottom-left-radius:.375rem!important;border-bottom-right-radius:.375rem!important;border-left:1px solid #f1f5f9!important;border-right:1px solid #f1f5f9!important}.mat-expansion-panel .mat-expansion-panel-content,.mat-expansion-panel .mat-expansion-panel-header{font-size:.875rem}.mat-expansion-panel .mat-expansion-panel-header-title,.mat-expansion-panel .mat-panel-title{font-size:1rem;font-weight:600}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{margin-right:1.75rem}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator{background-color:#d4d4d8!important;border-radius:9999px!important;display:inline-block!important;height:1.5rem!important;padding:3px;width:1.5rem!important;fill:currentColor!important;color:#18181b!important}.mat-accordion .mat-expansion-panel .mat-expansion-panel-header .mat-expansion-indicator:after{border:none;content:url(\\\"data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' stroke-width='3.5'><path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z' /></svg>\\\");height:100%;padding:0;transform:rotate(0);width:100%}.mat-accordion .mat-expansion-panel .mat-expansion-panel-body{color:#0f172a!important;line-height:1.625!important;padding:1rem!important}.mat-tree{background-color:#fff!important;border-radius:.5rem!important;box-shadow:0 1px 3px #0000001a,0 1px 2px -1px #0000001a!important}.mat-tree .mat-tree-node{color:#0f172a;padding:.25rem}.mat-mdc-button,.mat-mdc-fab,.mat-mdc-icon-button,.mat-mdc-raised-button,.mat-mdc-unelevated-button{height:40px;line-height:1!important;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-small,.mat-mdc-fab.hpc-mat-button-small,.mat-mdc-icon-button.hpc-mat-button-small,.mat-mdc-raised-button.hpc-mat-button-small,.mat-mdc-unelevated-button.hpc-mat-button-small{height:32px;max-height:32px;min-height:32px}.mat-mdc-button.hpc-mat-button-medium,.mat-mdc-fab.hpc-mat-button-medium,.mat-mdc-icon-button.hpc-mat-button-medium,.mat-mdc-raised-button.hpc-mat-button-medium,.mat-mdc-unelevated-button.hpc-mat-button-medium{height:40px;max-height:40px;min-height:40px}.mat-mdc-button.hpc-mat-button-large,.mat-mdc-fab.hpc-mat-button-large,.mat-mdc-icon-button.hpc-mat-button-large,.mat-mdc-raised-button.hpc-mat-button-large,.mat-mdc-unelevated-button.hpc-mat-button-large{height:48px;max-height:48px;min-height:48px;width:48px}.mat-mdc-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-button[disabled=true] ai-icon,.mat-mdc-fab[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-fab[disabled=true] ai-icon,.mat-mdc-icon-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-icon-button[disabled=true] ai-icon,.mat-mdc-raised-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-raised-button[disabled=true] ai-icon,.mat-mdc-unelevated-button[disabled=true] .mat-mdc-paginator-icon,.mat-mdc-unelevated-button[disabled=true] ai-icon{opacity:.38!important}.mat-mdc-icon-button{border-radius:1rem!important}.mat-mdc-icon-button ai-icon{color:#020617e6}.mat-mdc-icon-button.small{border-radius:.75rem!important;height:32px;max-height:32px;min-height:32px;padding:6px;width:32px}.mat-mdc-icon-button.small ai-icon{font-size:20px;height:20px;line-height:20px;min-height:20px;min-width:20px;width:20px}.mat-mdc-icon-button.small ai-icon svg{height:20px;width:20px}.mat-mdc-icon-button.large{height:44px;max-height:44px;min-height:44px;width:44px}.mat-mdc-icon-button.large ai-icon{font-size:28px;height:28px;line-height:28px;min-height:28px;min-width:28px;width:28px}.mat-mdc-icon-button.large ai-icon svg{height:28px;width:28px}.mat-mdc-icon-button.inverted ai-icon{color:#f8fafccc}.mat-mdc-icon-button:hover{background-color:#02061726}.mat-mdc-icon-button:hover ai-icon{color:#020617}.mat-mdc-icon-button:hover.danger{background-color:#fca6a633}.mat-mdc-icon-button:hover.danger ai-icon{color:#dc2626}.mat-mdc-icon-button:hover.inverted{background-color:#f8fafc33}.mat-mdc-icon-button:hover.inverted ai-icon{color:#f8fafc}.mat-mdc-button .mat-ripple-element{background-color:#0f172a1a!important}.mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#0206170d!important}.dark .mat-mdc-button .mat-mdc-button-persistent-ripple:before{background-color:#fafafa26!important}.mat-mdc-button>ai-icon,.mat-mdc-raised-button>ai-icon,.mat-mdc-unelevated-button>ai-icon{margin-left:0!important}ai-icon,ai-icon.mat-primary{color:#18181b}.dark ai-icon,.dark ai-icon.mat-primary{color:#fafafa}.mdc-linear-progress__buffer-bar{background-color:#d4d4d8b3!important}.dark .mdc-linear-progress__buffer-bar{background-color:#52525bb3!important}.mdc-linear-progress__bar-inner{border-color:#3f8efe!important}.mat-mdc-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-fab .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-icon-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-raised-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle,.mat-mdc-unelevated-button .mat-mdc-progress-spinner .mdc-circular-progress__indeterminate-container circle{stroke:currentColor!important;animation-duration:6s}.mat-mdc-fab ai-icon,.mat-mdc-raised-button ai-icon,.mat-mdc-unelevated-button ai-icon{color:currentColor!important}.mat-mdc-fab .mat-ripple-element,.mat-mdc-raised-button .mat-ripple-element,.mat-mdc-unelevated-button .mat-ripple-element{background-color:#0000001a!important}.mat-mdc-button:not([disabled=true]).mat-primary ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-primary ai-icon{color:#020617!important}.mat-mdc-button:not([disabled=true]).mat-accent ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-accent ai-icon{color:#475569!important}.mat-mdc-button:not([disabled=true]).mat-warn ai-icon,.mat-mdc-icon-button:not([disabled=true]).mat-warn ai-icon{color:#fffbeb!important}.mdc-button .mdc-button__label{font-weight:600;white-space:nowrap}.mat-mdc-dialog-container .mdc-dialog__surface{background-color:#fff!important;border-radius:0!important;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a!important;padding:24px}@media(min-width:640px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:1.5rem!important;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a!important}}.dark .mat-mdc-dialog-container .mdc-dialog__surface{background-color:#000!important;border:1px solid #3f3f46!important}.mat-mdc-dialog-container .mdc-dialog__content,.mat-mdc-dialog-container .mdc-dialog__title{color:#1e293b!important}ai-icon{align-items:center;-webkit-appearance:none!important;display:inline-flex!important;font-size:24px;height:24px;justify-content:center;line-height:24px;width:24px}.mat-mdc-input-element::-moz-placeholder{color:#d4d4d8!important}.mat-mdc-input-element::placeholder{color:#d4d4d8!important;transition:none!important}.dark .mat-mdc-input-element::-moz-placeholder{color:#52525b!important}.dark .mat-mdc-input-element::placeholder{color:#52525b!important}.mat-mdc-input-element::-moz-placeholder{color:#606775!important;-moz-transition:none!important;transition:none!important}.mat-mdc-input-element::placeholder,.mat-mdc-select .mat-mdc-select-placeholder{color:#64748b}.icon-sm{font-size:1.25rem!important;line-height:1.25rem!important;min-height:1.25rem!important;min-width:1.25rem!important}.icon-sm,.icon-sm svg{height:1.25rem!important;width:1.25rem!important}.icon-md{font-size:1.5rem!important;line-height:1.5rem!important;min-height:1.5rem!important;min-width:1.5rem!important}.icon-md,.icon-md svg{height:1.5rem!important;width:1.5rem!important}html{--color-prettylights-syntax-comment:#57606a;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#6639ba;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#1f2328;--color-fg-muted:#656d76;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-done-fg:#8250df;--color-done-emphasis:#8250df}.markdown-body{color:var(--color-fg-default)}.markdown-body .octicon{display:inline-block;overflow:visible!important;vertical-align:text-bottom;fill:currentColor}.markdown-body h1:hover .anchor .octicon-link:before,.markdown-body h2:hover .anchor .octicon-link:before,.markdown-body h3:hover .anchor .octicon-link:before,.markdown-body h4:hover .anchor .octicon-link:before,.markdown-body h5:hover .anchor .octicon-link:before,.markdown-body h6:hover .anchor .octicon-link:before{background-color:currentColor;content:\\\" \\\";display:inline-block;height:16px;-webkit-mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');mask-image:url('data:image/svg+xml;charset=utf-8,<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" aria-hidden=\\\"true\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" d=\\\"M7.775 3.275a.75.75 0 0 0 1.06 1.06l1.25-1.25a2 2 0 1 1 2.83 2.83l-2.5 2.5a2 2 0 0 1-2.83 0 .75.75 0 0 0-1.06 1.06 3.5 3.5 0 0 0 4.95 0l2.5-2.5a3.5 3.5 0 0 0-4.95-4.95zm-4.69 9.64a2 2 0 0 1 0-2.83l2.5-2.5a2 2 0 0 1 2.83 0 .75.75 0 0 0 1.06-1.06 3.5 3.5 0 0 0-4.95 0l-2.5 2.5a3.5 3.5 0 0 0 4.95 4.95l1.25-1.25a.75.75 0 0 0-1.06-1.06l-1.25 1.25a2 2 0 0 1-2.83 0\\\"/></svg>');width:16px}.markdown-body details,.markdown-body figcaption,.markdown-body figure{display:block}.markdown-body summary{display:list-item}.markdown-body [hidden]{display:none!important}.markdown-body a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.markdown-body abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.markdown-body b,.markdown-body strong{font-weight:var(--base-text-weight-semibold,600)}.markdown-body dfn{font-style:italic}.markdown-body h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:var(--base-text-weight-semibold,600);margin:.67em 0;padding-bottom:.3em}.markdown-body mark{background-color:var(--color-attention-subtle);color:var(--color-fg-default)}.markdown-body small{font-size:90%}.markdown-body sub,.markdown-body sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.markdown-body sub{bottom:-.25em}.markdown-body sup{top:-.5em}.markdown-body img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;max-width:100%}.markdown-body code,.markdown-body kbd,.markdown-body pre,.markdown-body samp{font-family:monospace;font-size:1em}.markdown-body figure{margin:1em 40px}.markdown-body hr{background:transparent;background-color:var(--color-border-default);border:0;box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.markdown-body input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.markdown-body [type=button],.markdown-body [type=reset],.markdown-body [type=submit]{-webkit-appearance:button;-moz-appearance:button;appearance:button}.markdown-body [type=checkbox],.markdown-body [type=radio]{box-sizing:border-box;padding:0}.markdown-body [type=number]::-webkit-inner-spin-button,.markdown-body [type=number]::-webkit-outer-spin-button{height:auto}.markdown-body [type=search]::-webkit-search-cancel-button,.markdown-body [type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.markdown-body ::-webkit-input-placeholder{color:inherit;opacity:.54}.markdown-body ::-webkit-file-upload-button{-webkit-appearance:button;appearance:button;font:inherit}.markdown-body a:hover{text-decoration:underline}.markdown-body ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body ::placeholder{color:var(--color-fg-subtle);opacity:1}.markdown-body hr:after,.markdown-body hr:before{content:\\\"\\\";display:table}.markdown-body hr:after{clear:both}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;overflow:auto;width:-moz-max-content;width:max-content}.markdown-body td,.markdown-body th{padding:0}.markdown-body details summary{cursor:pointer}.markdown-body details:not([open])>:not(summary){display:none!important}.markdown-body [role=button]:focus,.markdown-body a:focus,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=radio]:focus{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body [role=button]:focus:not(:focus-visible),.markdown-body a:focus:not(:focus-visible),.markdown-body input[type=checkbox]:focus:not(:focus-visible),.markdown-body input[type=radio]:focus:not(:focus-visible){outline:1px solid transparent}.markdown-body [role=button]:focus-visible,.markdown-body a:focus-visible,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--color-accent-fg);outline-offset:-2px}.markdown-body a:not([class]):focus,.markdown-body a:not([class]):focus-visible,.markdown-body input[type=checkbox]:focus,.markdown-body input[type=checkbox]:focus-visible,.markdown-body input[type=radio]:focus,.markdown-body input[type=radio]:focus-visible{outline-offset:0}.markdown-body kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{font-weight:var(--base-text-weight-semibold,600);line-height:1.25;margin-bottom:16px;margin-top:24px}.markdown-body h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;padding-bottom:.3em}.markdown-body h2,.markdown-body h3{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h3{font-size:1.25em}.markdown-body h4{font-size:1em}.markdown-body h4,.markdown-body h5{font-weight:var(--base-text-weight-semibold,600)}.markdown-body h5{font-size:.875em}.markdown-body h6{color:var(--color-fg-muted);font-size:.85em;font-weight:var(--base-text-weight-semibold,600)}.markdown-body p{margin-bottom:10px;margin-top:0}.markdown-body blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.markdown-body ul{list-style-type:disc}.markdown-body ol{list-style-type:decimal}.markdown-body ol,.markdown-body ul{margin-bottom:0;margin-top:0;padding-left:2em}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code,.markdown-body pre,.markdown-body samp,.markdown-body tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.markdown-body pre{margin-bottom:0;margin-top:0;word-wrap:normal}.markdown-body input::-webkit-inner-spin-button,.markdown-body input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.markdown-body .mr-2{margin-right:var(--base-size-8,8px)!important}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body a:not([href]){color:inherit;text-decoration:none}.markdown-body .absent{color:var(--color-danger-fg)}.markdown-body .anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.markdown-body .anchor:focus{outline:none}.markdown-body blockquote,.markdown-body details,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-bottom:16px;margin-top:0}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{visibility:visible}.markdown-body h1 code,.markdown-body h1 tt,.markdown-body h2 code,.markdown-body h2 tt,.markdown-body h3 code,.markdown-body h3 tt,.markdown-body h4 code,.markdown-body h4 tt,.markdown-body h5 code,.markdown-body h5 tt,.markdown-body h6 code,.markdown-body h6 tt{font-size:inherit;padding:0 .2em}.markdown-body summary h1,.markdown-body summary h2,.markdown-body summary h3,.markdown-body summary h4,.markdown-body summary h5,.markdown-body summary h6{display:inline-block}.markdown-body summary h1 .anchor,.markdown-body summary h2 .anchor,.markdown-body summary h3 .anchor,.markdown-body summary h4 .anchor,.markdown-body summary h5 .anchor,.markdown-body summary h6 .anchor{margin-left:-40px}.markdown-body summary h1,.markdown-body summary h2{border-bottom:0;padding-bottom:0}.markdown-body ol.no-list,.markdown-body ul.no-list{list-style-type:none;padding:0}.markdown-body ol[type=\\\"a s\\\"]{list-style-type:lower-alpha}.markdown-body ol[type=\\\"A s\\\"]{list-style-type:upper-alpha}.markdown-body ol[type=\\\"i s\\\"]{list-style-type:lower-roman}.markdown-body ol[type=\\\"I s\\\"]{list-style-type:upper-roman}.markdown-body div>ol:not([type]),.markdown-body ol[type=\\\"1\\\"]{list-style-type:decimal}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-bottom:0;margin-top:0}.markdown-body li>p{margin-top:16px}.markdown-body li+li{margin-top:.25em}.markdown-body dl{padding:0}.markdown-body dl dt{font-size:1em;font-style:italic;font-weight:var(--base-text-weight-semibold,600);margin-top:16px;padding:0}.markdown-body dl dd{margin-bottom:16px;padding:0 16px}.markdown-body table th{font-weight:var(--base-text-weight-semibold,600)}.markdown-body table td,.markdown-body table th{border:1px solid var(--color-border-default);padding:6px 13px}.markdown-body table td>:last-child{margin-bottom:0}.markdown-body table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.markdown-body table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.markdown-body table img{background-color:transparent}.markdown-body img[align=right]{padding-left:20px}.markdown-body img[align=left]{padding-right:20px}.markdown-body .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.markdown-body span.frame{display:block;overflow:hidden}.markdown-body span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.markdown-body span.frame span img{display:block;float:left}.markdown-body span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.markdown-body span.align-center{clear:both;display:block;overflow:hidden}.markdown-body span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.markdown-body span.align-center span img{margin:0 auto;text-align:center}.markdown-body span.align-right{clear:both;display:block;overflow:hidden}.markdown-body span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.markdown-body span.align-right span img{margin:0;text-align:right}.markdown-body span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.markdown-body span.float-left span{margin:13px 0 0}.markdown-body span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.markdown-body span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.markdown-body code,.markdown-body tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em;white-space:break-spaces}.markdown-body code br,.markdown-body tt br{display:none}.markdown-body del code{text-decoration:inherit}.markdown-body samp{font-size:85%}.markdown-body pre code{font-size:100%}.markdown-body pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body .highlight pre,.markdown-body pre{background-color:var(--color-canvas-subtle);border-radius:6px;color:var(--color-fg-default);font-size:85%;line-height:1.45;overflow:auto;padding:16px}.markdown-body pre code,.markdown-body pre tt{display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;word-wrap:normal;background-color:transparent;border:0}.markdown-body .csv-data td,.markdown-body .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.markdown-body .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.markdown-body .csv-data tr{border-top:0}.markdown-body .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:var(--base-text-weight-semibold,600)}.markdown-body [data-footnote-ref]:before{content:\\\"[\\\"}.markdown-body [data-footnote-ref]:after{content:\\\"]\\\"}.markdown-body .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.markdown-body .footnotes ol{padding-left:16px}.markdown-body .footnotes ol ul{display:inline-block;margin-top:16px;padding-left:16px}.markdown-body .footnotes li{position:relative}.markdown-body .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;content:\\\"\\\";inset:-8px -8px -8px -24px;pointer-events:none;position:absolute}.markdown-body .footnotes li:target{color:var(--color-fg-default)}.markdown-body .footnotes .data-footnote-backref g-emoji{font-family:monospace}.markdown-body .pl-c{color:var(--color-prettylights-syntax-comment)}.markdown-body .pl-c1,.markdown-body .pl-s .pl-v{color:var(--color-prettylights-syntax-constant)}.markdown-body .pl-e,.markdown-body .pl-en{color:var(--color-prettylights-syntax-entity)}.markdown-body .pl-s .pl-s1,.markdown-body .pl-smi{color:var(--color-prettylights-syntax-storage-modifier-import)}.markdown-body .pl-ent{color:var(--color-prettylights-syntax-entity-tag)}.markdown-body .pl-k{color:var(--color-prettylights-syntax-keyword)}.markdown-body .pl-pds,.markdown-body .pl-s,.markdown-body .pl-s .pl-pse .pl-s1,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre{color:var(--color-prettylights-syntax-string)}.markdown-body .pl-smw,.markdown-body .pl-v{color:var(--color-prettylights-syntax-variable)}.markdown-body .pl-bu{color:var(--color-prettylights-syntax-brackethighlighter-unmatched)}.markdown-body .pl-ii{background-color:var(--color-prettylights-syntax-invalid-illegal-bg);color:var(--color-prettylights-syntax-invalid-illegal-text)}.markdown-body .pl-c2{background-color:var(--color-prettylights-syntax-carriage-return-bg);color:var(--color-prettylights-syntax-carriage-return-text)}.markdown-body .pl-sr .pl-cce{color:var(--color-prettylights-syntax-string-regexp);font-weight:700}.markdown-body .pl-ml{color:var(--color-prettylights-syntax-markup-list)}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:var(--color-prettylights-syntax-markup-heading);font-weight:700}.markdown-body .pl-mi{color:var(--color-prettylights-syntax-markup-italic);font-style:italic}.markdown-body .pl-mb{color:var(--color-prettylights-syntax-markup-bold);font-weight:700}.markdown-body .pl-md{background-color:var(--color-prettylights-syntax-markup-deleted-bg);color:var(--color-prettylights-syntax-markup-deleted-text)}.markdown-body .pl-mi1{background-color:var(--color-prettylights-syntax-markup-inserted-bg);color:var(--color-prettylights-syntax-markup-inserted-text)}.markdown-body .pl-mc{background-color:var(--color-prettylights-syntax-markup-changed-bg);color:var(--color-prettylights-syntax-markup-changed-text)}.markdown-body .pl-mi2{background-color:var(--color-prettylights-syntax-markup-ignored-bg);color:var(--color-prettylights-syntax-markup-ignored-text)}.markdown-body .pl-mdr{color:var(--color-prettylights-syntax-meta-diff-range);font-weight:700}.markdown-body .pl-ba{color:var(--color-prettylights-syntax-brackethighlighter-angle)}.markdown-body .pl-sg{color:var(--color-prettylights-syntax-sublimelinter-gutter-mark)}.markdown-body .pl-corl{color:var(--color-prettylights-syntax-constant-other-reference-link);text-decoration:underline}.markdown-body g-emoji{display:inline-block;font-family:Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:1em;font-style:normal!important;font-weight:var(--base-text-weight-normal,400);line-height:1;min-width:1ch;vertical-align:-.075em}.markdown-body g-emoji img{height:1em;width:1em}.markdown-body .task-list-item{list-style-type:none}.markdown-body .task-list-item label{font-weight:var(--base-text-weight-normal,400)}.markdown-body .task-list-item.enabled label{cursor:pointer}.markdown-body .task-list-item+.task-list-item{margin-top:4px}.markdown-body .task-list-item .handle{display:none}.markdown-body .task-list-item-checkbox{margin:0 .2em .25em -1.4em;vertical-align:middle}.markdown-body .contains-task-list:dir(rtl) .task-list-item-checkbox{margin:0 -1.6em .25em .2em}.markdown-body .contains-task-list{position:relative}.markdown-body .contains-task-list:focus-within .task-list-item-convert-container,.markdown-body .contains-task-list:hover .task-list-item-convert-container{display:block;height:24px;overflow:visible;width:auto;clip:auto}.markdown-body ::-webkit-calendar-picker-indicator{filter:invert(50%)}.hover\\\\:bg-zinc-100:hover{--tw-bg-opacity:1!important;background-color:rgb(244 244 245/var(--tw-bg-opacity,1))!important}.hover\\\\:bg-zinc-400\\\\/30:hover{background-color:#a1a1aa4d!important}.hover\\\\:text-blue-500:hover{--tw-text-opacity:1!important;color:rgb(59 130 246/var(--tw-text-opacity,1))!important}.hover\\\\:text-blue-600:hover{--tw-text-opacity:1!important;color:rgb(37 99 235/var(--tw-text-opacity,1))!important}.hover\\\\:text-zinc-900:hover{--tw-text-opacity:1!important;color:rgb(24 24 27/var(--tw-text-opacity,1))!important}.hover\\\\:underline:hover{text-decoration-line:underline!important}@media(min-width:640px){.sm\\\\:h-\\\\[65vh\\\\]{height:65vh!important}.sm\\\\:flex-row{flex-direction:row!important}.sm\\\\:items-start{align-items:flex-start!important}.sm\\\\:items-center{align-items:center!important}.sm\\\\:justify-start{justify-content:flex-start!important}}@media(min-width:768px){.md\\\\:max-w-\\\\[80\\\\%\\\\]{max-width:80%!important}.md\\\\:max-w-\\\\[85\\\\%\\\\]{max-width:85%!important}.md\\\\:flex-col{flex-direction:column!important}.md\\\\:gap-2{gap:.5rem!important}.md\\\\:gap-x-2{-moz-column-gap:.5rem!important;column-gap:.5rem!important}.md\\\\:rounded-2xl{border-radius:1rem!important}.md\\\\:py-4{padding-bottom:1rem!important;padding-top:1rem!important}.md\\\\:pr-4{padding-right:1rem!important}.md\\\\:text-lg{font-size:1.125rem!important;line-height:1.75rem!important}.md\\\\:font-semibold{font-weight:600!important}}@media(min-width:1024px){.lg\\\\:max-w-screen-md{max-width:768px!important}}@media(min-width:1280px){.xl\\\\:max-w-screen-lg{max-width:1024px!important}}.dark\\\\:border-black\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#00000080!important}.dark\\\\:border-red-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-border-opacity:1!important;border-color:rgb(127 29 29/var(--tw-border-opacity,1))!important}.dark\\\\:border-zinc-600\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b4d!important}.dark\\\\:border-zinc-600\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#52525b80!important}.dark\\\\:border-zinc-700\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4666!important}.dark\\\\:border-zinc-700\\\\/50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){border-color:#3f3f4680!important}.dark\\\\:bg-black:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(0 0 0/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-black\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#0003!important}.dark\\\\:bg-black\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#000000b3!important}.dark\\\\:bg-red-600\\\\/10:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#dc26261a!important}.dark\\\\:bg-red-800\\\\/20:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#991b1b33!important}.dark\\\\:bg-red-950\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#450a0acc!important}.dark\\\\:bg-zinc-700:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(63 63 70/var(--tw-bg-opacity,1))!important}.dark\\\\:bg-zinc-700\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#3f3f464d!important}.dark\\\\:bg-zinc-800\\\\/60:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){background-color:#27272a99!important}.dark\\\\:bg-zinc-900:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(24 24 27/var(--tw-bg-opacity,1))!important}.dark\\\\:text-blue-100:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(219 234 254/var(--tw-text-opacity,1))!important}.dark\\\\:text-green-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#4ade80cc!important}.dark\\\\:text-red-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(248 113 113/var(--tw-text-opacity,1))!important}.dark\\\\:text-red-400\\\\/80:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f87272cc!important}.dark\\\\:text-zinc-100\\\\/70:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5b3!important}.dark\\\\:text-zinc-100\\\\/90:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#f4f4f5e6!important}.dark\\\\:text-zinc-300:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(212 212 216/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-300\\\\/30:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d84d!important}.dark\\\\:text-zinc-300\\\\/40:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){color:#d4d4d866!important}.dark\\\\:text-zinc-400:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(161 161 170/var(--tw-text-opacity,1))!important}.dark\\\\:text-zinc-50:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:bg-zinc-800:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-bg-opacity:1!important;background-color:rgb(39 39 42/var(--tw-bg-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-200:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(191 219 254/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-blue-400:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(96 165 250/var(--tw-text-opacity,1))!important}.dark\\\\:hover\\\\:text-zinc-50:hover:where([data-theme=hpc-dark],[data-theme=hpc-dark] *){--tw-text-opacity:1!important;color:rgb(250 250 250/var(--tw-text-opacity,1))!important}\\n/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/\\n\"] }]\n }], propDecorators: { asset: [{\n type: Input\n }], assistant: [{\n type: Input\n }], initialMessage: [{\n type: Input\n }], context: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9haS9jaGF0LWJveC9jaGF0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FpLXNkay9zcmMvbGliL2FpL2NoYXQtYm94L2NoYXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxTQUFTLEVBQUUsVUFBVSxFQUNyQixNQUFNLEVBQ04sS0FBSyxFQUVMLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUVyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8s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ZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IExvZ2dlck1vZHVsZSwgTkdYTG9nZ2VyIH0gZnJvbSAnbmd4LWxvZ2dlcic7XG5cbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi4vY29udGV4dC5zZXJ2aWNlJztcbmltcG9ydCB7IEFpVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnLi4vdHJhbnNsb2NvLm1vZHVsZSc7XG5pbXBvcnQgeyBDaGF0U2VydmljZSwgV2ViU29ja2V0TWVzc2FnZVR5cGUgfSBmcm9tICcuLi9jaGF0LnNlcnZpY2UnO1xuaW1wb3J0IHsgTWVzc2FnZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vbWVzc2FnZS1pbnB1dC9tZXNzYWdlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUaHJlYWRDb21wb25lbnQgfSBmcm9tICcuLi90aHJlYWQvdGhyZWFkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXZWJzb2NrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vd2Vic29ja2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhdEFzc2lzdGFudFR5cGUgfSBmcm9tICcuLi9jaGF0LWRpYWxvZy9jaGF0LWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBVVRIX0FEQVBURVIgfSBmcm9tICcuLi8uLi9hdXRoL2F1dGguYWRhcHRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXREYXRhIHtcbiAgaWQ/OiBzdHJpbmc7XG4gIG5hbWU/OiBzdHJpbmc7XG4gIGV4dGVybmFsS2V5Pzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhaS1jaGF0JyxcbiAgaW1wb3J0czogW1xuICAgIEFpVHJhbnNsb2NvTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBMb2dnZXJNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWVzc2FnZUlucHV0Q29tcG9uZW50LFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgVGhyZWFkQ29tcG9uZW50LFxuICBdLFxuICBwcm92aWRlcnM6IFtDaGF0U2VydmljZSwgQ29udGV4dFNlcnZpY2UsIFdlYnNvY2tldFNlcnZpY2VdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hhdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuLi8uLi9zaGFyZWQvc3R5bGVzLmNzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBaUNoYXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICByZWFkb25seSBjaGF0U2VydmljZSA9IGluamVjdChDaGF0U2VydmljZSk7XG4gIHJlYWRvbmx5IHRyYW5zbG9jb1NlcnZpY2UgPSBpbmplY3QoVHJhbnNsb2NvU2VydmljZSk7XG4gIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChOR1hMb2dnZXIpO1xuICByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHByaXZhdGUgYXV0aCA9IGluamVjdChBVVRIX0FEQVBURVIpO1xuXG4gIEBJbnB1dCgpIGFzc2V0OiBBc3NldERhdGEgPSB7fTtcbiAgQElucHV0KCkgYXNzaXN0YW50OiBDaGF0QXNzaXN0YW50VHlwZSA9ICdhc3NldCc7XG4gIEBJbnB1dCgpIGluaXRpYWxNZXNzYWdlPzogc3RyaW5nO1xuICBASW5wdXQoKSBjb250ZXh0PzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmF1dGguaXNBdXRoZW50aWNhdGVkKCkpIHtcbiAgICAgIGlmICh0aGlzLmF1dGgubG9naW5Qb3B1cCkge1xuICAgICAgICBhd2FpdCB0aGlzLmF1dGgubG9naW5Qb3B1cCgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYXdhaXQgdGhpcy5hdXRoLmxvZ2luUmVkaXJlY3QoeyByZWRpcmVjdFVyaTogd2luZG93LmxvY2F0aW9uLmhyZWYgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jaGF0U2VydmljZVxuICAgICAgLmluaXQoKVxuICAgICAgLnRoZW4oYXN5bmMgKCkgPT4ge1xuICAgICAgICBsZXQgaW5pdGlhbE1lc3NhZ2UgPSB0aGlzLmluaXRpYWxNZXNzYWdlO1xuICAgICAgICBpZiAoIWluaXRpYWxNZXNzYWdlKSB7XG4gICAgICAgICAgaW5pdGlhbE1lc3NhZ2UgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKFxuICAgICAgICAgICAgJ2FpLnByb21wdHMuJyArIHRoaXMuYXNzaXN0YW50LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBhc3NldElkOiB0aGlzLmFzc2V0Py5pZCxcbiAgICAgICAgICAgICAgYXNzZXROYW1lOiB0aGlzLmFzc2V0Py5uYW1lLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmFzc2V0Py5leHRlcm5hbEtleSkge1xuICAgICAgICAgIGluaXRpYWxNZXNzYWdlICs9IHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoXG4gICAgICAgICAgICAnYWkucHJvbXB0cy5hc3NldEtleScsXG4gICAgICAgICAgICB7IGFzc2V0S2V5OiB0aGlzLmFzc2V0LmV4dGVybmFsS2V5IH0sXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5hc3NldD8uaWQpIHtcbiAgICAgICAgICBpbml0aWFsTWVzc2FnZSArPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKFxuICAgICAgICAgICAgJ2FpLnByb21wdHMuYXNzZXRJZCcsXG4gICAgICAgICAgICB7IGFzc2V0SWQ6IHRoaXMuYXNzZXQuaWQgfSxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGFzc2lzdGFudElkID0gdGhpcy5hc3Npc3RhbnQgKyAnLWFzc2lzdGFudCc7XG4gICAgICAgIGF3YWl0IHRoaXMuY2hhdFNlcnZpY2UuY3JlYXRlVGhyZWFkRm9yTW9kYWwoXG4gICAgICAgICAgYXNzaXN0YW50SWQsXG4gICAgICAgICAgaW5pdGlhbE1lc3NhZ2UsXG4gICAgICAgICAgdGhpcy5jb250ZXh0LFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuY2hhdFNlcnZpY2UudGhyZWFkRXZlbnRTdWJqZWN0XG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgICAgICh2YWx1ZSkgPT4gdmFsdWUudHlwZSAhPT0gV2ViU29ja2V0TWVzc2FnZVR5cGUuQUlfUEFSVElBTF9NRVNTQUdFLFxuICAgICAgICAgICAgKSxcbiAgICAgICAgICApXG4gICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1c3RvbUV2ZW50ID0gbmV3IEN1c3RvbUV2ZW50KGV2ZW50LnR5cGUsIHtcbiAgICAgICAgICAgICAgZGV0YWlsOiBldmVudC5kYXRhLFxuICAgICAgICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5kaXNwYXRjaEV2ZW50KGN1c3RvbUV2ZW50KTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihlcnIpO1xuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGgtZnVsbCB3LWZ1bGwgZmxleC1jb2xcIiAqdHJhbnNsb2NvPVwibGV0IHRcIj5cbiAgPGRpdiBjbGFzcz1cImZsZXggaC1mdWxsIHctZnVsbCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgb3ZlcmZsb3cteS1hdXRvXCI+XG4gICAgPGFpLXRocmVhZCBjbGFzcz1cImZsZXggaC1mdWxsIHctZnVsbFwiPjwvYWktdGhyZWFkPlxuICA8L2Rpdj5cbiAgPGFpLW1lc3NhZ2UtaW5wdXQgY2xhc3M9XCJ3LWZ1bGxcIj48L2FpLW1lc3NhZ2UtaW5wdXQ+XG48L2Rpdj5cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\nimport { CommonModule } from '@angular/common';\nimport { ChatService } from './chat.service';\nimport { WebsocketService } from './websocket.service';\nimport { ContextService } from './context.service';\nimport { VoiceRecognitionService } from './voice-recognition.service';\nimport { ApiService } from '../core/api.service';\nimport { AiTranslocoModule } from './transloco.module';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"ngx-logger\";\nexport class AiModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: AiModule, imports: [CommonModule, i1.LoggerModule], exports: [AiTranslocoModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiModule, providers: [\n ApiService,\n ChatService,\n ContextService,\n VoiceRecognitionService,\n WebsocketService,\n ], imports: [CommonModule,\n LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG,\n disableConsoleLogging: false,\n }), AiTranslocoModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: AiModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n CommonModule,\n LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG,\n disableConsoleLogging: false,\n }),\n ],\n providers: [\n ApiService,\n ChatService,\n ContextService,\n VoiceRecognitionService,\n WebsocketService,\n ],\n exports: [AiTranslocoModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvYWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDOzs7QUFtQnZELE1BQU0sT0FBTyxRQUFRO3VHQUFSLFFBQVE7d0dBQVIsUUFBUSxZQWZqQixZQUFZLDhCQWFKLGlCQUFpQjt3R0FFaEIsUUFBUSxhQVRSO1lBQ1QsVUFBVTtZQUNWLFdBQVc7WUFDWCxjQUFjO1lBQ2QsdUJBQXVCO1lBQ3ZCLGdCQUFnQjtTQUNqQixZQVpDLFlBQVk7WUFDWixZQUFZLENBQUMsT0FBTyxDQUFDO2dCQUNuQixLQUFLLEVBQUUsY0FBYyxDQUFDLEtBQUs7Z0JBQzNCLHFCQUFxQixFQUFFLEtBQUs7YUFDN0IsQ0FBQyxFQVNNLGlCQUFpQjs7MkZBRWhCLFFBQVE7a0JBakJwQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVksQ0FBQyxPQUFPLENBQUM7NEJBQ25CLEtBQUssRUFBRSxjQUFjLENBQUMsS0FBSzs0QkFDM0IscUJBQXFCLEVBQUUsS0FBSzt5QkFDN0IsQ0FBQztxQkFDSDtvQkFDRCxTQUFTLEVBQUU7d0JBQ1QsVUFBVTt3QkFDVixXQUFXO3dCQUNYLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixnQkFBZ0I7cUJBQ2pCO29CQUNELE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO2lCQUM3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXJNb2R1bGUsIE5neExvZ2dlckxldmVsIH0gZnJvbSAnbmd4LWxvZ2dlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBDaGF0U2VydmljZSB9IGZyb20gJy4vY2hhdC5zZXJ2aWNlJztcbmltcG9ydCB7IFdlYnNvY2tldFNlcnZpY2UgfSBmcm9tICcuL3dlYnNvY2tldC5zZXJ2aWNlJztcbmltcG9ydCB7IENvbnRleHRTZXJ2aWNlIH0gZnJvbSAnLi9jb250ZXh0LnNlcnZpY2UnO1xuaW1wb3J0IHsgVm9pY2VSZWNvZ25pdGlvblNlcnZpY2UgfSBmcm9tICcuL3ZvaWNlLXJlY29nbml0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBpU2VydmljZSB9IGZyb20gJy4uL2NvcmUvYXBpLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWlUcmFuc2xvY29Nb2R1bGUgfSBmcm9tICcuL3RyYW5zbG9jby5tb2R1bGUnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIExvZ2dlck1vZHVsZS5mb3JSb290KHtcbiAgICAgIGxldmVsOiBOZ3hMb2dnZXJMZXZlbC5ERUJVRyxcbiAgICAgIGRpc2FibGVDb25zb2xlTG9nZ2luZzogZmFsc2UsXG4gICAgfSksXG4gIF0sXG4gIHByb3ZpZGVyczogW1xuICAgIEFwaVNlcnZpY2UsXG4gICAgQ2hhdFNlcnZpY2UsXG4gICAgQ29udGV4dFNlcnZpY2UsXG4gICAgVm9pY2VSZWNvZ25pdGlvblNlcnZpY2UsXG4gICAgV2Vic29ja2V0U2VydmljZSxcbiAgXSxcbiAgZXhwb3J0czogW0FpVHJhbnNsb2NvTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgQWlNb2R1bGUge31cbiJdfQ==","import { HttpClient } from '@angular/common/http';\nimport { MARKED_OPTIONS, provideMarkdown } from 'ngx-markdown';\n/**\n * Provides Markdown configuration for AI SDK\n * This allows consuming applications to not have to set up Markdown themselves\n */\nexport function provideAiMarkdown() {\n return provideMarkdown({\n loader: HttpClient,\n markedOptions: {\n provide: MARKED_OPTIONS,\n useValue: {\n gfm: true,\n breaks: true,\n pedantic: false,\n },\n },\n });\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya2Rvd24ucHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2xpYi9jb3JlL21hcmtkb3duLnByb3ZpZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUUvRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsaUJBQWlCO0lBQy9CLE9BQU8sZUFBZSxDQUFDO1FBQ3JCLE1BQU0sRUFBRSxVQUFVO1FBQ2xCLGFBQWEsRUFBRTtZQUNiLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFFBQVEsRUFBRTtnQkFDUixHQUFHLEVBQUUsSUFBSTtnQkFDVCxNQUFNLEVBQUUsSUFBSTtnQkFDWixRQUFRLEVBQUUsS0FBSzthQUNoQjtTQUNGO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFSS0VEX09QVElPTlMsIHByb3ZpZGVNYXJrZG93biB9IGZyb20gJ25neC1tYXJrZG93bic7XG5cbi8qKlxuICogUHJvdmlkZXMgTWFya2Rvd24gY29uZmlndXJhdGlvbiBmb3IgQUkgU0RLXG4gKiBUaGlzIGFsbG93cyBjb25zdW1pbmcgYXBwbGljYXRpb25zIHRvIG5vdCBoYXZlIHRvIHNldCB1cCBNYXJrZG93biB0aGVtc2VsdmVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWlNYXJrZG93bigpOiBQcm92aWRlciB7XG4gIHJldHVybiBwcm92aWRlTWFya2Rvd24oe1xuICAgIGxvYWRlcjogSHR0cENsaWVudCxcbiAgICBtYXJrZWRPcHRpb25zOiB7XG4gICAgICBwcm92aWRlOiBNQVJLRURfT1BUSU9OUyxcbiAgICAgIHVzZVZhbHVlOiB7XG4gICAgICAgIGdmbTogdHJ1ZSxcbiAgICAgICAgYnJlYWtzOiB0cnVlLFxuICAgICAgICBwZWRhbnRpYzogZmFsc2UsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pO1xufVxuIl19","import { provideAiMarkdown } from '../core/markdown.provider';\nimport { AiTranslocoModule } from './transloco.module';\nimport { importProvidersFrom } from '@angular/core';\nimport { provideHttpClient, withInterceptorsFromDi, } from '@angular/common/http';\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\n/**\n * Provides all necessary providers for AI SDK\n * This allows consuming applications to configure the AI SDK with a single function\n */\nexport function provideAiSdk() {\n return [\n importProvidersFrom(AiTranslocoModule, LoggerModule.forRoot({\n level: NgxLoggerLevel.DEBUG,\n disableConsoleLogging: false,\n })),\n provideAiMarkdown(),\n provideHttpClient(withInterceptorsFromDi()),\n ];\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvdmlkZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYWktc2RrL3NyYy9saWIvYWkvcHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLHNCQUFzQixHQUN2QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxZQUFZLEVBQUUsY0FBYyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRTFEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxZQUFZO0lBQzFCLE9BQU87UUFDTCxtQkFBbUIsQ0FDakIsaUJBQWlCLEVBQ2pCLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDbkIsS0FBSyxFQUFFLGNBQWMsQ0FBQyxLQUFLO1lBQzNCLHFCQUFxQixFQUFFLEtBQUs7U0FDN0IsQ0FBQyxDQUNIO1FBQ0QsaUJBQWlCLEVBQUU7UUFDbkIsaUJBQWlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztLQUM1QyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50UHJvdmlkZXJzLCBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcHJvdmlkZUFpTWFya2Rvd24gfSBmcm9tICcuLi9jb3JlL21hcmtkb3duLnByb3ZpZGVyJztcbmltcG9ydCB7IEFpVHJhbnNsb2NvTW9kdWxlIH0gZnJvbSAnLi90cmFuc2xvY28ubW9kdWxlJztcbmltcG9ydCB7IGltcG9ydFByb3ZpZGVyc0Zyb20gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIHByb3ZpZGVIdHRwQ2xpZW50LFxuICB3aXRoSW50ZXJjZXB0b3JzRnJvbURpLFxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBMb2dnZXJNb2R1bGUsIE5neExvZ2dlckxldmVsIH0gZnJvbSAnbmd4LWxvZ2dlcic7XG5cbi8qKlxuICogUHJvdmlkZXMgYWxsIG5lY2Vzc2FyeSBwcm92aWRlcnMgZm9yIEFJIFNES1xuICogVGhpcyBhbGxvd3MgY29uc3VtaW5nIGFwcGxpY2F0aW9ucyB0byBjb25maWd1cmUgdGhlIEFJIFNESyB3aXRoIGEgc2luZ2xlIGZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlQWlTZGsoKTogKFByb3ZpZGVyIHwgRW52aXJvbm1lbnRQcm92aWRlcnMpW10ge1xuICByZXR1cm4gW1xuICAgIGltcG9ydFByb3ZpZGVyc0Zyb20oXG4gICAgICBBaVRyYW5zbG9jb01vZHVsZSxcbiAgICAgIExvZ2dlck1vZHVsZS5mb3JSb290KHtcbiAgICAgICAgbGV2ZWw6IE5neExvZ2dlckxldmVsLkRFQlVHLFxuICAgICAgICBkaXNhYmxlQ29uc29sZUxvZ2dpbmc6IGZhbHNlLFxuICAgICAgfSksXG4gICAgKSxcbiAgICBwcm92aWRlQWlNYXJrZG93bigpLFxuICAgIHByb3ZpZGVIdHRwQ2xpZW50KHdpdGhJbnRlcmNlcHRvcnNGcm9tRGkoKSksXG4gIF07XG59XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFobnByby1haS1zZGsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9haS1zZGsvc3JjL2hhaG5wcm8tYWktc2RrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i3","i5","i6","i1","i2","i4","i6.BytesPipe","i7.DateAgoPipe","HttpClient"],"mappings":"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"}
1
+ {"version":3,"file":"hahnpro-ai-sdk.mjs","sources":["../../../../packages/ai-sdk/src/lib/auth/auth.adapter.ts","../../../../packages/ai-sdk/src/lib/core/icons/icon.component.ts","../../../../packages/ai-sdk/src/lib/core/icons/icon.component.html","../../../../packages/ai-sdk/src/lib/core/api.service.ts","../../../../packages/ai-sdk/src/lib/core/owner-resolver.service.ts","../../../../packages/ai-sdk/src/lib/ai/context.service.ts","../../../../packages/ai-sdk/src/lib/ai/websocket.service.ts","../../../../packages/ai-sdk/src/lib/ai/utils.ts","../../../../packages/ai-sdk/src/lib/ai/chat.service.ts","../../../../packages/ai-sdk/src/lib/ai/voice-recognition.service.ts","../../../../packages/ai-sdk/src/lib/ai/message-input/message-input.component.ts","../../../../packages/ai-sdk/src/lib/ai/message-input/message-input.component.html","../../../../packages/ai-sdk/src/lib/core/pipes/bytes.pipe.ts","../../../../packages/ai-sdk/src/lib/core/pipes/color-level.pipe.ts","../../../../packages/ai-sdk/src/lib/core/pipes/date-ago.pipe.ts","../../../../packages/ai-sdk/src/lib/core/pipes/pipes.module.ts","../../../../packages/ai-sdk/src/lib/core/utils/i18n.ts","../../../../packages/ai-sdk/src/lib/core/utils/mimetype.ts","../../../../packages/ai-sdk/src/lib/core/utils/index.ts","../../../../packages/ai-sdk/src/lib/ai/preview/preview.component.ts","../../../../packages/ai-sdk/src/lib/ai/preview/preview.component.html","../../../../packages/ai-sdk/src/lib/ai/context-overlay/context-overlay.component.ts","../../../../packages/ai-sdk/src/lib/ai/context-overlay/context-overlay.component.html","../../../../packages/ai-sdk/src/lib/ai/message-context/message-context.component.ts","../../../../packages/ai-sdk/src/lib/ai/message-context/message-context.component.html","../../../../packages/ai-sdk/src/lib/ai/thread/thread.component.ts","../../../../packages/ai-sdk/src/lib/ai/thread/thread.component.html","../../../../packages/ai-sdk/src/lib/ai/transloco.module.ts","../../../../packages/ai-sdk/src/lib/ai/message-suggestions/message-suggestions.component.ts","../../../../packages/ai-sdk/src/lib/ai/message-suggestions/message-suggestions.component.html","../../../../packages/ai-sdk/src/lib/ai/chat-dialog/chat-dialog.component.ts","../../../../packages/ai-sdk/src/lib/ai/chat-dialog/chat-dialog.component.html","../../../../packages/ai-sdk/src/lib/ai/chat-box/chat.component.ts","../../../../packages/ai-sdk/src/lib/ai/chat-box/chat.component.html","../../../../packages/ai-sdk/src/lib/ai/ai.module.ts","../../../../packages/ai-sdk/src/lib/core/markdown.provider.ts","../../../../packages/ai-sdk/src/lib/ai/providers.ts","../../../../packages/ai-sdk/src/hahnpro-ai-sdk.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\nexport interface AuthAdapter {\r\n init(): Promise<void>;\r\n isAuthenticated(): Promise<boolean>;\r\n getAccessToken(): Promise<string>;\r\n loginRedirect(options?: { redirectUri?: string }): Promise<void>;\r\n loginPopup?(): Promise<void>;\r\n logout?(): Promise<void>;\r\n baseUrl?: string;\r\n}\r\n\r\nexport const AUTH_ADAPTER = new InjectionToken<AuthAdapter>('AUTH_ADAPTER');\r\n","// src/app/shared/icon/icon.component.ts\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ai-icon',\r\n templateUrl: './icon.component.html',\r\n styles: [\r\n `\r\n .icon {\r\n fill: currentColor;\r\n vertical-align: middle;\r\n }\r\n `,\r\n ],\r\n})\r\nexport class IconComponent {\r\n @Input() name!: string;\r\n @Input() size: number | string = 24;\r\n @Input() label?: string;\r\n}\r\n","<svg style=\"display: none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <symbol id=\"add\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M11.883 3.007 12 3a1 1 0 0 1 .993.883L13 4v7h7a1 1 0 0 1 .993.883L21 12a1 1 0 0 1-.883.993L20 13h-7v7a1 1 0 0 1-.883.993L12 21a1 1 0 0 1-.993-.883L11 20v-7H4a1 1 0 0 1-.993-.883L3 12a1 1 0 0 1 .883-.993L4 11h7V4a1 1 0 0 1 .883-.993L12 3z\"\r\n />\r\n </symbol>\r\n <symbol id=\"add_circle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7\"\r\n />\r\n </symbol>\r\n <symbol id=\"add_square\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 7a.75.75 0 0 1 .75.75v3.5h3.5a.75.75 0 0 1 0 1.5h-3.5v3.5a.75.75 0 0 1-1.5 0v-3.5h-3.5a.75.75 0 0 1 0-1.5h3.5v-3.5A.75.75 0 0 1 12 7m-9-.75A3.25 3.25 0 0 1 6.25 3h11.5A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75zM6.25 4.5A1.75 1.75 0 0 0 4.5 6.25v11.5c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75V6.25a1.75 1.75 0 0 0-1.75-1.75z\"\r\n />\r\n </symbol>\r\n <symbol id=\"app_connectivity\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M20 14h8a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v8a2 2 0 0 0 2 2h2v4a2 2 0 0 0 2 2h10a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6H8v-4h4a2 2 0 0 0 2-2v-8a2 2 0 0 0-2-2H9V6h9v6a2 2 0 0 0 2 2m0 14v-4h8v4Zm8-8v2h-8v-2ZM4 20v-4h8v4Zm8-6H4v-2h8Zm8-2V8h8v4Zm8-8v2h-8V4Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"apps\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 17a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 10a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7-7a2 2 0 1 1 0 4 2 2 0 0 1 0-4m7 0a2 2 0 1 1 0 4 2 2 0 0 1 0-4M5 3a2 2 0 1 1 0 4 2 2 0 0 1 0-4\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_clockwise\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 4.5a7.5 7.5 0 1 0 7.419 6.392c-.067-.454.265-.892.724-.892.37 0 .696.256.752.623Q21 11.297 21 12a9 9 0 1 1-3-6.708V4.25a.75.75 0 0 1 1.5 0v3a.75.75 0 0 1-.75.75h-3a.75.75 0 0 1 0-1.5h1.35a7.47 7.47 0 0 0-5.1-2\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_down\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M19.79 13.267a.75.75 0 0 0-1.086-1.034l-5.954 6.251V3.75a.75.75 0 1 0-1.5 0v14.734l-5.955-6.251a.75.75 0 1 0-1.086 1.034l7.067 7.42c.16.168.366.268.58.3a.8.8 0 0 0 .29-.001 1 1 0 0 0 .578-.3z\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_left\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10.733 19.79a.75.75 0 0 0 1.034-1.086L5.516 12.75H20.25a.75.75 0 0 0 0-1.5H5.516l6.251-5.955a.75.75 0 0 0-1.034-1.086l-7.42 7.067a1 1 0 0 0-.3.58.8.8 0 0 0 .001.289 1 1 0 0 0 .3.579z\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_maximize\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m12.496 3.002 7.556.001.12.014.088.02.104.034.09.04.063.036.063.042.064.05.063.058.094.11.072.11.053.114.036.105.015.065.01.053.01.148v7.504a1 1 0 0 1-1.993.117l-.007-.117v-5.09L6.412 19H11.5a1 1 0 0 1 .993.884L12.5 20a1 1 0 0 1-.884.994L11.5 21H3.939l-.096-.01-.077-.015-.077-.022-.07-.026-.09-.042-.089-.053-.091-.07.032.027a1 1 0 0 1-.166-.166l-.051-.07-.04-.064-.032-.064-.034-.082-.025-.08-.024-.111-.007-.061-.004-.09v-7.503a1 1 0 0 1 1.993-.117l.007.117v5.088L17.582 5.002h-5.086a1 1 0 0 1-.994-.883l-.006-.117a1 1 0 0 1 1-1\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_minimize\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10.498 12.505a1 1 0 0 1 .993.884l.007.116v7.504a1 1 0 0 1-1.994.117l-.006-.117v-5.093l-5.791 5.792a1 1 0 0 1-1.32.083l-.095-.083a1 1 0 0 1-.083-1.32l.083-.095 5.788-5.788H2.996a1 1 0 0 1-.117-1.993l.117-.007zm3-10.505a1 1 0 0 1 .994.883l.007.117v5.087l5.793-5.794a1 1 0 0 1 1.32-.083l.095.083a1 1 0 0 1 .083 1.32l-.083.095-5.797 5.795H21a1 1 0 0 1 .117 1.994l-.117.007h-7.5a1 1 0 0 1-.994-.883l-.006-.117V3a1 1 0 0 1 1-1\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_move\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M15.28 6.03a.75.75 0 0 1-1.06 0l-1.47-1.47v3.69a.75.75 0 0 1-1.5 0V4.56L9.78 6.03a.75.75 0 0 1-1.06-1.06l2.75-2.75a.75.75 0 0 1 1.06 0l2.75 2.75a.75.75 0 0 1 0 1.06m-9.25 8.19a.75.75 0 1 1-1.06 1.06l-2.75-2.75a.75.75 0 0 1 0-1.06l2.75-2.75a.75.75 0 0 1 1.06 1.06l-1.47 1.47h3.69a.75.75 0 0 1 0 1.5H4.56zm11.94 1.06a.75.75 0 0 1 0-1.06l1.47-1.47h-3.69a.75.75 0 0 1 0-1.5h3.69l-1.47-1.47a.75.75 0 0 1 1.06-1.06l2.75 2.75a.75.75 0 0 1 0 1.06l-2.75 2.75a.75.75 0 0 1-1.06 0m-2.69 2.69a.75.75 0 0 0-1.06 0l-1.47 1.47v-3.69a.75.75 0 0 0-1.5 0v3.69l-1.47-1.47a.75.75 0 0 0-1.06 1.06l2.75 2.75a.75.75 0 0 0 1.06 0l2.75-2.75a.75.75 0 0 0 0-1.06\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_right\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.267 4.209a.75.75 0 0 0-1.034 1.086l6.251 5.955H3.75a.75.75 0 0 0 0 1.5h14.734l-6.251 5.954a.75.75 0 0 0 1.034 1.087l7.42-7.067a1 1 0 0 0 .3-.58.8.8 0 0 0-.001-.29 1 1 0 0 0-.3-.578z\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_sort\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m17.25 4-.1.007a.75.75 0 0 0-.65.743v12.692l-3.22-3.218-.084-.072a.75.75 0 0 0-.976 1.134l4.504 4.5.084.072a.75.75 0 0 0 .976-.073l4.497-4.5.072-.084a.75.75 0 0 0-.073-.977l-.084-.072a.75.75 0 0 0-.977.073L18 17.446V4.75l-.006-.102A.75.75 0 0 0 17.251 4m-11.036.22L1.72 8.715l-.073.084a.75.75 0 0 0 .073.976l.084.073a.75.75 0 0 0 .976-.073l3.217-3.218v12.698l.008.102a.75.75 0 0 0 .743.648l.101-.007a.75.75 0 0 0 .649-.743L7.497 6.559l3.223 3.217.084.072a.75.75 0 0 0 .975-1.134L7.275 4.22l-.085-.072a.75.75 0 0 0-.976.073\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_sort_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m6.288 4.293-3.995 4-.084.095a1 1 0 0 0 .084 1.32l.095.083a1 1 0 0 0 1.32-.084L6 7.41V19l.007.117a1 1 0 0 0 .993.884l.117-.007A1 1 0 0 0 8 19V7.417l2.293 2.29.095.084a1 1 0 0 0 1.319-1.499l-4.006-4-.094-.083a1 1 0 0 0-1.32.084M17 4.003l-.117.007a1 1 0 0 0-.883.993v11.58l-2.293-2.29-.095-.084a1 1 0 0 0-1.319 1.498l4.004 4 .094.084a1 1 0 0 0 1.32-.084l3.996-4 .084-.095a1 1 0 0 0-.084-1.32l-.095-.083a1 1 0 0 0-1.32.084L18 16.587V5.003l-.007-.116A1 1 0 0 0 17 4.003\"\r\n />\r\n </symbol>\r\n <symbol id=\"arrow_up\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.209 10.733a.75.75 0 0 0 1.086 1.034l5.954-6.251V20.25a.75.75 0 0 0 1.5 0V5.516l5.955 6.251a.75.75 0 0 0 1.087-1.034l-7.067-7.42a1 1 0 0 0-.58-.3.8.8 0 0 0-.29.001 1 1 0 0 0-.578.3z\"\r\n />\r\n </symbol>\r\n <symbol id=\"ascending\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75m-9.481.487a.75.75 0 0 0-1.401-.01l-3.317 8.5a.75.75 0 1 0 1.398.546l.79-2.023h3.555l.754 2.013a.75.75 0 0 0 1.405-.526zM5.823 8l1.23-3.15L8.232 8zM4 13.75a.75.75 0 0 1 .75-.75H9.5a.75.75 0 0 1 .634 1.151L6.114 20.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.633-1.151l4.02-6.35H4.75a.75.75 0 0 1-.75-.75\"\r\n />\r\n </symbol>\r\n <symbol id=\"asset\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M15.78 3.737a2.25 2.25 0 0 0-1.56 0L9.913 5.33a.25.25 0 0 0-.163.234v2.793a4.8 4.8 0 0 0-1.5 0V5.563a1.75 1.75 0 0 1 1.143-1.641L13.7 2.33a3.75 3.75 0 0 1 2.6 0l4.307 1.592a1.75 1.75 0 0 1 1.143 1.641v10.67a1.75 1.75 0 0 1-1.143 1.642l-4.018 1.484c.105-.292.161-.604.161-.927v-.731l3.337-1.233a.25.25 0 0 0 .163-.235V5.563a.25.25 0 0 0-.163-.234zm-4.01 3.93a.75.75 0 1 1 .49-1.418l2.658.92a.25.25 0 0 0 .163 0l2.65-.92a.75.75 0 1 1 .492 1.418l-2.65.919a1.75 1.75 0 0 1-1.145 0zm-6 7a.75.75 0 0 1 .49-1.418l2.74.948 2.732-.947a.75.75 0 1 1 .49 1.417l-2.472.857v2.7a.75.75 0 0 1-1.5 0v-2.7zM10.3 9.53a3.75 3.75 0 0 0-2.6 0l-4.307 1.592a1.75 1.75 0 0 0-1.143 1.641v5.67a1.75 1.75 0 0 0 1.143 1.642L7.7 21.666a3.75 3.75 0 0 0 2.6 0l4.307-1.592a1.75 1.75 0 0 0 1.143-1.642v-5.67a1.75 1.75 0 0 0-1.143-1.641zm-2.08 1.407a2.25 2.25 0 0 1 1.56 0l4.307 1.592a.25.25 0 0 1 .163.234v5.67a.25.25 0 0 1-.163.235L9.78 20.259a2.25 2.25 0 0 1-1.56 0l-4.307-1.592a.25.25 0 0 1-.163-.235v-5.67a.25.25 0 0 1 .163-.234z\"\r\n />\r\n </symbol>\r\n <symbol id=\"assistant_direction\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m14.298 2.985 6.717 6.718a3.25 3.25 0 0 1 0 4.596l-6.717 6.717a3.25 3.25 0 0 1-4.596 0L2.984 14.3a3.25 3.25 0 0 1 0-4.596l6.718-6.718a3.25 3.25 0 0 1 4.596 0m-3.536 1.06-6.717 6.718a1.75 1.75 0 0 0 0 2.475l6.717 6.718a1.75 1.75 0 0 0 2.475 0l6.718-6.718a1.75 1.75 0 0 0 0-2.475l-6.718-6.717a1.75 1.75 0 0 0-2.475 0m1.695 3.26.073-.084a.75.75 0 0 1 .977-.073l.084.073 2 2a.75.75 0 0 1 .072.977l-.072.084-2 2a.75.75 0 0 1-1.133-.977l.072-.084.72-.72h-1.5a1.25 1.25 0 0 0-1.244 1.122l-.006.128V15a.75.75 0 0 1-1.493.101l-.007-.1v-3.25a2.75 2.75 0 0 1 2.582-2.745L11.75 9h1.498l-.718-.72a.75.75 0 0 1-.072-.976l.072-.084z\"\r\n />\r\n </symbol>\r\n <symbol id=\"bar_vertical\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M18.251 3a2.25 2.25 0 0 0-2.249 2.25v13.5a2.249 2.249 0 1 0 4.498 0V5.25A2.25 2.25 0 0 0 18.251 3m-6.5 4a2.25 2.25 0 0 0-2.249 2.25v9.5a2.249 2.249 0 1 0 4.498 0v-9.5A2.25 2.25 0 0 0 11.751 7m-6.5 4a2.25 2.25 0 0 0-2.25 2.25v5.5a2.25 2.25 0 1 0 4.5 0v-5.5A2.25 2.25 0 0 0 5.25 11\"\r\n />\r\n </symbol>\r\n <symbol id=\"book\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M7 6a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v2a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1zm1.5 1.5h7v-1h-7zM4 4.5A2.5 2.5 0 0 1 6.5 2H18a2.5 2.5 0 0 1 2.5 2.5v14.25a.75.75 0 0 1-.75.75H5.5a1 1 0 0 0 1 1h13.25a.75.75 0 0 1 0 1.5H6.5A2.5 2.5 0 0 1 4 19.5zM5.5 18H19V4.5a1 1 0 0 0-1-1H6.5a1 1 0 0 0-1 1z\"\r\n />\r\n </symbol>\r\n <symbol id=\"bookmark\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6.19 21.855a.75.75 0 0 1-1.187-.61V6.25A3.25 3.25 0 0 1 8.253 3h7.498a3.25 3.25 0 0 1 3.25 3.25v14.996a.75.75 0 0 1-1.188.609l-5.81-4.181zM17.502 6.25a1.75 1.75 0 0 0-1.75-1.75H8.253a1.75 1.75 0 0 0-1.75 1.75v13.532l5.061-3.641a.75.75 0 0 1 .876 0l5.061 3.641z\"\r\n />\r\n </symbol>\r\n <symbol id=\"box\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10.591 2.513a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.175v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.827V7.176a1.75 1.75 0 0 1 1.093-1.622zm2.254 1.39a2.25 2.25 0 0 0-1.69 0L9.24 4.68l7.527 2.927 2.669-1.03zm1.846 4.505L7.215 5.5 4.59 6.564l7.411 2.882zM3.5 16.828a.25.25 0 0 0 .156.231l7.499 3.04q.047.02.095.036v-9.371L3.5 7.75zm9.345 3.271 7.499-3.04a.25.25 0 0 0 .156-.232V7.774l-7.75 2.992v9.37z\"\r\n />\r\n </symbol>\r\n <symbol id=\"braces_variable\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3.5 5.75A2.75 2.75 0 0 1 6.25 3a.75.75 0 0 1 0 1.5C5.56 4.5 5 5.06 5 5.75v4.309c0 .744-.3 1.437-.802 1.941A2.75 2.75 0 0 1 5 13.941v4.309c0 .69.56 1.25 1.25 1.25a.75.75 0 0 1 0 1.5 2.75 2.75 0 0 1-2.75-2.75v-4.308a1.25 1.25 0 0 0-.855-1.186l-.132-.045a.75.75 0 0 1 0-1.422l.132-.045c.51-.17.855-.647.855-1.185zm17 0A2.75 2.75 0 0 0 17.75 3a.75.75 0 0 0 0 1.5c.69 0 1.25.56 1.25 1.25v4.309c0 .744.3 1.437.802 1.941A2.75 2.75 0 0 0 19 13.941v4.309c0 .69-.56 1.25-1.25 1.25a.75.75 0 0 0 0 1.5 2.75 2.75 0 0 0 2.75-2.75v-4.308c0-.539.344-1.016.855-1.186l.132-.045a.75.75 0 0 0 0-1.422l-.132-.045a1.25 1.25 0 0 1-.855-1.185zM9.092 7.04a.75.75 0 1 0-1.184.92L11.05 12l-3.142 4.04a.75.75 0 0 0 1.184.92L12 13.223l2.908 3.739a.75.75 0 0 0 1.184-.921L12.95 12l3.142-4.04a.75.75 0 0 0-1.184-.92L12 10.778z\"\r\n />\r\n </symbol>\r\n <symbol id=\"bullet_list\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3.25 17.5a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493L21.25 13H6.75a.75.75 0 0 1-.102-1.493zh14.5zm-3.5-7a1.25 1.25 0 1 1 0 2.499 1.25 1.25 0 0 1 0-2.499m3.5.5h14.5a.75.75 0 0 1 .102 1.493l-.102.007H6.75a.75.75 0 0 1-.102-1.493zh14.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"burger_menu\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3 17h18a1 1 0 0 1 .117 1.993L21 19H3a1 1 0 0 1-.117-1.993zh18zm0-6 18-.002a1 1 0 0 1 .117 1.993l-.117.007L3 13a1 1 0 0 1-.117-1.993zl18-.002zm0-6h18a1 1 0 0 1 .117 1.993L21 7H3a1 1 0 0 1-.117-1.993zh18z\"\r\n />\r\n </symbol>\r\n <symbol id=\"calatena\" viewBox=\"0 0 121 121\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M60.5.5C27.4.5.5 27.4.5 60.5s26.9 60 60 60 60-26.9 60-60-26.9-60-60-60m0 118.9C28 119.4 1.6 93 1.6 60.5S28 1.6 60.5 1.6s58.9 26.4 58.9 58.9-26.4 58.9-58.9 58.9\"\r\n class=\"st0\"\r\n />\r\n <path\r\n d=\"m79 58.8 11.1-11.1c4.6-4.6 4.6-12.1 0-16.7S78 26.4 73.4 31l-.1.2L60.5 44 47.7 31.2l-.2-.2-.2-.1-.1-.1c-4.6-4.6-12-4.6-16.6 0s-4.6 12 0 16.6l13.2 13.2-1.8 1.9v.1L31 73.5l-.1.1-.1.2-.1.1c-4.4 4.8-4.1 12.2.6 16.6 4.5 4.2 11.5 4.2 16 0l13.2-13.2 13 13c4.6 4.6 12.1 4.6 16.7 0s4.6-12.1 0-16.7l-.2-.1-12.8-12.8z\"\r\n class=\"st1\"\r\n />\r\n </symbol>\r\n <symbol id=\"calendar\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm1.75 5.5h-15v9.25c0 .966.784 1.75 1.75 1.75h11.5a1.75 1.75 0 0 0 1.75-1.75zm-11.75 6a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m-4.25-4a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m4.25 0a1.25 1.25 0 1 1 0 2.5 1.25 1.25 0 0 1 0-2.5m1.5-6H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75\"\r\n />\r\n </symbol>\r\n <symbol id=\"calendar_clock\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M17.75 3A3.25 3.25 0 0 1 21 6.25v5.772a6.5 6.5 0 0 0-1.5-.709V8.5h-15v9.25c0 .966.784 1.75 1.75 1.75h5.063c.173.534.412 1.037.709 1.5H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm0 1.5H6.25A1.75 1.75 0 0 0 4.5 6.25V7h15v-.75a1.75 1.75 0 0 0-1.75-1.75m5.25 13a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0M17.5 14a.5.5 0 0 1 .5.5V17h2a.5.5 0 0 1 0 1h-2.5a.5.5 0 0 1-.5-.5v-3a.5.5 0 0 1 .5-.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"camera\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zm0 1.5h-3.803a.75.75 0 0 0-.574.268l-.065.09-1.093 1.78a.75.75 0 0 1-.639.358h-2.5A1.75 1.75 0 0 0 3.5 8.25v9.5c0 .966.784 1.75 1.75 1.75h13.5a1.75 1.75 0 0 0 1.75-1.75v-9.5a1.75 1.75 0 0 0-1.75-1.75h-2.5a.75.75 0 0 1-.647-.37l-1.032-1.757a.75.75 0 0 0-.646-.37M12 8a4.5 4.5 0 1 1 0 9 4.5 4.5 0 0 1 0-9m0 1.5a3 3 0 1 0 0 6 3 3 0 0 0 0-6\"\r\n />\r\n </symbol>\r\n <symbol id=\"camera_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.925 2.504a2.25 2.25 0 0 1 1.94 1.11l.814 1.387h2.071A3.25 3.25 0 0 1 22 8.25v9.5A3.25 3.25 0 0 1 18.75 21H5.25A3.25 3.25 0 0 1 2 17.75v-9.5A3.25 3.25 0 0 1 5.25 5h2.08l.875-1.424a2.25 2.25 0 0 1 1.917-1.073zM12 8a4.5 4.5 0 1 0 0 9 4.5 4.5 0 0 0 0-9m0 1.5a3 3 0 1 1 0 6 3 3 0 0 1 0-6\"\r\n />\r\n </symbol>\r\n <symbol id=\"caret_down\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.161 10.073C4.454 9.265 5.028 8 6.102 8h11.796c1.074 0 1.648 1.265.941 2.073l-5.522 6.31a1.75 1.75 0 0 1-2.634 0zM6.653 9.5l5.159 5.896a.25.25 0 0 0 .376 0l5.16-5.896z\"\r\n />\r\n </symbol>\r\n <symbol id=\"caret_up\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.161 14.907c-.707.809-.133 2.073.941 2.073h11.796c1.074 0 1.648-1.264.941-2.073l-5.522-6.31a1.75 1.75 0 0 0-2.634 0zm1.492.573 5.159-5.896a.25.25 0 0 1 .376 0l5.16 5.897z\"\r\n />\r\n </symbol>\r\n <symbol id=\"chart_average\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M23 24c-3.6 0-5.03-4.176-6.413-8.214C15.277 11.958 13.92 8 11 8a3.44 3.44 0 0 0-3.053 2.322L6.05 9.684C6.101 9.534 7.321 6 11 6c4.35 0 6.012 4.855 7.48 9.138C19.689 18.667 20.83 22 23 22a3.44 3.44 0 0 0 3.053-2.321l1.896.637C27.899 20.466 26.679 24 23 24\"\r\n />\r\n <path fill=\"currentColor\" d=\"M4 28V17h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\" />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8 15h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\"\r\n />\r\n </symbol>\r\n <symbol id=\"chart_correlation\" viewBox=\"0 0 32 32\">\r\n <path fill=\"currentColor\" d=\"M30 30H4a2 2 0 0 1-2-2V2h2v26h26Z\" />\r\n <circle cx=\"9\" cy=\"6\" r=\"3\" fill=\"currentColor\" />\r\n <circle cx=\"9\" cy=\"22\" r=\"3\" fill=\"currentColor\" />\r\n <circle cx=\"18\" cy=\"14\" r=\"3\" fill=\"currentColor\" />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M9 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\"\r\n />\r\n <circle cx=\"27\" cy=\"6\" r=\"3\" fill=\"currentColor\" />\r\n <circle cx=\"27\" cy=\"22\" r=\"3\" fill=\"currentColor\" />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M27 17a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m-9 13a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1m0-14a3 3 0 1 1 3-3 3.003 3.003 0 0 1-3 3m0-4a1 1 0 1 0 1 1 1 1 0 0 0-1-1\"\r\n />\r\n </symbol>\r\n <symbol id=\"chart_line\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m4.67 28 6.39-12 7.3 6.49a2 2 0 0 0 1.7.47 2 2 0 0 0 1.42-1.07L27 10.9l-1.82-.9-5.49 11-7.3-6.49a2 2 0 0 0-1.68-.51 2 2 0 0 0-1.42 1L4 25V2H2v26a2 2 0 0 0 2 2h26v-2Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"chart_line_smooth\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13 15c1.485 0 2.554 1.497 3.686 3.081C17.998 19.918 19.486 22 22 22c5.67 0 7.78-10.79 8-12l-1.968-.358C27.55 12.282 25.394 20 22 20c-1.485 0-2.554-1.497-3.686-3.081C17.002 15.082 15.514 13 13 13c-4.186 0-7.445 7.404-9 11.762V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H5.044c1.51-5.143 4.92-13 7.956-13\"\r\n />\r\n </symbol>\r\n <symbol id=\"chart_maximum\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8 6h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m27.989 28-.027-.163C26.51 19.074 24.066 9.089 18 8.089V6h-2v2.085c-6.084.978-8.533 10.978-9.986 19.752L5.987 28H4V8h2V6H4V2H2v26a2 2 0 0 0 2 2h26v-2ZM8.015 28c2.024-12.108 4.96-18 8.973-18s6.949 5.892 8.972 18Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"chart_minimum\" viewBox=\"0 0 32 32\">\r\n <path fill=\"currentColor\" d=\"M4 28v-2h2v-2H4V2H2v26a2 2 0 0 0 2 2h26v-2Z\" />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8 24h2v2H8zm4 0h2v2h-2zm8 0h2v2h-2zm4 0h2v2h-2zm4 0h2v2h-2z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M27.946 4.328 25.973 4C23.949 16.108 21.013 22 17 22s-6.949-5.892-8.973-18l-1.973.328C7.51 13.057 9.964 22.93 16 23.913V26h2v-2.087c6.037-.983 8.49-10.856 9.946-19.585\"\r\n />\r\n </symbol>\r\n <symbol id=\"chart_stepper\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M14 22v-8h8V6h8V4H20v8h-8v8H4V2H2v26a2.003 2.003 0 0 0 2 2h26v-2H4v-6Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"chart_transformation\" viewBox=\"0 0 32 32\">\r\n <path\r\n d=\"M10.356 23.058C12.77 24.592 15.62 26 17.95 26a3.87 3.87 0 0 0 2.856-1.084c2.286-2.29.14-6.398-1.938-10.372l5.801-5.801a44 44 0 0 1 3.012 2.124L29 9.349a45 45 0 0 0-2.872-2.064L30 3.413 28.586 2l-4.207 4.206c-3.316-1.91-7.108-3.246-9.228-1.122-2.04 2.043-.552 5.532 1.268 9.083l-6.307 6.306a44 44 0 0 1-2.8-2.1L6 19.884a48 48 0 0 0 2.665 2.035L4 26.585V2H2v26a2 2 0 0 0 2 2h26v-2H5.413Zm6.209-16.557c1.135-1.138 3.693-.286 6.337 1.183l-4.995 4.994c-1.313-2.619-2.35-5.167-1.342-6.177m.821 9.526c1.58 3.032 3.182 6.296 2.007 7.473-1.312 1.314-4.522-.026-7.572-1.908Z\"\r\n />\r\n <path\r\n d=\"M0 0h32v32H0z\"\r\n data-name=\"&lt;Transparent Rectangle&gt;\"\r\n style=\"fill: none\"\r\n />\r\n </symbol>\r\n <symbol id=\"chat_add\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12.75 7.75a.75.75 0 0 0-1.5 0v3.5h-3.5a.75.75 0 0 0 0 1.5h3.5v3.5a.75.75 0 0 0 1.5 0v-3.5h3.5a.75.75 0 0 0 0-1.5h-3.5zM22 12c0-5.523-4.477-10-10-10S2 6.477 2 12a9.96 9.96 0 0 0 1.115 4.592l-1.068 3.823a1.25 1.25 0 0 0 1.54 1.54l3.826-1.067A9.96 9.96 0 0 0 12 22c5.523 0 10-4.477 10-10M3.5 12a8.5 8.5 0 1 1 4.367 7.43l-.27-.15-3.986 1.111 1.113-3.984-.151-.27A8.46 8.46 0 0 1 3.5 12\"\r\n />\r\n </symbol>\r\n <symbol id=\"chat_sparkle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM12 2c.957 0 1.883.134 2.759.385a1.8 1.8 0 0 1-.369.174l-1.34.44a1.65 1.65 0 0 0-.721.507A8.5 8.5 0 0 0 3.5 12c0 1.47.373 2.883 1.073 4.137l.15.27-1.112 3.984 3.987-1.112.27.15a8.502 8.502 0 0 0 12.507-5.965q.136.202.335.345a1.29 1.29 0 0 0 1.09.195C20.87 18.567 16.836 22 12 22a9.96 9.96 0 0 1-4.587-1.112l-3.826 1.067a1.25 1.25 0 0 1-1.54-1.54l1.068-3.823A9.96 9.96 0 0 1 2 12C2 6.477 6.477 2 12 2\"\r\n />\r\n </symbol>\r\n <symbol id=\"checkmark\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.53 12.97a.75.75 0 0 0-1.06 1.06l4.5 4.5a.75.75 0 0 0 1.06 0l11-11a.75.75 0 0 0-1.06-1.06L8.5 16.94z\"\r\n />\r\n </symbol>\r\n <symbol id=\"checkmark_circle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m-1.25 9.94 4.47-4.47a.75.75 0 0 1 1.133.976l-.073.084-5 5a.75.75 0 0 1-.976.073l-.084-.073-2.5-2.5a.75.75 0 0 1 .976-1.133l.084.073zl4.47-4.47z\"\r\n />\r\n </symbol>\r\n <symbol id=\"checkmark_circle_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.22 6.97-4.47 4.47-1.97-1.97a.75.75 0 0 0-1.06 1.06l2.5 2.5a.75.75 0 0 0 1.06 0l5-5a.75.75 0 1 0-1.06-1.06\"\r\n />\r\n </symbol>\r\n <symbol id=\"checkmark_list\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6.78 4.78a.75.75 0 0 0-1.06-1.06L3.75 5.69l-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm14.47 13.227H9.75l-.102.007a.75.75 0 0 0 .102 1.493h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.507H9.75l-.102.007A.75.75 0 0 0 9.75 13h11.5l.102-.007a.75.75 0 0 0-.102-1.493m0-6.5H9.75l-.102.007A.75.75 0 0 0 9.75 6.5h11.5l.102-.007A.75.75 0 0 0 21.25 5M6.78 17.78a.75.75 0 1 0-1.06-1.06l-1.97 1.97-.47-.47a.75.75 0 0 0-1.06 1.06l1 1a.75.75 0 0 0 1.06 0zm0-7.56a.75.75 0 0 1 0 1.06l-2.5 2.5a.75.75 0 0 1-1.06 0l-1-1a.75.75 0 1 1 1.06-1.06l.47.47 1.97-1.97a.75.75 0 0 1 1.06 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"checkmark_starburst\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M9.836 2.034q.168.058.329.136l1.283.632a1.25 1.25 0 0 0 1.104 0l1.283-.632a2.75 2.75 0 0 1 3.682 1.253l.073.162.063.167.46 1.353c.125.368.414.656.781.781l1.354.46a2.75 2.75 0 0 1 1.581 3.819l-.631 1.283a1.25 1.25 0 0 0 0 1.104l.631 1.283a2.75 2.75 0 0 1-1.581 3.818l-1.354.46a1.25 1.25 0 0 0-.78.781l-.461 1.354a2.75 2.75 0 0 1-3.818 1.581l-1.283-.631a1.25 1.25 0 0 0-1.104 0l-1.283.631a2.75 2.75 0 0 1-3.818-1.581l-.46-1.354a1.25 1.25 0 0 0-.782-.78l-1.353-.461a2.75 2.75 0 0 1-1.582-3.818l.632-1.283a1.25 1.25 0 0 0 0-1.104l-.632-1.283a2.75 2.75 0 0 1 1.582-3.818l1.353-.46a1.25 1.25 0 0 0 .781-.782l.46-1.353a2.75 2.75 0 0 1 3.49-1.718m-2.07 2.2-.46 1.354a2.75 2.75 0 0 1-1.718 1.718l-1.353.46a1.25 1.25 0 0 0-.719 1.736l.632 1.283a2.75 2.75 0 0 1 0 2.43l-.632 1.282a1.25 1.25 0 0 0 .719 1.736l1.353.46a2.75 2.75 0 0 1 1.718 1.718l.46 1.354a1.248 1.248 0 0 0 1.736.719l1.283-.632a2.75 2.75 0 0 1 2.43 0l1.282.632q.074.035.15.061a1.25 1.25 0 0 0 1.586-.78l.46-1.354a2.75 2.75 0 0 1 1.718-1.718l1.354-.46q.075-.026.15-.062a1.25 1.25 0 0 0 .569-1.674l-.632-1.283a2.75 2.75 0 0 1 0-2.429l.632-1.283a1.25 1.25 0 0 0-.719-1.736l-1.354-.46a2.75 2.75 0 0 1-1.718-1.718l-.46-1.353-.029-.076-.033-.074-.062-.111a1.25 1.25 0 0 0-1.612-.458l-1.283.632a2.75 2.75 0 0 1-2.429 0l-1.283-.632a1.25 1.25 0 0 0-1.735.719M10.05 14.39l5.42-5.42a.75.75 0 0 1 1.133.977l-.073.084-6 6a.75.75 0 0 1-1.031.028l-.075-.078-2.5-3a.75.75 0 0 1 1.075-1.04l.077.08zl5.42-5.42z\"\r\n />\r\n </symbol>\r\n <symbol id=\"chevron_down\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.22 8.47a.75.75 0 0 1 1.06 0L12 15.19l6.72-6.72a.75.75 0 1 1 1.06 1.06l-7.25 7.25a.75.75 0 0 1-1.06 0L4.22 9.53a.75.75 0 0 1 0-1.06\"\r\n />\r\n </symbol>\r\n <symbol id=\"chevron_left\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M15.53 4.22a.75.75 0 0 1 0 1.06L8.81 12l6.72 6.72a.75.75 0 1 1-1.06 1.06l-7.25-7.25a.75.75 0 0 1 0-1.06l7.25-7.25a.75.75 0 0 1 1.06 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"chevron_left_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M15.707 4.293a1 1 0 0 1 0 1.414L9.414 12l6.293 6.293a1 1 0 0 1-1.414 1.414l-7-7a1 1 0 0 1 0-1.414l7-7a1 1 0 0 1 1.414 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"chevron_right\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8.47 4.22a.75.75 0 0 0 0 1.06L15.19 12l-6.72 6.72a.75.75 0 1 0 1.06 1.06l7.25-7.25a.75.75 0 0 0 0-1.06L9.53 4.22a.75.75 0 0 0-1.06 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"chevron_right_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8.293 4.293a1 1 0 0 0 0 1.414L14.586 12l-6.293 6.293a1 1 0 1 0 1.414 1.414l7-7a1 1 0 0 0 0-1.414l-7-7a1 1 0 0 0-1.414 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"chevron_up\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.293 15.707a1 1 0 0 0 1.414 0L12 9.414l6.293 6.293a1 1 0 0 0 1.414-1.414l-7-7a1 1 0 0 0-1.414 0l-7 7a1 1 0 0 0 0 1.414\"\r\n />\r\n </symbol>\r\n <symbol id=\"circle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 3.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17M2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12\"\r\n />\r\n </symbol>\r\n <symbol id=\"clipboard\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8.379 5.5H6.25a.75.75 0 0 0-.75.75v13.5c0 .414.336.75.75.75h11.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75h-2.129c-.404.603-1.09 1-1.871 1h-3.5c-.78 0-1.467-.397-1.871-1M15.986 4h1.764A2.25 2.25 0 0 1 20 6.25v13.5A2.25 2.25 0 0 1 17.75 22H6.25A2.25 2.25 0 0 1 4 19.75V6.25A2.25 2.25 0 0 1 6.25 4h1.764a2.25 2.25 0 0 1 2.236-2h3.5a2.25 2.25 0 0 1 2.236 2M9.5 4.25c0 .414.336.75.75.75h3.5a.75.75 0 0 0 0-1.5h-3.5a.75.75 0 0 0-.75.75\"\r\n />\r\n </symbol>\r\n <symbol id=\"clock\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3.5 12a8.5 8.5 0 1 1 17 0 8.5 8.5 0 0 1-17 0M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m-.007 4.648a.75.75 0 0 0-1.493.102v6l.007.102a.75.75 0 0 0 .743.648h4l.102-.007A.75.75 0 0 0 15.25 12H12V6.75z\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_add\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 0-11 0 5.5 5.5 0 0 0 11 0m-5 .5.001 2.503a.5.5 0 1 1-1 0V17h-2.505a.5.5 0 0 1 0-1H16v-2.5a.5.5 0 1 1 1 0V16h2.497a.5.5 0 0 1 0 1z\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_archive\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h5.177a2 2 0 0 0 .323.232V18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0A4.5 4.5 0 0 1 21.744 12h-1.645a3 3 0 0 0-2.599-1.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m1 7.5a1 1 0 0 0-1 1v1a1 1 0 0 0 1 1h9a1 1 0 0 0 1-1v-1a1 1 0 0 0-1-1zm7 10a2 2 0 0 0 2-2v-4h-9v4a2 2 0 0 0 2 2zm-4.5-4.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 0 1h-3a.5.5 0 0 1-.5-.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_arrow_down\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_dismiss\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 16.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 15.793z\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_download\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-5-3a.5.5 0 0 0-1 0v4.793l-1.646-1.647a.5.5 0 0 0-.708.708l2.5 2.5a.5.5 0 0 0 .708 0l2.5-2.5a.5.5 0 0 0-.708-.708L17 18.293z\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_edit\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h6.355l-.365.365A3.7 3.7 0 0 0 11.717 18H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 2.433 1 3.27 3.27 0 0 0-1.701.71 3 3 0 0 0-1.152-.23h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m7.1 6.17-5.903 5.902a2.7 2.7 0 0 0-.706 1.247l-.458 1.831a1.087 1.087 0 0 0 1.319 1.318l1.83-.457a2.7 2.7 0 0 0 1.248-.707l5.902-5.902A2.286 2.286 0 0 0 19.1 11.67\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_link\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 5.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.507c.027.527.14 1.032.326 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.077 4.31 4.76 4.76 0 0 0-2.005-1.5A3 3 0 0 0 17.5 10.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 5.5m10 10.75a3.75 3.75 0 0 0-3.75-3.75l-.102.007A.75.75 0 0 0 18.25 14l.154.005a2.25 2.25 0 0 1-.154 4.495l-.003.005-.102.007a.75.75 0 0 0 .108 1.493V20l.2-.005A3.75 3.75 0 0 0 22 16.25m-6.5-3a.75.75 0 0 0-.75-.75l-.2.005a3.75 3.75 0 0 0 .2 7.495l.102-.007a.75.75 0 0 0-.102-1.493l-.154-.005A2.25 2.25 0 0 1 14.75 14l.102-.007a.75.75 0 0 0 .648-.743m3.5 3a.75.75 0 0 0-.75-.75h-3.5l-.102.007A.75.75 0 0 0 14.75 17h3.5l.102-.007A.75.75 0 0 0 19 16.25\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_off\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3.28 2.22a.75.75 0 1 0-1.06 1.06l4.633 4.634a6 6 0 0 0-.773 2.105A4.5 4.5 0 0 0 6.5 19h11q.213 0 .42-.02l2.8 2.8a.75.75 0 0 0 1.06-1.06zM16.44 17.5H6.5a3 3 0 1 1 0-6h.256c.4 0 .73-.315.749-.715.03-.631.19-1.229.453-1.766zm4.06-3c0 .782-.3 1.494-.79 2.029l1.062 1.06a4.5 4.5 0 0 0-2.851-7.57 6 6 0 0 0-8.93-4.21l1.11 1.11a4.5 4.5 0 0 1 6.394 3.866.75.75 0 0 0 .75.715h.255a3 3 0 0 1 3 3\"\r\n />\r\n </symbol>\r\n <symbol id=\"cloud_upload\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 4.5a4.5 4.5 0 0 0-4.495 4.285.75.75 0 0 1-.75.715H6.5a3 3 0 1 0 0 6h3.576a6.6 6.6 0 0 0-.057 1.5H6.5a4.5 4.5 0 0 1-.42-8.98 6.001 6.001 0 0 1 11.84 0 4.5 4.5 0 0 1 4.053 4.973 6.5 6.5 0 0 0-1.8-1.857A3 3 0 0 0 17.5 9.5h-.256a.75.75 0 0 1-.749-.715A4.5 4.5 0 0 0 12 4.5m10 12a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-6 3a.5.5 0 0 0 1 0v-4.793l1.646 1.647a.5.5 0 0 0 .708-.708l-2.5-2.5a.5.5 0 0 0-.708 0l-2.5 2.5a.5.5 0 0 0 .708.708L16 14.707z\"\r\n />\r\n </symbol>\r\n <symbol id=\"code\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m8.066 18.943 6.5-14.5a.75.75 0 0 1 1.404.518l-.036.096-6.5 14.5a.75.75 0 0 1-1.404-.518zl6.5-14.5zM2.22 11.47l4.25-4.25a.75.75 0 0 1 1.133.976l-.073.085L3.81 12l3.72 3.719a.75.75 0 0 1-.976 1.133l-.084-.073-4.25-4.25a.75.75 0 0 1-.073-.976zl4.25-4.25zm14.25-4.25a.75.75 0 0 1 .976-.073l.084.073 4.25 4.25a.75.75 0 0 1 .073.976l-.073.085-4.25 4.25a.75.75 0 0 1-1.133-.977l.073-.084L20.19 12l-3.72-3.72a.75.75 0 0 1 0-1.06\"\r\n />\r\n </symbol>\r\n <symbol id=\"color\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3.839 5.858c2.94-3.916 9.03-5.055 13.364-2.36 4.28 2.66 5.854 7.777 4.1 12.577-1.655 4.533-6.016 6.328-9.159 4.048-1.177-.854-1.634-1.925-1.854-3.664l-.106-.987-.045-.398c-.123-.934-.311-1.352-.705-1.572-.535-.298-.892-.305-1.595-.033l-.351.146-.179.078c-1.014.44-1.688.595-2.541.416l-.2-.047-.164-.047c-2.789-.864-3.202-4.647-.565-8.157m.984 6.716.123.037.134.03c.439.087.814.015 1.437-.242l.602-.257c1.202-.493 1.985-.54 3.046.05.917.512 1.275 1.298 1.457 2.66l.053.459.055.532.047.422c.172 1.361.485 2.09 1.248 2.644 2.275 1.65 5.534.309 6.87-3.349 1.516-4.152.174-8.514-3.484-10.789-3.675-2.284-8.899-1.306-11.373 1.987-2.075 2.763-1.82 5.28-.215 5.816m11.225-1.994a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m.494 3.488a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647M14.07 7.577a1.25 1.25 0 1 1 2.415-.647 1.25 1.25 0 0 1-2.415.647m-.028 8.998a1.25 1.25 0 1 1 2.414-.647 1.25 1.25 0 0 1-2.414.647m-3.497-9.97a1.25 1.25 0 1 1 2.415-.646 1.25 1.25 0 0 1-2.415.646\"\r\n />\r\n </symbol>\r\n <symbol id=\"column_triple\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.5 21A2.5 2.5 0 0 1 2 18.5v-13A2.5 2.5 0 0 1 4.5 3h1A2.5 2.5 0 0 1 8 5.5v13A2.5 2.5 0 0 1 5.5 21zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm8 2.5A2.5 2.5 0 0 1 9 18.5v-13A2.5 2.5 0 0 1 11.5 3h1A2.5 2.5 0 0 1 15 5.5v13a2.5 2.5 0 0 1-2.5 2.5zm-1-2.5a1 1 0 0 0 1 1h1a1 1 0 0 0 1-1v-13a1 1 0 0 0-1-1h-1a1 1 0 0 0-1 1zm5.5 0a2.5 2.5 0 0 0 2.5 2.5h1a2.5 2.5 0 0 0 2.5-2.5v-13A2.5 2.5 0 0 0 19.5 3h-1A2.5 2.5 0 0 0 16 5.5zm2.5 1a1 1 0 0 1-1-1v-13a1 1 0 0 1 1-1h1a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1z\"\r\n />\r\n </symbol>\r\n <symbol id=\"condition_point\" viewBox=\"0 0 32 32\">\r\n <path fill=\"currentColor\" d=\"m8 16 8-8 8 8-8 8z\" />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M29.39 14.527 17.474 2.609a2.085 2.085 0 0 0-2.946 0L2.609 14.527a2.085 2.085 0 0 0 0 2.946l11.918 11.918a2.085 2.085 0 0 0 2.946 0l11.918-11.918a2.085 2.085 0 0 0 0-2.946M16 28.036 3.965 16 16 3.964 28.036 16Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"copy\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M17.75 2A2.25 2.25 0 0 1 20 4.25v13a2.25 2.25 0 0 1-2.25 2.25h-9a2.25 2.25 0 0 1-2.25-2.25v-13A2.25 2.25 0 0 1 8.75 2zm0 1.5h-9a.75.75 0 0 0-.75.75v13c0 .414.336.75.75.75h9a.75.75 0 0 0 .75-.75v-13a.75.75 0 0 0-.75-.75\"\r\n />\r\n </symbol>\r\n <symbol id=\"cube\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6.049 7.983a.75.75 0 0 1 .967-.435L12 9.438l4.984-1.89a.75.75 0 1 1 .532 1.402l-4.766 1.81v5.49a.75.75 0 1 1-1.5 0v-5.49L6.484 8.95a.75.75 0 0 1-.435-.967m4.542-5.472a3.75 3.75 0 0 1 2.818 0l7.498 3.04A1.75 1.75 0 0 1 22 7.173v9.653a1.75 1.75 0 0 1-1.093 1.621l-7.498 3.04a3.75 3.75 0 0 1-2.818 0l-7.498-3.04A1.75 1.75 0 0 1 2 16.826V7.173A1.75 1.75 0 0 1 3.093 5.55zm2.254 1.39a2.25 2.25 0 0 0-1.69 0l-7.499 3.04a.25.25 0 0 0-.156.232v9.653a.25.25 0 0 0 .156.231l7.499 3.04a2.25 2.25 0 0 0 1.69 0l7.499-3.04a.25.25 0 0 0 .156-.231V7.173a.25.25 0 0 0-.156-.232z\"\r\n />\r\n </symbol>\r\n <symbol id=\"cursor_click\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M9.25 2a.75.75 0 0 1 .75.75v2.5a.75.75 0 0 1-1.5 0v-2.5A.75.75 0 0 1 9.25 2M4.47 3.97a.75.75 0 0 1 1.06 0l1.75 1.75a.75.75 0 1 1-1.06 1.06L4.47 5.03a.75.75 0 0 1 0-1.06m9.56 0a.75.75 0 0 1 0 1.06l-1.75 1.75a.75.75 0 1 1-1.06-1.06l1.75-1.75a.75.75 0 0 1 1.06 0M2.5 8.75A.75.75 0 0 1 3.25 8h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75m8.177-.264C9.822 7.752 8.5 8.36 8.5 9.487v11.274c0 1.21 1.495 1.782 2.302.88l2.614-2.923c.276-.308.664-.49 1.077-.507l3.84-.154c1.197-.048 1.715-1.539.805-2.32zM10 20.287V9.881l7.812 6.696-3.38.135a3.03 3.03 0 0 0-2.133 1.006z\"\r\n />\r\n </symbol>\r\n <symbol id=\"dashboard\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M24 21h2v5h-2zm-4-5h2v10h-2zm-9 10a5.006 5.006 0 0 1-5-5h2a3 3 0 1 0 3-3v-2a5 5 0 0 1 0 10\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M28 2H4a2 2 0 0 0-2 2v24a2 2 0 0 0 2 2h24a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m0 9H14V4h14ZM12 4v7H4V4ZM4 28V13h24l.002 15Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"dashboard_reference\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4 20v2h4.586L2 28.586 3.414 30 10 23.414V28h2v-8zm20 1h2v5h-2zm-4-5h2v10h-2zm-4 2h2v8h-2z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M28 2H4a2 2 0 0 0-2 2v12h2v-3h24.001l.001 15H16v2h12a2.003 2.003 0 0 0 2-2V4a2 2 0 0 0-2-2m-16 9H4V4h8Zm2 0V4h14v7Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"data_accessor\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M28 20h-2v2h2v6H4v-6h2v-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h24a2 2 0 0 0 2-2v-6a2 2 0 0 0-2-2\"\r\n />\r\n <circle cx=\"7\" cy=\"25\" r=\"1\" fill=\"currentColor\" />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M21 13a2.96 2.96 0 0 0-1.285.3l-2.3-2.3 2.3-2.3A2.96 2.96 0 0 0 21 9a3 3 0 1 0-3-3 3 3 0 0 0 .3 1.285l-2.3 2.3-2.3-2.3A3 3 0 0 0 14 6a3 3 0 1 0-3 3 2.96 2.96 0 0 0 1.285-.3l2.3 2.3-2.3 2.3A2.96 2.96 0 0 0 11 13a3 3 0 1 0 3 3 3 3 0 0 0-.3-1.285l2.3-2.3 2.3 2.3A3 3 0 0 0 18 16a3 3 0 1 0 3-3m0-8a1 1 0 1 1-1 1 1 1 0 0 1 1-1M10 6a1 1 0 1 1 1 1 1 1 0 0 1-1-1m1 11a1 1 0 1 1 1-1 1 1 0 0 1-1 1m10 0a1 1 0 1 1 1-1 1 1 0 0 1-1 1\"\r\n />\r\n </symbol>\r\n <symbol id=\"delete\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10 5h4a2 2 0 1 0-4 0M8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-1.17 12.111A3.75 3.75 0 0 1 15.026 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zm2 4.75a.75.75 0 0 0-1.5 0v7.5a.75.75 0 0 0 1.5 0zM14.25 9a.75.75 0 0 1 .75.75v7.5a.75.75 0 0 1-1.5 0v-7.5a.75.75 0 0 1 .75-.75m-7.516 9.467a2.25 2.25 0 0 0 2.24 2.033h6.052a2.25 2.25 0 0 0 2.24-2.033L18.424 6.5H5.576z\"\r\n />\r\n </symbol>\r\n <symbol id=\"delete_arrow_back\" viewBox=\"0 0 20 20\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.485 4.196a5.5 5.5 0 0 0-.986-.176L15.44 5H4.561l1.18 10.23A2 2 0 0 0 7.728 17H9.6q.276.538.657 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm7 15a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9m-.896-6.396-.897.896h1.543A2.75 2.75 0 0 1 17 16.25v.25a.5.5 0 0 1-1 0v-.25a1.75 1.75 0 0 0-1.75-1.75h-1.543l.897.896a.5.5 0 0 1-.708.708l-1.752-1.753a.5.5 0 0 1 .002-.705l1.75-1.75a.5.5 0 0 1 .708.708\"\r\n />\r\n </symbol>\r\n <symbol id=\"delete_dismiss\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M14 5a2 2 0 1 0-4 0zM8.5 5a3.5 3.5 0 1 1 7 0h5.75a.75.75 0 0 1 0 1.5h-1.32l-.502 5.195a6.5 6.5 0 0 0-1.456-.528l.452-4.667H5.576l1.158 11.967a2.25 2.25 0 0 0 2.24 2.033h1.758A6.5 6.5 0 0 0 11.81 22H8.974a3.75 3.75 0 0 1-3.733-3.389L4.07 6.5H2.75a.75.75 0 0 1 0-1.5zM22 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L17.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L16.5 16.793z\"\r\n />\r\n </symbol>\r\n <symbol id=\"delete_lines\" viewBox=\"0 0 20 20\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M11.5 4a1.5 1.5 0 0 0-3 0zm-4 0a2.5 2.5 0 0 1 5 0h5a.5.5 0 0 1 0 1h-1.054l-.808 7H14.63l.808-7H4.561l1.18 10.23A2 2 0 0 0 7.728 17h2.357a1.5 1.5 0 0 0 0 1H7.728a3 3 0 0 1-2.98-2.656L3.554 5H2.5a.5.5 0 0 1 0-1zm4 9a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1zm0 2a.5.5 0 0 0 0 1h6a.5.5 0 0 0 0-1z\"\r\n />\r\n </symbol>\r\n <symbol id=\"descending\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4 2.75A.75.75 0 0 1 4.75 2H9.5a.75.75 0 0 1 .634 1.151L6.113 9.5H9.5a.75.75 0 1 1 0 1.5H4.75a.75.75 0 0 1-.634-1.151L8.137 3.5H4.75A.75.75 0 0 1 4 2.75m2.368 9.727a.75.75 0 0 1 1.401.01l3.184 8.5a.75.75 0 0 1-1.405.526L8.794 19.5H5.238l-.79 2.022a.75.75 0 0 1-1.397-.545zM8.232 18l-1.18-3.15L5.823 18zM17.25 2a.75.75 0 0 1 .75.75v16.69l2.22-2.22a.75.75 0 1 1 1.06 1.06l-3.5 3.5a.75.75 0 0 1-1.06 0l-3.5-3.5a.75.75 0 1 1 1.06-1.06l2.22 2.22V2.75a.75.75 0 0 1 .75-.75\"\r\n />\r\n </symbol>\r\n <symbol id=\"devices\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10 30H4a2 2 0 0 1-2-2V16a2 2 0 0 1 2-2h6a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2M4 16v12h6V16Z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M28 4H6a2 2 0 0 0-2 2v6h2V6h22v14H14v2h2v4h-2v2h9v-2h-5v-4h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2\"\r\n />\r\n </symbol>\r\n <symbol id=\"dismiss\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m4.397 4.554.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l6.47-6.47a.75.75 0 1 1 1.06 1.061L13.061 12l6.47 6.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-6.47 6.47a.75.75 0 0 1-1.06-1.061L10.939 12l-6.47-6.47a.75.75 0 0 1-.072-.976l.073-.084z\"\r\n />\r\n </symbol>\r\n <symbol id=\"dismiss_circle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m0 1.5a8.5 8.5 0 1 0 0 17 8.5 8.5 0 0 0 0-17m3.446 4.897.084.073a.75.75 0 0 1 .073.976l-.073.084L13.061 12l2.47 2.47a.75.75 0 0 1 .072.976l-.073.084a.75.75 0 0 1-.976.073l-.084-.073L12 13.061l-2.47 2.47a.75.75 0 0 1-.976.072l-.084-.073a.75.75 0 0 1-.073-.976l.073-.084L10.939 12l-2.47-2.47a.75.75 0 0 1-.072-.976l.073-.084a.75.75 0 0 1 .976-.073l.084.073L12 10.939l2.47-2.47a.75.75 0 0 1 .976-.072\"\r\n />\r\n </symbol>\r\n <symbol id=\"dismiss_circle_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2c5.523 0 10 4.477 10 10s-4.477 10-10 10S2 17.523 2 12 6.477 2 12 2m3.53 6.47-.084-.073a.75.75 0 0 0-.882-.007l-.094.08L12 10.939l-2.47-2.47-.084-.072a.75.75 0 0 0-.882-.007l-.094.08-.073.084a.75.75 0 0 0-.007.882l.08.094L10.939 12l-2.47 2.47-.072.084a.75.75 0 0 0-.007.882l.08.094.084.073a.75.75 0 0 0 .882.007l.094-.08L12 13.061l2.47 2.47.084.072a.75.75 0 0 0 .882.007l.094-.08.073-.084a.75.75 0 0 0 .007-.882l-.08-.094L13.061 12l2.47-2.47.072-.084a.75.75 0 0 0 .007-.882zl-.084-.073z\"\r\n />\r\n </symbol>\r\n <symbol id=\"dismiss_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m4.21 4.387.083-.094a1 1 0 0 1 1.32-.083l.094.083L12 10.585l6.293-6.292a1 1 0 1 1 1.414 1.414L13.415 12l6.292 6.293a1 1 0 0 1 .083 1.32l-.083.094a1 1 0 0 1-1.32.083l-.094-.083L12 13.415l-6.293 6.292a1 1 0 0 1-1.414-1.414L10.585 12 4.293 5.707a1 1 0 0 1-.083-1.32l.083-.094z\"\r\n />\r\n </symbol>\r\n <symbol id=\"document\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\"\r\n />\r\n </symbol>\r\n <symbol id=\"document_bullet\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M7 12.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m.75 2.25a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5M7 18.25a.75.75 0 1 1 1.5 0 .75.75 0 0 1-1.5 0m3.75-6.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zM10 15.25a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75m.75 2.25a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm8.664-9.086-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414M18.5 20a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"document_copy\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.503 4.627 5.5 6.75v10.504a3.25 3.25 0 0 0 3.25 3.25h8.616a2.25 2.25 0 0 1-2.122 1.5H8.75A4.75 4.75 0 0 1 4 17.254V6.75c0-.98.627-1.815 1.503-2.123M13.128 2c.597 0 1.17.237 1.592.66l4.618 4.62c.422.422.659.995.659 1.591v8.383a2.25 2.25 0 0 1-2.25 2.25H8.752a2.25 2.25 0 0 1-2.25-2.25V4.25A2.25 2.25 0 0 1 8.752 2zM13 3.5H8.752a.75.75 0 0 0-.75.75v13.004c0 .414.336.75.75.75h8.995a.75.75 0 0 0 .75-.75V9.003H15.25a2.25 2.25 0 0 1-2.245-2.095L13 6.754zm1.5 1.061.001 2.193c0 .38.282.693.648.743l.102.007 2.19-.001z\"\r\n />\r\n </symbol>\r\n <symbol id=\"document_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"document_lock\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M18.5 20a.5.5 0 0 1-.5.5h-6v1q0 .257-.05.5H18a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.55a3.5 3.5 0 0 1 1.5-.905V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5zm-5-15.379L17.378 8.5H14a.5.5 0 0 1-.5-.5zM4 15h-.5A1.5 1.5 0 0 0 2 16.5v5A1.5 1.5 0 0 0 3.5 23h6a1.5 1.5 0 0 0 1.5-1.5v-5A1.5 1.5 0 0 0 9.5 15H9v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 1 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"document_page\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6.25 2A2.25 2.25 0 0 0 4 4.25v15.5A2.25 2.25 0 0 0 6.25 22h11.5A2.25 2.25 0 0 0 20 19.75V4.25A2.25 2.25 0 0 0 17.75 2zM5.5 4.25a.75.75 0 0 1 .75-.75h11.5a.75.75 0 0 1 .75.75v15.5a.75.75 0 0 1-.75.75H6.25a.75.75 0 0 1-.75-.75zM7.75 6.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 16.25a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 11a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"document_sparkle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M16.25 11h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75m0 4.5h-8.5c-.41 0-.75.34-.75.75s.34.75.75.75h8.5c.41 0 .75-.34.75-.75s-.34-.75-.75-.75M7 7.25c0 .41.34.75.75.75h7.45l-.09-.28q-.075-.21-.21-.39c-.04-.05-.07-.09-.11-.13-.15-.15-.33-.26-.52-.32L13.1 6.5H7.75c-.41 0-.75.34-.75.75m12.8 6.04-.26-.79-.8-.29c-.09-.03-.16-.08-.24-.12v7.66c0 .41-.34.75-.75.75H6.25c-.41 0-.75-.34-.75-.75V4.25c0-.41.34-.75.75-.75h5.53c.03-.06.05-.13.09-.19.24-.34.58-.6.99-.74l1.41-.46c.07-.03.15-.07.22-.11H6.25C5.01 2 4 3.01 4 4.25v15.5C4 20.99 5.01 22 6.25 22h11.5c1.24 0 2.25-1.01 2.25-2.25v-6.08a1.7 1.7 0 0 1-.2-.38m-3.95-7.14c.08.08.16.17.23.27.2.25.35.54.45.85l.45 1.38c.04.11.11.2.2.26.09.07.2.1.31.1a.5.5 0 0 0 .31-.1c.08-.06.15-.14.19-.23v-.03l.46-1.38c.14-.42.37-.8.69-1.11.31-.31.69-.55 1.11-.69l1.38-.45c.11-.04.2-.11.26-.2a.5.5 0 0 0 .1-.31.5.5 0 0 0-.1-.31.63.63 0 0 0-.26-.2h-.03l-1.38-.45c-.42-.14-.8-.37-1.11-.69a2.85 2.85 0 0 1-.69-1.11L17.97.37a.52.52 0 0 0-.2-.26c-.09-.06-.2-.1-.31-.1a.5.5 0 0 0-.31.1c-.09.06-.16.16-.2.26l-.45 1.38v.03c-.15.4-.38.77-.67 1.07-.31.31-.68.55-1.1.69l-1.38.45c-.11.04-.2.11-.26.2a.5.5 0 0 0-.1.31c0 .11.03.22.1.31.06.09.16.16.26.2l1.38.45c.42.14.8.38 1.11.69zm7.93 4.07c.064 0 .13.06.17.11s.05.11.05.17-.01.12-.05.17-.09.09-.15.11l-.77.25c-.23.08-.44.21-.62.38-.17.17-.3.38-.38.62l-.25.76c-.02.06-.06.11-.11.15a.27.27 0 0 1-.34 0 .33.33 0 0 1-.11-.15l-.25-.76c-.08-.23-.21-.45-.38-.62s-.39-.31-.62-.38l-.77-.25a.33.33 0 0 1-.15-.11.27.27 0 0 1 0-.34c.04-.05.09-.09.15-.11l.77-.25c.23-.08.44-.21.61-.38s.3-.38.37-.61l.25-.76c.02-.06.06-.11.11-.15a.27.27 0 0 1 .34 0c.05.04.09.09.11.15l.25.76c.08.23.21.44.38.62.17.17.38.3.62.38z\"\r\n />\r\n </symbol>\r\n <symbol id=\"document_toolbox\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.5 4.25a.75.75 0 0 1 .75-.75H12V8a2 2 0 0 0 2 2h4.5v9.75a.75.75 0 0 1-.75.75H13V22h4.75A2.25 2.25 0 0 0 20 19.75V9.664c0-.464-.184-.909-.513-1.237l-5.914-5.914A1.75 1.75 0 0 0 12.336 2H6.25A2.25 2.25 0 0 0 4 4.25v8.018c.294-.17.636-.268 1-.268h.5zM17.44 8.5H14a.5.5 0 0 1-.5-.5V4.56zM4 16v-1.5A1.5 1.5 0 0 1 5.5 13h2A1.5 1.5 0 0 1 9 14.5V16h1.5a1.5 1.5 0 0 1 1.5 1.5V19H9v-.5a.5.5 0 0 0-1 0v.5H5v-.5a.5.5 0 0 0-1 0v.5H1v-1.5A1.5 1.5 0 0 1 2.5 16zm1-1.5V16h3v-1.5a.5.5 0 0 0-.5-.5h-2a.5.5 0 0 0-.5.5M9 20h3v1.5a1.5 1.5 0 0 1-1.5 1.5h-8A1.5 1.5 0 0 1 1 21.5V20h3v.5a.5.5 0 0 0 1 0V20h3v.5a.5.5 0 0 0 1 0z\"\r\n />\r\n </symbol>\r\n <symbol id=\"download\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M18.25 20.5a.75.75 0 1 1 0 1.5l-13 .005a.75.75 0 1 1 0-1.5zM11.648 2.014l.102-.007a.75.75 0 0 1 .743.648l.007.102-.001 13.685 3.722-3.72a.75.75 0 0 1 .976-.073l.085.073a.75.75 0 0 1 .072.976l-.073.084-4.997 4.997a.75.75 0 0 1-.976.073l-.085-.073-5.003-4.996a.75.75 0 0 1 .976-1.134l.084.072 3.719 3.714L11 2.756a.75.75 0 0 1 .648-.743l.102-.007z\"\r\n />\r\n </symbol>\r\n <symbol id=\"drive\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.415 5.27A2.25 2.25 0 0 1 7.441 4h9.118c.863 0 1.65.493 2.026 1.27l3.09 6.388c.214.44.325.925.325 1.415v3.677A2.25 2.25 0 0 1 19.75 19H4.25A2.25 2.25 0 0 1 2 16.75v-3.677c0-.49.11-.974.324-1.415zm11.82.653a.75.75 0 0 0-.676-.423H7.441a.75.75 0 0 0-.676.423L4.31 11h15.382zM3.5 13.25v3.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75v-3.5a.75.75 0 0 0-.75-.75H4.25a.75.75 0 0 0-.75.75M18 16a1 1 0 1 0 0-2 1 1 0 0 0 0 2\"\r\n />\r\n </symbol>\r\n <symbol id=\"edit\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M20.952 3.048a3.58 3.58 0 0 0-5.06 0L3.94 15a3.1 3.1 0 0 0-.825 1.476L2.02 21.078a.75.75 0 0 0 .904.903l4.601-1.096a3.1 3.1 0 0 0 1.477-.825l11.95-11.95a3.58 3.58 0 0 0 0-5.06m-4 1.06a2.078 2.078 0 1 1 2.94 2.94L19 7.939 16.06 5zM15 6.062 17.94 9l-10 10c-.21.21-.474.357-.763.426l-3.416.814.813-3.416c.069-.29.217-.554.427-.764z\"\r\n />\r\n </symbol>\r\n <symbol id=\"enterprise\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8 8h2v4H8zm0 6h2v4H8zm6-6h2v4h-2zm0 6h2v4h-2zm-6 6h2v4H8zm6 0h2v4h-2z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M30 14a2 2 0 0 0-2-2h-6V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v26h28ZM4 4h16v24H4Zm18 24V14h6v14Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"error_circle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667m-.001 10.835a.999.999 0 1 1 0 1.998.999.999 0 0 1 0-1.998M11.994 7a.75.75 0 0 1 .744.648l.007.101.004 4.502a.75.75 0 0 1-1.493.103l-.007-.102-.004-4.501a.75.75 0 0 1 .75-.751\"\r\n />\r\n </symbol>\r\n <symbol id=\"event_alerting\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M28 17v5H4V6h11V4H4a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h8v4H8v2h16v-2h-4v-4h8a2 2 0 0 0 2-2v-5ZM18 28h-4v-4h4Z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M29 14H17a1 1 0 0 1-.857-1.514l6-10a1 1 0 0 1 1.715 0l6 10A1 1 0 0 1 29 14m-10.234-2h8.468L23 4.944Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"export\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M2.753 4.5a.75.75 0 0 1 .743.648l.006.102L3.5 18.254a.75.75 0 0 1-1.493.102L2 18.254 2.002 5.25a.75.75 0 0 1 .75-.75m12.894 1.804.073-.084a.75.75 0 0 1 .976-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.996 5.003a.75.75 0 0 1-1.134-.976l.072-.084 3.711-3.717H5.753a.75.75 0 0 1-.743-.647l-.007-.102a.75.75 0 0 1 .648-.743l.102-.007 13.69-.001L15.72 7.28a.75.75 0 0 1-.073-.976l.073-.084z\"\r\n />\r\n </symbol>\r\n <symbol id=\"eye\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 9.005a4 4 0 1 1 0 8 4 4 0 0 1 0-8m0 1.5a2.5 2.5 0 1 0 0 5 2.5 2.5 0 0 0 0-5M12 5.5c4.613 0 8.596 3.15 9.701 7.564a.75.75 0 1 1-1.455.365 8.504 8.504 0 0 0-16.493.004.75.75 0 0 1-1.456-.363A10 10 0 0 1 12 5.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"eye_hide\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M2.22 2.22a.75.75 0 0 0-.073.976l.073.084 4.034 4.035a10 10 0 0 0-3.955 5.75.75.75 0 0 0 1.455.364 8.5 8.5 0 0 1 3.58-5.034l1.81 1.81A4 4 0 0 0 14.8 15.86l5.919 5.92a.75.75 0 0 0 1.133-.977l-.073-.084-6.113-6.114.001-.002-1.2-1.198-2.87-2.87h.002l-2.88-2.877.001-.002-1.133-1.13L3.28 2.22a.75.75 0 0 0-1.06 0m7.984 9.045 3.535 3.536a2.5 2.5 0 0 1-3.535-3.535M12 5.5c-1 0-1.97.148-2.889.425l1.237 1.236a8.503 8.503 0 0 1 9.899 6.272.75.75 0 0 0 1.455-.363A10 10 0 0 0 12 5.5m.195 3.51 3.801 3.8a4.003 4.003 0 0 0-3.801-3.8\"\r\n />\r\n </symbol>\r\n <symbol id=\"factory\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.17 2a2.25 2.25 0 0 0-2.247 2.129l-.838 15.5A2.25 2.25 0 0 0 4.332 22h2.834a2.25 2.25 0 0 0 2.246-2.371l-.838-15.5A2.25 2.25 0 0 0 6.328 2zm-.75 2.21a.75.75 0 0 1 .749-.71h1.158a.75.75 0 0 1 .749.71l.837 15.5a.75.75 0 0 1-.748.79H4.332a.75.75 0 0 1-.749-.79zM9.511 22c.395-.412.683-.928.818-1.5h1.17v-4.25c0-.966.783-1.75 1.75-1.75h4c.966 0 1.75.784 1.75 1.75v4.25h.75a.75.75 0 0 0 .75-.75V7.713l-5.241 4.838a.75.75 0 0 1-1.26-.551V7.713l-4.027 3.718-.105-1.944 4.374-4.038A.75.75 0 0 1 15.5 6v4.287l5.241-4.838A.75.75 0 0 1 22 6v13.75A2.25 2.25 0 0 1 19.75 22zm3.488-5.75v4.25h4.5v-4.25a.25.25 0 0 0-.25-.25h-4a.25.25 0 0 0-.25.25\"\r\n />\r\n </symbol>\r\n <symbol id=\"file\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6 2a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9.828a2 2 0 0 0-.586-1.414l-5.828-5.828A2 2 0 0 0 12.172 2zm-.5 2a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2h4.5v10a.5.5 0 0 1-.5.5H6a.5.5 0 0 1-.5-.5zm11.88 4.5H14a.5.5 0 0 1-.5-.5V4.62z\"\r\n />\r\n </symbol>\r\n <symbol id=\"file_audio\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M29 31a1 1 0 0 1-.624-.22L23.649 27H20a1 1 0 0 1-1-1v-5a1 1 0 0 1 1-1h3.65l4.726-3.78A1 1 0 0 1 30 17v13a1 1 0 0 1-1 1m-8-6h3a1 1 0 0 1 .625.22L28 27.92v-8.84l-3.375 2.7A1 1 0 0 1 24 22h-3Z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M16 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h8Zm2-23.6 5.6 5.6H18Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"file_pdf\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M7.503 13.002a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 1 0v-.5H8.5a1.5 1.5 0 0 0 0-3zm.997 2h-.497v-1H8.5a.5.5 0 1 1 0 1m6.498-1.5a.5.5 0 0 1 .5-.5h1.505a.5.5 0 1 1 0 1h-1.006l-.001 1.002h1.007a.5.5 0 0 1 0 1h-1.007l.002.497a.5.5 0 0 1-1 .002l-.003-.998v-.002zm-3.498-.5a.5.5 0 0 0-.5.5v3a.5.5 0 0 0 .5.5h.498a2 2 0 0 0 0-4zm.5 3v-2a1 1 0 0 1 0 2M20 20v-1.164c.591-.281 1-.884 1-1.582V12.75c0-.698-.409-1.3-1-1.582v-1.34a2 2 0 0 0-.586-1.414l-5.829-5.828-.049-.04-.036-.03a2 2 0 0 0-.219-.18 1 1 0 0 0-.08-.044l-.048-.024-.05-.029c-.054-.031-.109-.063-.166-.087a2 2 0 0 0-.624-.138q-.03-.002-.059-.007L12.172 2H6a2 2 0 0 0-2 2v7.168c-.591.281-1 .884-1 1.582v4.504c0 .698.409 1.3 1 1.582V20a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2m-2 .5H6a.5.5 0 0 1-.5-.5v-.996h13V20a.5.5 0 0 1-.5.5m.5-10.5v1h-13V4a.5.5 0 0 1 .5-.5h6V8a2 2 0 0 0 2 2zm-1.122-1.5H14a.5.5 0 0 1-.5-.5V4.621zm-12.628 4h14.5a.25.25 0 0 1 .25.25v4.504a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25V12.75a.25.25 0 0 1 .25-.25\"\r\n />\r\n </symbol>\r\n <symbol id=\"file_sparkle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M16.088 6.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 1.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zM5.25 3h7.797a1.65 1.65 0 0 0-.767.569A1.6 1.6 0 0 0 12 4.5H5.25a.75.75 0 0 0-.75.75v12.5c0 .966.784 1.75 1.75 1.75h9.25V7.327q.052.108.09.222l.41 1.45c.106.31.305.579.57.77q.2.138.43.21V14h4v3.75A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V5.25A2.25 2.25 0 0 1 5.25 3M17 19.5h.75a1.75 1.75 0 0 0 1.75-1.75V15.5H17zM7.25 7a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm-.75 4.75a.75.75 0 0 1 .75-.75h5.5a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M7.25 15a.75.75 0 0 0 0 1.5h3a.75.75 0 0 0 0-1.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"file_text\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8.75 11.5a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm0 2.75a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm4.835-14.414 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03zM18 20.5a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5v16a.5.5 0 0 0 .5.5zm-.622-12L13.5 4.621V8a.5.5 0 0 0 .5.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"file_video\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m30 19-4 3.2V20a2 2 0 0 0-2-2h-8a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-2.2l4 3.2Zm-14 7v-6h8l.002 6Z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 28H8V4h8v6a2.006 2.006 0 0 0 2 2h6v3h2v-5a.91.91 0 0 0-.3-.7l-7-7A.9.9 0 0 0 18 2H8a2.006 2.006 0 0 0-2 2v24a2.006 2.006 0 0 0 2 2h4Zm6-23.6 5.6 5.6H18Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"file_zip\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3.5 8V6.25c0-.966.784-1.75 1.75-1.75h2.879a.75.75 0 0 1 .53.22l1.53 1.53-1.53 1.53a.75.75 0 0 1-.53.22zm1.75-5A3.25 3.25 0 0 0 2 6.25v11.5A3.25 3.25 0 0 0 5.25 21h13.5A3.25 3.25 0 0 0 22 17.75v-9a3.25 3.25 0 0 0-3.25-3.25h-7.19L9.72 3.659A2.25 2.25 0 0 0 8.129 3zm8.25 4v3.25c0 .414.336.75.75.75H15v2h-.25a.75.75 0 0 0 0 1.5H15V16h-.25a.75.75 0 0 0 0 1.5H15v2H5.25a1.75 1.75 0 0 1-1.75-1.75V9.5h4.629a2.25 2.25 0 0 0 1.59-.659L11.562 7zm3 12.5V16h.25a.75.75 0 0 0 0-1.5h-.25V11h.75a.75.75 0 0 0 .75-.75V7h.75c.966 0 1.75.784 1.75 1.75v9a1.75 1.75 0 0 1-1.75 1.75zm0-12.5v2.5H15V7z\"\r\n />\r\n </symbol>\r\n <symbol id=\"filter\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.5 16a.75.75 0 0 1 0 1.5h-3a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-9a.75.75 0 0 1 0-1.5zm3-5a.75.75 0 0 1 0 1.5h-15a.75.75 0 0 1 0-1.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"fingerprint\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M14.858 12.158c.56.573.877 1.268 1.106 2.228l.1.456.178.947c.09.445.158.692.255.908q.449 1.012 1.595 2.065a.75.75 0 0 1-1.013 1.106q-1.363-1.246-1.952-2.56c-.149-.334-.24-.65-.347-1.18l-.21-1.1-.013-.06c-.18-.85-.404-1.385-.772-1.762-.713-.73-2.357-.537-2.797.158-.562.889-.705 2.396-.26 3.916q.518 1.761 1.373 3.467a.75.75 0 0 1-1.34.672 22.3 22.3 0 0 1-1.471-3.717c-.562-1.912-.376-3.864.43-5.14.953-1.506 3.742-1.834 5.138-.404m-2.366 2.315a.75.75 0 0 1 .775.725 7.93 7.93 0 0 0 1.444 4.304l.196.266.3.39a.75.75 0 0 1-1.114.998l-.074-.083-.3-.39a9.43 9.43 0 0 1-1.951-5.435.75.75 0 0 1 .724-.775M8.782 9.39c2.113-1.563 4.875-1.478 6.733-.284.93.598 1.635 1.295 2.103 2.093a.75.75 0 0 1-1.294.76c-.342-.584-.878-1.115-1.62-1.591-1.362-.876-3.451-.94-5.029.228-1.638 1.213-2.328 3.291-2.123 5.482q.172 1.84 1.114 3.724a.75.75 0 0 1-1.342.67Q6.26 18.346 6.06 16.219c-.25-2.67.61-5.263 2.724-6.828m9.18 4.301a.75.75 0 0 1 .788.71c.031.604.18 1.097.442 1.494.22.333.414.525.563.6l.061.024a.75.75 0 0 1-.434 1.436c-.547-.165-1.017-.588-1.443-1.235-.416-.63-.643-1.382-.687-2.241a.75.75 0 0 1 .71-.788m-7.451-7.589a.75.75 0 0 1-.377.992c-1.84.828-3.194 2.008-4.083 3.548-1.114 1.928-1.414 4.181-1.165 6.08a.75.75 0 1 1-1.487.196c-.289-2.201.055-4.778 1.353-7.026C5.804 8.071 7.4 6.68 9.519 5.726a.75.75 0 0 1 .992.376m2.343-.787c1.83.037 3.652.878 5.459 2.486 1.823 1.622 2.921 3.827 3.294 6.58a.75.75 0 1 1-1.486.202c-.327-2.412-1.261-4.287-2.805-5.661-1.56-1.388-3.055-2.078-4.493-2.107a.75.75 0 1 1 .031-1.5m-6.871.014a.75.75 0 0 1-.062 1.06q-.403.357-.843.854-.415.468-.846 1.213a.75.75 0 1 1-1.3-.75 9 9 0 0 1 1.024-1.458q.497-.56.968-.98a.75.75 0 0 1 1.059.061m6.585-2.966c2.193.103 4.03.703 5.53 1.861a.75.75 0 0 1-.917 1.188c-1.245-.962-2.785-1.461-4.683-1.55-1.903-.09-3.462.284-4.715.979-.384.213-.814.106-1.031-.247a.74.74 0 0 1 .246-1.031c1.536-.904 3.383-1.302 5.57-1.2\"\r\n />\r\n </symbol>\r\n <symbol id=\"flag-de\" viewBox=\"0 0 640 480\">\r\n <path fill=\"#fc0\" d=\"M0 320h640v160H0z\" />\r\n <path fill=\"#000001\" d=\"M0 0h640v160H0z\" />\r\n <path fill=\"red\" d=\"M0 160h640v160H0z\" />\r\n </symbol>\r\n <symbol id=\"flag-en\" viewBox=\"0 0 640 480\">\r\n <path fill=\"#012169\" d=\"M0 0h640v480H0z\" />\r\n <path\r\n fill=\"#fff\"\r\n d=\"m75 0 244 181L562 0h78v62L400 241l240 178v61h-80L320 301 81 480H0v-60l239-178L0 64V0z\"\r\n />\r\n <path\r\n fill=\"#c8102e\"\r\n d=\"m424 281 216 159v40L369 281zm-184 20 6 35L54 480H0zM640 0v3L391 191l2-44L590 0zM0 0l239 176h-60L0 42z\"\r\n />\r\n <path fill=\"#fff\" d=\"M241 0v480h160V0zM0 160v160h640V160z\" />\r\n <path fill=\"#c8102e\" d=\"M0 193v96h640v-96zM273 0v480h96V0z\" />\r\n </symbol>\r\n <symbol id=\"flash\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M7.425 2.83A1.25 1.25 0 0 1 8.603 2h6.453a1.25 1.25 0 0 1 1.186 1.645L14.79 8h3.96c1.103 0 1.665 1.327.897 2.12L8.586 21.536c-1.054 1.088-2.872.106-2.541-1.372l1.27-5.668-1.57-.006a1.75 1.75 0 0 1-1.641-2.337zm1.354.67-3.262 9.157a.25.25 0 0 0 .234.333l2.502.01a.75.75 0 0 1 .729.914l-1.473 6.578L18.159 9.5h-4.41a.75.75 0 0 1-.71-.987l1.67-5.013z\"\r\n />\r\n </symbol>\r\n <symbol id=\"flow_stream\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M20 24h-8.137a4 4 0 0 0-.429-1.02L21.98 12.434A3.994 3.994 0 1 0 20.141 8H14v2h6.141a4 4 0 0 0 .425 1.02L10.02 21.566A3.994 3.994 0 1 0 11.859 26H20v3h8v-8h-8zm4-17a2 2 0 1 1-2 2 2 2 0 0 1 2-2M8 27a2 2 0 1 1 2-2 2 2 0 0 1-2 2m14-4h4v4h-4zM9.693 12.75a5 5 0 0 1 0-7.5l1.324 1.5a3 3 0 0 0 0 4.501z\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M7.047 15.751a9 9 0 0 1 0-13.501l1.324 1.5a7 7 0 0 0 0 10.501Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"globe\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998M14.94 16.5H9.061c.652 2.415 1.786 4.002 2.94 4.002s2.286-1.588 2.938-4.002m-7.43 0H4.785a8.53 8.53 0 0 0 4.095 3.41c-.522-.82-.953-1.846-1.27-3.015zm11.705 0h-2.722c-.324 1.335-.792 2.5-1.373 3.411a8.53 8.53 0 0 0 3.91-3.127zM7.094 10H3.736l-.005.017A8.5 8.5 0 0 0 3.5 12a8.5 8.5 0 0 0 .544 3h3.173A20 20 0 0 1 7 12c0-.684.032-1.354.095-2.001m8.303 0H8.603a19 19 0 0 0 .135 5h6.524a19 19 0 0 0 .135-5m4.868 0h-3.358c.062.647.095 1.317.095 2a20 20 0 0 1-.218 3h3.173a8.5 8.5 0 0 0 .545-3c0-.689-.082-1.359-.237-2M8.88 4.088l-.023.008A8.53 8.53 0 0 0 4.25 8.5h3.048c.314-1.752.86-3.278 1.583-4.41m3.12-.591-.117.005C10.62 3.62 9.397 5.621 8.83 8.5h6.342c-.566-2.87-1.783-4.869-3.045-4.995zm3.12.59.106.175c.67 1.112 1.177 2.572 1.475 4.237h3.048a8.53 8.53 0 0 0-4.339-4.29z\"\r\n />\r\n </symbol>\r\n <symbol id=\"globe_search\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3.441 9.955a4.926 4.926 0 0 0 6.233 7.571l4.256 4.257a.773.773 0 0 0 1.169-1.007l-.075-.087l-4.217-4.218A4.927 4.927 0 0 0 3.44 9.955m8.585-7.957c-4.756 0-8.736 3.319-9.751 7.767q.21-.27.46-.517A5.9 5.9 0 0 1 4.51 8.025A8.53 8.53 0 0 1 8.906 4.09l-.107.174c-.538.893-.971 2.011-1.275 3.28c.499.05.991.164 1.465.34c.632-2.628 1.823-4.385 3.037-4.385l.115.005c1.266.116 2.488 2.118 3.056 4.996H10.2a6 6 0 0 1 1.55 1.499l3.674.001a19 19 0 0 1-.135 5h-2.646a6 6 0 0 1-.299.842l-.129.272l-.122.229l.158.157h2.715c-.203.749-.45 1.418-.732 1.985l1.106 1.107c.492-.858.891-1.908 1.178-3.09l2.723-.002a8.54 8.54 0 0 1-3.734 3.26l.225.223l.125.14c.22.296.345.625.378.953A10 10 0 0 0 22.027 12c0-5.524-4.478-10.002-10.001-10.002m-2.712 9.05a3.38 3.38 0 1 1-4.78 4.78a3.38 3.38 0 0 1 4.78-4.78M16.932 10l3.358-.001l.008.03c.15.633.23 1.292.23 1.97a8.5 8.5 0 0 1-.545 3l-3.174.002c.143-.95.218-1.958.218-3.001q0-1.028-.095-2m-1.787-5.911l.023.008A8.53 8.53 0 0 1 19.776 8.5h-3.049c-.313-1.753-.86-3.278-1.582-4.41\"\r\n />\r\n </symbol>\r\n <symbol id=\"gpt\" viewBox=\"0 0 48 48\">\r\n <path\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-linejoin=\"round\"\r\n d=\"M18.38 27.94v-14.4l11.19-6.46c6.2-3.58 17.3 5.25 12.64 13.33\"\r\n />\r\n <path\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-linejoin=\"round\"\r\n d=\"m18.38 20.94 12.47-7.2 11.19 6.46c6.2 3.58 4.1 17.61-5.23 17.61\"\r\n />\r\n <path\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-linejoin=\"round\"\r\n d=\"m24.44 17.44 12.47 7.2v12.93c0 7.16-13.2 12.36-17.86 4.28\"\r\n />\r\n <path\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-linejoin=\"round\"\r\n d=\"M30.5 21.2v14.14L19.31 41.8c-6.2 3.58-17.3-5.25-12.64-13.33\"\r\n />\r\n <path\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-linejoin=\"round\"\r\n d=\"m30.5 27.94-12.47 7.2-11.19-6.46c-6.21-3.59-4.11-17.61 5.22-17.61\"\r\n />\r\n <path\r\n fill=\"none\"\r\n stroke=\"currentColor\"\r\n stroke-linejoin=\"round\"\r\n d=\"m24.44 31.44-12.47-7.2V11.31c0-7.16 13.2-12.36 17.86-4.28\"\r\n />\r\n </symbol>\r\n <symbol id=\"history\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 4.5a7.5 7.5 0 1 1-7.419 6.392c.067-.454-.265-.892-.724-.892a.75.75 0 0 0-.752.623A9 9 0 1 0 6 5.292V4.25a.75.75 0 0 0-1.5 0v3c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H6.9a7.47 7.47 0 0 1 5.1-2m.5 3.25a.75.75 0 0 0-1.5 0v4.5c0 .414.336.75.75.75h3a.75.75 0 0 0 0-1.5H12.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"home_checkmark\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.45 2.532a2.25 2.25 0 0 0-2.9 0L3.8 8.224a2.25 2.25 0 0 0-.8 1.72v9.31c0 .966.784 1.75 1.75 1.75h14.5a1.75 1.75 0 0 0 1.75-1.75v-9.31a2.25 2.25 0 0 0-.8-1.72zm-1.933 1.147a.75.75 0 0 1 .966 0l6.75 5.692a.75.75 0 0 1 .267.573v9.31a.25.25 0 0 1-.25.25H4.75a.25.25 0 0 1-.25-.25v-9.31a.75.75 0 0 1 .267-.573zm4.267 7.601a.75.75 0 1 0-1.061-1.06l-3.973 3.973-1.47-1.47a.75.75 0 1 0-1.06 1.06l2 2a.75.75 0 0 0 1.06 0z\"\r\n />\r\n </symbol>\r\n <symbol id=\"hourglass_quarter\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6.884 17.15A3.24 3.24 0 0 1 7.92 16h8.16a3.24 3.24 0 0 1 1.42 2.65v.6a.25.25 0 0 1-.25.25H6.75a.25.25 0 0 1-.25-.25v-.6a3.24 3.24 0 0 1 .384-1.5M6.75 2A2.75 2.75 0 0 0 4 4.75v.42a5.75 5.75 0 0 0 2.792 4.93l1.81 1.086a.75.75 0 0 1 .036 1.263l-2.121 1.443A5.75 5.75 0 0 0 4 18.647v.603A2.75 2.75 0 0 0 6.75 22h10.5A2.75 2.75 0 0 0 20 19.25v-.604a5.75 5.75 0 0 0-2.517-4.754l-2.121-1.443a.75.75 0 0 1 .036-1.263l1.81-1.086A5.75 5.75 0 0 0 20 5.17v-.42A2.75 2.75 0 0 0 17.25 2zM5.5 4.75c0-.69.56-1.25 1.25-1.25h10.5c.69 0 1.25.56 1.25 1.25v.42a4.25 4.25 0 0 1-2.063 3.643L14.627 9.9c-1.41.845-1.467 2.866-.108 3.79l2.12 1.442a4.25 4.25 0 0 1 1.861 3.515v.603c0 .69-.56 1.25-1.25 1.25H6.75c-.69 0-1.25-.56-1.25-1.25v-.604a4.25 4.25 0 0 1 1.86-3.514l2.121-1.442c1.359-.924 1.302-2.945-.107-3.79l-1.81-1.087A4.25 4.25 0 0 1 5.5 5.17z\"\r\n />\r\n </symbol>\r\n <symbol id=\"id\" viewBox=\"0 0 32 32\">\r\n <g fill=\"currentColor\">\r\n <path\r\n d=\"M13.006 9.163c0-.76.616-1.375 1.375-1.375h3.305c4.551 0 8.278 3.637 8.278 8.17 0 4.531-3.727 8.169-8.278 8.169H14.38c-.76 0-1.375-.616-1.375-1.375zm2.75 12.089c0 .069.056.125.125.125h1.805c3.074 0 5.528-2.447 5.528-5.42s-2.454-5.42-5.528-5.42H15.88a.125.125 0 0 0-.125.126zM9.385 7.89a1.374 1.374 0 0 1 1.377 1.373l.014 13.385a1.375 1.375 0 0 1-2.75.003L8.012 9.266a1.375 1.375 0 0 1 1.373-1.377\"\r\n />\r\n <path\r\n d=\"M6 1a5 5 0 0 0-5 5v20a5 5 0 0 0 5 5h20a5 5 0 0 0 5-5V6a5 5 0 0 0-5-5zM3 6a3 3 0 0 1 3-3h20a3 3 0 0 1 3 3v20a3 3 0 0 1-3 3H6a3 3 0 0 1-3-3z\"\r\n />\r\n </g>\r\n </symbol>\r\n <symbol id=\"id_card\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M18 13a1 1 0 0 1 1-1h6a1 1 0 0 1 0 2h-6a1 1 0 0 1-1-1m1 4a1 1 0 1 0 0 2h6a1 1 0 0 0 0-2zm-6-4a2 2 0 1 1-4 0a2 2 0 0 1 4 0m-6 4.5A1.5 1.5 0 0 1 8.5 16h5a1.5 1.5 0 0 1 1.5 1.5s0 3.5-4 3.5s-4-3.5-4-3.5M2 7.25A3.25 3.25 0 0 1 5.25 4h21.5A3.25 3.25 0 0 1 30 7.25v17.5A3.25 3.25 0 0 1 26.75 28H5.25A3.25 3.25 0 0 1 2 24.75zM5.25 6C4.56 6 4 6.56 4 7.25v17.5c0 .69.56 1.25 1.25 1.25h21.5c.69 0 1.25-.56 1.25-1.25V7.25C28 6.56 27.44 6 26.75 6z\"\r\n />\r\n </symbol>\r\n <symbol id=\"image\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M17.75 3A3.25 3.25 0 0 1 21 6.25v11.5A3.25 3.25 0 0 1 17.75 21H6.25A3.25 3.25 0 0 1 3 17.75V6.25A3.25 3.25 0 0 1 6.25 3zm.58 16.401-5.805-5.686a.75.75 0 0 0-.966-.071l-.084.07-5.807 5.687q.274.097.582.099h11.5c.203 0 .399-.035.58-.099l-5.805-5.686zM17.75 4.5H6.25A1.75 1.75 0 0 0 4.5 6.25v11.5q.001.313.103.594l5.823-5.701a2.25 2.25 0 0 1 3.02-.116l.128.116 5.822 5.702q.102-.28.104-.595V6.25a1.75 1.75 0 0 0-1.75-1.75m-2.498 2a2.252 2.252 0 1 1 0 4.504 2.252 2.252 0 0 1 0-4.504m0 1.5a.752.752 0 1 0 0 1.504.752.752 0 0 0 0-1.504\"\r\n />\r\n </symbol>\r\n <symbol id=\"image_library\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.748 8.996a1.248 1.248 0 1 0 0-2.496 1.248 1.248 0 0 0 0 2.496M6.25 3A3.25 3.25 0 0 0 3 6.25v9a3.25 3.25 0 0 0 3.25 3.25h9a3.25 3.25 0 0 0 3.25-3.25v-9A3.25 3.25 0 0 0 15.25 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h9c.966 0 1.75.784 1.75 1.75v9c0 .231-.045.452-.126.654l-4.587-4.291a2.25 2.25 0 0 0-3.074 0l-4.587 4.29a1.8 1.8 0 0 1-.126-.653zm6.762 6.458 4.505 4.214q-.246.076-.517.078h-9q-.271 0-.517-.078l4.504-4.214a.75.75 0 0 1 1.025 0M8.75 21a3.25 3.25 0 0 1-2.74-1.5h9.74a3.75 3.75 0 0 0 3.75-3.75V6.011a3.25 3.25 0 0 1 1.5 2.74v7A5.25 5.25 0 0 1 15.75 21z\"\r\n />\r\n </symbol>\r\n <symbol id=\"image_search\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M21 6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v4.507a5.5 5.5 0 0 1 1.5-.882V6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5q-.002.315-.104.595l-5.822-5.702-.128-.116a2.25 2.25 0 0 0-2.243-.38c.259.425.461.889.598 1.38a.75.75 0 0 1 .724.188L18.33 19.4a1.8 1.8 0 0 1-.581.099h-4.775l.512.513c.278.277.443.626.495.987h3.768A3.25 3.25 0 0 0 21 17.75zm-3.496 2.502a2.252 2.252 0 1 0-4.504 0 2.252 2.252 0 0 0 4.504 0m-3.004 0a.752.752 0 1 1 1.504 0 .752.752 0 0 1-1.504 0M9.95 17.89a4.5 4.5 0 1 0-1.145.976l2.915 2.915a.75.75 0 1 0 1.06-1.06zM6.5 18a3 3 0 1 1 0-6 3 3 0 0 1 0 6\"\r\n />\r\n </symbol>\r\n <symbol id=\"import\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M21.25 4.5a.75.75 0 0 1 .743.648L22 5.25v13.004a.75.75 0 0 1-1.493.102l-.007-.102V5.25a.75.75 0 0 1 .75-.75m-8.603 1.804.072-.084a.75.75 0 0 1 .977-.073l.084.073 4.997 4.997a.75.75 0 0 1 .073.976l-.073.085-4.997 5.003a.75.75 0 0 1-1.133-.976l.072-.084 3.711-3.717H2.75a.75.75 0 0 1-.743-.647L2 11.755a.75.75 0 0 1 .648-.743l.102-.007 13.693-.001-3.724-3.724a.75.75 0 0 1-.072-.976l.072-.084z\"\r\n />\r\n </symbol>\r\n <symbol id=\"info\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 1.998c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10-10.002 10S2 17.523 2 12C1.999 6.476 6.476 1.998 12 1.998m0 1.5a8.502 8.502 0 1 0 0 17.003 8.502 8.502 0 0 0 0-17.003m-.004 7a.75.75 0 0 1 .744.648l.007.102.004 5.502a.75.75 0 0 1-1.494.102l-.006-.101-.004-5.502a.75.75 0 0 1 .75-.75m.005-3.497a.999.999 0 1 1 0 1.997.999.999 0 0 1 0-1.997\"\r\n />\r\n </symbol>\r\n <symbol id=\"iot\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M19 4.492a2.5 2.5 0 0 1-3.012 2.448l-1.28 2.117A4 4 0 0 1 16 12.06l1.296.26a2.5 2.5 0 1 1-.279 1.475l-1.319-.266a4 4 0 0 1-1.744 1.964l.495 1.511h.051a2.5 2.5 0 1 1-1.472.479l-.497-1.516a4 4 0 0 1-3.752-1.593l-1.794.848q.015.138.015.28a2.5 2.5 0 1 1-.623-1.652l1.754-.829a4 4 0 0 1 .784-3.566l-.991-1.13a2.5 2.5 0 1 1 1.164-.948l.982 1.12A4 4 0 0 1 12 8.001c.505 0 .989.093 1.434.264l1.245-2.06A2.5 2.5 0 1 1 19 4.492m-1.5 0a1 1 0 1 0-2 0 1 1 0 0 0 2 0M7 7.001a1 1 0 1 0 0-2 1 1 0 0 0 0 2m5 7.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5m-6.5 1a1 1 0 1 0-2 0 1 1 0 0 0 2 0m10 4.002a1 1 0 1 0-2 0 1 1 0 0 0 2 0m4-5.002a1 1 0 1 0 0-2 1 1 0 0 0 0 2\"\r\n />\r\n </symbol>\r\n <symbol id=\"key\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M18.25 7a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0M15.5 2.05A6.554 6.554 0 0 0 8.95 8.6c0 .387.05.76.11 1.104a.28.28 0 0 1-.07.244l-6.235 6.236a2.75 2.75 0 0 0-.806 1.944V20.3c0 .966.784 1.75 1.75 1.75h2.5a1.75 1.75 0 0 0 1.75-1.75v-1.25H9.7c.69 0 1.25-.56 1.25-1.25v-1.75h1.75a1.25 1.25 0 0 0 1.25-1.204c.496.128 1.02.204 1.55.204a6.554 6.554 0 0 0 6.55-6.55c0-3.631-2.953-6.45-6.55-6.45M10.45 8.6a5.054 5.054 0 0 1 5.05-5.05c2.802 0 5.05 2.181 5.05 4.95a5.054 5.054 0 0 1-5.05 5.05c-.68 0-1.38-.171-2.005-.44a.75.75 0 0 0-1.046.69v.75H10.7c-.69 0-1.25.56-1.25 1.25v1.75H7.7c-.69 0-1.25.56-1.25 1.25v1.5a.25.25 0 0 1-.25.25H3.7a.25.25 0 0 1-.25-.25v-2.172c0-.331.132-.65.366-.884l6.236-6.235a1.77 1.77 0 0 0 .486-1.564 5 5 0 0 1-.088-.845\"\r\n />\r\n </symbol>\r\n <symbol id=\"key_multiple\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2q.465 0 .908.082a6.5 6.5 0 0 0-1.582 1.483A3.5 3.5 0 0 0 8.62 7.91a.75.75 0 0 1-.194.725L3.5 13.561V16.5h2v-1.75a.75.75 0 0 1 .75-.75H8.5v-1.25a.75.75 0 0 1 .22-.53l1.915-1.915q.336.7.823 1.298L10 13.06v1.689a.75.75 0 0 1-.75.75H7v1.75a.75.75 0 0 1-.75.75h-3.5a.75.75 0 0 1-.75-.75v-4a.75.75 0 0 1 .22-.53l4.855-4.855A5 5 0 0 1 12 2m4.5 1.5a4 4 0 0 0-1.894 7.524.75.75 0 0 1 .394.66v7.734l2.017 1.834 2.123-1.799-.921-.924a.75.75 0 0 1 0-1.058l.967-.971-.967-.97A.75.75 0 0 1 18 15v-3.316a.75.75 0 0 1 .394-.66A4 4 0 0 0 16.5 3.5m-5.5 4a5.5 5.5 0 1 1 8.5 4.61v2.58l1.276 1.28a.75.75 0 0 1 0 1.06l-.967.97.967.97a.75.75 0 0 1-.046 1.102l-3.245 2.75a.75.75 0 0 1-.99-.017l-2.75-2.5a.75.75 0 0 1-.245-.555v-7.64A5.5 5.5 0 0 1 11 7.5m6.5-1a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"label\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M19.75 2A2.25 2.25 0 0 1 22 4.25v5.462a3.25 3.25 0 0 1-.952 2.298l-8.5 8.503a3.255 3.255 0 0 1-4.597.001L3.489 16.06a3.25 3.25 0 0 1-.004-4.596l8.5-8.51a3.25 3.25 0 0 1 2.3-.953zm0 1.5h-5.466c-.464 0-.91.185-1.238.513l-8.512 8.523a1.75 1.75 0 0 0 .015 2.462l4.461 4.454a1.755 1.755 0 0 0 2.477 0l8.5-8.503a1.75 1.75 0 0 0 .513-1.237V4.25a.75.75 0 0 0-.75-.75M17 5.502a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3\"\r\n />\r\n </symbol>\r\n <symbol id=\"labels\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M17.5 6.5a1.25 1.25 0 1 1-2.5 0 1.25 1.25 0 0 1 2.5 0m-6.992-3.602A3.25 3.25 0 0 1 12.75 2h5.499A2.75 2.75 0 0 1 21 4.75v4.953a3.25 3.25 0 0 1-.97 2.316l-6.946 6.835a2.25 2.25 0 0 1-3.166-.01l-6.256-6.226a2.25 2.25 0 0 1 .034-3.223zm2.243.602c-.45 0-.883.173-1.208.484L4.73 10.48a.75.75 0 0 0-.011 1.075l6.257 6.226a.75.75 0 0 0 1.055.003l6.945-6.834a1.75 1.75 0 0 0 .523-1.247V4.75c0-.69-.56-1.25-1.25-1.25zm7.98 9.232-1.475 1.451q-.06.082-.134.155l-5.334 5.229a3.25 3.25 0 0 1-4.575-.013L7.282 17.63l-2.411-2.386a1 1 0 0 1-.107-.12l-1.63-1.621a2.75 2.75 0 0 0 .682 2.807l4.356 4.311a4.75 4.75 0 0 0 6.666.016l5.334-5.229a2.75 2.75 0 0 0 .69-2.813 4 4 0 0 1-.131.136\"\r\n />\r\n </symbol>\r\n <symbol id=\"layer_diagonal_sparkle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M16.088 7.412a2.84 2.84 0 0 0-1.347-.955l-1.378-.448a.544.544 0 0 1 0-1.025l1.378-.448A2.84 2.84 0 0 0 16.5 2.774l.011-.034.448-1.377a.544.544 0 0 1 1.027 0l.447 1.377a2.84 2.84 0 0 0 1.799 1.796l1.377.448.028.007a.544.544 0 0 1 0 1.025l-1.378.448a2.84 2.84 0 0 0-1.798 1.796l-.448 1.377-.013.034a.544.544 0 0 1-1.013-.034l-.448-1.377a2.8 2.8 0 0 0-.45-.848m7.695 3.801-.766-.248a1.58 1.58 0 0 1-.998-.999l-.25-.764a.302.302 0 0 0-.57 0l-.248.764a1.58 1.58 0 0 1-.984.999l-.765.248a.302.302 0 0 0 0 .57l.765.249a1.58 1.58 0 0 1 1 1.002l.248.764a.302.302 0 0 0 .57 0l.249-.764a1.58 1.58 0 0 1 .999-.999l.765-.248a.302.302 0 0 0 0-.57zm-12.8-9.077a2.25 2.25 0 0 1 2.95 1.572L13.05 4a1.6 1.6 0 0 0-.55.332v-.08a.75.75 0 0 0-1.005-.704l-6.84 2.475A1.75 1.75 0 0 0 3.5 7.667v6.082a.75.75 0 0 0 1.005.705L5 14.275v1.595a2.25 2.25 0 0 1-3-2.12V7.666A3.25 3.25 0 0 1 4.144 4.61zm-3.17 5.595 4.346-1.573A1.7 1.7 0 0 0 13 7l.652.214-5.327 1.928a1.25 1.25 0 0 0-.825 1.176v6.432a.75.75 0 0 0 1.005.705l.495-.18v1.596a2.25 2.25 0 0 1-3-2.122v-6.432A2.75 2.75 0 0 1 7.814 7.73m3.67 3.12L15.8 9.288l.201.71c.088.257.24.481.435.655l-4.44 1.607a.75.75 0 0 0-.495.705v6.783a.75.75 0 0 0 1.005.705l7.5-2.714a.75.75 0 0 0 .495-.705v-2.448c.214.276.512.463.96.463.211 0 .389-.042.54-.114v2.1a2.25 2.25 0 0 1-1.484 2.115l-7.5 2.714A2.25 2.25 0 0 1 10 19.749v-6.783a2.25 2.25 0 0 1 1.484-2.116\"\r\n />\r\n </symbol>\r\n <symbol id=\"lightbulb\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2.001a7.25 7.25 0 0 1 7.25 7.25c0 2.096-.9 4.02-2.663 5.742a.75.75 0 0 0-.175.265l-.032.103-1.13 4.895a2.25 2.25 0 0 1-2.02 1.737l-.173.007h-2.114a2.25 2.25 0 0 1-2.147-1.577l-.045-.167-1.13-4.895a.75.75 0 0 0-.206-.368c-1.68-1.64-2.577-3.463-2.659-5.444l-.006-.298.004-.24A7.25 7.25 0 0 1 12 2.002M14.115 18.5H9.884l.329 1.42a.75.75 0 0 0 .627.573l.103.008h2.114a.75.75 0 0 0 .7-.483l.03-.099zM12 3.501a5.75 5.75 0 0 0-5.746 5.53l-.004.22.007.277c.076 1.563.8 3.02 2.206 4.392.264.258.46.576.571.926l.049.178.455 1.975h4.923l.458-1.976a2.25 2.25 0 0 1 .493-.97l.127-.133c1.404-1.373 2.128-2.828 2.204-4.392l.007-.277-.004-.22A5.75 5.75 0 0 0 12 3.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"line_horizontal\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M2 11.75a.75.75 0 0 1 .75-.75h18.5a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1-.75-.75\"\r\n />\r\n </symbol>\r\n <symbol id=\"link\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M9.25 7a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 15.5h2.25a.75.75 0 0 1 .11 1.492L9.25 17H7a5 5 0 0 1-.25-9.994L7 7zM17 7a5 5 0 0 1 .25 9.994L17 17h-2.25a.75.75 0 0 1-.11-1.492l.11-.008H17a3.5 3.5 0 0 0 .206-6.994L17 8.5h-2.25a.75.75 0 0 1-.11-1.492L14.75 7zM7 11.25h10a.75.75 0 0 1 .102 1.493L17 12.75H7a.75.75 0 0 1-.102-1.493zh10z\"\r\n />\r\n </symbol>\r\n <symbol id=\"link_dismiss\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M9.25 5a.75.75 0 0 1 .11 1.492l-.11.008H7a3.5 3.5 0 0 0-.206 6.994L7 13.5h2.25a.75.75 0 0 1 .11 1.492L9.25 15H7a5 5 0 0 1-.25-9.994L7 5zM17 5a5 5 0 0 1 4.43 7.322 6.5 6.5 0 0 0-1.294-.765 3.5 3.5 0 0 0-2.93-5.05L17 6.499h-2.25a.75.75 0 0 1-.11-1.492L14.75 5zM7 9.25h10a.75.75 0 0 1 .102 1.493L17 10.75H7a.75.75 0 0 1-.102-1.493zm16 8.25a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-7.146-2.354a.5.5 0 0 0-.708.708l1.647 1.646-1.647 1.646a.5.5 0 0 0 .708.708l1.646-1.647 1.646 1.647a.5.5 0 0 0 .708-.708L18.207 17.5l1.647-1.646a.5.5 0 0 0-.708-.708L17.5 16.793z\"\r\n />\r\n </symbol>\r\n <symbol id=\"link_square\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6.25 3A3.25 3.25 0 0 0 3 6.25v6a3.25 3.25 0 0 0 3.25 3.25H7.5V14H6.25a1.75 1.75 0 0 1-1.75-1.75v-6c0-.966.784-1.75 1.75-1.75h6c.966 0 1.75.784 1.75 1.75v6A1.75 1.75 0 0 1 12.25 14H11v1.5h1.25a3.25 3.25 0 0 0 3.25-3.25v-6A3.25 3.25 0 0 0 12.25 3zM10 11.75c0-.966.784-1.75 1.75-1.75h1.248V8.5H11.75a3.25 3.25 0 0 0-3.25 3.25v6A3.25 3.25 0 0 0 11.75 21h6A3.25 3.25 0 0 0 21 17.75v-6a3.25 3.25 0 0 0-3.25-3.25H16.5V10h1.25c.966 0 1.75.784 1.75 1.75v6a1.75 1.75 0 0 1-1.75 1.75h-6A1.75 1.75 0 0 1 10 17.75z\"\r\n />\r\n </symbol>\r\n <symbol id=\"list_square\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M7.75 9.25a1 1 0 1 0 0-2 1 1 0 0 0 0 2m3.5-1.75a.75.75 0 0 0 0 1.5h5.5a.75.75 0 0 0 0-1.5zm0 3.75a.75.75 0 1 0 0 1.5h5.5a.75.75 0 1 0 0-1.5zm-.75 4.5a.75.75 0 0 1 .75-.75h5.5a.75.75 0 1 1 0 1.5h-5.5a.75.75 0 0 1-.75-.75M8.75 12a1 1 0 1 1-2 0 1 1 0 0 1 2 0m-1 4.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\"\r\n />\r\n </symbol>\r\n <symbol id=\"location_on\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.843 4.568a8.707 8.707 0 0 1 12.314 12.314l-1.187 1.174q-1.312 1.287-3.406 3.312a2.25 2.25 0 0 1-3.128 0l-3.491-3.396q-.659-.646-1.102-1.09a8.707 8.707 0 0 1 0-12.314m11.253 1.06A7.207 7.207 0 1 0 6.903 15.822l1.488 1.468q1.228 1.201 3.088 3a.75.75 0 0 0 1.042 0l3.395-3.3q.705-.691 1.18-1.168a7.207 7.207 0 0 0 0-10.192M12 7.999a3.002 3.002 0 1 1 0 6.004A3.002 3.002 0 0 1 12 8m0 1.5a1.502 1.502 0 1 0 0 3.004 1.502 1.502 0 0 0 0-3.003\"\r\n />\r\n </symbol>\r\n <symbol id=\"location_searching\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2a.75.75 0 0 1 .743.648l.007.102v1.788a7.5 7.5 0 0 1 6.713 6.714l.037-.002h1.75a.75.75 0 0 1 .102 1.493l-.102.007-1.788-.001a7.5 7.5 0 0 1-6.714 6.714l.002.037v1.75a.75.75 0 0 1-1.493.102l-.007-.102.001-1.788a7.5 7.5 0 0 1-6.714-6.714l-.037.002H2.75a.75.75 0 0 1-.102-1.493l.102-.007h1.788a7.5 7.5 0 0 1 6.714-6.713L11.25 4.5V2.75A.75.75 0 0 1 12 2m0 4a6 6 0 1 0 0 12 6 6 0 0 0 0-12m0 2a4 4 0 1 1 0 8 4 4 0 0 1 0-8\"\r\n />\r\n </symbol>\r\n <symbol id=\"lock\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 15.5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3M8 6a4 4 0 1 1 8 0v1h.75A3.25 3.25 0 0 1 20 10.25v7.5A3.25 3.25 0 0 1 16.75 21h-9.5A3.25 3.25 0 0 1 4 17.75v-7.5A3.25 3.25 0 0 1 7.25 7H8zm4-2.5A2.5 2.5 0 0 0 9.5 6v1h5V6A2.5 2.5 0 0 0 12 3.5m-4.75 5a1.75 1.75 0 0 0-1.75 1.75v7.5c0 .966.784 1.75 1.75 1.75h9.5a1.75 1.75 0 0 0 1.75-1.75v-7.5a1.75 1.75 0 0 0-1.75-1.75z\"\r\n />\r\n </symbol>\r\n <symbol id=\"lock_open\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M16 5a2.5 2.5 0 0 1 5 0v.25a.75.75 0 0 0 1.5 0V5a4 4 0 0 0-8 0v2H7.25A3.25 3.25 0 0 0 4 10.25v7.5A3.25 3.25 0 0 0 7.25 21h9.5A3.25 3.25 0 0 0 20 17.75v-7.5A3.25 3.25 0 0 0 16.75 7H16zM7.25 8.5h9.5c.966 0 1.75.784 1.75 1.75v7.5a1.75 1.75 0 0 1-1.75 1.75h-9.5a1.75 1.75 0 0 1-1.75-1.75v-7.5c0-.966.784-1.75 1.75-1.75m4.75 7a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3\"\r\n />\r\n </symbol>\r\n <symbol id=\"login\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M26 30H14a2 2 0 0 1-2-2v-3h2v3h12V4H14v3h-2V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v24a2 2 0 0 1-2 2\"\r\n />\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M14.59 20.59 18.17 17H4v-2h14.17l-3.58-3.59L16 10l6 6-6 6z\"\r\n />\r\n </symbol>\r\n <symbol id=\"logout\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8.502 11.5a1.002 1.002 0 1 1 0 2.004 1.002 1.002 0 0 1 0-2.005M12 4.353v6.65h7.442L17.72 9.28a.75.75 0 0 1-.073-.977l.073-.084a.75.75 0 0 1 .976-.072l.084.072 2.997 2.998a.75.75 0 0 1 .073.976l-.073.084-2.996 3.003a.75.75 0 0 1-1.134-.975l.072-.084 1.713-1.717h-7.431L12 19.25a.75.75 0 0 1-.88.738l-8.5-1.501a.75.75 0 0 1-.62-.739V5.75a.75.75 0 0 1 .628-.74l8.5-1.396a.75.75 0 0 1 .872.74m-1.5.883-7 1.15v10.732l7 1.236zM13 18.5h.765l.102-.007a.75.75 0 0 0 .648-.744l-.007-4.25H13zm.002-8.5L13 8.725V5h.745a.75.75 0 0 1 .743.647l.007.101.007 4.252z\"\r\n />\r\n </symbol>\r\n <symbol id=\"mail\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.25 4h13.5a3.25 3.25 0 0 1 3.245 3.066L22 7.25v9.5a3.25 3.25 0 0 1-3.066 3.245L18.75 20H5.25a3.25 3.25 0 0 1-3.245-3.066L2 16.75v-9.5a3.25 3.25 0 0 1 3.066-3.245zh13.5zM20.5 9.373l-8.15 4.29a.75.75 0 0 1-.603.043l-.096-.042L3.5 9.374v7.376a1.75 1.75 0 0 0 1.606 1.744l.144.006h13.5a1.75 1.75 0 0 0 1.744-1.607l.006-.143zM18.75 5.5H5.25a1.75 1.75 0 0 0-1.744 1.606L3.5 7.25v.429l8.5 4.474 8.5-4.475V7.25a1.75 1.75 0 0 0-1.607-1.744z\"\r\n />\r\n </symbol>\r\n <symbol id=\"map\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m9.203 4 .047-.002.046.001.068.007.016.004q.129.02.25.092l.053.034 5.07 3.565L19.82 4.14a.75.75 0 0 1 1.174.51l.007.104v10.632a.75.75 0 0 1-.238.548l-.08.066-5.5 3.866a.74.74 0 0 1-.828.023L9.25 16.297l-5.07 3.565a.75.75 0 0 1-1.174-.51l-.007-.104V8.616a.75.75 0 0 1 .238-.548l.08-.066 5.5-3.866a.8.8 0 0 1 .2-.101l.123-.028zm10.298 2.197-4 2.812v8.799l4-2.812zM8.5 6.193l-4 2.812v8.8l4-2.813zm1.502 0v8.8l4 2.811V9.005z\"\r\n />\r\n </symbol>\r\n <symbol id=\"mic\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M18.25 11a.75.75 0 0 1 .743.648l.007.102v.5a6.75 6.75 0 0 1-6.249 6.732l-.001 2.268a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L5 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004h.5a5.25 5.25 0 0 0 5.246-5.034l.004-.216v-.5a.75.75 0 0 1 .75-.75M12 2a4 4 0 0 1 4 4v6a4 4 0 0 1-8 0V6a4 4 0 0 1 4-4m0 1.5A2.5 2.5 0 0 0 9.5 6v6a2.5 2.5 0 0 0 5 0V6A2.5 2.5 0 0 0 12 3.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"mic_record\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M11 17.5c0 1.096.271 2.129.75 3.035v.715a.75.75 0 0 1-1.493.102l-.007-.102v-2.268a6.75 6.75 0 0 1-6.246-6.496L4 12.25v-.5a.75.75 0 0 1 1.493-.102l.007.102v.5a5.25 5.25 0 0 0 5.034 5.246l.216.004zm.175-1.504A6.51 6.51 0 0 1 15 11.498V6a4 4 0 0 0-8 0v6a4 4 0 0 0 4.175 3.996M20 17.5a2.5 2.5 0 1 1-5 0 2.5 2.5 0 0 1 5 0m3 0a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-9.5 0a4 4 0 1 0 8 0 4 4 0 0 0-8 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"microchip_ai\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n fill-rule=\"evenodd\"\r\n d=\"M8.75 4a.75.75 0 0 0-1.5 0v1.25H7A1.75 1.75 0 0 0 5.25 7v.25H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25v2.5H4a.75.75 0 0 0 0 1.5h1.25V17c0 .966.784 1.75 1.75 1.75h.25V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25h2.5V20a.75.75 0 0 0 1.5 0v-1.25H17A1.75 1.75 0 0 0 18.75 17v-.25H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25v-2.5H20a.75.75 0 0 0 0-1.5h-1.25V7A1.75 1.75 0 0 0 17 5.25h-.25V4a.75.75 0 0 0-1.5 0v1.25h-2.5V4a.75.75 0 0 0-1.5 0v1.25h-2.5zm-2 3A.25.25 0 0 1 7 6.75h10a.25.25 0 0 1 .25.25v10a.25.25 0 0 1-.25.25H7a.25.25 0 0 1-.25-.25zm5.049 7.753-.275-.772H9.497l-.275.772a.75.75 0 0 1-1.413-.504l1.7-4.77.003-.009.004-.01c.152-.392.516-.711.994-.711.479 0 .842.319.995.712l.003.009.004.01 1.7 4.77a.75.75 0 0 1-1.413.503m-1.289-3.615.479 1.343h-.958zm3.74-1.64a.75.75 0 0 1 1.5 0v5.003a.75.75 0 1 1-1.5 0z\"\r\n clip-rule=\"evenodd\"\r\n />\r\n </symbol>\r\n <symbol id=\"microsoft\" viewBox=\"0 0 21 21\">\r\n <path fill=\"#f25022\" d=\"M1 1h9v9H1z\" />\r\n <path fill=\"#00a4ef\" d=\"M1 11h9v9H1z\" />\r\n <path fill=\"#7fba00\" d=\"M11 1h9v9h-9z\" />\r\n <path fill=\"#ffb900\" d=\"M11 11h9v9h-9z\" />\r\n </symbol>\r\n <symbol id=\"moon\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M20.026 17.001c-2.762 4.784-8.879 6.423-13.663 3.661A10 10 0 0 1 3.13 17.68a.75.75 0 0 1 .365-1.132c3.767-1.348 5.785-2.91 6.956-5.146 1.233-2.353 1.551-4.93.689-8.463a.75.75 0 0 1 .769-.927 9.96 9.96 0 0 1 4.457 1.327c4.784 2.762 6.423 8.879 3.66 13.662m-8.247-4.903c-1.252 2.389-3.312 4.1-6.818 5.499a8.5 8.5 0 0 0 2.152 1.766 8.502 8.502 0 0 0 8.502-14.725 8.5 8.5 0 0 0-2.792-1.015c.647 3.384.23 6.043-1.045 8.475\"\r\n />\r\n </symbol>\r\n <symbol id=\"more_horizontal\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M7.75 12a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0m6 0a1.75 1.75 0 1 1-3.5 0 1.75 1.75 0 0 1 3.5 0M18 13.75a1.75 1.75 0 1 0 0-3.5 1.75 1.75 0 0 0 0 3.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"more_vertical\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 7.75a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5m0 6a1.75 1.75 0 1 1 0-3.5 1.75 1.75 0 0 1 0 3.5M10.25 18a1.75 1.75 0 1 0 3.5 0 1.75 1.75 0 0 0-3.5 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"navigation\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M19.958 2.104c1.213-.467 2.405.725 1.938 1.938L15.36 21.038c-.522 1.36-2.48 1.252-2.85-.156l-1.845-7.011a.75.75 0 0 0-.535-.535l-7.01-1.845c-1.409-.37-1.516-2.328-.157-2.85zm.538 1.4L3.5 10.04l7.011 1.845a2.25 2.25 0 0 1 1.603 1.603l1.845 7.01z\"\r\n />\r\n </symbol>\r\n <symbol id=\"notification\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 1.996a7.49 7.49 0 0 1 7.496 7.25l.004.25v4.097l1.38 3.156a1.25 1.25 0 0 1-1.145 1.75L15 18.502a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-4.155 3.352-7.5 7.5-7.5M13.5 18.5l-3 .002a1.5 1.5 0 0 0 2.993.145zM12 3.496c-3.32 0-6 2.674-6 6v4.41L4.656 17h14.697L18 13.907V9.509l-.003-.225A5.99 5.99 0 0 0 12 3.496\"\r\n />\r\n </symbol>\r\n <symbol id=\"notification_off\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"m5.22 6.28-3-3a.75.75 0 0 1 1.06-1.06l18.5 18.5a.75.75 0 1 1-1.06 1.06l-3.28-3.28-2.44.001a3 3 0 0 1-5.995.177L9 18.499H4.275a1.25 1.25 0 0 1-1.147-1.747L4.5 13.594V9.496c0-1.152.258-2.242.72-3.216M15.94 17 6.364 7.425A6 6 0 0 0 6 9.496v4.41L4.656 17zm-2.44 1.5-3 .001a1.5 1.5 0 0 0 2.993.145zm4.5-4.593.708 1.62 2.188 2.187a1.25 1.25 0 0 0-.016-.965l-1.38-3.156V9.496l-.004-.25A7.49 7.49 0 0 0 12 1.995 7.48 7.48 0 0 0 7.043 3.86l1.064 1.064A5.98 5.98 0 0 1 12 3.496a5.99 5.99 0 0 1 5.997 5.788l.003.225z\"\r\n />\r\n </symbol>\r\n <symbol id=\"offer-request\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10.75 11.5a.75.75 0 0 0-.72.54c.423.275.813.598 1.16.96h5.06a.75.75 0 0 0 0-1.5zM5.5 4v7.076a6.5 6.5 0 0 0-1.5.422V4a2 2 0 0 1 2-2h6.172q.042.001.082.007.03.005.059.007c.215.015.427.056.624.138.057.024.112.056.166.087l.05.029.047.024a1 1 0 0 1 .081.044c.078.053.148.116.219.18l.036.03.049.04 5.829 5.828A2 2 0 0 1 20 9.828V20a2 2 0 0 1-2 2h-6.81a6.5 6.5 0 0 0 1.078-1.5H18a.5.5 0 0 0 .5-.5V10H14a2 2 0 0 1-2-2V3.5H6a.5.5 0 0 0-.5.5m10.75 15h-3.424A6.5 6.5 0 0 0 13 17.5h3.25a.75.75 0 0 1 0 1.5m0-3h-3.424a6.5 6.5 0 0 0-.558-1.5h3.982a.75.75 0 0 1 0 1.5M13.5 4.621V8a.5.5 0 0 0 .5.5h3.378zM6.5 23a5.5 5.5 0 1 1 0-11 5.5 5.5 0 0 1 0 11m3-5a.5.5 0 0 0 0-1H4.707l1.647-1.646a.5.5 0 0 0-.708-.708l-2.5 2.5a.5.5 0 0 0 0 .708l2.5 2.5a.5.5 0 0 0 .708-.708L4.707 18z\"\r\n />\r\n </symbol>\r\n <symbol id=\"parent_child\" viewBox=\"0 0 32 32\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M28 12a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h11v4H9a2 2 0 0 0-2 2v4H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2H9v-4h14v4h-3a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h8a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2h-3v-4a2 2 0 0 0-2-2h-6v-4ZM12 28H4v-4h8Zm16 0h-8v-4h8ZM4 4h24v6H4Z\"\r\n />\r\n </symbol>\r\n <symbol id=\"people_community\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M7.5 3.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M4.5 5a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-.732 4C2.79 9 2 9.791 2 10.768v.36c0 .207 0 1.408.7 2.575.548.91 1.477 1.727 2.975 2.093a2.78 2.78 0 0 1 1.062-1.335c-1.603-.171-2.361-.883-2.75-1.53-.484-.806-.487-1.664-.487-1.806v-.357c0-.148.12-.268.268-.268H8.03A4 4 0 0 1 8.535 9zm11.697 0c.261.452.437.959.504 1.5h4.263c.148 0 .268.12.268.268v.357c0 .142-.003 1-.487 1.805-.389.648-1.147 1.36-2.75 1.531.48.32.856.786 1.062 1.335 1.498-.366 2.427-1.183 2.974-2.093.701-1.167.701-2.367.701-2.576v-.36C22 9.792 21.209 9 20.232 9zM15 5a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0m1.5-3a3 3 0 1 0 0 6 3 3 0 0 0 0-6M12 9.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3M9 11a3 3 0 1 1 6 0 3 3 0 0 1-6 0m-2.5 5.768C6.5 15.79 7.291 15 8.268 15h7.464c.977 0 1.768.791 1.768 1.768v.36c0 .207 0 1.408-.7 2.575C16.057 20.937 14.613 22 12 22s-4.058-1.063-4.8-2.297c-.7-1.167-.7-2.367-.7-2.576zm1.768-.268a.27.27 0 0 0-.268.268v.357c0 .142.003 1 .487 1.805.446.743 1.377 1.57 3.513 1.57s3.067-.827 3.513-1.57c.484-.805.487-1.663.487-1.805v-.357a.27.27 0 0 0-.268-.268z\"\r\n />\r\n </symbol>\r\n <symbol id=\"person_swap\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M15.75 13.997c.981 0 1.815.628 2.123 1.503h-2.056l-.066-.003H4.249a.75.75 0 0 0-.749.75v.577c0 .535.191 1.054.539 1.46 1.253 1.469 3.22 2.214 5.957 2.214h.168c.086.183.203.352.35.498l.934.933a15 15 0 0 1-1.452.07c-3.145 0-5.531-.906-7.098-2.74A3.75 3.75 0 0 1 2 16.824v-.578a2.25 2.25 0 0 1 2.249-2.249zM9.997 2.002a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7m4.784 14.282a.75.75 0 0 0-1.06-1.06l-2.5 2.5a.75.75 0 0 0 0 1.06l2.5 2.5a.75.75 0 0 0 1.06-1.061l-1.22-1.22h6.88l-1.22 1.22a.75.75 0 0 0 1.06 1.06l2.5-2.498a.75.75 0 0 0 0-1.06l-2.5-2.502a.75.75 0 1 0-1.06 1.06l1.218 1.22h-6.877z\"\r\n />\r\n </symbol>\r\n <symbol id=\"phone\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M15.75 2A2.25 2.25 0 0 1 18 4.25v15.5A2.25 2.25 0 0 1 15.75 22h-7.5A2.25 2.25 0 0 1 6 19.75V4.25A2.25 2.25 0 0 1 8.25 2zm0 1.5h-7.5a.75.75 0 0 0-.75.75v15.5c0 .414.336.75.75.75h7.5a.75.75 0 0 0 .75-.75V4.25a.75.75 0 0 0-.75-.75m-2.501 14a.75.75 0 0 1 .002 1.5l-2.5.004a.75.75 0 0 1-.002-1.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"question\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 4a5 5 0 0 0-5 5 1 1 0 0 0 2 0c0-1.658 1.342-3 3-3s3 1.342 3 3c0 .816-.199 1.294-.438 1.629-.262.365-.625.638-1.128.985l-.116.078c-.447.306-1.023.699-1.469 1.247-.527.648-.849 1.467-.849 2.561v.5a1 1 0 1 0 2 0v-.5c0-.656.178-1.024.4-1.299.257-.314.603-.552 1.114-.903l.053-.037c.496-.34 1.133-.786 1.62-1.468C16.7 11.081 17 10.183 17 9a5 5 0 0 0-5-5m0 17.25a1.25 1.25 0 1 0 0-2.5 1.25 1.25 0 0 0 0 2.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"question_circle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2c5.523 0 10 4.478 10 10s-4.477 10-10 10S2 17.522 2 12 6.477 2 12 2m0 1.667c-4.595 0-8.333 3.738-8.333 8.333S7.405 20.333 12 20.333s8.333-3.738 8.333-8.333S16.595 3.667 12 3.667M12 15.5a1 1 0 1 1 0 2 1 1 0 0 1 0-2m0-8.75a2.75 2.75 0 0 1 2.75 2.75c0 1.01-.297 1.574-1.051 2.359l-.169.171c-.622.622-.78.886-.78 1.47a.75.75 0 0 1-1.5 0c0-1.01.297-1.574 1.051-2.359l.169-.171c.622-.622.78-.886.78-1.47a1.25 1.25 0 0 0-2.493-.128l-.007.128a.75.75 0 0 1-1.5 0A2.75 2.75 0 0 1 12 6.75\"\r\n />\r\n </symbol>\r\n <symbol id=\"radio_button\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 22.002c5.524 0 10.002-4.478 10.002-10.001 0-5.524-4.478-10.002-10.002-10.002S1.998 6.477 1.998 12.001c0 5.523 4.478 10.001 10.002 10.001m0-1.5A8.502 8.502 0 1 1 12 3.5a8.502 8.502 0 0 1 0 17.003\"\r\n />\r\n </symbol>\r\n <symbol id=\"radio_button_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 1.999c5.524 0 10.002 4.478 10.002 10.002 0 5.523-4.478 10.001-10.002 10.001S1.998 17.524 1.998 12.001C1.998 6.477 6.476 1.999 12 1.999m0 1.5a8.502 8.502 0 1 0 0 17.003A8.502 8.502 0 0 0 12 3.5M11.996 6a5.998 5.998 0 1 1 0 11.996 5.998 5.998 0 0 1 0-11.996\"\r\n />\r\n </symbol>\r\n <symbol id=\"record_stop\" viewBox=\"0 0 20 20\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10 3a7 7 0 1 0 0 14 7 7 0 0 0 0-14m-8 7a8 8 0 1 1 16 0 8 8 0 0 1-16 0m5-2a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v4a1 1 0 0 1-1 1H8a1 1 0 0 1-1-1z\"\r\n />\r\n </symbol>\r\n <symbol id=\"rocket\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.057 7.43a2.5 2.5 0 1 1 3.536 3.536 2.5 2.5 0 0 1-3.536-3.535m2.475 1.061a1 1 0 1 0-1.414 1.415 1 1 0 0 0 1.414-1.415m5.977-4.169a2.75 2.75 0 0 0-1.811-1.81l-.663-.206a6.75 6.75 0 0 0-6.773 1.674l-.996.996a3.5 3.5 0 0 0-4.57.327L5.455 6.545a.75.75 0 0 0 0 1.06l1.591 1.592-.18.18a1.75 1.75 0 0 0 0 2.474l.496.496-1.396.796a.75.75 0 0 0-.158 1.181l3.889 3.89a.75.75 0 0 0 1.181-.158l.798-1.395.497.497a1.75 1.75 0 0 0 2.475 0l.177-.177 1.59 1.59a.75.75 0 0 0 1.06 0l1.242-1.243a3.5 3.5 0 0 0 .328-4.567l.998-.998a6.75 6.75 0 0 0 1.673-6.777zm-2.256-.378c.393.122.701.43.823.823l.207.665a5.25 5.25 0 0 1-1.302 5.27l-5.395 5.395a.25.25 0 0 1-.353 0l-5.307-5.306a.25.25 0 0 1 0-.354l5.397-5.396a5.25 5.25 0 0 1 5.268-1.302zm-1.289 9.897c.453.766.35 1.769-.308 2.427l-.712.712-1.06-1.06zM7.758 6.363a2 2 0 0 1 2.428-.307l-2.08 2.08-1.06-1.06zm2.818 9.199-.514.897-2.5-2.5.898-.513zM6.69 18.394a.75.75 0 0 0-1.06-1.06l-2.476 2.474a.75.75 0 0 0 1.061 1.061zM4.745 15.39a.75.75 0 0 1 0 1.06l-1.06 1.061a.75.75 0 0 1-1.061-1.06l1.06-1.061a.75.75 0 0 1 1.061 0m3.887 4.952a.75.75 0 1 0-1.06-1.06L6.513 20.34a.75.75 0 0 0 1.06 1.06z\"\r\n />\r\n </symbol>\r\n <symbol id=\"save\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3 5.75A2.75 2.75 0 0 1 5.75 3h9.965a3.25 3.25 0 0 1 2.298.952l2.035 2.035c.61.61.952 1.437.952 2.299v9.964A2.75 2.75 0 0 1 18.25 21H5.75A2.75 2.75 0 0 1 3 18.25zM5.75 4.5c-.69 0-1.25.56-1.25 1.25v12.5c0 .69.56 1.25 1.25 1.25H6v-5.25A2.25 2.25 0 0 1 8.25 12h7.5A2.25 2.25 0 0 1 18 14.25v5.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238l-2.035-2.035a1.75 1.75 0 0 0-.952-.49V7.25a2.25 2.25 0 0 1-2.25 2.25h-4.5A2.25 2.25 0 0 1 7 7.25V4.5zm10.75 15v-5.25a.75.75 0 0 0-.75-.75h-7.5a.75.75 0 0 0-.75.75v5.25zm-8-15v2.75c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75V4.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"save_all\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.75 18A2.75 2.75 0 0 1 3 15.25v-9.5A2.75 2.75 0 0 1 5.75 3h6.964a3.25 3.25 0 0 1 2.299.952l2.035 2.035c.61.61.952 1.437.952 2.299v6.964A2.75 2.75 0 0 1 15.25 18zM4.5 5.75v9.5c0 .69.56 1.25 1.25 1.25H6v-3.25A2.25 2.25 0 0 1 8.25 11h4.5A2.25 2.25 0 0 1 15 13.25v3.25h.25c.69 0 1.25-.56 1.25-1.25V8.286c0-.465-.184-.91-.513-1.238L14 5.061V6.25a2.25 2.25 0 0 1-2.25 2.25h-2.5A2.25 2.25 0 0 1 7 6.25V4.5H5.75c-.69 0-1.25.56-1.25 1.25m9 10.75v-3.25a.75.75 0 0 0-.75-.75h-4.5a.75.75 0 0 0-.75.75v3.25zm-5-10.25c0 .414.336.75.75.75h2.5a.75.75 0 0 0 .75-.75V4.5h-4zM10.75 21a4.74 4.74 0 0 1-3.464-1.5h8.964a3.25 3.25 0 0 0 3.25-3.25V8.44l.548.548c.61.609.952 1.436.952 2.298v4.964A4.75 4.75 0 0 1 16.25 21z\"\r\n />\r\n </symbol>\r\n <symbol id=\"scan_text\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.25 3.5A1.75 1.75 0 0 0 3.5 5.25v3a.75.75 0 0 1-1.5 0v-3A3.25 3.25 0 0 1 5.25 2h3a.75.75 0 0 1 0 1.5zm0 17a1.75 1.75 0 0 1-1.75-1.75v-3a.75.75 0 0 0-1.5 0v3A3.25 3.25 0 0 0 5.25 22h3a.75.75 0 0 0 0-1.5zM20.5 5.25a1.75 1.75 0 0 0-1.75-1.75h-3a.75.75 0 0 1 0-1.5h3A3.25 3.25 0 0 1 22 5.25v3a.75.75 0 0 1-1.5 0zM18.75 20.5a1.75 1.75 0 0 0 1.75-1.75v-3a.75.75 0 0 1 1.5 0v3A3.25 3.25 0 0 1 18.75 22h-3a.75.75 0 0 1 0-1.5zM7.75 7a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5zM7 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M7.75 15a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"screen\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.75 4A2.75 2.75 0 0 0 2 6.75v8.5A2.75 2.75 0 0 0 4.75 18h14.5A2.75 2.75 0 0 0 22 15.25v-8.5A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v8.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25zM5.75 19.5a.75.75 0 0 0 0 1.5h12.5a.75.75 0 0 0 0-1.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"search\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.5 10a5.5 5.5 0 1 1 11 0 5.5 5.5 0 0 1-11 0M10 3a7 7 0 1 0 4.391 12.452l5.329 5.328a.75.75 0 1 0 1.06-1.06l-5.328-5.329A7 7 0 0 0 10 3\"\r\n />\r\n </symbol>\r\n <symbol id=\"send\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M5.694 12 2.299 3.272a.75.75 0 0 1 .942-.982l.093.039 18 9a.75.75 0 0 1 .097 1.284l-.097.058-18 9c-.583.291-1.217-.245-1.065-.848l.03-.095zL2.299 3.272zM4.402 4.54l2.61 6.71h6.627a.75.75 0 0 1 .743.648l.007.102a.75.75 0 0 1-.649.743l-.101.007H7.01l-2.609 6.71L19.322 12z\"\r\n />\r\n </symbol>\r\n <symbol id=\"settings\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12.012 2.25c.734.008 1.465.093 2.182.253a.75.75 0 0 1 .582.649l.17 1.527a1.384 1.384 0 0 0 1.927 1.116l1.4-.615a.75.75 0 0 1 .85.174 9.8 9.8 0 0 1 2.205 3.792.75.75 0 0 1-.272.825l-1.241.916a1.38 1.38 0 0 0 0 2.226l1.243.915a.75.75 0 0 1 .272.826 9.8 9.8 0 0 1-2.204 3.792.75.75 0 0 1-.849.175l-1.406-.617a1.38 1.38 0 0 0-1.926 1.114l-.17 1.526a.75.75 0 0 1-.571.647 9.5 9.5 0 0 1-4.406 0 .75.75 0 0 1-.572-.647l-.169-1.524a1.382 1.382 0 0 0-1.925-1.11l-1.406.616a.75.75 0 0 1-.85-.175 9.8 9.8 0 0 1-2.203-3.796.75.75 0 0 1 .272-.826l1.243-.916a1.38 1.38 0 0 0 0-2.226l-1.243-.914a.75.75 0 0 1-.272-.826 9.8 9.8 0 0 1 2.205-3.792.75.75 0 0 1 .85-.174l1.4.615a1.387 1.387 0 0 0 1.93-1.118l.17-1.526a.75.75 0 0 1 .583-.65q1.074-.238 2.201-.252m0 1.5a9 9 0 0 0-1.354.117l-.11.977A2.886 2.886 0 0 1 6.526 7.17l-.899-.394A8.3 8.3 0 0 0 4.28 9.092l.797.587a2.88 2.88 0 0 1 .001 4.643l-.799.588c.32.842.776 1.626 1.348 2.322l.905-.397a2.882 2.882 0 0 1 4.017 2.318l.109.984c.89.15 1.799.15 2.688 0l.11-.984a2.88 2.88 0 0 1 4.018-2.322l.904.396a8.3 8.3 0 0 0 1.348-2.318l-.798-.588a2.88 2.88 0 0 1-.001-4.643l.797-.587a8.3 8.3 0 0 0-1.348-2.317l-.897.393a2.884 2.884 0 0 1-4.023-2.324l-.109-.976a9 9 0 0 0-1.334-.117M12 8.25a3.75 3.75 0 1 1 0 7.5 3.75 3.75 0 0 1 0-7.5m0 1.5a2.25 2.25 0 1 0 0 4.5 2.25 2.25 0 0 0 0-4.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"shield\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11zm1.5.728V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8\"\r\n />\r\n </symbol>\r\n <symbol id=\"shield_dismiss\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12.45 2.15C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11c0 5.001-2.958 8.676-8.725 10.948a.75.75 0 0 1-.55 0C5.958 19.676 3 16 3 11V5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0M12 3.678c-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442 5.047-2.063 7.5-5.186 7.5-9.442V6.478c-2.577-.152-5.08-1.09-7.5-2.8M9.28 8.222l2.724 2.723 2.725-2.723a.75.75 0 0 1 .975-.073l.084.073a.75.75 0 0 1 .073.975l-.073.084-2.724 2.723 2.724 2.725a.749.749 0 1 1-1.06 1.059l-2.724-2.724-2.723 2.724a.75.75 0 0 1-.975.073l-.084-.073a.75.75 0 0 1-.073-.975l.073-.084 2.723-2.725-2.723-2.723A.75.75 0 0 1 9.28 8.22\"\r\n />\r\n </symbol>\r\n <symbol id=\"shield_lock\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M3 5.75A.75.75 0 0 1 3.75 5c2.663 0 5.258-.943 7.8-2.85a.75.75 0 0 1 .9 0C14.992 4.057 17.587 5 20.25 5a.75.75 0 0 1 .75.75V11q0 .271-.012.539a3.5 3.5 0 0 0-1.488-.894V6.478c-2.577-.152-5.08-1.09-7.5-2.8-2.42 1.71-4.923 2.648-7.5 2.8V11c0 4.256 2.453 7.379 7.5 9.442a21 21 0 0 0 1-.439V21.5q0 .075.004.146-.356.155-.73.302a.75.75 0 0 1-.549 0C5.958 19.676 3 16 3 11zM16 15v-1a2.5 2.5 0 0 1 5 0v1h.5a1.5 1.5 0 0 1 1.5 1.5v5a1.5 1.5 0 0 1-1.5 1.5h-6a1.5 1.5 0 0 1-1.5-1.5v-5a1.5 1.5 0 0 1 1.5-1.5zm1.5-1v1h2v-1a1 1 0 1 0-2 0m2 5a1 1 0 1 0-2 0 1 1 0 0 0 2 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"shield_person\" viewBox=\"0 0 20 20\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10 9.5a2 2 0 1 0 0-4 2 2 0 0 0 0 4m0 5c2.5 0 3.5-1.255 3.5-2.5a1.5 1.5 0 0 0-1.5-1.5H8A1.5 1.5 0 0 0 6.5 12c0 1.25 1 2.5 3.5 2.5m.277-12.416a.5.5 0 0 0-.554 0 15.05 15.05 0 0 1-6.294 2.421A.5.5 0 0 0 3 5v4.5c0 3.891 2.307 6.73 6.82 8.467a.5.5 0 0 0 .36 0C14.693 16.23 17 13.39 17 9.5V5a.5.5 0 0 0-.43-.495 15.05 15.05 0 0 1-6.293-2.421M4 5.428a16 16 0 0 0 5.6-2.082l.4-.249.4.249A16 16 0 0 0 16 5.428V9.5c0 3.392-1.968 5.863-6 7.463-4.032-1.6-6-4.071-6-7.463z\"\r\n />\r\n </symbol>\r\n <symbol id=\"shifts_activity\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M11.314 3.527a.75.75 0 1 0-.12-1.495C6.049 2.442 2 6.748 2 12c0 5.523 4.477 10 10 10 5.249 0 9.553-4.044 9.967-9.186a.75.75 0 1 0-1.495-.12 8.5 8.5 0 1 1-9.158-9.167m6.383 1.147a.75.75 0 0 1 1.06-.046q.322.294.616.617a.75.75 0 0 1-1.105 1.013 9 9 0 0 0-.525-.525.75.75 0 0 1-.046-1.06M11.25 6a.75.75 0 0 1 .743.648L12 6.75V12h3.25a.75.75 0 0 1 .102 1.493l-.102.007h-4a.75.75 0 0 1-.743-.649l-.007-.101v-6a.75.75 0 0 1 .75-.75m2.531-3.11a.75.75 0 0 1 .925-.52 10 10 0 0 1 1.074.37.75.75 0 1 1-.567 1.388q-.444-.182-.912-.313a.75.75 0 0 1-.52-.925m7.478 5.325a.75.75 0 1 0-1.389.568 8 8 0 0 1 .315.915.75.75 0 1 0 1.444-.405 10 10 0 0 0-.37-1.078\"\r\n />\r\n </symbol>\r\n <symbol id=\"shifts_checkmark\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-5.063a6.5 6.5 0 0 1-.709 1.5h5.772A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3H6.25A3.25 3.25 0 0 0 3 6.25v5.772a6.5 6.5 0 0 1 1.5-.709zm8 .5a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5zM12 17.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0m-3.146-1.854a.5.5 0 0 0-.708 0L5.5 18.293l-.896-.897a.5.5 0 0 0-.708.708l1.25 1.25a.5.5 0 0 0 .708 0l3-3a.5.5 0 0 0 0-.708\"\r\n />\r\n </symbol>\r\n <symbol id=\"shifts_open\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M4.5 6.25c0-.966.784-1.75 1.75-1.75h3a.75.75 0 0 0 0-1.5h-3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h3a.75.75 0 0 0 0-1.5h-3a1.75 1.75 0 0 1-1.75-1.75zM14.747 3a.75.75 0 0 0 0 1.5h3.003c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75h-3.003a.75.75 0 0 0 0 1.5h3.003A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM12.5 6.75a.75.75 0 0 0-1.5 0v6c0 .414.336.75.75.75h4.5a.75.75 0 0 0 0-1.5H12.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"slide_text\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M6.75 8a.75.75 0 0 0 0 1.5h4.5a.75.75 0 0 0 0-1.5zM6 11.75a.75.75 0 0 1 .75-.75h8.5a.75.75 0 0 1 0 1.5h-8.5a.75.75 0 0 1-.75-.75M6.75 14a.75.75 0 0 0 0 1.5h6.5a.75.75 0 0 0 0-1.5zm-2-10A2.75 2.75 0 0 0 2 6.75v10.5A2.75 2.75 0 0 0 4.75 20h14.5A2.75 2.75 0 0 0 22 17.25V6.75A2.75 2.75 0 0 0 19.25 4zM3.5 6.75c0-.69.56-1.25 1.25-1.25h14.5c.69 0 1.25.56 1.25 1.25v10.5c0 .69-.56 1.25-1.25 1.25H4.75c-.69 0-1.25-.56-1.25-1.25z\"\r\n />\r\n </symbol>\r\n <symbol id=\"squalls\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8.077 6.884A4.07 4.07 0 0 1 11.973 4C14.174 4 16 5.783 16 8a4 4 0 0 1-4 4H2.75a.75.75 0 0 1 0-1.5H12A2.5 2.5 0 0 0 14.5 8c0-1.373-1.138-2.5-2.527-2.5-1.13 0-2.138.743-2.46 1.815l-.045.15a.75.75 0 1 1-1.436-.43zm8.212 5.129A2.94 2.94 0 0 1 19.07 10 2.93 2.93 0 0 1 22 12.93V13a3 3 0 0 1-3 3h-1.3a2.75 2.75 0 0 1-2.45 4h-.135a2.56 2.56 0 0 1-2.285-1.41.75.75 0 0 1 1.34-.673c.18.357.545.583.945.583h.135a1.25 1.25 0 1 0 0-2.5H2.75a.75.75 0 0 1 0-1.5H19a1.5 1.5 0 0 0 1.5-1.5v-.07c0-.79-.64-1.43-1.43-1.43-.61 0-1.163.4-1.358.987a.75.75 0 0 1-1.424-.474\"\r\n />\r\n </symbol>\r\n <symbol id=\"star\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88zm1.21.937L9.74 8.614a1.35 1.35 0 0 1-1.016.739l-5.05.734 3.654 3.562c.318.31.463.757.388 1.195l-.862 5.029 4.516-2.375a1.35 1.35 0 0 1 1.257 0l4.516 2.375-.862-5.03a1.35 1.35 0 0 1 .388-1.194l3.654-3.562-5.05-.734a1.35 1.35 0 0 1-1.016-.739z\"\r\n />\r\n </symbol>\r\n <symbol id=\"star_filled\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M10.788 3.102c.495-1.003 1.926-1.003 2.421 0l2.358 4.778 5.273.766c1.107.16 1.549 1.522.748 2.303l-3.816 3.719.901 5.25c.19 1.104-.968 1.945-1.959 1.424l-4.716-2.48-4.715 2.48c-.99.52-2.148-.32-1.96-1.423l.901-5.251-3.815-3.72c-.801-.78-.359-2.141.748-2.302L8.43 7.88z\"\r\n />\r\n </symbol>\r\n <symbol id=\"status\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"#212121\"\r\n fill-rule=\"nonzero\"\r\n d=\"M19.75 4A2.25 2.25 0 0 1 22 6.25v11.5A2.25 2.25 0 0 1 19.75 20H4.25A2.25 2.25 0 0 1 2 17.75V6.25A2.25 2.25 0 0 1 4.25 4Zm0 1.5H4.25a.75.75 0 0 0-.75.75v11.5c0 .414.336.75.75.75h15.5a.75.75 0 0 0 .75-.75V6.25a.75.75 0 0 0-.75-.75\"\r\n />\r\n <path\r\n fill=\"#212121\"\r\n d=\"M9.42 8.415a.75.75 0 0 0-1.348.014L6.382 12H2.75a.75.75 0 0 0 0 1.5h4.107a.75.75 0 0 0 .678-.43l1.234-2.606 2.56 5.121a.75.75 0 0 0 1.279.104l2.698-3.736 1.13 1.29A.75.75 0 0 0 17 13.5h4.25a.75.75 0 0 0 0-1.5h-3.91l-1.526-1.744a.75.75 0 0 0-1.172.055l-2.525 3.496z\"\r\n />\r\n </symbol>\r\n <symbol id=\"subtract_square\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M16.25 11.25h-8.5a.75.75 0 0 0 0 1.5h8.5a.75.75 0 0 0 0-1.5M6.25 3A3.25 3.25 0 0 0 3 6.25v11.5A3.25 3.25 0 0 0 6.25 21h11.5A3.25 3.25 0 0 0 21 17.75V6.25A3.25 3.25 0 0 0 17.75 3zM4.5 6.25c0-.966.784-1.75 1.75-1.75h11.5c.966 0 1.75.784 1.75 1.75v11.5a1.75 1.75 0 0 1-1.75 1.75H6.25a1.75 1.75 0 0 1-1.75-1.75z\"\r\n />\r\n </symbol>\r\n <symbol id=\"sun\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 2a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 2m0 15a5 5 0 1 0 0-10 5 5 0 0 0 0 10m0-1.5a3.5 3.5 0 1 1 0-7 3.5 3.5 0 0 1 0 7m9.25-2.75a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zM12 19a.75.75 0 0 1 .75.75v1.5a.75.75 0 0 1-1.5 0v-1.5A.75.75 0 0 1 12 19m-7.75-6.25a.75.75 0 0 0 0-1.5h-1.5a.75.75 0 0 0 0 1.5zm-.03-8.53a.75.75 0 0 1 1.06 0l1.5 1.5a.75.75 0 0 1-1.06 1.06l-1.5-1.5a.75.75 0 0 1 0-1.06m1.06 15.56a.75.75 0 1 1-1.06-1.06l1.5-1.5a.75.75 0 1 1 1.06 1.06zm14.5-15.56a.75.75 0 0 0-1.06 0l-1.5 1.5a.75.75 0 0 0 1.06 1.06l1.5-1.5a.75.75 0 0 0 0-1.06m-1.06 15.56a.75.75 0 1 0 1.06-1.06l-1.5-1.5a.75.75 0 1 0-1.06 1.06z\"\r\n />\r\n </symbol>\r\n <symbol id=\"sync\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M16.25 5.18a.75.75 0 0 0 .142 1.051 7.251 7.251 0 0 1-3.599 12.976l.677-.677a.75.75 0 0 0-.977-1.133l-.084.073-2 2a.75.75 0 0 0-.073.976l.073.084 2 2a.75.75 0 0 0 1.133-.976l-.072-.084-.75-.75a8.75 8.75 0 0 0 4.581-15.68.75.75 0 0 0-1.051.141m-5.72-3.71a.75.75 0 0 0 0 1.06l.75.75a8.75 8.75 0 0 0-4.85 15.47.75.75 0 1 0 .956-1.157 7.251 7.251 0 0 1 3.82-12.8l-.676.677a.75.75 0 1 0 1.061 1.06l2-2a.75.75 0 0 0 0-1.06l-2-2a.75.75 0 0 0-1.06 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"tasks\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M19.995 4.097A2.25 2.25 0 0 0 17.75 2H6.25l-.154.005A2.25 2.25 0 0 0 4 4.251v15.498l.005.154A2.25 2.25 0 0 0 6.25 22h7.568l-1.5-1.5H6.25l-.102-.007a.75.75 0 0 1-.648-.743V4.251l.007-.102a.75.75 0 0 1 .743-.648h11.5l.102.007a.75.75 0 0 1 .648.743v11.567l1.159-1.159q.16-.16.34-.28V4.25zm-3.707 17.902h-.076a.75.75 0 0 1-.493-.219l-2.5-2.502a.75.75 0 0 1 1.062-1.06l1.969 1.971 4.47-4.47a.75.75 0 1 1 1.06 1.061l-5 5a.75.75 0 0 1-.492.219M13.84 16.5a2 2 0 0 0-.182 0h-2.413a.75.75 0 0 1 0-1.5h5.004a.75.75 0 1 1 0 1.5zM9 7.752a1 1 0 1 1-2 0 1 1 0 0 1 2 0m1.496-.002a.75.75 0 0 1 .75-.75h5.004a.75.75 0 1 1 0 1.5h-5.004a.75.75 0 0 1-.75-.75m.75 3.25a.75.75 0 0 0 0 1.5h5.004a.75.75 0 1 0 0-1.5zM8 12.75a1 1 0 1 0 0-2 1 1 0 0 0 0 2m1 2.998a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"timer\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12 5a8.5 8.5 0 1 1 0 17 8.5 8.5 0 0 1 0-17m0 1.5a7 7 0 1 0 0 14 7 7 0 0 0 0-14M12 8a.75.75 0 0 1 .743.648l.007.102v4.5a.75.75 0 0 1-1.493.102l-.007-.102v-4.5A.75.75 0 0 1 12 8m7.147-2.886.083.06 1.158.964a.75.75 0 0 1-.877 1.212l-.082-.06-1.159-.964a.75.75 0 0 1 .877-1.212M14.25 2.5a.75.75 0 0 1 .102 1.493L14.25 4h-4.5a.75.75 0 0 1-.102-1.493L9.75 2.5z\"\r\n />\r\n </symbol>\r\n <symbol id=\"upload\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M18.25 3.51a.75.75 0 1 0 0-1.5l-13-.004a.75.75 0 1 0 0 1.5zm-6.602 18.488.102.007a.75.75 0 0 0 .743-.649l.007-.101-.001-13.685 3.722 3.72a.75.75 0 0 0 .976.073l.085-.073a.75.75 0 0 0 .072-.977l-.073-.084-4.997-4.996a.75.75 0 0 0-.976-.073l-.085.072L6.22 10.23a.75.75 0 0 0 .976 1.134l.084-.073 3.719-3.713L11 21.255c0 .38.282.693.648.743\"\r\n />\r\n </symbol>\r\n <symbol id=\"user\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M17.755 14a2.25 2.25 0 0 1 2.248 2.25v.575c0 .894-.32 1.759-.9 2.438-1.57 1.833-3.957 2.738-7.103 2.738s-5.532-.905-7.098-2.74a3.75 3.75 0 0 1-.898-2.434v-.578A2.25 2.25 0 0 1 6.253 14zm0 1.5H6.252a.75.75 0 0 0-.75.75v.577c0 .535.192 1.053.54 1.46 1.253 1.469 3.22 2.214 5.957 2.214 2.739 0 4.706-.745 5.963-2.213a2.25 2.25 0 0 0 .54-1.463v-.576a.75.75 0 0 0-.748-.749M12 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7\"\r\n />\r\n </symbol>\r\n <symbol id=\"user_multiple\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M14.754 10c.966 0 1.75.784 1.75 1.75v4.749a4.501 4.501 0 0 1-9.002 0V11.75c0-.966.783-1.75 1.75-1.75zm0 1.5H9.252a.25.25 0 0 0-.25.25v4.749a3.001 3.001 0 0 0 6.002 0V11.75a.25.25 0 0 0-.25-.25M3.75 10h3.381a2.74 2.74 0 0 0-.618 1.5H3.75a.25.25 0 0 0-.25.25v3.249a2.5 2.5 0 0 0 3.082 2.433c.085.504.24.985.453 1.432Q6.539 18.999 6 19a4 4 0 0 1-4-4.001V11.75c0-.966.784-1.75 1.75-1.75m13.125 0h3.375c.966 0 1.75.784 1.75 1.75V15a4 4 0 0 1-5.03 3.866c.214-.448.369-.929.455-1.433q.277.066.575.067a2.5 2.5 0 0 0 2.5-2.5v-3.25a.25.25 0 0 0-.25-.25h-2.757a2.74 2.74 0 0 0-.618-1.5M12 3a3 3 0 1 1 0 6 3 3 0 0 1 0-6m6.5 1a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m-13 0a2.5 2.5 0 1 1 0 5 2.5 2.5 0 0 1 0-5m6.5.5a1.5 1.5 0 1 0 0 3 1.5 1.5 0 0 0 0-3m6.5 1a1 1 0 1 0 0 2 1 1 0 0 0 0-2m-13 0a1 1 0 1 0 0 2 1 1 0 0 0 0-2\"\r\n />\r\n </symbol>\r\n <symbol id=\"user_role\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M14 14H4.253a2.25 2.25 0 0 0-2.25 2.25v.577c0 .892.32 1.756.9 2.435 1.565 1.834 3.952 2.74 7.097 2.74q1.072 0 2.026-.141a2.5 2.5 0 0 1-.026-.36v-1.154q-.92.154-2 .154c-2.738 0-4.704-.745-5.957-2.213a2.25 2.25 0 0 1-.54-1.461v-.578a.75.75 0 0 1 .75-.749h7.955A2.5 2.5 0 0 1 14 14.05zM10 2.005a5 5 0 1 1 0 10 5 5 0 0 1 0-10m0 1.5a3.5 3.5 0 1 0 0 7 3.5 3.5 0 0 0 0-7M15 15h-.5a1.5 1.5 0 0 0-1.5 1.5v5a1.5 1.5 0 0 0 1.5 1.5h6a1.5 1.5 0 0 0 1.5-1.5v-5a1.5 1.5 0 0 0-1.5-1.5H20v-1a2.5 2.5 0 0 0-5 0zm1.5-1a1 1 0 0 1 2 0v1h-2zm2 5a1 1 0 1 1-2 0 1 1 0 0 1 2 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"warning\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13 17a.999.999 0 1 0-1.998 0 .999.999 0 0 0 1.997 0m-.26-7.853a.75.75 0 0 0-1.493.103l.004 4.501.007.102a.75.75 0 0 0 1.493-.103l-.004-4.502zm1.23-5.488c-.857-1.548-3.082-1.548-3.938 0L2.286 17.66c-.83 1.5.255 3.34 1.97 3.34h15.49c1.714 0 2.799-1.84 1.969-3.34zm-2.626.726a.75.75 0 0 1 1.313 0l7.746 14.002a.75.75 0 0 1-.657 1.113H4.256a.75.75 0 0 1-.657-1.113z\"\r\n />\r\n </symbol>\r\n <symbol id=\"zoom_fit\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M11.49 2.707a.75.75 0 0 1 1.03.002l2.206 2.09a.75.75 0 1 0 1.032-1.088L13.551 1.62a2.25 2.25 0 0 0-3.09-.005L8.237 3.71A.75.75 0 0 0 9.265 4.8zM4.802 9.263a.75.75 0 0 0-1.091-1.028l-2.095 2.224a2.25 2.25 0 0 0 .005 3.09l2.091 2.207a.75.75 0 1 0 1.089-1.032L2.71 12.517a.75.75 0 0 1-.001-1.03zm15.485-1.02A.75.75 0 1 0 19.2 9.275l2.098 2.213a.75.75 0 0 1 0 1.033L19.2 14.734a.75.75 0 0 0 1.088 1.032l2.099-2.213a2.25 2.25 0 0 0 0-3.097zm-4.522 12.045a.75.75 0 0 0-1.032-1.088l-2.212 2.097a.75.75 0 0 1-1.032 0L9.275 19.2a.75.75 0 0 0-1.032 1.09l2.216 2.097a2.25 2.25 0 0 0 3.095 0zM9.75 7A2.75 2.75 0 0 0 7 9.75v4.5A2.75 2.75 0 0 0 9.75 17h4.5A2.75 2.75 0 0 0 17 14.25v-4.5A2.75 2.75 0 0 0 14.25 7zM8.5 9.75c0-.69.56-1.25 1.25-1.25h4.5c.69 0 1.25.56 1.25 1.25v4.5c0 .69-.56 1.25-1.25 1.25h-4.5c-.69 0-1.25-.56-1.25-1.25z\"\r\n />\r\n </symbol>\r\n <symbol id=\"zoom_in\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M13.5 10a.75.75 0 0 0-.75-.75h-2v-2a.75.75 0 0 0-1.5 0v2h-2a.75.75 0 1 0 0 1.5h2v2a.75.75 0 0 0 1.5 0v-2h2a.75.75 0 0 0 .75-.75M10 2.75a7.25 7.25 0 0 1 5.63 11.819l4.9 4.9a.75.75 0 0 1-.976 1.134l-.084-.073-4.901-4.9A7.25 7.25 0 1 1 10 2.75m0 1.5a5.75 5.75 0 1 0 0 11.5 5.75 5.75 0 0 0 0-11.5\"\r\n />\r\n </symbol>\r\n <symbol id=\"zoom_out\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M12.75 9.25a.75.75 0 0 1 0 1.5h-5.5a.75.75 0 0 1 0-1.5zm4.5.75a7.25 7.25 0 1 0-2.681 5.63l4.9 4.9.085.073a.75.75 0 0 0 .976-1.133l-4.9-4.901A7.22 7.22 0 0 0 17.25 10m-13 0a5.75 5.75 0 1 1 11.5 0 5.75 5.75 0 0 1-11.5 0\"\r\n />\r\n </symbol>\r\n <symbol id=\"sparkle\" viewBox=\"0 0 24 24\">\r\n <path\r\n fill=\"currentColor\"\r\n d=\"M8.665 15.735c.245.173.537.265.836.264v-.004a1.44 1.44 0 0 0 1.327-.872l.613-1.864a2.87 2.87 0 0 1 1.817-1.812l1.778-.578a1.442 1.442 0 0 0-.052-2.74l-1.755-.57a2.88 2.88 0 0 1-1.822-1.823l-.578-1.777a1.446 1.446 0 0 0-2.732.022l-.583 1.792a2.88 2.88 0 0 1-1.77 1.786l-1.777.57a1.444 1.444 0 0 0 .017 2.735l1.754.569a2.89 2.89 0 0 1 1.822 1.826l.578 1.775c.099.283.283.527.527.7m-.374-4.25a4 4 0 0 0-.363-.413h.003a4.4 4.4 0 0 0-1.72-1.063l-1.6-.508l1.611-.524a4.4 4.4 0 0 0 1.69-1.065a4.45 4.45 0 0 0 1.041-1.708l.515-1.582l.516 1.587a4.38 4.38 0 0 0 2.781 2.773l1.62.522l-1.59.515a4.38 4.38 0 0 0-2.774 2.775l-.515 1.582l-.515-1.585a4.4 4.4 0 0 0-.7-1.306m8.041 9.297a1.12 1.12 0 0 1-.41-.55l-.328-1.006a1.3 1.3 0 0 0-.821-.823l-.991-.323a1.15 1.15 0 0 1-.781-1.083a1.14 1.14 0 0 1 .771-1.08l1.006-.326a1.3 1.3 0 0 0 .8-.82l.324-.991a1.143 1.143 0 0 1 2.157-.021l.329 1.014a1.3 1.3 0 0 0 .82.816l.992.323a1.141 1.141 0 0 1 .039 2.165l-1.014.329a1.3 1.3 0 0 0-.818.822l-.322.989c-.078.23-.226.43-.425.57a1.14 1.14 0 0 1-1.328-.005m-1.03-3.783A2.8 2.8 0 0 1 17 18.708a2.8 2.8 0 0 1 1.7-1.7a2.81 2.81 0 0 1-1.718-1.708a2.8 2.8 0 0 1-1.682 1.699\"\r\n />\r\n </symbol>\r\n</svg>\r\n<svg\r\n class=\"icon\"\r\n [attr.width]=\"size\"\r\n [attr.height]=\"size\"\r\n [attr.aria-label]=\"label\"\r\n>\r\n <use [attr.href]=\"'#' + name\"></use>\r\n</svg>\r\n","import { inject, Injectable } from '@angular/core';\nimport type {\n AiAssistant,\n AiAssistantId,\n Asset,\n AssetType,\n Content,\n Event,\n LogbookEntry,\n Message,\n Paginated,\n RequestParameter,\n SpeechToken,\n Task,\n Thread,\n ThreadPopulated,\n} from '@hahnpro/hpc-api';\nimport { AUTH_ADAPTER, AuthAdapter } from '../auth/auth.adapter';\n\n@Injectable({ providedIn: 'root' })\nexport class ApiService {\n private auth = inject(AUTH_ADAPTER);\n private _baseUrl = this.auth.baseUrl ?? 'https://adam.hahnpro.com';\n private apiPath = '/api';\n private httpClient = new HttpClient(this.auth);\n\n get baseUrl(): string {\n return this._baseUrl;\n }\n\n get apiUrl(): string {\n return `${this.baseUrl}${this.apiPath}`;\n }\n\n get user(): User | null {\n return this.httpClient.user;\n }\n\n addMessage(\n message: string,\n threadId?: string,\n assistantId?: AiAssistantId,\n context?: Record<string, unknown>,\n ): Promise<Message> {\n return this.httpClient.post(`${this.apiUrl}/ai/message`, {\n message,\n threadId,\n assistantId,\n context,\n });\n }\n\n getAccessToken(): Promise<string> {\n return this.httpClient.getAccessToken();\n }\n\n createThread(\n assistantId: AiAssistantId,\n isEphemeral?: boolean,\n ): Promise<ThreadPopulated> {\n return this.httpClient.post(`${this.apiUrl}/ai/threads`, {\n assistantId,\n isEphemeral,\n });\n }\n\n getThread(threadId: string): Promise<ThreadPopulated> {\n return this.httpClient.get(`${this.apiUrl}/ai/threads/${threadId}`);\n }\n\n getThreadMessages(threadId: string): Promise<Paginated<Message>> {\n return this.httpClient.get(\n `${this.apiUrl}/ai/threads/${threadId}/messages`,\n );\n }\n\n deleteThread(threadId: string): Promise<Thread> {\n return this.httpClient.delete(`${this.apiUrl}/ai/threads/${threadId}`);\n }\n\n getAssistants(): Promise<AiAssistant[]> {\n return this.httpClient.get(`${this.apiUrl}/ai/assistants`);\n }\n\n getSpeechToken(): Promise<SpeechToken> {\n return this.httpClient.get<SpeechToken>(`${this.apiUrl}/ai/speech/token`);\n }\n\n transcribeAudio(form: FormData, config?: Config): Promise<{ text: string }> {\n return this.httpClient.post<{ text: string }>(\n `${this.apiUrl}/ai/audio/transcription`,\n form,\n config,\n );\n }\n\n getAssets(params: RequestParameter = {}): Promise<Paginated<Asset>> {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/assets`, { params });\n }\n\n getAssetTypes(params: RequestParameter = {}): Promise<Paginated<AssetType>> {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/assettypes`, { params });\n }\n\n getContents(params: RequestParameter = {}): Promise<Paginated<Content>> {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/contents`, { params });\n }\n\n getEvents(params: RequestParameter = {}): Promise<Paginated<Event>> {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/events`, { params });\n }\n\n getTasks(params: RequestParameter = {}): Promise<Paginated<Task>> {\n params.limit = params.limit || 0;\n params.page = params.page || 1;\n return this.httpClient.get(`${this.apiUrl}/tasks`, { params });\n }\n\n getLogbookEntriesByIds(ids: string[]): Promise<LogbookEntry[]> {\n return this.httpClient.get<LogbookEntry[]>(`${this.apiUrl}/tasks/logbook`, {\n params: {\n ids: ids.join(','),\n },\n });\n }\n\n downloadContent(id: string, type?: FileType): Promise<Blob> {\n const query = type ? '?type=' + type : '';\n return this.httpClient.get(\n `${this.apiUrl}/contents/${id}/download${query}`,\n );\n }\n\n async loadUsersAsPermissions(): Promise<Permission[]> {\n if (this.httpClient.user?.roles.includes('superuser')) {\n return this.httpClient.get<Permission[]>(\n `${this.apiUrl}/user/permissions`,\n );\n } else {\n return [];\n }\n }\n}\n\nexport type TokenOption = { token?: string };\nexport type Config = TokenOption & {\n headers?: Record<string, string>;\n params?: any;\n signal?: AbortSignal;\n};\n\nexport class HttpClient {\n private auth: AuthAdapter = null;\n private _user: User | null = null;\n\n constructor(auth: AuthAdapter) {\n this.auth = auth;\n }\n\n public delete = <T>(url: string, config?: Config) =>\n this.request<T>('DELETE', url, config);\n public get = <T>(url: string, config?: Config) =>\n this.request<T>('GET', url, config);\n public post = <T>(url: string, data: any, config?: Config) =>\n this.request<T>('POST', url, config, data);\n public put = <T>(url: string, data: any, config?: Config) =>\n this.request<T>('PUT', url, config, data);\n\n get user(): User | null {\n return this._user;\n }\n\n protected request = async <T>(\n method: Method,\n url: string,\n config: Config = {},\n data?: BodyInit | null | undefined,\n ): Promise<T> => {\n const token = await this.getAccessToken();\n if (config.params) {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(config.params)) {\n params.append(key, String(value));\n }\n url += `?${params}`;\n }\n const response = await fetch(url, {\n method,\n headers: {\n Authorization: `Bearer ${token}`,\n Accept: 'application/json',\n ...(data instanceof FormData\n ? {}\n : { 'Content-Type': 'application/json' }),\n ...config.headers,\n },\n body:\n data instanceof FormData\n ? data\n : data\n ? JSON.stringify(data)\n : undefined,\n signal: config.signal,\n });\n\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return response.json();\n };\n\n async getAccessToken(): Promise<string> {\n const token = await this.auth.getAccessToken();\n this.resolveUser(token);\n return token;\n }\n\n private resolveUser(token: string) {\n try {\n const tokenParts = token.split('.');\n if (tokenParts.length !== 3) {\n throw new Error('Invalid JWT token format');\n }\n const payload = JSON.parse(atob(tokenParts[1]));\n this._user = {\n id: payload.sub,\n username: payload.preferred_username || payload.email,\n roles: payload.roles || [],\n activeOrg: payload.active_organization\n ? {\n id: payload.active_organization.id,\n name: payload.active_organization.name,\n }\n : undefined,\n };\n } catch (error) {\n console.error('Error parsing JWT token:', error);\n this._user = null;\n }\n }\n}\n\nexport type Method =\n | 'get'\n | 'GET'\n | 'delete'\n | 'DELETE'\n | 'head'\n | 'HEAD'\n | 'options'\n | 'OPTIONS'\n | 'post'\n | 'POST'\n | 'put'\n | 'PUT'\n | 'patch'\n | 'PATCH'\n | 'purge'\n | 'PURGE'\n | 'link'\n | 'LINK'\n | 'unlink'\n | 'UNLINK';\n\nexport type FileType =\n | 'original'\n | 'preview-sm'\n | 'preview-md'\n | 'preview-lg'\n | 'preview-xl';\n\nexport interface Permission {\n label: string;\n value: string;\n}\n\nexport interface User {\n id: string;\n username: string;\n activeOrg?: {\n id: string;\n name: string;\n };\n roles: string[];\n}\n","import { inject, Injectable } from '@angular/core';\r\n\r\nimport { ApiService } from './api.service';\r\n\r\n/**\r\n * Service to resolve owner names based on their IDs. It utilizes caching to minimize\r\n * redundant requests and leverages authentication and user services to fetch owner details.\r\n */\r\n@Injectable({ providedIn: 'root' })\r\nexport class OwnerResolverService {\r\n private readonly cache = new ResponseCache(1000, 24 * 60 * 60 * 1000);\r\n private readonly apiService = inject(ApiService);\r\n\r\n /**\r\n * Resolves the owner name for a given ID.\r\n */\r\n async resolveOwner(id: string): Promise<string> {\r\n return (await this.resolveOwners(id))?.[id];\r\n }\r\n\r\n /**\r\n * Resolves owner names for a list of IDs.\r\n */\r\n async resolveOwners(ids: string | string[]): Promise<Record<string, string>> {\r\n if (typeof ids === 'string') {\r\n ids = [ids];\r\n }\r\n const idsMap = new Map<string, string>();\r\n const idsToFetch = new Set<string>();\r\n\r\n if (Array.isArray(ids) && ids.length > 0) {\r\n for (const id of ids) {\r\n const cachedValue = this.cache.get(id);\r\n if (cachedValue) {\r\n idsMap.set(id, cachedValue);\r\n } else {\r\n const resolved = await this.resolveFromAuth(id, idsMap);\r\n if (!resolved) {\r\n idsToFetch.add(id);\r\n }\r\n }\r\n }\r\n\r\n if (idsToFetch.size > 0) {\r\n await this.fetchIds(idsToFetch, idsMap);\r\n }\r\n return Object.fromEntries(idsMap);\r\n } else {\r\n return {};\r\n }\r\n }\r\n\r\n /**\r\n * Attempts to resolve the owner name from the authentication service.\r\n */\r\n private async resolveFromAuth(\r\n id: string,\r\n idsMap: Map<string, string>,\r\n ): Promise<boolean> {\r\n const { id: userId, username, activeOrg } = this.apiService.user;\r\n let name: string;\r\n if (id === userId) {\r\n name = username;\r\n } else if (activeOrg.id === id) {\r\n name = activeOrg.name;\r\n }\r\n\r\n if (name) {\r\n idsMap.set(id, name);\r\n this.cache.set(id, name);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private async fetchIds(\r\n idsToFetch: Set<string>,\r\n idsMap: Map<string, string>,\r\n ): Promise<void> {\r\n try {\r\n const permissions = await this.apiService.loadUsersAsPermissions();\r\n const ids = permissions.reduce((acc, user) => {\r\n acc[user.value] = user.label;\r\n return acc;\r\n }, {});\r\n\r\n for (const id of Object.keys(idsToFetch)) {\r\n if (ids[id]) {\r\n idsMap.set(id, ids[id]);\r\n this.cache.set(id, ids[id]);\r\n }\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n}\r\n\r\nclass ResponseCache {\r\n private cache = new Map<string, [any, number]>();\r\n\r\n constructor(\r\n private sizeLimit: number,\r\n private ttl?: number,\r\n ) {}\r\n\r\n get(key: string) {\r\n if (!this.cache.has(key)) {\r\n return undefined;\r\n }\r\n\r\n const [value, ts] = this.cache.get(key);\r\n\r\n // if the cache value is older than the ttl, delete it and return undefined\r\n if (this.ttl && Date.now() - ts > this.ttl) {\r\n this.cache.delete(key);\r\n return undefined;\r\n }\r\n\r\n // delete the key/value pair from cache and then set it again to put\r\n // the retrieved key/value pair back at the front for the map\r\n this.cache.delete(key);\r\n this.cache.set(key, [value, ts]);\r\n\r\n return value;\r\n }\r\n\r\n set(key: string, value: any) {\r\n this.cache.delete(key);\r\n\r\n if (this.cache.size === this.sizeLimit) {\r\n this.cache.delete(this.cache.keys().next().value);\r\n }\r\n this.cache.set(key, [value, Date.now()]);\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\n\r\nimport type { Asset, AssetType, Content, Event, LogbookEntry, Task } from '@hahnpro/hpc-api';\r\nimport { ReferenceType } from '@hahnpro/hpc-api';\r\nimport { ApiService } from '../core/api.service';\r\nimport { OwnerResolverService } from '../core/owner-resolver.service';\r\n\r\nexport interface Status {\r\n isComplete?: boolean;\r\n isError?: boolean;\r\n isLoading?: boolean;\r\n notFound?: boolean;\r\n}\r\n\r\n@Injectable()\r\nexport class ContextService {\r\n cache = new Map<string, Asset | AssetType | Content | Event | LogbookEntry | Task>();\r\n status = new Map<string, Status>();\r\n\r\n private readonly apiService = inject(ApiService);\r\n private readonly ownerResolver = inject(OwnerResolverService);\r\n\r\n reset() {\r\n this.cache.clear();\r\n this.status.clear();\r\n }\r\n\r\n async loadReferences(references: ContextReference[]) {\r\n const assetIds = [];\r\n const contentIds = [];\r\n const eventIds = [];\r\n const assetTypeIds = [];\r\n const taskIds = [];\r\n const logbookEntryIds = [];\r\n\r\n for (const reference of references) {\r\n if (\r\n this.cache.has(reference.id) &&\r\n this.status.get(reference.id)?.isComplete\r\n ) {\r\n continue;\r\n }\r\n if (reference.resourceType === ReferenceType.ASSET) {\r\n assetIds.push(reference.id);\r\n } else if (reference.resourceType === ReferenceType.ASSET_TYPE) {\r\n assetTypeIds.push(reference.id);\r\n } else if (reference.resourceType === ReferenceType.DOCUMENT) {\r\n contentIds.push(reference.id);\r\n } else if (reference.resourceType === ReferenceType.EVENT) {\r\n eventIds.push(reference.id);\r\n } else if (reference.resourceType === ReferenceType.TASK) {\r\n taskIds.push(reference.id);\r\n } else if (reference.resourceType === ReferenceType.LOGBOOK_ENTRY) {\r\n logbookEntryIds.push(reference.id);\r\n }\r\n }\r\n\r\n if (assetIds.length > 0) {\r\n assetIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: false,\r\n isLoading: true,\r\n }),\r\n );\r\n this.apiService\r\n .getAssets({ filter: `_id=@${assetIds.join(',')}` })\r\n .then(async (response) => {\r\n const owners = await this.ownerResolver.resolveOwners(\r\n response.docs.map((a) => a.owner?.id),\r\n );\r\n const foundIds = new Set<string>();\r\n for (const asset of response.docs) {\r\n if (asset.owner?.id) {\r\n (asset.owner as any).name =\r\n owners[asset.owner.id] || asset.owner.id;\r\n }\r\n this.cache.set(asset.id, asset);\r\n this.status.set(asset.id, {\r\n isComplete: true,\r\n isError: false,\r\n isLoading: false,\r\n });\r\n foundIds.add(asset.id);\r\n }\r\n for (const id of assetIds) {\r\n if (!foundIds.has(id)) {\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n notFound: true,\r\n });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n assetIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n }),\r\n );\r\n });\r\n }\r\n\r\n if (assetTypeIds.length > 0) {\r\n assetTypeIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: false,\r\n isLoading: true,\r\n }),\r\n );\r\n this.apiService\r\n .getAssetTypes({ filter: `_id=@${assetTypeIds.join(',')}` })\r\n .then(async (response) => {\r\n const owners = await this.ownerResolver.resolveOwners(\r\n response.docs.map((a) => a.owner?.id),\r\n );\r\n const foundIds = new Set<string>();\r\n for (const assetType of response.docs) {\r\n if (assetType.owner?.id) {\r\n (assetType.owner as any).name =\r\n owners[assetType.owner.id] || assetType.owner.id;\r\n }\r\n this.cache.set(assetType.id, assetType);\r\n this.status.set(assetType.id, {\r\n isComplete: true,\r\n isError: false,\r\n isLoading: false,\r\n });\r\n foundIds.add(assetType.id);\r\n }\r\n for (const id of assetTypeIds) {\r\n if (!foundIds.has(id)) {\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n notFound: true,\r\n });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n assetTypeIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n }),\r\n );\r\n });\r\n }\r\n\r\n if (contentIds.length > 0) {\r\n contentIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: false,\r\n isLoading: true,\r\n }),\r\n );\r\n this.apiService\r\n .getContents({\r\n filter: `_id=@${contentIds.join(',')}`,\r\n populate: 'analysis',\r\n })\r\n .then(async (response) => {\r\n const owners = await this.ownerResolver.resolveOwners(\r\n response.docs.map((c) => c.owner?.id),\r\n );\r\n const foundIds = new Set<string>();\r\n for (const content of response.docs) {\r\n if (content.owner?.id) {\r\n (content.owner as any).name =\r\n owners[content.owner.id] || content.owner.id;\r\n }\r\n this.cache.set(content.id, content);\r\n this.status.set(content.id, {\r\n isComplete: true,\r\n isError: false,\r\n isLoading: false,\r\n });\r\n foundIds.add(content.id);\r\n }\r\n for (const id of contentIds) {\r\n if (!foundIds.has(id)) {\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n notFound: true,\r\n });\r\n }\r\n }\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n contentIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n }),\r\n );\r\n });\r\n }\r\n\r\n if (eventIds.length > 0) {\r\n eventIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: false,\r\n isLoading: true,\r\n }),\r\n );\r\n this.apiService\r\n .getEvents({ filter: `_id=@${eventIds.join(',')}` })\r\n .then(async (response) => {\r\n const owners = await this.ownerResolver.resolveOwners(\r\n response.docs.map((e) => e.owner?.id),\r\n );\r\n const foundIds = new Set<string>();\r\n for (const event of response.docs) {\r\n if (event.owner?.id) {\r\n (event.owner as any).name =\r\n owners[event.owner.id] || event.owner.id;\r\n }\r\n this.cache.set(event.id, event);\r\n this.status.set(event.id, {\r\n isComplete: true,\r\n isError: false,\r\n isLoading: false,\r\n });\r\n foundIds.add(event.id);\r\n }\r\n for (const id of eventIds) {\r\n if (!foundIds.has(id)) {\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n notFound: true,\r\n });\r\n }\r\n }\r\n const assetRefs = this.extractAssetReferences(response.docs);\r\n this.loadReferences(assetRefs);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n eventIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n }),\r\n );\r\n });\r\n }\r\n\r\n if (taskIds.length > 0) {\r\n taskIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: false,\r\n isLoading: true,\r\n }),\r\n );\r\n this.apiService\r\n .getTasks({ filter: `_id=@${taskIds.join(',')}` })\r\n .then(async (response) => {\r\n const owners = await this.ownerResolver.resolveOwners(\r\n response.docs.map((t) => t.owner?.id),\r\n );\r\n const foundIds = new Set<string>();\r\n for (const task of response.docs) {\r\n if (task.owner?.id) {\r\n (task.owner as any).name =\r\n owners[task.owner.id] || task.owner.id;\r\n }\r\n this.cache.set(task.id, task);\r\n this.status.set(task.id, {\r\n isComplete: true,\r\n isError: false,\r\n isLoading: false,\r\n });\r\n foundIds.add(task.id);\r\n }\r\n for (const id of taskIds) {\r\n if (!foundIds.has(id)) {\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n notFound: true,\r\n });\r\n }\r\n }\r\n const assetRefs = this.extractAssetReferences(response.docs);\r\n this.loadReferences(assetRefs);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n taskIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n }),\r\n );\r\n });\r\n }\r\n\r\n if (logbookEntryIds.length > 0) {\r\n logbookEntryIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: false,\r\n isLoading: true,\r\n }),\r\n );\r\n this.apiService\r\n .getLogbookEntriesByIds(logbookEntryIds)\r\n .then(async (logbookEntries) => {\r\n const foundIds = new Set<string>();\r\n for (const logbookEntry of logbookEntries) {\r\n this.cache.set(logbookEntry.id, logbookEntry);\r\n this.status.set(logbookEntry.id, {\r\n isComplete: true,\r\n isError: false,\r\n isLoading: false,\r\n });\r\n foundIds.add(logbookEntry.id);\r\n }\r\n for (const id of logbookEntryIds) {\r\n if (!foundIds.has(id)) {\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n notFound: true,\r\n });\r\n }\r\n }\r\n const taskRefs = this.extractTaskReferences(logbookEntries);\r\n this.loadReferences(taskRefs);\r\n })\r\n .catch((error) => {\r\n console.error(error);\r\n logbookEntryIds.forEach((id) =>\r\n this.status.set(id, {\r\n isComplete: false,\r\n isError: true,\r\n isLoading: false,\r\n }),\r\n );\r\n });\r\n }\r\n }\r\n\r\n getContext(id: string): Asset | AssetType | Content | Event | LogbookEntry | Task {\r\n return this.cache.get(id);\r\n }\r\n\r\n assetForContent(contentId: string): Asset | null {\r\n for (const resource of this.cache.values()) {\r\n if ((resource as Asset).attachments?.includes(contentId)) {\r\n return resource as Asset;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n assetForEvent(event: Event): Asset | null {\r\n if (event.assetRef) {\r\n return this.cache.get(event.assetRef) as Asset;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n assetForTask(task: Task): Asset | null {\r\n if (task.assetRef) {\r\n return this.cache.get(task.assetRef) as Asset;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n taskForLogbookEntry(logbookEntry: LogbookEntry): Task | null {\r\n if (logbookEntry.taskId) {\r\n return this.cache.get(logbookEntry.taskId) as Task;\r\n }\r\n return null;\r\n }\r\n\r\n getIdForName(name: string): string | null {\r\n for (const resource of this.cache.values()) {\r\n if (\r\n (resource as Asset | AssetType | Event | Task).name?.toLowerCase() ===\r\n name.toLowerCase() ||\r\n (resource as Content).filename?.toLowerCase() === name.toLowerCase()\r\n ) {\r\n return resource.id;\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private extractAssetReferences(docs: { assetRef?: string }[]): ContextReference[] {\r\n return docs.reduce<ContextReference[]>((results, { assetRef }) => {\r\n if (assetRef) {\r\n results.push({ id: assetRef, resourceType: ReferenceType.ASSET } as ContextReference);\r\n }\r\n return results;\r\n }, []);\r\n }\r\n\r\n private extractTaskReferences(logbookEntries: LogbookEntry[]): ContextReference[] {\r\n return logbookEntries.reduce<ContextReference[]>((results, { taskId }) => {\r\n if (taskId) {\r\n results.push({ id: taskId, resourceType: ReferenceType.TASK } as ContextReference);\r\n }\r\n return results;\r\n }, []);\r\n }\r\n}\r\n\r\nexport interface ContextReference {\r\n reference_id: number;\r\n id: string;\r\n resourceType: ReferenceType;\r\n pageNumber?: number;\r\n firstOccurrence?: boolean;\r\n retrievalDate?: string;\r\n title?: string;\r\n}\r\n","import { Injectable, inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { io, Socket } from 'socket.io-client';\r\n\r\nimport { ApiService } from '../core/api.service';\r\n\r\n@Injectable()\r\nexport class WebsocketService {\r\n private socket: Socket;\r\n\r\n subscribersCounter: Record<string, number> = {};\r\n eventObservables$: Record<string, Observable<any>> = {};\r\n\r\n init(apiService: ApiService): void {\r\n this.socket = io(apiService.baseUrl, {\r\n path: `/api/ws/ai`,\r\n auth: (cb) => {\r\n apiService.getAccessToken().then((token) => {\r\n cb({ token: 'Bearer ' + token });\r\n });\r\n },\r\n });\r\n }\r\n\r\n emitToAi(\r\n threadId: string,\r\n message: string,\r\n context?: {\r\n timeZone?: string;\r\n data?: Record<string, unknown>;\r\n useWebSearch?: boolean;\r\n },\r\n toolCallId?: string,\r\n result?: any,\r\n ): Socket {\r\n return this.socket.emit('message', {\r\n threadId,\r\n message,\r\n context,\r\n toolCallId,\r\n result,\r\n });\r\n }\r\n\r\n emitToolCallResult(\r\n threadId: string,\r\n toolCallId: string,\r\n result: any,\r\n ): Socket {\r\n return this.socket.emit('message', { threadId, toolCallId, result });\r\n }\r\n\r\n emitRetry(threadId: string, messageId: string): Socket {\r\n return this.socket.emit('retry', { threadId, messageId });\r\n }\r\n\r\n abortAi(threadId: string): Socket {\r\n return this.socket.emit('abort', { threadId });\r\n }\r\n\r\n subscribeToThread(threadId: string): Observable<any> {\r\n return new Observable((observer) => {\r\n const listener = (data) => observer.next(data);\r\n this.socket.on(threadId, listener);\r\n });\r\n }\r\n\r\n unsubscribeFromThread(threadId: string) {\r\n this.socket.removeListener(threadId);\r\n }\r\n}\r\n","import { AiAssistantId } from '@hahnpro/hpc-api';\r\nimport { ChatAssistantType } from './chat-dialog/chat-dialog.component';\r\n\r\nconst enum ContextType {\r\n TOP_LEVEL = 'topLevel',\r\n STRING = 'string',\r\n STRING_ESCAPED = 'stringEscaped',\r\n STRING_UNICODE = 'stringUnicode',\r\n NUMBER = 'number',\r\n NUMBER_NEEDS_DIGIT = 'numberNeedsDigit',\r\n NUMBER_NEEDS_EXPONENT = 'numberNeedsExponent',\r\n TRUE = 'true',\r\n FALSE = 'false',\r\n NULL = 'null',\r\n ARRAY_NEEDS_VALUE = 'arrayNeedsValue',\r\n ARRAY_NEEDS_COMMA = 'arrayNeedsComma',\r\n OBJECT_NEEDS_KEY = 'objectNeedsKey',\r\n OBJECT_NEEDS_COLON = 'objectNeedsColon',\r\n OBJECT_NEEDS_VALUE = 'objectNeedsValue',\r\n OBJECT_NEEDS_COMMA = 'objectNeedsComma',\r\n}\r\n\r\nconst enum RespawnReason {\r\n STRING_ESCAPE = 'stringEscape',\r\n COLLECTION_ITEM = 'collectionItem',\r\n}\r\n\r\nfunction isWhitespace(char: string): boolean {\r\n return '\\u0020\\u000D\\u000A\\u0009'.indexOf(char) >= 0;\r\n}\r\n\r\nexport function getAssistantIdForType(type: ChatAssistantType): AiAssistantId {\r\n switch (type) {\r\n case 'asset':\r\n case 'help':\r\n return AiAssistantId.ASSET;\r\n case 'report':\r\n return AiAssistantId.REPORT;\r\n case 'incident':\r\n return AiAssistantId.INCIDENT;\r\n }\r\n}\r\n\r\n\r\n// based on https://github.com/dphilipson/untruncate-json\r\nexport function untruncateJson(json: string): string {\r\n const contextStack: ContextType[] = [ContextType.TOP_LEVEL];\r\n let position = 0;\r\n let respawnPosition: number | undefined;\r\n let respawnStackLength: number | undefined;\r\n let respawnReason: RespawnReason | undefined;\r\n\r\n const push = (context: ContextType) => contextStack.push(context);\r\n const replace = (context: ContextType) =>\r\n (contextStack[contextStack.length - 1] = context);\r\n const setRespawn = (reason: RespawnReason) => {\r\n if (respawnPosition == null) {\r\n respawnPosition = position;\r\n respawnStackLength = contextStack.length;\r\n respawnReason = reason;\r\n }\r\n };\r\n const clearRespawn = (reason: RespawnReason) => {\r\n if (reason === respawnReason) {\r\n respawnPosition = undefined;\r\n respawnStackLength = undefined;\r\n respawnReason = undefined;\r\n }\r\n };\r\n const pop = () => contextStack.pop();\r\n const dontConsumeCharacter = () => position--;\r\n\r\n const startAny = (char: string) => {\r\n if ('0' <= char && char <= '9') {\r\n push(ContextType.NUMBER);\r\n return;\r\n }\r\n switch (char) {\r\n case '\"':\r\n push(ContextType.STRING);\r\n return;\r\n case '-':\r\n push(ContextType.NUMBER_NEEDS_DIGIT);\r\n return;\r\n case 't':\r\n push(ContextType.TRUE);\r\n return;\r\n case 'f':\r\n push(ContextType.FALSE);\r\n return;\r\n case 'n':\r\n push(ContextType.NULL);\r\n return;\r\n case '[':\r\n push(ContextType.ARRAY_NEEDS_VALUE);\r\n return;\r\n case '{':\r\n push(ContextType.OBJECT_NEEDS_KEY);\r\n return;\r\n }\r\n };\r\n\r\n for (const { length } = json; position < length; position++) {\r\n const char = json[position];\r\n switch (contextStack[contextStack.length - 1]) {\r\n case ContextType.TOP_LEVEL:\r\n startAny(char);\r\n break;\r\n case ContextType.STRING:\r\n switch (char) {\r\n case '\"':\r\n pop();\r\n break;\r\n case '\\\\':\r\n setRespawn(RespawnReason.STRING_ESCAPE);\r\n push(ContextType.STRING_ESCAPED);\r\n break;\r\n }\r\n break;\r\n case ContextType.STRING_ESCAPED:\r\n if (char === 'u') {\r\n push(ContextType.STRING_UNICODE);\r\n } else {\r\n clearRespawn(RespawnReason.STRING_ESCAPE);\r\n pop();\r\n }\r\n break;\r\n case ContextType.STRING_UNICODE:\r\n if (position - json.lastIndexOf('u', position) === 4) {\r\n clearRespawn(RespawnReason.STRING_ESCAPE);\r\n pop();\r\n }\r\n break;\r\n case ContextType.NUMBER:\r\n if (char === '.') {\r\n replace(ContextType.NUMBER_NEEDS_DIGIT);\r\n } else if (char === 'e' || char === 'E') {\r\n replace(ContextType.NUMBER_NEEDS_EXPONENT);\r\n } else if (char < '0' || char > '9') {\r\n dontConsumeCharacter();\r\n pop();\r\n }\r\n break;\r\n case ContextType.NUMBER_NEEDS_DIGIT:\r\n replace(ContextType.NUMBER);\r\n break;\r\n case ContextType.NUMBER_NEEDS_EXPONENT:\r\n if (char === '+' || char === '-') {\r\n replace(ContextType.NUMBER_NEEDS_DIGIT);\r\n } else {\r\n replace(ContextType.NUMBER);\r\n }\r\n break;\r\n case ContextType.TRUE:\r\n case ContextType.FALSE:\r\n case ContextType.NULL:\r\n if (char < 'a' || char > 'z') {\r\n dontConsumeCharacter();\r\n pop();\r\n }\r\n break;\r\n case ContextType.ARRAY_NEEDS_VALUE:\r\n if (char === ']') {\r\n pop();\r\n } else if (!isWhitespace(char)) {\r\n clearRespawn(RespawnReason.COLLECTION_ITEM);\r\n replace(ContextType.ARRAY_NEEDS_COMMA);\r\n startAny(char);\r\n }\r\n break;\r\n case ContextType.ARRAY_NEEDS_COMMA:\r\n if (char === ']') {\r\n pop();\r\n } else if (char === ',') {\r\n setRespawn(RespawnReason.COLLECTION_ITEM);\r\n replace(ContextType.ARRAY_NEEDS_VALUE);\r\n }\r\n break;\r\n case ContextType.OBJECT_NEEDS_KEY:\r\n if (char === '}') {\r\n pop();\r\n } else if (char === '\"') {\r\n setRespawn(RespawnReason.COLLECTION_ITEM);\r\n replace(ContextType.OBJECT_NEEDS_COLON);\r\n push(ContextType.STRING);\r\n }\r\n break;\r\n case ContextType.OBJECT_NEEDS_COLON:\r\n if (char === ':') {\r\n replace(ContextType.OBJECT_NEEDS_VALUE);\r\n }\r\n break;\r\n case ContextType.OBJECT_NEEDS_VALUE:\r\n if (!isWhitespace(char)) {\r\n clearRespawn(RespawnReason.COLLECTION_ITEM);\r\n replace(ContextType.OBJECT_NEEDS_COMMA);\r\n startAny(char);\r\n }\r\n break;\r\n case ContextType.OBJECT_NEEDS_COMMA:\r\n if (char === '}') {\r\n pop();\r\n } else if (char === ',') {\r\n setRespawn(RespawnReason.COLLECTION_ITEM);\r\n replace(ContextType.OBJECT_NEEDS_KEY);\r\n }\r\n break;\r\n }\r\n }\r\n\r\n if (respawnStackLength != null) {\r\n contextStack.length = respawnStackLength;\r\n }\r\n const result = [\r\n respawnPosition != null ? json.slice(0, respawnPosition) : json,\r\n ];\r\n const finishWord = (word: string) =>\r\n result.push(word.slice(json.length - json.lastIndexOf(word[0])));\r\n for (let i = contextStack.length - 1; i >= 0; i--) {\r\n switch (contextStack[i]) {\r\n case ContextType.STRING:\r\n result.push('\"');\r\n break;\r\n case ContextType.NUMBER_NEEDS_DIGIT:\r\n case ContextType.NUMBER_NEEDS_EXPONENT:\r\n result.push('0');\r\n break;\r\n case ContextType.TRUE:\r\n finishWord('true');\r\n break;\r\n case ContextType.FALSE:\r\n finishWord('false');\r\n break;\r\n case ContextType.NULL:\r\n finishWord('null');\r\n break;\r\n case ContextType.ARRAY_NEEDS_VALUE:\r\n case ContextType.ARRAY_NEEDS_COMMA:\r\n result.push(']');\r\n break;\r\n case ContextType.OBJECT_NEEDS_KEY:\r\n case ContextType.OBJECT_NEEDS_COLON:\r\n case ContextType.OBJECT_NEEDS_VALUE:\r\n case ContextType.OBJECT_NEEDS_COMMA:\r\n result.push('}');\r\n break;\r\n }\r\n }\r\n return result.join('');\r\n}\r\n","import {\r\n ChangeDetectorRef,\r\n effect,\r\n inject,\r\n Injectable,\r\n NgZone,\r\n signal,\r\n WritableSignal,\r\n} from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TranslocoService } from '@jsverse/transloco';\r\nimport { Subject, Subscription, takeUntil } from 'rxjs';\r\n\r\nimport {\r\n AiAssistant,\r\n AiAssistantId,\r\n AssistantMessage as AiAssistantMessage,\r\n AssistantMessageStatus,\r\n AvailableLanguages,\r\n FinishReason,\r\n Message,\r\n ReferenceType,\r\n Role,\r\n SystemMessage,\r\n ThreadPopulated,\r\n ToolMessage,\r\n ToolMessageStatus,\r\n ToolType,\r\n UserMessage as AiUserMessage,\r\n} from '@hahnpro/hpc-api';\r\nimport { ApiService } from '../core/api.service';\r\nimport { ContextReference, ContextService } from './context.service';\r\nimport { WebsocketService } from './websocket.service';\r\nimport { untruncateJson } from './utils';\r\n\r\nexport enum ChatView {\r\n Start,\r\n Thread,\r\n ThreadList,\r\n}\r\n\r\nconst ChatViewTitles = {\r\n [ChatView.ThreadList]: 'ai.chats',\r\n};\r\n\r\n@Injectable()\r\nexport class ChatService {\r\n readonly ChatView = ChatView;\r\n highlightContext: string | null = null;\r\n isLoading = false;\r\n model: string | null = null;\r\n isProcessing = false;\r\n\r\n public threadEventSubject = new Subject<{\r\n type: WebSocketMessageType;\r\n data: Message;\r\n }>();\r\n\r\n private readonly apiService = inject(ApiService);\r\n private readonly contextService = inject(ContextService);\r\n private readonly destroy$ = new Subject<void>();\r\n private readonly router = inject(Router);\r\n private readonly socket = inject(WebsocketService);\r\n private readonly translocoService = inject(TranslocoService);\r\n private readonly zone = inject(NgZone);\r\n private _cdRef: ChangeDetectorRef | null = null;\r\n private _activeView: ChatView = ChatView.Start;\r\n private _activeAssistant: AiAssistant | null = null;\r\n private _activeThread: ThreadPopulated | null = null;\r\n private _assistants: WritableSignal<AiAssistant[]> = signal([]);\r\n private _messages: WritableSignal<ChatMessage[]> = signal([]);\r\n private threadEvents$: Subscription | null = null;\r\n\r\n constructor() {\r\n effect(() => {\r\n const threadAssistantId = this.activeThread?.assistantId;\r\n if (\r\n threadAssistantId &&\r\n (!this.activeAssistant || this.activeAssistant.id !== threadAssistantId)\r\n ) {\r\n this._activeAssistant = this.assistants?.find(\r\n (a) => a.id === threadAssistantId,\r\n );\r\n }\r\n });\r\n }\r\n\r\n get activeAssistant(): AiAssistant {\r\n return this._activeAssistant;\r\n }\r\n\r\n getLocale(): string {\r\n return this.translocoService.getActiveLang() || AvailableLanguages.ENGLISH;\r\n }\r\n\r\n get activeThread(): ThreadPopulated | null {\r\n return this._activeThread;\r\n }\r\n\r\n get activeView(): ChatView {\r\n return this._activeView;\r\n }\r\n\r\n get assistants(): AiAssistant[] {\r\n return this._assistants();\r\n }\r\n\r\n get messages(): ChatMessage[] {\r\n return this._messages();\r\n }\r\n\r\n get title(): string {\r\n return ChatViewTitles[this.activeView];\r\n }\r\n\r\n setChangeDetector(cdRef: ChangeDetectorRef) {\r\n this._cdRef = cdRef;\r\n }\r\n\r\n async init() {\r\n if (this.assistants?.length > 0) {\r\n // already initialized\r\n return;\r\n }\r\n\r\n this.isLoading = true;\r\n try {\r\n this.socket.init(this.apiService);\r\n this._assistants.set(await this.apiService.getAssistants());\r\n const defaultAssistant = this.assistants.find(\r\n (a) => a.id === 'asset-assistant',\r\n );\r\n if (defaultAssistant) {\r\n this._activeAssistant = defaultAssistant;\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n async createThreadForModal(\r\n assistantId: AiAssistantId,\r\n initialMessage?: string,\r\n context?: Record<string, unknown> | null,\r\n ): Promise<void> {\r\n try {\r\n this.isLoading = true;\r\n this._messages.set([]);\r\n this._activeThread = await this.apiService.createThread(assistantId);\r\n this.setupWebsockets();\r\n if (initialMessage) {\r\n await this.sendMessage(initialMessage, context);\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n throw err;\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n async openEmptyThread(assistantId: AiAssistantId) {\r\n this._activeAssistant = this.assistants.find((a) => a.id === assistantId);\r\n if (!this.activeAssistant) {\r\n return;\r\n }\r\n this._activeView = ChatView.Thread;\r\n this._activeThread = null;\r\n this._messages.set([]);\r\n const welcomeMessage =\r\n this.activeAssistant.i18n[this.getLocale()]?.welcomeMessage;\r\n const currentDate = new Date().toISOString();\r\n this._messages.set([\r\n { thread: null,\r\n role: Role.ASSISTANT,\r\n content: welcomeMessage,\r\n createdAt: currentDate,\r\n updatedAt: currentDate,\r\n parsedContent: {\r\n response: welcomeMessage,\r\n references: [],\r\n },\r\n },\r\n ]);\r\n }\r\n\r\n async createThread(\r\n initialMessage?: string,\r\n assistantId?: AiAssistantId,\r\n ): Promise<void> {\r\n if (this.isLoading || (!this.activeAssistant?.id && !assistantId)) {\r\n return;\r\n }\r\n assistantId = assistantId ?? this.activeAssistant?.id;\r\n\r\n this.isLoading = true;\r\n try {\r\n const thread = await this.apiService.createThread(assistantId);\r\n if (initialMessage) {\r\n await this.sendMessage(initialMessage);\r\n }\r\n this.router.navigate(['/ai/threads', thread.id]);\r\n } catch (err) {\r\n console.error(err);\r\n } finally {\r\n this.isLoading = false;\r\n }\r\n }\r\n\r\n deleteThread(threadId: string) {\r\n if (threadId === this.activeThread?.id) {\r\n this._activeThread = null;\r\n }\r\n return this.apiService.deleteThread(threadId);\r\n }\r\n\r\n showStart() {\r\n this._activeView = ChatView.Start;\r\n }\r\n\r\n showThreadList() {\r\n if (this._activeView === ChatView.ThreadList) {\r\n return;\r\n }\r\n this._activeView = ChatView.ThreadList;\r\n }\r\n\r\n async openThread(\r\n thread: string | ThreadPopulated,\r\n isNewThread = false,\r\n ): Promise<void> {\r\n if (!thread) {\r\n return;\r\n }\r\n if (typeof thread === 'string') {\r\n thread = await this.apiService.getThread(thread);\r\n }\r\n\r\n this._activeThread = thread;\r\n this._activeView = ChatView.Thread;\r\n if (isNewThread) {\r\n this._messages.set([]);\r\n } else {\r\n await this.getMessages();\r\n }\r\n this.setupWebsockets();\r\n }\r\n\r\n getAssistantName(thread: ThreadPopulated): string {\r\n const assistant = this.assistants.find((a) => a.id === thread.assistantId);\r\n return assistant?.i18n?.[this.getLocale()]?.name;\r\n }\r\n\r\n private async getMessages(): Promise<void> {\r\n const threadId = this.activeThread?.id;\r\n if (!threadId) {\r\n return;\r\n }\r\n this._messages.set([]);\r\n this.isLoading = true;\r\n try {\r\n const { docs: messages } = await this.apiService.getThreadMessages(threadId);\r\n this.isLoading = false;\r\n if (messages.length === 0) {\r\n const assistant = this.assistants.find(\r\n (a) => a.id === this.activeThread.assistantId,\r\n );\r\n const welcomeMessage = assistant.i18n[this.getLocale()]?.welcomeMessage;\r\n const currentDate = new Date().toISOString();\r\n this._messages.set([\r\n { thread: threadId,\r\n role: Role.ASSISTANT,\r\n content: welcomeMessage,\r\n createdAt: currentDate,\r\n updatedAt: currentDate,\r\n parsedContent: {\r\n response: welcomeMessage,\r\n references: [],\r\n },\r\n },\r\n ]);\r\n } else {\r\n messages.reverse().forEach((message) => this.updateMessage(message));\r\n }\r\n } catch (err) {\r\n this.isLoading = false;\r\n console.error(err);\r\n throw err;\r\n }\r\n }\r\n\r\n async sendMessage(\r\n content: string,\r\n context: Record<string, unknown> = {},\r\n ): Promise<void> {\r\n content = content.trim();\r\n if (!content || !this.activeAssistant?.id) {\r\n return;\r\n }\r\n const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;\r\n context = { ...context, timeZone };\r\n\r\n if (!this.activeThread) {\r\n const message = await this.apiService.addMessage(\r\n content,\r\n null,\r\n this.activeAssistant.id,\r\n context,\r\n );\r\n if (message.thread) {\r\n this.isProcessing = true;\r\n return this.openThread(message.thread);\r\n }\r\n } else {\r\n const messages = this._messages();\r\n const item = messages[messages.length - 1];\r\n if (\r\n item?.role === Role.TOOL &&\r\n item?.toolType === ToolType.CHOICE &&\r\n item?.status === ToolMessageStatus.AWAITING_USER_INTERACTION &&\r\n item?.args?.choices\r\n ) {\r\n // the last message was a tool-call, it needs to be finished by setting `thread` and `toolCallId`\r\n this.socket.emitToAi(\r\n this.activeThread.id,\r\n content,\r\n context,\r\n item.toolCallId,\r\n 'none',\r\n );\r\n } else {\r\n this.socket.emitToAi(this.activeThread.id, content, context);\r\n }\r\n }\r\n }\r\n\r\n selectChoice(selection: any, toolMessage: any) {\r\n this.socket.emitToolCallResult(\r\n toolMessage.thread,\r\n toolMessage.toolCallId,\r\n selection,\r\n );\r\n }\r\n\r\n closeThread() {\r\n if (this.threadEvents$) {\r\n this.threadEvents$.unsubscribe();\r\n this.threadEvents$ = null;\r\n }\r\n if (this.activeThread?.id) {\r\n this.socket.unsubscribeFromThread(this.activeThread.id);\r\n }\r\n this._activeThread = null;\r\n }\r\n\r\n async abortThread() {\r\n if (this.activeThread?.id) {\r\n this.socket.abortAi(this.activeThread.id);\r\n }\r\n }\r\n\r\n private setupWebsockets(): void {\r\n if (this.threadEvents$) {\r\n this.threadEvents$.unsubscribe();\r\n this.threadEvents$ = null;\r\n }\r\n if (!this.activeThread) {\r\n return;\r\n }\r\n\r\n if (this.activeThread) {\r\n this.threadEvents$ = this.socket\r\n .subscribeToThread(this.activeThread.id)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe(\r\n ({ type, data }: { type: WebSocketMessageType; data: Message }) => {\r\n this.zone.run(() => {\r\n this.handleThreadEvent(type, data);\r\n });\r\n },\r\n );\r\n }\r\n }\r\n\r\n private collectContext(references: ContextReference[]) {\r\n if (!references?.length) {\r\n return;\r\n }\r\n const seenIds = new Set<string>();\r\n references.forEach((ref) => {\r\n if (!seenIds.has(ref.id)) {\r\n ref.firstOccurrence = true;\r\n }\r\n seenIds.add(ref.id);\r\n });\r\n const refs = references.filter((ref) => ref.firstOccurrence);\r\n this.contextService.loadReferences(refs);\r\n }\r\n\r\n private handleThreadEvent(type: WebSocketMessageType, message: Message) {\r\n if (type === WebSocketMessageType.AI_PROCESSING) {\r\n // Message is being processed\r\n this.isProcessing = true;\r\n } else if (type === WebSocketMessageType.AI_MESSAGE) {\r\n // Message received\r\n this.updateMessage(message);\r\n } else if (type === WebSocketMessageType.AI_PARTIAL_MESSAGE) {\r\n // Message Delta received\r\n this.updatePartialMessage(message as AssistantMessage);\r\n } else if (type === WebSocketMessageType.AI_COMPLETE) {\r\n // Message processing is complete\r\n this.isProcessing = false;\r\n } else if (type === WebSocketMessageType.AI_ABORTED) {\r\n // Message processing was aborted\r\n this.isProcessing = false;\r\n } else if (\r\n type === WebSocketMessageType.AI_FAILED_TO_PROCESS ||\r\n type === WebSocketMessageType.AI_INVALID_MESSAGE\r\n ) {\r\n // Message processing failed or message is invalid\r\n this.isProcessing = false;\r\n console.error(message);\r\n this.updateMessage({\r\n id: globalThis.crypto.randomUUID(),\r\n thread: this.activeThread.id,\r\n role: Role.ASSISTANT,\r\n status: AssistantMessageStatus.FAILED,\r\n content: this.translocoService.translate(\r\n 'ai.failed_to_process_message',\r\n ),\r\n finishReason: FinishReason.ERROR,\r\n });\r\n } else {\r\n // ignore event\r\n }\r\n // ensure change detection is triggered after processing the event\r\n this.threadEventSubject.next({ type, data: message });\r\n if (this._cdRef) {\r\n this._cdRef.markForCheck();\r\n }\r\n }\r\n\r\n private updateMessage(message: Message) {\r\n const currentMessages = this._messages();\r\n const index = currentMessages.findIndex(\r\n (m) =>\r\n (m.id && m.id === message.id) ||\r\n (m.responseId && m.responseId === message.responseId),\r\n );\r\n let newMessage: ChatMessage;\r\n\r\n if (message.role === Role.ASSISTANT) {\r\n newMessage = { ...message } as AssistantMessage;\r\n if (message.content) {\r\n try {\r\n newMessage.parsedContent = JSON.parse(\r\n untruncateJson(message.content),\r\n );\r\n } catch (_) {\r\n newMessage.parsedContent = {\r\n response: message.content,\r\n references: [],\r\n };\r\n }\r\n newMessage = this.prettifyMessage(newMessage);\r\n this.collectContext(newMessage.parsedContent?.references);\r\n }\r\n } else if (message.role === Role.USER) {\r\n if (message.content) {\r\n newMessage = { ...message } as UserMessage;\r\n newMessage = this.prettifyMessage(newMessage);\r\n this.collectContext(newMessage.parsedContent?.references);\r\n }\r\n }\r\n if (index !== -1) {\r\n this._messages.update((msgs) => {\r\n const newMsgs = [...msgs];\r\n newMsgs[index] = newMessage || message;\r\n return newMsgs;\r\n });\r\n } else {\r\n this._messages.update((msgs) => [...msgs, newMessage || message]);\r\n }\r\n }\r\n\r\n private updatePartialMessage(message: AssistantMessage) {\r\n const currentMessages = this._messages();\r\n const index = currentMessages.findIndex(\r\n (m) => m.responseId && m.responseId === message.responseId,\r\n );\r\n if (index === -1) {\r\n return this.updateMessage(message);\r\n }\r\n\r\n this._messages.update((msgs) => {\r\n const newMsgs = [...msgs];\r\n const newMessage = { ...newMsgs[index] } as AssistantMessage;\r\n\r\n newMessage.content = newMessage.content + message.content;\r\n try {\r\n newMessage.parsedContent = JSON.parse(\r\n untruncateJson(newMessage.content),\r\n );\r\n this.collectContext(newMessage.parsedContent?.references);\r\n } catch (_) {\r\n newMessage.parsedContent = {\r\n response: newMessage.content,\r\n references: [],\r\n };\r\n }\r\n newMsgs[index] = newMessage;\r\n return newMsgs;\r\n });\r\n }\r\n\r\n private prettifyMessage(\r\n message: UserMessage | AssistantMessage,\r\n ): UserMessage | AssistantMessage {\r\n message.parsedContent = this.replaceIds(message);\r\n message.parsedContent.response = this.replaceJsonWithMdTable(\r\n message.parsedContent.response,\r\n );\r\n return message;\r\n }\r\n\r\n /**\r\n * Replace IDs in the message content with a more readable format, which can be processed to properly identify references. * @param message The message to process.\r\n * @returns The processed message content.\r\n */ private replaceIds(message: UserMessage | AssistantMessage): MessageContent {\r\n let response: string =\r\n message.parsedContent?.response || message.content || '';\r\n const references: ContextReference[] =\r\n message.parsedContent?.references || [];\r\n const suggestions = message.parsedContent?.suggestions || [];\r\n const bracketedIdRegExp = /\\(([iI][dD]):?[ \\t]*'?([0-9a-fA-F]{24})'?\\)/g;\r\n const unbracketedIdRegExp = /([iI][dD])[ \\t]+'?([0-9a-fA-F]{24})'?/g;\r\n let index = message.parsedContent?.references?.length + 1 || 1;\r\n\r\n response = response.replace(bracketedIdRegExp, (match, idText, id) => {\r\n const before = response.slice(0, response.indexOf(match));\r\n const lastKeywordCheck = this.checkLastKeyword(before);\r\n\r\n if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Asset') {\r\n references.push({ id, resourceType: ReferenceType.ASSET, reference_id: index++ });\r\n return '';\r\n } else if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Typ') {\r\n references.push({ id, resourceType: ReferenceType.ASSET_TYPE, reference_id: index++ });\r\n return '';\r\n }\r\n\r\n return `[[${id}]]`;\r\n });\r\n\r\n response = response.replace(unbracketedIdRegExp, (match, idText, id) => {\r\n const before = response.slice(0, response.indexOf(match));\r\n const lastKeywordCheck = this.checkLastKeyword(before);\r\n\r\n if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Asset') {\r\n references.push({ id, resourceType: ReferenceType.ASSET, reference_id: index++ });\r\n return idText;\r\n } else if (lastKeywordCheck && lastKeywordCheck.lastKeyword === 'Typ') {\r\n references.push({ id, resourceType: ReferenceType.ASSET_TYPE, reference_id: index++ });\r\n return idText;\r\n }\r\n\r\n return idText;\r\n });\r\n\r\n return { response, references, suggestions };\r\n }\r\n\r\n /**\r\n * Check if the last keyword in the string is 'Asset' or 'Typ'. * @param str The string to check.\r\n * @returns An object with the last keyword and its index, or null if neither is found.\r\n */ private checkLastKeyword(\r\n str: string,\r\n ): { lastKeyword: string; result: number } | null {\r\n const lowerStr = str.toLowerCase();\r\n const typVariants = [\r\n 'typ',\r\n 'type',\r\n 'assettype',\r\n 'assettyp',\r\n 'asset-type',\r\n 'asset-typ',\r\n ];\r\n const lastTypIndex = Math.max(\r\n ...typVariants.map((v) => lowerStr.lastIndexOf(v)),\r\n );\r\n const lastAssetIndex = lowerStr.lastIndexOf('asset');\r\n\r\n if (lastTypIndex === -1 && lastAssetIndex === -1) {\r\n return null;\r\n } else if (lastAssetIndex > lastTypIndex) {\r\n return { lastKeyword: 'Asset', result: lastAssetIndex };\r\n } else if (lastTypIndex !== -1) {\r\n return { lastKeyword: 'Typ', result: lastTypIndex };\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * Prettify JSON strings in messages by converting them to a Markdown table. * @param content The content of the message.\r\n * @returns The prettified content.\r\n */ private replaceJsonWithMdTable(content: string): string {\r\n const jsonRegExp =\r\n /(```json)?\\s*(```)?(\\{\\s*((\"[^\"]*\"\\s*:\\s*\"[^\"]*\"\\s*)(\\s*,\\s*\"[^\"]*\"\\s*:\\s*\"[^\"]*\"\\s*)*)\\})\\s*(```)?/;\r\n if (jsonRegExp.test(content)) {\r\n while (jsonRegExp.test(content)) {\r\n const match = jsonRegExp.exec(content);\r\n const first = match.index;\r\n const last = match.index + match[0].length - 1;\r\n try {\r\n const jsonString = match[3];\r\n const jsonObj = JSON.parse(jsonString);\r\n let markdownTable = '\\n\\n| | |\\n| --- | --- |\\n';\r\n for (const key in jsonObj) {\r\n if (Object.prototype.hasOwnProperty.call(jsonObj, key)) {\r\n const value = String(jsonObj[key]).replace(/\\|/g, '\\\\|');\r\n markdownTable += `| **${key}** | ${value} |\\n`;\r\n }\r\n }\r\n markdownTable += '\\n';\r\n const partOne = content.slice(0, first);\r\n const partTwo = content.slice(last + 1);\r\n content = partOne + markdownTable + partTwo;\r\n } catch (error) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return content;\r\n }\r\n\r\n retryMessage(message: AssistantMessage): void {\r\n if (\r\n !message ||\r\n !this.activeThread?.id ||\r\n this.isProcessing ||\r\n message.role !== Role.ASSISTANT\r\n ) {\r\n return;\r\n }\r\n\r\n this.isProcessing = true;\r\n this._messages.update((msgs) => msgs.filter((m) => m.id !== message.id));\r\n\r\n this.socket.emitRetry(this.activeThread.id, message.id);\r\n }\r\n}\r\n\r\ninterface MessageContent {\r\n suggestions?: string[];\r\n response: string;\r\n references: ContextReference[];\r\n}\r\n\r\nexport interface AssistantMessage extends AiAssistantMessage {\r\n role: Role.ASSISTANT;\r\n parsedContent?: MessageContent;\r\n}\r\n\r\nexport interface UserMessage extends AiUserMessage {\r\n role: Role.USER;\r\n parsedContent?: MessageContent;\r\n}\r\n\r\nexport type ChatMessage =\r\n | AssistantMessage\r\n | SystemMessage\r\n | ToolMessage\r\n | UserMessage;\r\n\r\nexport enum WebSocketMessageType {\r\n AI_ABORTED = 'ai_aborted',\r\n AI_ABORT_FAILED = 'ai_abort_failed',\r\n AI_COMPLETE = 'ai_complete',\r\n AI_FAILED_TO_PROCESS = 'ai_failed_to_process',\r\n AI_INVALID_MESSAGE = 'ai_invalid_message',\r\n AI_MESSAGE = 'ai_message',\r\n AI_PARTIAL_MESSAGE = 'ai_partial_message',\r\n AI_PROCESSING = 'ai_processing',\r\n}\r\n","import { inject, Injectable, signal } from '@angular/core';\nimport { NGXLogger } from 'ngx-logger';\n\nimport { ApiService } from '../core/api.service';\n\nconst AUDIO_MIME_TYPES = [\n 'audio/webm;codecs=opus',\n 'audio/webm',\n 'audio/mp4',\n 'audio/ogg;codecs=opus',\n];\nconst AUDIO_CHUNK_INTERVAL_MS = 250;\nconst MAX_AUDIO_SIZE_BYTES = 25_000_000;\nconst WAVEFORM_BAR_COUNT = 48;\nconst WAVEFORM_MIN_HEIGHT = 4;\nconst WAVEFORM_MAX_HEIGHT = 56;\nconst WAVEFORM_SAMPLE_INTERVAL_MS = 50;\nconst WAVEFORM_NOISE_FLOOR = 0.015;\nconst WAVEFORM_SPEECH_RMS = 0.18;\nconst SPEECH_DETECTION_RMS = 0.025;\nconst SPEECH_DETECTION_SAMPLE_COUNT = 3;\nconst WAVEFORM_SILENCE = Array.from(\n { length: WAVEFORM_BAR_COUNT },\n () => WAVEFORM_MIN_HEIGHT,\n);\n\ntype VoiceInputState = 'idle' | 'requesting' | 'recording' | 'transcribing';\n\n@Injectable({ providedIn: 'root' })\nexport class VoiceRecognitionService {\n private readonly apiService = inject(ApiService);\n private readonly logger = inject(NGXLogger);\n private mediaRecorder: MediaRecorder | null = null;\n private mediaStream: MediaStream | null = null;\n private audioContext: AudioContext | null = null;\n private audioSource: MediaStreamAudioSourceNode | null = null;\n private analyser: AnalyserNode | null = null;\n private waveformSamples: Uint8Array<ArrayBuffer> | null = null;\n private waveformAnimationFrame: number | null = null;\n private lastWaveformSampleAt = -WAVEFORM_SAMPLE_INTERVAL_MS;\n private audioChunks: Blob[] = [];\n private durationTimer: ReturnType<typeof setInterval> | null = null;\n private transcriptionAbortController: AbortController | null = null;\n private speechDetectionAvailable = false;\n private consecutiveSpeechSamples = 0;\n private hasDetectedSpeech = false;\n private startedAt = 0;\n private sessionId = 0;\n private _durationSeconds = 0;\n private _state: VoiceInputState = 'idle';\n private readonly _waveformBars = signal([...WAVEFORM_SILENCE]);\n\n readonly waveformBars = this._waveformBars.asReadonly();\n\n get isRecording(): boolean {\n return this._state === 'recording';\n }\n\n get isStarting(): boolean {\n return this._state === 'requesting';\n }\n\n get isTranscribing(): boolean {\n return this._state === 'transcribing';\n }\n\n get isActive(): boolean {\n return this._state !== 'idle';\n }\n\n get durationSeconds(): number {\n return this._durationSeconds;\n }\n\n async start(): Promise<void> {\n if (this.isActive) {\n return;\n }\n\n if (\n !navigator.mediaDevices?.getUserMedia ||\n typeof MediaRecorder === 'undefined'\n ) {\n throw new Error('Voice recording is not supported by this browser.');\n }\n\n const sessionId = ++this.sessionId;\n this.resetSpeechDetection();\n this._state = 'requesting';\n try {\n const stream = await navigator.mediaDevices.getUserMedia({ audio: true });\n if (sessionId !== this.sessionId) {\n stream.getTracks().forEach((track) => track.stop());\n return;\n }\n\n const mimeType = AUDIO_MIME_TYPES.find((type) =>\n MediaRecorder.isTypeSupported(type),\n );\n this.mediaStream = stream;\n this.audioChunks = [];\n this.mediaRecorder = mimeType\n ? new MediaRecorder(stream, { audioBitsPerSecond: 32_000, mimeType })\n : new MediaRecorder(stream);\n this.mediaRecorder.addEventListener(\n 'dataavailable',\n (event: BlobEvent) => {\n if (event.data.size > 0) {\n this.audioChunks.push(event.data);\n }\n },\n );\n this.mediaRecorder.start(AUDIO_CHUNK_INTERVAL_MS);\n this.startWaveform(stream);\n this.startedAt = Date.now();\n this._durationSeconds = 0;\n this._state = 'recording';\n this.startDurationTimer();\n } catch (error) {\n if (sessionId !== this.sessionId) {\n return;\n }\n this.logger.error(error);\n this.cleanupRecording();\n this._state = 'idle';\n throw error;\n }\n }\n\n async accept(): Promise<string | null> {\n if (!this.isRecording || !this.mediaRecorder) {\n return null;\n }\n\n const sessionId = this.sessionId;\n this.updateDuration();\n this.stopDurationTimer();\n this.stopWaveform(false);\n this._state = 'transcribing';\n\n let transcriptionAbortController: AbortController | null = null;\n try {\n const audio = await this.stopRecorder();\n this.stopMediaStream();\n if (sessionId !== this.sessionId) {\n return null;\n }\n if (!audio.size) {\n throw new Error('No audio was recorded.');\n }\n if (audio.size > MAX_AUDIO_SIZE_BYTES) {\n throw new Error('The recording exceeds the 25 MB upload limit.');\n }\n if (this.speechDetectionAvailable && !this.hasDetectedSpeech) {\n return '';\n }\n\n const form = new FormData();\n form.append(\n 'file',\n audio,\n `voice-input.${this.fileExtension(audio.type)}`,\n );\n transcriptionAbortController = new AbortController();\n this.transcriptionAbortController = transcriptionAbortController;\n const transcript = await this.apiService.transcribeAudio(form, {\n signal: transcriptionAbortController.signal,\n });\n if (sessionId !== this.sessionId) {\n return null;\n }\n return transcript.text.trim();\n } catch (error) {\n if (sessionId !== this.sessionId) {\n return null;\n }\n this.logger.error(error);\n throw error;\n } finally {\n if (this.transcriptionAbortController === transcriptionAbortController) {\n this.transcriptionAbortController = null;\n }\n if (sessionId === this.sessionId) {\n this.reset();\n }\n }\n }\n\n async cancel(): Promise<void> {\n ++this.sessionId;\n this.transcriptionAbortController?.abort();\n this.transcriptionAbortController = null;\n this.stopDurationTimer();\n this.stopWaveform();\n try {\n await this.stopRecorder();\n } catch (error) {\n this.logger.debug(error);\n } finally {\n this.reset();\n }\n }\n\n private stopRecorder(): Promise<Blob> {\n const recorder = this.mediaRecorder;\n if (!recorder) {\n return Promise.resolve(new Blob());\n }\n if (recorder.state === 'inactive') {\n return Promise.resolve(this.recordedAudio(recorder.mimeType));\n }\n\n return new Promise<Blob>((resolve, reject) => {\n const onStop = () => {\n removeListeners();\n resolve(this.recordedAudio(recorder.mimeType));\n };\n const onError = (event: Event) => {\n removeListeners();\n reject(\n 'error' in event ? event.error : new Error('Voice recording failed.'),\n );\n };\n const removeListeners = () => {\n recorder.removeEventListener('stop', onStop);\n recorder.removeEventListener('error', onError);\n };\n\n recorder.addEventListener('stop', onStop, { once: true });\n recorder.addEventListener('error', onError, { once: true });\n recorder.stop();\n });\n }\n\n private recordedAudio(mimeType: string): Blob {\n return new Blob(this.audioChunks, {\n type: mimeType || this.audioChunks[0]?.type || 'audio/webm',\n });\n }\n\n private startDurationTimer(): void {\n this.stopDurationTimer();\n this.durationTimer = setInterval(\n () => this.updateDuration(),\n AUDIO_CHUNK_INTERVAL_MS,\n );\n }\n\n private startWaveform(stream: MediaStream): void {\n if (\n typeof AudioContext === 'undefined' ||\n typeof requestAnimationFrame === 'undefined'\n ) {\n return;\n }\n\n try {\n this.audioContext = new AudioContext();\n this.audioSource = this.audioContext.createMediaStreamSource(stream);\n this.analyser = this.audioContext.createAnalyser();\n this.analyser.fftSize = 256;\n this.audioSource.connect(this.analyser);\n this.waveformSamples = new Uint8Array(this.analyser.fftSize);\n this.speechDetectionAvailable = true;\n this.updateWaveform(0);\n void this.audioContext\n .resume()\n .catch((error) => this.logger.debug(error));\n } catch (error) {\n this.logger.debug(error);\n this.stopWaveform();\n this.resetSpeechDetection();\n }\n }\n\n private updateWaveform(timestamp: number): void {\n if (!this.analyser || !this.waveformSamples) {\n return;\n }\n\n if (timestamp - this.lastWaveformSampleAt >= WAVEFORM_SAMPLE_INTERVAL_MS) {\n this.analyser.getByteTimeDomainData(this.waveformSamples);\n let sumOfSquares = 0;\n for (const sample of this.waveformSamples) {\n const centeredSample = (sample - 128) / 128;\n sumOfSquares += centeredSample * centeredSample;\n }\n\n const rms = Math.sqrt(sumOfSquares / this.waveformSamples.length);\n this.updateSpeechDetection(rms);\n const normalizedVolume = Math.min(\n 1,\n Math.max(0, (rms - WAVEFORM_NOISE_FLOOR) / WAVEFORM_SPEECH_RMS),\n );\n const visualVolume = Math.sqrt(normalizedVolume);\n const targetHeight =\n WAVEFORM_MIN_HEIGHT +\n visualVolume * (WAVEFORM_MAX_HEIGHT - WAVEFORM_MIN_HEIGHT);\n const previousBars = this._waveformBars();\n const previousHeight =\n previousBars[previousBars.length - 1] ?? WAVEFORM_MIN_HEIGHT;\n const smoothing = targetHeight > previousHeight ? 0.7 : 0.3;\n const nextHeight =\n Math.round(\n (previousHeight + (targetHeight - previousHeight) * smoothing) * 10,\n ) / 10;\n\n this._waveformBars.set([...previousBars.slice(1), nextHeight]);\n this.lastWaveformSampleAt = timestamp;\n }\n\n this.waveformAnimationFrame = requestAnimationFrame((nextTimestamp) =>\n this.updateWaveform(nextTimestamp),\n );\n }\n\n private stopWaveform(resetBars = true): void {\n if (\n this.waveformAnimationFrame !== null &&\n typeof cancelAnimationFrame !== 'undefined'\n ) {\n cancelAnimationFrame(this.waveformAnimationFrame);\n }\n this.waveformAnimationFrame = null;\n this.lastWaveformSampleAt = -WAVEFORM_SAMPLE_INTERVAL_MS;\n this.audioSource?.disconnect();\n this.analyser?.disconnect();\n this.audioSource = null;\n this.analyser = null;\n this.waveformSamples = null;\n const audioContext = this.audioContext;\n this.audioContext = null;\n if (audioContext && audioContext.state !== 'closed') {\n void audioContext.close().catch((error) => this.logger.debug(error));\n }\n if (resetBars) {\n this._waveformBars.set([...WAVEFORM_SILENCE]);\n }\n }\n\n private updateDuration(): void {\n this._durationSeconds = Math.max(\n 0,\n Math.floor((Date.now() - this.startedAt) / 1000),\n );\n }\n\n private stopDurationTimer(): void {\n if (this.durationTimer) {\n clearInterval(this.durationTimer);\n this.durationTimer = null;\n }\n }\n\n private stopMediaStream(): void {\n this.mediaStream?.getTracks().forEach((track) => track.stop());\n this.mediaStream = null;\n }\n\n private cleanupRecording(): void {\n this.stopDurationTimer();\n this.stopWaveform();\n this.stopMediaStream();\n this.mediaRecorder = null;\n this.audioChunks = [];\n this.resetSpeechDetection();\n }\n\n private updateSpeechDetection(rms: number): void {\n if (this.hasDetectedSpeech) {\n return;\n }\n this.consecutiveSpeechSamples =\n rms >= SPEECH_DETECTION_RMS ? this.consecutiveSpeechSamples + 1 : 0;\n this.hasDetectedSpeech =\n this.consecutiveSpeechSamples >= SPEECH_DETECTION_SAMPLE_COUNT;\n }\n\n private resetSpeechDetection(): void {\n this.speechDetectionAvailable = false;\n this.consecutiveSpeechSamples = 0;\n this.hasDetectedSpeech = false;\n }\n\n private reset(): void {\n this.cleanupRecording();\n this._durationSeconds = 0;\n this.startedAt = 0;\n this._state = 'idle';\n }\n\n private fileExtension(mimeType: string): string {\n if (mimeType.includes('mp4')) {\n return 'm4a';\n }\n if (mimeType.includes('ogg')) {\n return 'ogg';\n }\n return 'webm';\n }\n}\n","import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout';\nimport { CdkTextareaAutosize, TextFieldModule } from '@angular/cdk/text-field';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n DestroyRef,\n ElementRef,\n inject,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { TranslocoModule } from '@jsverse/transloco';\n\nimport { IconComponent } from '../../core/icons';\nimport { ChatService } from '../chat.service';\nimport { VoiceRecognitionService } from '../voice-recognition.service';\n\n@Component({\n imports: [\n CommonModule,\n CdkTextareaAutosize,\n FormsModule,\n IconComponent,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n TextFieldModule,\n TranslocoModule,\n ],\n selector: 'ai-message-input',\n templateUrl: './message-input.component.html',\n styleUrl: './message-input.component.scss',\n})\nexport class MessageInputComponent implements OnDestroy {\n @ViewChild('messageInput') messageInput: ElementRef<HTMLTextAreaElement>;\n @Input() readonly startConversation: string = '';\n readonly chatService = inject(ChatService);\n readonly voiceRecognitionService = inject(VoiceRecognitionService);\n isMobileView: boolean;\n message: string;\n useWebSearch = false;\n\n private readonly destroyRef = inject(DestroyRef);\n private messageBeforeVoice = '';\n\n constructor() {\n const breakpointObserver = inject(BreakpointObserver);\n\n breakpointObserver\n .observe([Breakpoints.XSmall, Breakpoints.Small])\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((result) => (this.isMobileView = result.matches));\n }\n\n sendMessage() {\n if (this.voiceRecognitionService.isActive) {\n return;\n }\n\n this.message = this.message?.trim();\n if (!this.message) {\n return;\n }\n this.chatService.sendMessage(this.message, {\n useWebSearch: this.useWebSearch,\n });\n this.message = '';\n if (this.messageInput) {\n this.messageInput.nativeElement.value = '';\n this.messageInput.nativeElement.focus();\n }\n }\n\n toggleWebSearch() {\n this.useWebSearch = !this.useWebSearch;\n }\n\n async startVoice(): Promise<void> {\n this.messageBeforeVoice = this.message || '';\n try {\n await this.voiceRecognitionService.start();\n } catch {\n this.message = this.messageBeforeVoice;\n this.messageBeforeVoice = '';\n }\n }\n\n async acceptVoice(send = false): Promise<void> {\n try {\n const transcript = await this.voiceRecognitionService.accept();\n if (transcript) {\n this.message = [this.messageBeforeVoice.trim(), transcript]\n .filter(Boolean)\n .join(' ');\n this.messageBeforeVoice = '';\n if (send) {\n this.sendMessage();\n }\n } else if (transcript === '') {\n this.message = this.messageBeforeVoice;\n this.messageBeforeVoice = '';\n }\n } catch {\n this.message = this.messageBeforeVoice;\n this.messageBeforeVoice = '';\n } finally {\n this.focusMessageInput();\n }\n }\n\n async cancelVoice(): Promise<void> {\n await this.voiceRecognitionService.cancel();\n this.message = this.messageBeforeVoice;\n this.messageBeforeVoice = '';\n this.focusMessageInput();\n }\n\n abort() {\n this.chatService.abortThread();\n }\n\n ngOnDestroy(): void {\n if (this.voiceRecognitionService.isActive) {\n void this.voiceRecognitionService.cancel();\n }\n }\n\n protected voiceDuration(): string {\n const duration = this.voiceRecognitionService.durationSeconds;\n const minutes = Math.floor(duration / 60)\n .toString()\n .padStart(2, '0');\n const seconds = (duration % 60).toString().padStart(2, '0');\n return `${minutes}:${seconds}`;\n }\n\n private focusMessageInput(): void {\n setTimeout(() => this.messageInput?.nativeElement.focus());\n }\n\n protected sendSuggestion(suggestion: string) {\n this.message = suggestion;\n this.sendMessage();\n }\n}\n","<div\n class=\"mx-auto flex w-full flex-col items-end justify-center border bg-zinc-50 py-2 pl-4 pr-2 md:rounded-2xl md:py-4 md:pr-4 lg:max-w-screen-md xl:max-w-screen-lg dark:bg-black\"\n [ngClass]=\"{\n 'border-highlight dark:border-highlight': useWebSearch,\n 'border-white dark:border-zinc-600/30': !useWebSearch,\n }\"\n *transloco=\"let t\"\n>\n <div class=\"grid w-full\">\n <textarea\n class=\"col-start-1 row-start-1 w-full md:text-lg md:font-semibold\"\n [class.invisible]=\"voiceRecognitionService.isActive\"\n [disabled]=\"voiceRecognitionService.isActive\"\n matInput\n cdkAutosizeMaxRows=\"10\"\n cdkTextareaAutosize\n [cdkAutosizeMinRows]=\"isMobileView ? 2 : 4\"\n [placeholder]=\"t('message')\"\n [(ngModel)]=\"message\"\n (keydown.enter)=\"sendMessage() || $event.preventDefault()\"\n spellcheck=\"false\"\n #autosize=\"cdkTextareaAutosize\"\n #messageInput\n ></textarea>\n @if (voiceRecognitionService.isActive) {\n <div\n class=\"col-start-1 row-start-1 flex min-h-20 w-full items-center justify-center\"\n [attr.aria-busy]=\"\n voiceRecognitionService.isStarting ||\n voiceRecognitionService.isTranscribing\n \"\n >\n @if (voiceRecognitionService.isStarting) {\n <mat-progress-spinner\n diameter=\"28\"\n strokeWidth=\"2\"\n mode=\"indeterminate\"\n />\n } @else {\n <div class=\"voice-waveform\" aria-hidden=\"true\">\n @for (\n barHeight of voiceRecognitionService.waveformBars();\n track $index\n ) {\n <span [style.height.px]=\"barHeight\"></span>\n }\n </div>\n @if (voiceRecognitionService.isTranscribing) {\n <mat-progress-spinner\n class=\"absolute\"\n diameter=\"28\"\n strokeWidth=\"2\"\n mode=\"indeterminate\"\n />\n }\n }\n </div>\n }\n </div>\n <div class=\"flex w-full items-center justify-end py-2\">\n <div class=\"mr-auto\">\n @if (voiceRecognitionService.isActive) {\n <span class=\"font-mono text-xs text-zinc-500\">{{\n voiceDuration()\n }}</span>\n }\n </div>\n <div class=\"flex flex-row gap-2\">\n @if (voiceRecognitionService.isActive) {\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.cancel_recording')\"\n matTooltipPosition=\"above\"\n (click)=\"cancelVoice()\"\n >\n <ai-icon name=\"dismiss_circle\" size=\"24\" class=\"icon-md\"></ai-icon>\n </button>\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.finish_recording')\"\n matTooltipPosition=\"above\"\n [disabled]=\"!voiceRecognitionService.isRecording\"\n (click)=\"acceptVoice()\"\n >\n <ai-icon name=\"record_stop\" size=\"24\" class=\"icon-md\"></ai-icon>\n </button>\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.send_voice_message')\"\n matTooltipPosition=\"above\"\n [disabled]=\"!voiceRecognitionService.isRecording\"\n (click)=\"acceptVoice(true)\"\n >\n <ai-icon name=\"send\" size=\"24\" class=\"icon-md\"></ai-icon>\n </button>\n } @else {\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.use_microphone')\"\n matTooltipPosition=\"above\"\n [disabled]=\"chatService.isProcessing\"\n (click)=\"startVoice()\"\n >\n <ai-icon name=\"mic\" size=\"24\" class=\"icon-md\"></ai-icon>\n </button>\n @if (!chatService.isProcessing) {\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.send_message')\"\n matTooltipPosition=\"above\"\n (click)=\"sendMessage()\"\n >\n <ai-icon name=\"send\" size=\"24\" class=\"icon-md\"></ai-icon>\n </button>\n } @else {\n <button\n mat-icon-button\n [matTooltip]=\"t('ai.abort')\"\n matTooltipPosition=\"above\"\n (click)=\"abort()\"\n >\n <ai-icon\n name=\"dismiss_circle\"\n size=\"24\"\n class=\"icon-md text-red-600\"\n ></ai-icon>\n </button>\n }\n }\n </div>\n </div>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport prettyBytes from 'pretty-bytes';\r\n\r\nfunction isNumberFinite(value: any): value is number {\r\n return typeof value === 'number' && isFinite(value);\r\n}\r\n\r\n@Pipe({\r\n name: 'bytes',\r\n standalone: false,\r\n})\r\nexport class BytesPipe implements PipeTransform {\r\n transform(input: any): any {\r\n if (!isNumberFinite(input)) {\r\n return input;\r\n }\r\n return prettyBytes(input);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'colorLevel',\r\n standalone: false,\r\n})\r\nexport class ColorLevelPipe implements PipeTransform {\r\n transform(level: string, type: 'svg' | 'bg' | 'text' = 'bg'): string {\r\n let color;\r\n switch (level) {\r\n case 'OK':\r\n color =\r\n type === 'svg'\r\n ? '#10B981'\r\n : type === 'text'\r\n ? 'text-green-600'\r\n : 'bg-green-600';\r\n break;\r\n case 'WARNING':\r\n color =\r\n type === 'svg'\r\n ? '#F59E0B'\r\n : type === 'text'\r\n ? 'text-amber-600'\r\n : 'bg-yellow-600';\r\n break;\r\n case 'CRITICAL':\r\n color =\r\n type === 'svg'\r\n ? '#EF4444'\r\n : type === 'text'\r\n ? 'text-red-600'\r\n : 'bg-red-600';\r\n break;\r\n case 'INFO':\r\n color =\r\n type === 'svg'\r\n ? '#3B82F6'\r\n : type === 'text'\r\n ? 'text-blue-600'\r\n : 'bg-blue-600';\r\n break;\r\n case 'ANY':\r\n color =\r\n type === 'svg'\r\n ? '#78716C'\r\n : type === 'text'\r\n ? 'text-gray-600'\r\n : 'bg-gray-600';\r\n break;\r\n default:\r\n console.error(`Unresolved level ${level}`);\r\n break;\r\n }\r\n return color;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { formatDistanceToNow } from 'date-fns';\r\n\r\n@Pipe({\r\n name: 'dateAgo',\r\n pure: false,\r\n standalone: false,\r\n})\r\nexport class DateAgoPipe implements PipeTransform {\r\n transform(value: string): string {\r\n return formatDistanceToNow(value);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { BytesPipe } from './bytes.pipe';\r\nimport { ColorLevelPipe } from './color-level.pipe';\r\nimport { DateAgoPipe } from './date-ago.pipe';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [BytesPipe, ColorLevelPipe, DateAgoPipe],\r\n declarations: [BytesPipe, ColorLevelPipe, DateAgoPipe],\r\n})\r\nexport class UiPipesModule {}\r\n","import type { HashMap } from '@jsverse/transloco';\r\n\r\nconst SUPPORTED_LANGUAGES = ['en', 'de'];\r\n\r\nexport function InlineLoaderFactory(\r\n loader: (lang: string) => Promise<HashMap>,\r\n) {\r\n return SUPPORTED_LANGUAGES.reduce((acc, lang) => {\r\n acc[lang] = () => loader(lang);\r\n return acc;\r\n }, {});\r\n}\r\n","export function iconForMimeType(mimetype: string): string {\r\n if (!mimetype) {\r\n return 'file';\r\n }\r\n\r\n if (mimetype.startsWith('audio')) {\r\n return 'file_audio';\r\n } else if (mimetype.startsWith('image')) {\r\n return 'image';\r\n } else if (mimetype.startsWith('text')) {\r\n return 'file_text';\r\n } else if (mimetype.startsWith('video')) {\r\n return 'file_video';\r\n } else {\r\n return (\r\n {\r\n 'application/pdf': 'file_pdf',\r\n 'application/json': 'file_text',\r\n 'application/js': 'file_text',\r\n 'application/msword': 'file_text',\r\n 'application/gzip': 'file_zip',\r\n 'application/typescript': 'file_text',\r\n 'application/vnd.rar': 'file_zip',\r\n 'application/x-7z-compressed': 'file_zip',\r\n 'application/x-tar': 'file_zip',\r\n 'application/xml': 'file_text',\r\n 'application/zip': 'file_zip',\r\n }[mimetype] || 'file'\r\n );\r\n }\r\n}\r\n\r\nexport function labelForMimeType(mimetype: string): string {\r\n if (!mimetype) {\r\n return 'unknown';\r\n }\r\n\r\n if (mimetype.startsWith('audio')) {\r\n return 'audio';\r\n } else if (mimetype.startsWith('image')) {\r\n return 'image';\r\n } else if (mimetype.startsWith('text')) {\r\n return 'text';\r\n } else if (mimetype.startsWith('video')) {\r\n return 'video';\r\n } else {\r\n return (\r\n {\r\n 'application/pdf': 'pdf',\r\n 'application/json': 'text',\r\n 'application/js': 'text',\r\n 'application/msword': 'text',\r\n 'application/gzip': 'archive',\r\n 'application/typescript': 'text',\r\n 'application/vnd.rar': 'archive',\r\n 'application/x-7z-compressed': 'archive',\r\n 'application/x-tar': 'archive',\r\n 'application/xml': 'text',\r\n 'application/zip': 'archive',\r\n }[mimetype] || 'unknown'\r\n );\r\n }\r\n}\r\n","export { InlineLoaderFactory } from './i18n';\r\nexport { iconForMimeType, labelForMimeType } from './mimetype';\r\n\r\nexport function saveAs(blob: Blob | string, name: string) {\r\n const anchor = document.createElementNS(\r\n 'http://www.w3.org/1999/xhtml',\r\n 'a',\r\n ) as HTMLAnchorElement;\r\n anchor.style.display = 'none';\r\n anchor.download = name;\r\n anchor.rel = 'noopener';\r\n\r\n if (typeof blob === 'string') {\r\n anchor.href = blob;\r\n if (anchor.origin !== location.origin) {\r\n anchor.target = '_blank';\r\n corsEnabled(anchor.href) ? download(blob, name) : anchor.click();\r\n } else {\r\n anchor.click();\r\n }\r\n } else {\r\n anchor.href = URL.createObjectURL(blob);\r\n setTimeout(() => URL.revokeObjectURL(anchor.href), 4e4);\r\n setTimeout(() => anchor.click(), 0);\r\n }\r\n}\r\n\r\nfunction corsEnabled(url) {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('HEAD', url, false);\r\n try {\r\n xhr.send();\r\n } catch (e) {}\r\n return xhr.status >= 200 && xhr.status <= 299;\r\n}\r\n\r\nfunction download(url: string, name: string) {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open('GET', url);\r\n xhr.responseType = 'blob';\r\n xhr.onload = function () {\r\n saveAs(xhr.response, name);\r\n };\r\n xhr.send();\r\n}\r\n","import { Component, inject, OnInit } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';\r\nimport { DomSanitizer, SafeUrl } from '@angular/platform-browser';\r\nimport type { Content } from '@hahnpro/hpc-api';\r\nimport {\r\n NgxExtendedPdfViewerModule,\r\n pdfDefaultOptions,\r\n} from 'ngx-extended-pdf-viewer';\r\nimport { NGXLogger } from 'ngx-logger';\r\nimport { MarkdownModule } from 'ngx-markdown';\r\n\r\nimport { ApiService } from '../../core/api.service';\r\nimport { IconComponent } from '../../core/icons';\r\n\r\n@Component({\r\n imports: [\r\n IconComponent,\r\n MarkdownModule,\r\n MatButtonModule,\r\n MatDialogModule,\r\n NgxExtendedPdfViewerModule,\r\n ],\r\n selector: 'ai-content-preview',\r\n templateUrl: './preview.component.html',\r\n})\r\nexport class PreviewComponent implements OnInit {\r\n content: Content & { analysis?: { text: string } };\r\n isLoading = false;\r\n pageNumber: number;\r\n previewUrl: SafeUrl;\r\n token: string;\r\n markdown?: string;\r\n\r\n private readonly apiService = inject(ApiService);\r\n private readonly logger = inject(NGXLogger);\r\n private readonly sanitizer = inject(DomSanitizer);\r\n\r\n constructor() {\r\n const data = inject(MAT_DIALOG_DATA);\r\n\r\n pdfDefaultOptions.assetsFolder = 'assets/ngx-extended-pdf';\r\n this.pageNumber = data.pageNumber || 1;\r\n this.content = data;\r\n }\r\n\r\n get pdfSrc() {\r\n if (this.content?.id) {\r\n return this.apiService.downloadContent(this.content.id);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.apiService.getAccessToken().then((t) => (this.token = `Bearer ${t}`));\r\n if (this.content.mimetype === 'application/pdf') {\r\n // ignore\r\n } else if (this.content.mimetype?.startsWith('image/')) {\r\n this.loadPreview();\r\n } else if (this.content.mimetype?.startsWith('text/')) {\r\n if (typeof this.content.analysis === 'object') {\r\n this.markdown = this.content.analysis.text;\r\n }\r\n }\r\n }\r\n\r\n private loadPreview() {\r\n if (this.isLoading || !this.content.id) {\r\n return;\r\n }\r\n this.isLoading = true;\r\n\r\n this.apiService\r\n .downloadContent(this.content.id, 'preview-lg')\r\n .then((data) => {\r\n const blob = new Blob([data], { type: 'image/png' });\r\n this.previewUrl = this.sanitizer.bypassSecurityTrustUrl(\r\n window.URL.createObjectURL(blob),\r\n );\r\n this.isLoading = false;\r\n })\r\n .catch((error) => {\r\n this.logger.error(error);\r\n this.isLoading = false;\r\n });\r\n }\r\n}\r\n","<ng-container>\r\n <div mat-dialog-title class=\"relative\">\r\n <div class=\"truncate pr-10\">{{ content.filename }}</div>\r\n <button\r\n mat-icon-button\r\n matDialogClose\r\n class=\"small absolute right-4 top-4 bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\r\n >\r\n <ai-icon name=\"dismiss\"></ai-icon>\r\n </button>\r\n </div>\r\n <div mat-dialog-content class=\"flex grow flex-col\">\r\n @if (markdown) {\r\n <div class=\"w-full overflow-y-auto rounded-xl bg-white p-4\">\r\n <markdown class=\"markdown-body\" [data]=\"markdown\"></markdown>\r\n </div>\r\n } @else if (content.mimetype === 'application/pdf') {\r\n <div class=\"mx-auto w-[50rem] sm:h-[65vh]\">\r\n <ngx-extended-pdf-viewer\r\n [authorization]=\"token\"\r\n [src]=\"pdfSrc\"\r\n [disableHistory]=\"true\"\r\n [showBorders]=\"false\"\r\n [showDownloadButton]=\"false\"\r\n [showDrawEditor]=\"false\"\r\n [showEditor]=\"false\"\r\n [showHighlightEditor]=\"false\"\r\n [showOpenFileButton]=\"false\"\r\n [showPrintButton]=\"false\"\r\n [showRotateButton]=\"false\"\r\n [showSecondaryToolbarButton]=\"false\"\r\n [showSidebarButton]=\"false\"\r\n [showStampEditor]=\"false\"\r\n [showTextEditor]=\"false\"\r\n [sidebarVisible]=\"false\"\r\n [useBrowserLocale]=\"true\"\r\n [zoom]=\"auto\"\r\n [page]=\"pageNumber\"\r\n ></ngx-extended-pdf-viewer>\r\n </div>\r\n } @else if (previewUrl) {\r\n <div\r\n class=\"group relative w-full overflow-hidden rounded-2xl border border-zinc-300/40 bg-zinc-300/30 p-4 dark:border-zinc-700/40 dark:bg-zinc-700/30\"\r\n >\r\n <div class=\"w-full overflow-hidden rounded-lg\">\r\n <img class=\"w-full\" [src]=\"previewUrl\" alt=\"\" />\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n</ng-container>\r\n","import { ClipboardModule } from '@angular/cdk/clipboard';\r\nimport { CommonModule } from '@angular/common';\r\nimport { Component, inject, InjectionToken } from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\r\n\r\nimport type {\r\n Asset,\r\n AssetType,\r\n Content,\r\n Event,\r\n LogbookEntry,\r\n Task,\r\n} from '@hahnpro/hpc-api';\r\nimport { ReferenceType } from '@hahnpro/hpc-api';\r\nimport { IconComponent } from '../../core/icons';\r\nimport { UiPipesModule } from '../../core/pipes';\r\nimport { iconForMimeType, labelForMimeType } from '../../core/utils';\r\nimport { ContextService, Status as ContextStatus } from '../context.service';\r\nimport { PreviewComponent } from '../preview/preview.component';\r\n\r\nexport const OVERLAY_PAGE_NUMBER = new InjectionToken<number>(\r\n 'OVERLAY_PAGE_NUMBER',\r\n);\r\nexport const OVERLAY_RESOURCE_ID = new InjectionToken<string>(\r\n 'OVERLAY_RESOURCE_ID',\r\n);\r\nexport const OVERLAY_RESOURCE_TYPE = new InjectionToken<ReferenceType>(\r\n 'OVERLAY_RESOURCE_TYPE',\r\n);\r\n\r\n@Component({\r\n imports: [\r\n CommonModule,\r\n ClipboardModule,\r\n IconComponent,\r\n MatButtonModule,\r\n MatProgressSpinnerModule,\r\n MatTooltipModule,\r\n TranslocoModule,\r\n UiPipesModule,\r\n ],\r\n templateUrl: './context-overlay.component.html',\r\n})\r\nexport class ContextOverlayComponent {\r\n resourceId = inject(OVERLAY_RESOURCE_ID);\r\n resourceType = inject(OVERLAY_RESOURCE_TYPE);\r\n pageNumber = inject(OVERLAY_PAGE_NUMBER);\r\n\r\n protected readonly ReferenceType = ReferenceType;\r\n\r\n private readonly contextService = inject(ContextService);\r\n private readonly matDialog = inject(MatDialog);\r\n private readonly translocoService = inject(TranslocoService);\r\n\r\n get resource(): Asset | AssetType | Content | Event | LogbookEntry | Task {\r\n return this.contextService.getContext(this.resourceId);\r\n }\r\n\r\n get status(): ContextStatus | null {\r\n return this.contextService.status.get(this.resourceId);\r\n }\r\n\r\n get asset(): Asset | null {\r\n if (this.resourceType === ReferenceType.DOCUMENT) {\r\n return this.contextService.assetForContent(this.resourceId);\r\n } else if (this.resourceType === ReferenceType.EVENT) {\r\n return this.contextService.assetForEvent(this.resource as Event);\r\n }\r\n return null;\r\n }\r\n\r\n iconForReferenceType(): string {\r\n switch (this.resourceType) {\r\n case ReferenceType.ASSET:\r\n return 'asset';\r\n case ReferenceType.ASSET_TYPE:\r\n return 'cube';\r\n case ReferenceType.DOCUMENT:\r\n return iconForMimeType((this.resource as Content)?.mimetype);\r\n case ReferenceType.EVENT:\r\n return 'calendar_clock';\r\n case ReferenceType.TASK:\r\n return 'shifts_open';\r\n case ReferenceType.LOGBOOK_ENTRY:\r\n return 'book';\r\n }\r\n }\r\n\r\n labelForType(): string {\r\n switch (this.resourceType) {\r\n case ReferenceType.DOCUMENT:\r\n return this.translocoService.translate(\r\n 'content.file_type.' +\r\n labelForMimeType((this.resource as Content)?.mimetype),\r\n );\r\n\r\n case ReferenceType.ASSET_TYPE:\r\n return this.translocoService.translate('assettype');\r\n\r\n case ReferenceType.LOGBOOK_ENTRY: {\r\n const logbookEntry = this.resource as LogbookEntry;\r\n const rawDate = logbookEntry?.date;\r\n const parsedDate = rawDate ? new Date(rawDate) : null;\r\n const hasValidDate =\r\n !!parsedDate && !Number.isNaN(parsedDate.getTime());\r\n const dateLabel = hasValidDate ? parsedDate.toLocaleDateString() : '—';\r\n\r\n return (\r\n dateLabel +\r\n (logbookEntry?.duration ? ` (${logbookEntry.duration} min)` : '')\r\n );\r\n }\r\n\r\n default:\r\n return this.translocoService.translate(this.resourceType);\r\n }\r\n }\r\n\r\n previewContent(pageNumber?: number) {\r\n if (this.resourceType === ReferenceType.DOCUMENT && this.resource) {\r\n const content = this.resource as Content;\r\n this.matDialog.open(PreviewComponent, {\r\n autoFocus: false,\r\n panelClass: 'upload-modal',\r\n data: { ...content, pageNumber },\r\n });\r\n }\r\n }\r\n\r\n isPreviewSupported(): boolean {\r\n if (this.resourceType === ReferenceType.DOCUMENT && this.resource) {\r\n const content = this.resource as Content;\r\n return (\r\n content.mimetype?.startsWith('image') ||\r\n content.mimetype === 'application/pdf' ||\r\n content.mimetype === 'text/markdown'\r\n );\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","<div\r\n class=\"relative min-w-48 max-w-md rounded-2xl border border-zinc-400/50 bg-zinc-100/60 p-4 shadow-md backdrop-blur-md dark:border-zinc-600/50 dark:bg-zinc-800/60\"\r\n *transloco=\"let t\"\r\n>\r\n @if (resource) {\r\n @if (pageNumber) {\r\n <div class=\"flex w-full flex-col gap-y-2 px-2\">\r\n <div class=\"flex items-center gap-x-1\">\r\n <span>{{ t('ai.source') }}:</span>\r\n <button\r\n class=\"text-blue-700 underline hover:text-blue-500 dark:text-blue-100 dark:hover:text-blue-400\"\r\n (click)=\"previewContent(pageNumber)\"\r\n >\r\n {{ t('page') }} {{ pageNumber }}\r\n </button>\r\n <span>{{ t('ai.of_document') }}</span>\r\n </div>\r\n <div class=\"mx-2 h-0.5 bg-zinc-200 dark:bg-zinc-700\"></div>\r\n <div class=\"flex items-center gap-x-3\">\r\n <ai-icon\r\n [name]=\"iconForMimeType()\"\r\n size=\"20\"\r\n class=\"icon-sm\"\r\n ></ai-icon>\r\n <div>\r\n {{ resource?.filename }}\r\n </div>\r\n </div>\r\n @if (asset) {\r\n <div class=\"flex items-center gap-x-3\">\r\n <ai-icon name=\"asset\" size=\"20\" class=\"icon-sm\"></ai-icon>\r\n <div>\r\n {{ asset.name }}\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <div\r\n class=\"flex w-full flex-col items-center justify-center gap-x-3 pb-4 sm:flex-row sm:justify-start\"\r\n >\r\n <div\r\n class=\"flex rounded-xl border border-zinc-300/50 bg-zinc-300/40 p-2 dark:border-zinc-700/50 dark:bg-zinc-700/30\"\r\n >\r\n <ai-icon\r\n [name]=\"iconForReferenceType()\"\r\n ></ai-icon>\r\n </div>\r\n <div class=\"w-full overflow-hidden\">\r\n <div class=\"flex w-full flex-col items-center pr-8 sm:items-start\">\r\n <div\r\n class=\"w-full truncate text-md font-semibold text-zinc-950 dark:text-zinc-50\"\r\n >\r\n {{\r\n resource?.name ??\r\n resource?.filename ??\r\n (resourceType === ReferenceType.LOGBOOK_ENTRY\r\n ? t('logbook_entry')\r\n : null)\r\n }}\r\n </div>\r\n <div\r\n class=\"flex flex-col gap-x-2 text-sm text-zinc-900/70 sm:flex-row sm:items-center dark:text-zinc-100/70\"\r\n >\r\n <span>{{ labelForType() }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex w-full flex-col gap-y-2 px-2\">\r\n @if (resource?.owner?.name) {\r\n <div class=\"flex items-center gap-x-3\">\r\n <ai-icon name=\"shield_person\" size=\"20\" class=\"icon-sm\"></ai-icon>\r\n <div>\r\n {{ t('owner.managed_by') }}\r\n <span class=\"font-semibold\">{{ resource.owner.name }}</span>\r\n </div>\r\n </div>\r\n }\r\n @if (asset) {\r\n <div class=\"flex items-center gap-x-3\">\r\n <ai-icon name=\"asset\" size=\"20\" class=\"icon-sm\"></ai-icon>\r\n <div>{{ asset.name }} ({{ asset.type$name }})</div>\r\n </div>\r\n }\r\n <div class=\"flex items-center gap-x-3\">\r\n <ai-icon name=\"history\" size=\"20\" class=\"icon-sm\"></ai-icon>\r\n <div class=\"flex flex-col gap-x-2 sm:flex-row sm:items-center\">\r\n @if (\r\n resource?.updatedAt && resource?.updatedAt !== resource?.createdAt\r\n ) {\r\n <span>\r\n {{ t('last_updated') }}\r\n <span\r\n class=\"select-none\"\r\n matTooltip=\"{{ resource?.updatedAt | date: 'medium' }}\"\r\n matTooltipClass=\"text-sm\"\r\n >\r\n {{ resource?.updatedAt | dateAgo }}\r\n </span>\r\n </span>\r\n } @else {\r\n <span>\r\n {{ t('created') }}\r\n <span\r\n class=\"select-none\"\r\n matTooltip=\"{{ resource?.createdAt | date: 'medium' }}\"\r\n matTooltipClass=\"text-sm\"\r\n >\r\n {{ resource?.createdAt | dateAgo }}\r\n </span>\r\n </span>\r\n }\r\n </div>\r\n </div>\r\n @if (resource?.description) {\r\n <div class=\"flex items-center gap-x-3\">\r\n <ai-icon name=\"slide_text\" size=\"20\" class=\"icon-sm\"></ai-icon>\r\n <div class=\"line-clamp-3\">{{ resource?.description }}</div>\r\n </div>\r\n }\r\n @if (resource?.size) {\r\n <div class=\"flex items-center gap-x-3\">\r\n <ai-icon name=\"drive\" size=\"20\" class=\"icon-sm\"></ai-icon>\r\n <div>{{ resource?.size | bytes }}</div>\r\n </div>\r\n }\r\n @if (isPreviewSupported()) {\r\n <div class=\"w-full px-4 pt-4\">\r\n <button\r\n mat-raised-button\r\n color=\"primary\"\r\n class=\"w-full\"\r\n (click)=\"previewContent()\"\r\n >\r\n {{ t('show_preview') }}\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n } @else if (status?.isLoading) {\r\n <div class=\"flex h-10 w-10 items-center justify-center\">\r\n <mat-spinner strokeWidth=\"1\" diameter=\"18\"></mat-spinner>\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col gap-y-1 px-2 py-1\">\r\n <span class=\"text-md font-semibold\">{{\r\n t('toast_error_load_item', { item: t(resourceType?.replace('-', '_')) })\r\n }}</span>\r\n <span class=\"text-xs\">{{ resourceId }}</span>\r\n </div>\r\n }\r\n</div>\r\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\r\nimport { Overlay, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\r\nimport { ComponentPortal } from '@angular/cdk/portal';\r\nimport {\r\n Component,\r\n inject,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n SimpleChanges,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { TranslocoModule } from '@jsverse/transloco';\r\n\r\nimport {\r\n Asset,\r\n AssetType,\r\n Content,\r\n Event,\r\n LogbookEntry,\r\n ReferenceType,\r\n Task,\r\n} from '@hahnpro/hpc-api';\r\nimport { IconComponent } from '../../core/icons';\r\nimport { UiPipesModule } from '../../core/pipes';\r\nimport { iconForMimeType, labelForMimeType } from '../../core/utils';\r\nimport { AssistantMessage, ChatService, UserMessage } from '../chat.service';\r\nimport {\r\n ContextOverlayComponent,\r\n OVERLAY_PAGE_NUMBER,\r\n OVERLAY_RESOURCE_ID,\r\n OVERLAY_RESOURCE_TYPE,\r\n} from '../context-overlay/context-overlay.component';\r\nimport { ContextService } from '../context.service';\r\n\r\n@Component({\r\n imports: [\r\n CdkAccordionModule,\r\n IconComponent,\r\n MatButtonModule,\r\n MatProgressSpinnerModule,\r\n OverlayModule,\r\n TranslocoModule,\r\n UiPipesModule,\r\n ],\r\n selector: 'ai-message-context',\r\n templateUrl: './message-context.component.html',\r\n styleUrl: './message-context.component.scss',\r\n})\r\nexport class MessageContextComponent implements OnChanges {\r\n @Input() isLastMessage: boolean;\r\n @Input() message: AssistantMessage | UserMessage;\r\n\r\n readonly chatService = inject(ChatService);\r\n readonly contextService = inject(ContextService);\r\n iconForMimeType = iconForMimeType;\r\n labelForMimeType = labelForMimeType;\r\n protected ReferenceType = ReferenceType;\r\n uniqueReferences: any[] = [];\r\n\r\n private processedIds = new Set<string>();\r\n private readonly overlay = inject(Overlay);\r\n private readonly viewContainerRef = inject(ViewContainerRef);\r\n private overlayRef: OverlayRef | null = null;\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if (changes['message']) {\r\n this.processReferences();\r\n }\r\n }\r\n\r\n private processReferences(): void {\r\n this.uniqueReferences = [];\r\n this.processedIds.clear();\r\n\r\n if (this.message?.parsedContent?.references) {\r\n this.uniqueReferences = this.message.parsedContent.references.filter(\r\n (ref) => {\r\n if (this.processedIds.has(ref.id)) {\r\n return false;\r\n }\r\n this.processedIds.add(ref.id);\r\n return true;\r\n },\r\n );\r\n }\r\n }\r\n\r\n protected iconForReferenceType(\r\n resource: Asset | AssetType | Content | Event | Task,\r\n resourceType: ReferenceType,\r\n ): string {\r\n switch (resourceType) {\r\n case ReferenceType.ASSET:\r\n return 'asset';\r\n case ReferenceType.ASSET_TYPE:\r\n return 'cube';\r\n case ReferenceType.DOCUMENT:\r\n return iconForMimeType((resource as Content)?.mimetype);\r\n case ReferenceType.EVENT:\r\n return 'calendar_clock';\r\n case ReferenceType.LOGBOOK_ENTRY:\r\n return 'book';\r\n case ReferenceType.TASK:\r\n return 'shifts_open';\r\n }\r\n }\r\n\r\n protected resolveTask(resource: LogbookEntry): Task | null {\r\n return this.contextService.taskForLogbookEntry(resource);\r\n }\r\n\r\n protected resolveAsset(\r\n resource: Content | Event | Task,\r\n resourceType: ReferenceType,\r\n ) {\r\n switch (resourceType) {\r\n case ReferenceType.DOCUMENT:\r\n return this.contextService.assetForContent(resource.id);\r\n case ReferenceType.TASK:\r\n return this.contextService.assetForTask(resource as Task);\r\n case ReferenceType.EVENT:\r\n return this.contextService.assetForEvent(resource as Event);\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n openOverlay(\r\n event: MouseEvent,\r\n resourceId: string,\r\n resourceType?: ReferenceType,\r\n pageNumber?: number,\r\n ) {\r\n if (this.overlayRef) {\r\n this.overlayRef.detach();\r\n }\r\n\r\n const positionStrategy = this.overlay\r\n .position()\r\n .flexibleConnectedTo(event.target as HTMLElement)\r\n .withPositions([\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top',\r\n },\r\n ]);\r\n\r\n this.overlayRef = this.overlay.create({\r\n positionStrategy,\r\n hasBackdrop: true,\r\n backdropClass: 'cdk-overlay-transparent-backdrop',\r\n });\r\n\r\n const injector = Injector.create({\r\n providers: [\r\n { provide: OVERLAY_RESOURCE_ID, useValue: resourceId },\r\n { provide: OVERLAY_RESOURCE_TYPE, useValue: resourceType },\r\n { provide: OVERLAY_PAGE_NUMBER, useValue: pageNumber },\r\n { provide: ContextService, useValue: this.contextService },\r\n ],\r\n parent: this.viewContainerRef.injector,\r\n });\r\n const portal = new ComponentPortal(\r\n ContextOverlayComponent,\r\n this.viewContainerRef,\r\n injector,\r\n );\r\n this.overlayRef.attach(portal);\r\n this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());\r\n }\r\n}\r\n","<cdk-accordion *transloco=\"let t\">\r\n <cdk-accordion-item\r\n #accordionItem=\"cdkAccordionItem\"\r\n [expanded]=\"isLastMessage\"\r\n >\r\n <div\r\n class=\"flex min-w-80 max-w-full flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\"\r\n >\r\n @if (message?.parsedContent?.references?.length) {\r\n <div\r\n class=\"flex cursor-pointer items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\"\r\n (click)=\"accordionItem.toggle()\"\r\n (keyup.enter)=\"accordionItem.toggle()\"\r\n tabindex=\"0\"\r\n >\r\n <ai-icon name=\"layer_diagonal_sparkle\"></ai-icon>\r\n <span class=\"font-bold\">{{ t('ai.context') }}</span>\r\n </div>\r\n @if (accordionItem.expanded) {\r\n <div class=\"flex flex-nowrap gap-x-3 overflow-x-auto px-5 pb-3\">\r\n @for (ref of uniqueReferences; track ref.reference_id) {\r\n @if (contextService.getContext(ref.id); as resource) {\r\n @if (\r\n [\r\n ReferenceType.ASSET,\r\n ReferenceType.ASSET_TYPE,\r\n ReferenceType.DOCUMENT,\r\n ReferenceType.EVENT,\r\n ReferenceType.LOGBOOK_ENTRY,\r\n ReferenceType.TASK,\r\n ].includes(ref.resourceType)\r\n ) {\r\n <div\r\n class=\"min-w-40 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\r\n (click)=\"openOverlay($event, ref.id, ref.resourceType)\"\r\n (keyup.enter)=\"\r\n openOverlay($event, ref.id, ref.resourceType)\r\n \"\r\n tabindex=\"0\"\r\n >\r\n <div\r\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\r\n [class.animate-highlight]=\"\r\n resource.id === chatService.highlightContext\r\n \"\r\n (animationend)=\"chatService.highlightContext = ''\"\r\n >\r\n <div\r\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\r\n >\r\n <ai-icon\r\n [name]=\"iconForReferenceType(resource, ref.resourceType)\"\r\n class=\"icon-sm\"\r\n ></ai-icon>\r\n </div>\r\n <div\r\n class=\"flex h-full grow flex-col overflow-hidden pr-4\"\r\n >\r\n <span class=\"truncate text-md font-semibold\">\r\n {{\r\n ref.resourceType === ReferenceType.DOCUMENT\r\n ? resource.filename\r\n : ref.resourceType === ReferenceType.LOGBOOK_ENTRY\r\n ? t('logbook_entry')\r\n : resource.name\r\n }}\r\n </span>\r\n @if (ref.resourceType === ReferenceType.ASSET) {\r\n @if (resource.type$name) {\r\n <div class=\"flex items-center gap-x-2 text-xs\">\r\n <span class=\"truncate\">{{\r\n resource.type$name\r\n }}</span>\r\n </div>\r\n }\r\n } @else if (\r\n ref.resourceType === ReferenceType.LOGBOOK_ENTRY\r\n ) {\r\n <div class=\"flex items-center gap-x-2 text-xs\">\r\n <span class=\"truncate\">{{\r\n resolveTask(resource)?.name\r\n }}</span>\r\n </div>\r\n } @else {\r\n @if (\r\n resolveAsset(resource, ref.resourceType);\r\n as asset\r\n ) {\r\n <div class=\"flex items-center gap-x-2 text-xs\">\r\n <span class=\"truncate\">{{ asset.name }}</span>\r\n <span>·</span>\r\n <span class=\"truncate\">{{\r\n asset.type$name\r\n }}</span>\r\n </div>\r\n }\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n } @else if (contextService.status.get(ref.id)?.isLoading) {\r\n <div\r\n class=\"flex rounded-2xl border border-zinc-400/40 bg-zinc-400/20 px-2 py-1 dark:border-black/50 dark:bg-black/20\"\r\n >\r\n <div class=\"flex h-10 w-10 items-center justify-center\">\r\n <mat-spinner strokeWidth=\"1\" diameter=\"18\"></mat-spinner>\r\n </div>\r\n </div>\r\n } @else {\r\n <div\r\n class=\"min-w-40 rounded-2xl border border-zinc-400/40 bg-zinc-400/20 dark:border-black/50 dark:bg-black/20\"\r\n >\r\n <div\r\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\r\n >\r\n <div\r\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-red-300 bg-red-100 text-red-700 dark:border-red-900 dark:bg-red-950/80 dark:text-red-400\"\r\n >\r\n <ai-icon name=\"error_circle\"></ai-icon>\r\n </div>\r\n <div class=\"flex h-full flex-col pr-4\">\r\n @if (contextService.status.get(ref.id)?.notFound) {\r\n <span class=\"text-md font-semibold\">{{\r\n t('toast_error_not_found_item', {\r\n item: t(ref.resourceType?.replace('-', '_')),\r\n })\r\n }}</span>\r\n } @else {\r\n <span class=\"text-md font-semibold\">{{\r\n t('toast_error_load_item', {\r\n item: t(ref.resourceType?.replace('-', '_')),\r\n })\r\n }}</span>\r\n }\r\n <span class=\"text-xs\">{{ ref.id }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n </cdk-accordion-item>\r\n</cdk-accordion>\r\n","import { CdkAccordionModule } from '@angular/cdk/accordion';\nimport { Overlay, OverlayModule, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport {\n Component,\n inject,\n Injector,\n OnDestroy,\n ViewContainerRef,\n ViewChild,\n ElementRef,\n AfterViewChecked,\n ChangeDetectorRef,\n OnInit,\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport {\n Asset,\n AssetType,\n AssistantMessageStatus,\n Content,\n Message,\n ReferenceType,\n Role,\n Task,\n ToolMessageStatus,\n ToolType,\n} from '@hahnpro/hpc-api';\nimport { TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { MarkdownModule } from 'ngx-markdown';\n\nimport { IconComponent } from '../../core/icons';\nimport { UiPipesModule } from '../../core/pipes/pipes.module';\nimport { iconForMimeType } from '../../core/utils';\nimport { AssistantMessage, ChatService, UserMessage } from '../chat.service';\nimport {\n ContextOverlayComponent,\n OVERLAY_PAGE_NUMBER,\n OVERLAY_RESOURCE_ID,\n OVERLAY_RESOURCE_TYPE,\n} from '../context-overlay/context-overlay.component';\nimport { ContextService } from '../context.service';\nimport { MessageContextComponent } from '../message-context/message-context.component';\n\n@Component({\n imports: [\n CdkAccordionModule,\n IconComponent,\n MarkdownModule,\n MatButtonModule,\n MatProgressSpinnerModule,\n MatTooltipModule,\n MessageContextComponent,\n OverlayModule,\n TranslocoModule,\n UiPipesModule,\n ],\n selector: 'ai-thread',\n templateUrl: './thread.component.html',\n styleUrl: './thread.component.scss',\n})\nexport class ThreadComponent implements OnInit, OnDestroy, AfterViewChecked {\n readonly chatService = inject(ChatService);\n readonly contextService = inject(ContextService);\n private readonly cdRef = inject(ChangeDetectorRef);\n selection: string;\n\n @ViewChild('viewport') private viewport: ElementRef<HTMLElement>;\n\n private readonly translocoService = inject(TranslocoService);\n private readonly overlay = inject(Overlay);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private overlayRef: OverlayRef | null = null;\n\n private shouldScroll = false;\n private wasProcessing = false;\n private lastScrollTop = 0;\n private isProgrammaticScroll = false;\n\n ngOnInit(): void {\n this.chatService.setChangeDetector(this.cdRef);\n }\n\n ngAfterViewChecked(): void {\n const isProcessing = this.chatService.isProcessing;\n\n // Only follow the conversation while a response is being streamed. On a\n // new response, preserve the user's position if they are not near the end.\n if (isProcessing && !this.wasProcessing) {\n this.shouldScroll = this.isNearBottom();\n }\n this.wasProcessing = isProcessing;\n\n if (isProcessing && this.shouldScroll) {\n this.scrollToBottom();\n }\n }\n\n onScroll(): void {\n if (!this.viewport) {\n return;\n }\n\n const element = this.viewport.nativeElement;\n const scrollTop = element.scrollTop;\n\n // A small upward scroll is still an explicit indication that the user\n // wants to read above the latest message. Do not let the threshold below\n // immediately re-enable automatic scrolling in that case.\n if (!this.isProgrammaticScroll && scrollTop < this.lastScrollTop) {\n this.shouldScroll = false;\n } else if (!this.isProgrammaticScroll && this.chatService.isProcessing) {\n this.shouldScroll = this.isNearBottom();\n }\n\n this.lastScrollTop = scrollTop;\n }\n\n private isNearBottom(): boolean {\n if (!this.viewport) {\n return false;\n }\n\n const element = this.viewport.nativeElement;\n return (\n element.scrollHeight - element.scrollTop - element.clientHeight <= 100\n );\n }\n\n private scrollToBottom(): void {\n if (this.viewport) {\n const element = this.viewport.nativeElement;\n this.isProgrammaticScroll = true;\n element.scrollTop = element.scrollHeight;\n this.lastScrollTop = element.scrollTop;\n this.isProgrammaticScroll = false;\n }\n }\n\n ngOnDestroy(): void {\n this.chatService.closeThread();\n }\n\n openOverlay(\n event: MouseEvent,\n resourceId: string,\n resourceType?: ReferenceType,\n pageNumber?: number,\n ) {\n if (this.overlayRef) {\n this.overlayRef.detach();\n }\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(event.target as HTMLElement)\n .withPositions([\n { originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n\n const injector = Injector.create({\n providers: [\n { provide: OVERLAY_RESOURCE_ID, useValue: resourceId },\n { provide: OVERLAY_RESOURCE_TYPE, useValue: resourceType },\n { provide: OVERLAY_PAGE_NUMBER, useValue: pageNumber },\n { provide: ContextService, useValue: this.contextService },\n ],\n parent: this.viewContainerRef.injector,\n });\n const portal = new ComponentPortal(\n ContextOverlayComponent,\n this.viewContainerRef,\n injector,\n );\n this.overlayRef.attach(portal);\n this.overlayRef.backdropClick().subscribe(() => this.overlayRef?.detach());\n }\n\n interceptClick(event: MouseEvent) {\n const element = event.target;\n if (!(element instanceof HTMLAnchorElement)) {\n return;\n }\n let href = element.getAttribute('href');\n if (href.startsWith('$')) {\n href = href.substring(1);\n const params = href.split(',');\n const queryParams: Record<string, string> = params.reduce(\n (acc, param) => {\n const [key, value] = param.split('=');\n acc[key] = value;\n return acc;\n },\n {},\n );\n if (queryParams.ref && queryParams.msg) {\n const message = this.chatService.messages.find(\n (m) => m.id === queryParams.msg,\n );\n if (message) {\n const { references } = (message as AssistantMessage).parsedContent;\n const reference = references?.find(\n (ref) => ref.reference_id === parseInt(queryParams.ref, 10),\n );\n if (reference?.id) {\n const { id, pageNumber } = reference;\n this.chatService.highlightContext = id;\n this.openOverlay(event, id, reference.resourceType, pageNumber);\n } else {\n // this.toastService.error(\n // this.translocoService.translate('ai.reference_not_found'),\n // );\n }\n }\n }\n event.preventDefault();\n }\n }\n\n /**\n * Processes message content by:\n * 1. Converting names in quotes to bold references if they exist in the context cache\n * 2. Replacing reference IDs with clickable superscript elements\n *\n * @param message The assistant or user message to process\n * @returns Processed markdown content with enhanced references\n */\n getMarkdownContent(message: AssistantMessage | UserMessage): string {\n const content: string = message.parsedContent?.response;\n let processedContent;\n if (typeof content !== 'string') {\n return '';\n }\n try {\n processedContent = content.replace(\n /'([^'\"]*)'|\"([^'\"]*)\"/g,\n (match, singleQuoted, doubleQuoted) => {\n const name = singleQuoted || doubleQuoted;\n const id = this.contextService.getIdForName(name);\n if (!id) {\n return name;\n }\n const reference = message.parsedContent?.references.find(\n (ref) => ref.id === id,\n );\n return reference ? `**${name}**[[${reference.reference_id}]]` : name;\n },\n );\n } catch (_) {\n processedContent = content;\n }\n return processedContent.replace(/\\[\\[([\\s\\S]*?)\\]\\]/g, (match, inner) => {\n const ids = inner.match(/\\d+/g);\n if (!ids) {\n return match;\n }\n return ids\n .map(\n (id) => `<sup><b>[[${id}]]($ref=${id},msg=${message.id},)</b></sup>`,\n )\n .join(', ');\n });\n }\n\n getToolStatus(item: any): string {\n const statusMessage = this.translocoService.translate(\n `ai.tools.${item.toolName}.${item.status}`,\n );\n return statusMessage || null;\n }\n\n getFailReason(item): string {\n const reason = this.translocoService.translate(\n `ai.finish_reason.${item.finishReason}`,\n );\n return (\n reason || this.translocoService.translate('ai.finish_reason.unknown')\n );\n }\n\n getToolResult(item) {\n try {\n return JSON.parse(item.result.value);\n } catch (_) {\n return null;\n }\n }\n\n selectChoice(selection: any, toolMessage: any) {\n this.chatService.selectChoice(selection, toolMessage);\n }\n\n trackByMessageId(item: Message): string {\n return item.responseId || item.id || '';\n }\n\n retry(message: AssistantMessage) {\n if (!message) {\n return;\n }\n this.chatService.retryMessage(message);\n }\n\n protected iconForReferenceType(\n resource: Asset | AssetType | Content | Event | Task,\n resourceType: ReferenceType,\n ): string {\n switch (resourceType) {\n case ReferenceType.ASSET:\n return 'asset';\n case ReferenceType.ASSET_TYPE:\n return 'cube';\n case ReferenceType.DOCUMENT:\n return iconForMimeType((resource as Content)?.mimetype);\n case ReferenceType.EVENT:\n return 'calendar_clock';\n case ReferenceType.LOGBOOK_ENTRY:\n return 'book';\n case ReferenceType.TASK:\n return 'shifts_open';\n }\n }\n\n protected readonly Role = Role;\n protected readonly ToolType = ToolType;\n protected readonly ToolMessageStatus = ToolMessageStatus;\n protected readonly AssistantMessageStatus = AssistantMessageStatus;\n protected readonly ReferenceType = ReferenceType;\n}\n","<div\r\n #viewport\r\n class=\"relative flex h-full w-full flex-col gap-1 overflow-y-auto px-6 py-4\"\r\n (scroll)=\"onScroll()\"\r\n *transloco=\"let t\"\r\n>\r\n @if (chatService.isLoading) {\r\n <div\r\n class=\"absolute inset-0 z-100 flex items-center justify-center backdrop-blur-lg\"\r\n >\r\n <mat-spinner diameter=\"28\"></mat-spinner>\r\n </div>\r\n }\r\n @for (\r\n item of chatService.messages;\r\n track trackByMessageId(item);\r\n let idx = $index\r\n ) {\r\n @if (item.role === Role.ASSISTANT && item.parsedContent) {\r\n @if (item.status === AssistantMessageStatus.FAILED) {\r\n <div\r\n class=\"flex w-full max-w-[85%] flex-col self-center p-2 md:max-w-[85%]\"\r\n >\r\n <div\r\n class=\"flex items-center gap-x-4 rounded-2xl bg-red-200/20 px-6 py-4 text-md md:text-lg dark:bg-red-800/20\"\r\n >\r\n <ai-icon\r\n name=\"error_circle\"\r\n class=\"text-red-600/80 icon-md dark:text-red-400/80\"\r\n ></ai-icon>\r\n <markdown\r\n class=\"markdown-body\"\r\n [data]=\"getMarkdownContent(item)\"\r\n ></markdown>\r\n </div>\r\n @if (\r\n !chatService.isProcessing && idx === chatService.messages.length - 1\r\n ) {\r\n <div class=\"mt-0 flex justify-start\">\r\n <button\r\n ai-icon-button\r\n class=\"retry-button-inline\"\r\n [matTooltip]=\"t('ai.retry')\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"retry(item)\"\r\n >\r\n <ai-icon class=\"icon-sm\" name=\"arrow_clockwise\"></ai-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <div\r\n class=\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\"\r\n >\r\n <markdown\r\n class=\"markdown-body\"\r\n [data]=\"getMarkdownContent(item)\"\r\n (click)=\"interceptClick($event)\"\r\n ></markdown>\r\n @if (item.parsedContent.references?.length) {\r\n <ai-message-context\r\n [message]=\"item\"\r\n [isLastMessage]=\"idx === chatService.messages.length - 1\"\r\n class=\"mt-2\"\r\n ></ai-message-context>\r\n }\r\n @if (\r\n !chatService.isProcessing && idx === chatService.messages.length - 1\r\n ) {\r\n <div class=\"mt-0 flex justify-start\">\r\n <button\r\n ai-icon-button\r\n class=\"retry-button-inline\"\r\n [matTooltip]=\"t('ai.retry')\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"retry(item)\"\r\n >\r\n <ai-icon class=\"icon-sm\" name=\"arrow_clockwise\"></ai-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n }\r\n } @else if (\r\n item.role === Role.ASSISTANT &&\r\n item.status === AssistantMessageStatus.FAILED &&\r\n getFailReason(item)\r\n ) {\r\n <div\r\n class=\"flex w-full max-w-[85%] flex-col gap-y-2 self-center px-2 py-2\"\r\n >\r\n <div\r\n class=\"flex items-center gap-x-2 rounded-2xl bg-red-400/10 px-4 py-2 dark:bg-red-600/10\"\r\n >\r\n <ai-icon\r\n name=\"dismiss_circle\"\r\n class=\"text-red-600/80 icon-sm dark:text-red-400/80\"\r\n ></ai-icon>\r\n <span>{{ getFailReason(item) }}</span>\r\n </div>\r\n @if (\r\n !chatService.isProcessing && idx === chatService.messages.length - 1\r\n ) {\r\n <div class=\"mt-0 flex justify-start\">\r\n <button\r\n ai-icon-button\r\n class=\"retry-button-inline\"\r\n [matTooltip]=\"t('ai.retry')\"\r\n matTooltipPosition=\"above\"\r\n (click)=\"retry(item)\"\r\n >\r\n <ai-icon class=\"icon-sm\" name=\"arrow_clockwise\"></ai-icon>\r\n </button>\r\n </div>\r\n }\r\n </div>\r\n } @else if (\r\n item.role === Role.TOOL &&\r\n item.toolType === ToolType.ACTION &&\r\n item.status &&\r\n getToolStatus(item)\r\n ) {\r\n <div class=\"flex w-full max-w-[85%] flex-col self-center px-2 py-1\">\r\n <div\r\n class=\"flex w-fit items-center gap-x-2 rounded-2xl bg-zinc-300/20 px-4 py-1 text-md text-zinc-800/90 dark:bg-black/70 dark:text-zinc-100/90\"\r\n >\r\n @if (item.status === ToolMessageStatus.COMPLETED) {\r\n <ai-icon\r\n name=\"checkmark_circle\"\r\n class=\"text-green-500/80 icon-sm dark:text-green-400/80\"\r\n ></ai-icon>\r\n } @else if (item.status === ToolMessageStatus.FAILED) {\r\n <ai-icon\r\n name=\"dismiss_circle\"\r\n class=\"text-red-500/80 icon-sm dark:text-red-400/80\"\r\n ></ai-icon>\r\n } @else if (item.status === ToolMessageStatus.PENDING) {\r\n <ai-icon\r\n name=\"hourglass_quarter\"\r\n class=\"text-zinc-700/60 icon-sm dark:text-zinc-300/40\"\r\n ></ai-icon>\r\n } @else if (item.status === ToolMessageStatus.PROCESSING) {\r\n <mat-spinner diameter=\"16\"></mat-spinner>\r\n }\r\n <i>{{ getToolStatus(item) }}</i>\r\n @if (item.status === ToolMessageStatus.COMPLETED) {\r\n @if (getToolResult(item); as result) {\r\n @if (result.event?.id) {\r\n <i>-</i>\r\n <a\r\n (click)=\"openOverlay($event, result.event.id, ReferenceType.EVENT)\"\r\n (keyup.enter)=\"openOverlay($event, result.event.id, ReferenceType.EVENT)\"\r\n tabindex=\"0\"\r\n class=\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\"\r\n >\r\n {{ result.event.name }}\r\n </a>\r\n } @else if (result.content?.id) {\r\n <i>-</i>\r\n <a\r\n (click)=\"openOverlay($event, result.content.id, ReferenceType.DOCUMENT)\"\r\n (keyup.enter)=\"openOverlay($event, result.content.id, ReferenceType.DOCUMENT)\"\r\n tabindex=\"0\"\r\n class=\"cursor-pointer font-semibold hover:text-blue-600 hover:underline dark:hover:text-blue-200\"\r\n >\r\n {{ result.content.filename }}\r\n </a>\r\n }\r\n }\r\n }\r\n </div>\r\n </div>\r\n } @else if (\r\n item.role === Role.TOOL &&\r\n item.toolType === ToolType.CHOICE &&\r\n item.status === ToolMessageStatus.AWAITING_USER_INTERACTION &&\r\n item.args?.choices\r\n ) {\r\n <div class=\"flex w-full max-w-[85%] flex-col self-center px-2 py-2\">\r\n <div\r\n class=\"flex flex-col rounded-2xl bg-zinc-300/40 pt-3 dark:bg-zinc-700/30\"\r\n >\r\n @if (item.args.message) {\r\n <div\r\n class=\"flex items-center gap-x-3 px-5 pb-3 text-zinc-800 dark:text-zinc-300\"\r\n >\r\n <ai-icon name=\"layer_diagonal_sparkle\"></ai-icon>\r\n <span class=\"font-semibold\">{{ item.args.message }}</span>\r\n </div>\r\n }\r\n <div class=\"flex flex-wrap gap-x-3 gap-y-2 overflow-x-auto px-5 pb-3\">\r\n @for (choice of item.args.choices; track choice.id) {\r\n <div\r\n class=\"min-w-48 max-w-80 cursor-pointer rounded-2xl border border-zinc-400/40 bg-zinc-400/20 hover:bg-zinc-400/30 dark:border-black/50 dark:bg-black/20\"\r\n (click)=\"selectChoice(choice, item)\"\r\n (keyup.enter)=\"selectChoice(choice, item)\"\r\n tabindex=\"0\"\r\n >\r\n <div\r\n class=\"flex grow items-center gap-x-2 rounded-2xl px-2 py-1\"\r\n >\r\n <div\r\n class=\"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl border border-zinc-400/30\"\r\n >\r\n <ai-icon\r\n [name]=\"\r\n iconForReferenceType(\r\n choice,\r\n item.args.resourceType ?? ReferenceType.ASSET\r\n )\r\n \"\r\n ></ai-icon>\r\n </div>\r\n <div class=\"flex h-full grow flex-col overflow-hidden pr-4\">\r\n <span class=\"truncate text-md font-semibold\">{{\r\n choice.name\r\n }}</span>\r\n <div class=\"flex items-center gap-x-2 text-xs\">\r\n <span class=\"truncate\">{{ choice.typeName }}</span>\r\n @if (choice.location) {\r\n <span class=\"truncate\">{{ choice.location }}</span>\r\n }\r\n @if (choice.factory) {\r\n <span class=\"truncate\">{{ choice.factory }}</span>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n } @else if (item.role === Role.USER && !item.hidden) {\r\n <div class=\"flex max-w-[90%] flex-col self-end py-4 md:max-w-[80%]\">\r\n <div class=\"rounded-2xl bg-zinc-300/30 px-6 py-4 dark:bg-black/20\">\r\n <markdown\r\n class=\"markdown-body\"\r\n [data]=\"getMarkdownContent(item)\"\r\n (click)=\"interceptClick($event)\"\r\n ></markdown>\r\n @if (item.parsedContent?.references?.length) {\r\n <ai-message-context\r\n [message]=\"item\"\r\n [isLastMessage]=\"idx === chatService.messages.length - 1\"\r\n class=\"mt-2\"\r\n ></ai-message-context>\r\n }\r\n </div>\r\n </div>\r\n }\r\n }\r\n\r\n @if (chatService.isProcessing) {\r\n <div class=\"flex w-full max-w-[85%] flex-col self-center rounded-2xl\">\r\n <div class=\"flex flex-col gap-y-2 px-2 py-4\">\r\n <div\r\n class=\"pulse-loader flex items-center gap-x-1 text-zinc-700/50 dark:text-zinc-300/30\"\r\n >\r\n <div></div>\r\n <div></div>\r\n <div></div>\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import { NgModule, isDevMode } from '@angular/core';\nimport {\n DefaultTranspiler,\n TRANSLOCO_LOADER,\n TRANSLOCO_TRANSPILER,\n TranslocoLoader,\n TranslocoModule,\n provideTransloco,\n} from '@jsverse/transloco';\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nexport const translations = {\n en: {\n accepted: 'Accepted',\n access_restricted: 'Access restricted',\n access_unrestricted: 'Access unrestricted',\n account: 'Account',\n action: 'Action',\n actions: 'Actions',\n active: 'Active',\n add_attachment: 'Add Attachment',\n add_attribute: 'Add Attribute',\n add_new: 'Add New',\n add_new_member: 'Add new member',\n add_new_organization: 'Add new Organization',\n add_to_clipboard: 'Add to clipboard',\n address: 'Address',\n administration: 'Administration',\n ai: {\n abort: 'Abort',\n accept: 'Accept',\n accessed_at: 'Accessed at',\n adam_ai_intro:\n 'Engage in real-time conversations with Adam AI, your expert assistant in Asset Intelligence. Get instant, intelligent insights and solutions tailored to your needs.',\n agent_unavailable: 'Agent unavailable',\n ai_placeholder: 'How can ADAM help you today?',\n and: 'and',\n ask_about_asset: 'Ask ADAM AI about this asset',\n ask_adam: 'Ask Adam AI',\n asset_intelligence: 'Asset Intelligence',\n assistants: 'Assistants',\n chat_deleted: 'Chat deleted',\n chats: 'Chats',\n clear_history: 'Clear History',\n complete_and_create_report: 'Complete and create report',\n context: 'Referenced Context',\n context_found: 'Found related context',\n context_none:\n 'No related Assets or files found. Consider revising your prompt.',\n context_search: 'Searching for related Assets and files...',\n continue_chat: 'Continue Chat',\n continue_previous_chat: 'Continue previous Chat',\n cookies: 'Cookies',\n create_new_chat: 'Create New Chat',\n create_new_event: 'Create new Event with the help of Adam AI',\n de: 'Deutsch',\n delete_chat: 'Delete Chat',\n delete_item: 'Delete Item',\n delete_item_message:\n '{count, plural, one {Are you sure you want to delete this item?<br><br><b>{{ items }}</b>} other {Are you sure you want to delete these # items?}}',\n delete_item_message_general: 'Are you sure you want to delete this item?',\n delete_item_title:\n '{count, plural, one {Delete Item} other {Delete Multiple Items}}',\n document: 'Document',\n en: 'English',\n failed_to_create_chat: 'Failed to create chat',\n failed_to_delete_chat: 'Failed to delete chat',\n failed_to_initialize_chat: 'Failed to initialize chat',\n failed_to_load_assistants: 'Failed to load assistants',\n failed_to_load_chats: 'Failed to load chat history',\n failed_to_process_message:\n 'The message could not be processed. Please try again.',\n failed_to_send_message: 'Failed to send message',\n failed_to_update_model: 'Failed to update model',\n file_type: {\n archive: 'Archive',\n audio: 'Audio',\n image: 'Image',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unknown',\n video: 'Video',\n },\n finish_reason: {\n 'content-filter':\n 'Your request was blocked due to content filters. Please try rephrasing your question and try again.',\n error: 'Something went wrong. Please try again later.',\n length:\n 'The request is too long to process. Please try again or start a new conversation.',\n unknown: 'Something went wrong. Please try again later.',\n },\n 'gpt-4o': 'GPT-4o',\n 'gpt-4o-2024-08-06': 'GPT-4o',\n 'gpt-4o-2024-11-20': 'GPT-4o',\n 'gpt-4o-mini': 'GPT-4o Mini',\n 'gpt-4o-mini-2024-07-18': 'GPT-4o Mini',\n help_me: 'Ask Adam AI for help',\n last_message: 'Last Message',\n model: 'GPT Model',\n model_updated: 'Model updated',\n no_chats_found: 'No chats found',\n no_messages: 'No messages yet',\n none_of_those: 'None of those',\n of_document: 'of document',\n openai_disclaimer:\n 'In the preview version of the Asset Web Assistant, your data will be processed by OpenAI outside the EU. Do you agree with this?',\n previous_chats: 'Previous Chats',\n prompt_suggestions: {\n 'asset-info': {\n prompt: 'Provide a detailed maintenance plan for my asset',\n title: 'Asset Info',\n },\n intro: {\n prompt:\n 'What is Adam AI and how can it help me with asset management?',\n title: 'Introduction',\n },\n },\n prompts: {\n assetId: '. The ID of the Asset is {{assetId}}',\n assetKey: '. The external ID of the Asset is {{assetKey}}',\n asset: 'I have a question related to the Asset {{assetName}}',\n help: 'Please help me solve this task.\\n\\nDo not rely solely on the asset master data. Also search all available documents, SOPs, troubleshooting reports, training notes, and similar historical cases.\\n\\nPlease provide:\\n1. The most likely root causes\\n2. A concrete inspection and troubleshooting sequence for the maintenance technician\\n3. Relevant previous cases\\n4. Source references\\n5. The next clarifying questions needed to narrow down the issue further.',\n incident: 'Please create a new incident for the Asset {{assetName}}',\n report: 'Please create a report for the Asset {{assetName}}',\n },\n reference_not_found: 'Reference not found',\n retry: 'Retry',\n select_asset: 'Select Asset',\n send_message: 'Send Message',\n send_voice_message: 'Transcribe and send',\n source: 'Source',\n starting_voice_input: 'Starting voice input...',\n stop_recording: 'Stop Recording',\n cancel_recording: 'Cancel recording',\n finish_recording: 'Stop and transcribe',\n no_speech_detected: 'No speech was detected. Please try again.',\n transcribing_voice_input: 'Transcribing...',\n transcription_failed:\n 'The recording could not be transcribed. Please try again.',\n voice_input_failed:\n 'The microphone could not be accessed. Check your browser permissions and try again.',\n suggested_prompts: 'Suggested prompts to get started with ADAM AI',\n threads: 'Threads',\n toast_error_delete_entry: 'Could not delete {{entry}}.',\n toast_success_delete_entry: '{{entry}} deleted.',\n tools: {\n addTaskLogbookEntry: {\n completed: 'Added new Logbook entry completed',\n failed: 'Add Logbook entry failed',\n pending: 'Adding Logbook entry',\n processing: 'Adding Logbook entry',\n },\n createAxaltaEvent: {\n completed: 'Event was created',\n failed: 'Event could not be created',\n pending: 'Creating Event',\n processing: 'Creating Event',\n },\n createEvent: {\n completed: 'Event was created',\n failed: 'Event could not be created',\n pending: 'Creating Event',\n processing: 'Creating Event',\n },\n createReport: {\n completed: 'Report was created',\n failed: 'Report could not be created',\n pending: 'Creating Report',\n processing: 'Creating Report',\n },\n createJSONReport: {\n completed: 'Report was created',\n failed: 'Report could not be created',\n pending: 'Creating Report',\n processing: 'Creating Report',\n },\n findTaskByName: {\n completed: 'Task was retrieved',\n failed: 'Task could not be retrieved',\n pending: 'Searching for Task',\n processing: 'Searching for Task',\n },\n findTasksByAsset: {\n completed: 'Tasks were retrieved',\n failed: 'Tasks could not be retrieved',\n pending: 'Searching for Tasks',\n processing: 'Searching for Tasks',\n },\n getAdditionalDataTemplate: {\n completed: 'Additional data was retrieved',\n failed: 'Additional data could not be retrieved',\n pending: 'Retrieving Additional data',\n processing: 'Retrieving Additional data',\n },\n getAssetData: {\n completed: 'Asset data was retrieved',\n failed: 'Asset data could not be retrieved',\n pending: 'Retrieving Asset data',\n processing: 'Retrieving Asset data',\n },\n getIncidentTemplate: {\n completed: 'Incident template was retrieved',\n failed: 'Incident template could not be retrieved',\n pending: 'Retrieving Incident template',\n processing: 'Retrieving Incident template',\n },\n getReportTemplate: {\n completed: 'Report template was retrieved',\n failed: 'Report template could not be retrieved',\n pending: 'Retrieving Report template',\n processing: 'Retrieving Report template',\n },\n getTaskLogbookEntries: {\n completed: 'Search for Logbook entries completed',\n failed: 'Search for Logbook entries failed',\n pending: 'Searching for Logbook entries',\n processing: 'Searching for Logbook entries',\n },\n searchAssetTypes: {\n completed: 'Search in Asset Types completed',\n failed: 'Search in Asset Types failed',\n pending: 'Searching in Asset Types',\n processing: 'Searching in Asset Types',\n },\n searchAssets: {\n completed: 'Search in Assets completed',\n failed: 'Search in Assets failed',\n pending: 'Searching in Assets',\n processing: 'Searching in Assets',\n },\n searchForAssetAxalta: {\n completed: 'Search for Asset completed',\n failed: 'Search for Asset failed',\n pending: 'Searching for Asset',\n processing: 'Searching for Asset',\n },\n searchForAssetWithId: {\n completed: 'Search for Asset with ID completed',\n failed: 'Search for Asset with ID failed',\n pending: 'Searching for Asset with ID',\n processing: 'Searching for Asset with ID',\n },\n searchForAssetsByIdNameType: {\n completed: 'Search for Assets completed',\n failed: 'Search for Assets failed',\n pending: 'Searching for Assets',\n processing: 'Searching for Assets',\n },\n searchForDocuments: {\n completed: 'Search for Documents completed',\n failed: 'Search for Documents failed',\n pending: 'Searching for Documents',\n processing: 'Searching for Documents',\n },\n searchForEvents: {\n completed: 'Search for Events completed',\n failed: 'Search for Events failed',\n pending: 'Searching for Events',\n processing: 'Searching for Events',\n },\n updateTaskLogbookEntry: {\n completed: 'Update Logbook entry completed',\n failed: 'Update Logbook entry failed',\n pending: 'Updating Logbook entry',\n processing: 'Updating Logbook entry',\n },\n },\n use_microphone: 'Use Microphone',\n use_web_search: 'Search in Web',\n view_previous_chats: 'View Previous Chats',\n web_source: 'Web Source',\n },\n alert: 'Alert',\n alerts: 'Alerts',\n allowed_to: \"You're allowed to\",\n and: 'and',\n applications: 'Applications',\n apps: 'Applications',\n appstore: 'App Store',\n ascending: 'Ascending',\n asset: 'Asset',\n asset_intelligence: 'Asset Intelligence',\n asset_manager: 'Asset Manager',\n asset_type: 'Asset Type',\n assets: 'Assets',\n assettype: 'Asset Type',\n assettypes: 'Asset Types',\n attachment: 'Attachment',\n attachments: 'Attachments',\n audit_logs: 'Audit Logs',\n author: 'Author',\n authorization_type: 'Authorization Type',\n average: 'Average',\n back: 'Back',\n back_to_organizations: 'Back to organizations',\n bucket_time_range: 'Bucket Time Range (Default is 24h)',\n by: 'by',\n 'cad-preview': {\n 'cad-direction-y': 'Set Y as up vector',\n 'cad-direction-z': 'Set Z as up vector',\n 'cad-fixed-vector': 'Fixed up vector',\n 'cad-menu-center': 'Center',\n 'cad-menu-flip-vector': 'Flip',\n 'cad-unfixed-vector': 'Unfixed vector',\n 'cad-viewer-flip-camera-mode-orthogonal':\n 'Turn on the Orthographic camera',\n 'cad-viewer-flip-camera-mode-perspective':\n 'Turn on the Perspective camera',\n 'error-default-filetype': 'Invalid filetype',\n 'error-invalid-filetype':\n '{{filetype}} is not supported. Try compressing files in a ZIP file if this is a CAD-drawing',\n },\n calendar: 'Calendar',\n cancel: 'Cancel',\n catalog: 'Catalog',\n 'category.delete': 'Remove category',\n 'cert.add.new': 'Add new Certificate',\n 'cert.delete': 'Remove Certificate',\n 'cert.edit': 'Edit Certificate',\n 'cert.name': \"Certificate's name\",\n cert_add_new_description: 'Management of organization related certificates',\n certificate: 'Certificate',\n 'certificate.add.new': 'Add new Certificate',\n certification: {\n date_issue: 'Date of Issue',\n expiration_date: 'Expiration date',\n institution: 'Certification Institution',\n number: 'Certificate number',\n },\n children: 'Children',\n choose: 'Choose',\n choose_file: 'Choose file',\n city: 'City',\n color: 'Color',\n column_settings: 'Column Settings',\n comment: 'Comment',\n company_manager: 'Company Manager',\n company_matching: 'Company Matching',\n complete_subscription: 'Complete Subscription',\n confirm: 'Confirm',\n consent_management: {\n accept_all: 'Accept all',\n accept_all_note:\n 'By clicking \"Accept all\", you agree to the use of essential and analytics cookies.',\n always_enabled: 'Always enabled',\n cookie_groups: {\n analytics: {\n description:\n 'These cookies gather data on website usage, such as which pages are visited, to help us identify the most popular pages and understand how visitors navigate the site. <br /> Website usage data is captured using persistent first and third-party cookies and other tracking technologies to determine the popularity of products and online activity.',\n title: 'Analytics cookies',\n },\n essential: {\n description:\n 'These cookies are essential for the operation of the website. They are usually only set in response to your actions, such as setting your privacy preferences. These cookies do not store any personally identifiable information.',\n title: 'Essential cookies',\n },\n },\n cookie_intro:\n 'This website uses cookies and other tracking technologies to enable essential site functionality, improve the user experience, as well as for analytics and personalisation purposes.',\n cookie_intro_extended:\n 'This website uses cookies and other tracking technologies to enable essential site functionality, improve the user experience, as well as for analytics and personalisation purposes.<br />We use Microsoft Clarity to analyse how our website is used and to improve our products. By using our site, you consent to us and Microsoft collecting and using this data.',\n cookie_learn_more: 'To learn more, please view our',\n cookie_preferences_center: 'Cookie Preferences Center',\n cookie_settings: 'Cookie Settings',\n cookie_usage: 'Cookie usage',\n manage_preferences: 'Manage preferences',\n reject_all: 'Reject all',\n save_preferences: 'Save preferences',\n },\n content: 'Content',\n 'content.file_type': {\n archive: 'Archive',\n audio: 'Audio',\n image: 'Image',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unknown',\n video: 'Video',\n },\n\n 'content.show_preview': 'Show Preview',\n 'content.size': 'Size',\n 'content.toast_downloading_content': 'Downloading content...',\n 'content.toast_error_download_content': 'Could not download content.',\n 'content.toast_success_download_content':\n 'Content downloaded successfully.',\n content_drop_zone_text: 'Drag & Drop File',\n content_manager: 'Content Manager',\n contents: 'Contents',\n copy_id: 'Copy ID',\n count: 'Count',\n created: 'Created',\n critical: 'Critical',\n current_organization: 'Current Organization',\n danger_zone: 'Danger Zone',\n dashboards: 'Dashboards',\n data: 'Data',\n date: 'Date',\n day: 'Day',\n days: 'Days',\n de: 'Deutsch',\n default: 'Default',\n delete: 'Delete',\n delete_attachment: 'Delete Attachment',\n delete_member: 'Remove member',\n delete_revision: 'Delete Revision',\n delete_title: 'Delete Title',\n deleted: 'Deleted',\n delimiter: 'Delimiter, like ; or :',\n descending: 'Descending',\n description: 'Description',\n details: 'Details',\n domain: 'Domain',\n 'domain.delete': 'Delete Domain name',\n domain_name: 'Domain name',\n domain_name_placeholder: 'www.domain.com',\n domain_new: 'Add new domain',\n domains: 'Domains',\n download: 'Download',\n download_attachment: 'Download Attachment',\n drag_drop_file: {\n error: {\n file_too_large:\n \"The file '{{fileName}}' exceeds the maximum allowed size of {{maxFileSize}} and has been ignored.\",\n file_type_not_allowed:\n \"The file type of '{{fileName}}' is not allowed and has been rejected.\",\n },\n max_file_size: 'Maximum file size',\n prompt_1:\n 'Drag & drop {limit, plural, one {file} other {files}} here or ',\n prompt_2: 'click to browse',\n warning: {\n max_file_count:\n 'You have selected {{fileCount}} files, but the maximum allowed is {{maxFileCount}}. Only the first {{maxFileCount}} files have been accepted.',\n },\n },\n duration: 'Duration',\n edit: 'Edit',\n edit_attachment: 'Edit Attachment',\n edit_event_level: 'Edit Event Level',\n edit_title: 'Edit Title',\n editor: 'Editor',\n email: 'Email',\n employees: 'Employees',\n en: 'English',\n encoding: 'Encoding',\n endpoints: 'Notification Endpoints',\n english: 'English',\n entries: 'Entries',\n error: 'Error',\n error_loading: 'Failed to load {item}',\n error_message_update: 'Could not update User Settings',\n errors: 'Errors',\n event: 'Event',\n event_level: 'Event Level',\n events: 'Events',\n filename: 'Filename',\n flow: 'Flow',\n flow_studio: 'Flow Studio',\n flowdeployment: 'Flow Deployment',\n flowdeployments: 'Flow Deployments',\n flowfunction: 'Flow Function',\n flowfunctions: 'Flow Functions',\n flowmodel: 'Flow Model',\n flowmodule: 'Flow Module',\n flowmodules: 'Flow Modules',\n flows: 'Flows',\n form_error_delimiter: 'Delimiter required.',\n form_error_details: 'Details Form has Errors.',\n form_error_email: 'Email is required.',\n form_error_empty_method: 'The method must be not empty.',\n form_error_empty_url: 'The URL must be not empty.',\n form_error_encoding: 'Encoding need to set.',\n form_error_expiry_date: 'Expiry date is required.',\n form_error_group: 'At least one group must be selected.',\n form_error_length: 'Name must be at least {{length}} characters long.',\n form_error_max_length: 'Must be no more than {{length}} characters',\n form_error_min_length: 'Must be at least {{length}} characters',\n form_error_name: 'Name is required.',\n form_error_name_pattern:\n 'Only letters, numbers, spaces, hyphens (-), and underscores (_) are allowed',\n form_error_read: 'At least one read permission must be selected.',\n form_error_read_write:\n 'At least one read/write permission must be selected.',\n form_error_required: 'Field is required',\n form_error_role_pattern:\n 'Only lowercase letters, hyphens (-), and underscores (_) are allowed',\n form_error_schema_req: 'Schema is required.',\n form_error_select_file: 'A file must be selected.',\n form_error_select_type: 'An asset type must be selected.',\n form_error_source: 'Source is needed.',\n form_error_unique: 'Property has to be unique: ',\n form_error_view: 'View is needed.',\n general: 'General',\n german: 'German',\n global: 'Global',\n group: 'Group',\n group_by: 'Group by',\n history: 'History',\n hour_format: '{{time}}-hour Time Format',\n id: 'ID',\n inactive: 'Inactive',\n info: 'Info',\n invite_new_employee: 'Invite new employee',\n invite_new_employee_description:\n 'Inviting new employees and assigning them to specific roles',\n invite_new_member: 'Invite new member',\n invite_new_member_description:\n 'Inviting new member and assigning them to specific roles',\n 'jsf_widgets.content.error.resolving_content_failed':\n 'Could not resolve Content',\n 'jsf_widgets.content_reference.error.asset_id_missing': 'Asset ID not set',\n 'jsf_widgets.content_reference.error.loading_attachments_failed':\n 'Could not load Asset Attachments',\n 'jsf_widgets.cron.error.invalid_expression': 'Not a valid cron expression',\n 'jsf_widgets.duration.error.invalid_duration': 'Not a valid duration',\n 'jsf_widgets.permission.error.load_permissions_all_users_failed':\n 'Could not load Permissions of all users',\n 'jsf_widgets.permission.error.load_permissions_failed':\n 'Could not load Permissions',\n 'jsf_widgets.resource_reference.error.searching_failed':\n 'Search could not be completed',\n keys: 'Keys',\n label: 'Label',\n labels: 'Labels',\n labels_edit: 'Edit Labels',\n labels_edit_default: 'Edit Global Default Labels',\n language: 'Language',\n last_updated: 'Last updated',\n leave: 'Leave',\n legal_notice: 'Legal Notice',\n list: 'List',\n loading: 'loading...',\n logbook_entry: 'Logbook Entry',\n logo: 'Logo',\n manage_groups: 'Manage Groups',\n manage_identity_providers:\n 'Role that allows to manage the configured identity providers of the company',\n manage_invitations:\n 'Role that allows to manage open invitations of the company',\n manage_members: 'Role that allows to manage the members of the company',\n manage_organization:\n 'Role that allows to manage the company and its details',\n manage_roles: 'Role that allows to manage the roles of the company',\n manager: 'App Manager',\n maximum: 'Maximum',\n member: 'Mitglied',\n message: 'Message',\n method: 'Method',\n modules: 'Modules',\n month: 'Month',\n months: 'Months',\n my_tasks: 'My Tasks',\n name: 'Name',\n new_feminine: 'New',\n new_masculine: 'New',\n new_neutral: 'New',\n new_tag: 'New Label',\n next: 'Next',\n next_step: 'Next',\n no_description: 'No description',\n no_labels: 'No Labels',\n no_preview: 'No preview available',\n no_result: 'No results found!',\n not_assigned: 'Not assigned',\n notification_close_tooltip: 'Close',\n notification_info_empty_list: 'No notifications available',\n notification_open_manager_tooltip: 'Open Notification Manager',\n notification_open_tooltip: 'Open',\n notification_read_all_tooltip: 'Mark all as read',\n notification_read_tooltip: 'Mark as read',\n notification_rules: 'Notification Rules',\n notification_toast_info: 'Received a new notification!',\n notification_unread_tooltip: 'Mark as unread',\n notificationendpoint: 'Notification Endpoint',\n notificationendpoints: 'Notification Endpoints',\n notificationrule: 'Notification Rule',\n notificationrules: 'Notification Rules',\n notifications: 'Notifications',\n offer_requests: 'Offer Requests',\n offers: 'Offers',\n ok: 'OK',\n open: 'Open',\n opened: 'Opened',\n organization: 'Organization',\n 'organization.delete': 'Delete Organization',\n 'organization.delete_as_superuser': 'Delete Organization as Superuser',\n 'organization.request_delete': 'Request Organization Deletion',\n organization_delete_message:\n 'Should the Organization <b>{organization}</b> and all associated data really be deleted?',\n organization_overview: 'Organization Overview',\n organization_request_delete_description:\n 'You hereby request the deletion of your Organization. Please note that the deletion of an Organization is irrevocable and all data belonging to the Organization will also be deleted.',\n organization_tenders: 'Organization Tenders',\n organizations: 'Organizations',\n overview: 'Overview',\n owner: {\n edit_permission: 'Members of {{org}} are allowed to view and edit',\n managed_by: 'Managed by',\n view_permission: 'Members of {{org}} are allowed to view',\n },\n page: 'Page',\n parent: 'Parent',\n password: 'Password',\n pending: 'Pending',\n period: 'Period',\n permissions: 'Permissions',\n phone_number: 'Phone Number',\n preview: 'Preview',\n previous: 'Previous',\n privacy_policy: 'Privacy Policy',\n profile: 'Profile',\n properties: 'Properties',\n property: 'Property',\n quarter: 'Quarter',\n read_permissions: 'Read Permissions',\n read_permissions_edit_default: 'Edit Default Read/Write Permissions',\n read_write_permissions: 'Read/Write Permissions',\n reference: 'Reference',\n references: 'References',\n reset: 'Reset',\n response_type: 'Response Type',\n revision: 'Revision',\n 'role.add.new': 'Add role',\n 'role.delete': 'Remove role',\n 'role.edit': 'Edit role description',\n 'role.edit.info':\n 'Each role must have a unique name and cannot be modified after creating of the role. Only lowercase letters, hyphens (-), and underscores (_) are allowed in the name.',\n 'role.name': 'Name of the role',\n role_add_new_description:\n 'Establishing new roles within your organization and distributing them to resources or assigning them to members as needed.',\n role_admin: 'Admin Role',\n role_info:\n 'Roles to assign the user. Admin role gets all roles. View role gets view only.',\n role_view: 'View Role',\n roles: 'Roles',\n rollback_version: 'Roll back To selected version',\n save: 'Save',\n schema: 'Schema',\n search: 'Search...',\n 'search.no_results': 'No results found',\n search_asset_types: 'Search asset types...',\n search_assets: 'Search assets...',\n search_for_page: 'Search for a page',\n search_roles: 'Search roles...',\n search_tsm: 'Search timeseries...',\n secret: 'Secret',\n secrets: 'Secrets',\n select: 'Select',\n select_file: 'Select File',\n selected_file: 'Selected File',\n 'service.add.new': 'Add Service',\n 'service.delete': 'Remove Service',\n services: 'Services',\n settings: 'Settings',\n setup_certs_description: 'Setup associated certificates',\n show: 'Show',\n show_differences: 'Show differences',\n show_preview: 'Show Preview',\n sign_in: 'Sign in',\n sign_out: 'Sign out',\n signed_in_as: 'Signed in as',\n sort: 'Sort',\n statistic_queries: 'Statistic Queries',\n status: 'Status',\n supertype: 'Supertype',\n system: 'System',\n tags: 'Labels',\n task: 'Task',\n tasks: 'Tasks',\n time: 'Time',\n time_series: 'Time Series',\n time_series_manager: 'Time Series Manager',\n timeseries: 'Time Series',\n title: 'Title',\n toast_active_organization_error: 'Failed to change active organization.',\n toast_active_organization_loading: 'Changing active organization...',\n toast_active_organization_success:\n 'Successfully changed active organization.',\n toast_error: 'Error!',\n toast_error_add_employee:\n \"Couldn't send the invitation of the new employee\",\n toast_error_add_member: \"Couldn't send the invitation of the new member\",\n toast_error_add_role: \"Couldn't add role\",\n toast_error_authenticate: 'Could not authenticate.',\n toast_error_create_tsm: 'Could not create Time Series.',\n toast_error_index_content: 'Error when retrieving indexing status',\n toast_error_invitation_send: 'Could not send invitation',\n toast_error_load_cert: 'Could not load certificates',\n toast_error_load_event_causes: 'Could not load Event causes override.',\n toast_error_load_item: 'Could not load {{item}}.',\n toast_error_load_list: 'Could not load list.',\n toast_error_load_org_roles: 'Could not load roles of the active company.',\n toast_error_load_permissions: 'Could not load Permissions',\n toast_error_load_permissions_all_users:\n 'Could not load Permissions of all users',\n toast_error_load_preview: 'Could not load preview.',\n toast_error_load_role: 'Could not load roles',\n toast_error_load_service: 'Could not load services',\n toast_error_load_tender: 'Could not load tender.',\n toast_error_organization_delete: 'Could not delete organization',\n toast_error_organization_name_exists:\n 'Organization with name {{name}} already exists',\n toast_error_rollback_version: 'Cannot roll back to selected version',\n toast_error_save_item: 'Could not save {{item}}',\n toast_error_update_attachment:\n '{count, plural, one {Could not update attachment} other {Could not update # attachments}}',\n toast_error_update_event_causes: 'Could not update Event causes override.',\n toast_error_update_service: 'Could not update services',\n toast_error_upload_file:\n '{count, plural, one {Could not upload {{file}}} other {Could not upload # files}}',\n toast_error_upload_file_max:\n 'No more than {{max}} files may be uploaded at the same time.',\n toast_form_error_required: '{{param}} cannot be empty',\n toast_form_error_required_selection:\n 'You must select at least one {{param}}',\n toast_form_error_required_selection_feminine:\n 'You must select at least one {{param}}',\n toast_info: 'Info!',\n toast_success: 'Success!',\n toast_success_add_employee:\n 'The invitation of the new employee has been sent successfully',\n toast_success_add_member:\n 'The invitation of the new member has been sent successfully',\n toast_success_add_role: 'Role has been added successfully',\n toast_success_invitation_send: 'Invitation sent',\n toast_success_update_attachment:\n '{count, plural, one {Attachment updated} other {# Attachments updated}}',\n toast_success_update_service: 'Service updated.',\n toast_success_upload_file:\n '{count, plural, one {Upload of {{file}} completed} other {Upload of # files completed}}',\n toast_warning: 'Warning!',\n toast_warning_invalid_form_data:\n 'Invalid form data. Please check the form for errors.',\n toast_warning_invalid_schema: 'Properties Schema is invalid',\n toast_warning_rollback_version:\n \"These referenced elements of the revision don't exist anymore: {{entries}}\",\n tour_start: 'Start tour',\n type: 'Type',\n unknown: 'unknown',\n unverified: 'Unverified',\n updated: 'Updated',\n updated_by: 'Updated by',\n upload_date: 'Upload Date',\n upload_file: 'Upload File',\n url: 'URL',\n user: 'User',\n user_roles: 'User Roles',\n username: 'Username',\n vat: 'VAT-ID',\n vat_example:\n 'VAT-ID must be from Germany (DE followed by 9 digits, e.g. DE123456789) or Austria (ATU followed by 8 digits, e.g. ATU12345678)',\n verified: 'Verified',\n view: 'View',\n view_identity_providers:\n 'Role that allows to view the configured identity providers of the company',\n view_invitations:\n 'Role that allows to view all open invitations of the company',\n view_members: 'Role that allows to view all current members of the company',\n view_organization: 'Role that allows to view the company',\n view_roles: 'Role that allows to view all roles of the company',\n warning: 'Warning',\n week: 'Week',\n write_permissions: 'Write Permissions',\n year: 'Year',\n years: 'Years',\n zip_code: 'Postal Code',\n zip_code_error:\n 'The Postal Code must be valid and not be longer than 10 digits.',\n },\n de: {\n accepted: 'Angenommen',\n access_restricted: 'Zugriff beschränkt',\n access_unrestricted: 'Unbeschränkter Zugriff',\n account: 'Nutzerkonto',\n action: 'Aktion',\n actions: 'Aktionen',\n active: 'Aktiv',\n add_attachment: 'Anhang Hinzufügen',\n add_attribute: 'Attribut Hinzufügen',\n add_new: 'Neue Hinzufügen',\n add_new_member: 'Neues Mitglied hinzufügen',\n add_new_organization: 'Neue Organisation hinzufügen',\n add_to_clipboard: 'Zur Zwischenablage hinzufügen',\n address: 'Adresse',\n administration: 'Verwaltung',\n ai: {\n abort: 'Abbrechen',\n accept: 'Akzeptieren',\n accessed_at: 'Zugegriffen am',\n adam_ai_intro:\n 'Unterhalten Sie sich in Echtzeit mit Adam AI, Ihrem Expertenassistenten für Asset Intelligence. Erhalten Sie intelligente Einblicke und Lösungen, die auf Ihre Bedürfnisse zugeschnitten sind.',\n agent_unavailable: 'Agent nicht verfügbar',\n ai_placeholder: 'Wie kann ADAM Ihnen heute helfen?',\n and: 'und',\n ask_about_asset: 'ADAM AI über dieses Asset fragen',\n ask_adam: 'Frag Adam AI',\n asset_intelligence: 'Asset Intelligence',\n assistants: 'Assistenten',\n chat_deleted: 'Chat gelöscht',\n chats: 'Chats',\n clear_history: 'Verlauf löschen',\n complete_and_create_report: 'Abschließen und Bericht erstellen',\n context: 'Referenzierter Kontext',\n context_found: 'Kontext gefunden',\n context_none: 'Keine zugehörigen Assets oder Dateien gefunden.',\n context_search: 'Suche nach zugehörigen Assets und Dateien...',\n continue_chat: 'Chat fortsetzen',\n continue_previous_chat: 'Vorherigen Chat fortsetzen',\n cookies: 'Cookies',\n create_new_chat: 'Neuen Chat erstellen',\n create_new_event: 'Neue Meldung mit Hilfe von Adam erstellen',\n de: 'Deutsch',\n delete_chat: 'Chat löschen',\n delete_item: 'Eintrag löschen',\n delete_item_message:\n '{count, plural, one {Möchten Sie dieses Element wirklich löschen?<br><br><b>{{ items }}</b>} other {Möchten Sie diese # Elemente wirklich löschen?}}',\n delete_item_message_general:\n 'Möchten Sie dieses Element wirklich löschen?',\n delete_item_title:\n '{count, plural, one {Element löschen} other {Mehrere Elemente löschen}}',\n document: 'Dokument',\n en: 'English',\n failed_to_create_chat: 'Chat konnte nicht erstellt werden',\n failed_to_delete_chat: 'Chat konnte nicht gelöscht werden',\n failed_to_initialize_chat: 'Chat konnte nicht initialisiert werden',\n failed_to_load_assistants: 'Assistenten konnten nicht geladen werden',\n failed_to_load_chats: 'Chat-Verlauf konnte nicht geladen werden',\n failed_to_process_message:\n 'Die Nachricht konnte nicht verarbeitet werden. Bitte versuchen Sie es erneut.',\n failed_to_send_message: 'Nachricht konnte nicht gesendet werden',\n failed_to_update_model: 'Modell konnte nicht aktualisiert werden',\n file_type: {\n archive: 'Archiv',\n audio: 'Audio',\n image: 'Bild',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unbekannt',\n video: 'Video',\n },\n finish_reason: {\n 'content-filter':\n 'Ihre Anfrage wurde aufgrund von Inhaltsfiltern blockiert. Bitte formulieren Sie Ihre Frage um und versuchen Sie es erneut.',\n error:\n 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.',\n length:\n 'Die Anfrage ist zu lang, um verarbeitet zu werden. Bitte versuchen Sie es erneut oder starten Sie einen neuen Chat.',\n unknown:\n 'Es ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.',\n },\n 'gpt-4o': 'GPT-4o',\n 'gpt-4o-2024-08-06': 'GPT-4o',\n 'gpt-4o-2024-11-20': 'GPT-4o',\n 'gpt-4o-mini': 'GPT-4o Mini',\n 'gpt-4o-mini-2024-07-18': 'GPT-4o Mini',\n help_me: 'Frag Adam AI um Hilfe',\n last_message: 'Letzte Nachricht',\n model: 'GPT-Modell',\n model_updated: 'Modell aktualisiert',\n no_chats_found: 'Keine Chats gefunden',\n no_messages: 'Noch keine Nachrichten',\n none_of_those: 'Keines davon',\n of_document: 'des Dokuments',\n openai_disclaimer:\n 'In der Vorschauversion des Asset Web Assistenten werden Ihre Daten von OpenAI außerhalb der EU verarbeitet. Sind Sie damit einverstanden?',\n previous_chats: 'Vorherige Chats',\n prompt_suggestions: {\n 'asset-info': {\n prompt: 'Erstelle einen detaillierten Wartungsplan für mein Asset',\n title: 'Asset-Info',\n },\n intro: {\n prompt:\n 'Was ist Adam AI und wie kann es mir bei der Asset-Verwaltung helfen?',\n title: 'Einführung',\n },\n },\n prompts: {\n assetId: '. Die ID des Assets ist {{assetId}}',\n assetKey: '. Die externe ID des Assets ist {{assetKey}}',\n asset: 'Ich habe eine Frage zu dem Asset {{assetName}}',\n help: 'Bitte hilf mir bei der Lösung dieser Aufgabe.\\n\\nNutze nicht nur die Asset-Stammdaten, sondern suche auch in allen hinterlegten Dokumenten, SOPs, Entstörberichten, Schulungsnotizen und ähnlichen Fällen.\\n\\nGib mir:\\n1. die wahrscheinlichsten Ursachen,\\n2. eine konkrete Prüfreihenfolge für den Instandhalter,\\n3. relevante frühere Fälle,\\n4. Quellenhinweise,\\n5. die nächsten Rückfragen zur Eingrenzung.',\n incident:\n 'Bitte erstelle eine neue Meldung für das Asset {{assetName}}',\n report: 'Bitte erstelle einen Bericht für das Asset {{assetName}}',\n },\n reference_not_found: 'Referenz nicht gefunden',\n retry: 'Erneut versuchen',\n select_asset: 'Asset auswählen',\n send_message: 'Nachricht senden',\n send_voice_message: 'Transkribieren und senden',\n source: 'Quelle',\n starting_voice_input: 'Spracheingabe wird gestartet...',\n stop_recording: 'Aufnahme stoppen',\n cancel_recording: 'Aufnahme verwerfen',\n finish_recording: 'Stoppen und transkribieren',\n no_speech_detected:\n 'Es wurde keine Sprache erkannt. Bitte versuchen Sie es erneut.',\n transcribing_voice_input: 'Aufnahme wird transkribiert...',\n transcription_failed:\n 'Die Aufnahme konnte nicht transkribiert werden. Bitte versuchen Sie es erneut.',\n voice_input_failed:\n 'Auf das Mikrofon konnte nicht zugegriffen werden. Prüfen Sie die Browser-Berechtigungen und versuchen Sie es erneut.',\n suggested_prompts: 'Vorgeschlagene Prompts für den Einstieg in ADAM AI',\n threads: 'Chats',\n toast_error_delete_entry: '{{entry}} konnte nicht gelöscht werden.',\n toast_success_delete_entry: '{{entry}} gelöscht.',\n tools: {\n addTaskLogbookEntry: {\n completed: 'Neuer Logbuch-Eintrag hinzugefügt',\n failed: 'Logbuch-Eintrag hinzufügen fehlgeschlagen',\n pending: 'Logbuch-Eintrag wird hinzugefügt',\n processing: 'Logbuch-Eintrag wird hinzugefügt',\n },\n createAxaltaEvent: {\n completed: 'Ereignis wurde erstellt',\n failed: 'Ereignis konnte nicht erstellt werden',\n pending: 'Ereignis wird erstellt',\n processing: 'Ereignis wird erstellt',\n },\n createEvent: {\n completed: 'Ereignis wurde erstellt',\n failed: 'Ereignis konnte nicht erstellt werden',\n pending: 'Ereignis wird erstellt',\n processing: 'Ereignis wird erstellt',\n },\n createReport: {\n completed: 'Bericht wurde erstellt',\n failed: 'Bericht konnte nicht erstellt werden',\n pending: 'Bericht wird erstellt',\n processing: 'Bericht wird erstellt',\n },\n createJSONReport: {\n completed: 'Bericht wurde erstellt',\n failed: 'Bericht konnte nicht erstellt werden',\n pending: 'Bericht wird erstellt',\n processing: 'Bericht wird erstellt',\n },\n findTaskByName: {\n completed: 'Aufgabe wurde abgerufen',\n failed: 'Aufgabe konnte nicht abgerufen werden',\n pending: 'Aufgabe wird gesucht',\n processing: 'Aufgabe wird gesucht',\n },\n findTasksByAsset: {\n completed: 'Aufgaben wurden abgerufen',\n failed: 'Aufgaben konnten nicht abgerufen werden',\n pending: 'Aufgaben werden gesucht',\n processing: 'Aufgaben werden gesucht',\n },\n getAdditionalDataTemplate: {\n completed: 'Zusatzdaten wurden abgerufen',\n failed: 'Zusatzdaten konnten nicht abgerufen werden',\n pending: 'Zusatzdaten werden abgerufen',\n processing: 'Zusatzdaten werden abgerufen',\n },\n getAssetData: {\n completed: 'Assetdaten wurden abgerufen',\n failed: 'Assetdaten konnten nicht abgerufen werden',\n pending: 'Assetdaten werden abgerufen',\n processing: 'Assetdaten werden abgerufen',\n },\n getIncidentTemplate: {\n completed: 'Meldungsvorlage wurden abgerufen',\n failed: 'Meldungsvorlage konnten nicht abgerufen werden',\n pending: 'Meldungsvorlage werden abgerufen',\n processing: 'Meldungsvorlage werden abgerufen',\n },\n getReportTemplate: {\n completed: 'Berichtsvorlage wurde abgerufen',\n failed: 'Berichtsvorlage konnte nicht abgerufen werden',\n pending: 'Berichtsvorlage wird abgerufen',\n processing: 'Berichtsvorlage wird abgerufen',\n },\n getTaskLogbookEntries: {\n completed: 'Suche nach Logbuch-Einträgen abgeschlossen',\n failed: 'Suche nach Logbuch-Einträgen fehlgeschlagen',\n pending: 'Suche nach Logbuch-Einträgen',\n processing: 'Suche nach Logbuch-Einträgen',\n },\n searchAssetTypes: {\n completed: 'Suche in Asset Typen abgeschlossen',\n failed: 'Suche in Asset Typen fehlgeschlagen',\n pending: 'Suche in Asset Typen',\n processing: 'Suche in Asset Typen',\n },\n searchAssets: {\n completed: 'Suche in Assets abgeschlossen',\n failed: 'Suche in Assets fehlgeschlagen',\n pending: 'Suche in Assets',\n processing: 'Suche in Assets',\n },\n searchForAssetAxalta: {\n completed: 'Suche nach Asset abgeschlossen',\n failed: 'Suche nach Asset fehlgeschlagen',\n pending: 'Suche nach Asset',\n processing: 'Suche nach Asset',\n },\n searchForAssetWithId: {\n completed: 'Suche nach Asset mit ID abgeschlossen',\n failed: 'Suche nach Asset mit ID fehlgeschlagen',\n pending: 'Suche nach Asset mit ID',\n processing: 'Suche nach Asset mit ID',\n },\n searchForAssetsByIdNameType: {\n completed: 'Suche nach Assets abgeschlossen',\n failed: 'Suche nach Assets fehlgeschlagen',\n pending: 'Suche nach Assets',\n processing: 'Suche nach Assets',\n },\n searchForDocuments: {\n completed: 'Suche nach Dokumenten abgeschlossen',\n failed: 'Suche nach Dokumenten fehlgeschlagen',\n pending: 'Suche nach Dokumenten',\n processing: 'Suche nach Dokumenten',\n },\n searchForEvents: {\n completed: 'Suche nach Ereignissen abgeschlossen',\n failed: 'Suche nach Ereignissen fehlgeschlagen',\n pending: 'Suche nach Ereignissen',\n processing: 'Suche nach Ereignissen',\n },\n updateTaskLogbookEntry: {\n completed: 'Update Logbuch-Eintrag abgeschlossen',\n failed: 'Update Logbuch-Eintrag fehlgeschlagen',\n pending: 'Update Logbuch-Eintrag wird durchgeführt',\n processing: 'Update Logbuch-Eintrag wird durchgeführt',\n },\n },\n use_microphone: 'Mikrofon verwenden',\n use_web_search: 'Im Web suchen',\n view_previous_chats: 'Vorherige Chats anzeigen',\n web_source: 'Web-Quelle',\n },\n alert: 'Alarm',\n alerts: 'Alarme',\n allowed_to: 'Sie dürfen',\n and: 'und',\n applications: 'Anwendungen',\n apps: 'Applikationen',\n appstore: 'App Store',\n ascending: 'Aufsteigend',\n asset: 'Asset',\n asset_intelligence: 'Asset Intelligence',\n asset_manager: 'Asset Manager',\n asset_type: 'Asset Typ',\n assets: 'Assets',\n assettype: 'Asset Typ',\n assettypes: 'Asset Typen',\n attachment: 'Anhang',\n attachments: 'Anhänge',\n audit_logs: 'Audit Logs',\n author: 'Autor',\n authorization_type: 'Authorization Type',\n average: 'Durchschnitt',\n back: 'Zurück',\n back_to_organizations: 'Zurück zu Organisationen',\n bucket_time_range: 'Bucket Zeitspanne (Default ist 24h)',\n by: 'von',\n calendar: 'Kalender',\n cancel: 'Abbrechen',\n catalog: 'Katalog',\n 'category.delete': 'Dienstleistungskatalog entfernen ',\n 'cert.add.new': 'Zertifikat hinzufügen',\n 'cert.delete': 'Zertifikat entfernen',\n 'cert.edit': 'Zertifikat editieren',\n 'cert.name': 'Zertifikatsname',\n cert_add_new_description: 'Verwaltung Organisationsbezogener Zertifikate',\n certificate: 'Zertifikate',\n 'certificate.add.new': 'Zertifikat hinzufügen',\n certification: {\n date_issue: 'Ausstelldatum',\n expiration_date: 'Ablaufsdatum',\n institution: 'Zertifizierungseinrichtung',\n number: 'Zertifikatsnummer',\n },\n children: 'Kinder',\n choose: 'Auswählen',\n choose_file: 'Datei auswählen',\n city: 'Stadt',\n color: 'Farbe',\n column_settings: 'Spalten-Einstellungen',\n comment: 'Kommentar',\n company_manager: 'Unternehmen Manager',\n company_matching: 'Company-Matching',\n complete_subscription: 'Abonnement abschließen',\n confirm: 'Bestätigen',\n consent_management: {\n accept_all: 'Alle akzeptieren',\n accept_all_note:\n 'Durch Klicken auf \"Alle akzeptieren\" stimmen Sie der Verwendung von essentiellen und analytischen Cookies zu.',\n always_enabled: 'Immer aktiv',\n cookie_groups: {\n analytics: {\n description:\n 'Diese Cookies sammeln Daten über die Nutzung der Website, z.B. welche Seiten besucht werden, um uns zu helfen, die beliebtesten Seiten zu identifizieren und zu verstehen, wie Besucher auf der Website navigieren.<br />Daten zur Nutzung der Website werden mithilfe von dauerhaften Cookies von Erst- und Drittanbietern und anderen Tracking-Technologien erfasst, um die Beliebtheit von Produkten und Online-Aktivitäten zu ermitteln.',\n title: 'Analytische Cookies',\n },\n essential: {\n description:\n 'Diese Cookies sind für den Betrieb der Webseite unbedingt erforderlich. Sie werden in der Regel nur als Reaktion auf Ihre Handlungen gesetzt, wie z. B. die Einstellung Ihrer Datenschutzeinstellungen. Diese Cookies speichern keine persönlich identifizierbaren Informationen.',\n title: 'Erforderliche Cookies',\n },\n },\n cookie_intro:\n 'Diese Website verwendet Cookies und andere Tracking-Technologien, um wesentliche Funktionen der Website zu ermöglichen, die Benutzerfreundlichkeit zu verbessern sowie zu Analyse- und Personalisierungszwecken.',\n cookie_intro_extended:\n 'Diese Website verwendet Cookies und andere Tracking-Technologien, um wesentliche Funktionen der Website zu ermöglichen, die Benutzerfreundlichkeit zu verbessern sowie zu Analyse- und Personalisierungszwecken.<br />Wir verwenden Microsoft Clarity, um zu analysieren, wie unsere Website genutzt wird, und um unsere Produkte zu verbessern. Durch die Nutzung unserer Website erklären Sie sich damit einverstanden, dass wir und Microsoft diese Daten sammeln und nutzen.',\n cookie_learn_more: 'Um mehr zu erfahren, lesen Sie bitte unsere',\n cookie_preferences_center: 'Cookie Einstellungen',\n cookie_settings: 'Cookie Einstellungen',\n cookie_usage: 'Nutzung von Cookies',\n manage_preferences: 'Einstellungen verwalten',\n reject_all: 'Alle ablehnen',\n save_preferences: 'Einstellungen speichern',\n },\n content: 'Inhalt',\n 'content.file_type': {\n archive: 'Archiv',\n audio: 'Audio',\n image: 'Bild',\n pdf: 'PDF',\n text: 'Text',\n unknown: 'Unbekannt',\n video: 'Video',\n },\n 'content.show_preview': 'Vorschau anzeigen',\n 'content.size': 'Größe',\n 'content.toast_downloading_content': 'Datei wird heruntergeladen...',\n 'content.toast_error_download_content':\n 'Datei konnte nicht heruntergeladen werden.',\n 'content.toast_success_download_content':\n 'Datei erfolgreich heruntergeladen.',\n content_drop_zone_text: 'Drag & Drop Datei',\n content_manager: 'Content Manager',\n contents: 'Contents',\n copy_id: 'ID kopieren',\n count: 'Anzahl',\n created: 'Erstellt',\n critical: 'Kritisch',\n current_organization: 'Aktuelles Organisation',\n danger_zone: 'Gefahrenzone',\n dashboards: 'Dashboards',\n data: 'Daten',\n date: 'Datum',\n day: 'Tag',\n days: 'Tage',\n de: 'Deutsch',\n default: 'Standard',\n delete: 'Löschen',\n delete_attachment: 'Anhang Löschen',\n delete_member: 'Mitglied Entfernen',\n delete_revision: 'Version löschen',\n delete_title: 'Titel löschen',\n deleted: 'Gelöscht',\n delimiter: 'Trennzeichen, wie ; oder :',\n descending: 'Absteigend',\n description: 'Beschreibung',\n details: 'Details',\n domain: 'Domäne',\n 'domain.delete': 'Domänenname löschen',\n domain_name: 'Domänenname',\n domain_name_placeholder: 'www.domain.com',\n domain_new: 'neue Domäne hinzufügen',\n domains: 'Domänen',\n download: 'Herunterladen',\n download_attachment: 'Anhang Herunterladen',\n drag_drop_file: {\n error: {\n file_too_large:\n \"Die Datei '{{fileName}}' überschreitet die maximal zulässige Größe von {{maxFileSize}} und wurde ignoriert.\",\n file_type_not_allowed:\n \"Der Dateityp von '{{fileName}}' ist nicht erlaubt und wurde abgelehnt.\",\n },\n max_file_size: 'Maximale Dateigröße',\n prompt_1:\n 'Drag & Drop {limit, plural, one {Datei} other {Dateien}} hier oder ',\n prompt_2: 'hier klicken, um Dateien zu durchsuchen',\n warning: {\n max_file_count:\n 'Sie haben {{fileCount}} Dateien ausgewählt, aber maximal sind {{maxFileCount}} erlaubt. Nur die ersten {{maxFileCount}} Dateien wurden akzeptiert.',\n },\n },\n duration: 'Laufzeit',\n edit: 'Editieren',\n edit_attachment: 'Anhang Editieren',\n edit_event_level: 'Ereignis-Level editieren',\n edit_title: 'Titel anpassen',\n editor: 'Editor',\n email: 'Email',\n employees: 'Mitarbeiter',\n en: 'English',\n encoding: 'Verschlüsselung',\n endpoints: 'Benachrichtigungsendpunkte',\n english: 'Englisch',\n entries: 'Einträge',\n error: 'Fehler',\n error_loading: '{item} konnte nicht geladen werden',\n error_message_update:\n 'Benutzer Einstellungen konnten nicht aktualisiert werden',\n errors: 'Fehler',\n event: 'Ereignis',\n event_level: 'Ereignis-Level',\n events: 'Ereignisse',\n filename: 'Dateiname',\n flow: 'Flow',\n flow_studio: 'Flow Studio',\n flowdeployment: 'Flow Deployment',\n flowdeployments: 'Flow Deployments',\n flowfunction: 'Flow Funktion',\n flowfunctions: 'Flow Funktionen',\n flowmodel: 'Flow Modell',\n flowmodule: 'Flow Modul',\n flowmodules: 'Flow Module',\n flows: 'Flows',\n form_error_delimiter: 'Trennzeichen wird benötigt.',\n form_error_details: 'Auf der Details Seite sind fehlerhafte Einträge.',\n form_error_email: 'Email wird benötigt.',\n form_error_empty_method: 'Eine Methode muss ausgewählt werden.',\n form_error_empty_url: 'Das URL Feld muss ausgefüllt werden.',\n form_error_encoding: 'Eine Verschlüsselung muss angegeben werden.',\n form_error_expiry_date: 'Ein Ablaufdatum muss angegeben werden.',\n form_error_group: 'Zumindest eine Gruppe muss ausgewählt werden.',\n form_error_length:\n 'Der Name muss aus mindestens {{length}} Zeichen bestehen.',\n form_error_max_length: 'Darf maximal {{length}} Zeichen lang sein',\n form_error_min_length: 'Muss mindestens {{length}} Zeichen lang sein',\n form_error_name: 'Namens-Feld wird benötigt.',\n form_error_name_pattern:\n 'Nur Buchstaben, Zahlen, Leerzeichen, Bindestriche (-) und Unterstriche (_) sind erlaubt',\n form_error_read: 'Mindestens ein Lese-Recht muss ausgewählt werden.',\n form_error_read_write:\n 'Mindestens ein Lese/Schreibe-Recht muss ausgewählt werden.',\n form_error_required: 'Pflichtfeld',\n form_error_role_pattern:\n 'Nur Kleinbuchstaben, Bindestriche (-) und Unterstriche (_) sind erlaubt',\n form_error_schema_req: 'Ein Schema wird benötigt.',\n form_error_select_file: 'Eine Datei muss ausgewählt werden.',\n form_error_select_type: 'Ein Asset Typ muss ausgewählt werden.',\n form_error_source: 'Source is needed.',\n form_error_unique: 'Der Wert muss eindeutig sein: ',\n form_error_view: 'View is needed.',\n general: 'Allgemein',\n german: 'Deutsch',\n global: 'Global',\n group: 'Gruppe',\n group_by: 'Gruppieren nach',\n history: 'Verlauf',\n hour_format: '{{time}}-Stunden-Zeitformat',\n id: 'ID',\n inactive: 'Inaktiv',\n info: 'Info',\n invite_new_employee: 'Neuen Mitarbeiter einladen',\n invite_new_employee_description:\n 'Einladung neuer Mitarbeiter und deren Zuweisung zu bestimmten Rollen',\n invite_new_member: 'Neues Mitglied einladen',\n invite_new_member_description:\n 'Einladung neuer Mitglied und deren Zuweisung zu bestimmten Rollen',\n 'jsf_widgets.content.error.resolving_content_failed':\n 'Inhalt konnte nicht aufgelöst werden',\n 'jsf_widgets.content_reference.error.asset_id_missing':\n 'Asset ID ist nicht gesetzt',\n 'jsf_widgets.content_reference.error.loading_attachments_failed':\n 'Asset Anhänge konnten nicht geladen werden',\n 'jsf_widgets.cron.error.invalid_expression': 'Kein gültiger cron Ausdruck',\n 'jsf_widgets.duration.error.invalid_duration': 'Keine gültige Dauer',\n 'jsf_widgets.permission.error.load_permissions_all_users_failed':\n 'Rechte aller Benutzer konnten nicht geladen werden',\n 'jsf_widgets.permission.error.load_permissions_failed':\n 'Rechte konnten nicht geladen werden',\n 'jsf_widgets.resource_reference.error.searching_failed':\n 'Suche konnte nicht abgeschlossen werden',\n keys: 'Schlüssel',\n label: 'Label',\n labels: 'Labels',\n labels_edit: 'Labels bearbeiten',\n labels_edit_default: 'Globale Standard-Labels bearbeiten',\n language: 'Sprache',\n last_updated: 'Zuletzt aktualisiert',\n leave: 'Verlassen',\n legal_notice: 'Impressum',\n list: 'Liste',\n loading: 'lade...',\n logbook_entry: 'Logbuch Eintrag',\n logo: 'Logo',\n manage_groups: 'Gruppen verwalten',\n manage_identity_providers:\n 'Rolle, die zur Verwaltung der konfigurierten Identitätsanbieter ermächtigt',\n manage_invitations:\n 'Rolle, die zur Verwaltung der offenen Mitarbeitereinladungen ermächtigt',\n manage_members: 'Rolle, die zur Verwaltung der Mitgliedern ermächtigt',\n manage_organization:\n 'Rolle, die zur Verwaltung des Unternehmens und dessen Eigenschaften ermächtigt',\n manage_roles: 'Rolle, die zur Verwaltung der Unternehmensrollen ermächtigt',\n manager: 'App Manager',\n maximum: 'Maximum',\n member: 'Mitglied',\n message: 'Nachricht',\n method: 'Funktion',\n modules: 'Module',\n month: 'Monat',\n months: 'Monate',\n my_tasks: 'Meine Aufgaben',\n name: 'Name',\n new_feminine: 'Neue',\n new_masculine: 'Neuer',\n new_neutral: 'Neues',\n new_tag: 'Neues Label',\n next: 'Nächste',\n next_step: 'Weiter',\n no_description: 'Keine Beschreibung',\n no_labels: 'Keine Labels',\n no_preview: 'Keine Vorschau verfügbar',\n no_result: 'Keine Ergebnisse!',\n not_assigned: 'Nicht zugewiesen',\n notification_close_tooltip: 'Schließen',\n notification_info_empty_list: 'Keine Benachrichtigungen vorhanden',\n notification_open_manager_tooltip: 'Notification Manager öffnen',\n notification_open_tooltip: 'Öffnen',\n notification_read_all_tooltip: 'Alles als gelesen markieren',\n notification_read_tooltip: 'Als gelesen markieren',\n notification_rules: 'Benachrichtigungsregel',\n notification_toast_info: 'Neue Benachrichtigung erhalten!',\n notification_unread_tooltip: 'Als ungelesen markieren',\n notificationendpoint: 'Benachrichtigungsendpunkt',\n notificationendpoints: 'Benachrichtigungsendpunkte',\n notificationrule: 'Benachrichtigungsregel',\n notificationrules: 'Benachrichtigungsregeln',\n notifications: 'Benachrichtigungen',\n offer_requests: 'Anfragen',\n offers: 'Angebote',\n ok: 'OK',\n open: 'Öffnen',\n opened: 'Geöffnet',\n organization: 'Organisation',\n 'organization.delete': 'Organisation löschen',\n 'organization.delete_as_superuser': 'Organisation löschen als Superuser',\n 'organization.request_delete': 'Löschen der Organisation beantragen',\n organization_delete_message:\n 'Soll die Organisation <b>{organization}</b> mitsamt aller zugehöriger Daten wirklich gelöscht werden?',\n organization_overview: 'Organisations-Profil',\n organization_request_delete_description:\n 'Hiermit beantragen Sie das Löschen ihrer Organisation. Bitte beachten Sie, dass das Löschen einer Organisation unwiderruflich ist und alle zur Organisation gehörigen Daten ebenfalls gelöscht werden.',\n organization_tenders: 'Ausschreibungen der Organisations',\n organizations: 'Organisationen',\n overview: 'Übersicht',\n owner: {\n edit_permission: 'Mitglieder von {{org}} dürfen ansehen und bearbeiten',\n managed_by: 'Verwaltet von',\n view_permission: 'Mitglieder von {{org}} dürfen ansehen',\n },\n page: 'Seite',\n parent: 'Elternteil',\n password: 'Passwort',\n pending: 'Ausstehend',\n period: 'Zeitraum',\n permissions: 'Rechte',\n phone_number: 'Telefonnummer',\n preview: 'Vorschau',\n previous: 'Vorherige',\n privacy_policy: 'Datenschutzerklärung',\n profile: 'Profil',\n properties: 'Eigenschaften',\n property: 'Eigenschaft',\n quarter: 'Quartal',\n read_permissions: 'Lese Rechte',\n read_permissions_edit_default: 'Standard Lese-/Schreibe-Rechte bearbeiten',\n read_write_permissions: 'Lese/Schreibe-Rechte',\n reference: 'Referenz',\n references: 'Referenzen',\n reset: 'Zurücksetzen',\n response_type: 'Response Type',\n revision: 'Version',\n 'role.add.new': 'Rolle hinzufügen',\n 'role.delete': 'Rolle entfernen',\n 'role.edit': 'Rolle editieren',\n 'role.edit.info':\n 'Jede Rolle muss einen eindeutigen Namen haben und kann nach der Erstellung der Rolle nicht mehr geändert werden. Es sind nur Kleinbuchstaben, Bindestriche (-) und Unterstriche (_) im Namen erlaubt.',\n 'role.name': 'Name der Rolle',\n role_add_new_description:\n 'Einrichtung neuer Rollen in Ihrer Organisation und deren Zuweisung nach Bedarf zu Ressourcen bzw. Mitgliedern',\n role_admin: 'Adminrechte',\n role_info:\n 'Rollen, die dem Benutzer zugewiesen werden sollen. Adminrechte erhält alle Rollen. Leserechte erhält nur die View-Rechte',\n role_view: 'Leserechte',\n roles: 'Rollen',\n rollback_version: 'Auf die ausgewählte Version zurücksetzen',\n save: 'Speichern',\n schema: 'Schema',\n search: 'Suche...',\n 'search.no_results': 'Keine Ergebnisse gefunden',\n search_asset_types: 'Suche Asset Types...',\n search_assets: 'Suche Assets...',\n search_for_page: 'Seite suchen',\n search_roles: 'Suche Rollen...',\n search_tsm: 'Suche Zeitreihen...',\n secret: 'Secret',\n secrets: 'Secrets',\n select: 'Auswählen',\n select_file: 'Datei Auswählen',\n selected_file: 'Ausgewählte Datei',\n 'service.add.new': 'Dienstleistung hinzufügen',\n 'service.delete': 'Dienstleistung entfernen',\n services: 'Dienstleistungen',\n settings: 'Einstellungen',\n setup_certs_description: 'Einrichtung zugehöriger Zertifikate',\n show: 'Zeige',\n show_differences: 'Zeige Unterschiede',\n show_preview: 'Vorschau anzeigen',\n sign_in: 'Einloggen',\n sign_out: 'Ausloggen',\n signed_in_as: 'Angemeldet als',\n sort: 'Sortierung',\n statistic_queries: 'Statistik Anfragen',\n status: 'Status',\n supertype: 'Obertyp',\n system: 'System',\n tags: 'Label',\n task: 'Aufgabe',\n tasks: 'Aufgaben',\n time: 'Zeit',\n time_series: 'Zeitreihen',\n time_series_manager: 'Time Series Manager',\n timeseries: 'Zeitreihen',\n title: 'Titel',\n toast_active_organization_error:\n 'Aktive Organisation konnte nicht geändert werden.',\n toast_active_organization_loading: 'Aktive Organisation wird geändert...',\n toast_active_organization_success:\n 'Aktive Organisation erfolgreich geändert.',\n toast_error: 'Fehler!',\n toast_error_add_employee:\n 'Die Einladung des neuen Mitarbeiters konnte nicht versendet werden',\n toast_error_add_member:\n 'Die Einladung des neuen Mitglieds konnte nicht versendet werden',\n toast_error_add_role: 'Die Rolle konnte nicht hinzugefügt werden',\n toast_error_authenticate: 'Authentifizierung fehlgeschlagen.',\n toast_error_create_tsm: 'Zeitreihe konnte nicht erstellt werden.',\n toast_error_index_content: 'Fehler beim Abrufen des Indizierungsstatus.',\n toast_error_invitation_send: 'Einladung konnte nicht gesendet werden',\n toast_error_load_cert: 'Zertifikate konnten nicht geladen werden',\n toast_error_load_event_causes:\n 'Eventursachen-Override konnte nicht geladen werden.',\n toast_error_load_item: '{{item}} konnte nicht geladen werden.',\n toast_error_load_list: 'Liste konnte nicht geladen werden.',\n toast_error_load_org_roles:\n 'Rollen des aktiven Unternehmens konnten nicht geladen werden',\n toast_error_load_permissions: 'Rechte konnten nicht geladen werden',\n toast_error_load_permissions_all_users:\n 'Rechte aller Benutzer konnten nicht geladen werden',\n toast_error_load_preview: 'Vorschau konnte nicht geladen werden.',\n toast_error_load_role: 'Rollen konnten nicht geladen werden',\n toast_error_load_service: 'Dienstleistungen konnten nicht geladen werden',\n toast_error_load_tender: 'Ausschreibung konnte nicht geladen werden.',\n toast_error_organization_delete:\n 'Organisation konnte nicht gelöscht werden.',\n toast_error_organization_name_exists:\n 'Eine Organisation mit dem Namen {{name}} existiert bereits',\n toast_error_rollback_version:\n 'Fehler beim Zurücksetzen auf die ausgewählte Version',\n toast_error_save_item: '{{item}} konnte nicht gespeichert werden',\n toast_error_update_attachment:\n '{count, plural, one {Anhang konnte nicht aktualisiert werden} other {# Anhänge konnten nicht aktualisiert werden}}',\n toast_error_update_event_causes:\n 'Eventursachen-Override konnte nicht aktualisiert werden.',\n toast_error_update_service:\n 'Dienstleistung konnte nicht aktualisiert werden',\n toast_error_upload_file:\n '{count, plural, one {Datei konnte nicht hochgeladen werden {{file}}} other {# Dateien konnten nicht hochgeladen werden}}',\n toast_error_upload_file_max:\n 'Es dürfen nicht mehr als {{max}} Dateien Zeitgleich hochgeladen werden.',\n toast_form_error_required: '{{param}} darf nicht leer sein',\n toast_form_error_required_selection:\n 'Es muss mindestens ein {{param}} ausgewählt werden',\n toast_form_error_required_selection_feminine:\n 'Es muss mindestens eine {{param}} ausgewählt werden',\n toast_info: 'Info!',\n toast_success: 'Erfolgreich!',\n toast_success_add_employee:\n 'Die Einladung des neuen Mitarbeiters wurde erfolgreich versendet',\n toast_success_add_member:\n 'Die Einladung des neuen Mitglieds wurde erfolgreich versendet',\n toast_success_add_role: 'Die Rolle wurde erfolgreich hinzugefügt',\n toast_success_invitation_send: 'Einladung gesendet',\n toast_success_update_attachment:\n '{count, plural, one {Anhang aktualisiert} other {# Anhänge aktualisiert}}',\n toast_success_update_service: 'Dienstleistung wurde aktualisiert',\n toast_success_upload_file:\n '{count, plural, one {Datei wurde erfolgreich hochgeladen: {{file}}} other {# Dateien wurden erfolgreich hochgeladen}}',\n toast_warning: 'Warnung!',\n toast_warning_invalid_form_data:\n 'Ungültige Daten im Formular. Bitte überprüfen Sie das Formular auf Fehler.',\n toast_warning_invalid_schema: 'Das angegebene Schema ist nicht gültig.',\n toast_warning_rollback_version:\n 'Folgende referenzierte Elemente existieren in der Revision nicht mehr: {{entries}}',\n tour_start: 'Starte Tour',\n type: 'Typ',\n unknown: 'Unbekannt',\n unverified: 'Unverifiziert',\n updated: 'Bearbeitet',\n updated_by: 'Aktualisiert von',\n upload_date: 'Hochgeladen am',\n upload_file: 'Datei hochladen',\n url: 'URL',\n user: 'Benutzer',\n user_roles: 'Benutzerrollen',\n username: 'Benutzername',\n vat: 'USt-IdNr./UID',\n vat_example:\n 'Es muss eine gültige USt-IdNr. (DE gefolgt von 9 Ziffern, z.B. DE123456789) oder UID (ATU gefolgt von 8 Ziffern, z.B. ATU12345678) angegeben werden',\n verified: 'Verifiziert',\n view: 'Ansehen',\n view_identity_providers:\n 'Rolle, die den Lesezugriff auf die konfigurierten Identitätsanbieter ermöglicht',\n view_invitations:\n 'Rolle, die den Lesezugriff auf offene Mitarbeitereinladungen ermöglicht',\n view_members:\n 'Rolle, die den Lesezugriff auf alle bestehenden Mitarbeiter ermöglicht',\n view_organization:\n 'Rolle, die den Lesezugriff auf das Unternehmen ermöglicht',\n view_roles: 'Rolle, die den Lesezugriff auf Unternehmensrollen ermöglicht',\n warning: 'Warnung',\n week: 'Woche',\n write_permissions: 'Schreibe-Rechte',\n year: 'Jahr',\n years: 'Jahre',\n zip_code: 'Postleitzahl',\n zip_code_error:\n 'Die Postleitzahl muss gültig sein und darf maximal 10 Zeichen enthalten.',\n },\n};\n\n@Injectable({ providedIn: 'root' })\nexport class AiTranslocoLoader implements TranslocoLoader {\n getTranslation(lang: string): Observable<any> {\n return of(translations[lang] || {});\n }\n}\n\n@NgModule({\n imports: [TranslocoModule],\n exports: [TranslocoModule],\n providers: [\n { provide: TRANSLOCO_TRANSPILER, useClass: DefaultTranspiler },\n { provide: TRANSLOCO_LOADER, useClass: AiTranslocoLoader },\n provideTransloco({\n config: {\n availableLangs: ['de', 'en'],\n defaultLang: 'de',\n reRenderOnLangChange: true,\n prodMode: !isDevMode(),\n },\n loader: AiTranslocoLoader,\n }),\n ],\n})\nexport class AiTranslocoModule {}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { ChatService } from '../chat.service';\nimport { Role } from '@hahnpro/hpc-api';\nimport { IconComponent } from '../../core/icons';\nimport { MatButton } from '@angular/material/button';\n\n@Component({\n imports: [MatIconModule, IconComponent, MatButton],\n selector: 'ai-message-suggestions',\n changeDetection: ChangeDetectionStrategy.Eager,\n templateUrl: './message-suggestions.component.html',\n})\nexport class MessageSuggestionsComponent {\n private readonly chatService = inject(ChatService);\n\n protected get suggestions(): string[] {\n const lastMessage =\n this.chatService.messages?.[this.chatService.messages?.length - 1];\n if (lastMessage?.role !== Role.ASSISTANT) {\n return [];\n }\n return (lastMessage.parsedContent?.suggestions || []).slice(0, 3);\n }\n\n protected async sendSuggestion(suggestion: string): Promise<void> {\n if (this.chatService.isProcessing || this.chatService.isLoading) {\n return;\n }\n\n await this.chatService.sendMessage(suggestion, {});\n }\n}\n","@if (suggestions.length > 0) {\r\n <div class=\"mx-auto mb-2 flex w-full justify-end px-2 lg:max-w-screen-md lg:px-0\">\r\n <div class=\"flex max-w-full flex-wrap justify-end gap-1.5 sm:gap-2\">\r\n @for (suggestion of suggestions; track suggestion) {\r\n <button\r\n mat-stroked-button\r\n type=\"button\"\r\n class=\"rounded-full bg-white/50 dark:bg-zinc-800/50 hover:bg-blue-600/70 dark:hover:bg-zinc-800/70\"\r\n (click)=\"sendSuggestion(suggestion)\"\r\n >\r\n <ai-icon name=\"sparkle\" class=\"icon-xs\" />\r\n <span class=\"truncate\">{{ suggestion }}</span>\r\n </button>\r\n }\r\n </div>\r\n </div>\r\n}\r\n","import { Component, inject, OnInit, ViewEncapsulation } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport {\n MAT_DIALOG_DATA,\n MatDialogModule,\n MatDialogRef,\n} from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { LoggerModule, NGXLogger } from 'ngx-logger';\n\nimport type { Message } from '@hahnpro/hpc-api';\nimport { filter } from 'rxjs';\nimport { AUTH_ADAPTER } from '../../auth/auth.adapter';\nimport { IconComponent } from '../../core/icons';\nimport { ChatService, WebSocketMessageType } from '../chat.service';\nimport { ContextService } from '../context.service';\nimport { MessageInputComponent } from '../message-input/message-input.component';\nimport { ThreadComponent } from '../thread/thread.component';\nimport { AiTranslocoModule } from '../transloco.module';\nimport { getAssistantIdForType } from '../utils';\nimport { WebsocketService } from '../websocket.service';\nimport { MessageSuggestionsComponent } from '../message-suggestions/message-suggestions.component';\n\ninterface AssetData {\n id?: string;\n name?: string;\n externalKey?: string;\n}\n\ninterface EventData {\n id?: string;\n name?: string;\n description?: string;\n cause?: string;\n level?: string;\n}\n\ninterface TaskData {\n id?: string;\n name?: string;\n reason?: string;\n description?: string;\n priority?: string;\n}\n\nexport type ChatAssistantType = 'asset' | 'help' | 'report' | 'incident';\n\nexport interface ChatDialogData {\n asset?: AssetData;\n event?: EventData;\n assistant?: ChatAssistantType;\n initialMessage?: string;\n threadId?: string;\n context?: Record<string, unknown>;\n messageHandler?: (message: {\n type: WebSocketMessageType;\n data: Message;\n }) => void;\n messageFilter?: WebSocketMessageType[];\n}\n\n@Component({\n imports: [\n AiTranslocoModule,\n FormsModule,\n IconComponent,\n LoggerModule,\n MatButtonModule,\n MatDialogModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MessageInputComponent,\n ReactiveFormsModule,\n ThreadComponent,\n MessageSuggestionsComponent,\n ],\n providers: [ChatService, ContextService, WebsocketService],\n templateUrl: './chat-dialog.component.html',\n styleUrl: '../../shared/styles.css',\n encapsulation: ViewEncapsulation.None,\n})\nexport class AiChatDialogComponent implements OnInit {\n data = inject<ChatDialogData>(MAT_DIALOG_DATA);\n private readonly matDialogRef =\n inject<MatDialogRef<AiChatDialogComponent>>(MatDialogRef);\n\n private auth = inject(AUTH_ADAPTER);\n\n readonly chatService = inject(ChatService);\n\n private readonly asset: AssetData;\n private readonly event: EventData;\n private readonly task: TaskData;\n private readonly logger = inject(NGXLogger);\n private readonly type: ChatAssistantType;\n private readonly translocoService = inject(TranslocoService);\n\n constructor() {\n this.asset = this.data.asset || {};\n this.event = this.data.event || {};\n this.type = this.data.assistant || 'asset';\n }\n\n async ngOnInit(): Promise<void> {\n if (!(await this.auth.isAuthenticated())) {\n if (this.auth.loginPopup) {\n await this.auth.loginPopup();\n } else {\n await this.auth.loginRedirect({ redirectUri: window.location.href });\n }\n }\n\n this.chatService\n .init()\n .then(async () => {\n if (this.data.threadId) {\n await this.chatService.openThread(this.data.threadId);\n } else {\n let initialMessage = this.data.initialMessage;\n if (!initialMessage) {\n initialMessage = this.translocoService.translate(\n 'ai.prompts.' + this.type,\n { assetName: this.asset?.name, taskId: this.task?.id },\n );\n if (this.asset?.externalKey) {\n initialMessage += this.translocoService.translate(\n 'ai.prompts.assetKey',\n { assetKey: this.asset.externalKey },\n );\n }\n if (this.asset?.id) {\n initialMessage += this.translocoService.translate(\n 'ai.prompts.assetId',\n { assetId: this.asset.id },\n );\n }\n }\n\n const assistantId = getAssistantIdForType(this.type);\n\n await this.chatService.createThreadForModal(\n assistantId,\n initialMessage,\n this.data.context,\n );\n }\n\n if (this.data.messageHandler) {\n this.chatService.threadEventSubject\n .pipe(\n filter(\n ({ type }) =>\n !this.data.messageFilter ||\n this.data.messageFilter.length === 0 ||\n this.data.messageFilter.includes(type),\n ),\n )\n .subscribe((event) => {\n this.data.messageHandler(event);\n });\n }\n })\n .catch((err) => {\n this.logger.error(err);\n this.close();\n });\n }\n\n close(message?: string) {\n this.matDialogRef.close(message);\n }\n}\n","<div class=\"flex h-full w-full flex-col\" *transloco=\"let t\">\r\n <div class=\"flex justify-end pb-2\">\r\n <button\r\n mat-icon-button\r\n (click)=\"close()\"\r\n class=\"small bg-zinc-50 text-zinc-500 hover:bg-zinc-100 hover:text-zinc-900 dark:bg-zinc-900 dark:text-zinc-400 dark:hover:bg-zinc-800 dark:hover:text-zinc-50\"\r\n >\r\n <ai-icon name=\"dismiss\" size=\"20\" class=\"icon-sm\"></ai-icon>\r\n </button>\r\n </div>\r\n <div class=\"flex h-full w-full flex-col items-center overflow-y-auto\">\r\n <ai-thread class=\"flex h-full w-full\"></ai-thread>\r\n </div>\r\n <ai-message-suggestions class=\"w-full px-6\" />\r\n <ai-message-input class=\"w-full\"></ai-message-input>\r\n</div>\r\n","import {\n Component, ElementRef,\n inject,\n Input,\n OnInit,\n ViewEncapsulation\n} from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { LoggerModule, NGXLogger } from 'ngx-logger';\n\nimport { ContextService } from '../context.service';\nimport { AiTranslocoModule } from '../transloco.module';\nimport { ChatService, WebSocketMessageType } from '../chat.service';\nimport { MessageInputComponent } from '../message-input/message-input.component';\nimport { ThreadComponent } from '../thread/thread.component';\nimport { WebsocketService } from '../websocket.service';\nimport { ChatAssistantType } from '../chat-dialog/chat-dialog.component';\nimport { filter } from 'rxjs';\nimport { AUTH_ADAPTER } from '../../auth/auth.adapter';\nimport { getAssistantIdForType } from '../utils';\nimport { MessageSuggestionsComponent } from '../message-suggestions/message-suggestions.component';\n\nexport interface AssetData {\n id?: string;\n name?: string;\n externalKey?: string;\n}\n\n@Component({\n selector: 'ai-chat',\n imports: [\n AiTranslocoModule,\n FormsModule,\n LoggerModule,\n MatButtonModule,\n MatFormFieldModule,\n MatInputModule,\n MatProgressSpinnerModule,\n MessageInputComponent,\n ReactiveFormsModule,\n ThreadComponent,\n MessageSuggestionsComponent,\n ],\n providers: [ChatService, ContextService, WebsocketService],\n templateUrl: './chat.component.html',\n styleUrls: ['../../shared/styles.css'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class AiChatComponent implements OnInit {\n readonly chatService = inject(ChatService);\n readonly translocoService = inject(TranslocoService);\n readonly logger = inject(NGXLogger);\n readonly elementRef = inject(ElementRef);\n\n private auth = inject(AUTH_ADAPTER);\n\n @Input() asset: AssetData = {};\n @Input() assistantType: ChatAssistantType = 'asset';\n @Input() initialMessage?: string;\n @Input() threadId?: string;\n @Input() context?: Record<string, unknown>;\n\n async ngOnInit(): Promise<void> {\n if (!(await this.auth.isAuthenticated())) {\n if (this.auth.loginPopup) {\n await this.auth.loginPopup();\n } else {\n await this.auth.loginRedirect({ redirectUri: window.location.href });\n }\n }\n\n this.chatService\n .init()\n .then(async () => {\n if (this.threadId) {\n await this.chatService.openThread(this.threadId, false);\n } else {\n let initialMessage = this.initialMessage;\n if (!initialMessage) {\n initialMessage = this.translocoService.translate(\n 'ai.prompts.' + this.assistantType,\n {\n assetId: this.asset?.id,\n assetName: this.asset?.name,\n },\n );\n }\n if (this.asset?.externalKey) {\n initialMessage += this.translocoService.translate(\n 'ai.prompts.assetKey',\n { assetKey: this.asset.externalKey },\n );\n }\n if (this.asset?.id) {\n initialMessage += this.translocoService.translate(\n 'ai.prompts.assetId',\n { assetId: this.asset.id },\n );\n }\n const assistantId = getAssistantIdForType(this.assistantType);\n await this.chatService.createThreadForModal(\n assistantId,\n initialMessage,\n this.context,\n );\n }\n\n this.chatService.threadEventSubject\n .pipe(\n filter(\n (value) => value.type !== WebSocketMessageType.AI_PARTIAL_MESSAGE,\n ),\n )\n .subscribe((event) => {\n const customEvent = new CustomEvent(event.type, {\n detail: event.data,\n bubbles: true,\n composed: true,\n });\n\n this.elementRef.nativeElement.dispatchEvent(customEvent);\n });\n })\n .catch((err) => {\n this.logger.error(err);\n });\n }\n}\n","<div class=\"flex h-full w-full flex-col\" *transloco=\"let t\">\r\n <div class=\"flex h-full w-full flex-col items-center overflow-y-auto\">\r\n <ai-thread class=\"flex h-full w-full\"></ai-thread>\r\n </div>\r\n <ai-message-suggestions class=\"w-full px-6\" />\r\n <ai-message-input class=\"w-full\"></ai-message-input>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { ChatService } from './chat.service';\r\nimport { WebsocketService } from './websocket.service';\r\nimport { ContextService } from './context.service';\r\nimport { VoiceRecognitionService } from './voice-recognition.service';\r\nimport { ApiService } from '../core/api.service';\r\nimport { AiTranslocoModule } from './transloco.module';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n LoggerModule.forRoot({\r\n level: NgxLoggerLevel.DEBUG,\r\n disableConsoleLogging: false,\r\n }),\r\n ],\r\n providers: [\r\n ApiService,\r\n ChatService,\r\n ContextService,\r\n VoiceRecognitionService,\r\n WebsocketService,\r\n ],\r\n exports: [AiTranslocoModule],\r\n})\r\nexport class AiModule {}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Provider } from '@angular/core';\r\nimport { MARKED_OPTIONS, provideMarkdown } from 'ngx-markdown';\r\n\r\n/**\r\n * Provides Markdown configuration for AI SDK\r\n * This allows consuming applications to not have to set up Markdown themselves\r\n */\r\nexport function provideAiMarkdown(): Provider {\r\n return provideMarkdown({\r\n loader: HttpClient,\r\n markedOptions: {\r\n provide: MARKED_OPTIONS,\r\n useValue: {\r\n gfm: true,\r\n breaks: true,\r\n pedantic: false,\r\n },\r\n },\r\n });\r\n}\r\n","import { EnvironmentProviders, Provider } from '@angular/core';\r\nimport { provideAiMarkdown } from '../core/markdown.provider';\r\nimport { AiTranslocoModule } from './transloco.module';\r\nimport { importProvidersFrom } from '@angular/core';\r\nimport {\r\n provideHttpClient,\r\n withInterceptorsFromDi,\r\n} from '@angular/common/http';\r\nimport { LoggerModule, NgxLoggerLevel } from 'ngx-logger';\r\n\r\n/**\r\n * Provides all necessary providers for AI SDK\r\n * This allows consuming applications to configure the AI SDK with a single function\r\n */\r\nexport function provideAiSdk(): (Provider | EnvironmentProviders)[] {\r\n return [\r\n importProvidersFrom(\r\n AiTranslocoModule,\r\n LoggerModule.forRoot({\r\n level: NgxLoggerLevel.DEBUG,\r\n disableConsoleLogging: false,\r\n }),\r\n ),\r\n provideAiMarkdown(),\r\n provideHttpClient(withInterceptorsFromDi()),\r\n ];\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i3","i6","i7","i1","i2","i4","i5","i6.BytesPipe","i7.DateAgoPipe","HttpClient"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAYa,YAAY,GAAG,IAAI,cAAc,CAAc,cAAc;;ACZ1E;MAea,aAAa,CAAA;AACf,IAAA,IAAI;IACJ,IAAI,GAAoB,EAAE;AAC1B,IAAA,KAAK;uGAHH,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,2HCf1B,4vyHAw0CA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA,CAAA;;2FDzzCa,aAAa,EAAA,UAAA,EAAA,CAAA;kBAZzB,SAAS;+BACE,SAAS,EAAA,QAAA,EAAA,4vyHAAA,EAAA,MAAA,EAAA,CAAA,kDAAA,CAAA,EAAA;;sBAYlB;;sBACA;;sBACA;;;MEEU,UAAU,CAAA;AACb,IAAA,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IAC3B,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,0BAA0B;IAC1D,OAAO,GAAG,MAAM;IAChB,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAE9C,IAAA,IAAI,OAAO,GAAA;QACT,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA,IAAA,IAAI,MAAM,GAAA;QACR,OAAO,CAAA,EAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA,CAAE;IACzC;AAEA,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI;IAC7B;AAEA,IAAA,UAAU,CACR,OAAe,EACf,QAAiB,EACjB,WAA2B,EAC3B,OAAiC,EAAA;QAEjC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,WAAA,CAAa,EAAE;YACvD,OAAO;YACP,QAAQ;YACR,WAAW;YACX,OAAO;AACR,SAAA,CAAC;IACJ;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE;IACzC;IAEA,YAAY,CACV,WAA0B,EAC1B,WAAqB,EAAA;QAErB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,WAAA,CAAa,EAAE;YACvD,WAAW;YACX,WAAW;AACZ,SAAA,CAAC;IACJ;AAEA,IAAA,SAAS,CAAC,QAAgB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,YAAA,EAAe,QAAQ,CAAA,CAAE,CAAC;IACrE;AAEA,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,YAAA,EAAe,QAAQ,CAAA,SAAA,CAAW,CACjD;IACH;AAEA,IAAA,YAAY,CAAC,QAAgB,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,YAAA,EAAe,QAAQ,CAAA,CAAE,CAAC;IACxE;IAEA,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,cAAA,CAAgB,CAAC;IAC5D;IAEA,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAc,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,gBAAA,CAAkB,CAAC;IAC3E;IAEA,eAAe,CAAC,IAAc,EAAE,MAAe,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CACzB,CAAA,EAAG,IAAI,CAAC,MAAM,yBAAyB,EACvC,IAAI,EACJ,MAAM,CACP;IACH;IAEA,SAAS,CAAC,SAA2B,EAAE,EAAA;QACrC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC;IACjE;IAEA,aAAa,CAAC,SAA2B,EAAE,EAAA;QACzC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,aAAa,EAAE,EAAE,MAAM,EAAE,CAAC;IACrE;IAEA,WAAW,CAAC,SAA2B,EAAE,EAAA;QACvC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC;IACnE;IAEA,SAAS,CAAC,SAA2B,EAAE,EAAA;QACrC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,SAAS,EAAE,EAAE,MAAM,EAAE,CAAC;IACjE;IAEA,QAAQ,CAAC,SAA2B,EAAE,EAAA;QACpC,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,CAAC;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,QAAQ,EAAE,EAAE,MAAM,EAAE,CAAC;IAChE;AAEA,IAAA,sBAAsB,CAAC,GAAa,EAAA;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAiB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,cAAA,CAAgB,EAAE;AACzE,YAAA,MAAM,EAAE;AACN,gBAAA,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;AACnB,aAAA;AACF,SAAA,CAAC;IACJ;IAEA,eAAe,CAAC,EAAU,EAAE,IAAe,EAAA;AACzC,QAAA,MAAM,KAAK,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,GAAG,EAAE;AACzC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,MAAM,aAAa,EAAE,CAAA,SAAA,EAAY,KAAK,CAAA,CAAE,CACjD;IACH;AAEA,IAAA,MAAM,sBAAsB,GAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;AACrD,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,MAAM,CAAA,iBAAA,CAAmB,CAClC;QACH;aAAO;AACL,YAAA,OAAO,EAAE;QACX;IACF;uGAjIW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cADG,MAAM,EAAA,CAAA;;2FACnB,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;MA4IrB,UAAU,CAAA;IACb,IAAI,GAAgB,IAAI;IACxB,KAAK,GAAgB,IAAI;AAEjC,IAAA,WAAA,CAAY,IAAiB,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEO,IAAA,MAAM,GAAG,CAAI,GAAW,EAAE,MAAe,KAC9C,IAAI,CAAC,OAAO,CAAI,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC;AACjC,IAAA,GAAG,GAAG,CAAI,GAAW,EAAE,MAAe,KAC3C,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC;IAC9B,IAAI,GAAG,CAAI,GAAW,EAAE,IAAS,EAAE,MAAe,KACvD,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;IACrC,GAAG,GAAG,CAAI,GAAW,EAAE,IAAS,EAAE,MAAe,KACtD,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;AAE3C,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;AAEU,IAAA,OAAO,GAAG,OAClB,MAAc,EACd,GAAW,EACX,MAAA,GAAiB,EAAE,EACnB,IAAkC,KACpB;AACd,QAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE;AACzC,QAAA,IAAI,MAAM,CAAC,MAAM,EAAE;AACjB,YAAA,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE;AACpC,YAAA,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE;gBACxD,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACnC;AACA,YAAA,GAAG,IAAI,CAAA,CAAA,EAAI,MAAM,CAAA,CAAE;QACrB;AACA,QAAA,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,MAAM;AACN,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE;AAChC,gBAAA,MAAM,EAAE,kBAAkB;gBAC1B,IAAI,IAAI,YAAY;AAClB,sBAAE;AACF,sBAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;gBAC3C,GAAG,MAAM,CAAC,OAAO;AAClB,aAAA;YACD,IAAI,EACF,IAAI,YAAY;AACd,kBAAE;AACF,kBAAE;AACA,sBAAE,IAAI,CAAC,SAAS,CAAC,IAAI;AACrB,sBAAE,SAAS;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;AACtB,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;AAChB,YAAA,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;QACtC;AACA,QAAA,OAAO,QAAQ,CAAC,IAAI,EAAE;AACxB,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAA;QAClB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAC9C,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC;AACvB,QAAA,OAAO,KAAK;IACd;AAEQ,IAAA,WAAW,CAAC,KAAa,EAAA;AAC/B,QAAA,IAAI;YACF,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACnC,YAAA,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;AAC3B,gBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC;YAC7C;AACA,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/C,IAAI,CAAC,KAAK,GAAG;gBACX,EAAE,EAAE,OAAO,CAAC,GAAG;AACf,gBAAA,QAAQ,EAAE,OAAO,CAAC,kBAAkB,IAAI,OAAO,CAAC,KAAK;AACrD,gBAAA,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;gBAC1B,SAAS,EAAE,OAAO,CAAC;AACjB,sBAAE;AACE,wBAAA,EAAE,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAAE;AAClC,wBAAA,IAAI,EAAE,OAAO,CAAC,mBAAmB,CAAC,IAAI;AACvC;AACH,sBAAE,SAAS;aACd;QACH;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC;AAChD,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI;QACnB;IACF;AACD;;ACpPD;;;AAGG;MAEU,oBAAoB,CAAA;AACd,IAAA,KAAK,GAAG,IAAI,aAAa,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AACpD,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhD;;AAEG;IACH,MAAM,YAAY,CAAC,EAAU,EAAA;AAC3B,QAAA,OAAO,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IAC7C;AAEA;;AAEG;IACH,MAAM,aAAa,CAAC,GAAsB,EAAA;AACxC,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AAC3B,YAAA,GAAG,GAAG,CAAC,GAAG,CAAC;QACb;AACA,QAAA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB;AACxC,QAAA,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU;AAEpC,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;AACxC,YAAA,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE;gBACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtC,IAAI,WAAW,EAAE;AACf,oBAAA,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC;gBAC7B;qBAAO;oBACL,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM,CAAC;oBACvD,IAAI,CAAC,QAAQ,EAAE;AACb,wBAAA,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACpB;gBACF;YACF;AAEA,YAAA,IAAI,UAAU,CAAC,IAAI,GAAG,CAAC,EAAE;gBACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YACzC;AACA,YAAA,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;QACnC;aAAO;AACL,YAAA,OAAO,EAAE;QACX;IACF;AAEA;;AAEG;AACK,IAAA,MAAM,eAAe,CAC3B,EAAU,EACV,MAA2B,EAAA;AAE3B,QAAA,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI;AAChE,QAAA,IAAI,IAAY;AAChB,QAAA,IAAI,EAAE,KAAK,MAAM,EAAE;YACjB,IAAI,GAAG,QAAQ;QACjB;AAAO,aAAA,IAAI,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE;AAC9B,YAAA,IAAI,GAAG,SAAS,CAAC,IAAI;QACvB;QAEA,IAAI,IAAI,EAAE;AACR,YAAA,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC;AACxB,YAAA,OAAO,IAAI;QACb;aAAO;AACL,YAAA,OAAO,KAAK;QACd;IACF;AAEQ,IAAA,MAAM,QAAQ,CACpB,UAAuB,EACvB,MAA2B,EAAA;AAE3B,QAAA,IAAI;YACF,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,EAAE;YAClE,MAAM,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;gBAC3C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK;AAC5B,gBAAA,OAAO,GAAG;YACZ,CAAC,EAAE,EAAE,CAAC;YAEN,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE;AACxC,gBAAA,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE;oBACX,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACvB,oBAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC7B;YACF;QACF;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;QACtB;IACF;uGAvFW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAApB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cADP,MAAM,EAAA,CAAA;;2FACnB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;AA2FlC,MAAM,aAAa,CAAA;AAIP,IAAA,SAAA;AACA,IAAA,GAAA;AAJF,IAAA,KAAK,GAAG,IAAI,GAAG,EAAyB;IAEhD,WAAA,CACU,SAAiB,EACjB,GAAY,EAAA;QADZ,IAAA,CAAA,SAAS,GAAT,SAAS;QACT,IAAA,CAAA,GAAG,GAAH,GAAG;IACV;AAEH,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AACxB,YAAA,OAAO,SAAS;QAClB;AAEA,QAAA,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;;AAGvC,QAAA,IAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE;AAC1C,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AACtB,YAAA,OAAO,SAAS;QAClB;;;AAIA,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;AACtB,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAEhC,QAAA,OAAO,KAAK;IACd;IAEA,GAAG,CAAC,GAAW,EAAE,KAAU,EAAA;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;QAEtB,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE;AACtC,YAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC;QACnD;AACA,QAAA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IAC1C;AACD;;MCzHY,cAAc,CAAA;AACzB,IAAA,KAAK,GAAG,IAAI,GAAG,EAAqE;AACpF,IAAA,MAAM,GAAG,IAAI,GAAG,EAAkB;AAEjB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,aAAa,GAAG,MAAM,CAAC,oBAAoB,CAAC;IAE7D,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;IACrB;IAEA,MAAM,cAAc,CAAC,UAA8B,EAAA;QACjD,MAAM,QAAQ,GAAG,EAAE;QACnB,MAAM,UAAU,GAAG,EAAE;QACrB,MAAM,QAAQ,GAAG,EAAE;QACnB,MAAM,YAAY,GAAG,EAAE;QACvB,MAAM,OAAO,GAAG,EAAE;QAClB,MAAM,eAAe,GAAG,EAAE;AAE1B,QAAA,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE;YAClC,IACE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;AAC5B,gBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,UAAU,EACzC;gBACA;YACF;YACA,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,CAAC,KAAK,EAAE;AAClD,gBAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B;iBAAO,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,CAAC,UAAU,EAAE;AAC9D,gBAAA,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACjC;iBAAO,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,CAAC,QAAQ,EAAE;AAC5D,gBAAA,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/B;iBAAO,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,CAAC,KAAK,EAAE;AACzD,gBAAA,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7B;iBAAO,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,CAAC,IAAI,EAAE;AACxD,gBAAA,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YAC5B;iBAAO,IAAI,SAAS,CAAC,YAAY,KAAK,aAAa,CAAC,aAAa,EAAE;AACjE,gBAAA,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpC;QACF;AAEA,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC,CACH;AACD,YAAA,IAAI,CAAC;AACF,iBAAA,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA,KAAA,EAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,EAAE;AAClD,iBAAA,IAAI,CAAC,OAAO,QAAQ,KAAI;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtC;AACD,gBAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU;AAClC,gBAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE;AACjC,oBAAA,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBAClB,KAAK,CAAC,KAAa,CAAC,IAAI;AACvB,4BAAA,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC5C;oBACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;AACxB,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,SAAS,EAAE,KAAK;AACjB,qBAAA,CAAC;AACF,oBAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB;AACA,gBAAA,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACrB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,SAAS,EAAE,KAAK;AAChB,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC;oBACJ;gBACF;AACF,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CACH;AACH,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,YAAA,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,KACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC,CACH;AACD,YAAA,IAAI,CAAC;AACF,iBAAA,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA,KAAA,EAAQ,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,EAAE;AAC1D,iBAAA,IAAI,CAAC,OAAO,QAAQ,KAAI;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtC;AACD,gBAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU;AAClC,gBAAA,KAAK,MAAM,SAAS,IAAI,QAAQ,CAAC,IAAI,EAAE;AACrC,oBAAA,IAAI,SAAS,CAAC,KAAK,EAAE,EAAE,EAAE;wBACtB,SAAS,CAAC,KAAa,CAAC,IAAI;AAC3B,4BAAA,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE;oBACpD;oBACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE,SAAS,CAAC;oBACvC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,EAAE;AAC5B,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,SAAS,EAAE,KAAK;AACjB,qBAAA,CAAC;AACF,oBAAA,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC5B;AACA,gBAAA,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE;oBAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACrB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,SAAS,EAAE,KAAK;AAChB,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC;oBACJ;gBACF;AACF,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,gBAAA,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,KACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CACH;AACH,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,YAAA,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC,CACH;AACD,YAAA,IAAI,CAAC;AACF,iBAAA,WAAW,CAAC;gBACX,MAAM,EAAE,QAAQ,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE;AACtC,gBAAA,QAAQ,EAAE,UAAU;aACrB;AACA,iBAAA,IAAI,CAAC,OAAO,QAAQ,KAAI;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtC;AACD,gBAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU;AAClC,gBAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,IAAI,EAAE;AACnC,oBAAA,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,EAAE;wBACpB,OAAO,CAAC,KAAa,CAAC,IAAI;AACzB,4BAAA,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;oBAChD;oBACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC;oBACnC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE;AAC1B,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,SAAS,EAAE,KAAK;AACjB,qBAAA,CAAC;AACF,oBAAA,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC1B;AACA,gBAAA,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE;oBAC3B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACrB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,SAAS,EAAE,KAAK;AAChB,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC;oBACJ;gBACF;AACF,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,gBAAA,UAAU,CAAC,OAAO,CAAC,CAAC,EAAE,KACpB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CACH;AACH,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;AACvB,YAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC,CACH;AACD,YAAA,IAAI,CAAC;AACF,iBAAA,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA,KAAA,EAAQ,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,EAAE;AAClD,iBAAA,IAAI,CAAC,OAAO,QAAQ,KAAI;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtC;AACD,gBAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU;AAClC,gBAAA,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,IAAI,EAAE;AACjC,oBAAA,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE;wBAClB,KAAK,CAAC,KAAa,CAAC,IAAI;AACvB,4BAAA,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE;oBAC5C;oBACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE;AACxB,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,SAAS,EAAE,KAAK;AACjB,qBAAA,CAAC;AACF,oBAAA,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB;AACA,gBAAA,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE;oBACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACrB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,SAAS,EAAE,KAAK;AAChB,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC;oBACJ;gBACF;gBACA,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5D,gBAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AAChC,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,gBAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAClB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CACH;AACH,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AACtB,YAAA,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC,CACH;AACD,YAAA,IAAI,CAAC;AACF,iBAAA,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE,EAAE;AAChD,iBAAA,IAAI,CAAC,OAAO,QAAQ,KAAI;gBACvB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtC;AACD,gBAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU;AAClC,gBAAA,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE;AAChC,oBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE;wBACjB,IAAI,CAAC,KAAa,CAAC,IAAI;AACtB,4BAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC1C;oBACA,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC;oBAC7B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE;AACvB,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,SAAS,EAAE,KAAK;AACjB,qBAAA,CAAC;AACF,oBAAA,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB;AACA,gBAAA,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE;oBACxB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACrB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,SAAS,EAAE,KAAK;AAChB,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC;oBACJ;gBACF;gBACA,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,IAAI,CAAC;AAC5D,gBAAA,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC;AAChC,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,gBAAA,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KACjB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CACH;AACH,YAAA,CAAC,CAAC;QACN;AAEA,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,gBAAA,UAAU,EAAE,KAAK;AACjB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,SAAS,EAAE,IAAI;AAChB,aAAA,CAAC,CACH;AACD,YAAA,IAAI,CAAC;iBACF,sBAAsB,CAAC,eAAe;AACtC,iBAAA,IAAI,CAAC,OAAO,cAAc,KAAI;AAC7B,gBAAA,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU;AAClC,gBAAA,KAAK,MAAM,YAAY,IAAI,cAAc,EAAE;oBACzC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE,YAAY,CAAC;oBAC7C,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,EAAE;AAC/B,wBAAA,UAAU,EAAE,IAAI;AAChB,wBAAA,OAAO,EAAE,KAAK;AACd,wBAAA,SAAS,EAAE,KAAK;AACjB,qBAAA,CAAC;AACF,oBAAA,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;gBAC/B;AACA,gBAAA,KAAK,MAAM,EAAE,IAAI,eAAe,EAAE;oBAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACrB,wBAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,4BAAA,UAAU,EAAE,KAAK;AACjB,4BAAA,OAAO,EAAE,IAAI;AACb,4BAAA,SAAS,EAAE,KAAK;AAChB,4BAAA,QAAQ,EAAE,IAAI;AACf,yBAAA,CAAC;oBACJ;gBACF;gBACA,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC;AAC3D,gBAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;AAC/B,YAAA,CAAC;AACA,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AACpB,gBAAA,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,KACzB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE;AAClB,oBAAA,UAAU,EAAE,KAAK;AACjB,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,SAAS,EAAE,KAAK;AACjB,iBAAA,CAAC,CACH;AACH,YAAA,CAAC,CAAC;QACN;IACF;AAEA,IAAA,UAAU,CAAC,EAAU,EAAA;QACnB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;IAC3B;AAEA,IAAA,eAAe,CAAC,SAAiB,EAAA;QAC/B,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE;YAC1C,IAAK,QAAkB,CAAC,WAAW,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE;AACxD,gBAAA,OAAO,QAAiB;YAC1B;QACF;AACA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,aAAa,CAAC,KAAY,EAAA;AACxB,QAAA,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAU;QAChD;aAAO;AACL,YAAA,OAAO,IAAI;QACb;IACF;AAEA,IAAA,YAAY,CAAC,IAAU,EAAA;AACrB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAU;QAC/C;aAAO;AACL,YAAA,OAAO,IAAI;QACb;IACF;AAEA,IAAA,mBAAmB,CAAC,YAA0B,EAAA;AAC5C,QAAA,IAAI,YAAY,CAAC,MAAM,EAAE;YACvB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAS;QACpD;AACA,QAAA,OAAO,IAAI;IACb;AAEA,IAAA,YAAY,CAAC,IAAY,EAAA;QACvB,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE;AAC1C,YAAA,IACG,QAA6C,CAAC,IAAI,EAAE,WAAW,EAAE;gBAChE,IAAI,CAAC,WAAW,EAAE;gBACnB,QAAoB,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE,EACpE;gBACA,OAAO,QAAQ,CAAC,EAAE;YACpB;QACF;AACA,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,sBAAsB,CAAC,IAA6B,EAAA;QAC1D,OAAO,IAAI,CAAC,MAAM,CAAqB,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAI;YAC/D,IAAI,QAAQ,EAAE;AACZ,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,aAAa,CAAC,KAAK,EAAsB,CAAC;YACvF;AACA,YAAA,OAAO,OAAO;QAChB,CAAC,EAAE,EAAE,CAAC;IACR;AAEQ,IAAA,qBAAqB,CAAC,cAA8B,EAAA;QAC1D,OAAO,cAAc,CAAC,MAAM,CAAqB,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAI;YACvE,IAAI,MAAM,EAAE;AACV,gBAAA,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,CAAC,IAAI,EAAsB,CAAC;YACpF;AACA,YAAA,OAAO,OAAO;QAChB,CAAC,EAAE,EAAE,CAAC;IACR;uGAhaW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAd,cAAc,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B;;;MCPY,gBAAgB,CAAA;AACnB,IAAA,MAAM;IAEd,kBAAkB,GAA2B,EAAE;IAC/C,iBAAiB,GAAoC,EAAE;AAEvD,IAAA,IAAI,CAAC,UAAsB,EAAA;QACzB,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE;AACnC,YAAA,IAAI,EAAE,CAAA,UAAA,CAAY;AAClB,YAAA,IAAI,EAAE,CAAC,EAAE,KAAI;gBACX,UAAU,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;oBACzC,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,EAAE,CAAC;AAClC,gBAAA,CAAC,CAAC;YACJ,CAAC;AACF,SAAA,CAAC;IACJ;IAEA,QAAQ,CACN,QAAgB,EAChB,OAAe,EACf,OAIC,EACD,UAAmB,EACnB,MAAY,EAAA;AAEZ,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE;YACjC,QAAQ;YACR,OAAO;YACP,OAAO;YACP,UAAU;YACV,MAAM;AACP,SAAA,CAAC;IACJ;AAEA,IAAA,kBAAkB,CAChB,QAAgB,EAChB,UAAkB,EAClB,MAAW,EAAA;AAEX,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC;IACtE;IAEA,SAAS,CAAC,QAAgB,EAAE,SAAiB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;IAC3D;AAEA,IAAA,OAAO,CAAC,QAAgB,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC;IAChD;AAEA,IAAA,iBAAiB,CAAC,QAAgB,EAAA;AAChC,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;AACjC,YAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACpC,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,qBAAqB,CAAC,QAAgB,EAAA;AACpC,QAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC;IACtC;uGA9DW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAhB,gBAAgB,EAAA,CAAA;;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;ACqBD,SAAS,YAAY,CAAC,IAAY,EAAA;IAChC,OAAO,0BAA0B,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;AACtD;AAEM,SAAU,qBAAqB,CAAC,IAAuB,EAAA;IAC3D,QAAQ,IAAI;AACV,QAAA,KAAK,OAAO;AACZ,QAAA,KAAK,MAAM;YACT,OAAO,aAAa,CAAC,KAAK;AAC5B,QAAA,KAAK,QAAQ;YACX,OAAO,aAAa,CAAC,MAAM;AAC7B,QAAA,KAAK,UAAU;YACb,OAAO,aAAa,CAAC,QAAQ;;AAEnC;AAGA;AACM,SAAU,cAAc,CAAC,IAAY,EAAA;IACzC,MAAM,YAAY,GAAkB,CAAA,UAAA,6BAAuB;IAC3D,IAAI,QAAQ,GAAG,CAAC;AAChB,IAAA,IAAI,eAAmC;AACvC,IAAA,IAAI,kBAAsC;AAC1C,IAAA,IAAI,aAAwC;AAE5C,IAAA,MAAM,IAAI,GAAG,CAAC,OAAoB,KAAK,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC;AACjE,IAAA,MAAM,OAAO,GAAG,CAAC,OAAoB,MAClC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,CAAC,MAAqB,KAAI;AAC3C,QAAA,IAAI,eAAe,IAAI,IAAI,EAAE;YAC3B,eAAe,GAAG,QAAQ;AAC1B,YAAA,kBAAkB,GAAG,YAAY,CAAC,MAAM;YACxC,aAAa,GAAG,MAAM;QACxB;AACF,IAAA,CAAC;AACD,IAAA,MAAM,YAAY,GAAG,CAAC,MAAqB,KAAI;AAC7C,QAAA,IAAI,MAAM,KAAK,aAAa,EAAE;YAC5B,eAAe,GAAG,SAAS;YAC3B,kBAAkB,GAAG,SAAS;YAC9B,aAAa,GAAG,SAAS;QAC3B;AACF,IAAA,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,YAAY,CAAC,GAAG,EAAE;AACpC,IAAA,MAAM,oBAAoB,GAAG,MAAM,QAAQ,EAAE;AAE7C,IAAA,MAAM,QAAQ,GAAG,CAAC,IAAY,KAAI;QAChC,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,IAAI,GAAG,EAAE;AAC9B,YAAA,IAAI,mCAAoB;YACxB;QACF;QACA,QAAQ,IAAI;AACV,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,mCAAoB;gBACxB;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,yDAAgC;gBACpC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,+BAAkB;gBACtB;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,iCAAmB;gBACvB;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,+BAAkB;gBACtB;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,uDAA+B;gBACnC;AACF,YAAA,KAAK,GAAG;AACN,gBAAA,IAAI,qDAA8B;gBAClC;;AAEN,IAAA,CAAC;AAED,IAAA,KAAK,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,EAAE;AAC3D,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC3B,QAAQ,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;AAC3C,YAAA,KAAA,UAAA;gBACE,QAAQ,CAAC,IAAI,CAAC;gBACd;AACF,YAAA,KAAA,QAAA;gBACE,QAAQ,IAAI;AACV,oBAAA,KAAK,GAAG;AACN,wBAAA,GAAG,EAAE;wBACL;AACF,oBAAA,KAAK,IAAI;AACP,wBAAA,UAAU,kDAA6B;AACvC,wBAAA,IAAI,kDAA4B;wBAChC;;gBAEJ;AACF,YAAA,KAAA,eAAA;AACE,gBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,oBAAA,IAAI,kDAA4B;gBAClC;qBAAO;AACL,oBAAA,YAAY,kDAA6B;AACzC,oBAAA,GAAG,EAAE;gBACP;gBACA;AACF,YAAA,KAAA,eAAA;AACE,gBAAA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;AACpD,oBAAA,YAAY,kDAA6B;AACzC,oBAAA,GAAG,EAAE;gBACP;gBACA;AACF,YAAA,KAAA,QAAA;AACE,gBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,oBAAA,OAAO,yDAAgC;gBACzC;qBAAO,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;AACvC,oBAAA,OAAO,+DAAmC;gBAC5C;qBAAO,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE;AACnC,oBAAA,oBAAoB,EAAE;AACtB,oBAAA,GAAG,EAAE;gBACP;gBACA;AACF,YAAA,KAAA,kBAAA;AACE,gBAAA,OAAO,mCAAoB;gBAC3B;AACF,YAAA,KAAA,qBAAA;gBACE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,EAAE;AAChC,oBAAA,OAAO,yDAAgC;gBACzC;qBAAO;AACL,oBAAA,OAAO,mCAAoB;gBAC7B;gBACA;YACF,KAAA,MAAA;YACA,KAAA,OAAA;AACA,YAAA,KAAA,MAAA;gBACE,IAAI,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,GAAG,EAAE;AAC5B,oBAAA,oBAAoB,EAAE;AACtB,oBAAA,GAAG,EAAE;gBACP;gBACA;AACF,YAAA,KAAA,iBAAA;AACE,gBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,oBAAA,GAAG,EAAE;gBACP;AAAO,qBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AAC9B,oBAAA,YAAY,sDAA+B;AAC3C,oBAAA,OAAO,uDAA+B;oBACtC,QAAQ,CAAC,IAAI,CAAC;gBAChB;gBACA;AACF,YAAA,KAAA,iBAAA;AACE,gBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,oBAAA,GAAG,EAAE;gBACP;AAAO,qBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AACvB,oBAAA,UAAU,sDAA+B;AACzC,oBAAA,OAAO,uDAA+B;gBACxC;gBACA;AACF,YAAA,KAAA,gBAAA;AACE,gBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,oBAAA,GAAG,EAAE;gBACP;AAAO,qBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AACvB,oBAAA,UAAU,sDAA+B;AACzC,oBAAA,OAAO,yDAAgC;AACvC,oBAAA,IAAI,mCAAoB;gBAC1B;gBACA;AACF,YAAA,KAAA,kBAAA;AACE,gBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,oBAAA,OAAO,yDAAgC;gBACzC;gBACA;AACF,YAAA,KAAA,kBAAA;AACE,gBAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AACvB,oBAAA,YAAY,sDAA+B;AAC3C,oBAAA,OAAO,yDAAgC;oBACvC,QAAQ,CAAC,IAAI,CAAC;gBAChB;gBACA;AACF,YAAA,KAAA,kBAAA;AACE,gBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AAChB,oBAAA,GAAG,EAAE;gBACP;AAAO,qBAAA,IAAI,IAAI,KAAK,GAAG,EAAE;AACvB,oBAAA,UAAU,sDAA+B;AACzC,oBAAA,OAAO,qDAA8B;gBACvC;gBACA;;IAEN;AAEA,IAAA,IAAI,kBAAkB,IAAI,IAAI,EAAE;AAC9B,QAAA,YAAY,CAAC,MAAM,GAAG,kBAAkB;IAC1C;AACA,IAAA,MAAM,MAAM,GAAG;AACb,QAAA,eAAe,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,GAAG,IAAI;KAChE;AACD,IAAA,MAAM,UAAU,GAAG,CAAC,IAAY,KAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClE,IAAA,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,QAAA,QAAQ,YAAY,CAAC,CAAC,CAAC;AACrB,YAAA,KAAA,QAAA;AACE,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChB;YACF,KAAA,kBAAA;AACA,YAAA,KAAA,qBAAA;AACE,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChB;AACF,YAAA,KAAA,MAAA;gBACE,UAAU,CAAC,MAAM,CAAC;gBAClB;AACF,YAAA,KAAA,OAAA;gBACE,UAAU,CAAC,OAAO,CAAC;gBACnB;AACF,YAAA,KAAA,MAAA;gBACE,UAAU,CAAC,MAAM,CAAC;gBAClB;YACF,KAAA,iBAAA;AACA,YAAA,KAAA,iBAAA;AACE,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChB;YACF,KAAA,gBAAA;YACA,KAAA,kBAAA;YACA,KAAA,kBAAA;AACA,YAAA,KAAA,kBAAA;AACE,gBAAA,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;gBAChB;;IAEN;AACA,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;AACxB;;ACtNA,IAAY,QAIX;AAJD,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,QAAA,CAAA,QAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM;AACN,IAAA,QAAA,CAAA,QAAA,CAAA,YAAA,CAAA,GAAA,CAAA,CAAA,GAAA,YAAU;AACZ,CAAC,EAJW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;AAMpB,MAAM,cAAc,GAAG;AACrB,IAAA,CAAC,QAAQ,CAAC,UAAU,GAAG,UAAU;CAClC;MAGY,WAAW,CAAA;IACb,QAAQ,GAAG,QAAQ;IAC5B,gBAAgB,GAAkB,IAAI;IACtC,SAAS,GAAG,KAAK;IACjB,KAAK,GAAkB,IAAI;IAC3B,YAAY,GAAG,KAAK;AAEb,IAAA,kBAAkB,GAAG,IAAI,OAAO,EAGnC;AAEa,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACvC,IAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ;AAC9B,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC;AACjC,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,IAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;IAC9B,MAAM,GAA6B,IAAI;AACvC,IAAA,WAAW,GAAa,QAAQ,CAAC,KAAK;IACtC,gBAAgB,GAAuB,IAAI;IAC3C,aAAa,GAA2B,IAAI;AAC5C,IAAA,WAAW,GAAkC,MAAM,CAAC,EAAE,kFAAC;AACvD,IAAA,SAAS,GAAkC,MAAM,CAAC,EAAE,gFAAC;IACrD,aAAa,GAAwB,IAAI;AAEjD,IAAA,WAAA,GAAA;QACE,MAAM,CAAC,MAAK;AACV,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW;AACxD,YAAA,IACE,iBAAiB;AACjB,iBAAC,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,EAAE,KAAK,iBAAiB,CAAC,EACxE;gBACA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAClC;YACH;AACF,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;IAEA,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,kBAAkB,CAAC,OAAO;IAC5E;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,OAAO,IAAI,CAAC,aAAa;IAC3B;AAEA,IAAA,IAAI,UAAU,GAAA;QACZ,OAAO,IAAI,CAAC,WAAW;IACzB;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE;IAC3B;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,SAAS,EAAE;IACzB;AAEA,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,OAAO,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC;IACxC;AAEA,IAAA,iBAAiB,CAAC,KAAwB,EAAA;AACxC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;IACrB;AAEA,IAAA,MAAM,IAAI,GAAA;QACR,IAAI,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,CAAC,EAAE;;YAE/B;QACF;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI;YACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC;AAC3D,YAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAC3C,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,iBAAiB,CAClC;YACD,IAAI,gBAAgB,EAAE;AACpB,gBAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;YAC1C;QACF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QACpB;gBAAU;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACxB;IACF;AAEA,IAAA,MAAM,oBAAoB,CACxB,WAA0B,EAC1B,cAAuB,EACvB,OAAwC,EAAA;AAExC,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC;YACpE,IAAI,CAAC,eAAe,EAAE;YACtB,IAAI,cAAc,EAAE;gBAClB,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,OAAO,CAAC;YACjD;QACF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAClB,YAAA,MAAM,GAAG;QACX;gBAAU;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACxB;IACF;IAEA,MAAM,eAAe,CAAC,WAA0B,EAAA;QAC9C,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC;AACzE,QAAA,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YACzB;QACF;AACA,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACtB,QAAA,MAAM,cAAc,GAClB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,cAAc;QAC7D,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC5C,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;YACjB,EAAS,MAAM,EAAE,IAAI;gBACnB,IAAI,EAAE,IAAI,CAAC,SAAS;AACpB,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,SAAS,EAAE,WAAW;AACtB,gBAAA,SAAS,EAAE,WAAW;AACtB,gBAAA,aAAa,EAAE;AACb,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,UAAU,EAAE,EAAE;AACf,iBAAA;AACF,aAAA;AACF,SAAA,CAAC;IACJ;AAEA,IAAA,MAAM,YAAY,CAChB,cAAuB,EACvB,WAA2B,EAAA;AAE3B,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE;YACjE;QACF;QACA,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC,eAAe,EAAE,EAAE;AAErD,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,WAAW,CAAC;YAC9D,IAAI,cAAc,EAAE;AAClB,gBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YACxC;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QAClD;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;QACpB;gBAAU;AACR,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;QACxB;IACF;AAEA,IAAA,YAAY,CAAC,QAAgB,EAAA;QAC3B,IAAI,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE;AACtC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC3B;QACA,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC;IAC/C;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,KAAK;IACnC;IAEA,cAAc,GAAA;QACZ,IAAI,IAAI,CAAC,WAAW,KAAK,QAAQ,CAAC,UAAU,EAAE;YAC5C;QACF;AACA,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,UAAU;IACxC;AAEA,IAAA,MAAM,UAAU,CACd,MAAgC,EAChC,WAAW,GAAG,KAAK,EAAA;QAEnB,IAAI,CAAC,MAAM,EAAE;YACX;QACF;AACA,QAAA,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC;QAClD;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,MAAM;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,MAAM;QAClC,IAAI,WAAW,EAAE;AACf,YAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB;aAAO;AACL,YAAA,MAAM,IAAI,CAAC,WAAW,EAAE;QAC1B;QACA,IAAI,CAAC,eAAe,EAAE;IACxB;AAEA,IAAA,gBAAgB,CAAC,MAAuB,EAAA;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,WAAW,CAAC;AAC1E,QAAA,OAAO,SAAS,EAAE,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI;IAClD;AAEQ,IAAA,MAAM,WAAW,GAAA;AACvB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,EAAE,EAAE;QACtC,IAAI,CAAC,QAAQ,EAAE;YACb;QACF;AACA,QAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AACrB,QAAA,IAAI;AACF,YAAA,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,QAAQ,CAAC;AAC5E,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;gBACzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CACpC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,YAAY,CAAC,WAAW,CAC9C;AACD,gBAAA,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,EAAE,cAAc;gBACvE,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;AAC5C,gBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC;oBACjB,EAAa,MAAM,EAAE,QAAQ;wBAC3B,IAAI,EAAE,IAAI,CAAC,SAAS;AACpB,wBAAA,OAAO,EAAE,cAAc;AACvB,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,SAAS,EAAE,WAAW;AACtB,wBAAA,aAAa,EAAE;AACb,4BAAA,QAAQ,EAAE,cAAc;AACxB,4BAAA,UAAU,EAAE,EAAE;AACf,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAC;YACJ;iBAAO;AACL,gBAAA,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YACtE;QACF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACtB,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAClB,YAAA,MAAM,GAAG;QACX;IACF;AAEA,IAAA,MAAM,WAAW,CACf,OAAe,EACf,UAAmC,EAAE,EAAA;AAErC,QAAA,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE;QACxB,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE;YACzC;QACF;QACA,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ;AACjE,QAAA,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE;AAElC,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAC9C,OAAO,EACP,IAAI,EACJ,IAAI,CAAC,eAAe,CAAC,EAAE,EACvB,OAAO,CACR;AACD,YAAA,IAAI,OAAO,CAAC,MAAM,EAAE;AAClB,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;gBACxB,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC;YACxC;QACF;aAAO;AACL,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE;YACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;AAC1C,YAAA,IACE,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC,IAAI;AACxB,gBAAA,IAAI,EAAE,QAAQ,KAAK,QAAQ,CAAC,MAAM;AAClC,gBAAA,IAAI,EAAE,MAAM,KAAK,iBAAiB,CAAC,yBAAyB;AAC5D,gBAAA,IAAI,EAAE,IAAI,EAAE,OAAO,EACnB;;gBAEA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAClB,IAAI,CAAC,YAAY,CAAC,EAAE,EACpB,OAAO,EACP,OAAO,EACP,IAAI,CAAC,UAAU,EACf,MAAM,CACP;YACH;iBAAO;AACL,gBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC;YAC9D;QACF;IACF;IAEA,YAAY,CAAC,SAAc,EAAE,WAAgB,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAC5B,WAAW,CAAC,MAAM,EAClB,WAAW,CAAC,UAAU,EACtB,SAAS,CACV;IACH;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC3B;AACA,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QACzD;AACA,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;IAC3B;AAEA,IAAA,MAAM,WAAW,GAAA;AACf,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;QAC3C;IACF;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;AAChC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC3B;AACA,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YACtB;QACF;AAEA,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AACvB,iBAAA,iBAAiB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;AACtC,iBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC;iBAC7B,SAAS,CACR,CAAC,EAAE,IAAI,EAAE,IAAI,EAAiD,KAAI;AAChE,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAK;AACjB,oBAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC;AACpC,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CACF;QACL;IACF;AAEQ,IAAA,cAAc,CAAC,UAA8B,EAAA;AACnD,QAAA,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;YACvB;QACF;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU;AACjC,QAAA,UAAU,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;YACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACxB,gBAAA,GAAG,CAAC,eAAe,GAAG,IAAI;YAC5B;AACA,YAAA,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AACrB,QAAA,CAAC,CAAC;AACF,QAAA,MAAM,IAAI,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,eAAe,CAAC;AAC5D,QAAA,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC;IAC1C;IAEQ,iBAAiB,CAAC,IAA0B,EAAE,OAAgB,EAAA;AACpE,QAAA,IAAI,IAAI,KAAK,oBAAoB,CAAC,aAAa,EAAE;;AAE/C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QAC1B;AAAO,aAAA,IAAI,IAAI,KAAK,oBAAoB,CAAC,UAAU,EAAE;;AAEnD,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAC7B;AAAO,aAAA,IAAI,IAAI,KAAK,oBAAoB,CAAC,kBAAkB,EAAE;;AAE3D,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAA2B,CAAC;QACxD;AAAO,aAAA,IAAI,IAAI,KAAK,oBAAoB,CAAC,WAAW,EAAE;;AAEpD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QAC3B;AAAO,aAAA,IAAI,IAAI,KAAK,oBAAoB,CAAC,UAAU,EAAE;;AAEnD,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QAC3B;AAAO,aAAA,IACL,IAAI,KAAK,oBAAoB,CAAC,oBAAoB;AAClD,YAAA,IAAI,KAAK,oBAAoB,CAAC,kBAAkB,EAChD;;AAEA,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AACzB,YAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;YACtB,IAAI,CAAC,aAAa,CAAC;AACjB,gBAAA,EAAE,EAAE,UAAU,CAAC,MAAM,CAAC,UAAU,EAAE;AAClC,gBAAA,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,EAAE;gBAC5B,IAAI,EAAE,IAAI,CAAC,SAAS;gBACpB,MAAM,EAAE,sBAAsB,CAAC,MAAM;gBACrC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACtC,8BAA8B,CAC/B;gBACD,YAAY,EAAE,YAAY,CAAC,KAAK;AACjC,aAAA,CAAC;QACJ;aAAO;;QAEP;;AAEA,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACrD,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;QAC5B;IACF;AAEQ,IAAA,aAAa,CAAC,OAAgB,EAAA;AACpC,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE;QACxC,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CACrC,CAAC,CAAC,KACA,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;AAC5B,aAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CACxD;AACD,QAAA,IAAI,UAAuB;QAE3B,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE;AACnC,YAAA,UAAU,GAAG,EAAE,GAAG,OAAO,EAAsB;AAC/C,YAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,gBAAA,IAAI;AACF,oBAAA,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CACnC,cAAc,CAAC,OAAO,CAAC,OAAO,CAAC,CAChC;gBACH;gBAAE,OAAO,CAAC,EAAE;oBACV,UAAU,CAAC,aAAa,GAAG;wBACzB,QAAQ,EAAE,OAAO,CAAC,OAAO;AACzB,wBAAA,UAAU,EAAE,EAAE;qBACf;gBACH;AACA,gBAAA,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC;YAC3D;QACF;aAAO,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;AACrC,YAAA,IAAI,OAAO,CAAC,OAAO,EAAE;AACnB,gBAAA,UAAU,GAAG,EAAE,GAAG,OAAO,EAAiB;AAC1C,gBAAA,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC;gBAC7C,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC;YAC3D;QACF;AACA,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YAChB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC7B,gBAAA,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;AACzB,gBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU,IAAI,OAAO;AACtC,gBAAA,OAAO,OAAO;AAChB,YAAA,CAAC,CAAC;QACJ;aAAO;AACL,YAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,EAAE,UAAU,IAAI,OAAO,CAAC,CAAC;QACnE;IACF;AAEQ,IAAA,oBAAoB,CAAC,OAAyB,EAAA;AACpD,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,EAAE;QACxC,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CACrC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAC3D;AACD,QAAA,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;AAChB,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QACpC;QAEA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAI;AAC7B,YAAA,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,CAAC;YACzB,MAAM,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,EAAsB;YAE5D,UAAU,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO;AACzD,YAAA,IAAI;AACF,gBAAA,UAAU,CAAC,aAAa,GAAG,IAAI,CAAC,KAAK,CACnC,cAAc,CAAC,UAAU,CAAC,OAAO,CAAC,CACnC;gBACD,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,aAAa,EAAE,UAAU,CAAC;YAC3D;YAAE,OAAO,CAAC,EAAE;gBACV,UAAU,CAAC,aAAa,GAAG;oBACzB,QAAQ,EAAE,UAAU,CAAC,OAAO;AAC5B,oBAAA,UAAU,EAAE,EAAE;iBACf;YACH;AACA,YAAA,OAAO,CAAC,KAAK,CAAC,GAAG,UAAU;AAC3B,YAAA,OAAO,OAAO;AAChB,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,eAAe,CACrB,OAAuC,EAAA;QAEvC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;AAChD,QAAA,OAAO,CAAC,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAC1D,OAAO,CAAC,aAAa,CAAC,QAAQ,CAC/B;AACD,QAAA,OAAO,OAAO;IAChB;AAEA;;;QAGa,UAAU,CAAC,OAAuC,EAAA;AAC7D,QAAA,IAAI,QAAQ,GACV,OAAO,CAAC,aAAa,EAAE,QAAQ,IAAI,OAAO,CAAC,OAAO,IAAI,EAAE;QAC1D,MAAM,UAAU,GACd,OAAO,CAAC,aAAa,EAAE,UAAU,IAAI,EAAE;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,IAAI,EAAE;QAC5D,MAAM,iBAAiB,GAAG,8CAA8C;QACxE,MAAM,mBAAmB,GAAG,wCAAwC;AACpE,QAAA,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,IAAI,CAAC;AAE9D,QAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAI;AACnE,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAEtD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,KAAK,OAAO,EAAE;AAChE,gBAAA,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC;AACjF,gBAAA,OAAO,EAAE;YACX;iBAAO,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,KAAK,KAAK,EAAE;AACrE,gBAAA,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC;AACtF,gBAAA,OAAO,EAAE;YACX;YAEA,OAAO,CAAA,EAAA,EAAK,EAAE,CAAA,EAAA,CAAI;AACpB,QAAA,CAAC,CAAC;AAEF,QAAA,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,KAAI;AACrE,YAAA,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACzD,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;YAEtD,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,KAAK,OAAO,EAAE;AAChE,gBAAA,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC;AACjF,gBAAA,OAAO,MAAM;YACf;iBAAO,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,KAAK,KAAK,EAAE;AACrE,gBAAA,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,aAAa,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC;AACtF,gBAAA,OAAO,MAAM;YACf;AAEA,YAAA,OAAO,MAAM;AACf,QAAA,CAAC,CAAC;AAEF,QAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE;IAC9C;AAEA;;;QAGa,gBAAgB,CAC3B,GAAW,EAAA;AAEX,QAAA,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE;AAClC,QAAA,MAAM,WAAW,GAAG;YAClB,KAAK;YACL,MAAM;YACN,WAAW;YACX,UAAU;YACV,YAAY;YACZ,WAAW;SACZ;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAC3B,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CACnD;QACD,MAAM,cAAc,GAAG,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC;QAEpD,IAAI,YAAY,KAAK,CAAC,CAAC,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;AAChD,YAAA,OAAO,IAAI;QACb;AAAO,aAAA,IAAI,cAAc,GAAG,YAAY,EAAE;YACxC,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE;QACzD;AAAO,aAAA,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;YAC9B,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE;QACrD;AACA,QAAA,OAAO,IAAI;IACb;AAEA;;;QAGa,sBAAsB,CAAC,OAAe,EAAA;QACjD,MAAM,UAAU,GACd,qGAAqG;AACvG,QAAA,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;AAC5B,YAAA,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;gBAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;AACtC,gBAAA,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK;AACzB,gBAAA,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC;AAC9C,gBAAA,IAAI;AACF,oBAAA,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;oBAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;oBACtC,IAAI,aAAa,GAAG,4BAA4B;AAChD,oBAAA,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE;AACzB,wBAAA,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE;AACtD,4BAAA,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC;AACxD,4BAAA,aAAa,IAAI,CAAA,IAAA,EAAO,GAAG,CAAA,KAAA,EAAQ,KAAK,MAAM;wBAChD;oBACF;oBACA,aAAa,IAAI,IAAI;oBACrB,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC;oBACvC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC;AACvC,oBAAA,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO;gBAC7C;gBAAE,OAAO,KAAK,EAAE;oBACd;gBACF;YACF;QACF;AAEA,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,YAAY,CAAC,OAAyB,EAAA;AACpC,QAAA,IACE,CAAC,OAAO;AACR,YAAA,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,YAAY;AACjB,YAAA,OAAO,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,EAC/B;YACA;QACF;AAEA,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;AACxB,QAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;AAExE,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC;IACzD;uGA7lBW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAX,WAAW,EAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;IAunBW;AAAZ,CAAA,UAAY,oBAAoB,EAAA;AAC9B,IAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,oBAAA,CAAA,iBAAA,CAAA,GAAA,iBAAmC;AACnC,IAAA,oBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,oBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C;AAC7C,IAAA,oBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,oBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,oBAAA,CAAA,oBAAA,CAAA,GAAA,oBAAyC;AACzC,IAAA,oBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AACjC,CAAC,EATW,oBAAoB,KAApB,oBAAoB,GAAA,EAAA,CAAA,CAAA;;AC/pBhC,MAAM,gBAAgB,GAAG;IACvB,wBAAwB;IACxB,YAAY;IACZ,WAAW;IACX,uBAAuB;CACxB;AACD,MAAM,uBAAuB,GAAG,GAAG;AACnC,MAAM,oBAAoB,GAAG,UAAU;AACvC,MAAM,kBAAkB,GAAG,EAAE;AAC7B,MAAM,mBAAmB,GAAG,CAAC;AAC7B,MAAM,mBAAmB,GAAG,EAAE;AAC9B,MAAM,2BAA2B,GAAG,EAAE;AACtC,MAAM,oBAAoB,GAAG,KAAK;AAClC,MAAM,mBAAmB,GAAG,IAAI;AAChC,MAAM,oBAAoB,GAAG,KAAK;AAClC,MAAM,6BAA6B,GAAG,CAAC;AACvC,MAAM,gBAAgB,GAAG,KAAK,CAAC,IAAI,CACjC,EAAE,MAAM,EAAE,kBAAkB,EAAE,EAC9B,MAAM,mBAAmB,CAC1B;MAKY,uBAAuB,CAAA;AACjB,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;IACnC,aAAa,GAAyB,IAAI;IAC1C,WAAW,GAAuB,IAAI;IACtC,YAAY,GAAwB,IAAI;IACxC,WAAW,GAAsC,IAAI;IACrD,QAAQ,GAAwB,IAAI;IACpC,eAAe,GAAmC,IAAI;IACtD,sBAAsB,GAAkB,IAAI;IAC5C,oBAAoB,GAAG,CAAC,2BAA2B;IACnD,WAAW,GAAW,EAAE;IACxB,aAAa,GAA0C,IAAI;IAC3D,4BAA4B,GAA2B,IAAI;IAC3D,wBAAwB,GAAG,KAAK;IAChC,wBAAwB,GAAG,CAAC;IAC5B,iBAAiB,GAAG,KAAK;IACzB,SAAS,GAAG,CAAC;IACb,SAAS,GAAG,CAAC;IACb,gBAAgB,GAAG,CAAC;IACpB,MAAM,GAAoB,MAAM;IACvB,aAAa,GAAG,MAAM,CAAC,CAAC,GAAG,gBAAgB,CAAC,oFAAC;AAErD,IAAA,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE;AAEvD,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,WAAW;IACpC;AAEA,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,YAAY;IACrC;AAEA,IAAA,IAAI,cAAc,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,cAAc;IACvC;AAEA,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,MAAM;IAC/B;AAEA,IAAA,IAAI,eAAe,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB;IAC9B;AAEA,IAAA,MAAM,KAAK,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB;QACF;AAEA,QAAA,IACE,CAAC,SAAS,CAAC,YAAY,EAAE,YAAY;AACrC,YAAA,OAAO,aAAa,KAAK,WAAW,EACpC;AACA,YAAA,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC;QACtE;AAEA,QAAA,MAAM,SAAS,GAAG,EAAE,IAAI,CAAC,SAAS;QAClC,IAAI,CAAC,oBAAoB,EAAE;AAC3B,QAAA,IAAI,CAAC,MAAM,GAAG,YAAY;AAC1B,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzE,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;AAChC,gBAAA,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;gBACnD;YACF;AAEA,YAAA,MAAM,QAAQ,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,IAAI,KAC1C,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CACpC;AACD,YAAA,IAAI,CAAC,WAAW,GAAG,MAAM;AACzB,YAAA,IAAI,CAAC,WAAW,GAAG,EAAE;YACrB,IAAI,CAAC,aAAa,GAAG;AACnB,kBAAE,IAAI,aAAa,CAAC,MAAM,EAAE,EAAE,kBAAkB,EAAE,MAAM,EAAE,QAAQ,EAAE;AACpE,kBAAE,IAAI,aAAa,CAAC,MAAM,CAAC;YAC7B,IAAI,CAAC,aAAa,CAAC,gBAAgB,CACjC,eAAe,EACf,CAAC,KAAgB,KAAI;gBACnB,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,EAAE;oBACvB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACnC;AACF,YAAA,CAAC,CACF;AACD,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,uBAAuB,CAAC;AACjD,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;AAC1B,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE;AAC3B,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,YAAA,IAAI,CAAC,MAAM,GAAG,WAAW;YACzB,IAAI,CAAC,kBAAkB,EAAE;QAC3B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;gBAChC;YACF;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,gBAAgB,EAAE;AACvB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;AACpB,YAAA,MAAM,KAAK;QACb;IACF;AAEA,IAAA,MAAM,MAAM,GAAA;QACV,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AAC5C,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS;QAChC,IAAI,CAAC,cAAc,EAAE;QACrB,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;AACxB,QAAA,IAAI,CAAC,MAAM,GAAG,cAAc;QAE5B,IAAI,4BAA4B,GAA2B,IAAI;AAC/D,QAAA,IAAI;AACF,YAAA,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE;YACvC,IAAI,CAAC,eAAe,EAAE;AACtB,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;AAChC,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACf,gBAAA,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC;YAC3C;AACA,YAAA,IAAI,KAAK,CAAC,IAAI,GAAG,oBAAoB,EAAE;AACrC,gBAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;YAClE;YACA,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE;AAC5D,gBAAA,OAAO,EAAE;YACX;AAEA,YAAA,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE;AAC3B,YAAA,IAAI,CAAC,MAAM,CACT,MAAM,EACN,KAAK,EACL,CAAA,YAAA,EAAe,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAE,CAChD;AACD,YAAA,4BAA4B,GAAG,IAAI,eAAe,EAAE;AACpD,YAAA,IAAI,CAAC,4BAA4B,GAAG,4BAA4B;YAChE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,EAAE;gBAC7D,MAAM,EAAE,4BAA4B,CAAC,MAAM;AAC5C,aAAA,CAAC;AACF,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;AAChC,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;QAC/B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;AAChC,gBAAA,OAAO,IAAI;YACb;AACA,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AACxB,YAAA,MAAM,KAAK;QACb;gBAAU;AACR,YAAA,IAAI,IAAI,CAAC,4BAA4B,KAAK,4BAA4B,EAAE;AACtE,gBAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI;YAC1C;AACA,YAAA,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;gBAChC,IAAI,CAAC,KAAK,EAAE;YACd;QACF;IACF;AAEA,IAAA,MAAM,MAAM,GAAA;QACV,EAAE,IAAI,CAAC,SAAS;AAChB,QAAA,IAAI,CAAC,4BAA4B,EAAE,KAAK,EAAE;AAC1C,QAAA,IAAI,CAAC,4BAA4B,GAAG,IAAI;QACxC,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,YAAY,EAAE;QAC3B;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;QAC1B;gBAAU;YACR,IAAI,CAAC,KAAK,EAAE;QACd;IACF;IAEQ,YAAY,GAAA;AAClB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa;QACnC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QACpC;AACA,QAAA,IAAI,QAAQ,CAAC,KAAK,KAAK,UAAU,EAAE;AACjC,YAAA,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/D;QAEA,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,KAAI;YAC3C,MAAM,MAAM,GAAG,MAAK;AAClB,gBAAA,eAAe,EAAE;gBACjB,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAChD,YAAA,CAAC;AACD,YAAA,MAAM,OAAO,GAAG,CAAC,KAAY,KAAI;AAC/B,gBAAA,eAAe,EAAE;AACjB,gBAAA,MAAM,CACJ,OAAO,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,yBAAyB,CAAC,CACtE;AACH,YAAA,CAAC;YACD,MAAM,eAAe,GAAG,MAAK;AAC3B,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;AAC5C,gBAAA,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;AAChD,YAAA,CAAC;AAED,YAAA,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AACzD,YAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC3D,QAAQ,CAAC,IAAI,EAAE;AACjB,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,aAAa,CAAC,QAAgB,EAAA;AACpC,QAAA,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAChC,YAAA,IAAI,EAAE,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,YAAY;AAC5D,SAAA,CAAC;IACJ;IAEQ,kBAAkB,GAAA;QACxB,IAAI,CAAC,iBAAiB,EAAE;AACxB,QAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAC9B,MAAM,IAAI,CAAC,cAAc,EAAE,EAC3B,uBAAuB,CACxB;IACH;AAEQ,IAAA,aAAa,CAAC,MAAmB,EAAA;QACvC,IACE,OAAO,YAAY,KAAK,WAAW;AACnC,YAAA,OAAO,qBAAqB,KAAK,WAAW,EAC5C;YACA;QACF;AAEA,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE;YACtC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,uBAAuB,CAAC,MAAM,CAAC;YACpE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE;AAClD,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,GAAG;YAC3B,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;AAC5D,YAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI;AACpC,YAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YACtB,KAAK,IAAI,CAAC;AACP,iBAAA,MAAM;AACN,iBAAA,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC/C;QAAE,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YACxB,IAAI,CAAC,YAAY,EAAE;YACnB,IAAI,CAAC,oBAAoB,EAAE;QAC7B;IACF;AAEQ,IAAA,cAAc,CAAC,SAAiB,EAAA;QACtC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAC3C;QACF;QAEA,IAAI,SAAS,GAAG,IAAI,CAAC,oBAAoB,IAAI,2BAA2B,EAAE;YACxE,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,eAAe,CAAC;YACzD,IAAI,YAAY,GAAG,CAAC;AACpB,YAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,eAAe,EAAE;gBACzC,MAAM,cAAc,GAAG,CAAC,MAAM,GAAG,GAAG,IAAI,GAAG;AAC3C,gBAAA,YAAY,IAAI,cAAc,GAAG,cAAc;YACjD;AAEA,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC;AACjE,YAAA,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC;YAC/B,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC/B,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,oBAAoB,IAAI,mBAAmB,CAAC,CAChE;YACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAChD,MAAM,YAAY,GAChB,mBAAmB;AACnB,gBAAA,YAAY,IAAI,mBAAmB,GAAG,mBAAmB,CAAC;AAC5D,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,EAAE;AACzC,YAAA,MAAM,cAAc,GAClB,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,mBAAmB;AAC9D,YAAA,MAAM,SAAS,GAAG,YAAY,GAAG,cAAc,GAAG,GAAG,GAAG,GAAG;YAC3D,MAAM,UAAU,GACd,IAAI,CAAC,KAAK,CACR,CAAC,cAAc,GAAG,CAAC,YAAY,GAAG,cAAc,IAAI,SAAS,IAAI,EAAE,CACpE,GAAG,EAAE;AAER,YAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;AAC9D,YAAA,IAAI,CAAC,oBAAoB,GAAG,SAAS;QACvC;AAEA,QAAA,IAAI,CAAC,sBAAsB,GAAG,qBAAqB,CAAC,CAAC,aAAa,KAChE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CACnC;IACH;IAEQ,YAAY,CAAC,SAAS,GAAG,IAAI,EAAA;AACnC,QAAA,IACE,IAAI,CAAC,sBAAsB,KAAK,IAAI;AACpC,YAAA,OAAO,oBAAoB,KAAK,WAAW,EAC3C;AACA,YAAA,oBAAoB,CAAC,IAAI,CAAC,sBAAsB,CAAC;QACnD;AACA,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI;AAClC,QAAA,IAAI,CAAC,oBAAoB,GAAG,CAAC,2BAA2B;AACxD,QAAA,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE;AAC9B,QAAA,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE;AAC3B,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI;AAC3B,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY;AACtC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI;QACxB,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,KAAK,QAAQ,EAAE;YACnD,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACtE;QACA,IAAI,SAAS,EAAE;YACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAC/C;IACF;IAEQ,cAAc,GAAA;QACpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAC9B,CAAC,EACD,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CACjD;IACH;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC;AACjC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC3B;IACF;IAEQ,eAAe,GAAA;AACrB,QAAA,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE,CAAC;AAC9D,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI;IACzB;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,iBAAiB,EAAE;QACxB,IAAI,CAAC,YAAY,EAAE;QACnB,IAAI,CAAC,eAAe,EAAE;AACtB,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI;AACzB,QAAA,IAAI,CAAC,WAAW,GAAG,EAAE;QACrB,IAAI,CAAC,oBAAoB,EAAE;IAC7B;AAEQ,IAAA,qBAAqB,CAAC,GAAW,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B;QACF;AACA,QAAA,IAAI,CAAC,wBAAwB;AAC3B,YAAA,GAAG,IAAI,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,GAAG,CAAC,GAAG,CAAC;AACrE,QAAA,IAAI,CAAC,iBAAiB;AACpB,YAAA,IAAI,CAAC,wBAAwB,IAAI,6BAA6B;IAClE;IAEQ,oBAAoB,GAAA;AAC1B,QAAA,IAAI,CAAC,wBAAwB,GAAG,KAAK;AACrC,QAAA,IAAI,CAAC,wBAAwB,GAAG,CAAC;AACjC,QAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;IAChC;IAEQ,KAAK,GAAA;QACX,IAAI,CAAC,gBAAgB,EAAE;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC;AAClB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM;IACtB;AAEQ,IAAA,aAAa,CAAC,QAAgB,EAAA;AACpC,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,OAAO,KAAK;QACd;AACA,QAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AAC5B,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,MAAM;IACf;uGAlXW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cADV,MAAM,EAAA,CAAA;;2FACnB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCerB,qBAAqB,CAAA;AACL,IAAA,YAAY;IACrB,iBAAiB,GAAW,EAAE;AACvC,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAClE,IAAA,YAAY;AACZ,IAAA,OAAO;IACP,YAAY,GAAG,KAAK;AAEH,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;IACxC,kBAAkB,GAAG,EAAE;AAE/B,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;QAErD;aACG,OAAO,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,KAAK,CAAC;AAC/C,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,aAAA,SAAS,CAAC,CAAC,MAAM,MAAM,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAChE;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE;YACzC;QACF;QAEA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE;AACnC,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB;QACF;QACA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE;YACzC,YAAY,EAAE,IAAI,CAAC,YAAY;AAChC,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,OAAO,GAAG,EAAE;AACjB,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,GAAG,EAAE;AAC1C,YAAA,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,KAAK,EAAE;QACzC;IACF;IAEA,eAAe,GAAA;AACb,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY;IACxC;AAEA,IAAA,MAAM,UAAU,GAAA;QACd,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE;AAC5C,QAAA,IAAI;AACF,YAAA,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,EAAE;QAC5C;AAAE,QAAA,MAAM;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB;AACtC,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;QAC9B;IACF;AAEA,IAAA,MAAM,WAAW,CAAC,IAAI,GAAG,KAAK,EAAA;AAC5B,QAAA,IAAI;YACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;YAC9D,IAAI,UAAU,EAAE;AACd,gBAAA,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,UAAU;qBACvD,MAAM,CAAC,OAAO;qBACd,IAAI,CAAC,GAAG,CAAC;AACZ,gBAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;gBAC5B,IAAI,IAAI,EAAE;oBACR,IAAI,CAAC,WAAW,EAAE;gBACpB;YACF;AAAO,iBAAA,IAAI,UAAU,KAAK,EAAE,EAAE;AAC5B,gBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB;AACtC,gBAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;YAC9B;QACF;AAAE,QAAA,MAAM;AACN,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB;AACtC,YAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;QAC9B;gBAAU;YACR,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;AAEA,IAAA,MAAM,WAAW,GAAA;AACf,QAAA,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;AAC3C,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,kBAAkB;AACtC,QAAA,IAAI,CAAC,kBAAkB,GAAG,EAAE;QAC5B,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;IAChC;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,QAAQ,EAAE;AACzC,YAAA,KAAK,IAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE;QAC5C;IACF;IAEU,aAAa,GAAA;AACrB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe;QAC7D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,EAAE;AACrC,aAAA,QAAQ;AACR,aAAA,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACnB,QAAA,MAAM,OAAO,GAAG,CAAC,QAAQ,GAAG,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AAC3D,QAAA,OAAO,CAAA,EAAG,OAAO,CAAA,CAAA,EAAI,OAAO,EAAE;IAChC;IAEQ,iBAAiB,GAAA;AACvB,QAAA,UAAU,CAAC,MAAM,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;IAC5D;AAEU,IAAA,cAAc,CAAC,UAAkB,EAAA;AACzC,QAAA,IAAI,CAAC,OAAO,GAAG,UAAU;QACzB,IAAI,CAAC,WAAW,EAAE;IACpB;uGA9GW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3ClC,66IAoIA,EAAA,MAAA,EAAA,CAAA,uVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDzGI,YAAY,6HACZ,mBAAmB,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACX,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,wBAAwB,oOACxB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAMN,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAlBjC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,YAAY;wBACZ,mBAAmB;wBACnB,WAAW;wBACX,aAAa;wBACb,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,wBAAwB;wBACxB,gBAAgB;wBAChB,eAAe;wBACf,eAAe;AAChB,qBAAA,EAAA,QAAA,EACS,kBAAkB,EAAA,QAAA,EAAA,66IAAA,EAAA,MAAA,EAAA,CAAA,uVAAA,CAAA,EAAA;;sBAK3B,SAAS;uBAAC,cAAc;;sBACxB;;;AE1CH,SAAS,cAAc,CAAC,KAAU,EAAA;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,QAAQ,CAAC,KAAK,CAAC;AACrD;MAMa,SAAS,CAAA;AACpB,IAAA,SAAS,CAAC,KAAU,EAAA;AAClB,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE;AAC1B,YAAA,OAAO,KAAK;QACd;AACA,QAAA,OAAO,WAAW,CAAC,KAAK,CAAC;IAC3B;uGANW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAT,SAAS,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA;;2FAAT,SAAS,EAAA,UAAA,EAAA,CAAA;kBAJrB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;MCJY,cAAc,CAAA;AACzB,IAAA,SAAS,CAAC,KAAa,EAAE,IAAA,GAA8B,IAAI,EAAA;AACzD,QAAA,IAAI,KAAK;QACT,QAAQ,KAAK;AACX,YAAA,KAAK,IAAI;gBACP,KAAK;AACH,oBAAA,IAAI,KAAK;AACP,0BAAE;0BACA,IAAI,KAAK;AACT,8BAAE;8BACA,cAAc;gBACtB;AACF,YAAA,KAAK,SAAS;gBACZ,KAAK;AACH,oBAAA,IAAI,KAAK;AACP,0BAAE;0BACA,IAAI,KAAK;AACT,8BAAE;8BACA,eAAe;gBACvB;AACF,YAAA,KAAK,UAAU;gBACb,KAAK;AACH,oBAAA,IAAI,KAAK;AACP,0BAAE;0BACA,IAAI,KAAK;AACT,8BAAE;8BACA,YAAY;gBACpB;AACF,YAAA,KAAK,MAAM;gBACT,KAAK;AACH,oBAAA,IAAI,KAAK;AACP,0BAAE;0BACA,IAAI,KAAK;AACT,8BAAE;8BACA,aAAa;gBACrB;AACF,YAAA,KAAK,KAAK;gBACR,KAAK;AACH,oBAAA,IAAI,KAAK;AACP,0BAAE;0BACA,IAAI,KAAK;AACT,8BAAE;8BACA,aAAa;gBACrB;AACF,YAAA;AACE,gBAAA,OAAO,CAAC,KAAK,CAAC,oBAAoB,KAAK,CAAA,CAAE,CAAC;gBAC1C;;AAEJ,QAAA,OAAO,KAAK;IACd;uGAjDW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAd,cAAc,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,YAAY;AAClB,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;MCGY,WAAW,CAAA;AACtB,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,OAAO,mBAAmB,CAAC,KAAK,CAAC;IACnC;uGAHW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA;qGAAX,WAAW,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,SAAS;AACf,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,UAAU,EAAE,KAAK;AAClB,iBAAA;;;MCKY,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,EAAA,YAAA,EAAA,CAFT,SAAS,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,OAAA,EAAA,CAF3C,YAAY,CAAA,EAAA,OAAA,EAAA,CACZ,SAAS,EAAE,cAAc,EAAE,WAAW,CAAA,EAAA,CAAA;AAGrC,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,YAJd,YAAY,CAAA,EAAA,CAAA;;2FAIX,aAAa,EAAA,UAAA,EAAA,CAAA;kBALzB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC;AACjD,oBAAA,YAAY,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,WAAW,CAAC;AACvD,iBAAA;;;ACTD,MAAM,mBAAmB,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;AAElC,SAAU,mBAAmB,CACjC,MAA0C,EAAA;IAE1C,OAAO,mBAAmB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,KAAI;QAC9C,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC;AAC9B,QAAA,OAAO,GAAG;IACZ,CAAC,EAAE,EAAE,CAAC;AACR;;ACXM,SAAU,eAAe,CAAC,QAAgB,EAAA;IAC9C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,MAAM;IACf;AAEA,IAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAChC,QAAA,OAAO,YAAY;IACrB;AAAO,SAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvC,QAAA,OAAO,OAAO;IAChB;AAAO,SAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACtC,QAAA,OAAO,WAAW;IACpB;AAAO,SAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvC,QAAA,OAAO,YAAY;IACrB;SAAO;AACL,QAAA,QACE;AACE,YAAA,iBAAiB,EAAE,UAAU;AAC7B,YAAA,kBAAkB,EAAE,WAAW;AAC/B,YAAA,gBAAgB,EAAE,WAAW;AAC7B,YAAA,oBAAoB,EAAE,WAAW;AACjC,YAAA,kBAAkB,EAAE,UAAU;AAC9B,YAAA,wBAAwB,EAAE,WAAW;AACrC,YAAA,qBAAqB,EAAE,UAAU;AACjC,YAAA,6BAA6B,EAAE,UAAU;AACzC,YAAA,mBAAmB,EAAE,UAAU;AAC/B,YAAA,iBAAiB,EAAE,WAAW;AAC9B,YAAA,iBAAiB,EAAE,UAAU;AAC9B,SAAA,CAAC,QAAQ,CAAC,IAAI,MAAM;IAEzB;AACF;AAEM,SAAU,gBAAgB,CAAC,QAAgB,EAAA;IAC/C,IAAI,CAAC,QAAQ,EAAE;AACb,QAAA,OAAO,SAAS;IAClB;AAEA,IAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AAChC,QAAA,OAAO,OAAO;IAChB;AAAO,SAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvC,QAAA,OAAO,OAAO;IAChB;AAAO,SAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;AACtC,QAAA,OAAO,MAAM;IACf;AAAO,SAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;AACvC,QAAA,OAAO,OAAO;IAChB;SAAO;AACL,QAAA,QACE;AACE,YAAA,iBAAiB,EAAE,KAAK;AACxB,YAAA,kBAAkB,EAAE,MAAM;AAC1B,YAAA,gBAAgB,EAAE,MAAM;AACxB,YAAA,oBAAoB,EAAE,MAAM;AAC5B,YAAA,kBAAkB,EAAE,SAAS;AAC7B,YAAA,wBAAwB,EAAE,MAAM;AAChC,YAAA,qBAAqB,EAAE,SAAS;AAChC,YAAA,6BAA6B,EAAE,SAAS;AACxC,YAAA,mBAAmB,EAAE,SAAS;AAC9B,YAAA,iBAAiB,EAAE,MAAM;AACzB,YAAA,iBAAiB,EAAE,SAAS;AAC7B,SAAA,CAAC,QAAQ,CAAC,IAAI,SAAS;IAE5B;AACF;;AC3DM,SAAU,MAAM,CAAC,IAAmB,EAAE,IAAY,EAAA;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,CACrC,8BAA8B,EAC9B,GAAG,CACiB;AACtB,IAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;AAC7B,IAAA,MAAM,CAAC,QAAQ,GAAG,IAAI;AACtB,IAAA,MAAM,CAAC,GAAG,GAAG,UAAU;AAEvB,IAAA,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,QAAA,MAAM,CAAC,IAAI,GAAG,IAAI;QAClB,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;AACrC,YAAA,MAAM,CAAC,MAAM,GAAG,QAAQ;YACxB,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,EAAE;QAClE;aAAO;YACL,MAAM,CAAC,KAAK,EAAE;QAChB;IACF;SAAO;QACL,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC;AACvC,QAAA,UAAU,CAAC,MAAM,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;QACvD,UAAU,CAAC,MAAM,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACrC;AACF;AAEA,SAAS,WAAW,CAAC,GAAG,EAAA;AACtB,IAAA,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE;IAChC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC;AAC5B,IAAA,IAAI;QACF,GAAG,CAAC,IAAI,EAAE;IACZ;AAAE,IAAA,OAAO,CAAC,EAAE,EAAC;IACb,OAAO,GAAG,CAAC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG;AAC/C;AAEA,SAAS,QAAQ,CAAC,GAAW,EAAE,IAAY,EAAA;AACzC,IAAA,MAAM,GAAG,GAAG,IAAI,cAAc,EAAE;AAChC,IAAA,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;AACpB,IAAA,GAAG,CAAC,YAAY,GAAG,MAAM;IACzB,GAAG,CAAC,MAAM,GAAG,YAAA;AACX,QAAA,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC;AAC5B,IAAA,CAAC;IACD,GAAG,CAAC,IAAI,EAAE;AACZ;;MClBa,gBAAgB,CAAA;AAC3B,IAAA,OAAO;IACP,SAAS,GAAG,KAAK;AACjB,IAAA,UAAU;AACV,IAAA,UAAU;AACV,IAAA,KAAK;AACL,IAAA,QAAQ;AAES,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAC/B,IAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1B,IAAA,SAAS,GAAG,MAAM,CAAC,YAAY,CAAC;AAEjD,IAAA,WAAA,GAAA;AACE,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,eAAe,CAAC;AAEpC,QAAA,iBAAiB,CAAC,YAAY,GAAG,yBAAyB;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC;AACtC,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI;IACrB;AAEA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE;AACpB,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD;aAAO;AACL,YAAA,OAAO,IAAI;QACb;IACF;IAEA,QAAQ,GAAA;QACN,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,CAAA,CAAE,CAAC,CAAC;QAC1E,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,iBAAiB,EAAE;;QAEjD;aAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE;YACtD,IAAI,CAAC,WAAW,EAAE;QACpB;aAAO,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,EAAE;YACrD,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC7C,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI;YAC5C;QACF;IACF;IAEQ,WAAW,GAAA;QACjB,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE;YACtC;QACF;AACA,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;AAErB,QAAA,IAAI,CAAC;aACF,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,YAAY;AAC7C,aAAA,IAAI,CAAC,CAAC,IAAI,KAAI;AACb,YAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AACpD,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,CACrD,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CACjC;AACD,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,KAAK,KAAI;AACf,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;AACxB,YAAA,IAAI,CAAC,SAAS,GAAG,KAAK;AACxB,QAAA,CAAC,CAAC;IACN;uGA5DW,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B7B,6jEAmDA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDlCI,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,cAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,aAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,0BAA0B,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,IAAA,CAAA,6BAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,wBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,cAAA,EAAA,cAAA,EAAA,YAAA,EAAA,eAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,uBAAA,EAAA,iCAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,KAAA,EAAA,WAAA,EAAA,WAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,WAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,0BAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,gCAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,aAAA,EAAA,4BAAA,EAAA,0BAAA,EAAA,0BAAA,EAAA,4BAAA,EAAA,yBAAA,EAAA,0BAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,UAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,gBAAA,EAAA,oBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,mBAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,+BAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,sBAAA,EAAA,+BAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,6BAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKjB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAX5B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,0BAA0B;AAC3B,qBAAA,EAAA,QAAA,EACS,oBAAoB,EAAA,QAAA,EAAA,6jEAAA,EAAA;;;AECzB,MAAM,mBAAmB,GAAG,IAAI,cAAc,CACnD,qBAAqB,CACtB;AACM,MAAM,mBAAmB,GAAG,IAAI,cAAc,CACnD,qBAAqB,CACtB;AACM,MAAM,qBAAqB,GAAG,IAAI,cAAc,CACrD,uBAAuB,CACxB;MAeY,uBAAuB,CAAA;AAClC,IAAA,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC;AACxC,IAAA,YAAY,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAC5C,IAAA,UAAU,GAAG,MAAM,CAAC,mBAAmB,CAAC;IAErB,aAAa,GAAG,aAAa;AAE/B,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AACvC,IAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC7B,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE5D,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;IACxD;AAEA,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;IACxD;AAEA,IAAA,IAAI,KAAK,GAAA;QACP,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,QAAQ,EAAE;YAChD,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC;QAC7D;aAAO,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,KAAK,EAAE;YACpD,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,QAAiB,CAAC;QAClE;AACA,QAAA,OAAO,IAAI;IACb;IAEA,oBAAoB,GAAA;AAClB,QAAA,QAAQ,IAAI,CAAC,YAAY;YACvB,KAAK,aAAa,CAAC,KAAK;AACtB,gBAAA,OAAO,OAAO;YAChB,KAAK,aAAa,CAAC,UAAU;AAC3B,gBAAA,OAAO,MAAM;YACf,KAAK,aAAa,CAAC,QAAQ;gBACzB,OAAO,eAAe,CAAE,IAAI,CAAC,QAAoB,EAAE,QAAQ,CAAC;YAC9D,KAAK,aAAa,CAAC,KAAK;AACtB,gBAAA,OAAO,gBAAgB;YACzB,KAAK,aAAa,CAAC,IAAI;AACrB,gBAAA,OAAO,aAAa;YACtB,KAAK,aAAa,CAAC,aAAa;AAC9B,gBAAA,OAAO,MAAM;;IAEnB;IAEA,YAAY,GAAA;AACV,QAAA,QAAQ,IAAI,CAAC,YAAY;YACvB,KAAK,aAAa,CAAC,QAAQ;AACzB,gBAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACpC,oBAAoB;oBAClB,gBAAgB,CAAE,IAAI,CAAC,QAAoB,EAAE,QAAQ,CAAC,CACzD;YAEH,KAAK,aAAa,CAAC,UAAU;gBAC3B,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,WAAW,CAAC;AAErD,YAAA,KAAK,aAAa,CAAC,aAAa,EAAE;AAChC,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAwB;AAClD,gBAAA,MAAM,OAAO,GAAG,YAAY,EAAE,IAAI;AAClC,gBAAA,MAAM,UAAU,GAAG,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;AACrD,gBAAA,MAAM,YAAY,GAChB,CAAC,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AACrD,gBAAA,MAAM,SAAS,GAAG,YAAY,GAAG,UAAU,CAAC,kBAAkB,EAAE,GAAG,GAAG;AAEtE,gBAAA,QACE,SAAS;AACT,qBAAC,YAAY,EAAE,QAAQ,GAAG,CAAA,EAAA,EAAK,YAAY,CAAC,QAAQ,OAAO,GAAG,EAAE,CAAC;YAErE;AAEA,YAAA;gBACE,OAAO,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;;IAE/D;AAEA,IAAA,cAAc,CAAC,UAAmB,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAmB;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,gBAAgB,EAAE;AACpC,gBAAA,SAAS,EAAE,KAAK;AAChB,gBAAA,UAAU,EAAE,cAAc;AAC1B,gBAAA,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,UAAU,EAAE;AACjC,aAAA,CAAC;QACJ;IACF;IAEA,kBAAkB,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,aAAa,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjE,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAmB;YACxC,QACE,OAAO,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC;gBACrC,OAAO,CAAC,QAAQ,KAAK,iBAAiB;AACtC,gBAAA,OAAO,CAAC,QAAQ,KAAK,eAAe;QAExC;aAAO;AACL,YAAA,OAAO,KAAK;QACd;IACF;uGAjGW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,wEC/CpC,o5LA0JA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDtHI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACf,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,qXACf,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACxB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,eAAe,qPACf,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,WAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA;;2FAIJ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAbnC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,YAAY;wBACZ,eAAe;wBACf,aAAa;wBACb,eAAe;wBACf,wBAAwB;wBACxB,gBAAgB;wBAChB,eAAe;wBACf,aAAa;AACd,qBAAA,EAAA,QAAA,EAAA,o5LAAA,EAAA;;;MEOU,uBAAuB,CAAA;AACzB,IAAA,aAAa;AACb,IAAA,OAAO;AAEP,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;IAChD,eAAe,GAAG,eAAe;IACjC,gBAAgB,GAAG,gBAAgB;IACzB,aAAa,GAAG,aAAa;IACvC,gBAAgB,GAAU,EAAE;AAEpB,IAAA,YAAY,GAAG,IAAI,GAAG,EAAU;AACvB,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzB,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACpD,UAAU,GAAsB,IAAI;AAE5C,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YACtB,IAAI,CAAC,iBAAiB,EAAE;QAC1B;IACF;IAEQ,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,gBAAgB,GAAG,EAAE;AAC1B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE;QAEzB,IAAI,IAAI,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE;AAC3C,YAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,MAAM,CAClE,CAAC,GAAG,KAAI;gBACN,IAAI,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;AACjC,oBAAA,OAAO,KAAK;gBACd;gBACA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;AAC7B,gBAAA,OAAO,IAAI;AACb,YAAA,CAAC,CACF;QACH;IACF;IAEU,oBAAoB,CAC5B,QAAoD,EACpD,YAA2B,EAAA;QAE3B,QAAQ,YAAY;YAClB,KAAK,aAAa,CAAC,KAAK;AACtB,gBAAA,OAAO,OAAO;YAChB,KAAK,aAAa,CAAC,UAAU;AAC3B,gBAAA,OAAO,MAAM;YACf,KAAK,aAAa,CAAC,QAAQ;AACzB,gBAAA,OAAO,eAAe,CAAE,QAAoB,EAAE,QAAQ,CAAC;YACzD,KAAK,aAAa,CAAC,KAAK;AACtB,gBAAA,OAAO,gBAAgB;YACzB,KAAK,aAAa,CAAC,aAAa;AAC9B,gBAAA,OAAO,MAAM;YACf,KAAK,aAAa,CAAC,IAAI;AACrB,gBAAA,OAAO,aAAa;;IAE1B;AAEU,IAAA,WAAW,CAAC,QAAsB,EAAA;QAC1C,OAAO,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,QAAQ,CAAC;IAC1D;IAEU,YAAY,CACpB,QAAgC,EAChC,YAA2B,EAAA;QAE3B,QAAQ,YAAY;YAClB,KAAK,aAAa,CAAC,QAAQ;gBACzB,OAAO,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzD,KAAK,aAAa,CAAC,IAAI;gBACrB,OAAO,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,QAAgB,CAAC;YAC3D,KAAK,aAAa,CAAC,KAAK;gBACtB,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,QAAiB,CAAC;AAC7D,YAAA;AACE,gBAAA,OAAO,IAAI;;IAEjB;AAEA,IAAA,WAAW,CACT,KAAiB,EACjB,UAAkB,EAClB,YAA4B,EAC5B,UAAmB,EAAA;AAEnB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QAC1B;AAEA,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC3B,aAAA,QAAQ;AACR,aAAA,mBAAmB,CAAC,KAAK,CAAC,MAAqB;AAC/C,aAAA,aAAa,CAAC;AACb,YAAA;AACE,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACF,SAAA,CAAC;QAEJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,gBAAgB;AAChB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,kCAAkC;AAClD,SAAA,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC/B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAE;AACtD,gBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC1D,gBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAE;gBACtD,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE;AAC3D,aAAA;AACD,YAAA,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;AACvC,SAAA,CAAC;AACF,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAChC,uBAAuB,EACvB,IAAI,CAAC,gBAAgB,EACrB,QAAQ,CACT;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC5E;uGA3HW,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAvB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECnDpC,+iOAmJA,EAAA,MAAA,EAAA,CAAA,qLAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED5GI,kBAAkB,iZAClB,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACxB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,qPACf,aAAa,EAAA,CAAA,EAAA,CAAA;;2FAMJ,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAdnC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,kBAAkB;wBAClB,aAAa;wBACb,eAAe;wBACf,wBAAwB;wBACxB,aAAa;wBACb,eAAe;wBACf,aAAa;AACd,qBAAA,EAAA,QAAA,EACS,oBAAoB,EAAA,QAAA,EAAA,+iOAAA,EAAA,MAAA,EAAA,CAAA,qLAAA,CAAA,EAAA;;sBAK7B;;sBACA;;;MEWU,eAAe,CAAA;AACjB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAC/B,IAAA,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAClD,IAAA,SAAS;AAEsB,IAAA,QAAQ;AAEtB,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,IAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;AACzB,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;IACpD,UAAU,GAAsB,IAAI;IAEpC,YAAY,GAAG,KAAK;IACpB,aAAa,GAAG,KAAK;IACrB,aAAa,GAAG,CAAC;IACjB,oBAAoB,GAAG,KAAK;IAEpC,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;IAChD;IAEA,kBAAkB,GAAA;AAChB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY;;;AAIlD,QAAA,IAAI,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvC,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;QACzC;AACA,QAAA,IAAI,CAAC,aAAa,GAAG,YAAY;AAEjC,QAAA,IAAI,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE;YACrC,IAAI,CAAC,cAAc,EAAE;QACvB;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAClB;QACF;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;AAC3C,QAAA,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;;;;QAKnC,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE;AAChE,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;QAC3B;aAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AACtE,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE;QACzC;AAEA,QAAA,IAAI,CAAC,aAAa,GAAG,SAAS;IAChC;IAEQ,YAAY,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,OAAO,KAAK;QACd;AAEA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;AAC3C,QAAA,QACE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,IAAI,GAAG;IAE1E;IAEQ,cAAc,GAAA;AACpB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa;AAC3C,YAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;AAChC,YAAA,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY;AACxC,YAAA,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,SAAS;AACtC,YAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;QACnC;IACF;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;IAChC;AAEA,IAAA,WAAW,CACT,KAAiB,EACjB,UAAkB,EAClB,YAA4B,EAC5B,UAAmB,EAAA;AAEnB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;QAC1B;AAEA,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC;AAC3B,aAAA,QAAQ;AACR,aAAA,mBAAmB,CAAC,KAAK,CAAC,MAAqB;AAC/C,aAAA,aAAa,CAAC;YACb,EAAW,OAAO,EAAE,OAAO;AACzB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACF,SAAA,CAAC;QAEJ,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YACpC,gBAAgB;AAChB,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,kCAAkC;AAClD,SAAA,CAAC;AAEF,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAC/B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAE;AACtD,gBAAA,EAAE,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,YAAY,EAAE;AAC1D,gBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,UAAU,EAAE;gBACtD,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE;AAC3D,aAAA;AACD,YAAA,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,QAAQ;AACvC,SAAA,CAAC;AACF,QAAA,MAAM,MAAM,GAAG,IAAI,eAAe,CAChC,uBAAuB,EACvB,IAAI,CAAC,gBAAgB,EACrB,QAAQ,CACT;AACD,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC;AAC9B,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;IAC5E;AAEA,IAAA,cAAc,CAAC,KAAiB,EAAA;AAC9B,QAAA,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM;AAC5B,QAAA,IAAI,EAAE,OAAO,YAAY,iBAAiB,CAAC,EAAE;YAC3C;QACF;QACA,IAAI,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC;AACvC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;AACxB,YAAA,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;YAC9B,MAAM,WAAW,GAA2B,MAAM,CAAC,MAAM,CACvD,CAAC,GAAG,EAAE,KAAK,KAAI;AACb,gBAAA,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;AACrC,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK;AAChB,gBAAA,OAAO,GAAG;YACZ,CAAC,EACD,EAAE,CACH;YACD,IAAI,WAAW,CAAC,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE;gBACtC,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAC5C,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,WAAW,CAAC,GAAG,CAChC;gBACD,IAAI,OAAO,EAAE;AACX,oBAAA,MAAM,EAAE,UAAU,EAAE,GAAI,OAA4B,CAAC,aAAa;oBAClE,MAAM,SAAS,GAAG,UAAU,EAAE,IAAI,CAChC,CAAC,GAAG,KAAK,GAAG,CAAC,YAAY,KAAK,QAAQ,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,CAAC,CAC5D;AACD,oBAAA,IAAI,SAAS,EAAE,EAAE,EAAE;AACjB,wBAAA,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,SAAS;AACpC,wBAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,GAAG,EAAE;AACtC,wBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC;oBACjE;yBAAO;;;;oBAIP;gBACF;YACF;YACA,KAAK,CAAC,cAAc,EAAE;QACxB;IACF;AAEA;;;;;;;AAOG;AACH,IAAA,kBAAkB,CAAC,OAAuC,EAAA;AACxD,QAAA,MAAM,OAAO,GAAW,OAAO,CAAC,aAAa,EAAE,QAAQ;AACvD,QAAA,IAAI,gBAAgB;AACpB,QAAA,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,YAAA,OAAO,EAAE;QACX;AACA,QAAA,IAAI;AACF,YAAA,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAChC,wBAAwB,EACxB,CAAC,KAAK,EAAE,YAAY,EAAE,YAAY,KAAI;AACpC,gBAAA,MAAM,IAAI,GAAG,YAAY,IAAI,YAAY;gBACzC,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC;gBACjD,IAAI,CAAC,EAAE,EAAE;AACP,oBAAA,OAAO,IAAI;gBACb;gBACA,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,IAAI,CACtD,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,EAAE,CACvB;AACD,gBAAA,OAAO,SAAS,GAAG,KAAK,IAAI,CAAA,IAAA,EAAO,SAAS,CAAC,YAAY,CAAA,EAAA,CAAI,GAAG,IAAI;AACtE,YAAA,CAAC,CACF;QACH;QAAE,OAAO,CAAC,EAAE;YACV,gBAAgB,GAAG,OAAO;QAC5B;QACA,OAAO,gBAAgB,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE,KAAK,KAAI;YACtE,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC/B,IAAI,CAAC,GAAG,EAAE;AACR,gBAAA,OAAO,KAAK;YACd;AACA,YAAA,OAAO;AACJ,iBAAA,GAAG,CACF,CAAC,EAAE,KAAK,CAAA,UAAA,EAAa,EAAE,CAAA,QAAA,EAAW,EAAE,CAAA,KAAA,EAAQ,OAAO,CAAC,EAAE,cAAc;iBAErE,IAAI,CAAC,IAAI,CAAC;AACf,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,aAAa,CAAC,IAAS,EAAA;AACrB,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CACnD,CAAA,SAAA,EAAY,IAAI,CAAC,QAAQ,CAAA,CAAA,EAAI,IAAI,CAAC,MAAM,CAAA,CAAE,CAC3C;QACD,OAAO,aAAa,IAAI,IAAI;IAC9B;AAEA,IAAA,aAAa,CAAC,IAAI,EAAA;AAChB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC5C,CAAA,iBAAA,EAAoB,IAAI,CAAC,YAAY,CAAA,CAAE,CACxC;AACD,QAAA,QACE,MAAM,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,0BAA0B,CAAC;IAEzE;AAEA,IAAA,aAAa,CAAC,IAAI,EAAA;AAChB,QAAA,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACtC;QAAE,OAAO,CAAC,EAAE;AACV,YAAA,OAAO,IAAI;QACb;IACF;IAEA,YAAY,CAAC,SAAc,EAAE,WAAgB,EAAA;QAC3C,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC;IACvD;AAEA,IAAA,gBAAgB,CAAC,IAAa,EAAA;QAC5B,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,EAAE,IAAI,EAAE;IACzC;AAEA,IAAA,KAAK,CAAC,OAAyB,EAAA;QAC7B,IAAI,CAAC,OAAO,EAAE;YACZ;QACF;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,OAAO,CAAC;IACxC;IAEU,oBAAoB,CAC5B,QAAoD,EACpD,YAA2B,EAAA;QAE3B,QAAQ,YAAY;YAClB,KAAK,aAAa,CAAC,KAAK;AACtB,gBAAA,OAAO,OAAO;YAChB,KAAK,aAAa,CAAC,UAAU;AAC3B,gBAAA,OAAO,MAAM;YACf,KAAK,aAAa,CAAC,QAAQ;AACzB,gBAAA,OAAO,eAAe,CAAE,QAAoB,EAAE,QAAQ,CAAC;YACzD,KAAK,aAAa,CAAC,KAAK;AACtB,gBAAA,OAAO,gBAAgB;YACzB,KAAK,aAAa,CAAC,aAAa;AAC9B,gBAAA,OAAO,MAAM;YACf,KAAK,aAAa,CAAC,IAAI;AACrB,gBAAA,OAAO,aAAa;;IAE1B;IAEmB,IAAI,GAAG,IAAI;IACX,QAAQ,GAAG,QAAQ;IACnB,iBAAiB,GAAG,iBAAiB;IACrC,sBAAsB,GAAG,sBAAsB;IAC/C,aAAa,GAAG,aAAa;uGApRrC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,WAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChE5B,iqVA4QA,EAAA,MAAA,EAAA,CAAA,klBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED3NI,kBAAkB,+BAClB,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,0BAAA,EAAA,yBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,cAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,aAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,eAAe,8BACf,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,mCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,aAAA,CAAA,EAAA,QAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACxB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,4BAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,yBAAA,EAAA,YAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,uBAAuB,oGACvB,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,aAAa,EAAA,CAAA,EAAA,CAAA;;2FAMJ,eAAe,EAAA,UAAA,EAAA,CAAA;kBAjB3B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,kBAAkB;wBAClB,aAAa;wBACb,cAAc;wBACd,eAAe;wBACf,wBAAwB;wBACxB,gBAAgB;wBAChB,uBAAuB;wBACvB,aAAa;wBACb,eAAe;wBACf,aAAa;AACd,qBAAA,EAAA,QAAA,EACS,WAAW,EAAA,QAAA,EAAA,iqVAAA,EAAA,MAAA,EAAA,CAAA,klBAAA,CAAA,EAAA;;sBAUpB,SAAS;uBAAC,UAAU;;;AE1DhB,MAAM,YAAY,GAAG;AAC1B,IAAA,EAAE,EAAE;AACF,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,mBAAmB,EAAE,qBAAqB;AAC1C,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,oBAAoB,EAAE,sBAAsB;AAC5C,QAAA,gBAAgB,EAAE,kBAAkB;AACpC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,EAAE,EAAE;AACF,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,aAAa,EACX,sKAAsK;AACxK,YAAA,iBAAiB,EAAE,mBAAmB;AACtC,YAAA,cAAc,EAAE,8BAA8B;AAC9C,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,eAAe,EAAE,8BAA8B;AAC/C,YAAA,QAAQ,EAAE,aAAa;AACvB,YAAA,kBAAkB,EAAE,oBAAoB;AACxC,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,aAAa,EAAE,eAAe;AAC9B,YAAA,0BAA0B,EAAE,4BAA4B;AACxD,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,aAAa,EAAE,uBAAuB;AACtC,YAAA,YAAY,EACV,kEAAkE;AACpE,YAAA,cAAc,EAAE,2CAA2C;AAC3D,YAAA,aAAa,EAAE,eAAe;AAC9B,YAAA,sBAAsB,EAAE,wBAAwB;AAChD,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,eAAe,EAAE,iBAAiB;AAClC,YAAA,gBAAgB,EAAE,2CAA2C;AAC7D,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,mBAAmB,EACjB,oJAAoJ;AACtJ,YAAA,2BAA2B,EAAE,4CAA4C;AACzE,YAAA,iBAAiB,EACf,kEAAkE;AACpE,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,qBAAqB,EAAE,uBAAuB;AAC9C,YAAA,qBAAqB,EAAE,uBAAuB;AAC9C,YAAA,yBAAyB,EAAE,2BAA2B;AACtD,YAAA,yBAAyB,EAAE,2BAA2B;AACtD,YAAA,oBAAoB,EAAE,6BAA6B;AACnD,YAAA,yBAAyB,EACvB,uDAAuD;AACzD,YAAA,sBAAsB,EAAE,wBAAwB;AAChD,YAAA,sBAAsB,EAAE,wBAAwB;AAChD,YAAA,SAAS,EAAE;AACT,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,GAAG,EAAE,KAAK;AACV,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,KAAK,EAAE,OAAO;AACf,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,gBAAgB,EACd,qGAAqG;AACvG,gBAAA,KAAK,EAAE,+CAA+C;AACtD,gBAAA,MAAM,EACJ,mFAAmF;AACrF,gBAAA,OAAO,EAAE,+CAA+C;AACzD,aAAA;AACD,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,mBAAmB,EAAE,QAAQ;AAC7B,YAAA,mBAAmB,EAAE,QAAQ;AAC7B,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,wBAAwB,EAAE,aAAa;AACvC,YAAA,OAAO,EAAE,sBAAsB;AAC/B,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,aAAa,EAAE,eAAe;AAC9B,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,WAAW,EAAE,iBAAiB;AAC9B,YAAA,aAAa,EAAE,eAAe;AAC9B,YAAA,WAAW,EAAE,aAAa;AAC1B,YAAA,iBAAiB,EACf,kIAAkI;AACpI,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,kBAAkB,EAAE;AAClB,gBAAA,YAAY,EAAE;AACZ,oBAAA,MAAM,EAAE,kDAAkD;AAC1D,oBAAA,KAAK,EAAE,YAAY;AACpB,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EACJ,+DAA+D;AACjE,oBAAA,KAAK,EAAE,cAAc;AACtB,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,sCAAsC;AAC/C,gBAAA,QAAQ,EAAE,gDAAgD;AAC1D,gBAAA,KAAK,EAAE,sDAAsD;AAC7D,gBAAA,IAAI,EAAE,ycAAyc;AAC/c,gBAAA,QAAQ,EAAE,0DAA0D;AACpE,gBAAA,MAAM,EAAE,oDAAoD;AAC7D,aAAA;AACD,YAAA,mBAAmB,EAAE,qBAAqB;AAC1C,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,kBAAkB,EAAE,qBAAqB;AACzC,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,oBAAoB,EAAE,yBAAyB;AAC/C,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,gBAAgB,EAAE,kBAAkB;AACpC,YAAA,gBAAgB,EAAE,qBAAqB;AACvC,YAAA,kBAAkB,EAAE,2CAA2C;AAC/D,YAAA,wBAAwB,EAAE,iBAAiB;AAC3C,YAAA,oBAAoB,EAClB,2DAA2D;AAC7D,YAAA,kBAAkB,EAChB,qFAAqF;AACvF,YAAA,iBAAiB,EAAE,+CAA+C;AAClE,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,wBAAwB,EAAE,6BAA6B;AACvD,YAAA,0BAA0B,EAAE,oBAAoB;AAChD,YAAA,KAAK,EAAE;AACL,gBAAA,mBAAmB,EAAE;AACnB,oBAAA,SAAS,EAAE,mCAAmC;AAC9C,oBAAA,MAAM,EAAE,0BAA0B;AAClC,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,sBAAsB;AACnC,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,SAAS,EAAE,mBAAmB;AAC9B,oBAAA,MAAM,EAAE,4BAA4B;AACpC,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,UAAU,EAAE,gBAAgB;AAC7B,iBAAA;AACD,gBAAA,WAAW,EAAE;AACX,oBAAA,SAAS,EAAE,mBAAmB;AAC9B,oBAAA,MAAM,EAAE,4BAA4B;AACpC,oBAAA,OAAO,EAAE,gBAAgB;AACzB,oBAAA,UAAU,EAAE,gBAAgB;AAC7B,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,SAAS,EAAE,oBAAoB;AAC/B,oBAAA,MAAM,EAAE,6BAA6B;AACrC,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,SAAS,EAAE,oBAAoB;AAC/B,oBAAA,MAAM,EAAE,6BAA6B;AACrC,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,SAAS,EAAE,oBAAoB;AAC/B,oBAAA,MAAM,EAAE,6BAA6B;AACrC,oBAAA,OAAO,EAAE,oBAAoB;AAC7B,oBAAA,UAAU,EAAE,oBAAoB;AACjC,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,SAAS,EAAE,sBAAsB;AACjC,oBAAA,MAAM,EAAE,8BAA8B;AACtC,oBAAA,OAAO,EAAE,qBAAqB;AAC9B,oBAAA,UAAU,EAAE,qBAAqB;AAClC,iBAAA;AACD,gBAAA,yBAAyB,EAAE;AACzB,oBAAA,SAAS,EAAE,+BAA+B;AAC1C,oBAAA,MAAM,EAAE,wCAAwC;AAChD,oBAAA,OAAO,EAAE,4BAA4B;AACrC,oBAAA,UAAU,EAAE,4BAA4B;AACzC,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,SAAS,EAAE,0BAA0B;AACrC,oBAAA,MAAM,EAAE,mCAAmC;AAC3C,oBAAA,OAAO,EAAE,uBAAuB;AAChC,oBAAA,UAAU,EAAE,uBAAuB;AACpC,iBAAA;AACD,gBAAA,mBAAmB,EAAE;AACnB,oBAAA,SAAS,EAAE,iCAAiC;AAC5C,oBAAA,MAAM,EAAE,0CAA0C;AAClD,oBAAA,OAAO,EAAE,8BAA8B;AACvC,oBAAA,UAAU,EAAE,8BAA8B;AAC3C,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,SAAS,EAAE,+BAA+B;AAC1C,oBAAA,MAAM,EAAE,wCAAwC;AAChD,oBAAA,OAAO,EAAE,4BAA4B;AACrC,oBAAA,UAAU,EAAE,4BAA4B;AACzC,iBAAA;AACD,gBAAA,qBAAqB,EAAE;AACrB,oBAAA,SAAS,EAAE,sCAAsC;AACjD,oBAAA,MAAM,EAAE,mCAAmC;AAC3C,oBAAA,OAAO,EAAE,+BAA+B;AACxC,oBAAA,UAAU,EAAE,+BAA+B;AAC5C,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,SAAS,EAAE,iCAAiC;AAC5C,oBAAA,MAAM,EAAE,8BAA8B;AACtC,oBAAA,OAAO,EAAE,0BAA0B;AACnC,oBAAA,UAAU,EAAE,0BAA0B;AACvC,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,SAAS,EAAE,4BAA4B;AACvC,oBAAA,MAAM,EAAE,yBAAyB;AACjC,oBAAA,OAAO,EAAE,qBAAqB;AAC9B,oBAAA,UAAU,EAAE,qBAAqB;AAClC,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AACpB,oBAAA,SAAS,EAAE,4BAA4B;AACvC,oBAAA,MAAM,EAAE,yBAAyB;AACjC,oBAAA,OAAO,EAAE,qBAAqB;AAC9B,oBAAA,UAAU,EAAE,qBAAqB;AAClC,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AACpB,oBAAA,SAAS,EAAE,oCAAoC;AAC/C,oBAAA,MAAM,EAAE,iCAAiC;AACzC,oBAAA,OAAO,EAAE,6BAA6B;AACtC,oBAAA,UAAU,EAAE,6BAA6B;AAC1C,iBAAA;AACD,gBAAA,2BAA2B,EAAE;AAC3B,oBAAA,SAAS,EAAE,6BAA6B;AACxC,oBAAA,MAAM,EAAE,0BAA0B;AAClC,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,sBAAsB;AACnC,iBAAA;AACD,gBAAA,kBAAkB,EAAE;AAClB,oBAAA,SAAS,EAAE,gCAAgC;AAC3C,oBAAA,MAAM,EAAE,6BAA6B;AACrC,oBAAA,OAAO,EAAE,yBAAyB;AAClC,oBAAA,UAAU,EAAE,yBAAyB;AACtC,iBAAA;AACD,gBAAA,eAAe,EAAE;AACf,oBAAA,SAAS,EAAE,6BAA6B;AACxC,oBAAA,MAAM,EAAE,0BAA0B;AAClC,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,sBAAsB;AACnC,iBAAA;AACD,gBAAA,sBAAsB,EAAE;AACtB,oBAAA,SAAS,EAAE,gCAAgC;AAC3C,oBAAA,MAAM,EAAE,6BAA6B;AACrC,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,UAAU,EAAE,wBAAwB;AACrC,iBAAA;AACF,aAAA;AACD,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,mBAAmB,EAAE,qBAAqB;AAC1C,YAAA,UAAU,EAAE,YAAY;AACzB,SAAA;AACD,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,UAAU,EAAE,mBAAmB;AAC/B,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,IAAI,EAAE,cAAc;AACpB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,kBAAkB,EAAE,oBAAoB;AACxC,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,kBAAkB,EAAE,oBAAoB;AACxC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,qBAAqB,EAAE,uBAAuB;AAC9C,QAAA,iBAAiB,EAAE,oCAAoC;AACvD,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,aAAa,EAAE;AACb,YAAA,iBAAiB,EAAE,oBAAoB;AACvC,YAAA,iBAAiB,EAAE,oBAAoB;AACvC,YAAA,kBAAkB,EAAE,iBAAiB;AACrC,YAAA,iBAAiB,EAAE,QAAQ;AAC3B,YAAA,sBAAsB,EAAE,MAAM;AAC9B,YAAA,oBAAoB,EAAE,gBAAgB;AACtC,YAAA,wCAAwC,EACtC,iCAAiC;AACnC,YAAA,yCAAyC,EACvC,gCAAgC;AAClC,YAAA,wBAAwB,EAAE,kBAAkB;AAC5C,YAAA,wBAAwB,EACtB,6FAA6F;AAChG,SAAA;AACD,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,iBAAiB,EAAE,iBAAiB;AACpC,QAAA,cAAc,EAAE,qBAAqB;AACrC,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,WAAW,EAAE,oBAAoB;AACjC,QAAA,wBAAwB,EAAE,iDAAiD;AAC3E,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,qBAAqB,EAAE,qBAAqB;AAC5C,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,eAAe,EAAE,iBAAiB;AAClC,YAAA,WAAW,EAAE,2BAA2B;AACxC,YAAA,MAAM,EAAE,oBAAoB;AAC7B,SAAA;AACD,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,gBAAgB,EAAE,kBAAkB;AACpC,QAAA,qBAAqB,EAAE,uBAAuB;AAC9C,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,eAAe,EACb,oFAAoF;AACtF,YAAA,cAAc,EAAE,gBAAgB;AAChC,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE;AACT,oBAAA,WAAW,EACT,0VAA0V;AAC5V,oBAAA,KAAK,EAAE,mBAAmB;AAC3B,iBAAA;AACD,gBAAA,SAAS,EAAE;AACT,oBAAA,WAAW,EACT,oOAAoO;AACtO,oBAAA,KAAK,EAAE,mBAAmB;AAC3B,iBAAA;AACF,aAAA;AACD,YAAA,YAAY,EACV,uLAAuL;AACzL,YAAA,qBAAqB,EACnB,wWAAwW;AAC1W,YAAA,iBAAiB,EAAE,gCAAgC;AACnD,YAAA,yBAAyB,EAAE,2BAA2B;AACtD,YAAA,eAAe,EAAE,iBAAiB;AAClC,YAAA,YAAY,EAAE,cAAc;AAC5B,YAAA,kBAAkB,EAAE,oBAAoB;AACxC,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,gBAAgB,EAAE,kBAAkB;AACrC,SAAA;AACD,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,mBAAmB,EAAE;AACnB,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,KAAK,EAAE,OAAO;AACf,SAAA;AAED,QAAA,sBAAsB,EAAE,cAAc;AACtC,QAAA,cAAc,EAAE,MAAM;AACtB,QAAA,mCAAmC,EAAE,wBAAwB;AAC7D,QAAA,sCAAsC,EAAE,6BAA6B;AACrE,QAAA,wCAAwC,EACtC,kCAAkC;AACpC,QAAA,sBAAsB,EAAE,kBAAkB;AAC1C,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,oBAAoB,EAAE,sBAAsB;AAC5C,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,eAAe,EAAE,oBAAoB;AACrC,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,uBAAuB,EAAE,gBAAgB;AACzC,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,mBAAmB,EAAE,qBAAqB;AAC1C,QAAA,cAAc,EAAE;AACd,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EACZ,mGAAmG;AACrG,gBAAA,qBAAqB,EACnB,uEAAuE;AAC1E,aAAA;AACD,YAAA,aAAa,EAAE,mBAAmB;AAClC,YAAA,QAAQ,EACN,gEAAgE;AAClE,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EACZ,+IAA+I;AAClJ,aAAA;AACF,SAAA;AACD,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,gBAAgB,EAAE,kBAAkB;AACpC,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,SAAS,EAAE,wBAAwB;AACnC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,aAAa,EAAE,uBAAuB;AACtC,QAAA,oBAAoB,EAAE,gCAAgC;AACtD,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,cAAc,EAAE,iBAAiB;AACjC,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,aAAa,EAAE,gBAAgB;AAC/B,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,oBAAoB,EAAE,qBAAqB;AAC3C,QAAA,kBAAkB,EAAE,0BAA0B;AAC9C,QAAA,gBAAgB,EAAE,oBAAoB;AACtC,QAAA,uBAAuB,EAAE,+BAA+B;AACxD,QAAA,oBAAoB,EAAE,4BAA4B;AAClD,QAAA,mBAAmB,EAAE,uBAAuB;AAC5C,QAAA,sBAAsB,EAAE,0BAA0B;AAClD,QAAA,gBAAgB,EAAE,sCAAsC;AACxD,QAAA,iBAAiB,EAAE,mDAAmD;AACtE,QAAA,qBAAqB,EAAE,4CAA4C;AACnE,QAAA,qBAAqB,EAAE,wCAAwC;AAC/D,QAAA,eAAe,EAAE,mBAAmB;AACpC,QAAA,uBAAuB,EACrB,6EAA6E;AAC/E,QAAA,eAAe,EAAE,gDAAgD;AACjE,QAAA,qBAAqB,EACnB,sDAAsD;AACxD,QAAA,mBAAmB,EAAE,mBAAmB;AACxC,QAAA,uBAAuB,EACrB,sEAAsE;AACxE,QAAA,qBAAqB,EAAE,qBAAqB;AAC5C,QAAA,sBAAsB,EAAE,0BAA0B;AAClD,QAAA,sBAAsB,EAAE,iCAAiC;AACzD,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,iBAAiB,EAAE,6BAA6B;AAChD,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,WAAW,EAAE,2BAA2B;AACxC,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,mBAAmB,EAAE,qBAAqB;AAC1C,QAAA,+BAA+B,EAC7B,6DAA6D;AAC/D,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,6BAA6B,EAC3B,0DAA0D;AAC5D,QAAA,oDAAoD,EAClD,2BAA2B;AAC7B,QAAA,sDAAsD,EAAE,kBAAkB;AAC1E,QAAA,gEAAgE,EAC9D,kCAAkC;AACpC,QAAA,2CAA2C,EAAE,6BAA6B;AAC1E,QAAA,6CAA6C,EAAE,sBAAsB;AACrE,QAAA,gEAAgE,EAC9D,yCAAyC;AAC3C,QAAA,sDAAsD,EACpD,4BAA4B;AAC9B,QAAA,uDAAuD,EACrD,+BAA+B;AACjC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,mBAAmB,EAAE,4BAA4B;AACjD,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,yBAAyB,EACvB,6EAA6E;AAC/E,QAAA,kBAAkB,EAChB,4DAA4D;AAC9D,QAAA,cAAc,EAAE,uDAAuD;AACvE,QAAA,mBAAmB,EACjB,wDAAwD;AAC1D,QAAA,YAAY,EAAE,qDAAqD;AACnE,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,YAAY,EAAE,KAAK;AACnB,QAAA,aAAa,EAAE,KAAK;AACpB,QAAA,WAAW,EAAE,KAAK;AAClB,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,SAAS,EAAE,MAAM;AACjB,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,0BAA0B,EAAE,OAAO;AACnC,QAAA,4BAA4B,EAAE,4BAA4B;AAC1D,QAAA,iCAAiC,EAAE,2BAA2B;AAC9D,QAAA,yBAAyB,EAAE,MAAM;AACjC,QAAA,6BAA6B,EAAE,kBAAkB;AACjD,QAAA,yBAAyB,EAAE,cAAc;AACzC,QAAA,kBAAkB,EAAE,oBAAoB;AACxC,QAAA,uBAAuB,EAAE,8BAA8B;AACvD,QAAA,2BAA2B,EAAE,gBAAgB;AAC7C,QAAA,oBAAoB,EAAE,uBAAuB;AAC7C,QAAA,qBAAqB,EAAE,wBAAwB;AAC/C,QAAA,gBAAgB,EAAE,mBAAmB;AACrC,QAAA,iBAAiB,EAAE,oBAAoB;AACvC,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,qBAAqB,EAAE,qBAAqB;AAC5C,QAAA,kCAAkC,EAAE,kCAAkC;AACtE,QAAA,6BAA6B,EAAE,+BAA+B;AAC9D,QAAA,2BAA2B,EACzB,0FAA0F;AAC5F,QAAA,qBAAqB,EAAE,uBAAuB;AAC9C,QAAA,uCAAuC,EACrC,wLAAwL;AAC1L,QAAA,oBAAoB,EAAE,sBAAsB;AAC5C,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,KAAK,EAAE;AACL,YAAA,eAAe,EAAE,iDAAiD;AAClE,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,eAAe,EAAE,wCAAwC;AAC1D,SAAA;AACD,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,cAAc,EAAE,gBAAgB;AAChC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,gBAAgB,EAAE,kBAAkB;AACpC,QAAA,6BAA6B,EAAE,qCAAqC;AACpE,QAAA,sBAAsB,EAAE,wBAAwB;AAChD,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,aAAa,EAAE,aAAa;AAC5B,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,gBAAgB,EACd,wKAAwK;AAC1K,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,wBAAwB,EACtB,4HAA4H;AAC9H,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,SAAS,EACP,gFAAgF;AAClF,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,gBAAgB,EAAE,+BAA+B;AACjD,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,mBAAmB,EAAE,kBAAkB;AACvC,QAAA,kBAAkB,EAAE,uBAAuB;AAC3C,QAAA,aAAa,EAAE,kBAAkB;AACjC,QAAA,eAAe,EAAE,mBAAmB;AACpC,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,UAAU,EAAE,sBAAsB;AAClC,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,iBAAiB,EAAE,aAAa;AAChC,QAAA,gBAAgB,EAAE,gBAAgB;AAClC,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,uBAAuB,EAAE,+BAA+B;AACxD,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,gBAAgB,EAAE,kBAAkB;AACpC,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,mBAAmB,EAAE,qBAAqB;AAC1C,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,+BAA+B,EAAE,uCAAuC;AACxE,QAAA,iCAAiC,EAAE,iCAAiC;AACpE,QAAA,iCAAiC,EAC/B,2CAA2C;AAC7C,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,wBAAwB,EACtB,kDAAkD;AACpD,QAAA,sBAAsB,EAAE,gDAAgD;AACxE,QAAA,oBAAoB,EAAE,mBAAmB;AACzC,QAAA,wBAAwB,EAAE,yBAAyB;AACnD,QAAA,sBAAsB,EAAE,+BAA+B;AACvD,QAAA,yBAAyB,EAAE,uCAAuC;AAClE,QAAA,2BAA2B,EAAE,2BAA2B;AACxD,QAAA,qBAAqB,EAAE,6BAA6B;AACpD,QAAA,6BAA6B,EAAE,uCAAuC;AACtE,QAAA,qBAAqB,EAAE,0BAA0B;AACjD,QAAA,qBAAqB,EAAE,sBAAsB;AAC7C,QAAA,0BAA0B,EAAE,6CAA6C;AACzE,QAAA,4BAA4B,EAAE,4BAA4B;AAC1D,QAAA,sCAAsC,EACpC,yCAAyC;AAC3C,QAAA,wBAAwB,EAAE,yBAAyB;AACnD,QAAA,qBAAqB,EAAE,sBAAsB;AAC7C,QAAA,wBAAwB,EAAE,yBAAyB;AACnD,QAAA,uBAAuB,EAAE,wBAAwB;AACjD,QAAA,+BAA+B,EAAE,+BAA+B;AAChE,QAAA,oCAAoC,EAClC,gDAAgD;AAClD,QAAA,4BAA4B,EAAE,sCAAsC;AACpE,QAAA,qBAAqB,EAAE,yBAAyB;AAChD,QAAA,6BAA6B,EAC3B,2FAA2F;AAC7F,QAAA,+BAA+B,EAAE,yCAAyC;AAC1E,QAAA,0BAA0B,EAAE,2BAA2B;AACvD,QAAA,uBAAuB,EACrB,mFAAmF;AACrF,QAAA,2BAA2B,EACzB,8DAA8D;AAChE,QAAA,yBAAyB,EAAE,2BAA2B;AACtD,QAAA,mCAAmC,EACjC,wCAAwC;AAC1C,QAAA,4CAA4C,EAC1C,wCAAwC;AAC1C,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,0BAA0B,EACxB,+DAA+D;AACjE,QAAA,wBAAwB,EACtB,6DAA6D;AAC/D,QAAA,sBAAsB,EAAE,kCAAkC;AAC1D,QAAA,6BAA6B,EAAE,iBAAiB;AAChD,QAAA,+BAA+B,EAC7B,yEAAyE;AAC3E,QAAA,4BAA4B,EAAE,kBAAkB;AAChD,QAAA,yBAAyB,EACvB,yFAAyF;AAC3F,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,+BAA+B,EAC7B,sDAAsD;AACxD,QAAA,4BAA4B,EAAE,8BAA8B;AAC5D,QAAA,8BAA8B,EAC5B,4EAA4E;AAC9E,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,GAAG,EAAE,QAAQ;AACb,QAAA,WAAW,EACT,iIAAiI;AACnI,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,uBAAuB,EACrB,2EAA2E;AAC7E,QAAA,gBAAgB,EACd,8DAA8D;AAChE,QAAA,YAAY,EAAE,6DAA6D;AAC3E,QAAA,iBAAiB,EAAE,sCAAsC;AACzD,QAAA,UAAU,EAAE,mDAAmD;AAC/D,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,cAAc,EACZ,iEAAiE;AACpE,KAAA;AACD,IAAA,EAAE,EAAE;AACF,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,iBAAiB,EAAE,oBAAoB;AACvC,QAAA,mBAAmB,EAAE,wBAAwB;AAC7C,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,cAAc,EAAE,mBAAmB;AACnC,QAAA,aAAa,EAAE,qBAAqB;AACpC,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,cAAc,EAAE,2BAA2B;AAC3C,QAAA,oBAAoB,EAAE,8BAA8B;AACpD,QAAA,gBAAgB,EAAE,+BAA+B;AACjD,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,cAAc,EAAE,YAAY;AAC5B,QAAA,EAAE,EAAE;AACF,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,MAAM,EAAE,aAAa;AACrB,YAAA,WAAW,EAAE,gBAAgB;AAC7B,YAAA,aAAa,EACX,gMAAgM;AAClM,YAAA,iBAAiB,EAAE,uBAAuB;AAC1C,YAAA,cAAc,EAAE,mCAAmC;AACnD,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,eAAe,EAAE,kCAAkC;AACnD,YAAA,QAAQ,EAAE,cAAc;AACxB,YAAA,kBAAkB,EAAE,oBAAoB;AACxC,YAAA,UAAU,EAAE,aAAa;AACzB,YAAA,YAAY,EAAE,eAAe;AAC7B,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,aAAa,EAAE,iBAAiB;AAChC,YAAA,0BAA0B,EAAE,mCAAmC;AAC/D,YAAA,OAAO,EAAE,wBAAwB;AACjC,YAAA,aAAa,EAAE,kBAAkB;AACjC,YAAA,YAAY,EAAE,iDAAiD;AAC/D,YAAA,cAAc,EAAE,8CAA8C;AAC9D,YAAA,aAAa,EAAE,iBAAiB;AAChC,YAAA,sBAAsB,EAAE,4BAA4B;AACpD,YAAA,OAAO,EAAE,SAAS;AAClB,YAAA,eAAe,EAAE,sBAAsB;AACvC,YAAA,gBAAgB,EAAE,2CAA2C;AAC7D,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,WAAW,EAAE,cAAc;AAC3B,YAAA,WAAW,EAAE,iBAAiB;AAC9B,YAAA,mBAAmB,EACjB,sJAAsJ;AACxJ,YAAA,2BAA2B,EACzB,8CAA8C;AAChD,YAAA,iBAAiB,EACf,yEAAyE;AAC3E,YAAA,QAAQ,EAAE,UAAU;AACpB,YAAA,EAAE,EAAE,SAAS;AACb,YAAA,qBAAqB,EAAE,mCAAmC;AAC1D,YAAA,qBAAqB,EAAE,mCAAmC;AAC1D,YAAA,yBAAyB,EAAE,wCAAwC;AACnE,YAAA,yBAAyB,EAAE,0CAA0C;AACrE,YAAA,oBAAoB,EAAE,0CAA0C;AAChE,YAAA,yBAAyB,EACvB,+EAA+E;AACjF,YAAA,sBAAsB,EAAE,wCAAwC;AAChE,YAAA,sBAAsB,EAAE,yCAAyC;AACjE,YAAA,SAAS,EAAE;AACT,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,KAAK,EAAE,OAAO;AACd,gBAAA,KAAK,EAAE,MAAM;AACb,gBAAA,GAAG,EAAE,KAAK;AACV,gBAAA,IAAI,EAAE,MAAM;AACZ,gBAAA,OAAO,EAAE,WAAW;AACpB,gBAAA,KAAK,EAAE,OAAO;AACf,aAAA;AACD,YAAA,aAAa,EAAE;AACb,gBAAA,gBAAgB,EACd,4HAA4H;AAC9H,gBAAA,KAAK,EACH,sEAAsE;AACxE,gBAAA,MAAM,EACJ,qHAAqH;AACvH,gBAAA,OAAO,EACL,sEAAsE;AACzE,aAAA;AACD,YAAA,QAAQ,EAAE,QAAQ;AAClB,YAAA,mBAAmB,EAAE,QAAQ;AAC7B,YAAA,mBAAmB,EAAE,QAAQ;AAC7B,YAAA,aAAa,EAAE,aAAa;AAC5B,YAAA,wBAAwB,EAAE,aAAa;AACvC,YAAA,OAAO,EAAE,uBAAuB;AAChC,YAAA,YAAY,EAAE,kBAAkB;AAChC,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,aAAa,EAAE,qBAAqB;AACpC,YAAA,cAAc,EAAE,sBAAsB;AACtC,YAAA,WAAW,EAAE,wBAAwB;AACrC,YAAA,aAAa,EAAE,cAAc;AAC7B,YAAA,WAAW,EAAE,eAAe;AAC5B,YAAA,iBAAiB,EACf,2IAA2I;AAC7I,YAAA,cAAc,EAAE,iBAAiB;AACjC,YAAA,kBAAkB,EAAE;AAClB,gBAAA,YAAY,EAAE;AACZ,oBAAA,MAAM,EAAE,0DAA0D;AAClE,oBAAA,KAAK,EAAE,YAAY;AACpB,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,MAAM,EACJ,sEAAsE;AACxE,oBAAA,KAAK,EAAE,YAAY;AACpB,iBAAA;AACF,aAAA;AACD,YAAA,OAAO,EAAE;AACP,gBAAA,OAAO,EAAE,qCAAqC;AAC9C,gBAAA,QAAQ,EAAE,8CAA8C;AACxD,gBAAA,KAAK,EAAE,gDAAgD;AACvD,gBAAA,IAAI,EAAE,qZAAqZ;AAC3Z,gBAAA,QAAQ,EACN,8DAA8D;AAChE,gBAAA,MAAM,EAAE,0DAA0D;AACnE,aAAA;AACD,YAAA,mBAAmB,EAAE,yBAAyB;AAC9C,YAAA,KAAK,EAAE,kBAAkB;AACzB,YAAA,YAAY,EAAE,iBAAiB;AAC/B,YAAA,YAAY,EAAE,kBAAkB;AAChC,YAAA,kBAAkB,EAAE,2BAA2B;AAC/C,YAAA,MAAM,EAAE,QAAQ;AAChB,YAAA,oBAAoB,EAAE,iCAAiC;AACvD,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,gBAAgB,EAAE,oBAAoB;AACtC,YAAA,gBAAgB,EAAE,4BAA4B;AAC9C,YAAA,kBAAkB,EAChB,gEAAgE;AAClE,YAAA,wBAAwB,EAAE,gCAAgC;AAC1D,YAAA,oBAAoB,EAClB,gFAAgF;AAClF,YAAA,kBAAkB,EAChB,sHAAsH;AACxH,YAAA,iBAAiB,EAAE,oDAAoD;AACvE,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,wBAAwB,EAAE,yCAAyC;AACnE,YAAA,0BAA0B,EAAE,qBAAqB;AACjD,YAAA,KAAK,EAAE;AACL,gBAAA,mBAAmB,EAAE;AACnB,oBAAA,SAAS,EAAE,mCAAmC;AAC9C,oBAAA,MAAM,EAAE,2CAA2C;AACnD,oBAAA,OAAO,EAAE,kCAAkC;AAC3C,oBAAA,UAAU,EAAE,kCAAkC;AAC/C,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,SAAS,EAAE,yBAAyB;AACpC,oBAAA,MAAM,EAAE,uCAAuC;AAC/C,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,UAAU,EAAE,wBAAwB;AACrC,iBAAA;AACD,gBAAA,WAAW,EAAE;AACX,oBAAA,SAAS,EAAE,yBAAyB;AACpC,oBAAA,MAAM,EAAE,uCAAuC;AAC/C,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,UAAU,EAAE,wBAAwB;AACrC,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,SAAS,EAAE,wBAAwB;AACnC,oBAAA,MAAM,EAAE,sCAAsC;AAC9C,oBAAA,OAAO,EAAE,uBAAuB;AAChC,oBAAA,UAAU,EAAE,uBAAuB;AACpC,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,SAAS,EAAE,wBAAwB;AACnC,oBAAA,MAAM,EAAE,sCAAsC;AAC9C,oBAAA,OAAO,EAAE,uBAAuB;AAChC,oBAAA,UAAU,EAAE,uBAAuB;AACpC,iBAAA;AACD,gBAAA,cAAc,EAAE;AACd,oBAAA,SAAS,EAAE,yBAAyB;AACpC,oBAAA,MAAM,EAAE,uCAAuC;AAC/C,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,sBAAsB;AACnC,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,SAAS,EAAE,2BAA2B;AACtC,oBAAA,MAAM,EAAE,yCAAyC;AACjD,oBAAA,OAAO,EAAE,yBAAyB;AAClC,oBAAA,UAAU,EAAE,yBAAyB;AACtC,iBAAA;AACD,gBAAA,yBAAyB,EAAE;AACzB,oBAAA,SAAS,EAAE,8BAA8B;AACzC,oBAAA,MAAM,EAAE,4CAA4C;AACpD,oBAAA,OAAO,EAAE,8BAA8B;AACvC,oBAAA,UAAU,EAAE,8BAA8B;AAC3C,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,SAAS,EAAE,6BAA6B;AACxC,oBAAA,MAAM,EAAE,2CAA2C;AACnD,oBAAA,OAAO,EAAE,6BAA6B;AACtC,oBAAA,UAAU,EAAE,6BAA6B;AAC1C,iBAAA;AACD,gBAAA,mBAAmB,EAAE;AACnB,oBAAA,SAAS,EAAE,kCAAkC;AAC7C,oBAAA,MAAM,EAAE,gDAAgD;AACxD,oBAAA,OAAO,EAAE,kCAAkC;AAC3C,oBAAA,UAAU,EAAE,kCAAkC;AAC/C,iBAAA;AACD,gBAAA,iBAAiB,EAAE;AACjB,oBAAA,SAAS,EAAE,iCAAiC;AAC5C,oBAAA,MAAM,EAAE,+CAA+C;AACvD,oBAAA,OAAO,EAAE,gCAAgC;AACzC,oBAAA,UAAU,EAAE,gCAAgC;AAC7C,iBAAA;AACD,gBAAA,qBAAqB,EAAE;AACrB,oBAAA,SAAS,EAAE,4CAA4C;AACvD,oBAAA,MAAM,EAAE,6CAA6C;AACrD,oBAAA,OAAO,EAAE,8BAA8B;AACvC,oBAAA,UAAU,EAAE,8BAA8B;AAC3C,iBAAA;AACD,gBAAA,gBAAgB,EAAE;AAChB,oBAAA,SAAS,EAAE,oCAAoC;AAC/C,oBAAA,MAAM,EAAE,qCAAqC;AAC7C,oBAAA,OAAO,EAAE,sBAAsB;AAC/B,oBAAA,UAAU,EAAE,sBAAsB;AACnC,iBAAA;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,SAAS,EAAE,+BAA+B;AAC1C,oBAAA,MAAM,EAAE,gCAAgC;AACxC,oBAAA,OAAO,EAAE,iBAAiB;AAC1B,oBAAA,UAAU,EAAE,iBAAiB;AAC9B,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AACpB,oBAAA,SAAS,EAAE,gCAAgC;AAC3C,oBAAA,MAAM,EAAE,iCAAiC;AACzC,oBAAA,OAAO,EAAE,kBAAkB;AAC3B,oBAAA,UAAU,EAAE,kBAAkB;AAC/B,iBAAA;AACD,gBAAA,oBAAoB,EAAE;AACpB,oBAAA,SAAS,EAAE,uCAAuC;AAClD,oBAAA,MAAM,EAAE,wCAAwC;AAChD,oBAAA,OAAO,EAAE,yBAAyB;AAClC,oBAAA,UAAU,EAAE,yBAAyB;AACtC,iBAAA;AACD,gBAAA,2BAA2B,EAAE;AAC3B,oBAAA,SAAS,EAAE,iCAAiC;AAC5C,oBAAA,MAAM,EAAE,kCAAkC;AAC1C,oBAAA,OAAO,EAAE,mBAAmB;AAC5B,oBAAA,UAAU,EAAE,mBAAmB;AAChC,iBAAA;AACD,gBAAA,kBAAkB,EAAE;AAClB,oBAAA,SAAS,EAAE,qCAAqC;AAChD,oBAAA,MAAM,EAAE,sCAAsC;AAC9C,oBAAA,OAAO,EAAE,uBAAuB;AAChC,oBAAA,UAAU,EAAE,uBAAuB;AACpC,iBAAA;AACD,gBAAA,eAAe,EAAE;AACf,oBAAA,SAAS,EAAE,sCAAsC;AACjD,oBAAA,MAAM,EAAE,uCAAuC;AAC/C,oBAAA,OAAO,EAAE,wBAAwB;AACjC,oBAAA,UAAU,EAAE,wBAAwB;AACrC,iBAAA;AACD,gBAAA,sBAAsB,EAAE;AACtB,oBAAA,SAAS,EAAE,sCAAsC;AACjD,oBAAA,MAAM,EAAE,uCAAuC;AAC/C,oBAAA,OAAO,EAAE,0CAA0C;AACnD,oBAAA,UAAU,EAAE,0CAA0C;AACvD,iBAAA;AACF,aAAA;AACD,YAAA,cAAc,EAAE,oBAAoB;AACpC,YAAA,cAAc,EAAE,eAAe;AAC/B,YAAA,mBAAmB,EAAE,0BAA0B;AAC/C,YAAA,UAAU,EAAE,YAAY;AACzB,SAAA;AACD,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,YAAY,EAAE,aAAa;AAC3B,QAAA,IAAI,EAAE,eAAe;AACrB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,kBAAkB,EAAE,oBAAoB;AACxC,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,UAAU,EAAE,WAAW;AACvB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,SAAS,EAAE,WAAW;AACtB,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,UAAU,EAAE,QAAQ;AACpB,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,MAAM,EAAE,OAAO;AACf,QAAA,kBAAkB,EAAE,oBAAoB;AACxC,QAAA,OAAO,EAAE,cAAc;AACvB,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,qBAAqB,EAAE,0BAA0B;AACjD,QAAA,iBAAiB,EAAE,qCAAqC;AACxD,QAAA,EAAE,EAAE,KAAK;AACT,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,iBAAiB,EAAE,mCAAmC;AACtD,QAAA,cAAc,EAAE,uBAAuB;AACvC,QAAA,aAAa,EAAE,sBAAsB;AACrC,QAAA,WAAW,EAAE,sBAAsB;AACnC,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,wBAAwB,EAAE,+CAA+C;AACzE,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,qBAAqB,EAAE,uBAAuB;AAC9C,QAAA,aAAa,EAAE;AACb,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,eAAe,EAAE,cAAc;AAC/B,YAAA,WAAW,EAAE,4BAA4B;AACzC,YAAA,MAAM,EAAE,mBAAmB;AAC5B,SAAA;AACD,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,eAAe,EAAE,uBAAuB;AACxC,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,eAAe,EAAE,qBAAqB;AACtC,QAAA,gBAAgB,EAAE,kBAAkB;AACpC,QAAA,qBAAqB,EAAE,wBAAwB;AAC/C,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,kBAAkB,EAAE;AAClB,YAAA,UAAU,EAAE,kBAAkB;AAC9B,YAAA,eAAe,EACb,+GAA+G;AACjH,YAAA,cAAc,EAAE,aAAa;AAC7B,YAAA,aAAa,EAAE;AACb,gBAAA,SAAS,EAAE;AACT,oBAAA,WAAW,EACT,8aAA8a;AAChb,oBAAA,KAAK,EAAE,qBAAqB;AAC7B,iBAAA;AACD,gBAAA,SAAS,EAAE;AACT,oBAAA,WAAW,EACT,mRAAmR;AACrR,oBAAA,KAAK,EAAE,uBAAuB;AAC/B,iBAAA;AACF,aAAA;AACD,YAAA,YAAY,EACV,kNAAkN;AACpN,YAAA,qBAAqB,EACnB,kdAAkd;AACpd,YAAA,iBAAiB,EAAE,6CAA6C;AAChE,YAAA,yBAAyB,EAAE,sBAAsB;AACjD,YAAA,eAAe,EAAE,sBAAsB;AACvC,YAAA,YAAY,EAAE,qBAAqB;AACnC,YAAA,kBAAkB,EAAE,yBAAyB;AAC7C,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,gBAAgB,EAAE,yBAAyB;AAC5C,SAAA;AACD,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,mBAAmB,EAAE;AACnB,YAAA,OAAO,EAAE,QAAQ;AACjB,YAAA,KAAK,EAAE,OAAO;AACd,YAAA,KAAK,EAAE,MAAM;AACb,YAAA,GAAG,EAAE,KAAK;AACV,YAAA,IAAI,EAAE,MAAM;AACZ,YAAA,OAAO,EAAE,WAAW;AACpB,YAAA,KAAK,EAAE,OAAO;AACf,SAAA;AACD,QAAA,sBAAsB,EAAE,mBAAmB;AAC3C,QAAA,cAAc,EAAE,OAAO;AACvB,QAAA,mCAAmC,EAAE,+BAA+B;AACpE,QAAA,sCAAsC,EACpC,4CAA4C;AAC9C,QAAA,wCAAwC,EACtC,oCAAoC;AACtC,QAAA,sBAAsB,EAAE,mBAAmB;AAC3C,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,oBAAoB,EAAE,wBAAwB;AAC9C,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,iBAAiB,EAAE,gBAAgB;AACnC,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,SAAS,EAAE,4BAA4B;AACvC,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,eAAe,EAAE,qBAAqB;AACtC,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,uBAAuB,EAAE,gBAAgB;AACzC,QAAA,UAAU,EAAE,wBAAwB;AACpC,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,mBAAmB,EAAE,sBAAsB;AAC3C,QAAA,cAAc,EAAE;AACd,YAAA,KAAK,EAAE;AACL,gBAAA,cAAc,EACZ,6GAA6G;AAC/G,gBAAA,qBAAqB,EACnB,wEAAwE;AAC3E,aAAA;AACD,YAAA,aAAa,EAAE,qBAAqB;AACpC,YAAA,QAAQ,EACN,qEAAqE;AACvE,YAAA,QAAQ,EAAE,yCAAyC;AACnD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EACZ,oJAAoJ;AACvJ,aAAA;AACF,SAAA;AACD,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,gBAAgB,EAAE,0BAA0B;AAC5C,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,EAAE,EAAE,SAAS;AACb,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,SAAS,EAAE,4BAA4B;AACvC,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,aAAa,EAAE,oCAAoC;AACnD,QAAA,oBAAoB,EAClB,0DAA0D;AAC5D,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,cAAc,EAAE,iBAAiB;AACjC,QAAA,eAAe,EAAE,kBAAkB;AACnC,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,SAAS,EAAE,aAAa;AACxB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,WAAW,EAAE,aAAa;AAC1B,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,oBAAoB,EAAE,6BAA6B;AACnD,QAAA,kBAAkB,EAAE,kDAAkD;AACtE,QAAA,gBAAgB,EAAE,sBAAsB;AACxC,QAAA,uBAAuB,EAAE,sCAAsC;AAC/D,QAAA,oBAAoB,EAAE,sCAAsC;AAC5D,QAAA,mBAAmB,EAAE,6CAA6C;AAClE,QAAA,sBAAsB,EAAE,wCAAwC;AAChE,QAAA,gBAAgB,EAAE,+CAA+C;AACjE,QAAA,iBAAiB,EACf,2DAA2D;AAC7D,QAAA,qBAAqB,EAAE,2CAA2C;AAClE,QAAA,qBAAqB,EAAE,8CAA8C;AACrE,QAAA,eAAe,EAAE,4BAA4B;AAC7C,QAAA,uBAAuB,EACrB,yFAAyF;AAC3F,QAAA,eAAe,EAAE,mDAAmD;AACpE,QAAA,qBAAqB,EACnB,4DAA4D;AAC9D,QAAA,mBAAmB,EAAE,aAAa;AAClC,QAAA,uBAAuB,EACrB,yEAAyE;AAC3E,QAAA,qBAAqB,EAAE,2BAA2B;AAClD,QAAA,sBAAsB,EAAE,oCAAoC;AAC5D,QAAA,sBAAsB,EAAE,uCAAuC;AAC/D,QAAA,iBAAiB,EAAE,mBAAmB;AACtC,QAAA,iBAAiB,EAAE,gCAAgC;AACnD,QAAA,eAAe,EAAE,iBAAiB;AAClC,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,MAAM,EAAE,SAAS;AACjB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,QAAQ,EAAE,iBAAiB;AAC3B,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,WAAW,EAAE,6BAA6B;AAC1C,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,mBAAmB,EAAE,4BAA4B;AACjD,QAAA,+BAA+B,EAC7B,sEAAsE;AACxE,QAAA,iBAAiB,EAAE,yBAAyB;AAC5C,QAAA,6BAA6B,EAC3B,mEAAmE;AACrE,QAAA,oDAAoD,EAClD,sCAAsC;AACxC,QAAA,sDAAsD,EACpD,4BAA4B;AAC9B,QAAA,gEAAgE,EAC9D,4CAA4C;AAC9C,QAAA,2CAA2C,EAAE,6BAA6B;AAC1E,QAAA,6CAA6C,EAAE,qBAAqB;AACpE,QAAA,gEAAgE,EAC9D,oDAAoD;AACtD,QAAA,sDAAsD,EACpD,qCAAqC;AACvC,QAAA,uDAAuD,EACrD,yCAAyC;AAC3C,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,WAAW,EAAE,mBAAmB;AAChC,QAAA,mBAAmB,EAAE,oCAAoC;AACzD,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,YAAY,EAAE,sBAAsB;AACpC,QAAA,KAAK,EAAE,WAAW;AAClB,QAAA,YAAY,EAAE,WAAW;AACzB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,yBAAyB,EACvB,4EAA4E;AAC9E,QAAA,kBAAkB,EAChB,yEAAyE;AAC3E,QAAA,cAAc,EAAE,sDAAsD;AACtE,QAAA,mBAAmB,EACjB,gFAAgF;AAClF,QAAA,YAAY,EAAE,6DAA6D;AAC3E,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,YAAY,EAAE,MAAM;AACpB,QAAA,aAAa,EAAE,OAAO;AACtB,QAAA,WAAW,EAAE,OAAO;AACpB,QAAA,OAAO,EAAE,aAAa;AACtB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,SAAS,EAAE,QAAQ;AACnB,QAAA,cAAc,EAAE,oBAAoB;AACpC,QAAA,SAAS,EAAE,cAAc;AACzB,QAAA,UAAU,EAAE,0BAA0B;AACtC,QAAA,SAAS,EAAE,mBAAmB;AAC9B,QAAA,YAAY,EAAE,kBAAkB;AAChC,QAAA,0BAA0B,EAAE,WAAW;AACvC,QAAA,4BAA4B,EAAE,oCAAoC;AAClE,QAAA,iCAAiC,EAAE,6BAA6B;AAChE,QAAA,yBAAyB,EAAE,QAAQ;AACnC,QAAA,6BAA6B,EAAE,6BAA6B;AAC5D,QAAA,yBAAyB,EAAE,uBAAuB;AAClD,QAAA,kBAAkB,EAAE,wBAAwB;AAC5C,QAAA,uBAAuB,EAAE,iCAAiC;AAC1D,QAAA,2BAA2B,EAAE,yBAAyB;AACtD,QAAA,oBAAoB,EAAE,2BAA2B;AACjD,QAAA,qBAAqB,EAAE,4BAA4B;AACnD,QAAA,gBAAgB,EAAE,wBAAwB;AAC1C,QAAA,iBAAiB,EAAE,yBAAyB;AAC5C,QAAA,aAAa,EAAE,oBAAoB;AACnC,QAAA,cAAc,EAAE,UAAU;AAC1B,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,EAAE,EAAE,IAAI;AACR,QAAA,IAAI,EAAE,QAAQ;AACd,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,YAAY,EAAE,cAAc;AAC5B,QAAA,qBAAqB,EAAE,sBAAsB;AAC7C,QAAA,kCAAkC,EAAE,oCAAoC;AACxE,QAAA,6BAA6B,EAAE,qCAAqC;AACpE,QAAA,2BAA2B,EACzB,uGAAuG;AACzG,QAAA,qBAAqB,EAAE,sBAAsB;AAC7C,QAAA,uCAAuC,EACrC,wMAAwM;AAC1M,QAAA,oBAAoB,EAAE,mCAAmC;AACzD,QAAA,aAAa,EAAE,gBAAgB;AAC/B,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,KAAK,EAAE;AACL,YAAA,eAAe,EAAE,sDAAsD;AACvE,YAAA,UAAU,EAAE,eAAe;AAC3B,YAAA,eAAe,EAAE,uCAAuC;AACzD,SAAA;AACD,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,WAAW,EAAE,QAAQ;AACrB,QAAA,YAAY,EAAE,eAAe;AAC7B,QAAA,OAAO,EAAE,UAAU;AACnB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,cAAc,EAAE,sBAAsB;AACtC,QAAA,OAAO,EAAE,QAAQ;AACjB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,gBAAgB,EAAE,aAAa;AAC/B,QAAA,6BAA6B,EAAE,2CAA2C;AAC1E,QAAA,sBAAsB,EAAE,sBAAsB;AAC9C,QAAA,SAAS,EAAE,UAAU;AACrB,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,KAAK,EAAE,cAAc;AACrB,QAAA,aAAa,EAAE,eAAe;AAC9B,QAAA,QAAQ,EAAE,SAAS;AACnB,QAAA,cAAc,EAAE,kBAAkB;AAClC,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,gBAAgB,EACd,uMAAuM;AACzM,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,wBAAwB,EACtB,+GAA+G;AACjH,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,SAAS,EACP,0HAA0H;AAC5H,QAAA,SAAS,EAAE,YAAY;AACvB,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,gBAAgB,EAAE,0CAA0C;AAC5D,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,MAAM,EAAE,UAAU;AAClB,QAAA,mBAAmB,EAAE,2BAA2B;AAChD,QAAA,kBAAkB,EAAE,sBAAsB;AAC1C,QAAA,aAAa,EAAE,iBAAiB;AAChC,QAAA,eAAe,EAAE,cAAc;AAC/B,QAAA,YAAY,EAAE,iBAAiB;AAC/B,QAAA,UAAU,EAAE,qBAAqB;AACjC,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,MAAM,EAAE,WAAW;AACnB,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,aAAa,EAAE,mBAAmB;AAClC,QAAA,iBAAiB,EAAE,2BAA2B;AAC9C,QAAA,gBAAgB,EAAE,0BAA0B;AAC5C,QAAA,QAAQ,EAAE,kBAAkB;AAC5B,QAAA,QAAQ,EAAE,eAAe;AACzB,QAAA,uBAAuB,EAAE,qCAAqC;AAC9D,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,gBAAgB,EAAE,oBAAoB;AACtC,QAAA,YAAY,EAAE,mBAAmB;AACjC,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,QAAQ,EAAE,WAAW;AACrB,QAAA,YAAY,EAAE,gBAAgB;AAC9B,QAAA,IAAI,EAAE,YAAY;AAClB,QAAA,iBAAiB,EAAE,oBAAoB;AACvC,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,SAAS,EAAE,SAAS;AACpB,QAAA,MAAM,EAAE,QAAQ;AAChB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,WAAW,EAAE,YAAY;AACzB,QAAA,mBAAmB,EAAE,qBAAqB;AAC1C,QAAA,UAAU,EAAE,YAAY;AACxB,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,+BAA+B,EAC7B,mDAAmD;AACrD,QAAA,iCAAiC,EAAE,sCAAsC;AACzE,QAAA,iCAAiC,EAC/B,2CAA2C;AAC7C,QAAA,WAAW,EAAE,SAAS;AACtB,QAAA,wBAAwB,EACtB,oEAAoE;AACtE,QAAA,sBAAsB,EACpB,iEAAiE;AACnE,QAAA,oBAAoB,EAAE,2CAA2C;AACjE,QAAA,wBAAwB,EAAE,mCAAmC;AAC7D,QAAA,sBAAsB,EAAE,yCAAyC;AACjE,QAAA,yBAAyB,EAAE,6CAA6C;AACxE,QAAA,2BAA2B,EAAE,wCAAwC;AACrE,QAAA,qBAAqB,EAAE,0CAA0C;AACjE,QAAA,6BAA6B,EAC3B,qDAAqD;AACvD,QAAA,qBAAqB,EAAE,uCAAuC;AAC9D,QAAA,qBAAqB,EAAE,oCAAoC;AAC3D,QAAA,0BAA0B,EACxB,8DAA8D;AAChE,QAAA,4BAA4B,EAAE,qCAAqC;AACnE,QAAA,sCAAsC,EACpC,oDAAoD;AACtD,QAAA,wBAAwB,EAAE,uCAAuC;AACjE,QAAA,qBAAqB,EAAE,qCAAqC;AAC5D,QAAA,wBAAwB,EAAE,+CAA+C;AACzE,QAAA,uBAAuB,EAAE,4CAA4C;AACrE,QAAA,+BAA+B,EAC7B,4CAA4C;AAC9C,QAAA,oCAAoC,EAClC,4DAA4D;AAC9D,QAAA,4BAA4B,EAC1B,sDAAsD;AACxD,QAAA,qBAAqB,EAAE,0CAA0C;AACjE,QAAA,6BAA6B,EAC3B,oHAAoH;AACtH,QAAA,+BAA+B,EAC7B,0DAA0D;AAC5D,QAAA,0BAA0B,EACxB,iDAAiD;AACnD,QAAA,uBAAuB,EACrB,0HAA0H;AAC5H,QAAA,2BAA2B,EACzB,yEAAyE;AAC3E,QAAA,yBAAyB,EAAE,gCAAgC;AAC3D,QAAA,mCAAmC,EACjC,oDAAoD;AACtD,QAAA,4CAA4C,EAC1C,qDAAqD;AACvD,QAAA,UAAU,EAAE,OAAO;AACnB,QAAA,aAAa,EAAE,cAAc;AAC7B,QAAA,0BAA0B,EACxB,kEAAkE;AACpE,QAAA,wBAAwB,EACtB,+DAA+D;AACjE,QAAA,sBAAsB,EAAE,yCAAyC;AACjE,QAAA,6BAA6B,EAAE,oBAAoB;AACnD,QAAA,+BAA+B,EAC7B,2EAA2E;AAC7E,QAAA,4BAA4B,EAAE,mCAAmC;AACjE,QAAA,yBAAyB,EACvB,uHAAuH;AACzH,QAAA,aAAa,EAAE,UAAU;AACzB,QAAA,+BAA+B,EAC7B,4EAA4E;AAC9E,QAAA,4BAA4B,EAAE,yCAAyC;AACvE,QAAA,8BAA8B,EAC5B,oFAAoF;AACtF,QAAA,UAAU,EAAE,aAAa;AACzB,QAAA,IAAI,EAAE,KAAK;AACX,QAAA,OAAO,EAAE,WAAW;AACpB,QAAA,UAAU,EAAE,eAAe;AAC3B,QAAA,OAAO,EAAE,YAAY;AACrB,QAAA,UAAU,EAAE,kBAAkB;AAC9B,QAAA,WAAW,EAAE,gBAAgB;AAC7B,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,GAAG,EAAE,KAAK;AACV,QAAA,IAAI,EAAE,UAAU;AAChB,QAAA,UAAU,EAAE,gBAAgB;AAC5B,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,GAAG,EAAE,eAAe;AACpB,QAAA,WAAW,EACT,qJAAqJ;AACvJ,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,uBAAuB,EACrB,iFAAiF;AACnF,QAAA,gBAAgB,EACd,yEAAyE;AAC3E,QAAA,YAAY,EACV,wEAAwE;AAC1E,QAAA,iBAAiB,EACf,2DAA2D;AAC7D,QAAA,UAAU,EAAE,8DAA8D;AAC1E,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,iBAAiB,EAAE,iBAAiB;AACpC,QAAA,IAAI,EAAE,MAAM;AACZ,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,QAAQ,EAAE,cAAc;AACxB,QAAA,cAAc,EACZ,0EAA0E;AAC7E,KAAA;;MAIU,iBAAiB,CAAA;AAC5B,IAAA,cAAc,CAAC,IAAY,EAAA;QACzB,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IACrC;uGAHW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cADJ,MAAM,EAAA,CAAA;;2FACnB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;MAwBrB,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAjB,iBAAiB,EAAA,OAAA,EAAA,CAhBlB,eAAe,CAAA,EAAA,OAAA,EAAA,CACf,eAAe,CAAA,EAAA,CAAA;AAed,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,SAAA,EAdjB;AACT,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE;AAC9D,YAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE;AAC1D,YAAA,gBAAgB,CAAC;AACf,gBAAA,MAAM,EAAE;AACN,oBAAA,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5B,oBAAA,WAAW,EAAE,IAAI;AACjB,oBAAA,oBAAoB,EAAE,IAAI;oBAC1B,QAAQ,EAAE,CAAC,SAAS,EAAE;AACvB,iBAAA;AACD,gBAAA,MAAM,EAAE,iBAAiB;aAC1B,CAAC;SACH,EAAA,OAAA,EAAA,CAdS,eAAe,EACf,eAAe,CAAA,EAAA,CAAA;;2FAed,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAjB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,eAAe,CAAC;oBAC1B,OAAO,EAAE,CAAC,eAAe,CAAC;AAC1B,oBAAA,SAAS,EAAE;AACT,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,iBAAiB,EAAE;AAC9D,wBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE;AAC1D,wBAAA,gBAAgB,CAAC;AACf,4BAAA,MAAM,EAAE;AACN,gCAAA,cAAc,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5B,gCAAA,WAAW,EAAE,IAAI;AACjB,gCAAA,oBAAoB,EAAE,IAAI;gCAC1B,QAAQ,EAAE,CAAC,SAAS,EAAE;AACvB,6BAAA;AACD,4BAAA,MAAM,EAAE,iBAAiB;yBAC1B,CAAC;AACH,qBAAA;AACF,iBAAA;;;MCxgDY,2BAA2B,CAAA;AACrB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAElD,IAAA,IAAc,WAAW,GAAA;AACvB,QAAA,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC;QACpE,IAAI,WAAW,EAAE,IAAI,KAAK,IAAI,CAAC,SAAS,EAAE;AACxC,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO,CAAC,WAAW,CAAC,aAAa,EAAE,WAAW,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACnE;IAEU,MAAM,cAAc,CAAC,UAAkB,EAAA;AAC/C,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,YAAY,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;YAC/D;QACF;QAEA,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,CAAC;IACpD;uGAlBW,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,kFCdxC,usBAiBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDRY,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,uFAAE,SAAS,EAAA,QAAA,EAAA,iOAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAKtC,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBANvC,SAAS;8BACC,CAAC,aAAa,EAAE,aAAa,EAAE,SAAS,CAAC,EAAA,QAAA,EACxC,wBAAwB,EAAA,eAAA,EACjB,uBAAuB,CAAC,KAAK,EAAA,QAAA,EAAA,usBAAA,EAAA;;;ME2EnC,qBAAqB,CAAA;AAChC,IAAA,IAAI,GAAG,MAAM,CAAiB,eAAe,CAAC;AAC7B,IAAA,YAAY,GAC3B,MAAM,CAAsC,YAAY,CAAC;AAEnD,IAAA,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;AAE1B,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEzB,IAAA,KAAK;AACL,IAAA,KAAK;AACL,IAAA,IAAI;AACJ,IAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1B,IAAA,IAAI;AACJ,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAE5D,IAAA,WAAA,GAAA;QACE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;QAClC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO;IAC5C;AAEA,IAAA,MAAM,QAAQ,GAAA;QACZ,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACxB,gBAAA,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC9B;iBAAO;AACL,gBAAA,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtE;QACF;AAEA,QAAA,IAAI,CAAC;AACF,aAAA,IAAI;aACJ,IAAI,CAAC,YAAW;AACf,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACtB,gBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;YACvD;iBAAO;AACL,gBAAA,IAAI,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc;gBAC7C,IAAI,CAAC,cAAc,EAAE;AACnB,oBAAA,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC9C,aAAa,GAAG,IAAI,CAAC,IAAI,EACzB,EAAE,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,CACvD;AACD,oBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;AAC3B,wBAAA,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC/C,qBAAqB,EACrB,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CACrC;oBACH;AACA,oBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE;AAClB,wBAAA,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC/C,oBAAoB,EACpB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAC3B;oBACH;gBACF;gBAEA,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;AAEpD,gBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CACzC,WAAW,EACX,cAAc,EACd,IAAI,CAAC,IAAI,CAAC,OAAO,CAClB;YACH;AAEA,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;gBAC5B,IAAI,CAAC,WAAW,CAAC;AACd,qBAAA,IAAI,CACH,MAAM,CACJ,CAAC,EAAE,IAAI,EAAE,KACP,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa;AACxB,oBAAA,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;oBACpC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CACzC;AAEF,qBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACnB,oBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACjC,gBAAA,CAAC,CAAC;YACN;AACF,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,GAAG,KAAI;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YACtB,IAAI,CAAC,KAAK,EAAE;AACd,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,KAAK,CAAC,OAAgB,EAAA;AACpB,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;IAClC;uGAzFW,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,SAAA,EALrB,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjF5D,quBAgBA,EAAA,MAAA,EAAA,CAAA,oz/DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDmDI,iBAAiB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACjB,WAAW,+BACX,aAAa,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACb,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sFAAA,EAAA,QAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,kBAAkB,8BAClB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACrB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,eAAe,sDACf,2BAA2B,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAOlB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBArBjC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,OAAA,EAAA;wBACP,iBAAiB;wBACjB,WAAW;wBACX,aAAa;wBACb,YAAY;wBACZ,eAAe;wBACf,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,wBAAwB;wBACxB,qBAAqB;wBACrB,mBAAmB;wBACnB,eAAe;wBACf,2BAA2B;qBAC5B,EAAA,SAAA,EACU,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,aAAA,EAG3C,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,quBAAA,EAAA,MAAA,EAAA,CAAA,oz/DAAA,CAAA,EAAA;;;ME/B1B,eAAe,CAAA;AACjB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AACjC,IAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,IAAA,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1B,IAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;AAEhC,IAAA,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC;IAE1B,KAAK,GAAc,EAAE;IACrB,aAAa,GAAsB,OAAO;AAC1C,IAAA,cAAc;AACd,IAAA,QAAQ;AACR,IAAA,OAAO;AAEhB,IAAA,MAAM,QAAQ,GAAA;QACZ,IAAI,EAAE,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,EAAE;AACxC,YAAA,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACxB,gBAAA,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YAC9B;iBAAO;AACL,gBAAA,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YACtE;QACF;AAEA,QAAA,IAAI,CAAC;AACF,aAAA,IAAI;aACJ,IAAI,CAAC,YAAW;AACf,YAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC;YACzD;iBAAO;AACL,gBAAA,IAAI,cAAc,GAAG,IAAI,CAAC,cAAc;gBACxC,IAAI,CAAC,cAAc,EAAE;AACnB,oBAAA,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC9C,aAAa,GAAG,IAAI,CAAC,aAAa,EAClC;AACE,wBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE;AACvB,wBAAA,SAAS,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI;AAC5B,qBAAA,CACF;gBACH;AACA,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,WAAW,EAAE;AAC3B,oBAAA,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC/C,qBAAqB,EACrB,EAAE,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CACrC;gBACH;AACA,gBAAA,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE;AAClB,oBAAA,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAC/C,oBAAoB,EACpB,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAC3B;gBACH;gBACA,MAAM,WAAW,GAAG,qBAAqB,CAAC,IAAI,CAAC,aAAa,CAAC;AAC7D,gBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,oBAAoB,CACzC,WAAW,EACX,cAAc,EACd,IAAI,CAAC,OAAO,CACb;YACH;YAEA,IAAI,CAAC,WAAW,CAAC;AACd,iBAAA,IAAI,CACH,MAAM,CACJ,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,KAAK,oBAAoB,CAAC,kBAAkB,CAClE;AAEF,iBAAA,SAAS,CAAC,CAAC,KAAK,KAAI;gBACnB,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,EAAE;oBAC9C,MAAM,EAAE,KAAK,CAAC,IAAI;AAClB,oBAAA,OAAO,EAAE,IAAI;AACb,oBAAA,QAAQ,EAAE,IAAI;AACf,iBAAA,CAAC;gBAEF,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,WAAW,CAAC;AAC1D,YAAA,CAAC,CAAC;AACN,QAAA,CAAC;AACA,aAAA,KAAK,CAAC,CAAC,GAAG,KAAI;AACb,YAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACxB,QAAA,CAAC,CAAC;IACN;uGA9EW,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EALf,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChD5D,wVAOA,EAAA,MAAA,EAAA,CAAA,oz/DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,ED6BI,iBAAiB,qPACjB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACd,wBAAwB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACxB,qBAAqB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACrB,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,eAAe,sDACf,2BAA2B,EAAA,QAAA,EAAA,wBAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAOlB,eAAe,EAAA,UAAA,EAAA,CAAA;kBApB3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAAA,OAAA,EACV;wBACP,iBAAiB;wBACjB,WAAW;wBACX,YAAY;wBACZ,eAAe;wBACf,kBAAkB;wBAClB,cAAc;wBACd,wBAAwB;wBACxB,qBAAqB;wBACrB,mBAAmB;wBACnB,eAAe;wBACf,2BAA2B;qBAC5B,EAAA,SAAA,EACU,CAAC,WAAW,EAAE,cAAc,EAAE,gBAAgB,CAAC,EAAA,aAAA,EAG3C,iBAAiB,CAAC,IAAI,EAAA,QAAA,EAAA,wVAAA,EAAA,MAAA,EAAA,CAAA,oz/DAAA,CAAA,EAAA;;sBAUpC;;sBACA;;sBACA;;sBACA;;sBACA;;;MErCU,QAAQ,CAAA;uGAAR,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAR,QAAQ,EAAA,OAAA,EAAA,CAfjB,YAAY,EAAAD,IAAA,CAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAaJ,iBAAiB,CAAA,EAAA,CAAA;AAEhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,QAAQ,EAAA,SAAA,EATR;YACT,UAAU;YACV,WAAW;YACX,cAAc;YACd,uBAAuB;YACvB,gBAAgB;AACjB,SAAA,EAAA,OAAA,EAAA,CAZC,YAAY;YACZ,YAAY,CAAC,OAAO,CAAC;gBACnB,KAAK,EAAE,cAAc,CAAC,KAAK;AAC3B,gBAAA,qBAAqB,EAAE,KAAK;AAC7B,aAAA,CAAC,EASM,iBAAiB,CAAA,EAAA,CAAA;;2FAEhB,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAjBpB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY,CAAC,OAAO,CAAC;4BACnB,KAAK,EAAE,cAAc,CAAC,KAAK;AAC3B,4BAAA,qBAAqB,EAAE,KAAK;yBAC7B,CAAC;AACH,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,UAAU;wBACV,WAAW;wBACX,cAAc;wBACd,uBAAuB;wBACvB,gBAAgB;AACjB,qBAAA;oBACD,OAAO,EAAE,CAAC,iBAAiB,CAAC;AAC7B,iBAAA;;;ACvBD;;;AAGG;SACa,iBAAiB,GAAA;AAC/B,IAAA,OAAO,eAAe,CAAC;AACrB,QAAA,MAAM,EAAEM,YAAU;AAClB,QAAA,aAAa,EAAE;AACb,YAAA,OAAO,EAAE,cAAc;AACvB,YAAA,QAAQ,EAAE;AACR,gBAAA,GAAG,EAAE,IAAI;AACT,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,QAAQ,EAAE,KAAK;AAChB,aAAA;AACF,SAAA;AACF,KAAA,CAAC;AACJ;;ACVA;;;AAGG;SACa,YAAY,GAAA;IAC1B,OAAO;AACL,QAAA,mBAAmB,CACjB,iBAAiB,EACjB,YAAY,CAAC,OAAO,CAAC;YACnB,KAAK,EAAE,cAAc,CAAC,KAAK;AAC3B,YAAA,qBAAqB,EAAE,KAAK;AAC7B,SAAA,CAAC,CACH;AACD,QAAA,iBAAiB,EAAE;QACnB,iBAAiB,CAAC,sBAAsB,EAAE,CAAC;KAC5C;AACH;;AC1BA;;AAEG;;;;"}