@promptbook/components 0.112.0-11 → 0.112.0-12
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.
- package/esm/index.es.js +1723 -30
- package/esm/index.es.js.map +1 -1
- package/esm/src/book-2.0/agent-source/AgentBasicInformation.d.ts +1 -1
- package/esm/src/book-components/Chat/Chat/ChatToolCallModal.test.d.ts +2 -0
- package/esm/src/book-components/Chat/Chat/renderToolCallDetails.d.ts +4 -0
- package/esm/src/book-components/Chat/utils/getToolCallChipletInfo.timeout.test.d.ts +1 -0
- package/esm/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +123 -0
- package/esm/src/book-components/Chat/utils/timeoutToolCallPresentation.test.d.ts +1 -0
- package/esm/src/commitments/USE_CALENDAR/USE_CALENDAR.d.ts +42 -0
- package/esm/src/commitments/USE_CALENDAR/USE_CALENDAR.test.d.ts +1 -0
- package/esm/src/commitments/USE_CALENDAR/UseCalendarToolNames.d.ts +13 -0
- package/esm/src/commitments/USE_CALENDAR/UseCalendarWallet.d.ts +9 -0
- package/esm/src/commitments/USE_CALENDAR/calendarReference.d.ts +68 -0
- package/esm/src/commitments/USE_CALENDAR/callGoogleCalendarApi.d.ts +19 -0
- package/esm/src/commitments/USE_CALENDAR/createUseCalendarToolFunctions.d.ts +8 -0
- package/esm/src/commitments/USE_CALENDAR/createUseCalendarTools.d.ts +7 -0
- package/esm/src/commitments/USE_CALENDAR/getUseCalendarToolTitles.d.ts +7 -0
- package/esm/src/commitments/USE_CALENDAR/normalizeConfiguredCalendars.d.ts +19 -0
- package/esm/src/commitments/USE_CALENDAR/resolveUseCalendarToolRuntimeOrWalletCredentialResult.d.ts +34 -0
- package/esm/src/commitments/_common/toolRuntimeContext.d.ts +9 -0
- package/esm/src/commitments/index.d.ts +2 -1
- package/esm/src/executables/apps/locateVscode.d.ts +7 -0
- package/esm/src/executables/apps/locateVscode.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateBrowser.d.ts +10 -0
- package/esm/src/executables/browsers/locateBrowser.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateChrome.d.ts +7 -0
- package/esm/src/executables/browsers/locateChrome.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateDefaultSystemBrowser.d.ts +10 -0
- package/esm/src/executables/browsers/locateDefaultSystemBrowser.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateEdge.d.ts +7 -0
- package/esm/src/executables/browsers/locateEdge.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateFirefox.d.ts +7 -0
- package/esm/src/executables/browsers/locateFirefox.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateInternetExplorer.d.ts +7 -0
- package/esm/src/executables/browsers/locateInternetExplorer.test.d.ts +1 -0
- package/esm/src/executables/browsers/locateSafari.d.ts +7 -0
- package/esm/src/version.d.ts +1 -1
- package/package.json +1 -1
- package/umd/index.umd.js +1723 -30
- package/umd/index.umd.js.map +1 -1
- package/umd/src/book-2.0/agent-source/AgentBasicInformation.d.ts +1 -1
- package/umd/src/book-components/Chat/Chat/ChatToolCallModal.test.d.ts +2 -0
- package/umd/src/book-components/Chat/Chat/renderToolCallDetails.d.ts +4 -0
- package/umd/src/book-components/Chat/utils/getToolCallChipletInfo.timeout.test.d.ts +1 -0
- package/umd/src/book-components/Chat/utils/timeoutToolCallPresentation.d.ts +123 -0
- package/umd/src/book-components/Chat/utils/timeoutToolCallPresentation.test.d.ts +1 -0
- package/umd/src/commitments/USE_CALENDAR/USE_CALENDAR.d.ts +42 -0
- package/umd/src/commitments/USE_CALENDAR/USE_CALENDAR.test.d.ts +1 -0
- package/umd/src/commitments/USE_CALENDAR/UseCalendarToolNames.d.ts +13 -0
- package/umd/src/commitments/USE_CALENDAR/UseCalendarWallet.d.ts +9 -0
- package/umd/src/commitments/USE_CALENDAR/calendarReference.d.ts +68 -0
- package/umd/src/commitments/USE_CALENDAR/callGoogleCalendarApi.d.ts +19 -0
- package/umd/src/commitments/USE_CALENDAR/createUseCalendarToolFunctions.d.ts +8 -0
- package/umd/src/commitments/USE_CALENDAR/createUseCalendarTools.d.ts +7 -0
- package/umd/src/commitments/USE_CALENDAR/getUseCalendarToolTitles.d.ts +7 -0
- package/umd/src/commitments/USE_CALENDAR/normalizeConfiguredCalendars.d.ts +19 -0
- package/umd/src/commitments/USE_CALENDAR/resolveUseCalendarToolRuntimeOrWalletCredentialResult.d.ts +34 -0
- package/umd/src/commitments/_common/toolRuntimeContext.d.ts +9 -0
- package/umd/src/commitments/index.d.ts +2 -1
- package/umd/src/executables/apps/locateVscode.d.ts +7 -0
- package/umd/src/executables/apps/locateVscode.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateBrowser.d.ts +10 -0
- package/umd/src/executables/browsers/locateBrowser.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateChrome.d.ts +7 -0
- package/umd/src/executables/browsers/locateChrome.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateDefaultSystemBrowser.d.ts +10 -0
- package/umd/src/executables/browsers/locateDefaultSystemBrowser.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateEdge.d.ts +7 -0
- package/umd/src/executables/browsers/locateEdge.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateFirefox.d.ts +7 -0
- package/umd/src/executables/browsers/locateFirefox.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateInternetExplorer.d.ts +7 -0
- package/umd/src/executables/browsers/locateInternetExplorer.test.d.ts +1 -0
- package/umd/src/executables/browsers/locateSafari.d.ts +7 -0
- package/umd/src/version.d.ts +1 -1
package/esm/index.es.js
CHANGED
|
@@ -40,7 +40,7 @@ const BOOK_LANGUAGE_VERSION = '2.0.0';
|
|
|
40
40
|
* @generated
|
|
41
41
|
* @see https://github.com/webgptorg/promptbook
|
|
42
42
|
*/
|
|
43
|
-
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-
|
|
43
|
+
const PROMPTBOOK_ENGINE_VERSION = '0.112.0-12';
|
|
44
44
|
/**
|
|
45
45
|
* TODO: string_promptbook_version should be constrained to the all versions of Promptbook engine
|
|
46
46
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
@@ -11642,6 +11642,1232 @@ class UseBrowserCommitmentDefinition extends BaseCommitmentDefinition {
|
|
|
11642
11642
|
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
11643
11643
|
*/
|
|
11644
11644
|
|
|
11645
|
+
/**
|
|
11646
|
+
* Base Google Calendar API URL.
|
|
11647
|
+
*
|
|
11648
|
+
* @private constant of callGoogleCalendarApi
|
|
11649
|
+
*/
|
|
11650
|
+
const GOOGLE_CALENDAR_API_BASE_URL = 'https://www.googleapis.com/calendar/v3';
|
|
11651
|
+
/**
|
|
11652
|
+
* Runs one Google Calendar API request and parses JSON response payload.
|
|
11653
|
+
*
|
|
11654
|
+
* @private function of UseCalendarCommitmentDefinition
|
|
11655
|
+
*/
|
|
11656
|
+
async function callGoogleCalendarApi(accessToken, options) {
|
|
11657
|
+
const url = new URL(options.path, GOOGLE_CALENDAR_API_BASE_URL);
|
|
11658
|
+
if (options.query) {
|
|
11659
|
+
for (const [key, value] of Object.entries(options.query)) {
|
|
11660
|
+
if (value && value.trim()) {
|
|
11661
|
+
url.searchParams.set(key, value);
|
|
11662
|
+
}
|
|
11663
|
+
}
|
|
11664
|
+
}
|
|
11665
|
+
const response = await fetch(url.toString(), {
|
|
11666
|
+
method: options.method,
|
|
11667
|
+
headers: {
|
|
11668
|
+
Authorization: `Bearer ${accessToken}`,
|
|
11669
|
+
Accept: 'application/json',
|
|
11670
|
+
'Content-Type': 'application/json',
|
|
11671
|
+
},
|
|
11672
|
+
body: options.body ? JSON.stringify(options.body) : undefined,
|
|
11673
|
+
});
|
|
11674
|
+
const textPayload = await response.text();
|
|
11675
|
+
const parsedPayload = tryParseJson$2(textPayload);
|
|
11676
|
+
if (options.allowNotFound && response.status === 404) {
|
|
11677
|
+
return null;
|
|
11678
|
+
}
|
|
11679
|
+
if (!response.ok) {
|
|
11680
|
+
throw new Error(spaceTrim$1(`
|
|
11681
|
+
Google Calendar API request failed (${response.status} ${response.statusText}):
|
|
11682
|
+
${extractGoogleCalendarApiErrorMessage(parsedPayload, textPayload)}
|
|
11683
|
+
`));
|
|
11684
|
+
}
|
|
11685
|
+
return parsedPayload;
|
|
11686
|
+
}
|
|
11687
|
+
/**
|
|
11688
|
+
* Parses raw text into JSON when possible.
|
|
11689
|
+
*
|
|
11690
|
+
* @private function of callGoogleCalendarApi
|
|
11691
|
+
*/
|
|
11692
|
+
function tryParseJson$2(rawText) {
|
|
11693
|
+
if (!rawText.trim()) {
|
|
11694
|
+
return {};
|
|
11695
|
+
}
|
|
11696
|
+
try {
|
|
11697
|
+
return JSON.parse(rawText);
|
|
11698
|
+
}
|
|
11699
|
+
catch (_a) {
|
|
11700
|
+
return rawText;
|
|
11701
|
+
}
|
|
11702
|
+
}
|
|
11703
|
+
/**
|
|
11704
|
+
* Extracts a user-friendly Google Calendar API error message.
|
|
11705
|
+
*
|
|
11706
|
+
* @private function of callGoogleCalendarApi
|
|
11707
|
+
*/
|
|
11708
|
+
function extractGoogleCalendarApiErrorMessage(parsedPayload, fallbackText) {
|
|
11709
|
+
if (parsedPayload && typeof parsedPayload === 'object') {
|
|
11710
|
+
const payload = parsedPayload;
|
|
11711
|
+
const errorPayload = payload.error;
|
|
11712
|
+
if (errorPayload && typeof errorPayload === 'object') {
|
|
11713
|
+
const normalizedErrorPayload = errorPayload;
|
|
11714
|
+
const message = typeof normalizedErrorPayload.message === 'string' ? normalizedErrorPayload.message : '';
|
|
11715
|
+
const errors = Array.isArray(normalizedErrorPayload.errors) ? normalizedErrorPayload.errors : [];
|
|
11716
|
+
const flattenedErrors = errors
|
|
11717
|
+
.map((errorEntry) => {
|
|
11718
|
+
if (!errorEntry || typeof errorEntry !== 'object') {
|
|
11719
|
+
return '';
|
|
11720
|
+
}
|
|
11721
|
+
const normalizedErrorEntry = errorEntry;
|
|
11722
|
+
const detailMessage = typeof normalizedErrorEntry.message === 'string' ? normalizedErrorEntry.message : '';
|
|
11723
|
+
const reason = typeof normalizedErrorEntry.reason === 'string' ? normalizedErrorEntry.reason : '';
|
|
11724
|
+
return [detailMessage, reason].filter(Boolean).join(' | ');
|
|
11725
|
+
})
|
|
11726
|
+
.filter(Boolean);
|
|
11727
|
+
if (message || flattenedErrors.length > 0) {
|
|
11728
|
+
return [message, ...flattenedErrors].filter(Boolean).join(' | ');
|
|
11729
|
+
}
|
|
11730
|
+
}
|
|
11731
|
+
}
|
|
11732
|
+
return fallbackText || 'Unknown Google Calendar API error';
|
|
11733
|
+
}
|
|
11734
|
+
|
|
11735
|
+
/**
|
|
11736
|
+
* Hostnames accepted for Google Calendar references.
|
|
11737
|
+
*
|
|
11738
|
+
* @private internal USE CALENDAR constant
|
|
11739
|
+
*/
|
|
11740
|
+
const GOOGLE_CALENDAR_HOSTNAMES = new Set(['calendar.google.com', 'www.calendar.google.com']);
|
|
11741
|
+
/**
|
|
11742
|
+
* Default Google Calendar OAuth scopes when commitment content does not list any.
|
|
11743
|
+
*
|
|
11744
|
+
* @private internal USE CALENDAR constant
|
|
11745
|
+
*/
|
|
11746
|
+
const DEFAULT_GOOGLE_CALENDAR_SCOPES = ['https://www.googleapis.com/auth/calendar'];
|
|
11747
|
+
/**
|
|
11748
|
+
* Parses one Google Calendar URL/reference into canonical details.
|
|
11749
|
+
*
|
|
11750
|
+
* Supported input forms:
|
|
11751
|
+
* - `https://calendar.google.com/...`
|
|
11752
|
+
* - `calendar.google.com/...`
|
|
11753
|
+
*
|
|
11754
|
+
* @private internal utility of USE CALENDAR commitment
|
|
11755
|
+
*/
|
|
11756
|
+
function parseGoogleCalendarReference(rawReference) {
|
|
11757
|
+
const trimmedReference = rawReference.trim();
|
|
11758
|
+
if (!trimmedReference) {
|
|
11759
|
+
return null;
|
|
11760
|
+
}
|
|
11761
|
+
const normalizedReference = trimmedReference.startsWith('calendar.google.com/')
|
|
11762
|
+
? `https://${trimmedReference}`
|
|
11763
|
+
: trimmedReference;
|
|
11764
|
+
let parsedUrl;
|
|
11765
|
+
try {
|
|
11766
|
+
parsedUrl = new URL(normalizedReference);
|
|
11767
|
+
}
|
|
11768
|
+
catch (_a) {
|
|
11769
|
+
return null;
|
|
11770
|
+
}
|
|
11771
|
+
if (!GOOGLE_CALENDAR_HOSTNAMES.has(parsedUrl.hostname.toLowerCase())) {
|
|
11772
|
+
return null;
|
|
11773
|
+
}
|
|
11774
|
+
parsedUrl.protocol = 'https:';
|
|
11775
|
+
parsedUrl.hash = '';
|
|
11776
|
+
return {
|
|
11777
|
+
provider: 'google',
|
|
11778
|
+
url: parsedUrl.toString(),
|
|
11779
|
+
calendarId: parseGoogleCalendarIdFromUrl(parsedUrl) || 'primary',
|
|
11780
|
+
scopes: [...DEFAULT_GOOGLE_CALENDAR_SCOPES],
|
|
11781
|
+
};
|
|
11782
|
+
}
|
|
11783
|
+
/**
|
|
11784
|
+
* Parses `USE CALENDAR` commitment content into calendar reference + optional instructions.
|
|
11785
|
+
*
|
|
11786
|
+
* @private internal utility of USE CALENDAR commitment
|
|
11787
|
+
*/
|
|
11788
|
+
function parseUseCalendarCommitmentContent(content) {
|
|
11789
|
+
const trimmedContent = spaceTrim$1(content);
|
|
11790
|
+
if (!trimmedContent) {
|
|
11791
|
+
return {
|
|
11792
|
+
calendar: null,
|
|
11793
|
+
calendarUrlRaw: null,
|
|
11794
|
+
instructions: '',
|
|
11795
|
+
};
|
|
11796
|
+
}
|
|
11797
|
+
const lines = trimmedContent
|
|
11798
|
+
.split(/\r?\n/)
|
|
11799
|
+
.map((line) => line.trim())
|
|
11800
|
+
.filter(Boolean);
|
|
11801
|
+
if (lines.length === 0) {
|
|
11802
|
+
return {
|
|
11803
|
+
calendar: null,
|
|
11804
|
+
calendarUrlRaw: null,
|
|
11805
|
+
instructions: '',
|
|
11806
|
+
};
|
|
11807
|
+
}
|
|
11808
|
+
let calendarReferenceRaw = null;
|
|
11809
|
+
let calendarReference = null;
|
|
11810
|
+
const firstLine = lines[0] || '';
|
|
11811
|
+
const firstLineTokens = firstLine.split(/\s+/).filter(Boolean);
|
|
11812
|
+
for (const token of firstLineTokens) {
|
|
11813
|
+
const cleanedToken = token.replace(/[),.;:!?]+$/g, '');
|
|
11814
|
+
const parsedReference = parseGoogleCalendarReference(cleanedToken);
|
|
11815
|
+
if (!parsedReference) {
|
|
11816
|
+
continue;
|
|
11817
|
+
}
|
|
11818
|
+
calendarReferenceRaw = cleanedToken;
|
|
11819
|
+
calendarReference = parsedReference;
|
|
11820
|
+
break;
|
|
11821
|
+
}
|
|
11822
|
+
if (!calendarReference) {
|
|
11823
|
+
const firstUrl = findFirstUrlToken(trimmedContent);
|
|
11824
|
+
if (firstUrl) {
|
|
11825
|
+
calendarReferenceRaw = firstUrl;
|
|
11826
|
+
calendarReference = parseGoogleCalendarReference(firstUrl);
|
|
11827
|
+
}
|
|
11828
|
+
}
|
|
11829
|
+
const scopes = extractGoogleCalendarScopes(trimmedContent);
|
|
11830
|
+
if (calendarReference) {
|
|
11831
|
+
calendarReference = {
|
|
11832
|
+
...calendarReference,
|
|
11833
|
+
scopes: scopes.length > 0 ? scopes : [...DEFAULT_GOOGLE_CALENDAR_SCOPES],
|
|
11834
|
+
tokenRef: extractTokenRef(trimmedContent),
|
|
11835
|
+
};
|
|
11836
|
+
}
|
|
11837
|
+
const instructionLines = [...lines];
|
|
11838
|
+
if (instructionLines.length > 0 && calendarReferenceRaw) {
|
|
11839
|
+
instructionLines[0] = removeTokenFromLine(instructionLines[0] || '', calendarReferenceRaw);
|
|
11840
|
+
}
|
|
11841
|
+
const filteredInstructionLines = instructionLines.filter((line) => !/^\s*SCOPES?\s+/i.test(line) && !line.trim().startsWith('https://www.googleapis.com/auth/'));
|
|
11842
|
+
return {
|
|
11843
|
+
calendar: calendarReference,
|
|
11844
|
+
calendarUrlRaw: calendarReferenceRaw,
|
|
11845
|
+
instructions: filteredInstructionLines.join('\n').trim(),
|
|
11846
|
+
};
|
|
11847
|
+
}
|
|
11848
|
+
/**
|
|
11849
|
+
* Attempts to resolve one concrete Google Calendar id from URL.
|
|
11850
|
+
*
|
|
11851
|
+
* @private internal utility of USE CALENDAR commitment
|
|
11852
|
+
*/
|
|
11853
|
+
function parseGoogleCalendarIdFromUrl(url) {
|
|
11854
|
+
const rawCalendarId = url.searchParams.get('cid') || url.searchParams.get('src') || url.searchParams.get('calendarId');
|
|
11855
|
+
if (!rawCalendarId) {
|
|
11856
|
+
return null;
|
|
11857
|
+
}
|
|
11858
|
+
const decodedCalendarId = decodeURIComponent(rawCalendarId).trim();
|
|
11859
|
+
return decodedCalendarId || null;
|
|
11860
|
+
}
|
|
11861
|
+
/**
|
|
11862
|
+
* Finds the first URL-looking token in text.
|
|
11863
|
+
*
|
|
11864
|
+
* @private utility of USE CALENDAR commitment
|
|
11865
|
+
*/
|
|
11866
|
+
function findFirstUrlToken(text) {
|
|
11867
|
+
const match = text.match(/https?:\/\/[^\s)]+/i);
|
|
11868
|
+
return match ? match[0] || null : null;
|
|
11869
|
+
}
|
|
11870
|
+
/**
|
|
11871
|
+
* Extracts Google Calendar OAuth scopes declared in commitment text.
|
|
11872
|
+
*
|
|
11873
|
+
* @private utility of USE CALENDAR commitment
|
|
11874
|
+
*/
|
|
11875
|
+
function extractGoogleCalendarScopes(content) {
|
|
11876
|
+
const scopesFromUrls = content.match(/https:\/\/www\.googleapis\.com\/auth\/[A-Za-z0-9._/-]+/gim) || [];
|
|
11877
|
+
const scopesFromKeywordLines = content
|
|
11878
|
+
.split(/\r?\n/)
|
|
11879
|
+
.map((line) => line.trim())
|
|
11880
|
+
.filter((line) => /^\s*SCOPES?\s+/i.test(line))
|
|
11881
|
+
.flatMap((line) => line
|
|
11882
|
+
.replace(/^\s*SCOPES?\s+/i, '')
|
|
11883
|
+
.split(/[,\s]+/)
|
|
11884
|
+
.map((scope) => scope.trim())
|
|
11885
|
+
.filter(Boolean))
|
|
11886
|
+
.filter((scope) => scope.startsWith('https://www.googleapis.com/auth/'));
|
|
11887
|
+
const uniqueScopes = new Set();
|
|
11888
|
+
for (const scope of [...scopesFromUrls, ...scopesFromKeywordLines]) {
|
|
11889
|
+
uniqueScopes.add(scope);
|
|
11890
|
+
}
|
|
11891
|
+
return [...uniqueScopes];
|
|
11892
|
+
}
|
|
11893
|
+
/**
|
|
11894
|
+
* Extracts optional token reference marker from commitment text.
|
|
11895
|
+
*
|
|
11896
|
+
* @private utility of USE CALENDAR commitment
|
|
11897
|
+
*/
|
|
11898
|
+
function extractTokenRef(content) {
|
|
11899
|
+
var _a;
|
|
11900
|
+
const tokenRefMatch = content.match(/@[\w.-]+/);
|
|
11901
|
+
const tokenRef = (_a = tokenRefMatch === null || tokenRefMatch === void 0 ? void 0 : tokenRefMatch[0]) === null || _a === void 0 ? void 0 : _a.trim();
|
|
11902
|
+
return tokenRef || undefined;
|
|
11903
|
+
}
|
|
11904
|
+
/**
|
|
11905
|
+
* Removes one specific token from one instruction line.
|
|
11906
|
+
*
|
|
11907
|
+
* @private utility of USE CALENDAR commitment
|
|
11908
|
+
*/
|
|
11909
|
+
function removeTokenFromLine(line, token) {
|
|
11910
|
+
const tokens = line.split(/\s+/).filter(Boolean);
|
|
11911
|
+
const filteredTokens = tokens.filter((lineToken) => lineToken.replace(/[),.;:!?]+$/g, '') !== token);
|
|
11912
|
+
return filteredTokens.join(' ').trim();
|
|
11913
|
+
}
|
|
11914
|
+
/**
|
|
11915
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
11916
|
+
*/
|
|
11917
|
+
|
|
11918
|
+
/**
|
|
11919
|
+
* Wallet metadata used by USE CALENDAR when resolving Google Calendar credentials.
|
|
11920
|
+
*
|
|
11921
|
+
* @private constant of UseCalendarCommitmentDefinition
|
|
11922
|
+
*/
|
|
11923
|
+
const UseCalendarWallet = {
|
|
11924
|
+
service: 'google_calendar',
|
|
11925
|
+
key: 'use-calendar-google-token',
|
|
11926
|
+
};
|
|
11927
|
+
|
|
11928
|
+
/**
|
|
11929
|
+
* Internal error used to signal missing wallet credentials.
|
|
11930
|
+
*
|
|
11931
|
+
* @private class of resolveUseCalendarToolRuntimeOrWalletCredentialResult
|
|
11932
|
+
*/
|
|
11933
|
+
class CalendarWalletCredentialRequiredError extends Error {
|
|
11934
|
+
constructor(options) {
|
|
11935
|
+
super('Google Calendar token is missing in wallet. Request it from user and store as ACCESS_TOKEN (service google_calendar, key use-calendar-google-token).');
|
|
11936
|
+
this.name = 'CalendarWalletCredentialRequiredError';
|
|
11937
|
+
this.service = UseCalendarWallet.service;
|
|
11938
|
+
this.key = UseCalendarWallet.key;
|
|
11939
|
+
this.calendarReference = options.calendarReference;
|
|
11940
|
+
}
|
|
11941
|
+
}
|
|
11942
|
+
/**
|
|
11943
|
+
* Resolves calendar runtime or returns a wallet-credential-required payload when missing.
|
|
11944
|
+
*
|
|
11945
|
+
* @private function of UseCalendarCommitmentDefinition
|
|
11946
|
+
*/
|
|
11947
|
+
function resolveUseCalendarToolRuntimeOrWalletCredentialResult(args) {
|
|
11948
|
+
try {
|
|
11949
|
+
return resolveUseCalendarToolRuntime(args);
|
|
11950
|
+
}
|
|
11951
|
+
catch (error) {
|
|
11952
|
+
if (error instanceof CalendarWalletCredentialRequiredError) {
|
|
11953
|
+
return {
|
|
11954
|
+
walletResult: JSON.stringify(createCalendarWalletCredentialRequiredResult(error)),
|
|
11955
|
+
};
|
|
11956
|
+
}
|
|
11957
|
+
throw error;
|
|
11958
|
+
}
|
|
11959
|
+
}
|
|
11960
|
+
/**
|
|
11961
|
+
* Resolves runtime calendar + token for a USE CALENDAR tool call.
|
|
11962
|
+
*
|
|
11963
|
+
* @private function of resolveUseCalendarToolRuntimeOrWalletCredentialResult
|
|
11964
|
+
*/
|
|
11965
|
+
function resolveUseCalendarToolRuntime(args) {
|
|
11966
|
+
var _a, _b;
|
|
11967
|
+
const runtimeContext = (readToolRuntimeContextFromToolArgs(args) ||
|
|
11968
|
+
{});
|
|
11969
|
+
const configuredCalendars = normalizeConfiguredCalendars$1((_a = runtimeContext.calendars) === null || _a === void 0 ? void 0 : _a.connections);
|
|
11970
|
+
const calendarArgument = normalizeOptionalText$1(args.calendarUrl);
|
|
11971
|
+
let calendarReference = null;
|
|
11972
|
+
if (calendarArgument) {
|
|
11973
|
+
calendarReference = parseGoogleCalendarReference(calendarArgument);
|
|
11974
|
+
if (!calendarReference) {
|
|
11975
|
+
throw new Error(`Calendar URL "${calendarArgument}" is invalid.`);
|
|
11976
|
+
}
|
|
11977
|
+
}
|
|
11978
|
+
else if (configuredCalendars.length === 1) {
|
|
11979
|
+
calendarReference = configuredCalendars[0] || null;
|
|
11980
|
+
}
|
|
11981
|
+
else if (configuredCalendars.length > 1) {
|
|
11982
|
+
throw new Error('Calendar is ambiguous. Provide "calendarUrl" argument with one calendar from USE CALENDAR commitments.');
|
|
11983
|
+
}
|
|
11984
|
+
else {
|
|
11985
|
+
throw new Error('Calendar is required. Provide "calendarUrl" argument in the tool call.');
|
|
11986
|
+
}
|
|
11987
|
+
if (!calendarReference) {
|
|
11988
|
+
throw new Error('Calendar is required but was not resolved.');
|
|
11989
|
+
}
|
|
11990
|
+
const accessToken = normalizeOptionalText$1((_b = runtimeContext.calendars) === null || _b === void 0 ? void 0 : _b.googleAccessToken) || '';
|
|
11991
|
+
if (!accessToken) {
|
|
11992
|
+
throw new CalendarWalletCredentialRequiredError({
|
|
11993
|
+
calendarReference,
|
|
11994
|
+
});
|
|
11995
|
+
}
|
|
11996
|
+
if (configuredCalendars.length > 0) {
|
|
11997
|
+
const allowedCalendarUrls = new Set(configuredCalendars.map((configuredCalendar) => configuredCalendar.url));
|
|
11998
|
+
if (!allowedCalendarUrls.has(calendarReference.url)) {
|
|
11999
|
+
throw new Error(`Calendar "${calendarReference.url}" is not configured by USE CALENDAR for this agent.`);
|
|
12000
|
+
}
|
|
12001
|
+
}
|
|
12002
|
+
return {
|
|
12003
|
+
calendarReference,
|
|
12004
|
+
accessToken,
|
|
12005
|
+
};
|
|
12006
|
+
}
|
|
12007
|
+
/**
|
|
12008
|
+
* Normalizes optional calendar list from runtime context.
|
|
12009
|
+
*
|
|
12010
|
+
* @private function of resolveUseCalendarToolRuntimeOrWalletCredentialResult
|
|
12011
|
+
*/
|
|
12012
|
+
function normalizeConfiguredCalendars$1(rawCalendars) {
|
|
12013
|
+
if (!Array.isArray(rawCalendars)) {
|
|
12014
|
+
return [];
|
|
12015
|
+
}
|
|
12016
|
+
const calendars = [];
|
|
12017
|
+
const knownCalendars = new Set();
|
|
12018
|
+
for (const rawCalendar of rawCalendars) {
|
|
12019
|
+
if (!rawCalendar || typeof rawCalendar !== 'object') {
|
|
12020
|
+
continue;
|
|
12021
|
+
}
|
|
12022
|
+
const calendar = rawCalendar;
|
|
12023
|
+
const rawUrl = normalizeOptionalText$1(calendar.url);
|
|
12024
|
+
if (!rawUrl) {
|
|
12025
|
+
continue;
|
|
12026
|
+
}
|
|
12027
|
+
const parsedReference = parseGoogleCalendarReference(rawUrl);
|
|
12028
|
+
if (!parsedReference) {
|
|
12029
|
+
continue;
|
|
12030
|
+
}
|
|
12031
|
+
const key = `${parsedReference.provider}|${parsedReference.url}`;
|
|
12032
|
+
if (knownCalendars.has(key)) {
|
|
12033
|
+
continue;
|
|
12034
|
+
}
|
|
12035
|
+
knownCalendars.add(key);
|
|
12036
|
+
const scopes = Array.isArray(calendar.scopes)
|
|
12037
|
+
? calendar.scopes
|
|
12038
|
+
.filter((scope) => typeof scope === 'string')
|
|
12039
|
+
.map((scope) => scope.trim())
|
|
12040
|
+
.filter(Boolean)
|
|
12041
|
+
: [];
|
|
12042
|
+
calendars.push({
|
|
12043
|
+
...parsedReference,
|
|
12044
|
+
scopes: scopes.length > 0 ? scopes : parsedReference.scopes,
|
|
12045
|
+
});
|
|
12046
|
+
}
|
|
12047
|
+
return calendars;
|
|
12048
|
+
}
|
|
12049
|
+
/**
|
|
12050
|
+
* Converts missing-wallet errors into structured tool result payloads.
|
|
12051
|
+
*
|
|
12052
|
+
* @private function of resolveUseCalendarToolRuntimeOrWalletCredentialResult
|
|
12053
|
+
*/
|
|
12054
|
+
function createCalendarWalletCredentialRequiredResult(error) {
|
|
12055
|
+
return {
|
|
12056
|
+
action: 'calendar-auth',
|
|
12057
|
+
status: 'wallet-credential-required',
|
|
12058
|
+
recordType: 'ACCESS_TOKEN',
|
|
12059
|
+
service: error.service,
|
|
12060
|
+
key: error.key,
|
|
12061
|
+
isUserScoped: false,
|
|
12062
|
+
isGlobal: false,
|
|
12063
|
+
provider: 'google',
|
|
12064
|
+
calendarUrl: error.calendarReference.url,
|
|
12065
|
+
scopes: error.calendarReference.scopes,
|
|
12066
|
+
message: error.message,
|
|
12067
|
+
};
|
|
12068
|
+
}
|
|
12069
|
+
/**
|
|
12070
|
+
* Normalizes unknown text input to trimmed non-empty string.
|
|
12071
|
+
*
|
|
12072
|
+
* @private function of resolveUseCalendarToolRuntimeOrWalletCredentialResult
|
|
12073
|
+
*/
|
|
12074
|
+
function normalizeOptionalText$1(value) {
|
|
12075
|
+
if (typeof value !== 'string') {
|
|
12076
|
+
return undefined;
|
|
12077
|
+
}
|
|
12078
|
+
const trimmedValue = value.trim();
|
|
12079
|
+
return trimmedValue || undefined;
|
|
12080
|
+
}
|
|
12081
|
+
|
|
12082
|
+
/**
|
|
12083
|
+
* Names of tools used by the USE CALENDAR commitment.
|
|
12084
|
+
*
|
|
12085
|
+
* @private constant of UseCalendarCommitmentDefinition
|
|
12086
|
+
*/
|
|
12087
|
+
const UseCalendarToolNames = {
|
|
12088
|
+
listEvents: 'calendar_list_events',
|
|
12089
|
+
getEvent: 'calendar_get_event',
|
|
12090
|
+
createEvent: 'calendar_create_event',
|
|
12091
|
+
updateEvent: 'calendar_update_event',
|
|
12092
|
+
deleteEvent: 'calendar_delete_event',
|
|
12093
|
+
inviteGuests: 'calendar_invite_guests',
|
|
12094
|
+
};
|
|
12095
|
+
|
|
12096
|
+
/**
|
|
12097
|
+
* Gets Google Calendar tool function implementations.
|
|
12098
|
+
*
|
|
12099
|
+
* @private function of UseCalendarCommitmentDefinition
|
|
12100
|
+
*/
|
|
12101
|
+
function createUseCalendarToolFunctions() {
|
|
12102
|
+
return {
|
|
12103
|
+
async [UseCalendarToolNames.listEvents](args) {
|
|
12104
|
+
return withUseCalendarRuntime(args, async ({ calendarReference, accessToken }) => {
|
|
12105
|
+
const query = {};
|
|
12106
|
+
if (normalizeOptionalText(args.timeMin)) {
|
|
12107
|
+
query.timeMin = args.timeMin.trim();
|
|
12108
|
+
}
|
|
12109
|
+
if (normalizeOptionalText(args.timeMax)) {
|
|
12110
|
+
query.timeMax = args.timeMax.trim();
|
|
12111
|
+
}
|
|
12112
|
+
if (normalizeOptionalText(args.query)) {
|
|
12113
|
+
query.q = args.query.trim();
|
|
12114
|
+
}
|
|
12115
|
+
if (typeof args.maxResults === 'number' && Number.isFinite(args.maxResults) && args.maxResults > 0) {
|
|
12116
|
+
query.maxResults = String(Math.floor(args.maxResults));
|
|
12117
|
+
}
|
|
12118
|
+
if (args.singleEvents !== undefined) {
|
|
12119
|
+
query.singleEvents = args.singleEvents ? 'true' : 'false';
|
|
12120
|
+
}
|
|
12121
|
+
if (args.orderBy === 'startTime' || args.orderBy === 'updated') {
|
|
12122
|
+
query.orderBy = args.orderBy;
|
|
12123
|
+
}
|
|
12124
|
+
if (normalizeOptionalText(args.timeZone)) {
|
|
12125
|
+
query.timeZone = args.timeZone.trim();
|
|
12126
|
+
}
|
|
12127
|
+
const payload = await callGoogleCalendarApi(accessToken, {
|
|
12128
|
+
method: 'GET',
|
|
12129
|
+
path: `/calendars/${encodeGoogleCalendarId(calendarReference.calendarId)}/events`,
|
|
12130
|
+
query,
|
|
12131
|
+
});
|
|
12132
|
+
const events = ((payload === null || payload === void 0 ? void 0 : payload.items) || []).map((event) => mapGoogleCalendarEvent(event));
|
|
12133
|
+
return JSON.stringify({
|
|
12134
|
+
provider: calendarReference.provider,
|
|
12135
|
+
calendarUrl: calendarReference.url,
|
|
12136
|
+
calendarId: calendarReference.calendarId,
|
|
12137
|
+
events,
|
|
12138
|
+
nextPageToken: (payload === null || payload === void 0 ? void 0 : payload.nextPageToken) || null,
|
|
12139
|
+
nextSyncToken: (payload === null || payload === void 0 ? void 0 : payload.nextSyncToken) || null,
|
|
12140
|
+
});
|
|
12141
|
+
});
|
|
12142
|
+
},
|
|
12143
|
+
async [UseCalendarToolNames.getEvent](args) {
|
|
12144
|
+
return withUseCalendarRuntime(args, async ({ calendarReference, accessToken }) => {
|
|
12145
|
+
const eventId = normalizeRequiredText(args.eventId, 'eventId');
|
|
12146
|
+
const payload = await callGoogleCalendarApi(accessToken, {
|
|
12147
|
+
method: 'GET',
|
|
12148
|
+
path: `/calendars/${encodeGoogleCalendarId(calendarReference.calendarId)}/events/${encodeURIComponent(eventId)}`,
|
|
12149
|
+
});
|
|
12150
|
+
return JSON.stringify({
|
|
12151
|
+
provider: calendarReference.provider,
|
|
12152
|
+
calendarUrl: calendarReference.url,
|
|
12153
|
+
calendarId: calendarReference.calendarId,
|
|
12154
|
+
event: mapGoogleCalendarEvent(payload || {}),
|
|
12155
|
+
});
|
|
12156
|
+
});
|
|
12157
|
+
},
|
|
12158
|
+
async [UseCalendarToolNames.createEvent](args) {
|
|
12159
|
+
return withUseCalendarRuntime(args, async ({ calendarReference, accessToken }) => {
|
|
12160
|
+
const requestBody = createGoogleCalendarEventPayload({
|
|
12161
|
+
summary: normalizeRequiredText(args.summary, 'summary'),
|
|
12162
|
+
description: normalizeOptionalText(args.description),
|
|
12163
|
+
location: normalizeOptionalText(args.location),
|
|
12164
|
+
start: normalizeRequiredText(args.start, 'start'),
|
|
12165
|
+
end: normalizeRequiredText(args.end, 'end'),
|
|
12166
|
+
timeZone: normalizeOptionalText(args.timeZone),
|
|
12167
|
+
attendees: normalizeAttendees(args.attendees),
|
|
12168
|
+
reminderMinutes: normalizeReminderMinutes(args.reminderMinutes),
|
|
12169
|
+
});
|
|
12170
|
+
const payload = await callGoogleCalendarApi(accessToken, {
|
|
12171
|
+
method: 'POST',
|
|
12172
|
+
path: `/calendars/${encodeGoogleCalendarId(calendarReference.calendarId)}/events`,
|
|
12173
|
+
query: createSendUpdatesQuery(args.sendUpdates),
|
|
12174
|
+
body: requestBody,
|
|
12175
|
+
});
|
|
12176
|
+
return JSON.stringify({
|
|
12177
|
+
provider: calendarReference.provider,
|
|
12178
|
+
calendarUrl: calendarReference.url,
|
|
12179
|
+
calendarId: calendarReference.calendarId,
|
|
12180
|
+
event: mapGoogleCalendarEvent(payload || {}),
|
|
12181
|
+
});
|
|
12182
|
+
});
|
|
12183
|
+
},
|
|
12184
|
+
async [UseCalendarToolNames.updateEvent](args) {
|
|
12185
|
+
return withUseCalendarRuntime(args, async ({ calendarReference, accessToken }) => {
|
|
12186
|
+
const eventId = normalizeRequiredText(args.eventId, 'eventId');
|
|
12187
|
+
const requestBody = createGoogleCalendarEventPayload({
|
|
12188
|
+
summary: normalizeOptionalText(args.summary),
|
|
12189
|
+
description: normalizeOptionalText(args.description),
|
|
12190
|
+
location: normalizeOptionalText(args.location),
|
|
12191
|
+
start: normalizeOptionalText(args.start),
|
|
12192
|
+
end: normalizeOptionalText(args.end),
|
|
12193
|
+
timeZone: normalizeOptionalText(args.timeZone),
|
|
12194
|
+
attendees: normalizeAttendees(args.attendees),
|
|
12195
|
+
reminderMinutes: normalizeReminderMinutes(args.reminderMinutes),
|
|
12196
|
+
});
|
|
12197
|
+
const payload = await callGoogleCalendarApi(accessToken, {
|
|
12198
|
+
method: 'PATCH',
|
|
12199
|
+
path: `/calendars/${encodeGoogleCalendarId(calendarReference.calendarId)}/events/${encodeURIComponent(eventId)}`,
|
|
12200
|
+
query: createSendUpdatesQuery(args.sendUpdates),
|
|
12201
|
+
body: requestBody,
|
|
12202
|
+
});
|
|
12203
|
+
return JSON.stringify({
|
|
12204
|
+
provider: calendarReference.provider,
|
|
12205
|
+
calendarUrl: calendarReference.url,
|
|
12206
|
+
calendarId: calendarReference.calendarId,
|
|
12207
|
+
event: mapGoogleCalendarEvent(payload || {}),
|
|
12208
|
+
});
|
|
12209
|
+
});
|
|
12210
|
+
},
|
|
12211
|
+
async [UseCalendarToolNames.deleteEvent](args) {
|
|
12212
|
+
return withUseCalendarRuntime(args, async ({ calendarReference, accessToken }) => {
|
|
12213
|
+
const eventId = normalizeRequiredText(args.eventId, 'eventId');
|
|
12214
|
+
await callGoogleCalendarApi(accessToken, {
|
|
12215
|
+
method: 'DELETE',
|
|
12216
|
+
path: `/calendars/${encodeGoogleCalendarId(calendarReference.calendarId)}/events/${encodeURIComponent(eventId)}`,
|
|
12217
|
+
query: createSendUpdatesQuery(args.sendUpdates),
|
|
12218
|
+
});
|
|
12219
|
+
return JSON.stringify({
|
|
12220
|
+
provider: calendarReference.provider,
|
|
12221
|
+
calendarUrl: calendarReference.url,
|
|
12222
|
+
calendarId: calendarReference.calendarId,
|
|
12223
|
+
eventId,
|
|
12224
|
+
status: 'deleted',
|
|
12225
|
+
});
|
|
12226
|
+
});
|
|
12227
|
+
},
|
|
12228
|
+
async [UseCalendarToolNames.inviteGuests](args) {
|
|
12229
|
+
return withUseCalendarRuntime(args, async ({ calendarReference, accessToken }) => {
|
|
12230
|
+
const eventId = normalizeRequiredText(args.eventId, 'eventId');
|
|
12231
|
+
const guests = normalizeAttendees(args.guests);
|
|
12232
|
+
if (guests.length === 0) {
|
|
12233
|
+
throw new Error('Tool "calendar_invite_guests" requires non-empty "guests".');
|
|
12234
|
+
}
|
|
12235
|
+
const existingEvent = await callGoogleCalendarApi(accessToken, {
|
|
12236
|
+
method: 'GET',
|
|
12237
|
+
path: `/calendars/${encodeGoogleCalendarId(calendarReference.calendarId)}/events/${encodeURIComponent(eventId)}`,
|
|
12238
|
+
});
|
|
12239
|
+
const existingAttendees = ((existingEvent === null || existingEvent === void 0 ? void 0 : existingEvent.attendees) || [])
|
|
12240
|
+
.map((attendee) => normalizeOptionalText(attendee.email))
|
|
12241
|
+
.filter((email) => Boolean(email));
|
|
12242
|
+
const mergedAttendees = [...new Set([...existingAttendees, ...guests])];
|
|
12243
|
+
const payload = await callGoogleCalendarApi(accessToken, {
|
|
12244
|
+
method: 'PATCH',
|
|
12245
|
+
path: `/calendars/${encodeGoogleCalendarId(calendarReference.calendarId)}/events/${encodeURIComponent(eventId)}`,
|
|
12246
|
+
query: createSendUpdatesQuery(args.sendUpdates),
|
|
12247
|
+
body: {
|
|
12248
|
+
attendees: mergedAttendees.map((email) => ({ email })),
|
|
12249
|
+
},
|
|
12250
|
+
});
|
|
12251
|
+
return JSON.stringify({
|
|
12252
|
+
provider: calendarReference.provider,
|
|
12253
|
+
calendarUrl: calendarReference.url,
|
|
12254
|
+
calendarId: calendarReference.calendarId,
|
|
12255
|
+
event: mapGoogleCalendarEvent(payload || {}),
|
|
12256
|
+
invitedGuests: guests,
|
|
12257
|
+
});
|
|
12258
|
+
});
|
|
12259
|
+
},
|
|
12260
|
+
};
|
|
12261
|
+
}
|
|
12262
|
+
/**
|
|
12263
|
+
* Executes one tool operation with resolved USE CALENDAR runtime.
|
|
12264
|
+
*
|
|
12265
|
+
* @private function of createUseCalendarToolFunctions
|
|
12266
|
+
*/
|
|
12267
|
+
async function withUseCalendarRuntime(args, operation) {
|
|
12268
|
+
const runtime = resolveUseCalendarToolRuntimeOrWalletCredentialResult(args);
|
|
12269
|
+
if ('walletResult' in runtime) {
|
|
12270
|
+
return runtime.walletResult;
|
|
12271
|
+
}
|
|
12272
|
+
return operation(runtime);
|
|
12273
|
+
}
|
|
12274
|
+
/**
|
|
12275
|
+
* Encodes one Google calendar id for URL path usage.
|
|
12276
|
+
*
|
|
12277
|
+
* @private function of createUseCalendarToolFunctions
|
|
12278
|
+
*/
|
|
12279
|
+
function encodeGoogleCalendarId(calendarId) {
|
|
12280
|
+
return encodeURIComponent(calendarId);
|
|
12281
|
+
}
|
|
12282
|
+
/**
|
|
12283
|
+
* Normalizes one required textual input.
|
|
12284
|
+
*
|
|
12285
|
+
* @private function of createUseCalendarToolFunctions
|
|
12286
|
+
*/
|
|
12287
|
+
function normalizeRequiredText(value, fieldName) {
|
|
12288
|
+
const normalizedValue = normalizeOptionalText(value);
|
|
12289
|
+
if (!normalizedValue) {
|
|
12290
|
+
throw new Error(`Tool "${fieldName}" requires non-empty value.`);
|
|
12291
|
+
}
|
|
12292
|
+
return normalizedValue;
|
|
12293
|
+
}
|
|
12294
|
+
/**
|
|
12295
|
+
* Normalizes unknown text input to trimmed non-empty string.
|
|
12296
|
+
*
|
|
12297
|
+
* @private function of createUseCalendarToolFunctions
|
|
12298
|
+
*/
|
|
12299
|
+
function normalizeOptionalText(value) {
|
|
12300
|
+
if (typeof value !== 'string') {
|
|
12301
|
+
return undefined;
|
|
12302
|
+
}
|
|
12303
|
+
const trimmedValue = value.trim();
|
|
12304
|
+
return trimmedValue || undefined;
|
|
12305
|
+
}
|
|
12306
|
+
/**
|
|
12307
|
+
* Normalizes optional attendee list from tool input.
|
|
12308
|
+
*
|
|
12309
|
+
* @private function of createUseCalendarToolFunctions
|
|
12310
|
+
*/
|
|
12311
|
+
function normalizeAttendees(value) {
|
|
12312
|
+
if (!Array.isArray(value)) {
|
|
12313
|
+
return [];
|
|
12314
|
+
}
|
|
12315
|
+
const normalizedAttendees = value
|
|
12316
|
+
.filter((attendee) => typeof attendee === 'string')
|
|
12317
|
+
.map((attendee) => attendee.trim())
|
|
12318
|
+
.filter(Boolean);
|
|
12319
|
+
return [...new Set(normalizedAttendees)];
|
|
12320
|
+
}
|
|
12321
|
+
/**
|
|
12322
|
+
* Normalizes optional reminder-minute offsets from tool input.
|
|
12323
|
+
*
|
|
12324
|
+
* @private function of createUseCalendarToolFunctions
|
|
12325
|
+
*/
|
|
12326
|
+
function normalizeReminderMinutes(value) {
|
|
12327
|
+
if (!Array.isArray(value)) {
|
|
12328
|
+
return [];
|
|
12329
|
+
}
|
|
12330
|
+
const reminderMinutes = value
|
|
12331
|
+
.filter((minute) => typeof minute === 'number' && Number.isFinite(minute))
|
|
12332
|
+
.map((minute) => Math.max(0, Math.floor(minute)));
|
|
12333
|
+
return [...new Set(reminderMinutes)];
|
|
12334
|
+
}
|
|
12335
|
+
/**
|
|
12336
|
+
* Builds optional `sendUpdates` query for mutating Google Calendar requests.
|
|
12337
|
+
*
|
|
12338
|
+
* @private function of createUseCalendarToolFunctions
|
|
12339
|
+
*/
|
|
12340
|
+
function createSendUpdatesQuery(sendUpdates) {
|
|
12341
|
+
if (sendUpdates === 'all' || sendUpdates === 'externalOnly' || sendUpdates === 'none') {
|
|
12342
|
+
return { sendUpdates };
|
|
12343
|
+
}
|
|
12344
|
+
return {};
|
|
12345
|
+
}
|
|
12346
|
+
/**
|
|
12347
|
+
* Creates one Google Calendar event payload from normalized tool arguments.
|
|
12348
|
+
*
|
|
12349
|
+
* @private function of createUseCalendarToolFunctions
|
|
12350
|
+
*/
|
|
12351
|
+
function createGoogleCalendarEventPayload(options) {
|
|
12352
|
+
const payload = {};
|
|
12353
|
+
if (options.summary) {
|
|
12354
|
+
payload.summary = options.summary;
|
|
12355
|
+
}
|
|
12356
|
+
if (options.description) {
|
|
12357
|
+
payload.description = options.description;
|
|
12358
|
+
}
|
|
12359
|
+
if (options.location) {
|
|
12360
|
+
payload.location = options.location;
|
|
12361
|
+
}
|
|
12362
|
+
if (options.start) {
|
|
12363
|
+
payload.start = createGoogleCalendarDateValue(options.start, options.timeZone);
|
|
12364
|
+
}
|
|
12365
|
+
if (options.end) {
|
|
12366
|
+
payload.end = createGoogleCalendarDateValue(options.end, options.timeZone);
|
|
12367
|
+
}
|
|
12368
|
+
if (options.attendees && options.attendees.length > 0) {
|
|
12369
|
+
payload.attendees = options.attendees.map((email) => ({ email }));
|
|
12370
|
+
}
|
|
12371
|
+
if (options.reminderMinutes && options.reminderMinutes.length > 0) {
|
|
12372
|
+
payload.reminders = {
|
|
12373
|
+
useDefault: false,
|
|
12374
|
+
overrides: options.reminderMinutes.map((minutes) => ({
|
|
12375
|
+
method: 'popup',
|
|
12376
|
+
minutes,
|
|
12377
|
+
})),
|
|
12378
|
+
};
|
|
12379
|
+
}
|
|
12380
|
+
return payload;
|
|
12381
|
+
}
|
|
12382
|
+
/**
|
|
12383
|
+
* Converts date/dateTime input into a Google Calendar-compatible date object.
|
|
12384
|
+
*
|
|
12385
|
+
* @private function of createUseCalendarToolFunctions
|
|
12386
|
+
*/
|
|
12387
|
+
function createGoogleCalendarDateValue(value, timeZone) {
|
|
12388
|
+
const isDateOnly = /^\d{4}-\d{2}-\d{2}$/.test(value);
|
|
12389
|
+
if (isDateOnly) {
|
|
12390
|
+
return {
|
|
12391
|
+
date: value,
|
|
12392
|
+
};
|
|
12393
|
+
}
|
|
12394
|
+
return {
|
|
12395
|
+
dateTime: value,
|
|
12396
|
+
...(timeZone ? { timeZone } : {}),
|
|
12397
|
+
};
|
|
12398
|
+
}
|
|
12399
|
+
/**
|
|
12400
|
+
* Maps raw Google Calendar event payload to a compact tool result object.
|
|
12401
|
+
*
|
|
12402
|
+
* @private function of createUseCalendarToolFunctions
|
|
12403
|
+
*/
|
|
12404
|
+
function mapGoogleCalendarEvent(event) {
|
|
12405
|
+
return {
|
|
12406
|
+
id: event.id || null,
|
|
12407
|
+
summary: event.summary || null,
|
|
12408
|
+
description: event.description || null,
|
|
12409
|
+
location: event.location || null,
|
|
12410
|
+
status: event.status || null,
|
|
12411
|
+
htmlLink: event.htmlLink || null,
|
|
12412
|
+
start: event.start || null,
|
|
12413
|
+
end: event.end || null,
|
|
12414
|
+
organizer: event.organizer || null,
|
|
12415
|
+
attendees: (event.attendees || []).map((attendee) => ({
|
|
12416
|
+
email: attendee.email || null,
|
|
12417
|
+
responseStatus: attendee.responseStatus || null,
|
|
12418
|
+
})),
|
|
12419
|
+
};
|
|
12420
|
+
}
|
|
12421
|
+
|
|
12422
|
+
/**
|
|
12423
|
+
* Shared calendar URL argument description used in USE CALENDAR tool schemas.
|
|
12424
|
+
*
|
|
12425
|
+
* @private constant of createUseCalendarTools
|
|
12426
|
+
*/
|
|
12427
|
+
const CALENDAR_URL_PARAMETER_DESCRIPTION = 'Google Calendar URL configured by USE CALENDAR (for example "https://calendar.google.com/...").';
|
|
12428
|
+
/**
|
|
12429
|
+
* Adds USE CALENDAR tool definitions while keeping already registered tools untouched.
|
|
12430
|
+
*
|
|
12431
|
+
* @private function of UseCalendarCommitmentDefinition
|
|
12432
|
+
*/
|
|
12433
|
+
function createUseCalendarTools(existingTools) {
|
|
12434
|
+
const updatedTools = [...existingTools];
|
|
12435
|
+
const addToolIfMissing = (tool) => {
|
|
12436
|
+
if (!updatedTools.some((existingTool) => existingTool.name === tool.name)) {
|
|
12437
|
+
updatedTools.push(tool);
|
|
12438
|
+
}
|
|
12439
|
+
};
|
|
12440
|
+
addToolIfMissing({
|
|
12441
|
+
name: UseCalendarToolNames.listEvents,
|
|
12442
|
+
description: 'List events from a configured calendar for a time range.',
|
|
12443
|
+
parameters: {
|
|
12444
|
+
type: 'object',
|
|
12445
|
+
properties: {
|
|
12446
|
+
calendarUrl: {
|
|
12447
|
+
type: 'string',
|
|
12448
|
+
description: CALENDAR_URL_PARAMETER_DESCRIPTION,
|
|
12449
|
+
},
|
|
12450
|
+
timeMin: {
|
|
12451
|
+
type: 'string',
|
|
12452
|
+
description: 'Inclusive event start bound in ISO datetime.',
|
|
12453
|
+
},
|
|
12454
|
+
timeMax: {
|
|
12455
|
+
type: 'string',
|
|
12456
|
+
description: 'Exclusive event end bound in ISO datetime.',
|
|
12457
|
+
},
|
|
12458
|
+
query: {
|
|
12459
|
+
type: 'string',
|
|
12460
|
+
description: 'Optional free-text event search query.',
|
|
12461
|
+
},
|
|
12462
|
+
maxResults: {
|
|
12463
|
+
type: 'integer',
|
|
12464
|
+
description: 'Maximum number of events to return.',
|
|
12465
|
+
},
|
|
12466
|
+
singleEvents: {
|
|
12467
|
+
type: 'boolean',
|
|
12468
|
+
description: 'Expand recurring events into individual instances.',
|
|
12469
|
+
},
|
|
12470
|
+
orderBy: {
|
|
12471
|
+
type: 'string',
|
|
12472
|
+
description: 'Optional ordering ("startTime" or "updated").',
|
|
12473
|
+
},
|
|
12474
|
+
timeZone: {
|
|
12475
|
+
type: 'string',
|
|
12476
|
+
description: 'Optional IANA timezone for response rendering.',
|
|
12477
|
+
},
|
|
12478
|
+
},
|
|
12479
|
+
required: [],
|
|
12480
|
+
},
|
|
12481
|
+
});
|
|
12482
|
+
addToolIfMissing({
|
|
12483
|
+
name: UseCalendarToolNames.getEvent,
|
|
12484
|
+
description: 'Get one event by id from a configured calendar.',
|
|
12485
|
+
parameters: {
|
|
12486
|
+
type: 'object',
|
|
12487
|
+
properties: {
|
|
12488
|
+
calendarUrl: {
|
|
12489
|
+
type: 'string',
|
|
12490
|
+
description: CALENDAR_URL_PARAMETER_DESCRIPTION,
|
|
12491
|
+
},
|
|
12492
|
+
eventId: {
|
|
12493
|
+
type: 'string',
|
|
12494
|
+
description: 'Google Calendar event id.',
|
|
12495
|
+
},
|
|
12496
|
+
},
|
|
12497
|
+
required: ['eventId'],
|
|
12498
|
+
},
|
|
12499
|
+
});
|
|
12500
|
+
addToolIfMissing({
|
|
12501
|
+
name: UseCalendarToolNames.createEvent,
|
|
12502
|
+
description: 'Create one event in a configured calendar.',
|
|
12503
|
+
parameters: {
|
|
12504
|
+
type: 'object',
|
|
12505
|
+
properties: {
|
|
12506
|
+
calendarUrl: {
|
|
12507
|
+
type: 'string',
|
|
12508
|
+
description: CALENDAR_URL_PARAMETER_DESCRIPTION,
|
|
12509
|
+
},
|
|
12510
|
+
summary: {
|
|
12511
|
+
type: 'string',
|
|
12512
|
+
description: 'Event title/summary.',
|
|
12513
|
+
},
|
|
12514
|
+
description: {
|
|
12515
|
+
type: 'string',
|
|
12516
|
+
description: 'Optional event description.',
|
|
12517
|
+
},
|
|
12518
|
+
location: {
|
|
12519
|
+
type: 'string',
|
|
12520
|
+
description: 'Optional event location.',
|
|
12521
|
+
},
|
|
12522
|
+
start: {
|
|
12523
|
+
type: 'string',
|
|
12524
|
+
description: 'Event start as ISO datetime or date.',
|
|
12525
|
+
},
|
|
12526
|
+
end: {
|
|
12527
|
+
type: 'string',
|
|
12528
|
+
description: 'Event end as ISO datetime or date.',
|
|
12529
|
+
},
|
|
12530
|
+
timeZone: {
|
|
12531
|
+
type: 'string',
|
|
12532
|
+
description: 'Optional timezone for datetime values.',
|
|
12533
|
+
},
|
|
12534
|
+
attendees: {
|
|
12535
|
+
type: 'array',
|
|
12536
|
+
description: 'Optional guest email list.',
|
|
12537
|
+
},
|
|
12538
|
+
reminderMinutes: {
|
|
12539
|
+
type: 'array',
|
|
12540
|
+
description: 'Optional popup reminder minute offsets.',
|
|
12541
|
+
},
|
|
12542
|
+
sendUpdates: {
|
|
12543
|
+
type: 'string',
|
|
12544
|
+
description: 'Guest update policy ("all", "externalOnly", "none").',
|
|
12545
|
+
},
|
|
12546
|
+
},
|
|
12547
|
+
required: ['summary', 'start', 'end'],
|
|
12548
|
+
},
|
|
12549
|
+
});
|
|
12550
|
+
addToolIfMissing({
|
|
12551
|
+
name: UseCalendarToolNames.updateEvent,
|
|
12552
|
+
description: 'Update one existing event in a configured calendar.',
|
|
12553
|
+
parameters: {
|
|
12554
|
+
type: 'object',
|
|
12555
|
+
properties: {
|
|
12556
|
+
calendarUrl: {
|
|
12557
|
+
type: 'string',
|
|
12558
|
+
description: CALENDAR_URL_PARAMETER_DESCRIPTION,
|
|
12559
|
+
},
|
|
12560
|
+
eventId: {
|
|
12561
|
+
type: 'string',
|
|
12562
|
+
description: 'Google Calendar event id.',
|
|
12563
|
+
},
|
|
12564
|
+
summary: {
|
|
12565
|
+
type: 'string',
|
|
12566
|
+
description: 'Updated event summary.',
|
|
12567
|
+
},
|
|
12568
|
+
description: {
|
|
12569
|
+
type: 'string',
|
|
12570
|
+
description: 'Updated event description.',
|
|
12571
|
+
},
|
|
12572
|
+
location: {
|
|
12573
|
+
type: 'string',
|
|
12574
|
+
description: 'Updated event location.',
|
|
12575
|
+
},
|
|
12576
|
+
start: {
|
|
12577
|
+
type: 'string',
|
|
12578
|
+
description: 'Updated event start as ISO datetime or date.',
|
|
12579
|
+
},
|
|
12580
|
+
end: {
|
|
12581
|
+
type: 'string',
|
|
12582
|
+
description: 'Updated event end as ISO datetime or date.',
|
|
12583
|
+
},
|
|
12584
|
+
timeZone: {
|
|
12585
|
+
type: 'string',
|
|
12586
|
+
description: 'Optional timezone for datetime values.',
|
|
12587
|
+
},
|
|
12588
|
+
attendees: {
|
|
12589
|
+
type: 'array',
|
|
12590
|
+
description: 'Optional replacement guest email list.',
|
|
12591
|
+
},
|
|
12592
|
+
reminderMinutes: {
|
|
12593
|
+
type: 'array',
|
|
12594
|
+
description: 'Optional replacement popup reminder minute offsets.',
|
|
12595
|
+
},
|
|
12596
|
+
sendUpdates: {
|
|
12597
|
+
type: 'string',
|
|
12598
|
+
description: 'Guest update policy ("all", "externalOnly", "none").',
|
|
12599
|
+
},
|
|
12600
|
+
},
|
|
12601
|
+
required: ['eventId'],
|
|
12602
|
+
},
|
|
12603
|
+
});
|
|
12604
|
+
addToolIfMissing({
|
|
12605
|
+
name: UseCalendarToolNames.deleteEvent,
|
|
12606
|
+
description: 'Delete one event from a configured calendar.',
|
|
12607
|
+
parameters: {
|
|
12608
|
+
type: 'object',
|
|
12609
|
+
properties: {
|
|
12610
|
+
calendarUrl: {
|
|
12611
|
+
type: 'string',
|
|
12612
|
+
description: CALENDAR_URL_PARAMETER_DESCRIPTION,
|
|
12613
|
+
},
|
|
12614
|
+
eventId: {
|
|
12615
|
+
type: 'string',
|
|
12616
|
+
description: 'Google Calendar event id.',
|
|
12617
|
+
},
|
|
12618
|
+
sendUpdates: {
|
|
12619
|
+
type: 'string',
|
|
12620
|
+
description: 'Guest update policy ("all", "externalOnly", "none").',
|
|
12621
|
+
},
|
|
12622
|
+
},
|
|
12623
|
+
required: ['eventId'],
|
|
12624
|
+
},
|
|
12625
|
+
});
|
|
12626
|
+
addToolIfMissing({
|
|
12627
|
+
name: UseCalendarToolNames.inviteGuests,
|
|
12628
|
+
description: 'Add guests to an existing event in a configured calendar.',
|
|
12629
|
+
parameters: {
|
|
12630
|
+
type: 'object',
|
|
12631
|
+
properties: {
|
|
12632
|
+
calendarUrl: {
|
|
12633
|
+
type: 'string',
|
|
12634
|
+
description: CALENDAR_URL_PARAMETER_DESCRIPTION,
|
|
12635
|
+
},
|
|
12636
|
+
eventId: {
|
|
12637
|
+
type: 'string',
|
|
12638
|
+
description: 'Google Calendar event id.',
|
|
12639
|
+
},
|
|
12640
|
+
guests: {
|
|
12641
|
+
type: 'array',
|
|
12642
|
+
description: 'Guest email list to add to the event.',
|
|
12643
|
+
},
|
|
12644
|
+
sendUpdates: {
|
|
12645
|
+
type: 'string',
|
|
12646
|
+
description: 'Guest update policy ("all", "externalOnly", "none").',
|
|
12647
|
+
},
|
|
12648
|
+
},
|
|
12649
|
+
required: ['eventId', 'guests'],
|
|
12650
|
+
},
|
|
12651
|
+
});
|
|
12652
|
+
return updatedTools;
|
|
12653
|
+
}
|
|
12654
|
+
|
|
12655
|
+
/**
|
|
12656
|
+
* Gets human-readable tool labels for USE CALENDAR functions.
|
|
12657
|
+
*
|
|
12658
|
+
* @private function of UseCalendarCommitmentDefinition
|
|
12659
|
+
*/
|
|
12660
|
+
function getUseCalendarToolTitles() {
|
|
12661
|
+
return {
|
|
12662
|
+
[UseCalendarToolNames.listEvents]: 'List calendar events',
|
|
12663
|
+
[UseCalendarToolNames.getEvent]: 'Get calendar event',
|
|
12664
|
+
[UseCalendarToolNames.createEvent]: 'Create calendar event',
|
|
12665
|
+
[UseCalendarToolNames.updateEvent]: 'Update calendar event',
|
|
12666
|
+
[UseCalendarToolNames.deleteEvent]: 'Delete calendar event',
|
|
12667
|
+
[UseCalendarToolNames.inviteGuests]: 'Invite calendar guests',
|
|
12668
|
+
};
|
|
12669
|
+
}
|
|
12670
|
+
|
|
12671
|
+
/**
|
|
12672
|
+
* Normalizes unknown metadata payload into a typed list of configured calendars.
|
|
12673
|
+
*
|
|
12674
|
+
* @private internal utility of USE CALENDAR commitment
|
|
12675
|
+
*/
|
|
12676
|
+
function normalizeConfiguredCalendars(rawCalendars) {
|
|
12677
|
+
if (!Array.isArray(rawCalendars)) {
|
|
12678
|
+
return [];
|
|
12679
|
+
}
|
|
12680
|
+
const uniqueCalendars = new Set();
|
|
12681
|
+
const calendars = [];
|
|
12682
|
+
for (const rawCalendar of rawCalendars) {
|
|
12683
|
+
if (!rawCalendar || typeof rawCalendar !== 'object') {
|
|
12684
|
+
continue;
|
|
12685
|
+
}
|
|
12686
|
+
const calendar = rawCalendar;
|
|
12687
|
+
const provider = normalizeProvider(calendar.provider);
|
|
12688
|
+
const url = normalizeText(calendar.url);
|
|
12689
|
+
const calendarId = normalizeText(calendar.calendarId);
|
|
12690
|
+
if (!provider || !url || !calendarId) {
|
|
12691
|
+
continue;
|
|
12692
|
+
}
|
|
12693
|
+
const uniqueKey = `${provider}|${url}`;
|
|
12694
|
+
if (uniqueCalendars.has(uniqueKey)) {
|
|
12695
|
+
continue;
|
|
12696
|
+
}
|
|
12697
|
+
uniqueCalendars.add(uniqueKey);
|
|
12698
|
+
const scopes = Array.isArray(calendar.scopes)
|
|
12699
|
+
? calendar.scopes
|
|
12700
|
+
.filter((scope) => typeof scope === 'string')
|
|
12701
|
+
.map((scope) => scope.trim())
|
|
12702
|
+
.filter(Boolean)
|
|
12703
|
+
: [];
|
|
12704
|
+
calendars.push({
|
|
12705
|
+
provider,
|
|
12706
|
+
url,
|
|
12707
|
+
calendarId,
|
|
12708
|
+
scopes,
|
|
12709
|
+
...(normalizeText(calendar.tokenRef) ? { tokenRef: normalizeText(calendar.tokenRef) } : {}),
|
|
12710
|
+
});
|
|
12711
|
+
}
|
|
12712
|
+
return calendars;
|
|
12713
|
+
}
|
|
12714
|
+
/**
|
|
12715
|
+
* Normalizes optional provider text to one supported value.
|
|
12716
|
+
*
|
|
12717
|
+
* @private function of normalizeConfiguredCalendars
|
|
12718
|
+
*/
|
|
12719
|
+
function normalizeProvider(value) {
|
|
12720
|
+
if (typeof value !== 'string') {
|
|
12721
|
+
return null;
|
|
12722
|
+
}
|
|
12723
|
+
const normalizedProvider = value.trim().toLowerCase();
|
|
12724
|
+
if (normalizedProvider === 'google') {
|
|
12725
|
+
return 'google';
|
|
12726
|
+
}
|
|
12727
|
+
return null;
|
|
12728
|
+
}
|
|
12729
|
+
/**
|
|
12730
|
+
* Normalizes unknown text input to trimmed non-empty string.
|
|
12731
|
+
*
|
|
12732
|
+
* @private function of normalizeConfiguredCalendars
|
|
12733
|
+
*/
|
|
12734
|
+
function normalizeText(value) {
|
|
12735
|
+
return typeof value === 'string' ? value.trim() : '';
|
|
12736
|
+
}
|
|
12737
|
+
|
|
12738
|
+
/**
|
|
12739
|
+
* USE CALENDAR commitment definition.
|
|
12740
|
+
*
|
|
12741
|
+
* `USE CALENDAR` enables calendar tooling so the agent can read and manage events
|
|
12742
|
+
* in one configured Google Calendar.
|
|
12743
|
+
*
|
|
12744
|
+
* Authentication is expected through runtime context provided by the host app UI.
|
|
12745
|
+
* Hosts can provide manual wallet tokens or host-managed OAuth tokens.
|
|
12746
|
+
*
|
|
12747
|
+
* @private [🪔] Maybe export the commitments through some package
|
|
12748
|
+
*/
|
|
12749
|
+
class UseCalendarCommitmentDefinition extends BaseCommitmentDefinition {
|
|
12750
|
+
constructor() {
|
|
12751
|
+
super('USE CALENDAR', ['CALENDAR']);
|
|
12752
|
+
}
|
|
12753
|
+
/**
|
|
12754
|
+
* Short one-line description of USE CALENDAR.
|
|
12755
|
+
*/
|
|
12756
|
+
get description() {
|
|
12757
|
+
return 'Enable calendar tools for reading and managing events through Google Calendar.';
|
|
12758
|
+
}
|
|
12759
|
+
/**
|
|
12760
|
+
* Icon for this commitment.
|
|
12761
|
+
*/
|
|
12762
|
+
get icon() {
|
|
12763
|
+
return '📅';
|
|
12764
|
+
}
|
|
12765
|
+
/**
|
|
12766
|
+
* Markdown documentation for USE CALENDAR commitment.
|
|
12767
|
+
*/
|
|
12768
|
+
get documentation() {
|
|
12769
|
+
return spaceTrim$1(`
|
|
12770
|
+
# USE CALENDAR
|
|
12771
|
+
|
|
12772
|
+
Enables the agent to access and manage one Google Calendar.
|
|
12773
|
+
|
|
12774
|
+
## Key aspects
|
|
12775
|
+
|
|
12776
|
+
- The first URL in the commitment should point to a Google Calendar URL.
|
|
12777
|
+
- Optional \`SCOPES\` lines can provide explicit OAuth scopes.
|
|
12778
|
+
- Optional extra instructions can follow calendar reference lines.
|
|
12779
|
+
- Runtime provides Google Calendar OAuth token (manual wallet token or host-managed OAuth token).
|
|
12780
|
+
- Tools support listing events, reading one event, creating events, updating events, deleting events, and inviting guests.
|
|
12781
|
+
|
|
12782
|
+
## Examples
|
|
12783
|
+
|
|
12784
|
+
\`\`\`book
|
|
12785
|
+
Scheduling Assistant
|
|
12786
|
+
|
|
12787
|
+
PERSONA You coordinate meetings and schedules.
|
|
12788
|
+
USE CALENDAR https://calendar.google.com/calendar/u/0/r
|
|
12789
|
+
\`\`\`
|
|
12790
|
+
|
|
12791
|
+
\`\`\`book
|
|
12792
|
+
Executive Assistant
|
|
12793
|
+
|
|
12794
|
+
USE CALENDAR https://calendar.google.com/calendar/u/0/r
|
|
12795
|
+
SCOPES https://www.googleapis.com/auth/calendar.readonly
|
|
12796
|
+
RULE Ask for confirmation before deleting events.
|
|
12797
|
+
\`\`\`
|
|
12798
|
+
`);
|
|
12799
|
+
}
|
|
12800
|
+
applyToAgentModelRequirements(requirements, content) {
|
|
12801
|
+
var _a;
|
|
12802
|
+
const parsedCommitment = parseUseCalendarCommitmentContent(content);
|
|
12803
|
+
const existingConfiguredCalendars = normalizeConfiguredCalendars((_a = requirements._metadata) === null || _a === void 0 ? void 0 : _a.useCalendars);
|
|
12804
|
+
if (parsedCommitment.calendar) {
|
|
12805
|
+
addConfiguredCalendarIfMissing(existingConfiguredCalendars, parsedCommitment.calendar);
|
|
12806
|
+
}
|
|
12807
|
+
const calendarsList = existingConfiguredCalendars.length > 0
|
|
12808
|
+
? existingConfiguredCalendars
|
|
12809
|
+
.map((calendar) => [
|
|
12810
|
+
`- ${calendar.provider}: ${calendar.url}`,
|
|
12811
|
+
calendar.scopes.length > 0 ? ` scopes: ${calendar.scopes.join(', ')}` : '',
|
|
12812
|
+
]
|
|
12813
|
+
.filter(Boolean)
|
|
12814
|
+
.join('\n'))
|
|
12815
|
+
.join('\n')
|
|
12816
|
+
: '- Calendar is resolved from runtime context';
|
|
12817
|
+
const extraInstructions = formatOptionalInstructionBlock('Calendar instructions', parsedCommitment.instructions);
|
|
12818
|
+
return this.appendToSystemMessage({
|
|
12819
|
+
...requirements,
|
|
12820
|
+
tools: createUseCalendarTools(requirements.tools || []),
|
|
12821
|
+
_metadata: {
|
|
12822
|
+
...requirements._metadata,
|
|
12823
|
+
useCalendar: true,
|
|
12824
|
+
useCalendars: existingConfiguredCalendars,
|
|
12825
|
+
},
|
|
12826
|
+
}, spaceTrim$1((block) => `
|
|
12827
|
+
Calendar tools:
|
|
12828
|
+
- You can inspect and manage events in configured calendars.
|
|
12829
|
+
- Supported operations include read, create, update, delete, invite guests, and reminders.
|
|
12830
|
+
- Configured calendars:
|
|
12831
|
+
${block(calendarsList)}
|
|
12832
|
+
- USE CALENDAR credentials are read from wallet records (ACCESS_TOKEN, service "${UseCalendarWallet.service}", key "${UseCalendarWallet.key}").
|
|
12833
|
+
- If credentials are missing, ask user to connect calendar credentials in host UI and/or add them to wallet.
|
|
12834
|
+
${block(extraInstructions)}
|
|
12835
|
+
`));
|
|
12836
|
+
}
|
|
12837
|
+
/**
|
|
12838
|
+
* Gets human-readable titles for tool functions provided by this commitment.
|
|
12839
|
+
*/
|
|
12840
|
+
getToolTitles() {
|
|
12841
|
+
return getUseCalendarToolTitles();
|
|
12842
|
+
}
|
|
12843
|
+
/**
|
|
12844
|
+
* Gets calendar tool function implementations.
|
|
12845
|
+
*/
|
|
12846
|
+
getToolFunctions() {
|
|
12847
|
+
return createUseCalendarToolFunctions();
|
|
12848
|
+
}
|
|
12849
|
+
}
|
|
12850
|
+
/**
|
|
12851
|
+
* Adds calendar into configured calendars list if it is not already present.
|
|
12852
|
+
*
|
|
12853
|
+
* @private function of UseCalendarCommitmentDefinition
|
|
12854
|
+
*/
|
|
12855
|
+
function addConfiguredCalendarIfMissing(configuredCalendars, calendarReference) {
|
|
12856
|
+
if (configuredCalendars.some((calendar) => calendar.provider === calendarReference.provider && calendar.url === calendarReference.url)) {
|
|
12857
|
+
return;
|
|
12858
|
+
}
|
|
12859
|
+
configuredCalendars.push({
|
|
12860
|
+
provider: calendarReference.provider,
|
|
12861
|
+
url: calendarReference.url,
|
|
12862
|
+
calendarId: calendarReference.calendarId,
|
|
12863
|
+
scopes: [...calendarReference.scopes],
|
|
12864
|
+
...(calendarReference.tokenRef ? { tokenRef: calendarReference.tokenRef } : {}),
|
|
12865
|
+
});
|
|
12866
|
+
}
|
|
12867
|
+
/**
|
|
12868
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
12869
|
+
*/
|
|
12870
|
+
|
|
11645
12871
|
/**
|
|
11646
12872
|
* Lightweight email token matcher used for `USE EMAIL` first-line parsing.
|
|
11647
12873
|
*
|
|
@@ -15351,6 +16577,7 @@ const COMMITMENT_REGISTRY = [
|
|
|
15351
16577
|
new UseTimeoutCommitmentDefinition(),
|
|
15352
16578
|
new UseTimeCommitmentDefinition(),
|
|
15353
16579
|
new UseUserLocationCommitmentDefinition(),
|
|
16580
|
+
new UseCalendarCommitmentDefinition(),
|
|
15354
16581
|
new UseEmailCommitmentDefinition(),
|
|
15355
16582
|
new UsePopupCommitmentDefinition(),
|
|
15356
16583
|
new UseImageGeneratorCommitmentDefinition('USE IMAGE GENERATOR'),
|
|
@@ -15758,6 +16985,14 @@ function parseAgentSource(agentSource) {
|
|
|
15758
16985
|
});
|
|
15759
16986
|
continue;
|
|
15760
16987
|
}
|
|
16988
|
+
if (commitment.type === 'USE CALENDAR') {
|
|
16989
|
+
capabilities.push({
|
|
16990
|
+
type: 'calendar',
|
|
16991
|
+
label: 'Calendar',
|
|
16992
|
+
iconName: 'Calendar',
|
|
16993
|
+
});
|
|
16994
|
+
continue;
|
|
16995
|
+
}
|
|
15761
16996
|
if (commitment.type === 'FROM') {
|
|
15762
16997
|
const content = spaceTrim$2(commitment.content).split(/\r?\n/)[0] || '';
|
|
15763
16998
|
if (content === 'Adam' || content === '' /* <- Note: Adam is implicit */) {
|
|
@@ -21232,8 +22467,8 @@ function getChatSaveFormatDefinitions(formatNames) {
|
|
|
21232
22467
|
return CHAT_SAVE_FORMATS.filter((saveFormatDefinition) => formatNames.includes(saveFormatDefinition.formatName));
|
|
21233
22468
|
}
|
|
21234
22469
|
|
|
21235
|
-
var css_248z$5 = "@font-face{font-display:swap;font-family:OpenMojiBlack;src:url(/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}@font-face{font-display:swap;font-family:OpenMojiColor;src:url(/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}.Chat-module_copiedToClipboardMessage__apCPY{background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:1.1em;left:50%;opacity:.97;padding:10px 24px;pointer-events:none;position:fixed;top:32px;transform:translateX(-50%);z-index:9999}.Chat-module_Chat__j2eE5{--chat-message-min-width:150px;--chat-message-avatar-gap:12px;--chat-message-avatar-size:40px;--chat-message-max-width:min(70%,600px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-input-visible-lines:3;--chat-input-font-size:15px;--chat-input-line-height:1.5;--chat-input-padding-y:10px;--chat-input-padding-x:12px;--chat-input-action-size:40px;--chat-input-textarea-height:calc(var(--chat-input-visible-lines)*var(--chat-input-font-size)*var(--chat-input-line-height) + var(--chat-input-padding-y)*2);display:flex;flex-direction:column;font-family:Arial,Helvetica,sans-serif,OpenMojiColor,OpenMojiBlack;height:100%;min-height:0;overflow:hidden;width:100%}.Chat-module_chatMainFlow__--8FE{display:grid;grid-template:\"🟦\" min-content \"💬\" 1fr \"📝\" min-content/1fr;height:100%;max-width:100%;min-height:0;min-width:0;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatBar__fLECN{background-color:#fff;border-bottom:1px solid rgba(15,23,36,.06);color:#0f1724;font-weight:500;grid-area:🟦;padding:16px 20px;text-align:center;width:100%}.Chat-module_TasksInProgress__fQfei{align-self:center;grid-area:🟦;height:min-content;justify-self:self-end;margin:8px 16px;width:auto}.Chat-module_actions__gTZ5T{align-items:center;align-self:self-start;display:flex;gap:8px;grid-area:💬;height:min-content;justify-self:self-end;margin:16px 20px 0;transition:opacity .2s ease;width:auto;will-change:opacity;z-index:40}.Chat-module_actions__gTZ5T.Chat-module_portal__uTOT8{margin:0}.Chat-module_actions__gTZ5T.Chat-module_left__7l5Mn{justify-self:self-start}.Chat-module_actions__gTZ5T.Chat-module_right__ABZrW{justify-self:self-end}.Chat-module_actionsFaded__qqAVQ{opacity:.3}.Chat-module_actionsScrolling__fIawW{opacity:.15;pointer-events:none}@media (max-width:900px){.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}}@media (max-width:600px){.Chat-module_actions__gTZ5T{gap:7px;margin:14px 18px 0}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatChildren__flOPK{grid-area:💬;height:100%;min-height:0;min-width:0;width:100%;z-index:300}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{grid-area:💬;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:24px 20px 16px;scroll-behavior:smooth;width:100%;z-index:10}.Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ{padding-top:80px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar{width:6px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-track{background:transparent}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb{background:hsla(0,0%,49%,.2);border-radius:3px;transition:all .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,49%,.3)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);column-gap:var(--chat-message-avatar-gap);display:flex;flex-direction:row;margin-bottom:20px;max-width:100%;min-width:0;position:relative}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL{align-items:flex-start;display:flex;flex-direction:column;max-width:var(--chat-message-max-width);min-width:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageStack__n0xNL{align-items:flex-end}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL>*{max-width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0{align-items:stretch}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{align-items:stretch;max-width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)))}@media (max-width:900px){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{max-width:min(92vw,640px);width:min(92vw,640px)}}.Chat-module_messageMeta__eqCRu{align-items:center;color:#6b7280;display:flex;flex-wrap:wrap;font-size:11px;gap:6px;line-height:1.4;margin:4px 6px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageMeta__eqCRu{align-self:flex-end;text-align:right}.Chat-module_messageLifecycleBadge__4jDDc{align-items:center;background:rgba(148,163,184,.16);border-radius:999px;color:#475569;display:inline-flex;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.Chat-module_messageTimestamp__LDhRw{letter-spacing:.02em}.Chat-module_messageDuration__Y9Kg9{opacity:.85}.Chat-module_messageLifecycleError__m-FO-{color:#b91c1c;font-size:12px;line-height:1.45;margin:4px 6px 0}.Chat-module_participantLabel__0Oo-3{color:#64748b;font-size:12px;font-weight:600;margin:0 0 6px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_participantLabel__0Oo-3{text-align:right}@keyframes Chat-module_messageSlideIn__soTy2{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_isNotCompleteMessage__Hj2K7{opacity:.7;position:relative}.Chat-module_NonCompleteMessageFiller__G5-Ve{color:transparent}.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{animation:Chat-module_loadingPulse__VomRm 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);border-radius:2px;bottom:8px;content:\"\";height:4px;position:absolute;right:12px;width:20px}.Chat-module_sourceCitations__oDtBX,.Chat-module_toolCallChips__UWgC1{border-top:1px solid hsla(0,0%,100%,.2);display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:8px}.Chat-module_toolCallChip__koN18{align-items:center;background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.2);border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.1);color:inherit;cursor:pointer;display:flex;font-family:OpenMojiColor,OpenMojiBlack,Arial,Helvetica,sans-serif;font-size:.8em;gap:8px;padding:4px 10px;transition:all .2s ease}.Chat-module_toolCallChip__koN18:hover{background:hsla(0,0%,100%,.3);box-shadow:0 2px 6px rgba(0,0,0,.15);transform:translateY(-1px)}.Chat-module_toolCallChipOngoing__wKcDY{background:rgba(14,165,233,.1);border-color:rgba(59,130,246,.8)}.Chat-module_toolCallChipStatus__I-nl9{align-items:center;display:inline-flex;margin-left:auto}.Chat-module_teamToolCall__5F45R,.Chat-module_transitiveToolCall__WcaaK{gap:8px;justify-content:flex-start}.Chat-module_teamAgentChip__mvgtY,.Chat-module_transitiveAgentChip__zNOJf{flex-shrink:0}.Chat-module_toolCallLabel__q7EFf{flex:1;font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_toolCallWithError__AtQqO{background:rgba(249,115,22,.12);border-color:rgba(249,115,22,.8)}.Chat-module_toolCallOrigin__-Io6Y{font-size:.85em;font-weight:500;opacity:.75;white-space:nowrap}.Chat-module_toolCallDetails__WUFlD{margin-bottom:24px}.Chat-module_toolCallDetails__WUFlD p{margin-bottom:8px}.Chat-module_toolCallData__UauCO{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;max-height:300px;overflow-x:auto;padding:12px;word-break:break-all}.Chat-module_toolCallChipSpinner__ZGTwl{animation:Chat-module_toolCallSpinner__LSiK6 .8s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:14px;width:14px}@keyframes Chat-module_toolCallSpinner__LSiK6{to{transform:rotate(1turn)}}@keyframes Chat-module_loadingPulse__VomRm{0%,to{opacity:.3;transform:scaleX(.8)}50%{opacity:1;transform:scaleX(1.2)}}.Chat-module_typingIndicator__S-CT-{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);display:flex;margin-bottom:20px}.Chat-module_typingIndicator__S-CT- .Chat-module_avatar__gL6bm{flex-shrink:0;height:40px;margin:0 12px 4px;width:40px}.Chat-module_typingBubble__0Lb7B{backdrop-filter:blur(10px);border:1px solid hsla(0,0%,49%,.1);border-radius:20px;border-bottom-left-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);min-height:24px;padding:16px 20px}.Chat-module_typingBubble__0Lb7B,.Chat-module_typingDots__srOBB{align-items:center;display:flex;gap:4px}.Chat-module_typingDot__dnhKT{animation:Chat-module_typingBounce__1yp2v 1.4s ease-in-out infinite;background:linear-gradient(135deg,#6b7280,hsla(0,0%,49%,.6));border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.1);height:8px;width:8px}.Chat-module_typingDot__dnhKT:first-child{animation-delay:-.32s}.Chat-module_typingDot__dnhKT:nth-child(2){animation-delay:-.16s}.Chat-module_typingDot__dnhKT:nth-child(3){animation-delay:0s}@keyframes Chat-module_typingBounce__1yp2v{0%,80%,to{opacity:.5;transform:scale(.8) translateY(0)}40%{opacity:1;transform:scale(1.2) translateY(-8px)}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV{align-items:flex-end;flex-direction:row-reverse;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{border-bottom-right-radius:6px}.Chat-module_ratingStar__rRfqC{color:var(--star-inactive-color,#ccc);cursor:pointer;font-size:20px;transition:color .2s}.Chat-module_ratingStar__rRfqC.Chat-module_active__lbYL-{color:gold}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{aspect-ratio:1/1;flex-shrink:0;height:var(--chat-message-avatar-size);margin:0 0 4px;position:relative;width:var(--chat-message-avatar-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{word-wrap:break-word;--chat-heading-surface:hsla(0,0%,100%,.12);--chat-heading-accent:rgba(56,189,248,.85);--chat-heading-text-color:var(--message-text-color,#0f172a);--chat-heading-border-color:rgba(15,23,42,.18);--chat-heading-shadow-color:rgba(15,23,42,.65);backdrop-filter:blur(10px);background-color:var(--message-bg-color);border-radius:20px;box-shadow:0 2px 8px rgba(0,0,0,.1);color:var(--message-text-color);font-size:15px;line-height:1.5;margin-bottom:4px;max-width:100%;min-width:min(var(--chat-message-min-width),100%);padding:14px 18px;position:relative;text-align:left;transition:all .2s ease}@supports (color:color-mix(in srgb,#000 50%,#fff 50%)){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-heading-surface:color-mix(in srgb,var(--message-bg-color,#fff) 70%,rgba(15,23,42,.08) 30%);--chat-heading-accent:color-mix(in srgb,var(--message-text-color,#0f172a) 65%,rgba(59,130,246,.9) 35%);--chat-heading-border-color:color-mix(in srgb,var(--message-bg-color,#fff) 60%,rgba(15,23,42,.12) 40%);--chat-heading-shadow-color:color-mix(in srgb,rgba(15,23,42,.65) 80%,rgba(96,165,250,.45) 20%);--chat-heading-text-color:var(--message-text-color,#0f172a)}}.Chat-module_copyButtonContainer__Rij0U{float:right;pointer-events:none;right:10px;top:8px;visibility:hidden;z-index:2}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover .Chat-module_copyButtonContainer__Rij0U,.Chat-module_copyButtonContainer__Rij0U:focus-within{pointer-events:auto;visibility:visible}.Chat-module_messageControlGroup__gAo4k{align-items:center;display:flex;gap:6px;pointer-events:auto}.Chat-module_copyButton__DcxT5{align-items:center;background:hsla(0,0%,100%,.2);border:1px solid #ddd;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.07);cursor:pointer;display:flex;opacity:.7;padding:2px 5px;position:relative;transition:all .15s,box-shadow .15s,border .15s}.Chat-module_playButton__ZigYL{align-items:center;background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,100%,.6);border-radius:12px;color:#111;cursor:pointer;display:inline-flex;height:36px;justify-content:center;padding:0;position:relative;transition:all .15s ease;width:36px}.Chat-module_playButtonIcon__wPErq{height:16px;width:16px}.Chat-module_playButtonSpinner__Ad33i{animation:Chat-module_messagePlaySpinner__ldlvy .9s linear infinite;border:2px solid rgba(0,0,0,.3);border-radius:50%;border-top-color:#111;height:16px;width:16px}.Chat-module_playButton__ZigYL:hover:not(:disabled){background:hsla(0,0%,100%,.4);border-color:hsla(0,0%,100%,.8)}.Chat-module_playButton__ZigYL:disabled{cursor:not-allowed;opacity:.6}@keyframes Chat-module_messagePlaySpinner__ldlvy{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.Chat-module_copiedTooltip__LH81j{animation:Chat-module_copiedTooltipFadeIn__QekO1 .2s;background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:.98em;left:50%;margin-top:4px;max-width:220px;opacity:.97;overflow-wrap:break-word;padding:6px 16px;pointer-events:none;position:absolute;top:110%;transform:translateX(-50%);white-space:nowrap;word-break:break-word;z-index:100}.Chat-module_copiedTooltipLeft__j-S-5{left:0!important;transform:none!important}.Chat-module_copiedTooltipRight__R-2cE{left:auto!important;right:0!important;transform:none!important}@keyframes Chat-module_copiedTooltipFadeIn__QekO1{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.97)}to{opacity:.97;transform:translateX(-50%) translateY(0) scale(1)}}.Chat-module_copyButton__DcxT5:focus,.Chat-module_copyButton__DcxT5:hover{border:1.5px solid #bbb;box-shadow:0 2px 8px rgba(0,132,255,.1);opacity:1}.Chat-module_copyButton__DcxT5 svg{display:block}.Chat-module_messageText__XgNyQ ul{list-style:disc;margin-left:20px}.Chat-module_messageText__XgNyQ ol{list-style:decimal;margin-left:20px}.Chat-module_messageText__XgNyQ blockquote,.Chat-module_messageText__XgNyQ img,.Chat-module_messageText__XgNyQ pre,.Chat-module_messageText__XgNyQ table{border-radius:8px;margin-bottom:10px;margin-top:10px}.Chat-module_messageText__XgNyQ pre{background:#000;color:#fff}.Chat-module_messageText__XgNyQ blockquote,.Chat-module_messageText__XgNyQ pre{border:none;box-shadow:none;display:block;font-size:inherit;line-height:inherit;padding:1em}.Chat-module_messageText__XgNyQ blockquote{background:#ffffffcc;color:#000}.Chat-module_messageText__XgNyQ code{background:#cccccc55;border:none;box-shadow:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;margin:0;padding:0}.Chat-module_messageText__XgNyQ pre code{background-color:#000000cc;border-radius:8px}.Chat-module_messageText__XgNyQ .Chat-module_chat-code-block__k8IyS{background:#181c23;border-color:#23272f;box-shadow:0 2px 8px rgba(0,0,0,.12);color:#f8fafc;font-family:Fira Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:14px;line-height:1.6;overflow-x:auto}.Chat-module_messageText__XgNyQ .Chat-module_chat-code-block__k8IyS code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:break-word}.Chat-module_messageText__XgNyQ table{background:#f8fafc;border-collapse:separate;border-spacing:0;box-shadow:0 2px 8px rgba(0,0,0,.08);color:#17223b;font-size:14px;margin:16px 0;width:100%}.Chat-module_messageText__XgNyQ td,.Chat-module_messageText__XgNyQ th{background:none;border-bottom:1px solid #d1dbe8;color:#17223b;padding:10px 16px;text-align:left}.Chat-module_messageText__XgNyQ th{background:linear-gradient(90deg,#eaf3fa 80%,#d1e3f8);border-bottom:2px solid #b5c7de;color:#17223b;font-weight:700}.Chat-module_messageText__XgNyQ tr:last-child td{border-bottom:none}.Chat-module_messageText__XgNyQ tr:nth-child(2n) td{background:#eaf3fa}.Chat-module_messageText__XgNyQ tr:hover td{background:#cbe0f7;transition:background .2s}.Chat-module_messageText__XgNyQ table{border-radius:12px;overflow:hidden}.Chat-module_messageText__XgNyQ td:first-child,.Chat-module_messageText__XgNyQ th:first-child{border-top-left-radius:12px}.Chat-module_messageText__XgNyQ td:last-child,.Chat-module_messageText__XgNyQ th:last-child{border-top-right-radius:12px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover{box-shadow:0 4px 16px rgba(0,0,0,.15);transform:translateY(-1px)}.Chat-module_attachments__m1Fts{border-top:1px solid hsla(0,0%,49%,.2);display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}.Chat-module_attachment__aE9hK{align-items:center;background:hsla(0,0%,100%,.2);border:1px solid hsla(0,0%,49%,.3);border-radius:12px;color:inherit;display:flex;font-size:13px;gap:6px;max-width:200px;padding:6px 12px;text-decoration:none;transition:all .2s ease}.Chat-module_attachment__aE9hK:hover{background:hsla(0,0%,100%,.3);border-color:hsla(0,0%,49%,.5);transform:translateY(-1px)}.Chat-module_attachmentIcon__BX3Cy{font-size:14px;opacity:.8}.Chat-module_attachmentName__aMx56{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_messageButtons__WaOob{border-top:1px solid hsla(0,0%,49%,.83);display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px}.Chat-module_messageButton__mRnn-{-webkit-tap-highlight-color:transparent;align-items:center;backdrop-filter:blur(10px);background:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.9);border-radius:16px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;padding:8px 14px;touch-action:manipulation;transition:all .2s ease;user-select:none}.Chat-module_messageButton__mRnn-:disabled{box-shadow:none;cursor:progress;opacity:.72;transform:none}.Chat-module_messageButton__mRnn-:hover{background:rgba(0,132,255,.1);border-color:rgba(0,132,255,.3);box-shadow:0 2px 8px rgba(0,132,255,.15);transform:translateY(-1px)}.Chat-module_messageButton__mRnn-:hover:disabled{background:hsla(0,0%,49%,.1);border-color:hsla(0,0%,49%,.9)}.Chat-module_messageButton__mRnn-:active{transform:scale(.98);transition:transform .1s ease}.Chat-module_actionMessageButton__avcbv{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95);color:#fff}.Chat-module_actionMessageButton__avcbv:hover{background:rgba(31,41,55,.98);border-color:rgba(17,24,39,.98);box-shadow:0 4px 14px rgba(15,23,42,.32)}.Chat-module_actionMessageButton__avcbv:hover:disabled{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95)}.Chat-module_messageButton__mRnn- p{line-height:inherit;margin:0;padding:0}.Chat-module_messageButton__mRnn- strong{font-weight:600}.Chat-module_messageButton__mRnn- em{font-style:italic}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M{align-items:center;backdrop-filter:blur(10px);background:rgba(0,0,0,.8);border-radius:12px;bottom:-8px;display:flex;gap:2px;min-width:24px;opacity:0;padding:4px 6px;position:absolute;right:8px;transform:translateY(4px);transition:all .3s cubic-bezier(.25,.46,.45,.94);z-index:1}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:hover .Chat-module_rating__soc3M{opacity:1;transform:translateY(0)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover{background:rgba(0,0,0,.9);box-shadow:0 4px 12px rgba(0,0,0,.3);padding:6px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M span{cursor:pointer;display:inline-block;font-size:16px;transition:transform .2s ease,color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover span{transform:scale(1.1)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;grid-area:📝;max-width:100%;min-width:0;padding:24px 24px calc(24px + env(safe-area-inset-bottom));position:relative;width:100%;z-index:10}.Chat-module_Chat__j2eE5.Chat-module_fullPageVisual__zNAEy .Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{backdrop-filter:blur(25px);background:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.8))}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan.Chat-module_dragOver__bkS-g{background:linear-gradient(0deg,rgba(0,132,255,.1) 0,rgba(0,132,255,.05))}.Chat-module_filePreviewContainer__R70hm{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.Chat-module_filePreview__kq2aX{align-items:center;backdrop-filter:blur(10px);background:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);border-radius:8px;display:flex;font-size:12px;gap:8px;padding:8px 12px;transition:all .2s ease}.Chat-module_filePreview__kq2aX:hover{background:hsla(0,0%,49%,.15);border-color:hsla(0,0%,49%,.3)}.Chat-module_fileIcon__zoSKW{font-size:14px;opacity:.7}.Chat-module_fileInfo__wBLi0{display:flex;flex-direction:column;gap:2px;min-width:0}.Chat-module_fileName__bBujo{color:#000;font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_fileSize__ivliq{color:#6b7280;font-size:11px}.Chat-module_removeFileButton__0gakR{align-items:center;background:rgba(255,0,0,.1);border:none;border-radius:50%;color:#f44;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:all .2s ease;width:20px}.Chat-module_removeFileButton__0gakR:hover{background:rgba(255,0,0,.2);transform:scale(1.1)}.Chat-module_inputContainer__bPt99{align-items:center;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:28px;box-shadow:0 4px 20px rgba(0,0,0,.06);display:flex;gap:8px;min-width:0;padding:8px 12px;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_inputContainer__bPt99:focus-within{border-color:var(--brand-color);box-shadow:0 8px 32px rgba(0,132,255,.12);transform:translateY(-2px)}.Chat-module_inputContainer__bPt99 textarea::placeholder{color:#94a3b8;opacity:1}.Chat-module_attachmentButton__qLO47{align-items:center;background:transparent;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_attachmentButton__qLO47:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.Chat-module_attachmentButton__qLO47:disabled{cursor:not-allowed;opacity:.3}.Chat-module_voiceButton__d2zlP{align-items:center;background:transparent;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_voiceButton__d2zlP:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.Chat-module_voiceButtonActive__Uoi3W{animation:Chat-module_voiceRecordingPulse__y2wJ5 1.5s infinite;background:rgba(239,68,68,.1)!important;color:#ef4444!important}.Chat-module_speechStatusBubble__qBBWI{align-items:center;animation:Chat-module_speechStatusBubbleIn__PBm-c .2s ease-out;appearance:none;background:hsla(0,0%,100%,.95);border:1px solid rgba(15,23,42,.15);border-radius:999px;bottom:86px;box-shadow:0 12px 28px rgba(15,23,42,.18);color:#0f172a;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:8px;letter-spacing:.01em;max-width:min(320px,calc(100% - 48px));padding:8px 12px;position:absolute;right:24px;text-align:left;z-index:25}.Chat-module_speechStatusBubbleDot__APu53{animation:Chat-module_speechStatusBubbleDotPulse__Guqsu 1.2s ease-in-out infinite;background:#64748b;border-radius:50%;flex-shrink:0;height:8px;width:8px}.Chat-module_speechStatusBubbleRecording__faJs2{background:hsla(0,86%,97%,.97);border-color:rgba(239,68,68,.35);color:#991b1b}.Chat-module_speechStatusBubbleRecording__faJs2 .Chat-module_speechStatusBubbleDot__APu53{background:#ef4444}.Chat-module_speechStatusBubbleProcessing__Crbuu{background:rgba(236,254,255,.97);border-color:rgba(14,116,144,.35);color:#155e75}.Chat-module_speechStatusBubbleProcessing__Crbuu .Chat-module_speechStatusBubbleDot__APu53{background:#0ea5e9}.Chat-module_speechStatusBubbleError__Nd-Aj{background:hsla(0,86%,97%,.98);border-color:rgba(220,38,38,.35);color:#991b1b}.Chat-module_speechStatusBubbleError__Nd-Aj .Chat-module_speechStatusBubbleDot__APu53{animation:none;background:#dc2626}.Chat-module_dictationPanel__kzbyG{background:hsla(0,0%,100%,.9);border:1px solid rgba(148,163,184,.35);border-radius:14px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2);color:#0f172a;display:flex;flex-direction:column;gap:10px;padding:10px 12px}.Chat-module_dictationPanelHeader__rHXTh{align-items:center;display:flex;gap:8px;justify-content:space-between}.Chat-module_dictationPanelTitle__sO9XH{color:#475569;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_dictationPanelToggle__z3HMx{background:#f8fafc;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#334155;cursor:pointer;font-size:11px;font-weight:600;padding:4px 8px}.Chat-module_dictationInterimTranscript__eAbMI{background:rgba(239,246,255,.9);border:1px dashed rgba(59,130,246,.45);border-radius:10px;color:#0c4a6e;cursor:pointer;font-size:13px;line-height:1.45;padding:8px 10px;text-align:left}.Chat-module_dictationErrorPanel__mjbM7{background:hsla(0,86%,97%,.95);border:1px solid rgba(220,38,38,.25);border-radius:10px;color:#991b1b;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:8px;padding:8px 10px}.Chat-module_dictationErrorActions__K3ykb{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationCorrectionActions__ssE7i button,.Chat-module_dictationErrorActions__K3ykb button{background:#f8fafc;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px}.Chat-module_dictationCorrectionPanel__5nh9M{display:flex;flex-direction:column;gap:8px}.Chat-module_dictationCorrectionLabel__U4uzT{color:#334155;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.Chat-module_dictationCorrectionTextarea__5ovj9{background:#fff;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#0f172a;font-size:13px;line-height:1.5;min-height:68px;padding:8px 10px;resize:vertical;width:100%}.Chat-module_dictationCorrectionActions__ssE7i{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationSettingsPanel__0gI-V{display:grid;gap:8px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.Chat-module_dictationSettingsPanel__0gI-V label{align-items:center;color:#334155;display:inline-flex;font-size:12px;gap:6px}.Chat-module_dictationFallbackNote__919pE{color:#475569;font-size:11px;line-height:1.45;margin:0}@keyframes Chat-module_speechStatusBubbleIn__PBm-c{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes Chat-module_speechStatusBubbleDotPulse__Guqsu{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.82)}}@keyframes Chat-module_voiceRecordingPulse__y2wJ5{0%{box-shadow:0 0 0 0 rgba(255,0,0,.4)}70%{box-shadow:0 0 0 10px rgba(255,0,0,0)}to{box-shadow:0 0 0 0 rgba(255,0,0,0)}}.Chat-module_uploadProgress__jBTKe{align-items:center;background:rgba(0,132,255,.1);border:1px solid rgba(0,132,255,.2);border-radius:8px;color:#0084ff;display:flex;font-size:13px;gap:12px;padding:8px 12px}.Chat-module_uploadProgressBar__Gutnt{background:rgba(0,132,255,.2);border-radius:2px;flex:1;height:4px;overflow:hidden}.Chat-module_uploadProgressFill__EgubT{animation:Chat-module_uploadProgress__jBTKe 1.5s ease-in-out infinite;background:linear-gradient(90deg,#0084ff,rgba(0,132,255,.8));border-radius:2px;height:100%}@keyframes Chat-module_uploadProgress__jBTKe{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}.Chat-module_dragOverlay__SEGoS{align-items:center;backdrop-filter:blur(10px);background:rgba(0,132,255,.1);border:2px dashed rgba(0,132,255,.5);border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:20}.Chat-module_dragOverlayContent__gb9kF{align-items:center;color:#0084ff;display:flex;flex-direction:column;font-weight:600;gap:12px;text-align:center}.Chat-module_dragOverlayContent__gb9kF svg{opacity:.7}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;background:transparent;border:none;box-sizing:border-box;color:#0f172a;flex:1;font-size:var(--chat-input-font-size);height:var(--chat-input-textarea-height);line-height:var(--chat-input-line-height);margin:0;max-height:var(--chat-input-textarea-height);min-height:var(--chat-input-textarea-height);min-width:0;outline:none;overflow-y:auto;padding:var(--chat-input-padding-y) var(--chat-input-padding-x);resize:none;touch-action:manipulation}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea:disabled{cursor:not-allowed;opacity:.6;transform:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea::placeholder{color:inherit;opacity:.7}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]{-webkit-tap-highlight-color:transparent;align-items:center;aspect-ratio:1/1;border:none;border-radius:50%!important;box-shadow:0 4px 12px rgba(0,132,255,.25);color:#fff;display:flex;height:var(--chat-input-action-size);justify-content:center;margin:0!important;min-height:unset!important;min-width:unset!important;overflow:visible;padding:0!important;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:var(--chat-input-action-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:hover{box-shadow:0 6px 16px rgba(0,132,255,.35);transform:scale(1.05)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:active{transform:scale(.95)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action] svg{height:20px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button img{height:100%;object-fit:contain;width:50%}.Chat-module_scrollToBottomContainer__5rXpK{align-items:flex-start;display:flex;grid-area:📝;height:100%;justify-content:center;pointer-events:none;width:100%;z-index:20}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottomWrapper__PCIu1{align-items:center;animation:Chat-module_scrollButtonSlideIn__XnImg .3s ease-out;display:inline-flex;justify-content:center;pointer-events:all;position:relative;transform:translate(-50%,-150%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottom__nzxdZ{-webkit-tap-highlight-color:transparent;align-items:center;background:rgba(0,0,0,.5);border:none;border-radius:50%;box-shadow:0 4px 16px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:flex;font-weight:700;height:48px;justify-content:center;outline:none;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:48px}@keyframes Chat-module_scrollButtonSlideIn__XnImg{0%{opacity:0;transform:translate(-50%,20px) scale(.8)}to{opacity:.9;transform:translate(-50%) scale(1)}}.Chat-module_scrollToBottomBadge__N6T6-{align-items:center;background:#2563eb;border-radius:999px;box-shadow:0 2px 10px rgba(37,99,235,.4);color:#fff;display:inline-flex;font-size:10px;font-weight:600;justify-content:center;letter-spacing:.04em;min-width:32px;padding:2px 6px;pointer-events:none;position:absolute;right:-8px;text-transform:uppercase;top:-8px;white-space:nowrap}.Chat-module_ratingModal__XVKYm{align-items:center;animation:Chat-module_modalFadeIn__RPc3w .3s ease-out;backdrop-filter:blur(8px);background-color:rgba(0,0,0,.6);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes Chat-module_modalFadeIn__RPc3w{0%{backdrop-filter:blur(0);opacity:0}to{backdrop-filter:blur(8px);opacity:1}}.Chat-module_ratingModalContent__CCdq7{animation:Chat-module_modalSlideIn__XXtgN .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(20px);background:#fff;border:1px solid hsla(0,0%,49%,.1);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);color:#0f1724;font-family:Arial,Helvetica,sans-serif,OpenMojiColor,OpenMojiBlack;max-width:480px;padding:32px;width:90%}@keyframes Chat-module_modalSlideIn__XXtgN{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_ratingModalContent__CCdq7 h3{color:#000;font-size:20px;font-weight:600;margin:0 0 24px;text-align:center}.Chat-module_stars__PCzNO{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.Chat-module_stars__PCzNO span{border-radius:8px;cursor:pointer;font-size:28px;padding:4px;transition:all .2s ease}.Chat-module_stars__PCzNO span:hover{background:rgba(255,215,0,.1);transform:scale(1.2)}.Chat-module_ratingModalStar__XkbHr{cursor:pointer;font-size:24px;transition:color .2s}.Chat-module_toolCallModal__uNaIK{max-height:calc(100vh - 48px);max-width:800px;overflow-x:hidden;overflow-y:auto;padding:0;position:relative}.Chat-module_toolCallHeader__ZaTZF{align-items:center;background:linear-gradient(135deg,#eef2ff,#f5f3ff 40%,#fefcc9);border-bottom:1px solid rgba(15,23,42,.08);display:flex;gap:16px;padding:24px 32px 16px}.Chat-module_toolCallIcon__UgRKj{font-size:32px}.Chat-module_toolCallHeaderMeta__iAL-U{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallModalLabel__4dBP4{color:#475467;font-size:11px;letter-spacing:.35em;margin:0;text-transform:uppercase}.Chat-module_toolCallTitle__jhL0A{color:#0f172a;font-size:24px;font-weight:600;margin:0}.Chat-module_toolCallSubtitle__a2GIO{color:#475467;font-size:13px;margin:0}.Chat-module_toolCallGrid__Nfr7N{background:#fefefe;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:24px 32px 16px}.Chat-module_toolCallPanel__kQZE9{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.08);padding:18px}.Chat-module_toolCallPanelTitle__-7OtJ{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.25em;margin:0 0 12px;text-transform:uppercase}.Chat-module_toolCallList__5co3s{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.Chat-module_toolCallItem__k7W5Z{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallItemLabel__d3C1E{color:#94a3b8;font-size:11px;letter-spacing:.25em;text-transform:uppercase}.Chat-module_toolCallItemValue__cStQ0{color:#0f172a;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallSummary__wGZwg{color:#0f172a;font-size:15px;line-height:1.6;margin:0}.Chat-module_toolCallSummaryMeta__RXiSv{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_toolCallSummaryMetaBadge__JBi-I{background:rgba(79,70,229,.15);border-radius:999px;color:#312e81;font-size:12px;font-weight:600;padding:5px 12px}.Chat-module_toolCallEmpty__bUz5v{color:#94a3b8;font-size:14px;margin:0}.Chat-module_toolCallPendingCard__L3m7T{background:linear-gradient(180deg,#f8fbff,#f8fafc);border:1px dashed #cbd5e1;border-radius:14px;display:flex;flex-direction:column;gap:10px;padding:14px}.Chat-module_toolCallPendingHeader__U3htF{align-items:center;display:flex;gap:10px;justify-content:space-between}.Chat-module_toolCallPendingTitle__4fwLL{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_toolCallPendingBadge__bgY3c{background:rgba(14,165,233,.12);border-radius:999px;color:#0369a1;font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 10px;text-transform:uppercase}.Chat-module_toolCallPendingMessage__grnao{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_toolCallPendingSkeleton__Td5Cu{display:flex;flex-direction:column;gap:8px}.Chat-module_toolCallPendingSkeletonLine__Vldel{animation:Chat-module_toolCallPendingSkeletonPulse__aKDNI 1.4s ease-in-out infinite;background:linear-gradient(90deg,rgba(226,232,240,.7),#f1f5f9,rgba(226,232,240,.7));background-size:200% 100%;border-radius:999px;height:10px}.Chat-module_toolCallPendingSkeletonShort__FnR-X{width:68%}@keyframes Chat-module_toolCallPendingSkeletonPulse__aKDNI{0%{background-position:100% 50%}to{background-position:-100% 50%}}.Chat-module_toolCallDetailsCard__UJthw{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin-top:16px;overflow:hidden}.Chat-module_toolCallDetailsCardRow__-VhfA{border-top:1px solid rgba(226,232,240,.9);color:#334155;display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:12px 14px}.Chat-module_toolCallDetailsCardRow__-VhfA:first-child{border-top:none}.Chat-module_toolCallDetailsCardRow__-VhfA strong{color:#0f172a}.Chat-module_toolCallIssues__evhYM{display:flex;flex-wrap:wrap;gap:8px;padding:0 32px 16px}.Chat-module_toolCallIssueBadge__Qbwdp{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:6px 10px}.Chat-module_toolCallIssueError__LImeS{background:rgba(239,68,68,.12);color:#b91c1c}.Chat-module_toolCallIssueWarning__chQDf{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_toolCallModeFooter__XaRqI{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:0 32px 24px}.Chat-module_toolCallModeButton__zlcca{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.Chat-module_toolCallModeButton__zlcca:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.Chat-module_memoryModalHeader__SpZJT{align-items:flex-start;background:linear-gradient(180deg,#fdfdfd,#f6f9ff);border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:28px 32px 16px}.Chat-module_memoryModalIcon__eYbli{align-items:center;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:18px;box-shadow:0 18px 28px rgba(15,23,42,.18);color:#fff;display:inline-flex;font-size:24px;height:52px;justify-content:center;width:52px}.Chat-module_memoryModalHeaderText__S6MZG{flex:1}.Chat-module_memoryModalTitle__zzbaQ{color:#0f172a;font-size:22px;font-weight:600;margin:0}.Chat-module_memoryModalSubtitle__PStci{color:#475467;font-size:14px;margin:4px 0 0}.Chat-module_memoryModalStatus__bmrfc{align-items:center;border-radius:999px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;margin-left:auto;padding:6px 14px;white-space:nowrap}.Chat-module_memoryStatusDot__c0oVs{background:currentColor;border-radius:50%;display:inline-block;height:8px;width:8px}.Chat-module_memoryModalContent__8E7oj{background:#fff;display:flex;flex-direction:column;gap:16px;padding:24px 32px 32px}.Chat-module_memoryMessage__q0pNK{color:#0f172a;font-size:15px;font-weight:500;margin:0}.Chat-module_memoryMetaRow__Hc-Xp{align-items:center;color:#475467;display:flex;font-size:13px;justify-content:space-between}.Chat-module_memoryMetaLabel__LFx11{font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_memoryMetaValue__4bILO{color:#0f172a;font-weight:600}.Chat-module_memoryRetrieveSection__VbuS4,.Chat-module_memoryStoreSection__qQJPN{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryCard__-kIDN{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 10px 18px rgba(15,23,42,.08);padding:18px}.Chat-module_memoryCardContent__l9S4G{color:#0f172a;font-size:14px;line-height:1.6;overflow-wrap:break-word;white-space:pre-wrap}.Chat-module_memoryCardMeta__K66KE{align-items:center;color:#94a3b8;display:flex;font-size:12px;justify-content:space-between;margin-top:12px}.Chat-module_memoryScopeBadge__T2ACc{background:rgba(124,58,237,.12);border-radius:999px;color:#0f172a;font-size:11px;font-weight:700;padding:3px 10px}.Chat-module_memoryList__pUOg2{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryEmptyState__fPrXA{background:#fef3c7;border:1px solid #fde68a;border-radius:12px;color:#92400e;font-weight:500;padding:16px}.Chat-module_memoryListFooter__Y0Q2Z{color:#475467;font-size:13px;text-align:center}.Chat-module_memoryStatusSuccess__4bhfo{background:rgba(16,185,129,.16);color:#047857}.Chat-module_memoryStatusWarning__AR6yh{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_memoryStatusError__ZNAT6{background:rgba(239,68,68,.15);color:#b91c1c}.Chat-module_memoryStatusNeutral__Fa-4M{background:rgba(96,165,250,.15);color:#1d4ed8}.Chat-module_searchModalHeader__Y8V-w{align-items:center;background:#fdfdfd;border-bottom:1px solid #eee;display:flex;gap:16px;padding:24px 72px 24px 32px}.Chat-module_selfLearningModalHeader__PDIt1{align-items:center;background:linear-gradient(135deg,#f8fafc,#fef9c3 45%,#ecfccb);border-bottom:1px solid #e2e8f0;gap:18px}.Chat-module_selfLearningAvatarGroup__jgy2k{align-items:center;display:flex;gap:10px}.Chat-module_selfLearningAvatar__NHXKm{align-items:center;background:#e2e8f0;background-position:50%;background-size:cover;border-radius:50%;box-shadow:0 10px 20px rgba(15,23,42,.18);color:#0f172a;display:inline-flex;font-size:18px;font-weight:600;height:48px;justify-content:center;letter-spacing:.02em;width:48px}.Chat-module_selfLearningAvatarInitial__cuw19{line-height:1}.Chat-module_selfLearningTeacher__fGhX8{background:linear-gradient(135deg,#fde68a,#86efac)}.Chat-module_selfLearningHeaderText__LTwHL{display:flex;flex-direction:column;gap:6px;text-align:left}.Chat-module_selfLearningTitle__G0SAk{color:#0f172a;font-size:20px;font-weight:600;margin:0}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;margin-bottom:12px}.Chat-module_selfLearningMeta__58Pet{color:#64748b;font-size:13px}.Chat-module_selfLearningMetaChip__0go88{background:#e2e8f0;border-radius:999px;color:#0f172a;font-size:12px;font-weight:600;padding:4px 10px}.Chat-module_selfLearningCommitments__7ECnr{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.Chat-module_selfLearningCommitmentsLabel__OkDO1{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_selfLearningBookEditor__CZy5T{border-radius:12px;margin-top:12px;overflow:hidden}.Chat-module_selfLearningEmpty__vCKHL{color:#475569;font-size:13px;margin-top:12px}.Chat-module_modalCloseButton__AAfWS{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 16px rgba(15,23,42,.08);color:#475569;cursor:pointer;display:inline-flex;height:36px;justify-content:center;position:absolute;right:16px;top:16px;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;width:36px;z-index:1}.Chat-module_modalCloseButton__AAfWS:hover{background:#f8fafc;box-shadow:0 10px 24px rgba(15,23,42,.12);color:#0f172a;transform:translateY(-1px)}.Chat-module_modalCloseButton__AAfWS:focus-visible{outline:2px solid #94a3b8;outline-offset:2px}.Chat-module_teamModalHeader__SB5NL{flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderParticipants__KS7aV{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderProfile__xRlcS{align-items:center;color:inherit;display:inline-flex;gap:12px;text-decoration:none}.Chat-module_teamHeaderProfileLink__fYTfT:hover{color:#0f172a}.Chat-module_teamHeaderAvatar__vXcTp{background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 14px rgba(15,23,42,.08);height:40px;width:40px}.Chat-module_teamHeaderName__ygJR9{color:#0f172a;font-size:18px;font-weight:600}.Chat-module_teamHeaderDivider__cnRMd{color:#94a3b8;font-size:14px;font-weight:600}.Chat-module_searchModalIcon__AR5KY{align-items:center;color:#475569;display:inline-flex;font-size:24px;justify-content:center}.Chat-module_searchModalQuery__5x-Ra{color:#202124!important;font-size:22px!important;font-weight:500!important;margin:0!important;text-align:left!important}.Chat-module_searchModalContent__mWLIE{background:#fff;max-height:60vh;overflow-y:auto;padding:24px 32px}.Chat-module_teamChatContainer__xdLtU{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:20px;overflow:hidden}.Chat-module_teamToolCallSection__FH9l7{display:flex;flex-direction:column;gap:16px}.Chat-module_teamToolCallGroup__PO6rl{display:flex;flex-direction:column;gap:8px}.Chat-module_teamToolCallHeading__G-JSj{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_teamToolCallChips__hRWqh{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_teamToolCallDetails__ZaTtt{background:#f8fafc;border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:16px}.Chat-module_teamToolCallDetailsHeader__FPIgI{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.Chat-module_teamToolCallDetailsTitle__50SeL{align-items:center;color:#0f172a;display:flex;font-size:14px;font-weight:600;gap:6px}.Chat-module_teamToolCallDetailsClear__8yvu7{background:rgba(148,163,184,.2);border:1px solid rgba(148,163,184,.4);border-radius:999px;color:#475569;cursor:pointer;font-size:12px;padding:4px 10px;transition:all .2s ease}.Chat-module_teamToolCallDetailsClear__8yvu7:hover{background:rgba(148,163,184,.35)}.Chat-module_searchResultsList__xVDUZ{display:flex;flex-direction:column;gap:28px;text-align:left}.Chat-module_searchResultsRaw__i3GkD{max-width:650px;text-align:left}.Chat-module_searchResultItem__bTzq5{max-width:650px}.Chat-module_searchResultUrl__SbrH4{color:#202124;font-size:14px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_searchResultUrl__SbrH4 a{color:#202124;text-decoration:none}.Chat-module_searchResultTitle__XS7zN{font-size:20px!important;font-weight:400!important;line-height:1.3;margin:0 0 4px!important}.Chat-module_searchResultTitle__XS7zN a{color:#1a0dab;text-decoration:none}.Chat-module_searchResultTitle__XS7zN a:hover{text-decoration:underline}.Chat-module_searchResultSnippet__Wsun2{color:#4d5156;font-size:14px;line-height:1.58;margin:0}.Chat-module_noResults__AAv6s{color:#70757a;font-style:italic;padding:40px;text-align:center}.Chat-module_citationDetails__2v2e1,.Chat-module_toolCallDetails__WUFlD{margin:20px 0;text-align:left}.Chat-module_citationPreview__rGhCR{background:#f8f8f8;border:1px solid #ddd;border-radius:8px;margin-top:16px;overflow:hidden}.Chat-module_citationIframe__ngzFY{border:none;display:block;height:60vh;min-height:400px;width:100%}.Chat-module_citationMetadata__DPaCF{background:#f8f8f8;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:16px}.Chat-module_citationMetadata__DPaCF p{font-size:.9em;margin:8px 0}.Chat-module_citationMetadata__DPaCF strong{color:#333}.Chat-module_citationMetadata__DPaCF a{color:#007bff;text-decoration:none;word-break:break-all}.Chat-module_citationMetadata__DPaCF a:hover{text-decoration:underline}.Chat-module_citationExcerpt__VU4BS{background:#fff;border:1px solid #ddd;border-radius:8px;max-height:400px;overflow-y:auto;padding:16px}.Chat-module_citationExcerpt__VU4BS h4{color:#333;font-size:1em;margin:0 0 12px}.Chat-module_citationHint__5AkLx{font-size:.85em;margin-top:8px;opacity:.7}.Chat-module_toolCallDataContainer__rdEzC{background:#f8f8f8;border:1px solid #eee;border-radius:6px;margin-bottom:15px;max-height:300px;overflow-y:auto;padding:12px}.Chat-module_toolCallPayloadContainer__v2yVn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .monaco-scrollable-element,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .overflow-guard,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor-background{background:#f8fafc!important}.Chat-module_toolCallData__UauCO{font-size:.85em;margin:0;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallModal__uNaIK .Chat-module_toolCallData__UauCO{background:#f8fafc;color:#0f172a}.Chat-module_ratingInput__z8Pv-{background:hsla(0,0%,49%,.05);border:2px solid hsla(0,0%,49%,.1);border-radius:12px;color:#0b1220;font-size:14px;line-height:1.5;margin-bottom:18px;min-height:100px;padding:16px;resize:vertical;transition:all .2s ease;width:100%}.Chat-module_ratingInput__z8Pv-:focus{background:hsla(0,0%,49%,.08);border-color:#0084ff;box-shadow:0 0 0 4px rgba(0,132,255,.1);outline:none}.Chat-module_ratingInput__z8Pv-[readonly]{background:hsla(0,0%,49%,.01);border:1px solid hsla(0,0%,49%,.5)}.Chat-module_ratingActions__nXcss{display:flex;gap:12px;justify-content:flex-end}.Chat-module_ratingActions__nXcss button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:12px 24px;transition:all .2s ease}.Chat-module_ratingActions__nXcss button:first-child{background-color:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:first-child:hover:not(:disabled){background-color:hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:last-child{background:linear-gradient(135deg,#0084ff,#06c);color:#fff}.Chat-module_ratingActions__nXcss button:last-child:hover:not(:disabled){background:linear-gradient(135deg,#0071d1,#0052a3);box-shadow:0 4px 12px rgba(0,132,255,.3);transform:translateY(-1px)}.Chat-module_ratingActions__nXcss button:last-child:disabled{cursor:not-allowed;opacity:.5}.Chat-module_downloadButton__8--bk{align-items:center;background:linear-gradient(135deg,#0084ff,#06c);border:none;border-radius:8px;box-shadow:0 2px 8px rgba(0,132,255,.2);color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 24px;transition:all .2s ease}.Chat-module_downloadButton__8--bk:hover{background:linear-gradient(135deg,#09f,#07d);box-shadow:0 4px 16px rgba(0,132,255,.3);transform:translateY(-2px)}.Chat-module_downloadButton__8--bk:active{box-shadow:0 2px 8px rgba(0,132,255,.2);transform:translateY(0)}.Chat-module_downloadButton__8--bk svg{flex-shrink:0}.Chat-module_downloadButton__8--bk span{font-weight:600}.Chat-module_chatButton__d9VgA{-webkit-tap-highlight-color:transparent!important;align-items:center!important;backdrop-filter:blur(20px)!important;background:linear-gradient(135deg,#0084ff,#06c)!important;border:none!important;border-radius:20px!important;box-shadow:0 4px 16px rgba(0,132,255,.3)!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-size:13px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;line-height:1.3!important;margin:0!important;min-height:40px!important;min-width:110px!important;overflow:hidden!important;padding:12px 16px!important;position:relative!important;touch-action:manipulation!important;transition:all .3s cubic-bezier(.25,.46,.45,.94)!important;user-select:none!important}.Chat-module_chatButton__d9VgA:before{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);content:\"\";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.Chat-module_chatButton__d9VgA:hover:before{left:100%}.Chat-module_chatButton__d9VgA:hover:not(:disabled){background:linear-gradient(135deg,#09f,#07d);box-shadow:0 8px 24px rgba(0,132,255,.4);transform:translateY(-2px) scale(1.02)}.Chat-module_chatButton__d9VgA:active{box-shadow:0 4px 16px rgba(0,132,255,.3);transform:scale(.98) translateY(-1px);transition:transform .1s ease}.Chat-module_chatButton__d9VgA:focus{box-shadow:0 4px 16px rgba(0,132,255,.3),0 0 0 3px rgba(0,132,255,.3);outline:none}.Chat-module_chatButton__d9VgA svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));flex-shrink:0;height:16px;opacity:1;transition:all .3s cubic-bezier(.25,.46,.45,.94);width:16px}.Chat-module_chatButton__d9VgA:hover svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));transform:rotate(-90deg) scale(1.1)}.Chat-module_chatButtonText__RkGB-{font-weight:600;opacity:1;text-shadow:0 1px 2px rgba(0,0,0,.1);transition:all .2s ease;white-space:nowrap}.Chat-module_chatButton__d9VgA:hover .Chat-module_chatButtonText__RkGB-{transform:translateX(1px)}.Chat-module_useTemplateButton__xcJNR{-webkit-tap-highlight-color:transparent!important;align-items:center!important;backdrop-filter:blur(20px)!important;background:linear-gradient(135deg,#0084ff,#06c)!important;border:none!important;border-radius:20px!important;box-shadow:0 4px 16px rgba(0,132,255,.3)!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-size:13px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;line-height:1.3!important;margin:0!important;min-height:40px!important;min-width:110px!important;overflow:hidden!important;padding:12px 16px!important;position:relative!important;touch-action:manipulation!important;transition:all .3s cubic-bezier(.25,.46,.45,.94)!important;user-select:none!important}.Chat-module_useTemplateButton__xcJNR:before{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);content:\"\";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.Chat-module_useTemplateButton__xcJNR:hover:before{left:100%}.Chat-module_useTemplateButton__xcJNR:hover:not(:disabled){background:linear-gradient(135deg,#09f,#07d);box-shadow:0 8px 24px rgba(0,132,255,.4);transform:translateY(-2px) scale(1.02)}.Chat-module_useTemplateButton__xcJNR:active{box-shadow:0 4px 16px rgba(0,132,255,.3);transform:scale(.98) translateY(-1px);transition:transform .1s ease}.Chat-module_useTemplateButton__xcJNR:focus{box-shadow:0 4px 16px rgba(0,132,255,.3),0 0 0 3px rgba(0,132,255,.3);outline:none}.Chat-module_useTemplateButton__xcJNR svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));flex-shrink:0;height:16px;opacity:1;transition:all .3s cubic-bezier(.25,.46,.45,.94);width:16px}.Chat-module_useTemplateButton__xcJNR:hover svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));transform:scale(1.1)}.Chat-module_useTemplateButton__xcJNR:hover .Chat-module_chatButtonText__RkGB-{transform:translateX(1px)}.Chat-module_saveButtonContainer__lSNUJ{display:inline-block;position:relative}.Chat-module_saveMenu__-ph8y{background:#fff;border:1px solid #ddd;box-shadow:0 2px 8px rgba(0,0,0,.08);left:0;min-width:120px;position:absolute;top:100%;z-index:10}.Chat-module_saveMenuItem__ISApL{background:none;border:none;color:#111;cursor:pointer;display:block;padding:8px 16px;text-align:left;width:100%}.Chat-module_saveMenuItem__ISApL:hover{background-color:#f0f0f0}.Chat-module_saveMenuDivider__3ktTM{background-color:#ddd;height:1px;margin:4px 0}.Chat-module_chatFeedbackPanel__gfOzk{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 18px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:6px;padding:6px 8px;width:min(260px,100%)}.Chat-module_chatFeedbackToggle__IeOM6{align-items:center;background:transparent;border:none;border-radius:12px;cursor:pointer;display:flex;gap:10px;padding:6px 8px;text-align:left;transition:background .2s ease,transform .2s ease;width:100%}.Chat-module_chatFeedbackToggle__IeOM6:hover{background:#f5f5f5;transform:translateY(-.5px)}.Chat-module_chatFeedbackToggle__IeOM6:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.Chat-module_chatFeedbackIcon__XcB7A{background:#eef2ff;border-radius:10px;color:#6366f1;display:grid;flex-shrink:0;height:34px;place-items:center;transition:background .2s ease,color .2s ease;width:34px}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=true] .Chat-module_chatFeedbackIcon__XcB7A{background:#e0f2fe;color:#0284c7}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=false] .Chat-module_chatFeedbackIcon__XcB7A{background:#f3f4f6;color:#94a3b8}.Chat-module_chatFeedbackMeta__6t2be{display:flex;flex:1;flex-direction:column;gap:2px}.Chat-module_chatFeedbackLabel__qQgH3{color:#0f172a;font-size:.85rem;font-weight:600}.Chat-module_chatFeedbackDescription__I9bNg{color:#64748b;font-size:.75rem}.Chat-module_chatFeedbackIndicator__uHCr7{border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:2px 8px;text-transform:uppercase}.Chat-module_chatFeedbackIndicatorActive__bkw-w{background:#dcfce7;border:1px solid #34d399;color:#166534}.Chat-module_chatFeedbackIndicatorInactive__qMBkh{background:#fef9c3;border:1px solid #facc15;color:#713f12}.Chat-module_pauseButton__eeu7K{background:linear-gradient(135deg,#ffb347,#ff8c42)!important}.Chat-module_pauseButton__eeu7K:hover:not(:disabled){background:linear-gradient(135deg,#ffc067,#ff9e5f)!important}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b{cursor:wait!important;opacity:.6!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya{background:linear-gradient(135deg,#10b981,#059669)!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#059669)!important;box-shadow:0 8px 24px rgba(16,185,129,.35);transform:translateY(-2px) scale(1.02)}.Chat-module_pauseButton__eeu7K svg{transition:transform .3s ease}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya svg{transform:scale(1.1)}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b svg{opacity:.8}.Chat-module_stopButton__dkPOW{background:linear-gradient(135deg,#dc2626,#991b1c)!important;color:#fefefe!important}.Chat-module_stopButton__dkPOW:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#dc2626)!important}.Chat-module_stopButton__dkPOW:disabled{cursor:not-allowed!important;opacity:.6!important}.Chat-module_stopButton__dkPOW svg{transition:transform .3s ease}.Chat-module_stopButton__dkPOW:focus-visible{outline:2px solid hsla(0,91%,71%,.8);outline-offset:2px}.Chat-module_voiceCallIndicatorBar__N2sWN{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.1),rgba(16,185,129,.1));border-bottom:1px solid rgba(34,197,94,.3);display:flex;grid-area:🟦;justify-content:center;padding:12px 20px;width:100%}.Chat-module_voiceCallIndicator__tsaaG{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(16,185,129,.2));border:1px solid rgba(34,197,94,.4);border-radius:20px;box-shadow:0 2px 8px rgba(34,197,94,.2);color:#10b981;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:8px 16px;position:relative}.Chat-module_voiceCallIndicator__tsaaG svg{animation:Chat-module_voiceCallIconPulse__zZbJn 2s ease-in-out infinite;flex-shrink:0;height:16px;width:16px}.Chat-module_voiceCallIndicator__tsaaG span{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.1)}.Chat-module_voiceCallPulse__XcGU4{animation:Chat-module_voiceCallPulse__XcGU4 1.5s ease-in-out infinite;background:#10b981;border-radius:50%;height:8px;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}@keyframes Chat-module_voiceCallIconPulse__zZbJn{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes Chat-module_voiceCallPulse__XcGU4{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.6;transform:translateY(-50%) scale(1.3)}}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG{border-radius:16px;font-size:12px;margin-bottom:8px;padding:6px 12px}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG svg{height:14px;width:14px}.Chat-module_feedbackStatus__-df7l{word-wrap:break-word;animation:Chat-module_feedbackStatusSlideIn__n6bbB .28s ease-out;backdrop-filter:blur(20px);border-radius:14px;box-shadow:0 18px 32px rgba(15,23,42,.35);font-weight:500;max-width:340px;padding:14px 22px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.Chat-module_feedbackStatusSuccess__Ax2q0{background:linear-gradient(135deg,#10b981,#059669);color:#f8fafc}.Chat-module_feedbackStatusError__dnv6d{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fef2f2}@keyframes Chat-module_feedbackStatusSlideIn__n6bbB{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.Chat-module_Chat__j2eE5{--chat-message-min-width:100px;--chat-message-avatar-size:36px;--chat-message-max-width:min(85%,560px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:10px;--chat-input-font-size:16px;--chat-input-padding-y:14px;--chat-input-padding-x:18px;--chat-input-action-size:44px}.Chat-module_actions__gTZ5T{gap:6px;margin:12px 16px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:16px 12px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{margin-bottom:16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:18px;font-size:14px;padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:10px;padding:16px 12px calc(16px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:76px;font-size:11px;max-width:calc(100% - 28px);padding:7px 11px;right:14px}.Chat-module_dictationSettingsPanel__0gI-V{grid-template-columns:minmax(0,1fr)}.Chat-module_scrollToBottom__nzxdZ{font-size:18px;height:44px;top:calc(100% - 160px);width:44px}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_ratingModalContent__CCdq7{border-radius:16px;margin:16px;max-height:80vh;overflow-y:auto;padding:24px 20px}.Chat-module_stars__PCzNO{gap:6px;margin-bottom:20px}.Chat-module_stars__PCzNO span{font-size:32px;padding:8px}.Chat-module_ratingActions__nXcss{flex-direction:column-reverse;gap:8px}.Chat-module_ratingActions__nXcss button{border-radius:10px;font-size:16px;padding:14px;width:100%}.Chat-module_selfLearningModalHeader__PDIt1{align-items:flex-start;flex-direction:column}.Chat-module_selfLearningAvatarGroup__jgy2k{justify-content:flex-start}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:flex-start}}@media (max-width:480px){.Chat-module_Chat__j2eE5{--chat-message-min-width:80px;--chat-message-avatar-size:32px;--chat-message-max-width:min(90%,520px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:8px;--chat-input-padding-y:12px;--chat-input-padding-x:16px;--chat-input-action-size:40px}.Chat-module_actions__gTZ5T{gap:4px;margin:8px 12px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:12px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:16px;font-size:14px;padding:10px 14px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:8px;padding:12px 8px calc(12px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:72px;max-width:calc(100% - 20px);right:10px}.Chat-module_dictationCorrectionActions__ssE7i,.Chat-module_dictationErrorActions__K3ykb{flex-direction:column}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_scrollToBottom__nzxdZ{font-size:16px;height:40px;top:calc(100% - 140px);width:40px}.Chat-module_ratingModal__XVKYm{align-items:flex-end;padding:0}.Chat-module_ratingModalContent__CCdq7{border-radius:20px 20px 0 0;margin:0;max-height:70vh;padding:24px 16px 20px;width:100%}}@media (prefers-reduced-motion:reduce){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ,.Chat-module_feedbackStatus__-df7l,.Chat-module_ratingModalContent__CCdq7,.Chat-module_ratingModal__XVKYm,.Chat-module_scrollToBottom__nzxdZ{animation:none}.Chat-module_chatButton__d9VgA,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{transition:none}}@media (prefers-contrast:high){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border:2px solid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{border-width:3px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button{border:2px solid}}.Chat-module_emailContainer__TBxXZ{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.Chat-module_emailModalHeader__Z4-CJ{background:#f8fafc}.Chat-module_emailHeaderText__1dR6R{display:flex;flex-direction:column;gap:2px}.Chat-module_emailHeaderLabel__7iAEH{color:#64748b;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_emailMetadata__8XXGf{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:16px;padding:18px 20px}.Chat-module_emailField__pcb03{display:flex;font-size:14px;gap:8px;line-height:1.5;margin-bottom:8px}.Chat-module_emailField__pcb03:last-child{margin-bottom:0}.Chat-module_emailField__pcb03 strong{color:#64748b;font-weight:600;min-width:60px}.Chat-module_emailRecipients__YVVys{color:#0f172a;word-break:break-word}.Chat-module_emailBody__OBt-w{text-align:left}.Chat-module_emailBody__OBt-w strong{color:#64748b;display:block;font-size:14px;font-weight:600;margin-bottom:12px}.Chat-module_emailBodyContent__-vFo2{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);line-height:1.6;max-height:400px;overflow-y:auto;padding:22px}.Chat-module_emailBodyContent__-vFo2 p{margin:0 0 12px}.Chat-module_emailBodyContent__-vFo2 p:last-child{margin-bottom:0}.Chat-module_browserRunModalHeader__0AyeK{background:linear-gradient(135deg,#f8fafc,#ecfeff 40%,#ecfccb);border-bottom:1px solid #dbeafe}.Chat-module_browserRunHeaderText__JUbNv{display:flex;flex-direction:column;gap:2px}.Chat-module_browserRunHeaderStatus__uu3Fi{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_browserRunHeaderLabel__uKYCb{color:#475569;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_browserRunMeta__lJkQc{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:18px;padding:16px 18px}.Chat-module_browserRunWarning__ojdEP{background:#fffbeb;border:1px solid #fbbf24;border-radius:12px;color:#92400e;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunError__aELQo{background:#fef2f2;border:1px solid #fca5a5;border-radius:12px;color:#7f1d1d;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunErrorSummary__ygz-g{font-size:14px;line-height:1.5;margin:0}.Chat-module_browserRunErrorSteps__S96nl{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding-left:18px}.Chat-module_browserRunDebugDetails__SZ3VT{margin-top:10px}.Chat-module_browserRunDebugDetails__SZ3VT summary{color:#7f1d1d;cursor:pointer;font-weight:600}.Chat-module_browserRunDebugDetails__SZ3VT pre{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;font-size:12px;line-height:1.45;margin:10px 0 0;max-height:220px;overflow:auto;padding:10px}.Chat-module_browserRunFallbackContent__NYCkp{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px;padding:14px 16px}.Chat-module_browserRunStatusBanner__ljIE9{background:rgba(248,250,252,.95);border:1px solid rgba(148,163,184,.28);border-radius:14px;color:#334155;font-size:13px;line-height:1.5;margin-bottom:18px;padding:12px 14px}.Chat-module_browserRunMediaGrid__KDz3I{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.Chat-module_browserRunMediaCard__focNP{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:10px;padding:12px}.Chat-module_browserRunMediaCardHeader__sOfLw{display:flex;flex-direction:column;gap:4px}.Chat-module_browserRunMediaTitle__a6Ctw{color:#0f172a;font-size:14px;font-weight:600;margin:0}.Chat-module_browserRunMediaCaption__LG8E6{color:#475569;font-size:12px;line-height:1.5;margin:0}.Chat-module_browserRunMediaImage__UI4pd,.Chat-module_browserRunMediaVideo__z2RgF{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;max-height:260px;object-fit:contain;width:100%}.Chat-module_browserRunActionLog__YZ0CQ{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:18px;padding:14px 16px}.Chat-module_browserRunActionLogTitle__XaEIW{color:#64748b;font-size:13px;letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}.Chat-module_browserRunActionList__SOgfd{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.Chat-module_browserRunActionItem__1q668{align-items:center;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:12px;color:#0f172a;display:flex;font-size:14px;gap:10px;line-height:1.5;padding:10px 12px}.Chat-module_browserRunActionPending__unJJt{opacity:.82}.Chat-module_browserRunActionRunning__NdlRL{background:rgba(14,165,233,.08);border-color:rgba(14,165,233,.35)}.Chat-module_browserRunActionComplete__PU36H{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.22)}.Chat-module_browserRunActionError__y-cm0{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.24)}.Chat-module_browserRunActionState__pkfKg{background:#cbd5e1;border-radius:999px;flex-shrink:0;height:10px;width:10px}.Chat-module_browserRunActionStateRunning__L1IbZ{background:#0ea5e9;box-shadow:0 0 0 4px rgba(14,165,233,.14)}.Chat-module_browserRunActionStateComplete__CpVEc{background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.12)}.Chat-module_browserRunActionStateError__lU-t4{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12)}.Chat-module_browserRunActionMeta__df32n{color:#64748b;font-size:12px;font-weight:600;margin-left:auto}@media print{.Chat-module_Chat__j2eE5{background:transparent!important;box-shadow:none!important;color:#f8fafc!important;min-height:auto!important;padding:0!important}.Chat-module_chatMainFlow__--8FE{gap:0!important;min-height:auto!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{background:linear-gradient(150deg,rgba(2,6,23,.98),rgba(15,23,42,.92))!important;border:1px solid rgba(56,189,248,.32)!important;border-radius:40px!important;box-shadow:inset 0 40px 80px rgba(0,0,0,.35)!important;padding:48px 40px 64px!important;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{break-inside:avoid;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{background:linear-gradient(145deg,var(--agent-chat-brand-color-light,#7dd3fc),var(--agent-chat-brand-color,#0ea5e9))!important;border:1px solid hsla(0,0%,100%,.35)!important;border-radius:32px!important;box-shadow:inset 0 18px 40px rgba(2,6,23,.6)!important;color:#f8fafc!important;padding:18px 22px!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{background:#f8fbff!important;border:1px solid rgba(148,163,184,.45)!important;box-shadow:inset 0 10px 30px rgba(15,23,42,.3)!important;color:#0f172a!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{border:1px solid hsla(0,0%,100%,.35)!important}.Chat-module_messageMeta__eqCRu,.Chat-module_participantLabel__0Oo-3{color:rgba(226,232,240,.8)!important}.Chat-module_actions__gTZ5T,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ button,.Chat-module_copyButtonContainer__Rij0U,.Chat-module_feedbackStatus__-df7l,.Chat-module_scrollToBottom__nzxdZ,.Chat-module_voiceCallIndicatorBar__N2sWN,.Chat-module_voiceCallIndicator__tsaaG{display:none!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N>:last-child{padding-bottom:100px!important}}.Chat-module_emailStatus__T4UuL{color:#0f172a;font-weight:600;text-transform:capitalize}.Chat-module_imagePrompt__v7-Ho{backdrop-filter:blur(12px);background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,49%,.35);border-radius:18px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.25);display:flex;flex-direction:column;gap:8px;margin-bottom:16px;margin-top:16px;padding:12px}.Chat-module_imagePromptPreview__ve5dB{background:linear-gradient(180deg,rgba(15,118,255,.05),hsla(0,0%,100%,.4));border:1px dashed hsla(0,0%,49%,.3);border-radius:14px;min-height:160px;overflow:hidden;position:relative}.Chat-module_imagePromptImage__KjE3H{display:block;height:100%;object-fit:cover;width:100%}.Chat-module_imagePromptPlaceholder__b8cW6{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Chat-module_imagePromptSpinner__nat8r{animation:Chat-module_imagePromptSpinner__nat8r .9s linear infinite;border:3px solid hsla(0,0%,100%,.35);border-radius:50%;border-top-color:#2563eb;height:36px;width:36px}@keyframes Chat-module_imagePromptSpinner__nat8r{to{transform:rotate(1turn)}}.Chat-module_imagePromptMeta__YwltP{display:flex;flex-direction:column;gap:4px}.Chat-module_imagePromptPrompt__N1E--{color:#111;font-size:13px;font-weight:500;overflow-wrap:anywhere}.Chat-module_imagePromptStatus__0ROQF{color:#6b7280;font-size:11px}.Chat-module_imagePromptError__x1952{align-items:center;background:rgba(220,38,38,.08);color:#dc2626;display:flex;font-size:12px;inset:0;justify-content:center;padding:12px;position:absolute;text-align:center}.Chat-module_richFeaturePlaceholder__mXS7-{align-items:center;background:rgba(56,189,248,.12);border:1px solid rgba(59,130,246,.25);border-radius:18px;display:flex;gap:12px;margin-bottom:16px;margin-top:16px;padding:12px 14px}.Chat-module_richFeaturePlaceholderSpinner__ingFq{animation:Chat-module_richFeatureSpinner__eOql6 .8s linear infinite;border:3px solid rgba(59,130,246,.3);border-radius:50%;border-top-color:#22d3ee;height:32px;width:32px}.Chat-module_richFeaturePlaceholderCopy__sEgxN{display:flex;flex-direction:column}.Chat-module_richFeaturePlaceholderTitle__lF7rJ{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_richFeaturePlaceholderStatus__UJg09{color:#475569;font-size:11px}@keyframes Chat-module_richFeatureSpinner__eOql6{to{transform:rotate(1turn)}}\n/*# sourceMappingURL=data:application/json;base64,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SixDQUVBLGlEQUNJLEdBQ0ksdUJBQ0osQ0FDSixDQUVBLG9DQUNJLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsT0FDSixDQUVBLHNDQUdJLFVBQVcsQ0FGWCxjQUFlLENBQ2YsZUFBZ0IsQ0FFaEIsc0JBQ0osQ0FFQSxzQ0FFSSxhQUFjLENBRGQsY0FFSixDQUVBLHFDQUlJLGtCQUFtQixDQU1uQiw4QkFBbUMsQ0FEbkMsYUFBYyxDQU5kLFlBQWEsQ0FLYixjQUFlLENBTmYsT0FBUSxDQUdSLHNCQUF1QixDQUN2QixZQUFhLENBTGIsaUJBQWtCLENBTWxCLGlCQUlKLENBRUEsMkNBUUksa0JBQW1CLENBRm5CLCtCQUFvQyxDQURwQyxxQ0FBMEMsQ0FGMUMsa0JBQW1CLENBSW5CLFlBQWEsQ0FFYixRQUFTLENBUFQsa0JBQW1CLENBRG5CLGVBQWdCLENBR2hCLGlCQU1KLENBRUEsa0RBTUksbUVBQWtELENBRGxELG9DQUF5QixDQUZ6QixpQkFBa0IsQ0FFbEIsd0JBQXlCLENBSHpCLFdBQVksQ0FEWixVQU1KLENBRUEsK0NBQ0ksWUFBYSxDQUNiLHFCQUNKLENBRUEsZ0RBR0ksYUFBYyxDQUZkLGNBQWUsQ0FDZixlQUVKLENBRUEsaURBRUksYUFBYyxDQURkLGNBRUosQ0FFQSxpREFDSSxHQUNJLHVCQUNKLENBQ0oiLCJmaWxlIjoiQ2hhdC5tb2R1bGUuY3NzIiwic291cmNlc0NvbnRlbnQiOlsiQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuTW9qaUJsYWNrJztcbiAgICBzcmM6XG4gICAgICAgIHVybCgnL2ZvbnRzL09wZW5Nb2ppLWJsYWNrLWdseWYud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnaHR0cHM6Ly9zNi5wdGJrLmlvL2ZvbnRzL09wZW5Nb2ppLWJsYWNrLWdseWYud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7IC8qIDwtIFRPRE86IFvwn5Cx4oCN8J+agF0gRHluYW1pY2FsbHkgbG9hZCBmcm9tIC9zZXJ2ZXJzLnRzICovXG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIHVuaWNvZGUtcmFuZ2U6IFUrMjMsIFUrMkEsIFUrMkQsIFUrMzAtMzksIFUrQTksIFUrQUUsIFUrMjAwRCwgVSsyMDNDLCBVKzIwNDksIFUrMjBFMywgVSsyMTE3LCBVKzIxMjAsIFUrMjEyMiwgVSsyMTM5LFxuICAgICAgICBVKzIxOTQtMjE5OSwgVSsyMUE5LCBVKzIxQUEsIFUrMjI5QywgVSsyMzFBLCBVKzIzMUIsIFUrMjMyOCwgVSsyM0NGLCBVKzIzRTktMjNGMywgVSsyM0Y4LTIzRkUsIFUrMjRDMiwgVSsyNUExLFxuICAgICAgICBVKzI1QUEtMjVBRSwgVSsyNUI2LCBVKzI1QzAsIFUrMjVDOSwgVSsyNUQwLCBVKzI1RDEsIFUrMjVFNy0yNUVBLCBVKzI1RUQsIFUrMjVFRSwgVSsyNUZCLTI1RkUsIFUrMjYwMC0yNjA1LFxuICAgICAgICBVKzI2MEUsIFUrMjYxMSwgVSsyNjE0LCBVKzI2MTUsIFUrMjYxOCwgVSsyNjFELCBVKzI2MjAsIFUrMjYyMiwgVSsyNjIzLCBVKzI2MjYsIFUrMjYyQSwgVSsyNjJFLCBVKzI2MkYsXG4gICAgICAgIFUrMjYzOC0yNjNBLCBVKzI2NDAsIFUrMjY0MiwgVSsyNjQ4LTI2NTMsIFUrMjY1RiwgVSsyNjYwLCBVKzI2NjMsIFUrMjY2NSwgVSsyNjY2LCBVKzI2NjgsIFUrMjY3QiwgVSsyNjdFLCBVKzI2N0YsXG4gICAgICAgIFUrMjY5MS0yNjk3LCBVKzI2OTksIFUrMjY5QiwgVSsyNjlDLCBVKzI2QTAsIFUrMjZBMSwgVSsyNkE3LCBVKzI2QUEsIFUrMjZBQiwgVSsyNkIwLCBVKzI2QjEsIFUrMjZCRCwgVSsyNkJFLFxuICAgICAgICBVKzI2QzQsIFUrMjZDNSwgVSsyNkM4LCBVKzI2Q0UsIFUrMjZDRiwgVSsyNkQxLCBVKzI2RDMsIFUrMjZENCwgVSsyNkU5LCBVKzI2RUEsIFUrMjZGMC0yNkY1LCBVKzI2RjctMjZGQSwgVSsyNkZELFxuICAgICAgICBVKzI3MDIsIFUrMjcwNSwgVSsyNzA4LTI3MEQsIFUrMjcwRiwgVSsyNzEyLCBVKzI3MTQsIFUrMjcxNiwgVSsyNzFELCBVKzI3MjEsIFUrMjcyOCwgVSsyNzMzLCBVKzI3MzQsIFUrMjc0NCxcbiAgICAgICAgVSsyNzQ3LCBVKzI3NEMsIFUrMjc0RSwgVSsyNzUzLTI3NTUsIFUrMjc1NywgVSsyNzYzLCBVKzI3NjQsIFUrMjc5NS0yNzk3LCBVKzI3QTEsIFUrMjdCMCwgVSsyN0JGLCBVKzI5MzQsIFUrMjkzNSxcbiAgICAgICAgVSsyQjA1LTJCMDcsIFUrMkIwQywgVSsyQjBELCBVKzJCMUIsIFUrMkIxQywgVSsyQjFGLTJCMjQsIFUrMkIyRSwgVSsyQjJGLCBVKzJCNTAsIFUrMkI1NSwgVSsyQjU4LCBVKzJCOEYsXG4gICAgICAgIFUrMkJCQS0yQkJDLCBVKzJCQzMsIFUrMkJDNCwgVSsyQkVBLCBVKzJCRUIsIFUrMzAzMCwgVSszMDNELCBVKzMyOTcsIFUrMzI5OSwgVStFMDAwLUUwMDksIFUrRTAxMCwgVStFMDExLFxuICAgICAgICBVK0UwNDAtRTA2RCwgVStFMDgwLUUwQjQsIFUrRTBDMC1FMENDLCBVK0UwRkYtRTEwRCwgVStFMTQwLUUxNEEsIFUrRTE1MC1FMTU3LCBVK0UxODEtRTE4OSwgVStFMUMwLUUxQzQsXG4gICAgICAgIFUrRTFDNi1FMUQ5LCBVK0UyMDAtRTIxNiwgVStFMjQwLUUyNjksIFUrRTI4MC1FMjgzLCBVK0UyQzAtRTJDNCwgVStFMkM2LUUyREEsIFUrRTMwMC1FMzAzLCBVK0UzMDUtRTMwRixcbiAgICAgICAgVStFMzEyLUUzMTYsIFUrRTMxOC1FMzIyLCBVK0UzMjQtRTMyOSwgVStFMzJCLCBVK0UzNDAtRTM0OCwgVStFMzgwLCBVK0UzODEsIFUrRjAwMCwgVStGNzdBLCBVK0Y4RkYsIFUrRkUwRixcbiAgICAgICAgVSsxRjAwNCwgVSsxRjBDRiwgVSsxRjEwRC0xRjEwRiwgVSsxRjEyRiwgVSsxRjE2RC0xRjE3MSwgVSsxRjE3RSwgVSsxRjE3RiwgVSsxRjE4RSwgVSsxRjE5MS0xRjE5QSwgVSsxRjFFNi0xRjFGRixcbiAgICAgICAgVSsxRjIwMSwgVSsxRjIwMiwgVSsxRjIxQSwgVSsxRjIyRiwgVSsxRjIzMi0xRjIzQSwgVSsxRjI1MCwgVSsxRjI1MSwgVSsxRjI2MC0xRjI2NSwgVSsxRjMwMC0xRjMyMSwgVSsxRjMyNC0xRjM5MyxcbiAgICAgICAgVSsxRjM5NiwgVSsxRjM5NywgVSsxRjM5OS0xRjM5QiwgVSsxRjM5RS0xRjNGMCwgVSsxRjNGMy0xRjNGNSwgVSsxRjNGNy0xRjRGRCwgVSsxRjRGRi0xRjUzRCwgVSsxRjU0OS0xRjU0RSxcbiAgICAgICAgVSsxRjU1MC0xRjU2NywgVSsxRjU2RiwgVSsxRjU3MCwgVSsxRjU3My0xRjU3QSwgVSsxRjU4NywgVSsxRjU4QS0xRjU4RCwgVSsxRjU5MCwgVSsxRjU5NSwgVSsxRjU5NiwgVSsxRjVBNCxcbiAgICAgICAgVSsxRjVBNSwgVSsxRjVBOCwgVSsxRjVCMSwgVSsxRjVCMiwgVSsxRjVCQywgVSsxRjVDMi0xRjVDNCwgVSsxRjVEMS0xRjVEMywgVSsxRjVEQy0xRjVERSwgVSsxRjVFMSwgVSsxRjVFMyxcbiAgICAgICAgVSsxRjVFOCwgVSsxRjVFRiwgVSsxRjVGMywgVSsxRjVGQS0xRjY0RiwgVSsxRjY4MC0xRjZDNSwgVSsxRjZDQi0xRjZEMiwgVSsxRjZENS0xRjZENywgVSsxRjZEQy0xRjZFNSwgVSsxRjZFOSxcbiAgICAgICAgVSsxRjZFQiwgVSsxRjZFQywgVSsxRjZGMCwgVSsxRjZGMy0xRjZGQywgVSsxRjdFMC0xRjdFQiwgVSsxRjdGMCwgVSsxRjkwQy0xRjkzQSwgVSsxRjkzQy0xRjk0NSwgVSsxRjk0Ny0xRjlGRixcbiAgICAgICAgVSsxRkE3MC0xRkE3QywgVSsxRkE4MC0xRkE4OCwgVSsxRkE5MC0xRkFCRCwgVSsxRkFCRi0xRkFDNSwgVSsxRkFDRS0xRkFEQiwgVSsxRkFFMC0xRkFFOCwgVSsxRkFGMC0xRkFGOCxcbiAgICAgICAgVSsxRkJDNS0xRkJDOSwgVStFMDA2MS1FMDA2NywgVStFMDA2OSwgVStFMDA2Qy1FMDA3OSwgVStFMDA3Rjtcbn1cblxuQGZvbnQtZmFjZSB7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuTW9qaUNvbG9yJztcbiAgICBzcmM6XG4gICAgICAgIHVybCgnL2ZvbnRzL09wZW5Nb2ppLWNvbG9yLWNiZHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyksXG4gICAgICAgIHVybCgnaHR0cHM6Ly9zNi5wdGJrLmlvL2ZvbnRzL09wZW5Nb2ppLWNvbG9yLWNiZHQud29mZjInKSBmb3JtYXQoJ3dvZmYyJyk7XG4gICAgZm9udC1kaXNwbGF5OiBzd2FwO1xuICAgIHVuaWNvZGUtcmFuZ2U6IFUrMjMsIFUrMkEsIFUrMkQsIFUrMzAtMzksIFUrQTksIFUrQUUsIFUrMjAwRCwgVSsyMDNDLCBVKzIwNDksIFUrMjBFMywgVSsyMTE3LCBVKzIxMjAsIFUrMjEyMiwgVSsyMTM5LFxuICAgICAgICBVKzIxOTQtMjE5OSwgVSsyMUE5LCBVKzIxQUEsIFUrMjI5QywgVSsyMzFBLCBVKzIzMUIsIFUrMjMyOCwgVSsyM0NGLCBVKzIzRTktMjNGMywgVSsyM0Y4LTIzRkUsIFUrMjRDMiwgVSsyNUExLFxuICAgICAgICBVKzI1QUEtMjVBRSwgVSsyNUI2LCBVKzI1QzAsIFUrMjVDOSwgVSsyNUQwLCBVKzI1RDEsIFUrMjVFNy0yNUVBLCBVKzI1RUQsIFUrMjVFRSwgVSsyNUZCLTI1RkUsIFUrMjYwMC0yNjA1LFxuICAgICAgICBVKzI2MEUsIFUrMjYxMSwgVSsyNjE0LCBVKzI2MTUsIFUrMjYxOCwgVSsyNjFELCBVKzI2MjAsIFUrMjYyMiwgVSsyNjIzLCBVKzI2MjYsIFUrMjYyQSwgVSsyNjJFLCBVKzI2MkYsXG4gICAgICAgIFUrMjYzOC0yNjNBLCBVKzI2NDAsIFUrMjY0MiwgVSsyNjQ4LTI2NTMsIFUrMjY1RiwgVSsyNjYwLCBVKzI2NjMsIFUrMjY2NSwgVSsyNjY2LCBVKzI2NjgsIFUrMjY3QiwgVSsyNjdFLCBVKzI2N0YsXG4gICAgICAgIFUrMjY5MS0yNjk3LCBVKzI2OTksIFUrMjY5QiwgVSsyNjlDLCBVKzI2QTAsIFUrMjZBMSwgVSsyNkE3LCBVKzI2QUEsIFUrMjZBQiwgVSsyNkIwLCBVKzI2QjEsIFUrMjZCRCwgVSsyNkJFLFxuICAgICAgICBVKzI2QzQsIFUrMjZDNSwgVSsyNkM4LCBVKzI2Q0UsIFUrMjZDRiwgVSsyNkQxLCBVKzI2RDMsIFUrMjZENCwgVSsyNkU5LCBVKzI2RUEsIFUrMjZGMC0yNkY1LCBVKzI2RjctMjZGQSwgVSsyNkZELFxuICAgICAgICBVKzI3MDIsIFUrMjcwNSwgVSsyNzA4LTI3MEQsIFUrMjcwRiwgVSsyNzEyLCBVKzI3MTQsIFUrMjcxNiwgVSsyNzFELCBVKzI3MjEsIFUrMjcyOCwgVSsyNzMzLCBVKzI3MzQsIFUrMjc0NCxcbiAgICAgICAgVSsyNzQ3LCBVKzI3NEMsIFUrMjc0RSwgVSsyNzUzLTI3NTUsIFUrMjc1NywgVSsyNzYzLCBVKzI3NjQsIFUrMjc5NS0yNzk3LCBVKzI3QTEsIFUrMjdCMCwgVSsyN0JGLCBVKzI5MzQsIFUrMjkzNSxcbiAgICAgICAgVSsyQjA1LTJCMDcsIFUrMkIwQywgVSsyQjBELCBVKzJCMUIsIFUrMkIxQywgVSsyQjFGLTJCMjQsIFUrMkIyRSwgVSsyQjJGLCBVKzJCNTAsIFUrMkI1NSwgVSsyQjU4LCBVKzJCOEYsXG4gICAgICAgIFUrMkJCQS0yQkJDLCBVKzJCQzMsIFUrMkJDNCwgVSsyQkVBLCBVKzJCRUIsIFUrMzAzMCwgVSszMDNELCBVKzMyOTcsIFUrMzI5OSwgVStFMDAwLUUwMDksIFUrRTAxMCwgVStFMDExLFxuICAgICAgICBVK0UwNDAtRTA2RCwgVStFMDgwLUUwQjQsIFUrRTBDMC1FMENDLCBVK0UwRkYtRTEwRCwgVStFMTQwLUUxNEEsIFUrRTE1MC1FMTU3LCBVK0UxODEtRTE4OSwgVStFMUMwLUUxQzQsXG4gICAgICAgIFUrRTFDNi1FMUQ5LCBVK0UyMDAtRTIxNiwgVStFMjQwLUUyNjksIFUrRTI4MC1FMjgzLCBVK0UyQzAtRTJDNCwgVStFMkM2LUUyREEsIFUrRTMwMC1FMzAzLCBVK0UzMDUtRTMwRixcbiAgICAgICAgVStFMzEyLUUzMTYsIFUrRTMxOC1FMzIyLCBVK0UzMjQtRTMyOSwgVStFMzJCLCBVK0UzNDAtRTM0OCwgVStFMzgwLCBVK0UzODEsIFUrRjAwMCwgVStGNzdBLCBVK0Y4RkYsIFUrRkUwRixcbiAgICAgICAgVSsxRjAwNCwgVSsxRjBDRiwgVSsxRjEwRC0xRjEwRiwgVSsxRjEyRiwgVSsxRjE2RC0xRjE3MSwgVSsxRjE3RSwgVSsxRjE3RiwgVSsxRjE4RSwgVSsxRjE5MS0xRjE5QSwgVSsxRjFFNi0xRjFGRixcbiAgICAgICAgVSsxRjIwMSwgVSsxRjIwMiwgVSsxRjIxQSwgVSsxRjIyRiwgVSsxRjIzMi0xRjIzQSwgVSsxRjI1MCwgVSsxRjI1MSwgVSsxRjI2MC0xRjI2NSwgVSsxRjMwMC0xRjMyMSwgVSsxRjMyNC0xRjM5MyxcbiAgICAgICAgVSsxRjM5NiwgVSsxRjM5NywgVSsxRjM5OS0xRjM5QiwgVSsxRjM5RS0xRjNGMCwgVSsxRjNGMy0xRjNGNSwgVSsxRjNGNy0xRjRGRCwgVSsxRjRGRi0xRjUzRCwgVSsxRjU0OS0xRjU0RSxcbiAgICAgICAgVSsxRjU1MC0xRjU2NywgVSsxRjU2RiwgVSsxRjU3MCwgVSsxRjU3My0xRjU3QSwgVSsxRjU4NywgVSsxRjU4QS0xRjU4RCwgVSsxRjU5MCwgVSsxRjU5NSwgVSsxRjU5NiwgVSsxRjVBNCxcbiAgICAgICAgVSsxRjVBNSwgVSsxRjVBOCwgVSsxRjVCMSwgVSsxRjVCMiwgVSsxRjVCQywgVSsxRjVDMi0xRjVDNCwgVSsxRjVEMS0xRjVEMywgVSsxRjVEQy0xRjVERSwgVSsxRjVFMSwgVSsxRjVFMyxcbiAgICAgICAgVSsxRjVFOCwgVSsxRjVFRiwgVSsxRjVGMywgVSsxRjVGQS0xRjY0RiwgVSsxRjY4MC0xRjZDNSwgVSsxRjZDQi0xRjZEMiwgVSsxRjZENS0xRjZENywgVSsxRjZEQy0xRjZFNSwgVSsxRjZFOSxcbiAgICAgICAgVSsxRjZFQiwgVSsxRjZFQywgVSsxRjZGMCwgVSsxRjZGMy0xRjZGQywgVSsxRjdFMC0xRjdFQiwgVSsxRjdGMCwgVSsxRjkwQy0xRjkzQSwgVSsxRjkzQy0xRjk0NSwgVSsxRjk0Ny0xRjlGRixcbiAgICAgICAgVSsxRkE3MC0xRkE3QywgVSsxRkE4MC0xRkE4OCwgVSsxRkE5MC0xRkFCRCwgVSsxRkFCRi0xRkFDNSwgVSsxRkFDRS0xRkFEQiwgVSsxRkFFMC0xRkFFOCwgVSsxRkFGMC0xRkFGOCxcbiAgICAgICAgVSsxRkJDNS0xRkJDOSwgVStFMDA2MS1FMDA2NywgVStFMDA2OSwgVStFMDA2Qy1FMDA3OSwgVStFMDA3Rjtcbn1cblxuLmNvcGllZFRvQ2xpcGJvYXJkTWVzc2FnZSB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMzJweDtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGJhY2tncm91bmQ6ICMyMjI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogMTBweCAyNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEuMWVtO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgICBvcGFjaXR5OiAwLjk3O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDk5OTk7XG59XG5cbi5DaGF0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAgIGZvbnQtZmFtaWx5OiBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmLCAnT3Blbk1vamlDb2xvcicsICdPcGVuTW9qaUJsYWNrJztcblxuICAgIC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aDogMTUwcHg7XG4gICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcDogMTJweDtcbiAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZTogNDBweDtcbiAgICAtLWNoYXQtbWVzc2FnZS1tYXgtd2lkdGg6IG1pbihcbiAgICAgICAgNzAlLFxuICAgICAgICA2MDBweCxcbiAgICAgICAgY2FsYygxMDAlIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplKSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwKSlcbiAgICApO1xuICAgIC0tY2hhdC1pbnB1dC12aXNpYmxlLWxpbmVzOiAzO1xuICAgIC0tY2hhdC1pbnB1dC1mb250LXNpemU6IDE1cHg7XG4gICAgLS1jaGF0LWlucHV0LWxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgLS1jaGF0LWlucHV0LXBhZGRpbmcteTogMTBweDtcbiAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy14OiAxMnB4O1xuICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDBweDtcbiAgICAtLWNoYXQtaW5wdXQtdGV4dGFyZWEtaGVpZ2h0OiBjYWxjKFxuICAgICAgICB2YXIoLS1jaGF0LWlucHV0LXZpc2libGUtbGluZXMpICogdmFyKC0tY2hhdC1pbnB1dC1mb250LXNpemUpICogdmFyKC0tY2hhdC1pbnB1dC1saW5lLWhlaWdodCkgK1xuICAgICAgICAgICAgKDIgKiB2YXIoLS1jaGF0LWlucHV0LXBhZGRpbmcteSkpXG4gICAgKTtcbiAgICAvKiA8LSBUT0RPOiBb8J+noF1b8J+OsV0gQmV0dGVyLCBkZWZpbmUgb3RoZXIgZm9udHMgKi9cbn1cblxuLmNoYXRNYWluRmxvdyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGU6XG4gICAgICAgICfwn5+mJyBtaW4tY29udGVudFxuICAgICAgICAn8J+SrCcgMWZyXG4gICAgICAgICfwn5OdJyBtaW4tY29udGVudFxuICAgICAgICAvIDFmcjtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdEJhciB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDE2cHggMjBweDtcbiAgICBjb2xvcjogIzBmMTcyNDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgMzYsIDAuMDYpO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4uVGFza3NJblByb2dyZXNzIHtcbiAgICBncmlkLWFyZWE6IPCfn6Y7XG4gICAgd2lkdGg6IGF1dG87XG4gICAgaGVpZ2h0OiBtaW4tY29udGVudDtcbiAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbiAgICBtYXJnaW46IDhweCAxNnB4O1xufVxuXG4uYWN0aW9ucyB7XG4gICAgZ3JpZC1hcmVhOiDwn5KsO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgei1pbmRleDogNDA7XG4gICAgYWxpZ24tc2VsZjogc2VsZi1zdGFydDtcbiAgICBqdXN0aWZ5LXNlbGY6IHNlbGYtZW5kO1xuICAgIG1hcmdpbjogMTZweCAyMHB4IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHRyYW5zaXRpb246IG9wYWNpdHkgMC4ycyBlYXNlO1xuICAgIHdpbGwtY2hhbmdlOiBvcGFjaXR5O1xufVxuXG4uYWN0aW9ucy5wb3J0YWwge1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmFjdGlvbnMubGVmdCB7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLXN0YXJ0O1xufVxuXG4uYWN0aW9ucy5yaWdodCB7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbn1cblxuLmFjdGlvbnNGYWRlZCB7XG4gICAgb3BhY2l0eTogMC4zO1xufVxuXG4uYWN0aW9uc1Njcm9sbGluZyB7XG4gICAgb3BhY2l0eTogMC4xNTtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLyogTGFyZ2UgdGFibGV0IGFuZCBzbWFsbCBkZXNrdG9wIHNjcmVlbnMgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5jaGF0QnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiBzdmcge1xuICAgICAgICB3aWR0aDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi8qIE1lZGl1bSBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogNjAwcHgpIHtcbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMTRweCAxOHB4IDA7XG4gICAgICAgIGdhcDogN3B4O1xuICAgIH1cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdENoaWxkcmVuIHtcbiAgICBncmlkLWFyZWE6IPCfkqw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbiAgICBtaW4taGVpZ2h0OiAwO1xuICAgIHotaW5kZXg6IDMwMDtcbn1cblxuLyogQ2hhdCBtZXNzYWdlcyBhcmVhICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMge1xuICAgIGdyaWQtYXJlYTog8J+SrDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgei1pbmRleDogMTA7XG4gICAgcGFkZGluZzogMjRweCAyMHB4IDE2cHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGg7XG59XG5cbi5oYXNBY3Rpb25zQW5kRmlyc3RNZXNzYWdlSXNMb25nIHtcbiAgICBwYWRkaW5nLXRvcDogODBweDtcbn1cblxuLyogQ3VzdG9tIHNjcm9sbGJhciBzdHlsaW5nICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXM6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogNnB4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrIHtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXM6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG59XG5cbi8qIEluZGl2aWR1YWwgY2hhdCBtZXNzYWdlICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGNvbHVtbi1nYXA6IHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYW5pbWF0aW9uOiBtZXNzYWdlU2xpZGVJbiAwLjRzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVN0YWNrIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgbWF4LXdpZHRoOiB2YXIoLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoKTtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VTdGFjayB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVN0YWNrID4gKiB7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xufVxuXG4ubWVzc2FnZVdpdGhNYXAge1xuICAgIC8qIG1hcmtlciBjbGFzcyBhcHBsaWVkIHRvIG1hcCBtZXNzYWdlcyBzbyB0aGV5IGNhbiBzdHJldGNoIHdpZGVyLiAqL1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5tZXNzYWdlV2l0aE1hcCB7XG4gICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLm1lc3NhZ2VXaXRoTWFwIC5tZXNzYWdlU3RhY2sge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgIHdpZHRoOiBtaW4oXG4gICAgICAgIDkwdncsXG4gICAgICAgIDkyMHB4LFxuICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICk7XG4gICAgbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgIDkwdncsXG4gICAgICAgIDkyMHB4LFxuICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICk7XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA5MDBweCkge1xuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLm1lc3NhZ2VXaXRoTWFwIC5tZXNzYWdlU3RhY2sge1xuICAgICAgICB3aWR0aDogbWluKDkydncsIDY0MHB4KTtcbiAgICAgICAgbWF4LXdpZHRoOiBtaW4oOTJ2dywgNjQwcHgpO1xuICAgIH1cbn1cblxuLm1lc3NhZ2VNZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogNnB4O1xuICAgIG1hcmdpbjogNHB4IDZweCAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzZiNzI4MDtcbiAgICBsaW5lLWhlaWdodDogMS40O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5tZXNzYWdlTWV0YSB7XG4gICAgYWxpZ24tc2VsZjogZmxleC1lbmQ7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbi5tZXNzYWdlTGlmZWN5Y2xlQmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMTYpO1xuICAgIGNvbG9yOiAjNDc1NTY5O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4ubWVzc2FnZVRpbWVzdGFtcCB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbn1cblxuLm1lc3NhZ2VEdXJhdGlvbiB7XG4gICAgb3BhY2l0eTogMC44NTtcbn1cblxuLm1lc3NhZ2VMaWZlY3ljbGVFcnJvciB7XG4gICAgbWFyZ2luOiA0cHggNnB4IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjYjkxYzFjO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4ucGFydGljaXBhbnRMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM2NDc0OGI7XG4gICAgbWFyZ2luOiAwIDAgNnB4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5wYXJ0aWNpcGFudExhYmVsIHtcbiAgICB0ZXh0LWFsaWduOiByaWdodDtcbn1cblxuQGtleWZyYW1lcyBtZXNzYWdlU2xpZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KSBzY2FsZSgwLjk1KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG4uaXNOb3RDb21wbGV0ZU1lc3NhZ2Uge1xuICAgIC8qL1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgI2ZmMDAwMCAhaW1wb3J0YW50O1xuICAgIC8qKi9cblxuICAgIG9wYWNpdHk6IDAuNztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5Ob25Db21wbGV0ZU1lc3NhZ2VGaWxsZXIge1xuICAgIGNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLyogRW5oYW5jZWQgbG9hZGluZyBzdGF0ZXMgZm9yIG1lc3NhZ2VzICovXG4uaXNOb3RDb21wbGV0ZU1lc3NhZ2UgLm1lc3NhZ2VUZXh0OjphZnRlciB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogOHB4O1xuICAgIHJpZ2h0OiAxMnB4O1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KSwgdHJhbnNwYXJlbnQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBhbmltYXRpb246IGxvYWRpbmdQdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4udG9vbENhbGxDaGlwcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuXG4uc291cmNlQ2l0YXRpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBwYWRkaW5nLXRvcDogOHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG59XG5cbi50b29sQ2FsbENoaXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBmb250LXNpemU6IDAuOGVtO1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xNSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBmb250LWZhbWlseTogJ09wZW5Nb2ppQ29sb3InLCAnT3Blbk1vamlCbGFjaycsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi50b29sQ2FsbENoaXA6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgYm94LXNoYWRvdzogMCAycHggNnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG5cbi50b29sQ2FsbENoaXBPbmdvaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoNTksIDEzMCwgMjQ2LCAwLjgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjEpO1xufVxuXG4udG9vbENhbGxDaGlwU3RhdHVzIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udGVhbVRvb2xDYWxsLFxuLnRyYW5zaXRpdmVUb29sQ2FsbCB7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIGdhcDogOHB4O1xufVxuXG4udGVhbUFnZW50Q2hpcCxcbi50cmFuc2l0aXZlQWdlbnRDaGlwIHtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnRvb2xDYWxsTGFiZWwge1xuICAgIGZsZXg6IDE7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG59XG5cbi50b29sQ2FsbFdpdGhFcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC44KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI0OSwgMTE1LCAyMiwgMC4xMik7XG59XG5cbi50b29sQ2FsbE9yaWdpbiB7XG4gICAgZm9udC1zaXplOiAwLjg1ZW07XG4gICAgb3BhY2l0eTogMC43NTtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG59XG5cbi50b29sQ2FsbERldGFpbHMge1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnRvb2xDYWxsRGV0YWlscyBwIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi50b29sQ2FsbERhdGEge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xufVxuXG4udG9vbENhbGxDaGlwU3Bpbm5lciB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IHRvb2xDYWxsU3Bpbm5lciAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuQGtleWZyYW1lcyB0b29sQ2FsbFNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgbG9hZGluZ1B1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMC4zO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgwLjgpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlWCgxLjIpO1xuICAgIH1cbn1cblxuLyogVHlwaW5nIGluZGljYXRvciBmb3IgQUkgbWVzc2FnZXMgKi9cbi50eXBpbmdJbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgYW5pbWF0aW9uOiBtZXNzYWdlU2xpZGVJbiAwLjRzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLnR5cGluZ0luZGljYXRvciAuYXZhdGFyIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBoZWlnaHQ6IDQwcHg7XG4gICAgbWFyZ2luOiAwIDEycHggNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4vKiBb44qX77iPXVxuLnR5cGluZ0luZGljYXRvciAuYXZhdGFyIGltZyB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VlZjZmYjtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG59XG4qL1xuXG4udHlwaW5nQnViYmxlIHtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDRweDtcbiAgICBtaW4taGVpZ2h0OiAyNHB4O1xufVxuXG4udHlwaW5nRG90cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDRweDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xufVxuXG4udHlwaW5nRG90IHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjNmI3MjgwIDAlLCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuNikgMTAwJSk7XG4gICAgYW5pbWF0aW9uOiB0eXBpbmdCb3VuY2UgMS40cyBpbmZpbml0ZSBlYXNlLWluLW91dDtcbiAgICBib3gtc2hhZG93OiAwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4udHlwaW5nRG90Om50aC1jaGlsZCgxKSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMC4zMnM7XG59XG5cbi50eXBpbmdEb3Q6bnRoLWNoaWxkKDIpIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IC0wLjE2cztcbn1cblxuLnR5cGluZ0RvdDpudGgtY2hpbGQoMykge1xuICAgIGFuaW1hdGlvbi1kZWxheTogMHM7XG59XG5cbkBrZXlmcmFtZXMgdHlwaW5nQm91bmNlIHtcbiAgICAwJSxcbiAgICA4MCUsXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44KSB0cmFuc2xhdGVZKDApO1xuICAgICAgICBvcGFjaXR5OiAwLjU7XG4gICAgfVxuICAgIDQwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKSB0cmFuc2xhdGVZKC04cHgpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSB7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIGZsZXgtZGlyZWN0aW9uOiByb3ctcmV2ZXJzZTtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUgLm1lc3NhZ2VUZXh0IHtcbiAgICBib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1czogNnB4O1xufVxuXG4ucmF0aW5nU3RhciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICB0cmFuc2l0aW9uOiBjb2xvciAwLjJzO1xuICAgIGNvbG9yOiB2YXIoLS1zdGFyLWluYWN0aXZlLWNvbG9yLCAjY2NjKTtcbn1cblxuLnJhdGluZ1N0YXIuYWN0aXZlIHtcbiAgICBjb2xvcjogI2ZmZDcwMDtcbn1cblxuLyogU2VuZGVyIEF2YXRhciAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSk7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpO1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLyogW+OKl++4j11cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIgaW1nIHtcbiAgICB3aWR0aDogNDBweDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1hdmF0YXItYmctY29sb3IsICNlZWY2ZmIpO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZTtcbn1cblxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZzpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xNSk7XG59XG4qL1xuXG4vKiBNZXNzYWdlIHRleHQgYnViYmxlICovXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLW1lc3NhZ2UtYmctY29sb3IpO1xuICAgIGNvbG9yOiB2YXIoLS1tZXNzYWdlLXRleHQtY29sb3IpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAxNHB4IDE4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiBtaW4odmFyKC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aCksIDEwMCUpO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIC0tY2hhdC1oZWFkaW5nLXN1cmZhY2U6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4xMik7XG4gICAgLS1jaGF0LWhlYWRpbmctYWNjZW50OiByZ2JhKDU2LCAxODksIDI0OCwgMC44NSk7XG4gICAgLS1jaGF0LWhlYWRpbmctdGV4dC1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbiAgICAtLWNoYXQtaGVhZGluZy1ib3JkZXItY29sb3I6IHJnYmEoMTUsIDIzLCA0MiwgMC4xOCk7XG4gICAgLS1jaGF0LWhlYWRpbmctc2hhZG93LWNvbG9yOiByZ2JhKDE1LCAyMywgNDIsIDAuNjUpO1xufVxuXG5Ac3VwcG9ydHMgKGNvbG9yOiBjb2xvci1taXgoaW4gc3JnYiwgIzAwMCA1MCUsICNmZmYgNTAlKSkge1xuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIC0tY2hhdC1oZWFkaW5nLXN1cmZhY2U6IGNvbG9yLW1peChpbiBzcmdiLCB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA3MCUsIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCkgMzAlKTtcbiAgICAgICAgLS1jaGF0LWhlYWRpbmctYWNjZW50OiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKSA2NSUsIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjkpIDM1JSk7XG4gICAgICAgIC0tY2hhdC1oZWFkaW5nLWJvcmRlci1jb2xvcjogY29sb3ItbWl4KFxuICAgICAgICAgICAgaW4gc3JnYixcbiAgICAgICAgICAgIHZhcigtLW1lc3NhZ2UtYmctY29sb3IsICNmZmZmZmYpIDYwJSxcbiAgICAgICAgICAgIHJnYmEoMTUsIDIzLCA0MiwgMC4xMikgNDAlXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1oZWFkaW5nLXNoYWRvdy1jb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsIHJnYmEoMTUsIDIzLCA0MiwgMC42NSkgODAlLCByZ2JhKDk2LCAxNjUsIDI1MCwgMC40NSkgMjAlKTtcbiAgICAgICAgLS1jaGF0LWhlYWRpbmctdGV4dC1jb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yLCAjMGYxNzJhKTtcbiAgICB9XG59XG5cbi8qIENvcHkgYnV0dG9uIHN0eWxlcyAqL1xuLmNvcHlCdXR0b25Db250YWluZXIge1xuICAgIGZsb2F0OiByaWdodDtcbiAgICB0b3A6IDhweDtcbiAgICByaWdodDogMTBweDtcbiAgICB6LWluZGV4OiAyO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuXG4gICAgdmlzaWJpbGl0eTogaGlkZGVuO1xufVxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0OmhvdmVyIC5jb3B5QnV0dG9uQ29udGFpbmVyLFxuLmNvcHlCdXR0b25Db250YWluZXI6Zm9jdXMtd2l0aGluIHtcbiAgICB2aXNpYmlsaXR5OiB2aXNpYmxlO1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4ubWVzc2FnZUNvbnRyb2xHcm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xufVxuXG4uY29weUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIHBhZGRpbmc6IDJweCA1cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMDcpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cywgYm94LXNoYWRvdyAwLjE1cywgYm9yZGVyIDAuMTVzO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4ucGxheUJ1dHRvbiB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMTVzIGVhc2U7XG4gICAgY29sb3I6ICMxMTE7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIHBhZGRpbmc6IDA7XG59XG5cbi5wbGF5QnV0dG9uSWNvbiB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xufVxuXG4ucGxheUJ1dHRvblNwaW5uZXIge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMxMTE7XG4gICAgYW5pbWF0aW9uOiBtZXNzYWdlUGxheVNwaW5uZXIgMC45cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5wbGF5QnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOCk7XG59XG5cbi5wbGF5QnV0dG9uOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIG9wYWNpdHk6IDAuNjtcbn1cblxuQGtleWZyYW1lcyBtZXNzYWdlUGxheVNwaW5uZXIge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG4uY29waWVkVG9vbHRpcCB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGxlZnQ6IDUwJTtcbiAgICB0b3A6IDExMCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpO1xuICAgIGJhY2tncm91bmQ6ICMyMjI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgcGFkZGluZzogNnB4IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMC45OGVtO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjE4KTtcbiAgICBvcGFjaXR5OiAwLjk3O1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIHotaW5kZXg6IDEwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG1hcmdpbi10b3A6IDRweDtcbiAgICBhbmltYXRpb246IGNvcGllZFRvb2x0aXBGYWRlSW4gMC4ycztcbiAgICBtYXgtd2lkdGg6IDIyMHB4O1xuICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLmNvcGllZFRvb2x0aXBMZWZ0IHtcbiAgICBsZWZ0OiAwICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNmb3JtOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbi5jb3BpZWRUb29sdGlwUmlnaHQge1xuICAgIGxlZnQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICByaWdodDogMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4vKiBSZW1vdmVkIHJpZ2h0LWFsaWduZWQgb3ZlcnJpZGUgdG8ga2VlcCB0b29sdGlwIHBvc2l0aW9uIHN0YWJsZSAqL1xuXG5Aa2V5ZnJhbWVzIGNvcGllZFRvb2x0aXBGYWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSg4cHgpIHNjYWxlKDAuOTcpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTc7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLmNvcHlCdXR0b246aG92ZXIsXG4uY29weUJ1dHRvbjpmb2N1cyB7XG4gICAgYm9yZGVyOiAxLjVweCBzb2xpZCAjYmJiO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMSk7XG59XG5cbi5jb3B5QnV0dG9uIHN2ZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG59XG5cbi5tZXNzYWdlVGV4dCB1bCB7XG4gICAgbGlzdC1zdHlsZTogZGlzYztcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuLm1lc3NhZ2VUZXh0IG9sIHtcbiAgICBsaXN0LXN0eWxlOiBkZWNpbWFsO1xuICAgIG1hcmdpbi1sZWZ0OiAyMHB4O1xufVxuXG4ubWVzc2FnZVRleHQgaW1nLFxuLm1lc3NhZ2VUZXh0IHByZSxcbi5tZXNzYWdlVGV4dCBibG9ja3F1b3RlLFxuLm1lc3NhZ2VUZXh0IHRhYmxlIHtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4ubWVzc2FnZVRleHQgcHJlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjMDAwMDAwZmY7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDFlbTtcbn1cblxuLm1lc3NhZ2VUZXh0IGJsb2NrcXVvdGUge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmZjYztcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgcGFkZGluZzogMWVtO1xufVxuXG4ubWVzc2FnZVRleHQgY29kZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xuICAgIGJhY2tncm91bmQ6ICNjY2NjY2M1NTtcbiAgICBmb250LXNpemU6IGluaGVyaXQ7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi5tZXNzYWdlVGV4dCBwcmUgY29kZSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzAwMDAwMGNjO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm1lc3NhZ2VUZXh0IC5jaGF0LWNvZGUtYmxvY2sge1xuICAgIGJhY2tncm91bmQ6ICMxODFjMjM7XG4gICAgY29sb3I6ICNmOGZhZmM7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBib3JkZXItY29sb3I6ICMyMzI3MmY7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4xMik7XG4gICAgZm9udC1mYW1pbHk6ICdGaXJhIE1vbm8nLCAnTWVubG8nLCAnQ29uc29sYXMnLCAnTGliZXJhdGlvbiBNb25vJywgbW9ub3NwYWNlO1xufVxuLm1lc3NhZ2VUZXh0IC5jaGF0LWNvZGUtYmxvY2sgY29kZSB7XG4gICAgYmFja2dyb3VuZDogbm9uZSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1mYW1pbHk6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IGluaGVyaXQgIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogbm9uZSAhaW1wb3J0YW50O1xuICAgIHdoaXRlLXNwYWNlOiBwcmU7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuLm1lc3NhZ2VUZXh0IHRhYmxlIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItY29sbGFwc2U6IHNlcGFyYXRlO1xuICAgIGJvcmRlci1zcGFjaW5nOiAwO1xuICAgIG1hcmdpbjogMTZweCAwO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7IC8qIFN0cm9uZ2VyIGxpZ2h0IGJhY2tncm91bmQgZm9yIGNvbnRyYXN0ICovXG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzE3MjIzYjsgLyogRGFyayB0ZXh0IGZvciBjb250cmFzdCAqL1xufVxuLm1lc3NhZ2VUZXh0IHRoLFxuLm1lc3NhZ2VUZXh0IHRkIHtcbiAgICBwYWRkaW5nOiAxMHB4IDE2cHg7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkMWRiZTg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBjb2xvcjogIzE3MjIzYjsgLyogRW5zdXJlIHN0cm9uZyB0ZXh0IGNvbG9yIGZvciBhbGwgY2VsbHMgKi9cbiAgICBiYWNrZ3JvdW5kOiBub25lO1xufVxuLm1lc3NhZ2VUZXh0IHRoIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICNlYWYzZmEgODAlLCAjZDFlM2Y4IDEwMCUpO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMxNzIyM2I7IC8qIFN0cm9uZyBoZWFkZXIgdGV4dCAqL1xuICAgIGJvcmRlci1ib3R0b206IDJweCBzb2xpZCAjYjVjN2RlO1xufVxuLm1lc3NhZ2VUZXh0IHRyOmxhc3QtY2hpbGQgdGQge1xuICAgIGJvcmRlci1ib3R0b206IG5vbmU7XG59XG4ubWVzc2FnZVRleHQgdHI6bnRoLWNoaWxkKGV2ZW4pIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWFmM2ZhO1xufVxuLm1lc3NhZ2VUZXh0IHRyOmhvdmVyIHRkIHtcbiAgICBiYWNrZ3JvdW5kOiAjY2JlMGY3O1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycztcbn1cbi5tZXNzYWdlVGV4dCB0YWJsZSB7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuLm1lc3NhZ2VUZXh0IHRoOmZpcnN0LWNoaWxkLFxuLm1lc3NhZ2VUZXh0IHRkOmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiAxMnB4O1xufVxuLm1lc3NhZ2VUZXh0IHRoOmxhc3QtY2hpbGQsXG4ubWVzc2FnZVRleHQgdGQ6bGFzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1yaWdodC1yYWRpdXM6IDEycHg7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dDpob3ZlciB7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLyogQXR0YWNobWVudHMgc3R5bGVzICovXG4uYXR0YWNobWVudHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgcGFkZGluZy10b3A6IDEwcHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbn1cblxuLmF0dGFjaG1lbnQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwYWRkaW5nOiA2cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjMpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIG1heC13aWR0aDogMjAwcHg7XG59XG5cbi5hdHRhY2htZW50OmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuNSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4uYXR0YWNobWVudEljb24ge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBvcGFjaXR5OiAwLjg7XG59XG5cbi5hdHRhY2htZW50TmFtZSB7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4vKiBNZXNzYWdlIGJ1dHRvbnMgY29udGFpbmVyICovXG4ubWVzc2FnZUJ1dHRvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgcGFkZGluZy10b3A6IDEycHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMTI1IDEyNSAxMjUgLyAwLjgzKTtcbn1cblxuLyogSW5kaXZpZHVhbCBtZXNzYWdlIGJ1dHRvbiAqL1xuLm1lc3NhZ2VCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgcGFkZGluZzogOHB4IDE0cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC45KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xuICAgIHVzZXItc2VsZWN0OiBub25lO1xufVxuXG4ubWVzc2FnZUJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBwcm9ncmVzcztcbiAgICBvcGFjaXR5OiAwLjcyO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubWVzc2FnZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMzIsIDI1NSwgMC4xKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjE1KTtcbn1cblxuLm1lc3NhZ2VCdXR0b246aG92ZXI6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC45KTtcbn1cblxuLm1lc3NhZ2VCdXR0b246YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzIGVhc2U7XG59XG5cbi5hY3Rpb25NZXNzYWdlQnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU1LCA2NSwgODEsIDAuOTIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgzMSwgNDEsIDU1LCAwLjk1KTtcbiAgICBjb2xvcjogI2ZmZjtcbn1cblxuLmFjdGlvbk1lc3NhZ2VCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMzEsIDQxLCA1NSwgMC45OCk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE3LCAyNCwgMzksIDAuOTgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjMyKTtcbn1cblxuLmFjdGlvbk1lc3NhZ2VCdXR0b246aG92ZXI6ZGlzYWJsZWQge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNTUsIDY1LCA4MSwgMC45Mik7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDMxLCA0MSwgNTUsIDAuOTUpO1xufVxuXG4vKiBSZW1vdmUgZGVmYXVsdCBtYXJrZG93biBzdHlsZXMgZnJvbSBidXR0b24gY29udGVudCAqL1xuLm1lc3NhZ2VCdXR0b24gcCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG59XG5cbi5tZXNzYWdlQnV0dG9uIHN0cm9uZyB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLm1lc3NhZ2VCdXR0b24gZW0ge1xuICAgIGZvbnQtc3R5bGU6IGl0YWxpYztcbn1cblxuLyogUmF0aW5nIHN5c3RlbSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGJvdHRvbTogLThweDtcbiAgICByaWdodDogOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiAycHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBtaW4td2lkdGg6IDI0cHg7XG4gICAgei1pbmRleDogMTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiA0cHggNnB4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg0cHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2U6aG92ZXIgLnJhdGluZyB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMCwgMCwgMC45KTtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nIHNwYW4ge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTZweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZzpob3ZlciBzcGFuIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi8qIENoYXQgaW5wdXQgYXJlYSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBncmlkLWFyZWE6IPCfk507XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgcGFkZGluZzogMjRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogMjRweDtcbiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyNHB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICAgIG1heC13aWR0aDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG5cbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLkNoYXQuZnVsbFBhZ2VWaXN1YWwgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjVweCk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgyNTUsIDI1NSwgMjU1LCAwKSAwJSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpIDEwMCUpO1xufVxuXG4vKiBGaWxlIHVwbG9hZCBkcmFnLWFuZC1kcm9wIHN0eWxlcyAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0LmRyYWdPdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQodG8gdG9wLCByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpIDAlLCByZ2JhKDAsIDEzMiwgMjU1LCAwLjA1KSAxMDAlKTtcbn1cblxuLyogRmlsZSBwcmV2aWV3IGNvbnRhaW5lciAqL1xuLmZpbGVQcmV2aWV3Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG59XG5cbi8qIEluZGl2aWR1YWwgZmlsZSBwcmV2aWV3ICovXG4uZmlsZVByZXZpZXcge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5maWxlUHJldmlldzpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjE1KTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zKTtcbn1cblxuLmZpbGVJY29uIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4uZmlsZUluZm8ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbiAgICBtaW4td2lkdGg6IDA7XG59XG5cbi5maWxlTmFtZSB7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjb2xvcjogYmxhY2s7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgIG1heC13aWR0aDogMTUwcHg7XG59XG5cbi5maWxlU2l6ZSB7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgZm9udC1zaXplOiAxMXB4O1xufVxuXG4ucmVtb3ZlRmlsZUJ1dHRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDAsIDAsIDAuMSk7XG4gICAgY29sb3I6ICNmZjQ0NDQ7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4ucmVtb3ZlRmlsZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDAsIDAsIDAuMik7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuXG4vKiBJbnB1dCBjb250YWluZXIgZm9yIHRleHRhcmVhIGFuZCBidXR0b25zICovXG4uaW5wdXRDb250YWluZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDI4cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMjBweCByZ2JhKDAsIDAsIDAsIDAuMDYpO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbn1cblxuLmlucHV0Q29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgYm9yZGVyLWNvbG9yOiB2YXIoLS1icmFuZC1jb2xvcik7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMzJweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjEyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG59XG5cbi5pbnB1dENvbnRhaW5lciB0ZXh0YXJlYTo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjOTRhM2I4O1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi8qIEF0dGFjaG1lbnQgYnV0dG9uICovXG4uYXR0YWNobWVudEJ1dHRvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4uYXR0YWNobWVudEJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogI2YxZjVmOTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLmF0dGFjaG1lbnRCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4vKiBWb2ljZSBCdXR0b24gKi9cbi52b2ljZUJ1dHRvbiB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4udm9pY2VCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi52b2ljZUJ1dHRvbkFjdGl2ZSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4xKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZWY0NDQ0ICFpbXBvcnRhbnQ7XG4gICAgYW5pbWF0aW9uOiB2b2ljZVJlY29yZGluZ1B1bHNlIDEuNXMgaW5maW5pdGU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICByaWdodDogMjRweDtcbiAgICBib3R0b206IDg2cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBtYXgtd2lkdGg6IG1pbigzMjBweCwgY2FsYygxMDAlIC0gNDhweCkpO1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4xNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjk1KTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3gtc2hhZG93OiAwIDEycHggMjhweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAxZW07XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJvcmRlci13aWR0aDogMXB4O1xuICAgIGJvcmRlci1zdHlsZTogc29saWQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIHotaW5kZXg6IDI1O1xuICAgIGFuaW1hdGlvbjogc3BlZWNoU3RhdHVzQnViYmxlSW4gMC4ycyBlYXNlLW91dDtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogIzY0NzQ4YjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbmltYXRpb246IHNwZWVjaFN0YXR1c0J1YmJsZURvdFB1bHNlIDEuMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVSZWNvcmRpbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTQsIDI0MiwgMjQyLCAwLjk3KTtcbiAgICBjb2xvcjogIzk5MWIxYjtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVJlY29yZGluZyAuc3BlZWNoU3RhdHVzQnViYmxlRG90IHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlUHJvY2Vzc2luZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0LCAxMTYsIDE0NCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzYsIDI1NCwgMjU1LCAwLjk3KTtcbiAgICBjb2xvcjogIzE1NWU3NTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVByb2Nlc3NpbmcgLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgYmFja2dyb3VuZDogIzBlYTVlOTtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZUVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjIwLCAzOCwgMzgsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45OCk7XG4gICAgY29sb3I6ICM5OTFiMWI7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVFcnJvciAuc3BlZWNoU3RhdHVzQnViYmxlRG90IHtcbiAgICBiYWNrZ3JvdW5kOiAjZGMyNjI2O1xuICAgIGFuaW1hdGlvbjogbm9uZTtcbn1cblxuLmRpY3RhdGlvblBhbmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTBweCAxMnB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45KTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3gtc2hhZG93OiBpbnNldCAwIDAgMCAxcHggcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi5kaWN0YXRpb25QYW5lbEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvblBhbmVsVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLmRpY3RhdGlvblBhbmVsVG9nZ2xlIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBwYWRkaW5nOiA0cHggOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkludGVyaW1UcmFuc2NyaXB0IHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuNDUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDI0NiwgMjU1LCAwLjkpO1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICMwYzRhNmU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkVycm9yUGFuZWwge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjIwLCAzOCwgMzgsIDAuMjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45NSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG4gICAgY29sb3I6ICM5OTFiMWI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5kaWN0YXRpb25FcnJvckFjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4uZGljdGF0aW9uRXJyb3JBY3Rpb25zIGJ1dHRvbixcbi5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyBidXR0b24ge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25QYW5lbCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4uZGljdGF0aW9uQ29ycmVjdGlvbkxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA1ZW07XG59XG5cbi5kaWN0YXRpb25Db3JyZWN0aW9uVGV4dGFyZWEge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDY4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHJlc2l6ZTogdmVydGljYWw7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25BY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvblNldHRpbmdzUGFuZWwge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoMiwgbWlubWF4KDAsIDFmcikpO1xuICAgIGdhcDogOHB4IDEycHg7XG59XG5cbi5kaWN0YXRpb25TZXR0aW5nc1BhbmVsIGxhYmVsIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogIzMzNDE1NTtcbn1cblxuLmRpY3RhdGlvbkZhbGxiYWNrTm90ZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuQGtleWZyYW1lcyBzcGVlY2hTdGF0dXNCdWJibGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSg2cHgpIHNjYWxlKDAuOTgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbkBrZXlmcmFtZXMgc3BlZWNoU3RhdHVzQnViYmxlRG90UHVsc2Uge1xuICAgIDAlLFxuICAgIDEwMCUge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICBvcGFjaXR5OiAwLjY7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMC44Mik7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlUmVjb3JkaW5nUHVsc2Uge1xuICAgIDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMCwgMCwgMC40KTtcbiAgICB9XG4gICAgNzAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMTBweCByZ2JhKDI1NSwgMCwgMCwgMCk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICBib3gtc2hhZG93OiAwIDAgMCAwIHJnYmEoMjU1LCAwLCAwLCAwKTtcbiAgICB9XG59XG5cbi8qIFVwbG9hZCBwcm9ncmVzcyBpbmRpY2F0b3IgKi9cbi51cGxvYWRQcm9ncmVzcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzAwODRmZjtcbn1cblxuLnVwbG9hZFByb2dyZXNzQmFyIHtcbiAgICBmbGV4OiAxO1xuICAgIGhlaWdodDogNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi51cGxvYWRQcm9ncmVzc0ZpbGwge1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICMwMDg0ZmYsIHJnYmEoMCwgMTMyLCAyNTUsIDAuOCkpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBhbmltYXRpb246IHVwbG9hZFByb2dyZXNzIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdXBsb2FkUHJvZ3Jlc3Mge1xuICAgIDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC0xMDAlKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDAlKTtcbiAgICB9XG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICB9XG59XG5cbi8qIERyYWcgb3ZlcmxheSAqL1xuLmRyYWdPdmVybGF5IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMSk7XG4gICAgYm9yZGVyOiAycHggZGFzaGVkIHJnYmEoMCwgMTMyLCAyNTUsIDAuNSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIHotaW5kZXg6IDIwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZHJhZ092ZXJsYXlDb250ZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgY29sb3I6ICMwMDg0ZmY7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5kcmFnT3ZlcmxheUNvbnRlbnQgc3ZnIHtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIENoYXQgaW5wdXQgZmllbGQgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSB7XG4gICAgZmxleDogMTtcbiAgICBwYWRkaW5nOiB2YXIoLS1jaGF0LWlucHV0LXBhZGRpbmcteSkgdmFyKC0tY2hhdC1pbnB1dC1wYWRkaW5nLXgpO1xuICAgIG1hcmdpbjogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LXRleHRhcmVhLWhlaWdodCk7XG4gICAgbWluLWhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC10ZXh0YXJlYS1oZWlnaHQpO1xuICAgIG1heC1oZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtdGV4dGFyZWEtaGVpZ2h0KTtcbiAgICBmb250LXNpemU6IHZhcigtLWNoYXQtaW5wdXQtZm9udC1zaXplKTtcbiAgICBsaW5lLWhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1saW5lLWhlaWdodCk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIHJlc2l6ZTogbm9uZTtcbiAgICBhcHBlYXJhbmNlOiBub25lO1xuICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWE6Zm9jdXMge1xuICAgIC8qIEZvY3VzIGlzIGhhbmRsZWQgYnkgLmlucHV0Q29udGFpbmVyICovXG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYTpkaXNhYmxlZCB7XG4gICAgb3BhY2l0eTogMC42O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gICAgdHJhbnNmb3JtOiBub25lO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi8qIENoYXQgc2VuZCBidXR0b24gKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b25bZGF0YS1idXR0b24tdHlwZT0nY2FsbC10by1hY3Rpb24nXSB7XG4gICAgd2lkdGg6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZSk7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuXG4gICAgYm9yZGVyOiBub25lO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIG1pbi13aWR0aDogdW5zZXQgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiB1bnNldCAhaW1wb3J0YW50O1xuXG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAxMzIsIDI1NSwgMC4yNSk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICBvdmVyZmxvdzogdmlzaWJsZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbltkYXRhLWJ1dHRvbi10eXBlPSdjYWxsLXRvLWFjdGlvbiddOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDUpO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zNSk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b25bZGF0YS1idXR0b24tdHlwZT0nY2FsbC10by1hY3Rpb24nXTphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45NSk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b25bZGF0YS1idXR0b24tdHlwZT0nY2FsbC10by1hY3Rpb24nXSBzdmcge1xuICAgIHdpZHRoOiAyMHB4O1xuICAgIGhlaWdodDogMjBweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbiBpbWcge1xuICAgIHdpZHRoOiA1MCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvbnRhaW47XG59XG5cbi8qIFNjcm9sbCB0byBib3R0b20gYnV0dG9uICovXG5cbi5zY3JvbGxUb0JvdHRvbUNvbnRhaW5lciB7XG4gICAgLyovXG4gICAgb3V0bGluZTogMXB4IGRvdHRlZCByZWQ7XG4gICAgLyoqL1xuXG4gICAgei1pbmRleDogMjA7XG4gICAgZ3JpZC1hcmVhOiDwn5OdO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuXG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5zY3JvbGxUb0JvdHRvbUNvbnRhaW5lciAuc2Nyb2xsVG9Cb3R0b21XcmFwcGVyIHtcbiAgICBwb2ludGVyLWV2ZW50czogYWxsO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAtMTUwJSk7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBhbmltYXRpb246IHNjcm9sbEJ1dHRvblNsaWRlSW4gMC4zcyBlYXNlLW91dDtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi5zY3JvbGxUb0JvdHRvbUNvbnRhaW5lciAuc2Nyb2xsVG9Cb3R0b20ge1xuICAgIHdpZHRoOiA0OHB4O1xuICAgIGhlaWdodDogNDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwIDAgMCAvIDAuNSk7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDAsIDAsIDAuMyk7XG59XG5cbkBrZXlmcmFtZXMgc2Nyb2xsQnV0dG9uU2xpZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIDIwcHgpIHNjYWxlKDAuOCk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMC45O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi5zY3JvbGxUb0JvdHRvbUJhZGdlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAtOHB4O1xuICAgIHJpZ2h0OiAtOHB4O1xuICAgIG1pbi13aWR0aDogMzJweDtcbiAgICBwYWRkaW5nOiAycHggNnB4O1xuICAgIGZvbnQtc2l6ZTogMTBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJhY2tncm91bmQ6ICMyNTYzZWI7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggMTBweCByZ2JhKDM3LCA5OSwgMjM1LCAwLjQpO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDRlbTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi8qIFJhdGluZyBtb2RhbCAqL1xuLnJhdGluZ01vZGFsIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgcmlnaHQ6IDA7XG4gICAgYm90dG9tOiAwO1xuXG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjYpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHotaW5kZXg6IDEwMDA7XG4gICAgYW5pbWF0aW9uOiBtb2RhbEZhZGVJbiAwLjNzIGVhc2Utb3V0O1xufVxuXG5Aa2V5ZnJhbWVzIG1vZGFsRmFkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDBweCk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDhweCk7XG4gICAgfVxufVxuXG4ucmF0aW5nTW9kYWxDb250ZW50IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzI0O1xuICAgIHBhZGRpbmc6IDMycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICB3aWR0aDogOTAlO1xuICAgIG1heC13aWR0aDogNDgwcHg7XG4gICAgYm94LXNoYWRvdzogMCAyMHB4IDYwcHggcmdiYSgwLCAwLCAwLCAwLjMpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gICAgYW5pbWF0aW9uOiBtb2RhbFNsaWRlSW4gMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG5cbiAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiwgJ09wZW5Nb2ppQ29sb3InLCAnT3Blbk1vamlCbGFjayc7XG4gICAgLyogPC0gVE9ETzogW/Cfp6BdW/CfjrFdIEJldHRlciwgZGVmaW5lIG90aGVyIGZvbnRzICovXG59XG5cbkBrZXlmcmFtZXMgbW9kYWxTbGlkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDIwcHgpIHNjYWxlKDAuOTUpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi5yYXRpbmdNb2RhbENvbnRlbnQgaDMge1xuICAgIG1hcmdpbjogMCAwIDI0cHggMDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc3RhcnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjRweDtcbn1cblxuLnN0YXJzIHNwYW4ge1xuICAgIGZvbnQtc2l6ZTogMjhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBwYWRkaW5nOiA0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xufVxuXG4uc3RhcnMgc3Bhbjpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyMTUsIDAsIDAuMSk7XG59XG5cbi5yYXRpbmdNb2RhbFN0YXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbn1cblxuLnRvb2xDYWxsTW9kYWwge1xuICAgIG1heC13aWR0aDogODAwcHg7XG4gICAgcGFkZGluZzogMDtcbiAgICBtYXgtaGVpZ2h0OiBjYWxjKDEwMHZoIC0gNDhweCk7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICBvdmVyZmxvdy14OiBoaWRkZW47XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4udG9vbENhbGxIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgcGFkZGluZzogMjRweCAzMnB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VlZjJmZiAwJSwgI2Y1ZjNmZiA0MCUsICNmZWZjYzkgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi50b29sQ2FsbEljb24ge1xuICAgIGZvbnQtc2l6ZTogMzJweDtcbn1cblxuLnRvb2xDYWxsSGVhZGVyTWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4udG9vbENhbGxNb2RhbExhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMzVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnRvb2xDYWxsVGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRvb2xDYWxsU3VidGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU0Njc7XG59XG5cbi50b29sQ2FsbEdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyNTBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDI0cHggMzJweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWZlZmU7XG59XG5cbi50b29sQ2FsbFBhbmVsIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBwYWRkaW5nOiAxOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCA0MHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi50b29sQ2FsbFBhbmVsVGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEycHggMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4yNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5NGEzYjg7XG59XG5cbi50b29sQ2FsbExpc3Qge1xuICAgIGxpc3Qtc3R5bGU6IG5vbmU7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLnRvb2xDYWxsSXRlbSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4udG9vbENhbGxJdGVtTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4yNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM5NGEzYjg7XG59XG5cbi50b29sQ2FsbEl0ZW1WYWx1ZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG59XG5cbi50b29sQ2FsbFN1bW1hcnkge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE1cHg7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbn1cblxuLnRvb2xDYWxsU3VtbWFyeU1ldGEge1xuICAgIG1hcmdpbi10b3A6IDE0cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50b29sQ2FsbFN1bW1hcnlNZXRhQmFkZ2Uge1xuICAgIHBhZGRpbmc6IDVweCAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNzksIDcwLCAyMjksIDAuMTUpO1xuICAgIGNvbG9yOiAjMzEyZTgxO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4udG9vbENhbGxFbXB0eSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ0NhcmQge1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCAjY2JkNWUxO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgcGFkZGluZzogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTgwZGVnLCAjZjhmYmZmIDAlLCAjZjhmYWZjIDEwMCUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4udG9vbENhbGxQZW5kaW5nVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxQZW5kaW5nQmFkZ2Uge1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjEyKTtcbiAgICBjb2xvcjogIzAzNjlhMTtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdNZXNzYWdlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdTa2VsZXRvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4udG9vbENhbGxQZW5kaW5nU2tlbGV0b25MaW5lIHtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNyksIHJnYmEoMjQxLCAyNDUsIDI0OSwgMSksIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC43KSk7XG4gICAgYmFja2dyb3VuZC1zaXplOiAyMDAlIDEwMCU7XG4gICAgYW5pbWF0aW9uOiB0b29sQ2FsbFBlbmRpbmdTa2VsZXRvblB1bHNlIDEuNHMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdTa2VsZXRvblNob3J0IHtcbiAgICB3aWR0aDogNjglO1xufVxuXG5Aa2V5ZnJhbWVzIHRvb2xDYWxsUGVuZGluZ1NrZWxldG9uUHVsc2Uge1xuICAgIGZyb20ge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAxMDAlIDUwJTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiAtMTAwJSA1MCU7XG4gICAgfVxufVxuXG4udG9vbENhbGxEZXRhaWxzQ2FyZCB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udG9vbENhbGxEZXRhaWxzQ2FyZFJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICMzMzQxNTU7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45KTtcbn1cblxuLnRvb2xDYWxsRGV0YWlsc0NhcmRSb3c6Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3A6IG5vbmU7XG59XG5cbi50b29sQ2FsbERldGFpbHNDYXJkUm93IHN0cm9uZyB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50b29sQ2FsbElzc3VlcyB7XG4gICAgcGFkZGluZzogMCAzMnB4IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50b29sQ2FsbElzc3VlQmFkZ2Uge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgcGFkZGluZzogNnB4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbi50b29sQ2FsbElzc3VlRXJyb3Ige1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTIpO1xuICAgIGNvbG9yOiAjYjkxYzFjO1xufVxuXG4udG9vbENhbGxJc3N1ZVdhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM0LCAxNzksIDgsIDAuMTYpO1xuICAgIGNvbG9yOiAjYTE2MjA3O1xufVxuXG4udG9vbENhbGxNb2RlRm9vdGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogMCAzMnB4IDI0cHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udG9vbENhbGxNb2RlQnV0dG9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JkNWUxO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xufVxuXG4udG9vbENhbGxNb2RlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGJvcmRlci1jb2xvcjogIzk0YTNiODtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5tZW1vcnlNb2RhbEhlYWRlciB7XG4gICAgcGFkZGluZzogMjhweCAzMnB4IDE2cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICBnYXA6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2ZkZmRmZCAwJSwgI2Y2ZjlmZiAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZThmMDtcbn1cblxuLm1lbW9yeU1vZGFsSWNvbiB7XG4gICAgd2lkdGg6IDUycHg7XG4gICAgaGVpZ2h0OiA1MnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzYzNjZmMSwgI2E4NTVmNyk7XG4gICAgY29sb3I6ICNmZmY7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDI4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjE4KTtcbn1cblxuLm1lbW9yeU1vZGFsSGVhZGVyVGV4dCB7XG4gICAgZmxleDogMTtcbn1cblxuLm1lbW9yeU1vZGFsVGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDIycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLm1lbW9yeU1vZGFsU3VidGl0bGUge1xuICAgIG1hcmdpbjogNHB4IDAgMDtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi5tZW1vcnlNb2RhbFN0YXR1cyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgcGFkZGluZzogNnB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4ubWVtb3J5U3RhdHVzRG90IHtcbiAgICB3aWR0aDogOHB4O1xuICAgIGhlaWdodDogOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiBjdXJyZW50Q29sb3I7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xufVxuXG4ubWVtb3J5TW9kYWxDb250ZW50IHtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHggMzJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG59XG5cbi5tZW1vcnlNZXNzYWdlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5tZW1vcnlNZXRhUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzQ3NTQ2Nztcbn1cblxuLm1lbW9yeU1ldGFMYWJlbCB7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tZW1vcnlNZXRhVmFsdWUge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5tZW1vcnlTdG9yZVNlY3Rpb24sXG4ubWVtb3J5UmV0cmlldmVTZWN0aW9uIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4ubWVtb3J5Q2FyZCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMThweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4ubWVtb3J5Q2FyZENvbnRlbnQge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xufVxuXG4ubWVtb3J5Q2FyZE1ldGEge1xuICAgIG1hcmdpbi10b3A6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgICBmb250LXNpemU6IDEycHg7XG59XG5cbi5tZW1vcnlTY29wZUJhZGdlIHtcbiAgICBwYWRkaW5nOiAzcHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNCwgNTgsIDIzNywgMC4xMik7XG59XG5cbi5tZW1vcnlMaXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4ubWVtb3J5RW1wdHlTdGF0ZSB7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmM2M3O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZGU2OGE7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBjb2xvcjogIzkyNDAwZTtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWVtb3J5TGlzdEZvb3RlciB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLm1lbW9yeVN0YXR1c1N1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjE2KTtcbiAgICBjb2xvcjogIzA0Nzg1Nztcbn1cblxuLm1lbW9yeVN0YXR1c1dhcm5pbmcge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM0LCAxNzksIDgsIDAuMTYpO1xuICAgIGNvbG9yOiAjYTE2MjA3O1xufVxuXG4ubWVtb3J5U3RhdHVzRXJyb3Ige1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMTUpO1xuICAgIGNvbG9yOiAjYjkxYzFjO1xufVxuXG4ubWVtb3J5U3RhdHVzTmV1dHJhbCB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg5NiwgMTY1LCAyNTAsIDAuMTUpO1xuICAgIGNvbG9yOiAjMWQ0ZWQ4O1xufVxuXG4uc2VhcmNoTW9kYWxIZWFkZXIge1xuICAgIHBhZGRpbmc6IDI0cHggMzJweDtcbiAgICBwYWRkaW5nLXJpZ2h0OiA3MnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZWVlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZkZmRmZDtcbn1cblxuLnNlbGZMZWFybmluZ01vZGFsSGVhZGVyIHtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMThweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjhmYWZjIDAlLCAjZmVmOWMzIDQ1JSwgI2VjZmNjYiAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2UyZThmMDtcbn1cblxuLnNlbGZMZWFybmluZ0F2YXRhckdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uc2VsZkxlYXJuaW5nQXZhdGFyIHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICNlMmU4ZjA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMmVtO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyMHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xOCk7XG59XG5cbi5zZWxmTGVhcm5pbmdBdmF0YXJJbml0aWFsIHtcbiAgICBsaW5lLWhlaWdodDogMTtcbn1cblxuLnNlbGZMZWFybmluZ1RlYWNoZXIge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZGU2OGEgMCUsICM4NmVmYWMgMTAwJSk7XG59XG5cbi5zZWxmTGVhcm5pbmdIZWFkZXJUZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA2cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnNlbGZMZWFybmluZ1RpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyMHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5zZWxmTGVhcm5pbmdNZXRhUm93IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLnNlbGZMZWFybmluZ01ldGEge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLnNlbGZMZWFybmluZ01ldGFDaGlwIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTJlOGYwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc2VsZkxlYXJuaW5nQ29tbWl0bWVudHMge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG59XG5cbi5zZWxmTGVhcm5pbmdDb21taXRtZW50c0xhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5zZWxmTGVhcm5pbmdCb29rRWRpdG9yIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbn1cblxuLnNlbGZMZWFybmluZ0VtcHR5IHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLm1vZGFsQ2xvc2VCdXR0b24ge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDE2cHg7XG4gICAgcmlnaHQ6IDE2cHg7XG4gICAgei1pbmRleDogMTtcbiAgICB3aWR0aDogMzZweDtcbiAgICBoZWlnaHQ6IDM2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIGNvbG9yOiAjNDc1NTY5O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJveC1zaGFkb3c6IDAgNnB4IDE2cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlLCBib3gtc2hhZG93IDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuLm1vZGFsQ2xvc2VCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDI0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjEyKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi5tb2RhbENsb3NlQnV0dG9uOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjOTRhM2I4O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi50ZWFtTW9kYWxIZWFkZXIge1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50ZWFtSGVhZGVyUGFydGljaXBhbnRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnRlYW1IZWFkZXJQcm9maWxlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgY29sb3I6IGluaGVyaXQ7XG59XG5cbi50ZWFtSGVhZGVyUHJvZmlsZUxpbms6aG92ZXIge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udGVhbUhlYWRlckF2YXRhciB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYmFja2dyb3VuZC1zaXplOiBjb3ZlcjtcbiAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG4gICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi50ZWFtSGVhZGVyTmFtZSB7XG4gICAgZm9udC1zaXplOiAxOHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50ZWFtSGVhZGVyRGl2aWRlciB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICM5NGEzYjg7XG59XG5cbi5zZWFyY2hNb2RhbEljb24ge1xuICAgIGZvbnQtc2l6ZTogMjRweDtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGNvbG9yOiAjNDc1NTY5O1xufVxuXG4uc2VhcmNoTW9kYWxRdWVyeSB7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMCAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjMjAyMTI0ICFpbXBvcnRhbnQ7XG4gICAgdGV4dC1hbGlnbjogbGVmdCAhaW1wb3J0YW50O1xufVxuXG4uc2VhcmNoTW9kYWxDb250ZW50IHtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBtYXgtaGVpZ2h0OiA2MHZoO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi50ZWFtQ2hhdENvbnRhaW5lciB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2U1ZTdlYjtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4udGVhbVRvb2xDYWxsU2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbn1cblxuLnRlYW1Ub29sQ2FsbEdyb3VwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50ZWFtVG9vbENhbGxIZWFkaW5nIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgY29sb3I6ICM2NDc0OGI7XG59XG5cbi50ZWFtVG9vbENhbGxDaGlwcyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi50ZWFtVG9vbENhbGxEZXRhaWxzIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNCk7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi50ZWFtVG9vbENhbGxEZXRhaWxzSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlsc1RpdGxlIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG59XG5cbi50ZWFtVG9vbENhbGxEZXRhaWxzQ2xlYXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuNCk7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlsc0NsZWFyOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xufVxuXG4uc2VhcmNoUmVzdWx0c0xpc3Qge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDI4cHg7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLnNlYXJjaFJlc3VsdHNSYXcge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWF4LXdpZHRoOiA2NTBweDtcbn1cblxuLnNlYXJjaFJlc3VsdEl0ZW0ge1xuICAgIG1heC13aWR0aDogNjUwcHg7XG59XG5cbi5zZWFyY2hSZXN1bHRVcmwge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzIwMjEyNDtcbiAgICBtYXJnaW4tYm90dG9tOiA0cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4uc2VhcmNoUmVzdWx0VXJsIGEge1xuICAgIGNvbG9yOiAjMjAyMTI0O1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNlYXJjaFJlc3VsdFRpdGxlIHtcbiAgICBmb250LXNpemU6IDIwcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNDAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwIDAgNHB4IDAgIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4zO1xufVxuXG4uc2VhcmNoUmVzdWx0VGl0bGUgYSB7XG4gICAgY29sb3I6ICMxYTBkYWI7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xufVxuXG4uc2VhcmNoUmVzdWx0VGl0bGUgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5zZWFyY2hSZXN1bHRTbmlwcGV0IHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTg7XG4gICAgY29sb3I6ICM0ZDUxNTY7XG4gICAgbWFyZ2luOiAwO1xufVxuXG4ubm9SZXN1bHRzIHtcbiAgICBwYWRkaW5nOiA0MHB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBjb2xvcjogIzcwNzU3YTtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi50b29sQ2FsbERldGFpbHMge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgbWFyZ2luOiAyMHB4IDA7XG59XG4uY2l0YXRpb25EZXRhaWxzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbjogMjBweCAwO1xufVxuXG4uY2l0YXRpb25QcmV2aWV3IHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbn1cblxuLmNpdGF0aW9uSWZyYW1lIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDYwdmg7XG4gICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZjhmODtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZWVlO1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG59XG5cbi5jaXRhdGlvbk1ldGFkYXRhIHAge1xuICAgIG1hcmdpbjogOHB4IDA7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgc3Ryb25nIHtcbiAgICBjb2xvcjogIzMzMztcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgYSB7XG4gICAgY29sb3I6ICMwMDdiZmY7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLWFsbDtcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEgYTpob3ZlciB7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7XG59XG5cbi5jaXRhdGlvbkV4Y2VycHQge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4uY2l0YXRpb25FeGNlcnB0IGg0IHtcbiAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG4gICAgY29sb3I6ICMzMzM7XG4gICAgZm9udC1zaXplOiAxZW07XG59XG5cbi5jaXRhdGlvbkhpbnQge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIG1hcmdpbi10b3A6IDhweDtcbiAgICBvcGFjaXR5OiAwLjc7XG59XG5cbi50b29sQ2FsbERhdGFDb250YWluZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA2cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBtYXJnaW4tYm90dG9tOiAxNXB4O1xuICAgIG1heC1oZWlnaHQ6IDMwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbi50b29sQ2FsbFBheWxvYWRDb250YWluZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvciksXG4udG9vbENhbGxQYXlsb2FkRWRpdG9yIDpnbG9iYWwoLm1vbmFjby1lZGl0b3IgLm92ZXJmbG93LWd1YXJkKSxcbi50b29sQ2FsbFBheWxvYWRFZGl0b3IgOmdsb2JhbCgubW9uYWNvLWVkaXRvciAubW9uYWNvLXNjcm9sbGFibGUtZWxlbWVudCksXG4udG9vbENhbGxQYXlsb2FkRWRpdG9yIDpnbG9iYWwoLm1vbmFjby1lZGl0b3ItYmFja2dyb3VuZCkge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmMgIWltcG9ydGFudDtcbn1cblxuLnRvb2xDYWxsRGF0YSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4udG9vbENhbGxNb2RhbCAudG9vbENhbGxEYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ucmF0aW5nSW5wdXQge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDEwMHB4O1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4wNSk7XG4gICAgY29sb3I6ICMwYjEyMjA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLnJhdGluZ0lucHV0OmZvY3VzIHtcbiAgICBib3JkZXItY29sb3I6ICMwMDg0ZmY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjA4KTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4xKTtcbiAgICBvdXRsaW5lOiBub25lO1xufVxuXG4ucmF0aW5nSW5wdXRbcmVhZG9ubHldIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjAxKTtcbn1cblxuLnJhdGluZ0FjdGlvbnMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZDtcbiAgICBnYXA6IDEycHg7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbiB7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgbWluLXdpZHRoOiA4MHB4O1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246Zmlyc3QtY2hpbGQge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBjb2xvcjogIzBiMTIyMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMik7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpmaXJzdC1jaGlsZDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjIpO1xuICAgIGNvbG9yOiAjMGIxMjIwO1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246bGFzdC1jaGlsZCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwODRmZiAwJSwgIzAwNjZjYyAxMDAlKTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmxhc3QtY2hpbGQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDcxZDEgMCUsICMwMDUyYTMgMTAwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDEycHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKTtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmxhc3QtY2hpbGQ6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNTtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xufVxuXG4uZG93bmxvYWRCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogMTJweCAyNHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDg0ZmYgMCUsICMwMDY2Y2MgMTAwJSk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4yKTtcbn1cblxuLmRvd25sb2FkQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA5OWZmIDAlLCAjMDA3N2RkIDEwMCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMyk7XG59XG5cbi5kb3dubG9hZEJ1dHRvbjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgwKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4yKTtcbn1cblxuLmRvd25sb2FkQnV0dG9uIHN2ZyB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi5kb3dubG9hZEJ1dHRvbiBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKiBOZXcgY2hhdCBidXR0b24gc3R5bGluZyAtIE1hdGNoZXMgdGhlIHNsZWVrIGNoYXQgbWVzc2FnZSBkZXNpZ24gKi9cbi5jaGF0QnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleCAhaW1wb3J0YW50O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGdhcDogOHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMTJweCAxNnB4ICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwODRmZiAwJSwgIzAwNjZjYyAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmZmZmZmICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyOiBub25lICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMTNweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDAgIWltcG9ydGFudDtcbiAgICBsaW5lLWhlaWdodDogMS4zICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyICFpbXBvcnRhbnQ7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpICFpbXBvcnRhbnQ7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpICFpbXBvcnRhbnQ7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpICFpbXBvcnRhbnQ7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgIHRvdWNoLWFjdGlvbjogbWFuaXB1bGF0aW9uICFpbXBvcnRhbnQ7XG4gICAgdXNlci1zZWxlY3Q6IG5vbmUgIWltcG9ydGFudDtcbiAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgbWluLXdpZHRoOiAxMTBweCAhaW1wb3J0YW50O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZSAhaW1wb3J0YW50O1xuICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDtcbn1cblxuLmNoYXRCdXR0b246OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCB0cmFuc3BhcmVudCk7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjVzIGVhc2U7XG59XG5cbi5jaGF0QnV0dG9uOmhvdmVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwMCU7XG59XG5cbi5jaGF0QnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA5OWZmIDAlLCAjMDA3N2RkIDEwMCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjAyKTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuNCk7XG59XG5cbi5jaGF0QnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzIGVhc2U7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpO1xufVxuXG4uY2hhdEJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMyksIDAgMCAwIDNweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpO1xufVxuXG4uY2hhdEJ1dHRvbiBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMXB4IDJweCByZ2JhKDAsIDAsIDAsIDAuMikpO1xufVxuXG4uY2hhdEJ1dHRvbjpob3ZlciBzdmcge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKC05MGRlZykgc2NhbGUoMS4xKTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMykpO1xufVxuXG4uY2hhdEJ1dHRvblRleHQge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIG9wYWNpdHk6IDE7XG59XG5cbi5jaGF0QnV0dG9uOmhvdmVyIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKDFweCk7XG59XG5cbi8qIFVzZSB0ZW1wbGF0ZSBidXR0b24gc3R5bGluZyAtIG1hdGNoZXMgdGhlIGNoYXRCdXR0b24gYW5kIHNhdmVCdXR0b24gKi9cbi51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBnYXA6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDEycHggMTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDg0ZmYgMCUsICMwMDY2Y2MgMTAwJSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKSAhaW1wb3J0YW50O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbiAhaW1wb3J0YW50O1xuICAgIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMTEwcHggIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi51c2VUZW1wbGF0ZUJ1dHRvbjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IC0xMDAlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMiksIHRyYW5zcGFyZW50KTtcbiAgICB0cmFuc2l0aW9uOiBsZWZ0IDAuNXMgZWFzZTtcbn1cblxuLnVzZVRlbXBsYXRlQnV0dG9uOmhvdmVyOjpiZWZvcmUge1xuICAgIGxlZnQ6IDEwMCU7XG59XG5cbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwOTlmZiAwJSwgIzAwNzdkZCAxMDAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wMik7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjQpO1xufVxuXG4udXNlVGVtcGxhdGVCdXR0b246YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTgpIHRyYW5zbGF0ZVkoLTFweCk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMXMgZWFzZTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMyk7XG59XG5cbi51c2VUZW1wbGF0ZUJ1dHRvbjpmb2N1cyB7XG4gICAgb3V0bGluZTogbm9uZTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMyksIDAgMCAwIDNweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpO1xufVxuXG4udXNlVGVtcGxhdGVCdXR0b24gc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpKTtcbn1cblxuLnVzZVRlbXBsYXRlQnV0dG9uOmhvdmVyIHN2ZyB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4zKSk7XG59XG5cbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3ZlciAuY2hhdEJ1dHRvblRleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xufVxuXG4uc2F2ZUJ1dHRvbkNvbnRhaW5lciB7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnNhdmVNZW51IHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxMDAlO1xuICAgIGxlZnQ6IDA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIG1pbi13aWR0aDogMTIwcHg7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMCwgMCwgMC4wOCk7XG59XG5cbi5zYXZlTWVudUl0ZW0ge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiBub25lO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjMTExO1xufVxuXG4uc2F2ZU1lbnVJdGVtOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBmMGYwO1xufVxuXG4uc2F2ZU1lbnVEaXZpZGVyIHtcbiAgICBoZWlnaHQ6IDFweDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZGRkO1xuICAgIG1hcmdpbjogNHB4IDA7XG59XG5cbi5jaGF0RmVlZGJhY2tQYW5lbCB7XG4gICAgd2lkdGg6IG1pbigyNjBweCwgMTAwJSk7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3gtc2hhZG93OiAwIDhweCAxOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCB0cmFuc2Zvcm0gMC4ycyBlYXNlO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGU6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmNWY1ZjU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0wLjVweCk7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGU6Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkICMyNTYzZWI7XG4gICAgb3V0bGluZS1vZmZzZXQ6IDJweDtcbn1cblxuLmNoYXRGZWVkYmFja0ljb24ge1xuICAgIHdpZHRoOiAzNHB4O1xuICAgIGhlaWdodDogMzRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNlZWYyZmY7XG4gICAgY29sb3I6ICM2MzY2ZjE7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBwbGFjZS1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2U7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGVbZGF0YS1lbmFibGVkPSd0cnVlJ10gLmNoYXRGZWVkYmFja0ljb24ge1xuICAgIGJhY2tncm91bmQ6ICNlMGYyZmU7XG4gICAgY29sb3I6ICMwMjg0Yzc7XG59XG5cbi5jaGF0RmVlZGJhY2tUb2dnbGVbZGF0YS1lbmFibGVkPSdmYWxzZSddIC5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjNmNGY2O1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4uY2hhdEZlZWRiYWNrTWV0YSB7XG4gICAgZmxleDogMTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5jaGF0RmVlZGJhY2tMYWJlbCB7XG4gICAgZm9udC1zaXplOiAwLjg1cmVtO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5jaGF0RmVlZGJhY2tEZXNjcmlwdGlvbiB7XG4gICAgZm9udC1zaXplOiAwLjc1cmVtO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4uY2hhdEZlZWRiYWNrSW5kaWNhdG9yIHtcbiAgICBmb250LXNpemU6IDAuNzJyZW07XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgcGFkZGluZzogMnB4IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvckFjdGl2ZSB7XG4gICAgY29sb3I6ICMxNjY1MzQ7XG4gICAgYmFja2dyb3VuZDogI2RjZmNlNztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjMzRkMzk5O1xufVxuXG4uY2hhdEZlZWRiYWNrSW5kaWNhdG9ySW5hY3RpdmUge1xuICAgIGNvbG9yOiAjNzEzZjEyO1xuICAgIGJhY2tncm91bmQ6ICNmZWY5YzM7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZhY2MxNTtcbn1cblxuLyogUGF1c2UvUmVzdW1lIGJ1dHRvbiB2YXJpYW50IChyZXVzZXMgLmNoYXRCdXR0b24gYmFzZSBzdHlsZXMgZm9yIERSWSkgKi9cbi5wYXVzZUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmYjM0NyAwJSwgI2ZmOGM0MiAxMDAlKSAhaW1wb3J0YW50OyAvKiBXYXJtIG9yYW5nZSBmb3IgXCJhY3RpdmUvcnVubmluZ1wiICovXG59XG5cbi5wYXVzZUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2ZmYzA2NyAwJSwgI2ZmOWU1ZiAxMDAlKSAhaW1wb3J0YW50O1xufVxuXG4ucGF1c2VCdXR0b24ucGF1c2luZyB7XG4gICAgb3BhY2l0eTogMC42ICFpbXBvcnRhbnQ7XG4gICAgY3Vyc29yOiB3YWl0ICFpbXBvcnRhbnQ7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEgMCUsICMwNTk2NjkgMTAwJSkgIWltcG9ydGFudDsgLyogR3JlZW4gd2hlbiBwYXVzZWQgKHJlYWR5IHRvIHJlc3VtZSkgKi9cbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNlZDpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzM0ZDM5OSAwJSwgIzA1OTY2OSAxMDAlKSAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMnB4KSBzY2FsZSgxLjAyKTtcbiAgICBib3gtc2hhZG93OiAwIDhweCAyNHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjM1KTtcbn1cblxuLnBhdXNlQnV0dG9uIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNlZCBzdmcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNpbmcgc3ZnIHtcbiAgICBvcGFjaXR5OiAwLjg7XG59XG5cbi5zdG9wQnV0dG9uIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZGMyNjI2IDAlLCAjOTkxYjFjIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZWZlZmUgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmODcxNzEgMCUsICNkYzI2MjYgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b246ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQgIWltcG9ydGFudDtcbn1cblxuLnN0b3BCdXR0b24gc3ZnIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4zcyBlYXNlO1xufVxuXG4uc3RvcEJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgcmdiYSgyNDgsIDExMywgMTEzLCAwLjgpO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi8qIFZvaWNlIGNhbGwgaW5kaWNhdG9yIGJhciAqL1xuLnZvaWNlQ2FsbEluZGljYXRvckJhciB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDEycHggMjBweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDM0LCAxOTcsIDk0LCAwLjEpIDAlLCByZ2JhKDE2LCAxODUsIDEyOSwgMC4xKSAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgzNCwgMTk3LCA5NCwgMC4zKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xufVxuXG4vKiBWb2ljZSBjYWxsIGluZGljYXRvciAqL1xuLnZvaWNlQ2FsbEluZGljYXRvciB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpIDAlLCByZ2JhKDE2LCAxODUsIDEyOSwgMC4yKSAxMDAlKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDM0LCAxOTcsIDk0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgY29sb3I6ICMxMGI5ODE7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEwcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDM0LCAxOTcsIDk0LCAwLjIpO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnZvaWNlQ2FsbEluZGljYXRvciBzdmcge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBhbmltYXRpb246IHZvaWNlQ2FsbEljb25QdWxzZSAycyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnZvaWNlQ2FsbEluZGljYXRvciBzcGFuIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRleHQtc2hhZG93OiAwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjEpO1xufVxuXG4vKiBWb2ljZSBjYWxsIHB1bHNlIGFuaW1hdGlvbiAqL1xuLnZvaWNlQ2FsbFB1bHNlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDhweDtcbiAgICB0b3A6IDUwJTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSk7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBiYWNrZ3JvdW5kOiAjMTBiOTgxO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBhbmltYXRpb246IHZvaWNlQ2FsbFB1bHNlIDEuNXMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdm9pY2VDYWxsSWNvblB1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xuICAgICAgICBvcGFjaXR5OiAwLjg7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlQ2FsbFB1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEpO1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgIH1cbiAgICA1MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTUwJSkgc2NhbGUoMS4zKTtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgIH1cbn1cblxuLyogVm9pY2UgY2FsbCBpbmRpY2F0b3IgaW4gbWVzc2FnZXMgKi9cbi5jaGF0TWVzc2FnZSAudm9pY2VDYWxsSW5kaWNhdG9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG59XG5cbi5jaGF0TWVzc2FnZSAudm9pY2VDYWxsSW5kaWNhdG9yIHN2ZyB7XG4gICAgd2lkdGg6IDE0cHg7XG4gICAgaGVpZ2h0OiAxNHB4O1xufVxuXG4vKiBGZWVkYmFjayBzdGF0dXMgYmFubmVyICovXG4uZmVlZGJhY2tTdGF0dXMge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDIwcHg7XG4gICAgcmlnaHQ6IDIwcHg7XG4gICAgcGFkZGluZzogMTRweCAyMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYm94LXNoYWRvdzogMCAxOHB4IDMycHggcmdiYSgxNSwgMjMsIDQyLCAwLjM1KTtcbiAgICB6LWluZGV4OiAxMDAwMDsgLyogW0ZpeCB6LWluZGV4XTogRW5zdXJlIGl0J3MgYWJvdmUgdGhlIGhlYWRlciAoei01MCkgYW5kIG90aGVyIFVJIGVsZW1lbnRzICovXG4gICAgYW5pbWF0aW9uOiBmZWVkYmFja1N0YXR1c1NsaWRlSW4gMC4yOHMgZWFzZS1vdXQ7XG4gICAgbWF4LXdpZHRoOiAzNDBweDtcbiAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCk7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi5mZWVkYmFja1N0YXR1c1N1Y2Nlc3Mge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMxMGI5ODEgMCUsICMwNTk2NjkgMTAwJSk7XG4gICAgY29sb3I6ICNmOGZhZmM7XG59XG5cbi5mZWVkYmFja1N0YXR1c0Vycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZWY0NDQ0IDAlLCAjZGMyNjI2IDEwMCUpO1xuICAgIGNvbG9yOiAjZmVmMmYyO1xufVxuXG5Aa2V5ZnJhbWVzIGZlZWRiYWNrU3RhdHVzU2xpZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAlKTtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICB9XG5cbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi8qIE1vYmlsZSByZXNwb25zaXZlbmVzcyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDc2OHB4KSB7XG4gICAgLkNoYXQge1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1taW4td2lkdGg6IDEwMHB4O1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZTogMzZweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgICAgICA4NSUsXG4gICAgICAgICAgICA1NjBweCxcbiAgICAgICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXA6IDEwcHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1mb250LXNpemU6IDE2cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDE0cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDE4cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDRweDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogMTJweCAxNnB4IDA7XG4gICAgICAgIGdhcDogNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDE2cHggMTJweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSB7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgcGFkZGluZzogMTJweCAxNnB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciB7XG4gICAgICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICB9XG5cbiAgICAvKiBb44qX77iPXVxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIgaW1nIHtcbiAgICAgICAgd2lkdGg6IDM2cHg7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgfVxuICAgICovXG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygxNnB4ICsgZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20pKTtcbiAgICAgICAgZ2FwOiAxMHB4O1xuICAgIH1cblxuICAgIC5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgICAgICByaWdodDogMTRweDtcbiAgICAgICAgYm90dG9tOiA3NnB4O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDI4cHgpO1xuICAgICAgICBmb250LXNpemU6IDExcHg7XG4gICAgICAgIHBhZGRpbmc6IDdweCAxMXB4O1xuICAgIH1cblxuICAgIC5kaWN0YXRpb25TZXR0aW5nc1BhbmVsIHtcbiAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBtaW5tYXgoMCwgMWZyKTtcbiAgICB9XG5cbiAgICAuc2Nyb2xsVG9Cb3R0b20ge1xuICAgICAgICB3aWR0aDogNDRweDtcbiAgICAgICAgaGVpZ2h0OiA0NHB4O1xuICAgICAgICBmb250LXNpemU6IDE4cHg7XG4gICAgICAgIHRvcDogY2FsYygxMDAlIC0gMTYwcHgpO1xuICAgIH1cblxuICAgIC5jaGF0QnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiBzdmcge1xuICAgICAgICB3aWR0aDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgICAgIHdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4td2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgICAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWxDb250ZW50IHtcbiAgICAgICAgbWFyZ2luOiAxNnB4O1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDIwcHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgICAgIG1heC1oZWlnaHQ6IDgwdmg7XG4gICAgICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgfVxuXG4gICAgLnN0YXJzIHtcbiAgICAgICAgZ2FwOiA2cHg7XG4gICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgfVxuXG4gICAgLnN0YXJzIHNwYW4ge1xuICAgICAgICBmb250LXNpemU6IDMycHg7XG4gICAgICAgIHBhZGRpbmc6IDhweDtcbiAgICB9XG5cbiAgICAucmF0aW5nQWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW4tcmV2ZXJzZTtcbiAgICAgICAgZ2FwOiA4cHg7XG4gICAgfVxuXG4gICAgLnJhdGluZ0FjdGlvbnMgYnV0dG9uIHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICB9XG5cbiAgICAuc2VsZkxlYXJuaW5nTW9kYWxIZWFkZXIge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG5cbiAgICAuc2VsZkxlYXJuaW5nQXZhdGFyR3JvdXAge1xuICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ01ldGFSb3cge1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcbiAgICB9XG59XG5cbkBtZWRpYSAobWF4LXdpZHRoOiA0ODBweCkge1xuICAgIC5DaGF0IHtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWluLXdpZHRoOiA4MHB4O1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZTogMzJweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgICAgICA5MCUsXG4gICAgICAgICAgICA1MjBweCxcbiAgICAgICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgICAgICk7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXA6IDhweDtcbiAgICAgICAgLS1jaGF0LWlucHV0LXBhZGRpbmcteTogMTJweDtcbiAgICAgICAgLS1jaGF0LWlucHV0LXBhZGRpbmcteDogMTZweDtcbiAgICAgICAgLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplOiA0MHB4O1xuICAgIH1cblxuICAgIC5hY3Rpb25zIHtcbiAgICAgICAgbWFyZ2luOiA4cHggMTJweCAwO1xuICAgICAgICBnYXA6IDRweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgICAgICBwYWRkaW5nOiAxMHB4IDE0cHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIHtcbiAgICAgICAgbWFyZ2luOiAwIDAgNHB4O1xuICAgIH1cblxuICAgIC8qIFvjipfvuI9dXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciBpbWcge1xuICAgICAgICB3aWR0aDogMzJweDtcbiAgICAgICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICB9XG4gICAgKi9cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggOHB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTJweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTJweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5zcGVlY2hTdGF0dXNCdWJibGUge1xuICAgICAgICByaWdodDogMTBweDtcbiAgICAgICAgYm90dG9tOiA3MnB4O1xuICAgICAgICBtYXgtd2lkdGg6IGNhbGMoMTAwJSAtIDIwcHgpO1xuICAgIH1cblxuICAgIC5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyxcbiAgICAuZGljdGF0aW9uRXJyb3JBY3Rpb25zIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnNjcm9sbFRvQm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDQwcHg7XG4gICAgICAgIGhlaWdodDogNDBweDtcbiAgICAgICAgZm9udC1zaXplOiAxNnB4O1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDE0MHB4KTtcbiAgICB9XG5cbiAgICAucmF0aW5nTW9kYWwge1xuICAgICAgICBwYWRkaW5nOiAwO1xuICAgICAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMDtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDIwcHggMjBweCAwIDA7XG4gICAgICAgIG1heC1oZWlnaHQ6IDcwdmg7XG4gICAgICAgIHBhZGRpbmc6IDI0cHggMTZweCAyMHB4O1xuICAgIH1cbn1cblxuLyogUmVkdWNlZCBtb3Rpb24gc3VwcG9ydCAqL1xuQG1lZGlhIChwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIHtcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSxcbiAgICAuc2Nyb2xsVG9Cb3R0b20sXG4gICAgLnJhdGluZ01vZGFsLFxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQsXG4gICAgLmZlZWRiYWNrU3RhdHVzIHtcbiAgICAgICAgYW5pbWF0aW9uOiBub25lO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCxcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWEsXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IGJ1dHRvbixcbiAgICAvKiBb44qX77iPXSAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZywgKi9cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIHRyYW5zaXRpb246IG5vbmU7XG4gICAgfVxufVxuXG4vKiBIaWdoIGNvbnRyYXN0IG1vZGUgc3VwcG9ydCAqL1xuQG1lZGlhIChwcmVmZXJzLWNvbnRyYXN0OiBoaWdoKSB7XG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB0ZXh0YXJlYSB7XG4gICAgICAgIGJvcmRlci13aWR0aDogM3B4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b24ge1xuICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBjdXJyZW50Q29sb3I7XG4gICAgfVxufVxuXG4vKiBFbWFpbCBtb2RhbCBzdHlsZXMgKi9cbi5lbWFpbENvbnRhaW5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4uZW1haWxNb2RhbEhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbn1cblxuLmVtYWlsSGVhZGVyVGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4uZW1haWxIZWFkZXJMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmVtYWlsTWV0YWRhdGEge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE4cHggMjBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4uZW1haWxGaWVsZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tYm90dG9tOiA4cHg7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5lbWFpbEZpZWxkOmxhc3QtY2hpbGQge1xuICAgIG1hcmdpbi1ib3R0b206IDA7XG59XG5cbi5lbWFpbEZpZWxkIHN0cm9uZyB7XG4gICAgbWluLXdpZHRoOiA2MHB4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5lbWFpbFJlY2lwaWVudHMge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5lbWFpbEJvZHkge1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5lbWFpbEJvZHkgc3Ryb25nIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uZW1haWxCb2R5Q29udGVudCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMjJweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG1heC1oZWlnaHQ6IDQwMHB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5lbWFpbEJvZHlDb250ZW50IHAge1xuICAgIG1hcmdpbjogMCAwIDEycHggMDtcbn1cblxuLmVtYWlsQm9keUNvbnRlbnQgcDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uYnJvd3NlclJ1bk1vZGFsSGVhZGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjhmYWZjIDAlLCAjZWNmZWZmIDQwJSwgI2VjZmNjYiAxMDAlKTtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2RiZWFmZTtcbn1cblxuLmJyb3dzZXJSdW5IZWFkZXJUZXh0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG59XG5cbi5icm93c2VyUnVuSGVhZGVyU3RhdHVzIHtcbiAgICBtYXJnaW46IDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5icm93c2VyUnVuSGVhZGVyTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5icm93c2VyUnVuTWV0YSB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAxNnB4IDE4cHg7XG4gICAgYm94LXNoYWRvdzogMCAxcHggNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuV2FybmluZyB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmJiZjI0O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmJlYjtcbiAgICBjb2xvcjogIzkyNDAwZTtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG59XG5cbi5icm93c2VyUnVuRXJyb3Ige1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZjYTVhNTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZWYyZjI7XG4gICAgY29sb3I6ICM3ZjFkMWQ7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bkVycm9yU3VtbWFyeSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bkVycm9yU3RlcHMge1xuICAgIG1hcmdpbjogOHB4IDAgMDtcbiAgICBwYWRkaW5nLWxlZnQ6IDE4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xufVxuXG4uYnJvd3NlclJ1bkRlYnVnRGV0YWlscyB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbn1cblxuLmJyb3dzZXJSdW5EZWJ1Z0RldGFpbHMgc3VtbWFyeSB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGNvbG9yOiAjN2YxZDFkO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5icm93c2VyUnVuRGVidWdEZXRhaWxzIHByZSB7XG4gICAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgICBwYWRkaW5nOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY3ZWQ7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZlZDdhYTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgbWF4LWhlaWdodDogMjIwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjQ1O1xufVxuXG4uYnJvd3NlclJ1bkZhbGxiYWNrQ29udGVudCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBwYWRkaW5nOiAxNHB4IDE2cHg7XG59XG5cbi5icm93c2VyUnVuU3RhdHVzQmFubmVyIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4yOCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDgsIDI1MCwgMjUyLCAwLjk1KTtcbiAgICBjb2xvcjogIzMzNDE1NTtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUdyaWQge1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiByZXBlYXQoYXV0by1maXQsIG1pbm1heCgyMjBweCwgMWZyKSk7XG4gICAgZ2FwOiAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhQ2FyZCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhQ2FyZEhlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4uYnJvd3NlclJ1bk1lZGlhVGl0bGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUNhcHRpb24ge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUltYWdlLFxuLmJyb3dzZXJSdW5NZWRpYVZpZGVvIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjYmQ1ZTE7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBtYXgtaGVpZ2h0OiAyNjBweDtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkxvZyB7XG4gICAgbWFyZ2luLXRvcDogMThweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uTG9nVGl0bGUge1xuICAgIG1hcmdpbjogMCAwIDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25MaXN0IHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25JdGVtIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjI2LCAyMzIsIDI0MCwgMC45KTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblBlbmRpbmcge1xuICAgIG9wYWNpdHk6IDAuODI7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uUnVubmluZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNCwgMTY1LCAyMzMsIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkNvbXBsZXRlIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjIyKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uRXJyb3Ige1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyMzksIDY4LCA2OCwgMC4yNCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMzksIDY4LCA2OCwgMC4wOCk7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uU3RhdGUge1xuICAgIHdpZHRoOiAxMHB4O1xuICAgIGhlaWdodDogMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjY2JkNWUxO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlUnVubmluZyB7XG4gICAgYmFja2dyb3VuZDogIzBlYTVlOTtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgxNCwgMTY1LCAyMzMsIDAuMTQpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlQ29tcGxldGUge1xuICAgIGJhY2tncm91bmQ6ICMxMGI5ODE7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMTYsIDE4NSwgMTI5LCAwLjEyKTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25TdGF0ZUVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiAjZWY0NDQ0O1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25NZXRhIHtcbiAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuQG1lZGlhIHByaW50IHtcbiAgICAuQ2hhdCB7XG4gICAgICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICNmOGZhZmMgIWltcG9ydGFudDtcbiAgICAgICAgbWluLWhlaWdodDogYXV0byAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyB7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogNDhweCA0MHB4IDY0cHggIWltcG9ydGFudDtcbiAgICAgICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE1MGRlZywgcmdiYSgyLCA2LCAyMywgMC45OCksIHJnYmEoMTUsIDIzLCA0MiwgMC45MikpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1NiwgMTg5LCAyNDgsIDAuMzIpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgNDBweCA4MHB4IHJnYmEoMCwgMCwgMCwgMC4zNSkgaW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIHtcbiAgICAgICAgcGFnZS1icmVhay1pbnNpZGU6IGF2b2lkO1xuICAgICAgICBicmVhay1pbnNpZGU6IGF2b2lkO1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudChcbiAgICAgICAgICAgIDE0NWRlZyxcbiAgICAgICAgICAgIHZhcigtLWFnZW50LWNoYXQtYnJhbmQtY29sb3ItbGlnaHQsICM3ZGQzZmMpLFxuICAgICAgICAgICAgdmFyKC0tYWdlbnQtY2hhdC1icmFuZC1jb2xvciwgIzBlYTVlOSlcbiAgICAgICAgKSAhaW1wb3J0YW50O1xuICAgICAgICBjb2xvcjogI2Y4ZmFmYyAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAzMnB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxOHB4IDQwcHggcmdiYSgyLCA2LCAyMywgMC42KSBpbnNldCAhaW1wb3J0YW50O1xuICAgICAgICBwYWRkaW5nOiAxOHB4IDIycHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJhY2tncm91bmQ6ICNmOGZiZmYgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICMwZjE3MmEgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQ1KSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDEwcHggMzBweCByZ2JhKDE1LCAyMywgNDIsIDAuMykgaW5zZXQgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIHtcbiAgICAgICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5tZXNzYWdlTWV0YSxcbiAgICAucGFydGljaXBhbnRMYWJlbCB7XG4gICAgICAgIGNvbG9yOiByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOCkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyxcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQsXG4gICAgLnNjcm9sbFRvQm90dG9tLFxuICAgIC5mZWVkYmFja1N0YXR1cyxcbiAgICAudm9pY2VDYWxsSW5kaWNhdG9yQmFyLFxuICAgIC52b2ljZUNhbGxJbmRpY2F0b3Ige1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNvcHlCdXR0b25Db250YWluZXIsXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IGJ1dHRvbiB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMgPiA6bGFzdC1jaGlsZCB7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiAxMDBweCAhaW1wb3J0YW50O1xuICAgIH1cbn1cblxuLmVtYWlsU3RhdHVzIHtcbiAgICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4vKipcbiAqIFRPRE86IFvwn4yJXSBEUlkgTWFya2Rvd24gcHJpbWl0aXZlcyBzdHlsaW5nXG4gKi9cbi8qIEltYWdlIHByb21wdCBwcmV2aWV3IHN0eWxlcyAqL1xuLmltYWdlUHJvbXB0IHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zNSk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjI1KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTJweCk7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4uaW1hZ2VQcm9tcHRQcmV2aWV3IHtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIG1pbi1oZWlnaHQ6IDE2MHB4O1xuICAgIGJvcmRlcjogMXB4IGRhc2hlZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgcmdiYSgxNSwgMTE4LCAyNTUsIDAuMDUpLCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNCkpO1xufVxuXG4uaW1hZ2VQcm9tcHRJbWFnZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4uaW1hZ2VQcm9tcHRQbGFjZWhvbGRlciB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbn1cblxuLmltYWdlUHJvbXB0U3Bpbm5lciB7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBib3JkZXI6IDNweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyNTYzZWI7XG4gICAgYW5pbWF0aW9uOiBpbWFnZVByb21wdFNwaW5uZXIgMC45cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgaW1hZ2VQcm9tcHRTcGlubmVyIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG4uaW1hZ2VQcm9tcHRNZXRhIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA0cHg7XG59XG5cbi5pbWFnZVByb21wdFByb21wdCB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6ICMxMTE7XG4gICAgb3ZlcmZsb3ctd3JhcDogYW55d2hlcmU7XG59XG5cbi5pbWFnZVByb21wdFN0YXR1cyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjNmI3MjgwO1xufVxuXG4uaW1hZ2VQcm9tcHRFcnJvciB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0OiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBwYWRkaW5nOiAxMnB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICNkYzI2MjY7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyMjAsIDM4LCAzOCwgMC4wOCk7XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyIHtcbiAgICBtYXJnaW4tdG9wOiAxNnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjEyKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlclNwaW5uZXIge1xuICAgIHdpZHRoOiAzMnB4O1xuICAgIGhlaWdodDogMzJweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSg1OSwgMTMwLCAyNDYsIDAuMyk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogIzIyZDNlZTtcbiAgICBhbmltYXRpb246IHJpY2hGZWF0dXJlU3Bpbm5lciAwLjhzIGxpbmVhciBpbmZpbml0ZTtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXJDb3B5IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyVGl0bGUge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlclN0YXR1cyB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGNvbG9yOiAjNDc1NTY5O1xufVxuXG5Aa2V5ZnJhbWVzIHJpY2hGZWF0dXJlU3Bpbm5lciB7XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cbiJdfQ== */";
|
|
21236
|
-
var styles$5 = {"copiedToClipboardMessage":"Chat-module_copiedToClipboardMessage__apCPY","Chat":"Chat-module_Chat__j2eE5","chatMainFlow":"Chat-module_chatMainFlow__--8FE","chatBar":"Chat-module_chatBar__fLECN","TasksInProgress":"Chat-module_TasksInProgress__fQfei","actions":"Chat-module_actions__gTZ5T","portal":"Chat-module_portal__uTOT8","left":"Chat-module_left__7l5Mn","right":"Chat-module_right__ABZrW","actionsFaded":"Chat-module_actionsFaded__qqAVQ","actionsScrolling":"Chat-module_actionsScrolling__fIawW","chatButton":"Chat-module_chatButton__d9VgA","chatButtonText":"Chat-module_chatButtonText__RkGB-","useTemplateButton":"Chat-module_useTemplateButton__xcJNR","chatChildren":"Chat-module_chatChildren__flOPK","chatMessages":"Chat-module_chatMessages__J2u2N","hasActionsAndFirstMessageIsLong":"Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ","chatMessage":"Chat-module_chatMessage__nmLaZ","messageSlideIn":"Chat-module_messageSlideIn__soTy2","messageStack":"Chat-module_messageStack__n0xNL","isMe":"Chat-module_isMe__nBtaV","messageWithMap":"Chat-module_messageWithMap__X5dr0","messageMeta":"Chat-module_messageMeta__eqCRu","messageLifecycleBadge":"Chat-module_messageLifecycleBadge__4jDDc","messageTimestamp":"Chat-module_messageTimestamp__LDhRw","messageDuration":"Chat-module_messageDuration__Y9Kg9","messageLifecycleError":"Chat-module_messageLifecycleError__m-FO-","participantLabel":"Chat-module_participantLabel__0Oo-3","isNotCompleteMessage":"Chat-module_isNotCompleteMessage__Hj2K7","NonCompleteMessageFiller":"Chat-module_NonCompleteMessageFiller__G5-Ve","messageText":"Chat-module_messageText__XgNyQ","loadingPulse":"Chat-module_loadingPulse__VomRm","toolCallChips":"Chat-module_toolCallChips__UWgC1","sourceCitations":"Chat-module_sourceCitations__oDtBX","toolCallChip":"Chat-module_toolCallChip__koN18","toolCallChipOngoing":"Chat-module_toolCallChipOngoing__wKcDY","toolCallChipStatus":"Chat-module_toolCallChipStatus__I-nl9","teamToolCall":"Chat-module_teamToolCall__5F45R","transitiveToolCall":"Chat-module_transitiveToolCall__WcaaK","teamAgentChip":"Chat-module_teamAgentChip__mvgtY","transitiveAgentChip":"Chat-module_transitiveAgentChip__zNOJf","toolCallLabel":"Chat-module_toolCallLabel__q7EFf","toolCallWithError":"Chat-module_toolCallWithError__AtQqO","toolCallOrigin":"Chat-module_toolCallOrigin__-Io6Y","toolCallDetails":"Chat-module_toolCallDetails__WUFlD","toolCallData":"Chat-module_toolCallData__UauCO","toolCallChipSpinner":"Chat-module_toolCallChipSpinner__ZGTwl","toolCallSpinner":"Chat-module_toolCallSpinner__LSiK6","typingIndicator":"Chat-module_typingIndicator__S-CT-","avatar":"Chat-module_avatar__gL6bm","typingBubble":"Chat-module_typingBubble__0Lb7B","typingDots":"Chat-module_typingDots__srOBB","typingDot":"Chat-module_typingDot__dnhKT","typingBounce":"Chat-module_typingBounce__1yp2v","ratingStar":"Chat-module_ratingStar__rRfqC","active":"Chat-module_active__lbYL-","copyButtonContainer":"Chat-module_copyButtonContainer__Rij0U","messageControlGroup":"Chat-module_messageControlGroup__gAo4k","copyButton":"Chat-module_copyButton__DcxT5","playButton":"Chat-module_playButton__ZigYL","playButtonIcon":"Chat-module_playButtonIcon__wPErq","playButtonSpinner":"Chat-module_playButtonSpinner__Ad33i","messagePlaySpinner":"Chat-module_messagePlaySpinner__ldlvy","copiedTooltip":"Chat-module_copiedTooltip__LH81j","copiedTooltipFadeIn":"Chat-module_copiedTooltipFadeIn__QekO1","copiedTooltipLeft":"Chat-module_copiedTooltipLeft__j-S-5","copiedTooltipRight":"Chat-module_copiedTooltipRight__R-2cE","chat-code-block":"Chat-module_chat-code-block__k8IyS","attachments":"Chat-module_attachments__m1Fts","attachment":"Chat-module_attachment__aE9hK","attachmentIcon":"Chat-module_attachmentIcon__BX3Cy","attachmentName":"Chat-module_attachmentName__aMx56","messageButtons":"Chat-module_messageButtons__WaOob","messageButton":"Chat-module_messageButton__mRnn-","actionMessageButton":"Chat-module_actionMessageButton__avcbv","rating":"Chat-module_rating__soc3M","chatInput":"Chat-module_chatInput__1Ecan","fullPageVisual":"Chat-module_fullPageVisual__zNAEy","dragOver":"Chat-module_dragOver__bkS-g","filePreviewContainer":"Chat-module_filePreviewContainer__R70hm","filePreview":"Chat-module_filePreview__kq2aX","fileIcon":"Chat-module_fileIcon__zoSKW","fileInfo":"Chat-module_fileInfo__wBLi0","fileName":"Chat-module_fileName__bBujo","fileSize":"Chat-module_fileSize__ivliq","removeFileButton":"Chat-module_removeFileButton__0gakR","inputContainer":"Chat-module_inputContainer__bPt99","attachmentButton":"Chat-module_attachmentButton__qLO47","voiceButton":"Chat-module_voiceButton__d2zlP","voiceButtonActive":"Chat-module_voiceButtonActive__Uoi3W","voiceRecordingPulse":"Chat-module_voiceRecordingPulse__y2wJ5","speechStatusBubble":"Chat-module_speechStatusBubble__qBBWI","speechStatusBubbleIn":"Chat-module_speechStatusBubbleIn__PBm-c","speechStatusBubbleDot":"Chat-module_speechStatusBubbleDot__APu53","speechStatusBubbleDotPulse":"Chat-module_speechStatusBubbleDotPulse__Guqsu","speechStatusBubbleRecording":"Chat-module_speechStatusBubbleRecording__faJs2","speechStatusBubbleProcessing":"Chat-module_speechStatusBubbleProcessing__Crbuu","speechStatusBubbleError":"Chat-module_speechStatusBubbleError__Nd-Aj","dictationPanel":"Chat-module_dictationPanel__kzbyG","dictationPanelHeader":"Chat-module_dictationPanelHeader__rHXTh","dictationPanelTitle":"Chat-module_dictationPanelTitle__sO9XH","dictationPanelToggle":"Chat-module_dictationPanelToggle__z3HMx","dictationInterimTranscript":"Chat-module_dictationInterimTranscript__eAbMI","dictationErrorPanel":"Chat-module_dictationErrorPanel__mjbM7","dictationErrorActions":"Chat-module_dictationErrorActions__K3ykb","dictationCorrectionActions":"Chat-module_dictationCorrectionActions__ssE7i","dictationCorrectionPanel":"Chat-module_dictationCorrectionPanel__5nh9M","dictationCorrectionLabel":"Chat-module_dictationCorrectionLabel__U4uzT","dictationCorrectionTextarea":"Chat-module_dictationCorrectionTextarea__5ovj9","dictationSettingsPanel":"Chat-module_dictationSettingsPanel__0gI-V","dictationFallbackNote":"Chat-module_dictationFallbackNote__919pE","uploadProgress":"Chat-module_uploadProgress__jBTKe","uploadProgressBar":"Chat-module_uploadProgressBar__Gutnt","uploadProgressFill":"Chat-module_uploadProgressFill__EgubT","dragOverlay":"Chat-module_dragOverlay__SEGoS","dragOverlayContent":"Chat-module_dragOverlayContent__gb9kF","scrollToBottomContainer":"Chat-module_scrollToBottomContainer__5rXpK","scrollToBottomWrapper":"Chat-module_scrollToBottomWrapper__PCIu1","scrollButtonSlideIn":"Chat-module_scrollButtonSlideIn__XnImg","scrollToBottom":"Chat-module_scrollToBottom__nzxdZ","scrollToBottomBadge":"Chat-module_scrollToBottomBadge__N6T6-","ratingModal":"Chat-module_ratingModal__XVKYm","modalFadeIn":"Chat-module_modalFadeIn__RPc3w","ratingModalContent":"Chat-module_ratingModalContent__CCdq7","modalSlideIn":"Chat-module_modalSlideIn__XXtgN","stars":"Chat-module_stars__PCzNO","ratingModalStar":"Chat-module_ratingModalStar__XkbHr","toolCallModal":"Chat-module_toolCallModal__uNaIK","toolCallHeader":"Chat-module_toolCallHeader__ZaTZF","toolCallIcon":"Chat-module_toolCallIcon__UgRKj","toolCallHeaderMeta":"Chat-module_toolCallHeaderMeta__iAL-U","toolCallModalLabel":"Chat-module_toolCallModalLabel__4dBP4","toolCallTitle":"Chat-module_toolCallTitle__jhL0A","toolCallSubtitle":"Chat-module_toolCallSubtitle__a2GIO","toolCallGrid":"Chat-module_toolCallGrid__Nfr7N","toolCallPanel":"Chat-module_toolCallPanel__kQZE9","toolCallPanelTitle":"Chat-module_toolCallPanelTitle__-7OtJ","toolCallList":"Chat-module_toolCallList__5co3s","toolCallItem":"Chat-module_toolCallItem__k7W5Z","toolCallItemLabel":"Chat-module_toolCallItemLabel__d3C1E","toolCallItemValue":"Chat-module_toolCallItemValue__cStQ0","toolCallSummary":"Chat-module_toolCallSummary__wGZwg","toolCallSummaryMeta":"Chat-module_toolCallSummaryMeta__RXiSv","toolCallSummaryMetaBadge":"Chat-module_toolCallSummaryMetaBadge__JBi-I","toolCallEmpty":"Chat-module_toolCallEmpty__bUz5v","toolCallPendingCard":"Chat-module_toolCallPendingCard__L3m7T","toolCallPendingHeader":"Chat-module_toolCallPendingHeader__U3htF","toolCallPendingTitle":"Chat-module_toolCallPendingTitle__4fwLL","toolCallPendingBadge":"Chat-module_toolCallPendingBadge__bgY3c","toolCallPendingMessage":"Chat-module_toolCallPendingMessage__grnao","toolCallPendingSkeleton":"Chat-module_toolCallPendingSkeleton__Td5Cu","toolCallPendingSkeletonLine":"Chat-module_toolCallPendingSkeletonLine__Vldel","toolCallPendingSkeletonPulse":"Chat-module_toolCallPendingSkeletonPulse__aKDNI","toolCallPendingSkeletonShort":"Chat-module_toolCallPendingSkeletonShort__FnR-X","toolCallDetailsCard":"Chat-module_toolCallDetailsCard__UJthw","toolCallDetailsCardRow":"Chat-module_toolCallDetailsCardRow__-VhfA","toolCallIssues":"Chat-module_toolCallIssues__evhYM","toolCallIssueBadge":"Chat-module_toolCallIssueBadge__Qbwdp","toolCallIssueError":"Chat-module_toolCallIssueError__LImeS","toolCallIssueWarning":"Chat-module_toolCallIssueWarning__chQDf","toolCallModeFooter":"Chat-module_toolCallModeFooter__XaRqI","toolCallModeButton":"Chat-module_toolCallModeButton__zlcca","memoryModalHeader":"Chat-module_memoryModalHeader__SpZJT","memoryModalIcon":"Chat-module_memoryModalIcon__eYbli","memoryModalHeaderText":"Chat-module_memoryModalHeaderText__S6MZG","memoryModalTitle":"Chat-module_memoryModalTitle__zzbaQ","memoryModalSubtitle":"Chat-module_memoryModalSubtitle__PStci","memoryModalStatus":"Chat-module_memoryModalStatus__bmrfc","memoryStatusDot":"Chat-module_memoryStatusDot__c0oVs","memoryModalContent":"Chat-module_memoryModalContent__8E7oj","memoryMessage":"Chat-module_memoryMessage__q0pNK","memoryMetaRow":"Chat-module_memoryMetaRow__Hc-Xp","memoryMetaLabel":"Chat-module_memoryMetaLabel__LFx11","memoryMetaValue":"Chat-module_memoryMetaValue__4bILO","memoryStoreSection":"Chat-module_memoryStoreSection__qQJPN","memoryRetrieveSection":"Chat-module_memoryRetrieveSection__VbuS4","memoryCard":"Chat-module_memoryCard__-kIDN","memoryCardContent":"Chat-module_memoryCardContent__l9S4G","memoryCardMeta":"Chat-module_memoryCardMeta__K66KE","memoryScopeBadge":"Chat-module_memoryScopeBadge__T2ACc","memoryList":"Chat-module_memoryList__pUOg2","memoryEmptyState":"Chat-module_memoryEmptyState__fPrXA","memoryListFooter":"Chat-module_memoryListFooter__Y0Q2Z","memoryStatusSuccess":"Chat-module_memoryStatusSuccess__4bhfo","memoryStatusWarning":"Chat-module_memoryStatusWarning__AR6yh","memoryStatusError":"Chat-module_memoryStatusError__ZNAT6","memoryStatusNeutral":"Chat-module_memoryStatusNeutral__Fa-4M","searchModalHeader":"Chat-module_searchModalHeader__Y8V-w","selfLearningModalHeader":"Chat-module_selfLearningModalHeader__PDIt1","selfLearningAvatarGroup":"Chat-module_selfLearningAvatarGroup__jgy2k","selfLearningAvatar":"Chat-module_selfLearningAvatar__NHXKm","selfLearningAvatarInitial":"Chat-module_selfLearningAvatarInitial__cuw19","selfLearningTeacher":"Chat-module_selfLearningTeacher__fGhX8","selfLearningHeaderText":"Chat-module_selfLearningHeaderText__LTwHL","selfLearningTitle":"Chat-module_selfLearningTitle__G0SAk","selfLearningMetaRow":"Chat-module_selfLearningMetaRow__z4Tg0","selfLearningMeta":"Chat-module_selfLearningMeta__58Pet","selfLearningMetaChip":"Chat-module_selfLearningMetaChip__0go88","selfLearningCommitments":"Chat-module_selfLearningCommitments__7ECnr","selfLearningCommitmentsLabel":"Chat-module_selfLearningCommitmentsLabel__OkDO1","selfLearningBookEditor":"Chat-module_selfLearningBookEditor__CZy5T","selfLearningEmpty":"Chat-module_selfLearningEmpty__vCKHL","modalCloseButton":"Chat-module_modalCloseButton__AAfWS","teamModalHeader":"Chat-module_teamModalHeader__SB5NL","teamHeaderParticipants":"Chat-module_teamHeaderParticipants__KS7aV","teamHeaderProfile":"Chat-module_teamHeaderProfile__xRlcS","teamHeaderProfileLink":"Chat-module_teamHeaderProfileLink__fYTfT","teamHeaderAvatar":"Chat-module_teamHeaderAvatar__vXcTp","teamHeaderName":"Chat-module_teamHeaderName__ygJR9","teamHeaderDivider":"Chat-module_teamHeaderDivider__cnRMd","searchModalIcon":"Chat-module_searchModalIcon__AR5KY","searchModalQuery":"Chat-module_searchModalQuery__5x-Ra","searchModalContent":"Chat-module_searchModalContent__mWLIE","teamChatContainer":"Chat-module_teamChatContainer__xdLtU","teamToolCallSection":"Chat-module_teamToolCallSection__FH9l7","teamToolCallGroup":"Chat-module_teamToolCallGroup__PO6rl","teamToolCallHeading":"Chat-module_teamToolCallHeading__G-JSj","teamToolCallChips":"Chat-module_teamToolCallChips__hRWqh","teamToolCallDetails":"Chat-module_teamToolCallDetails__ZaTtt","teamToolCallDetailsHeader":"Chat-module_teamToolCallDetailsHeader__FPIgI","teamToolCallDetailsTitle":"Chat-module_teamToolCallDetailsTitle__50SeL","teamToolCallDetailsClear":"Chat-module_teamToolCallDetailsClear__8yvu7","searchResultsList":"Chat-module_searchResultsList__xVDUZ","searchResultsRaw":"Chat-module_searchResultsRaw__i3GkD","searchResultItem":"Chat-module_searchResultItem__bTzq5","searchResultUrl":"Chat-module_searchResultUrl__SbrH4","searchResultTitle":"Chat-module_searchResultTitle__XS7zN","searchResultSnippet":"Chat-module_searchResultSnippet__Wsun2","noResults":"Chat-module_noResults__AAv6s","citationDetails":"Chat-module_citationDetails__2v2e1","citationPreview":"Chat-module_citationPreview__rGhCR","citationIframe":"Chat-module_citationIframe__ngzFY","citationMetadata":"Chat-module_citationMetadata__DPaCF","citationExcerpt":"Chat-module_citationExcerpt__VU4BS","citationHint":"Chat-module_citationHint__5AkLx","toolCallDataContainer":"Chat-module_toolCallDataContainer__rdEzC","toolCallPayloadContainer":"Chat-module_toolCallPayloadContainer__v2yVn","toolCallPayloadEditor":"Chat-module_toolCallPayloadEditor__Hklyf","ratingInput":"Chat-module_ratingInput__z8Pv-","ratingActions":"Chat-module_ratingActions__nXcss","downloadButton":"Chat-module_downloadButton__8--bk","saveButtonContainer":"Chat-module_saveButtonContainer__lSNUJ","saveMenu":"Chat-module_saveMenu__-ph8y","saveMenuItem":"Chat-module_saveMenuItem__ISApL","saveMenuDivider":"Chat-module_saveMenuDivider__3ktTM","chatFeedbackPanel":"Chat-module_chatFeedbackPanel__gfOzk","chatFeedbackToggle":"Chat-module_chatFeedbackToggle__IeOM6","chatFeedbackIcon":"Chat-module_chatFeedbackIcon__XcB7A","chatFeedbackMeta":"Chat-module_chatFeedbackMeta__6t2be","chatFeedbackLabel":"Chat-module_chatFeedbackLabel__qQgH3","chatFeedbackDescription":"Chat-module_chatFeedbackDescription__I9bNg","chatFeedbackIndicator":"Chat-module_chatFeedbackIndicator__uHCr7","chatFeedbackIndicatorActive":"Chat-module_chatFeedbackIndicatorActive__bkw-w","chatFeedbackIndicatorInactive":"Chat-module_chatFeedbackIndicatorInactive__qMBkh","pauseButton":"Chat-module_pauseButton__eeu7K","pausing":"Chat-module_pausing__pTx8b","paused":"Chat-module_paused__j-pya","stopButton":"Chat-module_stopButton__dkPOW","voiceCallIndicatorBar":"Chat-module_voiceCallIndicatorBar__N2sWN","voiceCallIndicator":"Chat-module_voiceCallIndicator__tsaaG","voiceCallIconPulse":"Chat-module_voiceCallIconPulse__zZbJn","voiceCallPulse":"Chat-module_voiceCallPulse__XcGU4","feedbackStatus":"Chat-module_feedbackStatus__-df7l","feedbackStatusSlideIn":"Chat-module_feedbackStatusSlideIn__n6bbB","feedbackStatusSuccess":"Chat-module_feedbackStatusSuccess__Ax2q0","feedbackStatusError":"Chat-module_feedbackStatusError__dnv6d","emailContainer":"Chat-module_emailContainer__TBxXZ","emailModalHeader":"Chat-module_emailModalHeader__Z4-CJ","emailHeaderText":"Chat-module_emailHeaderText__1dR6R","emailHeaderLabel":"Chat-module_emailHeaderLabel__7iAEH","emailMetadata":"Chat-module_emailMetadata__8XXGf","emailField":"Chat-module_emailField__pcb03","emailRecipients":"Chat-module_emailRecipients__YVVys","emailBody":"Chat-module_emailBody__OBt-w","emailBodyContent":"Chat-module_emailBodyContent__-vFo2","browserRunModalHeader":"Chat-module_browserRunModalHeader__0AyeK","browserRunHeaderText":"Chat-module_browserRunHeaderText__JUbNv","browserRunHeaderStatus":"Chat-module_browserRunHeaderStatus__uu3Fi","browserRunHeaderLabel":"Chat-module_browserRunHeaderLabel__uKYCb","browserRunMeta":"Chat-module_browserRunMeta__lJkQc","browserRunWarning":"Chat-module_browserRunWarning__ojdEP","browserRunError":"Chat-module_browserRunError__aELQo","browserRunErrorSummary":"Chat-module_browserRunErrorSummary__ygz-g","browserRunErrorSteps":"Chat-module_browserRunErrorSteps__S96nl","browserRunDebugDetails":"Chat-module_browserRunDebugDetails__SZ3VT","browserRunFallbackContent":"Chat-module_browserRunFallbackContent__NYCkp","browserRunStatusBanner":"Chat-module_browserRunStatusBanner__ljIE9","browserRunMediaGrid":"Chat-module_browserRunMediaGrid__KDz3I","browserRunMediaCard":"Chat-module_browserRunMediaCard__focNP","browserRunMediaCardHeader":"Chat-module_browserRunMediaCardHeader__sOfLw","browserRunMediaTitle":"Chat-module_browserRunMediaTitle__a6Ctw","browserRunMediaCaption":"Chat-module_browserRunMediaCaption__LG8E6","browserRunMediaImage":"Chat-module_browserRunMediaImage__UI4pd","browserRunMediaVideo":"Chat-module_browserRunMediaVideo__z2RgF","browserRunActionLog":"Chat-module_browserRunActionLog__YZ0CQ","browserRunActionLogTitle":"Chat-module_browserRunActionLogTitle__XaEIW","browserRunActionList":"Chat-module_browserRunActionList__SOgfd","browserRunActionItem":"Chat-module_browserRunActionItem__1q668","browserRunActionPending":"Chat-module_browserRunActionPending__unJJt","browserRunActionRunning":"Chat-module_browserRunActionRunning__NdlRL","browserRunActionComplete":"Chat-module_browserRunActionComplete__PU36H","browserRunActionError":"Chat-module_browserRunActionError__y-cm0","browserRunActionState":"Chat-module_browserRunActionState__pkfKg","browserRunActionStateRunning":"Chat-module_browserRunActionStateRunning__L1IbZ","browserRunActionStateComplete":"Chat-module_browserRunActionStateComplete__CpVEc","browserRunActionStateError":"Chat-module_browserRunActionStateError__lU-t4","browserRunActionMeta":"Chat-module_browserRunActionMeta__df32n","emailStatus":"Chat-module_emailStatus__T4UuL","imagePrompt":"Chat-module_imagePrompt__v7-Ho","imagePromptPreview":"Chat-module_imagePromptPreview__ve5dB","imagePromptImage":"Chat-module_imagePromptImage__KjE3H","imagePromptPlaceholder":"Chat-module_imagePromptPlaceholder__b8cW6","imagePromptSpinner":"Chat-module_imagePromptSpinner__nat8r","imagePromptMeta":"Chat-module_imagePromptMeta__YwltP","imagePromptPrompt":"Chat-module_imagePromptPrompt__N1E--","imagePromptStatus":"Chat-module_imagePromptStatus__0ROQF","imagePromptError":"Chat-module_imagePromptError__x1952","richFeaturePlaceholder":"Chat-module_richFeaturePlaceholder__mXS7-","richFeaturePlaceholderSpinner":"Chat-module_richFeaturePlaceholderSpinner__ingFq","richFeatureSpinner":"Chat-module_richFeatureSpinner__eOql6","richFeaturePlaceholderCopy":"Chat-module_richFeaturePlaceholderCopy__sEgxN","richFeaturePlaceholderTitle":"Chat-module_richFeaturePlaceholderTitle__lF7rJ","richFeaturePlaceholderStatus":"Chat-module_richFeaturePlaceholderStatus__UJg09"};
|
|
22470
|
+
var css_248z$5 = "@font-face{font-display:swap;font-family:OpenMojiBlack;src:url(/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-black-glyf.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}@font-face{font-display:swap;font-family:OpenMojiColor;src:url(/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\"),url(https://s6.ptbk.io/fonts/OpenMoji-color-cbdt.woff2) format(\"woff2\");unicode-range:u+23,u+2a,u+2d,u+30-39,u+a9,u+ae,u+200d,u+203c,u+2049,u+20e3,u+2117,u+2120,u+2122,u+2139,u+2194-2199,u+21a9,u+21aa,u+229c,u+231a,u+231b,u+2328,u+23cf,u+23e9-23f3,u+23f8-23fe,u+24c2,u+25a1,u+25aa-25ae,u+25b6,u+25c0,u+25c9,u+25d0,u+25d1,u+25e7-25ea,u+25ed,u+25ee,u+25fb-25fe,u+2600-2605,u+260e,u+2611,u+2614,u+2615,u+2618,u+261d,u+2620,u+2622,u+2623,u+2626,u+262a,u+262e,u+262f,u+2638-263a,u+2640,u+2642,u+2648-2653,u+265f,u+2660,u+2663,u+2665,u+2666,u+2668,u+267b,u+267e,u+267f,u+2691-2697,u+2699,u+269b,u+269c,u+26a0,u+26a1,u+26a7,u+26aa,u+26ab,u+26b0,u+26b1,u+26bd,u+26be,u+26c4,u+26c5,u+26c8,u+26ce,u+26cf,u+26d1,u+26d3,u+26d4,u+26e9,u+26ea,u+26f0-26f5,u+26f7-26fa,u+26fd,u+2702,u+2705,u+2708-270d,u+270f,u+2712,u+2714,u+2716,u+271d,u+2721,u+2728,u+2733,u+2734,u+2744,u+2747,u+274c,u+274e,u+2753-2755,u+2757,u+2763,u+2764,u+2795-2797,u+27a1,u+27b0,u+27bf,u+2934,u+2935,u+2b05-2b07,u+2b0c,u+2b0d,u+2b1b,u+2b1c,u+2b1f-2b24,u+2b2e,u+2b2f,u+2b50,u+2b55,u+2b58,u+2b8f,u+2bba-2bbc,u+2bc3,u+2bc4,u+2bea,u+2beb,u+3030,u+303d,u+3297,u+3299,u+e000-e009,u+e010,u+e011,u+e040-e06d,u+e080-e0b4,u+e0c0-e0cc,u+e0ff-e10d,u+e140-e14a,u+e150-e157,u+e181-e189,u+e1c0-e1c4,u+e1c6-e1d9,u+e200-e216,u+e240-e269,u+e280-e283,u+e2c0-e2c4,u+e2c6-e2da,u+e300-e303,u+e305-e30f,u+e312-e316,u+e318-e322,u+e324-e329,u+e32b,u+e340-e348,u+e380,u+e381,u+f000,u+f77a,u+f8ff,u+fe0f,u+1f004,u+1f0cf,u+1f10d-1f10f,u+1f12f,u+1f16d-1f171,u+1f17e,u+1f17f,u+1f18e,u+1f191-1f19a,u+1f1e6-1f1ff,u+1f201,u+1f202,u+1f21a,u+1f22f,u+1f232-1f23a,u+1f250,u+1f251,u+1f260-1f265,u+1f300-1f321,u+1f324-1f393,u+1f396,u+1f397,u+1f399-1f39b,u+1f39e-1f3f0,u+1f3f3-1f3f5,u+1f3f7-1f4fd,u+1f4ff-1f53d,u+1f549-1f54e,u+1f550-1f567,u+1f56f,u+1f570,u+1f573-1f57a,u+1f587,u+1f58a-1f58d,u+1f590,u+1f595,u+1f596,u+1f5a4,u+1f5a5,u+1f5a8,u+1f5b1,u+1f5b2,u+1f5bc,u+1f5c2-1f5c4,u+1f5d1-1f5d3,u+1f5dc-1f5de,u+1f5e1,u+1f5e3,u+1f5e8,u+1f5ef,u+1f5f3,u+1f5fa-1f64f,u+1f680-1f6c5,u+1f6cb-1f6d2,u+1f6d5-1f6d7,u+1f6dc-1f6e5,u+1f6e9,u+1f6eb,u+1f6ec,u+1f6f0,u+1f6f3-1f6fc,u+1f7e0-1f7eb,u+1f7f0,u+1f90c-1f93a,u+1f93c-1f945,u+1f947-1f9ff,u+1fa70-1fa7c,u+1fa80-1fa88,u+1fa90-1fabd,u+1fabf-1fac5,u+1face-1fadb,u+1fae0-1fae8,u+1faf0-1faf8,u+1fbc5-1fbc9,u+e0061-e0067,u+e0069,u+e006c-e0079,u+e007f}.Chat-module_copiedToClipboardMessage__apCPY{background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:1.1em;left:50%;opacity:.97;padding:10px 24px;pointer-events:none;position:fixed;top:32px;transform:translateX(-50%);z-index:9999}.Chat-module_Chat__j2eE5{--chat-message-min-width:150px;--chat-message-avatar-gap:12px;--chat-message-avatar-size:40px;--chat-message-max-width:min(70%,600px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-input-visible-lines:3;--chat-input-font-size:15px;--chat-input-line-height:1.5;--chat-input-padding-y:10px;--chat-input-padding-x:12px;--chat-input-action-size:40px;--chat-input-textarea-height:calc(var(--chat-input-visible-lines)*var(--chat-input-font-size)*var(--chat-input-line-height) + var(--chat-input-padding-y)*2);display:flex;flex-direction:column;font-family:Arial,Helvetica,sans-serif,OpenMojiColor,OpenMojiBlack;height:100%;min-height:0;overflow:hidden;width:100%}.Chat-module_chatMainFlow__--8FE{display:grid;grid-template:\"🟦\" min-content \"💬\" 1fr \"📝\" min-content/1fr;height:100%;max-width:100%;min-height:0;min-width:0;width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatBar__fLECN{background-color:#fff;border-bottom:1px solid rgba(15,23,36,.06);color:#0f1724;font-weight:500;grid-area:🟦;padding:16px 20px;text-align:center;width:100%}.Chat-module_TasksInProgress__fQfei{align-self:center;grid-area:🟦;height:min-content;justify-self:self-end;margin:8px 16px;width:auto}.Chat-module_actions__gTZ5T{align-items:center;align-self:self-start;display:flex;gap:8px;grid-area:💬;height:min-content;justify-self:self-end;margin:16px 20px 0;transition:opacity .2s ease;width:auto;will-change:opacity;z-index:40}.Chat-module_actions__gTZ5T.Chat-module_portal__uTOT8{margin:0}.Chat-module_actions__gTZ5T.Chat-module_left__7l5Mn{justify-self:self-start}.Chat-module_actions__gTZ5T.Chat-module_right__ABZrW{justify-self:self-end}.Chat-module_actionsFaded__qqAVQ{opacity:.3}.Chat-module_actionsScrolling__fIawW{opacity:.15;pointer-events:none}@media (max-width:900px){.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}}@media (max-width:600px){.Chat-module_actions__gTZ5T{gap:7px;margin:14px 18px 0}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatChildren__flOPK{grid-area:💬;height:100%;min-height:0;min-width:0;width:100%;z-index:300}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{grid-area:💬;height:100%;min-height:0;min-width:0;overflow-x:hidden;overflow-y:auto;padding:24px 20px 16px;scroll-behavior:smooth;width:100%;z-index:10}.Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ{padding-top:80px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar{width:6px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-track{background:transparent}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb{background:hsla(0,0%,49%,.2);border-radius:3px;transition:all .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N::-webkit-scrollbar-thumb:hover{background:hsla(0,0%,49%,.3)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);column-gap:var(--chat-message-avatar-gap);display:flex;flex-direction:row;margin-bottom:20px;max-width:100%;min-width:0;position:relative}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL{align-items:flex-start;display:flex;flex-direction:column;max-width:var(--chat-message-max-width);min-width:0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageStack__n0xNL{align-items:flex-end}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageStack__n0xNL>*{max-width:100%}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0{align-items:stretch}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{align-items:stretch;max-width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));width:min(90vw,920px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)))}@media (max-width:900px){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_messageWithMap__X5dr0 .Chat-module_messageStack__n0xNL{max-width:min(92vw,640px);width:min(92vw,640px)}}.Chat-module_messageMeta__eqCRu{align-items:center;color:#6b7280;display:flex;flex-wrap:wrap;font-size:11px;gap:6px;line-height:1.4;margin:4px 6px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageMeta__eqCRu{align-self:flex-end;text-align:right}.Chat-module_messageLifecycleBadge__4jDDc{align-items:center;background:rgba(148,163,184,.16);border-radius:999px;color:#475569;display:inline-flex;font-weight:600;letter-spacing:.02em;padding:2px 8px;text-transform:uppercase}.Chat-module_messageTimestamp__LDhRw{letter-spacing:.02em}.Chat-module_messageDuration__Y9Kg9{opacity:.85}.Chat-module_messageLifecycleError__m-FO-{color:#b91c1c;font-size:12px;line-height:1.45;margin:4px 6px 0}.Chat-module_participantLabel__0Oo-3{color:#64748b;font-size:12px;font-weight:600;margin:0 0 6px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_participantLabel__0Oo-3{text-align:right}@keyframes Chat-module_messageSlideIn__soTy2{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_isNotCompleteMessage__Hj2K7{opacity:.7;position:relative}.Chat-module_NonCompleteMessageFiller__G5-Ve{color:transparent}.Chat-module_isNotCompleteMessage__Hj2K7 .Chat-module_messageText__XgNyQ:after{animation:Chat-module_loadingPulse__VomRm 1.5s ease-in-out infinite;background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.6),transparent);border-radius:2px;bottom:8px;content:\"\";height:4px;position:absolute;right:12px;width:20px}.Chat-module_sourceCitations__oDtBX,.Chat-module_toolCallChips__UWgC1{border-top:1px solid hsla(0,0%,100%,.2);display:flex;flex-direction:row;flex-wrap:wrap;gap:8px;margin-top:8px;padding-top:8px}.Chat-module_toolCallChip__koN18{align-items:center;background:hsla(0,0%,100%,.15);border:1px solid hsla(0,0%,100%,.2);border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.1);color:inherit;cursor:pointer;display:flex;font-family:OpenMojiColor,OpenMojiBlack,Arial,Helvetica,sans-serif;font-size:.8em;gap:8px;padding:4px 10px;transition:all .2s ease}.Chat-module_toolCallChip__koN18:hover{background:hsla(0,0%,100%,.3);box-shadow:0 2px 6px rgba(0,0,0,.15);transform:translateY(-1px)}.Chat-module_toolCallChipOngoing__wKcDY{background:rgba(14,165,233,.1);border-color:rgba(59,130,246,.8)}.Chat-module_toolCallChipStatus__I-nl9{align-items:center;display:inline-flex;margin-left:auto}.Chat-module_teamToolCall__5F45R,.Chat-module_transitiveToolCall__WcaaK{gap:8px;justify-content:flex-start}.Chat-module_teamAgentChip__mvgtY,.Chat-module_transitiveAgentChip__zNOJf{flex-shrink:0}.Chat-module_toolCallLabel__q7EFf{flex:1;font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_toolCallWithError__AtQqO{background:rgba(249,115,22,.12);border-color:rgba(249,115,22,.8)}.Chat-module_toolCallOrigin__-Io6Y{font-size:.85em;font-weight:500;opacity:.75;white-space:nowrap}.Chat-module_toolCallDetails__WUFlD{margin-bottom:24px}.Chat-module_toolCallDetails__WUFlD p{margin-bottom:8px}.Chat-module_toolCallData__UauCO{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:8px;font-size:13px;max-height:300px;overflow-x:auto;padding:12px;word-break:break-all}.Chat-module_toolCallChipSpinner__ZGTwl{animation:Chat-module_toolCallSpinner__LSiK6 .8s linear infinite;border:2px solid hsla(0,0%,100%,.3);border-radius:50%;border-top-color:#fff;height:14px;width:14px}@keyframes Chat-module_toolCallSpinner__LSiK6{to{transform:rotate(1turn)}}@keyframes Chat-module_loadingPulse__VomRm{0%,to{opacity:.3;transform:scaleX(.8)}50%{opacity:1;transform:scaleX(1.2)}}.Chat-module_typingIndicator__S-CT-{align-items:flex-end;animation:Chat-module_messageSlideIn__soTy2 .4s cubic-bezier(.25,.46,.45,.94);display:flex;margin-bottom:20px}.Chat-module_typingIndicator__S-CT- .Chat-module_avatar__gL6bm{flex-shrink:0;height:40px;margin:0 12px 4px;width:40px}.Chat-module_typingBubble__0Lb7B{backdrop-filter:blur(10px);border:1px solid hsla(0,0%,49%,.1);border-radius:20px;border-bottom-left-radius:6px;box-shadow:0 2px 8px rgba(0,0,0,.1);min-height:24px;padding:16px 20px}.Chat-module_typingBubble__0Lb7B,.Chat-module_typingDots__srOBB{align-items:center;display:flex;gap:4px}.Chat-module_typingDot__dnhKT{animation:Chat-module_typingBounce__1yp2v 1.4s ease-in-out infinite;background:linear-gradient(135deg,#6b7280,hsla(0,0%,49%,.6));border-radius:50%;box-shadow:0 2px 4px rgba(0,0,0,.1);height:8px;width:8px}.Chat-module_typingDot__dnhKT:first-child{animation-delay:-.32s}.Chat-module_typingDot__dnhKT:nth-child(2){animation-delay:-.16s}.Chat-module_typingDot__dnhKT:nth-child(3){animation-delay:0s}@keyframes Chat-module_typingBounce__1yp2v{0%,80%,to{opacity:.5;transform:scale(.8) translateY(0)}40%{opacity:1;transform:scale(1.2) translateY(-8px)}}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV{align-items:flex-end;flex-direction:row-reverse;justify-content:flex-start}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{border-bottom-right-radius:6px}.Chat-module_ratingStar__rRfqC{color:var(--star-inactive-color,#ccc);cursor:pointer;font-size:20px;transition:color .2s}.Chat-module_ratingStar__rRfqC.Chat-module_active__lbYL-{color:gold}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{aspect-ratio:1/1;flex-shrink:0;height:var(--chat-message-avatar-size);margin:0 0 4px;position:relative;width:var(--chat-message-avatar-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{word-wrap:break-word;--chat-heading-surface:hsla(0,0%,100%,.12);--chat-heading-accent:rgba(56,189,248,.85);--chat-heading-text-color:var(--message-text-color,#0f172a);--chat-heading-border-color:rgba(15,23,42,.18);--chat-heading-shadow-color:rgba(15,23,42,.65);backdrop-filter:blur(10px);background-color:var(--message-bg-color);border-radius:20px;box-shadow:0 2px 8px rgba(0,0,0,.1);color:var(--message-text-color);font-size:15px;line-height:1.5;margin-bottom:4px;max-width:100%;min-width:min(var(--chat-message-min-width),100%);padding:14px 18px;position:relative;text-align:left;transition:all .2s ease}@supports (color:color-mix(in srgb,#000 50%,#fff 50%)){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{--chat-heading-surface:color-mix(in srgb,var(--message-bg-color,#fff) 70%,rgba(15,23,42,.08) 30%);--chat-heading-accent:color-mix(in srgb,var(--message-text-color,#0f172a) 65%,rgba(59,130,246,.9) 35%);--chat-heading-border-color:color-mix(in srgb,var(--message-bg-color,#fff) 60%,rgba(15,23,42,.12) 40%);--chat-heading-shadow-color:color-mix(in srgb,rgba(15,23,42,.65) 80%,rgba(96,165,250,.45) 20%);--chat-heading-text-color:var(--message-text-color,#0f172a)}}.Chat-module_copyButtonContainer__Rij0U{float:right;pointer-events:none;right:10px;top:8px;visibility:hidden;z-index:2}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover .Chat-module_copyButtonContainer__Rij0U,.Chat-module_copyButtonContainer__Rij0U:focus-within{pointer-events:auto;visibility:visible}.Chat-module_messageControlGroup__gAo4k{align-items:center;display:flex;gap:6px;pointer-events:auto}.Chat-module_copyButton__DcxT5{align-items:center;background:hsla(0,0%,100%,.2);border:1px solid #ddd;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.07);cursor:pointer;display:flex;opacity:.7;padding:2px 5px;position:relative;transition:all .15s,box-shadow .15s,border .15s}.Chat-module_playButton__ZigYL{align-items:center;background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,100%,.6);border-radius:12px;color:#111;cursor:pointer;display:inline-flex;height:36px;justify-content:center;padding:0;position:relative;transition:all .15s ease;width:36px}.Chat-module_playButtonIcon__wPErq{height:16px;width:16px}.Chat-module_playButtonSpinner__Ad33i{animation:Chat-module_messagePlaySpinner__ldlvy .9s linear infinite;border:2px solid rgba(0,0,0,.3);border-radius:50%;border-top-color:#111;height:16px;width:16px}.Chat-module_playButton__ZigYL:hover:not(:disabled){background:hsla(0,0%,100%,.4);border-color:hsla(0,0%,100%,.8)}.Chat-module_playButton__ZigYL:disabled{cursor:not-allowed;opacity:.6}@keyframes Chat-module_messagePlaySpinner__ldlvy{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.Chat-module_copiedTooltip__LH81j{animation:Chat-module_copiedTooltipFadeIn__QekO1 .2s;background:#222;border-radius:8px;box-shadow:0 2px 12px rgba(0,0,0,.18);color:#fff;font-size:.98em;left:50%;margin-top:4px;max-width:220px;opacity:.97;overflow-wrap:break-word;padding:6px 16px;pointer-events:none;position:absolute;top:110%;transform:translateX(-50%);white-space:nowrap;word-break:break-word;z-index:100}.Chat-module_copiedTooltipLeft__j-S-5{left:0!important;transform:none!important}.Chat-module_copiedTooltipRight__R-2cE{left:auto!important;right:0!important;transform:none!important}@keyframes Chat-module_copiedTooltipFadeIn__QekO1{0%{opacity:0;transform:translateX(-50%) translateY(8px) scale(.97)}to{opacity:.97;transform:translateX(-50%) translateY(0) scale(1)}}.Chat-module_copyButton__DcxT5:focus,.Chat-module_copyButton__DcxT5:hover{border:1.5px solid #bbb;box-shadow:0 2px 8px rgba(0,132,255,.1);opacity:1}.Chat-module_copyButton__DcxT5 svg{display:block}.Chat-module_messageText__XgNyQ ul{list-style:disc;margin-left:20px}.Chat-module_messageText__XgNyQ ol{list-style:decimal;margin-left:20px}.Chat-module_messageText__XgNyQ blockquote,.Chat-module_messageText__XgNyQ img,.Chat-module_messageText__XgNyQ pre,.Chat-module_messageText__XgNyQ table{border-radius:8px;margin-bottom:10px;margin-top:10px}.Chat-module_messageText__XgNyQ pre{background:#000;color:#fff}.Chat-module_messageText__XgNyQ blockquote,.Chat-module_messageText__XgNyQ pre{border:none;box-shadow:none;display:block;font-size:inherit;line-height:inherit;padding:1em}.Chat-module_messageText__XgNyQ blockquote{background:#ffffffcc;color:#000}.Chat-module_messageText__XgNyQ code{background:#cccccc55;border:none;box-shadow:none;color:inherit;display:inline-block;font-size:inherit;line-height:inherit;margin:0;padding:0}.Chat-module_messageText__XgNyQ pre code{background-color:#000000cc;border-radius:8px}.Chat-module_messageText__XgNyQ .Chat-module_chat-code-block__k8IyS{background:#181c23;border-color:#23272f;box-shadow:0 2px 8px rgba(0,0,0,.12);color:#f8fafc;font-family:Fira Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:14px;line-height:1.6;overflow-x:auto}.Chat-module_messageText__XgNyQ .Chat-module_chat-code-block__k8IyS code{background:none!important;border:none!important;box-shadow:none!important;color:inherit!important;display:block;font-family:inherit!important;font-size:inherit!important;overflow-x:auto;padding:0!important;white-space:pre;word-break:break-word}.Chat-module_messageText__XgNyQ table{background:#f8fafc;border-collapse:separate;border-spacing:0;box-shadow:0 2px 8px rgba(0,0,0,.08);color:#17223b;font-size:14px;margin:16px 0;width:100%}.Chat-module_messageText__XgNyQ td,.Chat-module_messageText__XgNyQ th{background:none;border-bottom:1px solid #d1dbe8;color:#17223b;padding:10px 16px;text-align:left}.Chat-module_messageText__XgNyQ th{background:linear-gradient(90deg,#eaf3fa 80%,#d1e3f8);border-bottom:2px solid #b5c7de;color:#17223b;font-weight:700}.Chat-module_messageText__XgNyQ tr:last-child td{border-bottom:none}.Chat-module_messageText__XgNyQ tr:nth-child(2n) td{background:#eaf3fa}.Chat-module_messageText__XgNyQ tr:hover td{background:#cbe0f7;transition:background .2s}.Chat-module_messageText__XgNyQ table{border-radius:12px;overflow:hidden}.Chat-module_messageText__XgNyQ td:first-child,.Chat-module_messageText__XgNyQ th:first-child{border-top-left-radius:12px}.Chat-module_messageText__XgNyQ td:last-child,.Chat-module_messageText__XgNyQ th:last-child{border-top-right-radius:12px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ:hover{box-shadow:0 4px 16px rgba(0,0,0,.15);transform:translateY(-1px)}.Chat-module_attachments__m1Fts{border-top:1px solid hsla(0,0%,49%,.2);display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;padding-top:10px}.Chat-module_attachment__aE9hK{align-items:center;background:hsla(0,0%,100%,.2);border:1px solid hsla(0,0%,49%,.3);border-radius:12px;color:inherit;display:flex;font-size:13px;gap:6px;max-width:200px;padding:6px 12px;text-decoration:none;transition:all .2s ease}.Chat-module_attachment__aE9hK:hover{background:hsla(0,0%,100%,.3);border-color:hsla(0,0%,49%,.5);transform:translateY(-1px)}.Chat-module_attachmentIcon__BX3Cy{font-size:14px;opacity:.8}.Chat-module_attachmentName__aMx56{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_messageButtons__WaOob{border-top:1px solid hsla(0,0%,49%,.83);display:flex;flex-wrap:wrap;gap:8px;margin-top:12px;padding-top:12px}.Chat-module_messageButton__mRnn-{-webkit-tap-highlight-color:transparent;align-items:center;backdrop-filter:blur(10px);background:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.9);border-radius:16px;cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;padding:8px 14px;touch-action:manipulation;transition:all .2s ease;user-select:none}.Chat-module_messageButton__mRnn-:disabled{box-shadow:none;cursor:progress;opacity:.72;transform:none}.Chat-module_messageButton__mRnn-:hover{background:rgba(0,132,255,.1);border-color:rgba(0,132,255,.3);box-shadow:0 2px 8px rgba(0,132,255,.15);transform:translateY(-1px)}.Chat-module_messageButton__mRnn-:hover:disabled{background:hsla(0,0%,49%,.1);border-color:hsla(0,0%,49%,.9)}.Chat-module_messageButton__mRnn-:active{transform:scale(.98);transition:transform .1s ease}.Chat-module_actionMessageButton__avcbv{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95);color:#fff}.Chat-module_actionMessageButton__avcbv:hover{background:rgba(31,41,55,.98);border-color:rgba(17,24,39,.98);box-shadow:0 4px 14px rgba(15,23,42,.32)}.Chat-module_actionMessageButton__avcbv:hover:disabled{background:rgba(55,65,81,.92);border-color:rgba(31,41,55,.95)}.Chat-module_messageButton__mRnn- p{line-height:inherit;margin:0;padding:0}.Chat-module_messageButton__mRnn- strong{font-weight:600}.Chat-module_messageButton__mRnn- em{font-style:italic}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M{align-items:center;backdrop-filter:blur(10px);background:rgba(0,0,0,.8);border-radius:12px;bottom:-8px;display:flex;gap:2px;min-width:24px;opacity:0;padding:4px 6px;position:absolute;right:8px;transform:translateY(4px);transition:all .3s cubic-bezier(.25,.46,.45,.94);z-index:1}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ:hover .Chat-module_rating__soc3M{opacity:1;transform:translateY(0)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover{background:rgba(0,0,0,.9);box-shadow:0 4px 12px rgba(0,0,0,.3);padding:6px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M span{cursor:pointer;display:inline-block;font-size:16px;transition:transform .2s ease,color .2s ease}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_rating__soc3M:hover span{transform:scale(1.1)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{box-sizing:border-box;display:flex;flex-direction:column;gap:12px;grid-area:📝;max-width:100%;min-width:0;padding:24px 24px calc(24px + env(safe-area-inset-bottom));position:relative;width:100%;z-index:10}.Chat-module_Chat__j2eE5.Chat-module_fullPageVisual__zNAEy .Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{backdrop-filter:blur(25px);background:linear-gradient(180deg,hsla(0,0%,100%,0),hsla(0,0%,100%,.8))}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan.Chat-module_dragOver__bkS-g{background:linear-gradient(0deg,rgba(0,132,255,.1) 0,rgba(0,132,255,.05))}.Chat-module_filePreviewContainer__R70hm{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:8px}.Chat-module_filePreview__kq2aX{align-items:center;backdrop-filter:blur(10px);background:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);border-radius:8px;display:flex;font-size:12px;gap:8px;padding:8px 12px;transition:all .2s ease}.Chat-module_filePreview__kq2aX:hover{background:hsla(0,0%,49%,.15);border-color:hsla(0,0%,49%,.3)}.Chat-module_fileIcon__zoSKW{font-size:14px;opacity:.7}.Chat-module_fileInfo__wBLi0{display:flex;flex-direction:column;gap:2px;min-width:0}.Chat-module_fileName__bBujo{color:#000;font-weight:500;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_fileSize__ivliq{color:#6b7280;font-size:11px}.Chat-module_removeFileButton__0gakR{align-items:center;background:rgba(255,0,0,.1);border:none;border-radius:50%;color:#f44;cursor:pointer;display:flex;flex-shrink:0;height:20px;justify-content:center;transition:all .2s ease;width:20px}.Chat-module_removeFileButton__0gakR:hover{background:rgba(255,0,0,.2);transform:scale(1.1)}.Chat-module_inputContainer__bPt99{align-items:center;background:#fff;border:1px solid rgba(0,0,0,.08);border-radius:28px;box-shadow:0 4px 20px rgba(0,0,0,.06);display:flex;gap:8px;min-width:0;padding:8px 12px;transition:all .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_inputContainer__bPt99:focus-within{border-color:var(--brand-color);box-shadow:0 8px 32px rgba(0,132,255,.12);transform:translateY(-2px)}.Chat-module_inputContainer__bPt99 textarea::placeholder{color:#94a3b8;opacity:1}.Chat-module_attachmentButton__qLO47{align-items:center;background:transparent;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_attachmentButton__qLO47:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.Chat-module_attachmentButton__qLO47:disabled{cursor:not-allowed;opacity:.3}.Chat-module_voiceButton__d2zlP{align-items:center;background:transparent;border:none;border-radius:50%;color:#64748b;cursor:pointer;display:flex;flex-shrink:0;height:var(--chat-input-action-size);justify-content:center;margin:0;transition:all .2s ease;width:var(--chat-input-action-size)}.Chat-module_voiceButton__d2zlP:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.Chat-module_voiceButtonActive__Uoi3W{animation:Chat-module_voiceRecordingPulse__y2wJ5 1.5s infinite;background:rgba(239,68,68,.1)!important;color:#ef4444!important}.Chat-module_speechStatusBubble__qBBWI{align-items:center;animation:Chat-module_speechStatusBubbleIn__PBm-c .2s ease-out;appearance:none;background:hsla(0,0%,100%,.95);border:1px solid rgba(15,23,42,.15);border-radius:999px;bottom:86px;box-shadow:0 12px 28px rgba(15,23,42,.18);color:#0f172a;cursor:pointer;display:inline-flex;font-size:12px;font-weight:600;gap:8px;letter-spacing:.01em;max-width:min(320px,calc(100% - 48px));padding:8px 12px;position:absolute;right:24px;text-align:left;z-index:25}.Chat-module_speechStatusBubbleDot__APu53{animation:Chat-module_speechStatusBubbleDotPulse__Guqsu 1.2s ease-in-out infinite;background:#64748b;border-radius:50%;flex-shrink:0;height:8px;width:8px}.Chat-module_speechStatusBubbleRecording__faJs2{background:hsla(0,86%,97%,.97);border-color:rgba(239,68,68,.35);color:#991b1b}.Chat-module_speechStatusBubbleRecording__faJs2 .Chat-module_speechStatusBubbleDot__APu53{background:#ef4444}.Chat-module_speechStatusBubbleProcessing__Crbuu{background:rgba(236,254,255,.97);border-color:rgba(14,116,144,.35);color:#155e75}.Chat-module_speechStatusBubbleProcessing__Crbuu .Chat-module_speechStatusBubbleDot__APu53{background:#0ea5e9}.Chat-module_speechStatusBubbleError__Nd-Aj{background:hsla(0,86%,97%,.98);border-color:rgba(220,38,38,.35);color:#991b1b}.Chat-module_speechStatusBubbleError__Nd-Aj .Chat-module_speechStatusBubbleDot__APu53{animation:none;background:#dc2626}.Chat-module_dictationPanel__kzbyG{background:hsla(0,0%,100%,.9);border:1px solid rgba(148,163,184,.35);border-radius:14px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.2);color:#0f172a;display:flex;flex-direction:column;gap:10px;padding:10px 12px}.Chat-module_dictationPanelHeader__rHXTh{align-items:center;display:flex;gap:8px;justify-content:space-between}.Chat-module_dictationPanelTitle__sO9XH{color:#475569;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.Chat-module_dictationPanelToggle__z3HMx{background:#f8fafc;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#334155;cursor:pointer;font-size:11px;font-weight:600;padding:4px 8px}.Chat-module_dictationInterimTranscript__eAbMI{background:rgba(239,246,255,.9);border:1px dashed rgba(59,130,246,.45);border-radius:10px;color:#0c4a6e;cursor:pointer;font-size:13px;line-height:1.45;padding:8px 10px;text-align:left}.Chat-module_dictationErrorPanel__mjbM7{background:hsla(0,86%,97%,.95);border:1px solid rgba(220,38,38,.25);border-radius:10px;color:#991b1b;display:flex;flex-direction:column;font-size:12px;font-weight:600;gap:8px;padding:8px 10px}.Chat-module_dictationErrorActions__K3ykb{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationCorrectionActions__ssE7i button,.Chat-module_dictationErrorActions__K3ykb button{background:#f8fafc;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:6px 10px}.Chat-module_dictationCorrectionPanel__5nh9M{display:flex;flex-direction:column;gap:8px}.Chat-module_dictationCorrectionLabel__U4uzT{color:#334155;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.Chat-module_dictationCorrectionTextarea__5ovj9{background:#fff;border:1px solid rgba(148,163,184,.35);border-radius:10px;color:#0f172a;font-size:13px;line-height:1.5;min-height:68px;padding:8px 10px;resize:vertical;width:100%}.Chat-module_dictationCorrectionActions__ssE7i{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_dictationSettingsPanel__0gI-V{display:grid;gap:8px 12px;grid-template-columns:repeat(2,minmax(0,1fr))}.Chat-module_dictationSettingsPanel__0gI-V label{align-items:center;color:#334155;display:inline-flex;font-size:12px;gap:6px}.Chat-module_dictationFallbackNote__919pE{color:#475569;font-size:11px;line-height:1.45;margin:0}@keyframes Chat-module_speechStatusBubbleIn__PBm-c{0%{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes Chat-module_speechStatusBubbleDotPulse__Guqsu{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.82)}}@keyframes Chat-module_voiceRecordingPulse__y2wJ5{0%{box-shadow:0 0 0 0 rgba(255,0,0,.4)}70%{box-shadow:0 0 0 10px rgba(255,0,0,0)}to{box-shadow:0 0 0 0 rgba(255,0,0,0)}}.Chat-module_uploadProgress__jBTKe{align-items:center;background:rgba(0,132,255,.1);border:1px solid rgba(0,132,255,.2);border-radius:8px;color:#0084ff;display:flex;font-size:13px;gap:12px;padding:8px 12px}.Chat-module_uploadProgressBar__Gutnt{background:rgba(0,132,255,.2);border-radius:2px;flex:1;height:4px;overflow:hidden}.Chat-module_uploadProgressFill__EgubT{animation:Chat-module_uploadProgress__jBTKe 1.5s ease-in-out infinite;background:linear-gradient(90deg,#0084ff,rgba(0,132,255,.8));border-radius:2px;height:100%}@keyframes Chat-module_uploadProgress__jBTKe{0%{transform:translateX(-100%)}50%{transform:translateX(0)}to{transform:translateX(100%)}}.Chat-module_dragOverlay__SEGoS{align-items:center;backdrop-filter:blur(10px);background:rgba(0,132,255,.1);border:2px dashed rgba(0,132,255,.5);border-radius:12px;bottom:0;display:flex;justify-content:center;left:0;pointer-events:none;position:absolute;right:0;top:0;z-index:20}.Chat-module_dragOverlayContent__gb9kF{align-items:center;color:#0084ff;display:flex;flex-direction:column;font-weight:600;gap:12px;text-align:center}.Chat-module_dragOverlayContent__gb9kF svg{opacity:.7}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{-webkit-tap-highlight-color:transparent;appearance:none;-webkit-appearance:none;background:transparent;border:none;box-sizing:border-box;color:#0f172a;flex:1;font-size:var(--chat-input-font-size);height:var(--chat-input-textarea-height);line-height:var(--chat-input-line-height);margin:0;max-height:var(--chat-input-textarea-height);min-height:var(--chat-input-textarea-height);min-width:0;outline:none;overflow-y:auto;padding:var(--chat-input-padding-y) var(--chat-input-padding-x);resize:none;touch-action:manipulation}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea:disabled{cursor:not-allowed;opacity:.6;transform:none}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea::placeholder{color:inherit;opacity:.7}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]{-webkit-tap-highlight-color:transparent;align-items:center;aspect-ratio:1/1;border:none;border-radius:50%!important;box-shadow:0 4px 12px rgba(0,132,255,.25);color:#fff;display:flex;height:var(--chat-input-action-size);justify-content:center;margin:0!important;min-height:unset!important;min-width:unset!important;overflow:visible;padding:0!important;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:var(--chat-input-action-size)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:hover{box-shadow:0 6px 16px rgba(0,132,255,.35);transform:scale(1.05)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action]:active{transform:scale(.95)}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button[data-button-type=call-to-action] svg{height:20px;width:20px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button img{height:100%;object-fit:contain;width:50%}.Chat-module_scrollToBottomContainer__5rXpK{align-items:flex-start;display:flex;grid-area:📝;height:100%;justify-content:center;pointer-events:none;width:100%;z-index:20}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottomWrapper__PCIu1{align-items:center;animation:Chat-module_scrollButtonSlideIn__XnImg .3s ease-out;display:inline-flex;justify-content:center;pointer-events:all;position:relative;transform:translate(-50%,-150%);transition:transform .3s cubic-bezier(.25,.46,.45,.94)}.Chat-module_scrollToBottomContainer__5rXpK .Chat-module_scrollToBottom__nzxdZ{-webkit-tap-highlight-color:transparent;align-items:center;background:rgba(0,0,0,.5);border:none;border-radius:50%;box-shadow:0 4px 16px rgba(0,0,0,.3);color:#fff;cursor:pointer;display:flex;font-weight:700;height:48px;justify-content:center;outline:none;touch-action:manipulation;transition:all .3s cubic-bezier(.25,.46,.45,.94);user-select:none;width:48px}@keyframes Chat-module_scrollButtonSlideIn__XnImg{0%{opacity:0;transform:translate(-50%,20px) scale(.8)}to{opacity:.9;transform:translate(-50%) scale(1)}}.Chat-module_scrollToBottomBadge__N6T6-{align-items:center;background:#2563eb;border-radius:999px;box-shadow:0 2px 10px rgba(37,99,235,.4);color:#fff;display:inline-flex;font-size:10px;font-weight:600;justify-content:center;letter-spacing:.04em;min-width:32px;padding:2px 6px;pointer-events:none;position:absolute;right:-8px;text-transform:uppercase;top:-8px;white-space:nowrap}.Chat-module_ratingModal__XVKYm{align-items:center;animation:Chat-module_modalFadeIn__RPc3w .3s ease-out;backdrop-filter:blur(8px);background-color:rgba(0,0,0,.6);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes Chat-module_modalFadeIn__RPc3w{0%{backdrop-filter:blur(0);opacity:0}to{backdrop-filter:blur(8px);opacity:1}}.Chat-module_ratingModalContent__CCdq7{animation:Chat-module_modalSlideIn__XXtgN .3s cubic-bezier(.25,.46,.45,.94);backdrop-filter:blur(20px);background:#fff;border:1px solid hsla(0,0%,49%,.1);border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,.3);color:#0f1724;font-family:Arial,Helvetica,sans-serif,OpenMojiColor,OpenMojiBlack;max-width:480px;padding:32px;width:90%}@keyframes Chat-module_modalSlideIn__XXtgN{0%{opacity:0;transform:translateY(20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.Chat-module_ratingModalContent__CCdq7 h3{color:#000;font-size:20px;font-weight:600;margin:0 0 24px;text-align:center}.Chat-module_stars__PCzNO{display:flex;gap:8px;justify-content:center;margin-bottom:24px}.Chat-module_stars__PCzNO span{border-radius:8px;cursor:pointer;font-size:28px;padding:4px;transition:all .2s ease}.Chat-module_stars__PCzNO span:hover{background:rgba(255,215,0,.1);transform:scale(1.2)}.Chat-module_ratingModalStar__XkbHr{cursor:pointer;font-size:24px;transition:color .2s}.Chat-module_toolCallModal__uNaIK{max-height:calc(100vh - 48px);max-width:800px;overflow-x:hidden;overflow-y:auto;padding:0;position:relative}.Chat-module_toolCallHeader__ZaTZF{align-items:center;background:linear-gradient(135deg,#eef2ff,#f5f3ff 40%,#fefcc9);border-bottom:1px solid rgba(15,23,42,.08);display:flex;gap:16px;padding:24px 32px 16px}.Chat-module_toolCallIcon__UgRKj{font-size:32px}.Chat-module_toolCallHeaderMeta__iAL-U{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallModalLabel__4dBP4{color:#475467;font-size:11px;letter-spacing:.35em;margin:0;text-transform:uppercase}.Chat-module_toolCallTitle__jhL0A{color:#0f172a;font-size:24px;font-weight:600;margin:0}.Chat-module_toolCallSubtitle__a2GIO{color:#475467;font-size:13px;margin:0}.Chat-module_toolCallGrid__Nfr7N{background:#fefefe;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));padding:24px 32px 16px}.Chat-module_toolCallPanel__kQZE9{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 18px 40px rgba(15,23,42,.08);padding:18px}.Chat-module_toolCallPanelTitle__-7OtJ{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.25em;margin:0 0 12px;text-transform:uppercase}.Chat-module_toolCallList__5co3s{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.Chat-module_toolCallItem__k7W5Z{display:flex;flex-direction:column;gap:4px}.Chat-module_toolCallItemLabel__d3C1E{color:#94a3b8;font-size:11px;letter-spacing:.25em;text-transform:uppercase}.Chat-module_toolCallItemValue__cStQ0{color:#0f172a;font-size:14px;line-height:1.4;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallSummary__wGZwg{color:#0f172a;font-size:15px;line-height:1.6;margin:0}.Chat-module_toolCallSummaryMeta__RXiSv{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_toolCallSummaryMetaBadge__JBi-I{background:rgba(79,70,229,.15);border-radius:999px;color:#312e81;font-size:12px;font-weight:600;padding:5px 12px}.Chat-module_toolCallEmpty__bUz5v{color:#94a3b8;font-size:14px;margin:0}.Chat-module_toolCallPendingCard__L3m7T{background:linear-gradient(180deg,#f8fbff,#f8fafc);border:1px dashed #cbd5e1;border-radius:14px;display:flex;flex-direction:column;gap:10px;padding:14px}.Chat-module_toolCallPendingHeader__U3htF{align-items:center;display:flex;gap:10px;justify-content:space-between}.Chat-module_toolCallPendingTitle__4fwLL{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_toolCallPendingBadge__bgY3c{background:rgba(14,165,233,.12);border-radius:999px;color:#0369a1;font-size:11px;font-weight:700;letter-spacing:.05em;padding:4px 10px;text-transform:uppercase}.Chat-module_toolCallPendingMessage__grnao{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_toolCallPendingSkeleton__Td5Cu{display:flex;flex-direction:column;gap:8px}.Chat-module_toolCallPendingSkeletonLine__Vldel{animation:Chat-module_toolCallPendingSkeletonPulse__aKDNI 1.4s ease-in-out infinite;background:linear-gradient(90deg,rgba(226,232,240,.7),#f1f5f9,rgba(226,232,240,.7));background-size:200% 100%;border-radius:999px;height:10px}.Chat-module_toolCallPendingSkeletonShort__FnR-X{width:68%}@keyframes Chat-module_toolCallPendingSkeletonPulse__aKDNI{0%{background-position:100% 50%}to{background-position:-100% 50%}}.Chat-module_toolCallDetailsCard__UJthw{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;margin-top:16px;overflow:hidden}.Chat-module_toolCallDetailsCardRow__-VhfA{border-top:1px solid rgba(226,232,240,.9);color:#334155;display:flex;font-size:13px;gap:12px;justify-content:space-between;padding:12px 14px}.Chat-module_toolCallDetailsCardRow__-VhfA:first-child{border-top:none}.Chat-module_toolCallDetailsCardRow__-VhfA strong{color:#0f172a}.Chat-module_toolCallIssues__evhYM{display:flex;flex-wrap:wrap;gap:8px;padding:0 32px 16px}.Chat-module_toolCallIssueBadge__Qbwdp{align-items:center;border-radius:999px;display:inline-flex;font-size:12px;font-weight:600;gap:4px;padding:6px 10px}.Chat-module_toolCallIssueError__LImeS{background:rgba(239,68,68,.12);color:#b91c1c}.Chat-module_toolCallIssueWarning__chQDf{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_toolCallModeFooter__XaRqI{align-items:center;display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;padding:0 32px 24px}.Chat-module_toolCallModeButton__zlcca{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:13px;font-weight:600;padding:8px 16px;transition:border-color .2s ease,background-color .2s ease,transform .2s ease}.Chat-module_toolCallModeButton__zlcca:hover{background:#f8fafc;border-color:#94a3b8;transform:translateY(-1px)}.Chat-module_toolCallClockPanel__h4xZd{align-items:center;display:flex;flex-direction:column;gap:20px;padding:20px}.Chat-module_toolCallClockLabels__KJGxe{text-align:center}.Chat-module_toolCallClockPrimary__StLQ8{color:#0f172a;font-size:2em;font-weight:700}.Chat-module_toolCallClockSecondary__O4WaT{color:#475467}.Chat-module_toolCallClockMeta__aObb7{color:#667085;font-size:.9em;margin-top:5px}.Chat-module_timeoutToolSummary__kPPvu{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:16px}.Chat-module_timeoutToolPrimarySentence__pQfLn{color:#0f172a;font-size:15px;font-weight:600;line-height:1.5;margin:0}.Chat-module_timeoutToolSecondarySentence__iH5Uc{color:#475467;font-size:13px;line-height:1.5;margin:6px 0 0}.Chat-module_timeoutToolActionRow__occir{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.Chat-module_timeoutToolActionButton__8yz0R{background:#fff;border:1px solid #cbd5e1;border-radius:999px;color:#0f172a;cursor:pointer;font-size:12px;font-weight:600;padding:8px 14px;transition:border-color .2s ease,background-color .2s ease}.Chat-module_timeoutToolActionButton__8yz0R:hover{background:#f1f5f9;border-color:#94a3b8}.Chat-module_timeoutToolActionButton__8yz0R:disabled{cursor:default;opacity:.45}.Chat-module_memoryModalHeader__SpZJT{align-items:flex-start;background:linear-gradient(180deg,#fdfdfd,#f6f9ff);border-bottom:1px solid #e2e8f0;display:flex;gap:16px;padding:28px 32px 16px}.Chat-module_memoryModalIcon__eYbli{align-items:center;background:linear-gradient(135deg,#6366f1,#a855f7);border-radius:18px;box-shadow:0 18px 28px rgba(15,23,42,.18);color:#fff;display:inline-flex;font-size:24px;height:52px;justify-content:center;width:52px}.Chat-module_memoryModalHeaderText__S6MZG{flex:1}.Chat-module_memoryModalTitle__zzbaQ{color:#0f172a;font-size:22px;font-weight:600;margin:0}.Chat-module_memoryModalSubtitle__PStci{color:#475467;font-size:14px;margin:4px 0 0}.Chat-module_memoryModalStatus__bmrfc{align-items:center;border-radius:999px;display:inline-flex;font-size:13px;font-weight:600;gap:6px;margin-left:auto;padding:6px 14px;white-space:nowrap}.Chat-module_memoryStatusDot__c0oVs{background:currentColor;border-radius:50%;display:inline-block;height:8px;width:8px}.Chat-module_memoryModalContent__8E7oj{background:#fff;display:flex;flex-direction:column;gap:16px;padding:24px 32px 32px}.Chat-module_memoryMessage__q0pNK{color:#0f172a;font-size:15px;font-weight:500;margin:0}.Chat-module_memoryMetaRow__Hc-Xp{align-items:center;color:#475467;display:flex;font-size:13px;justify-content:space-between}.Chat-module_memoryMetaLabel__LFx11{font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_memoryMetaValue__4bILO{color:#0f172a;font-weight:600}.Chat-module_memoryRetrieveSection__VbuS4,.Chat-module_memoryStoreSection__qQJPN{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryCard__-kIDN{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;box-shadow:0 10px 18px rgba(15,23,42,.08);padding:18px}.Chat-module_memoryCardContent__l9S4G{color:#0f172a;font-size:14px;line-height:1.6;overflow-wrap:break-word;white-space:pre-wrap}.Chat-module_memoryCardMeta__K66KE{align-items:center;color:#94a3b8;display:flex;font-size:12px;justify-content:space-between;margin-top:12px}.Chat-module_memoryScopeBadge__T2ACc{background:rgba(124,58,237,.12);border-radius:999px;color:#0f172a;font-size:11px;font-weight:700;padding:3px 10px}.Chat-module_memoryList__pUOg2{display:flex;flex-direction:column;gap:12px}.Chat-module_memoryEmptyState__fPrXA{background:#fef3c7;border:1px solid #fde68a;border-radius:12px;color:#92400e;font-weight:500;padding:16px}.Chat-module_memoryListFooter__Y0Q2Z{color:#475467;font-size:13px;text-align:center}.Chat-module_memoryStatusSuccess__4bhfo{background:rgba(16,185,129,.16);color:#047857}.Chat-module_memoryStatusWarning__AR6yh{background:rgba(234,179,8,.16);color:#a16207}.Chat-module_memoryStatusError__ZNAT6{background:rgba(239,68,68,.15);color:#b91c1c}.Chat-module_memoryStatusNeutral__Fa-4M{background:rgba(96,165,250,.15);color:#1d4ed8}.Chat-module_searchModalHeader__Y8V-w{align-items:center;background:#fdfdfd;border-bottom:1px solid #eee;display:flex;gap:16px;padding:24px 72px 24px 32px}.Chat-module_selfLearningModalHeader__PDIt1{align-items:center;background:linear-gradient(135deg,#f8fafc,#fef9c3 45%,#ecfccb);border-bottom:1px solid #e2e8f0;gap:18px}.Chat-module_selfLearningAvatarGroup__jgy2k{align-items:center;display:flex;gap:10px}.Chat-module_selfLearningAvatar__NHXKm{align-items:center;background:#e2e8f0;background-position:50%;background-size:cover;border-radius:50%;box-shadow:0 10px 20px rgba(15,23,42,.18);color:#0f172a;display:inline-flex;font-size:18px;font-weight:600;height:48px;justify-content:center;letter-spacing:.02em;width:48px}.Chat-module_selfLearningAvatarInitial__cuw19{line-height:1}.Chat-module_selfLearningTeacher__fGhX8{background:linear-gradient(135deg,#fde68a,#86efac)}.Chat-module_selfLearningHeaderText__LTwHL{display:flex;flex-direction:column;gap:6px;text-align:left}.Chat-module_selfLearningTitle__G0SAk{color:#0f172a;font-size:20px;font-weight:600;margin:0}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:center;color:#64748b;display:flex;flex-wrap:wrap;font-size:13px;gap:10px;margin-bottom:12px}.Chat-module_selfLearningMeta__58Pet{color:#64748b;font-size:13px}.Chat-module_selfLearningMetaChip__0go88{background:#e2e8f0;border-radius:999px;color:#0f172a;font-size:12px;font-weight:600;padding:4px 10px}.Chat-module_selfLearningCommitments__7ECnr{background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:16px}.Chat-module_selfLearningCommitmentsLabel__OkDO1{color:#94a3b8;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_selfLearningBookEditor__CZy5T{border-radius:12px;margin-top:12px;overflow:hidden}.Chat-module_selfLearningEmpty__vCKHL{color:#475569;font-size:13px;margin-top:12px}.Chat-module_modalCloseButton__AAfWS{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 16px rgba(15,23,42,.08);color:#475569;cursor:pointer;display:inline-flex;height:36px;justify-content:center;position:absolute;right:16px;top:16px;transition:background .2s ease,color .2s ease,box-shadow .2s ease,transform .2s ease;width:36px;z-index:1}.Chat-module_modalCloseButton__AAfWS:hover{background:#f8fafc;box-shadow:0 10px 24px rgba(15,23,42,.12);color:#0f172a;transform:translateY(-1px)}.Chat-module_modalCloseButton__AAfWS:focus-visible{outline:2px solid #94a3b8;outline-offset:2px}.Chat-module_teamModalHeader__SB5NL{flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderParticipants__KS7aV{align-items:center;display:flex;flex-wrap:wrap;gap:12px}.Chat-module_teamHeaderProfile__xRlcS{align-items:center;color:inherit;display:inline-flex;gap:12px;text-decoration:none}.Chat-module_teamHeaderProfileLink__fYTfT:hover{color:#0f172a}.Chat-module_teamHeaderAvatar__vXcTp{background-position:50%;background-repeat:no-repeat;background-size:cover;border:1px solid #e2e8f0;border-radius:999px;box-shadow:0 6px 14px rgba(15,23,42,.08);height:40px;width:40px}.Chat-module_teamHeaderName__ygJR9{color:#0f172a;font-size:18px;font-weight:600}.Chat-module_teamHeaderDivider__cnRMd{color:#94a3b8;font-size:14px;font-weight:600}.Chat-module_searchModalIcon__AR5KY{align-items:center;color:#475569;display:inline-flex;font-size:24px;justify-content:center}.Chat-module_searchModalQuery__5x-Ra{color:#202124!important;font-size:22px!important;font-weight:500!important;margin:0!important;text-align:left!important}.Chat-module_searchModalContent__mWLIE{background:#fff;max-height:60vh;overflow-y:auto;padding:24px 32px}.Chat-module_teamChatContainer__xdLtU{background:#f8fafc;border:1px solid #e5e7eb;border-radius:16px;margin-bottom:20px;overflow:hidden}.Chat-module_teamToolCallSection__FH9l7{display:flex;flex-direction:column;gap:16px}.Chat-module_teamToolCallGroup__PO6rl{display:flex;flex-direction:column;gap:8px}.Chat-module_teamToolCallHeading__G-JSj{color:#64748b;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.Chat-module_teamToolCallChips__hRWqh{display:flex;flex-wrap:wrap;gap:8px}.Chat-module_teamToolCallDetails__ZaTtt{background:#f8fafc;border:1px solid rgba(148,163,184,.4);border-radius:12px;padding:16px}.Chat-module_teamToolCallDetailsHeader__FPIgI{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:12px}.Chat-module_teamToolCallDetailsTitle__50SeL{align-items:center;color:#0f172a;display:flex;font-size:14px;font-weight:600;gap:6px}.Chat-module_teamToolCallDetailsClear__8yvu7{background:rgba(148,163,184,.2);border:1px solid rgba(148,163,184,.4);border-radius:999px;color:#475569;cursor:pointer;font-size:12px;padding:4px 10px;transition:all .2s ease}.Chat-module_teamToolCallDetailsClear__8yvu7:hover{background:rgba(148,163,184,.35)}.Chat-module_searchResultsList__xVDUZ{display:flex;flex-direction:column;gap:28px;text-align:left}.Chat-module_searchResultsRaw__i3GkD{max-width:650px;text-align:left}.Chat-module_searchResultItem__bTzq5{max-width:650px}.Chat-module_searchResultUrl__SbrH4{color:#202124;font-size:14px;margin-bottom:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Chat-module_searchResultUrl__SbrH4 a{color:#202124;text-decoration:none}.Chat-module_searchResultTitle__XS7zN{font-size:20px!important;font-weight:400!important;line-height:1.3;margin:0 0 4px!important}.Chat-module_searchResultTitle__XS7zN a{color:#1a0dab;text-decoration:none}.Chat-module_searchResultTitle__XS7zN a:hover{text-decoration:underline}.Chat-module_searchResultSnippet__Wsun2{color:#4d5156;font-size:14px;line-height:1.58;margin:0}.Chat-module_noResults__AAv6s{color:#70757a;font-style:italic;padding:40px;text-align:center}.Chat-module_citationDetails__2v2e1,.Chat-module_toolCallDetails__WUFlD{margin:20px 0;text-align:left}.Chat-module_citationPreview__rGhCR{background:#f8f8f8;border:1px solid #ddd;border-radius:8px;margin-top:16px;overflow:hidden}.Chat-module_citationIframe__ngzFY{border:none;display:block;height:60vh;min-height:400px;width:100%}.Chat-module_citationMetadata__DPaCF{background:#f8f8f8;border:1px solid #eee;border-radius:8px;margin-bottom:20px;padding:16px}.Chat-module_citationMetadata__DPaCF p{font-size:.9em;margin:8px 0}.Chat-module_citationMetadata__DPaCF strong{color:#333}.Chat-module_citationMetadata__DPaCF a{color:#007bff;text-decoration:none;word-break:break-all}.Chat-module_citationMetadata__DPaCF a:hover{text-decoration:underline}.Chat-module_citationExcerpt__VU4BS{background:#fff;border:1px solid #ddd;border-radius:8px;max-height:400px;overflow-y:auto;padding:16px}.Chat-module_citationExcerpt__VU4BS h4{color:#333;font-size:1em;margin:0 0 12px}.Chat-module_citationHint__5AkLx{font-size:.85em;margin-top:8px;opacity:.7}.Chat-module_toolCallDataContainer__rdEzC{background:#f8f8f8;border:1px solid #eee;border-radius:6px;margin-bottom:15px;max-height:300px;overflow-y:auto;padding:12px}.Chat-module_toolCallPayloadContainer__v2yVn{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden}.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .monaco-scrollable-element,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor .overflow-guard,.Chat-module_toolCallPayloadEditor__Hklyf .monaco-editor-background{background:#f8fafc!important}.Chat-module_toolCallData__UauCO{font-size:.85em;margin:0;white-space:pre-wrap;word-break:break-word}.Chat-module_toolCallModal__uNaIK .Chat-module_toolCallData__UauCO{background:#f8fafc;color:#0f172a}.Chat-module_ratingInput__z8Pv-{background:hsla(0,0%,49%,.05);border:2px solid hsla(0,0%,49%,.1);border-radius:12px;color:#0b1220;font-size:14px;line-height:1.5;margin-bottom:18px;min-height:100px;padding:16px;resize:vertical;transition:all .2s ease;width:100%}.Chat-module_ratingInput__z8Pv-:focus{background:hsla(0,0%,49%,.08);border-color:#0084ff;box-shadow:0 0 0 4px rgba(0,132,255,.1);outline:none}.Chat-module_ratingInput__z8Pv-[readonly]{background:hsla(0,0%,49%,.01);border:1px solid hsla(0,0%,49%,.5)}.Chat-module_ratingActions__nXcss{display:flex;gap:12px;justify-content:flex-end}.Chat-module_ratingActions__nXcss button{border:none;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;min-width:80px;padding:12px 24px;transition:all .2s ease}.Chat-module_ratingActions__nXcss button:first-child{background-color:hsla(0,0%,49%,.1);border:1px solid hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:first-child:hover:not(:disabled){background-color:hsla(0,0%,49%,.2);color:#0b1220}.Chat-module_ratingActions__nXcss button:last-child{background:linear-gradient(135deg,#0084ff,#06c);color:#fff}.Chat-module_ratingActions__nXcss button:last-child:hover:not(:disabled){background:linear-gradient(135deg,#0071d1,#0052a3);box-shadow:0 4px 12px rgba(0,132,255,.3);transform:translateY(-1px)}.Chat-module_ratingActions__nXcss button:last-child:disabled{cursor:not-allowed;opacity:.5}.Chat-module_downloadButton__8--bk{align-items:center;background:linear-gradient(135deg,#0084ff,#06c);border:none;border-radius:8px;box-shadow:0 2px 8px rgba(0,132,255,.2);color:#fff;cursor:pointer;display:inline-flex;font-size:14px;font-weight:600;gap:8px;justify-content:center;padding:12px 24px;transition:all .2s ease}.Chat-module_downloadButton__8--bk:hover{background:linear-gradient(135deg,#09f,#07d);box-shadow:0 4px 16px rgba(0,132,255,.3);transform:translateY(-2px)}.Chat-module_downloadButton__8--bk:active{box-shadow:0 2px 8px rgba(0,132,255,.2);transform:translateY(0)}.Chat-module_downloadButton__8--bk svg{flex-shrink:0}.Chat-module_downloadButton__8--bk span{font-weight:600}.Chat-module_chatButton__d9VgA{-webkit-tap-highlight-color:transparent!important;align-items:center!important;backdrop-filter:blur(20px)!important;background:linear-gradient(135deg,#0084ff,#06c)!important;border:none!important;border-radius:20px!important;box-shadow:0 4px 16px rgba(0,132,255,.3)!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-size:13px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;line-height:1.3!important;margin:0!important;min-height:40px!important;min-width:110px!important;overflow:hidden!important;padding:12px 16px!important;position:relative!important;touch-action:manipulation!important;transition:all .3s cubic-bezier(.25,.46,.45,.94)!important;user-select:none!important}.Chat-module_chatButton__d9VgA:before{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);content:\"\";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.Chat-module_chatButton__d9VgA:hover:before{left:100%}.Chat-module_chatButton__d9VgA:hover:not(:disabled){background:linear-gradient(135deg,#09f,#07d);box-shadow:0 8px 24px rgba(0,132,255,.4);transform:translateY(-2px) scale(1.02)}.Chat-module_chatButton__d9VgA:active{box-shadow:0 4px 16px rgba(0,132,255,.3);transform:scale(.98) translateY(-1px);transition:transform .1s ease}.Chat-module_chatButton__d9VgA:focus{box-shadow:0 4px 16px rgba(0,132,255,.3),0 0 0 3px rgba(0,132,255,.3);outline:none}.Chat-module_chatButton__d9VgA svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));flex-shrink:0;height:16px;opacity:1;transition:all .3s cubic-bezier(.25,.46,.45,.94);width:16px}.Chat-module_chatButton__d9VgA:hover svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));transform:rotate(-90deg) scale(1.1)}.Chat-module_chatButtonText__RkGB-{font-weight:600;opacity:1;text-shadow:0 1px 2px rgba(0,0,0,.1);transition:all .2s ease;white-space:nowrap}.Chat-module_chatButton__d9VgA:hover .Chat-module_chatButtonText__RkGB-{transform:translateX(1px)}.Chat-module_useTemplateButton__xcJNR{-webkit-tap-highlight-color:transparent!important;align-items:center!important;backdrop-filter:blur(20px)!important;background:linear-gradient(135deg,#0084ff,#06c)!important;border:none!important;border-radius:20px!important;box-shadow:0 4px 16px rgba(0,132,255,.3)!important;color:#fff!important;cursor:pointer!important;display:inline-flex!important;font-size:13px!important;font-weight:600!important;gap:8px!important;justify-content:center!important;line-height:1.3!important;margin:0!important;min-height:40px!important;min-width:110px!important;overflow:hidden!important;padding:12px 16px!important;position:relative!important;touch-action:manipulation!important;transition:all .3s cubic-bezier(.25,.46,.45,.94)!important;user-select:none!important}.Chat-module_useTemplateButton__xcJNR:before{background:linear-gradient(90deg,transparent,hsla(0,0%,100%,.2),transparent);content:\"\";height:100%;left:-100%;position:absolute;top:0;transition:left .5s ease;width:100%}.Chat-module_useTemplateButton__xcJNR:hover:before{left:100%}.Chat-module_useTemplateButton__xcJNR:hover:not(:disabled){background:linear-gradient(135deg,#09f,#07d);box-shadow:0 8px 24px rgba(0,132,255,.4);transform:translateY(-2px) scale(1.02)}.Chat-module_useTemplateButton__xcJNR:active{box-shadow:0 4px 16px rgba(0,132,255,.3);transform:scale(.98) translateY(-1px);transition:transform .1s ease}.Chat-module_useTemplateButton__xcJNR:focus{box-shadow:0 4px 16px rgba(0,132,255,.3),0 0 0 3px rgba(0,132,255,.3);outline:none}.Chat-module_useTemplateButton__xcJNR svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.2));flex-shrink:0;height:16px;opacity:1;transition:all .3s cubic-bezier(.25,.46,.45,.94);width:16px}.Chat-module_useTemplateButton__xcJNR:hover svg{filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));transform:scale(1.1)}.Chat-module_useTemplateButton__xcJNR:hover .Chat-module_chatButtonText__RkGB-{transform:translateX(1px)}.Chat-module_saveButtonContainer__lSNUJ{display:inline-block;position:relative}.Chat-module_saveMenu__-ph8y{background:#fff;border:1px solid #ddd;box-shadow:0 2px 8px rgba(0,0,0,.08);left:0;min-width:120px;position:absolute;top:100%;z-index:10}.Chat-module_saveMenuItem__ISApL{background:none;border:none;color:#111;cursor:pointer;display:block;padding:8px 16px;text-align:left;width:100%}.Chat-module_saveMenuItem__ISApL:hover{background-color:#f0f0f0}.Chat-module_saveMenuDivider__3ktTM{background-color:#ddd;height:1px;margin:4px 0}.Chat-module_chatFeedbackPanel__gfOzk{background:#fff;border:1px solid #e5e7eb;border-radius:14px;box-shadow:0 8px 18px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:6px;padding:6px 8px;width:min(260px,100%)}.Chat-module_chatFeedbackToggle__IeOM6{align-items:center;background:transparent;border:none;border-radius:12px;cursor:pointer;display:flex;gap:10px;padding:6px 8px;text-align:left;transition:background .2s ease,transform .2s ease;width:100%}.Chat-module_chatFeedbackToggle__IeOM6:hover{background:#f5f5f5;transform:translateY(-.5px)}.Chat-module_chatFeedbackToggle__IeOM6:focus-visible{outline:2px solid #2563eb;outline-offset:2px}.Chat-module_chatFeedbackIcon__XcB7A{background:#eef2ff;border-radius:10px;color:#6366f1;display:grid;flex-shrink:0;height:34px;place-items:center;transition:background .2s ease,color .2s ease;width:34px}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=true] .Chat-module_chatFeedbackIcon__XcB7A{background:#e0f2fe;color:#0284c7}.Chat-module_chatFeedbackToggle__IeOM6[data-enabled=false] .Chat-module_chatFeedbackIcon__XcB7A{background:#f3f4f6;color:#94a3b8}.Chat-module_chatFeedbackMeta__6t2be{display:flex;flex:1;flex-direction:column;gap:2px}.Chat-module_chatFeedbackLabel__qQgH3{color:#0f172a;font-size:.85rem;font-weight:600}.Chat-module_chatFeedbackDescription__I9bNg{color:#64748b;font-size:.75rem}.Chat-module_chatFeedbackIndicator__uHCr7{border-radius:999px;font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:2px 8px;text-transform:uppercase}.Chat-module_chatFeedbackIndicatorActive__bkw-w{background:#dcfce7;border:1px solid #34d399;color:#166534}.Chat-module_chatFeedbackIndicatorInactive__qMBkh{background:#fef9c3;border:1px solid #facc15;color:#713f12}.Chat-module_pauseButton__eeu7K{background:linear-gradient(135deg,#ffb347,#ff8c42)!important}.Chat-module_pauseButton__eeu7K:hover:not(:disabled){background:linear-gradient(135deg,#ffc067,#ff9e5f)!important}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b{cursor:wait!important;opacity:.6!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya{background:linear-gradient(135deg,#10b981,#059669)!important}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya:hover:not(:disabled){background:linear-gradient(135deg,#34d399,#059669)!important;box-shadow:0 8px 24px rgba(16,185,129,.35);transform:translateY(-2px) scale(1.02)}.Chat-module_pauseButton__eeu7K svg{transition:transform .3s ease}.Chat-module_pauseButton__eeu7K.Chat-module_paused__j-pya svg{transform:scale(1.1)}.Chat-module_pauseButton__eeu7K.Chat-module_pausing__pTx8b svg{opacity:.8}.Chat-module_stopButton__dkPOW{background:linear-gradient(135deg,#dc2626,#991b1c)!important;color:#fefefe!important}.Chat-module_stopButton__dkPOW:hover:not(:disabled){background:linear-gradient(135deg,#f87171,#dc2626)!important}.Chat-module_stopButton__dkPOW:disabled{cursor:not-allowed!important;opacity:.6!important}.Chat-module_stopButton__dkPOW svg{transition:transform .3s ease}.Chat-module_stopButton__dkPOW:focus-visible{outline:2px solid hsla(0,91%,71%,.8);outline-offset:2px}.Chat-module_voiceCallIndicatorBar__N2sWN{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.1),rgba(16,185,129,.1));border-bottom:1px solid rgba(34,197,94,.3);display:flex;grid-area:🟦;justify-content:center;padding:12px 20px;width:100%}.Chat-module_voiceCallIndicator__tsaaG{align-items:center;backdrop-filter:blur(10px);background:linear-gradient(135deg,rgba(34,197,94,.2),rgba(16,185,129,.2));border:1px solid rgba(34,197,94,.4);border-radius:20px;box-shadow:0 2px 8px rgba(34,197,94,.2);color:#10b981;display:inline-flex;font-size:13px;font-weight:600;gap:8px;padding:8px 16px;position:relative}.Chat-module_voiceCallIndicator__tsaaG svg{animation:Chat-module_voiceCallIconPulse__zZbJn 2s ease-in-out infinite;flex-shrink:0;height:16px;width:16px}.Chat-module_voiceCallIndicator__tsaaG span{font-weight:600;text-shadow:0 1px 2px rgba(0,0,0,.1)}.Chat-module_voiceCallPulse__XcGU4{animation:Chat-module_voiceCallPulse__XcGU4 1.5s ease-in-out infinite;background:#10b981;border-radius:50%;height:8px;position:absolute;right:8px;top:50%;transform:translateY(-50%);width:8px}@keyframes Chat-module_voiceCallIconPulse__zZbJn{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.1)}}@keyframes Chat-module_voiceCallPulse__XcGU4{0%,to{opacity:1;transform:translateY(-50%) scale(1)}50%{opacity:.6;transform:translateY(-50%) scale(1.3)}}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG{border-radius:16px;font-size:12px;margin-bottom:8px;padding:6px 12px}.Chat-module_chatMessage__nmLaZ .Chat-module_voiceCallIndicator__tsaaG svg{height:14px;width:14px}.Chat-module_feedbackStatus__-df7l{word-wrap:break-word;animation:Chat-module_feedbackStatusSlideIn__n6bbB .28s ease-out;backdrop-filter:blur(20px);border-radius:14px;box-shadow:0 18px 32px rgba(15,23,42,.35);font-weight:500;max-width:340px;padding:14px 22px;pointer-events:none;position:fixed;right:20px;top:20px;z-index:10000}.Chat-module_feedbackStatusSuccess__Ax2q0{background:linear-gradient(135deg,#10b981,#059669);color:#f8fafc}.Chat-module_feedbackStatusError__dnv6d{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fef2f2}@keyframes Chat-module_feedbackStatusSlideIn__n6bbB{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}@media (max-width:768px){.Chat-module_Chat__j2eE5{--chat-message-min-width:100px;--chat-message-avatar-size:36px;--chat-message-max-width:min(85%,560px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:10px;--chat-input-font-size:16px;--chat-input-padding-y:14px;--chat-input-padding-x:18px;--chat-input-action-size:44px}.Chat-module_actions__gTZ5T{gap:6px;margin:12px 16px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:16px 12px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{margin-bottom:16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:18px;font-size:14px;padding:12px 16px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:10px;padding:16px 12px calc(16px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:76px;font-size:11px;max-width:calc(100% - 28px);padding:7px 11px;right:14px}.Chat-module_dictationSettingsPanel__0gI-V{grid-template-columns:minmax(0,1fr)}.Chat-module_scrollToBottom__nzxdZ{font-size:18px;height:44px;top:calc(100% - 160px);width:44px}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_ratingModalContent__CCdq7{border-radius:16px;margin:16px;max-height:80vh;overflow-y:auto;padding:24px 20px}.Chat-module_stars__PCzNO{gap:6px;margin-bottom:20px}.Chat-module_stars__PCzNO span{font-size:32px;padding:8px}.Chat-module_ratingActions__nXcss{flex-direction:column-reverse;gap:8px}.Chat-module_ratingActions__nXcss button{border-radius:10px;font-size:16px;padding:14px;width:100%}.Chat-module_selfLearningModalHeader__PDIt1{align-items:flex-start;flex-direction:column}.Chat-module_selfLearningAvatarGroup__jgy2k{justify-content:flex-start}.Chat-module_selfLearningMetaRow__z4Tg0{align-items:flex-start}}@media (max-width:480px){.Chat-module_Chat__j2eE5{--chat-message-min-width:80px;--chat-message-avatar-size:32px;--chat-message-max-width:min(90%,520px,calc(100% - var(--chat-message-avatar-size) - var(--chat-message-avatar-gap)));--chat-message-avatar-gap:8px;--chat-input-padding-y:12px;--chat-input-padding-x:16px;--chat-input-action-size:40px}.Chat-module_actions__gTZ5T{gap:4px;margin:8px 12px 0}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{padding:12px 8px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border-radius:16px;font-size:14px;padding:10px 14px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{margin:0 0 4px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan{gap:8px;padding:12px 8px calc(12px + env(safe-area-inset-bottom))}.Chat-module_speechStatusBubble__qBBWI{bottom:72px;max-width:calc(100% - 20px);right:10px}.Chat-module_dictationCorrectionActions__ssE7i,.Chat-module_dictationErrorActions__K3ykb{flex-direction:column}.Chat-module_chatButton__d9VgA{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_chatButton__d9VgA svg{height:18px!important;width:18px!important}.Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_useTemplateButton__xcJNR{border-radius:50%!important;gap:0!important;height:40px!important;margin:0!important;min-height:40px!important;min-width:40px!important;padding:0!important;width:40px!important}.Chat-module_useTemplateButton__xcJNR svg{height:18px!important;width:18px!important}.Chat-module_useTemplateButton__xcJNR .Chat-module_chatButtonText__RkGB-{display:none!important}.Chat-module_scrollToBottom__nzxdZ{font-size:16px;height:40px;top:calc(100% - 140px);width:40px}.Chat-module_ratingModal__XVKYm{align-items:flex-end;padding:0}.Chat-module_ratingModalContent__CCdq7{border-radius:20px 20px 0 0;margin:0;max-height:70vh;padding:24px 16px 20px;width:100%}}@media (prefers-reduced-motion:reduce){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ,.Chat-module_feedbackStatus__-df7l,.Chat-module_ratingModalContent__CCdq7,.Chat-module_ratingModal__XVKYm,.Chat-module_scrollToBottom__nzxdZ{animation:none}.Chat-module_chatButton__d9VgA,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{transition:none}}@media (prefers-contrast:high){.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{border:2px solid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan textarea{border-width:3px}.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan button{border:2px solid}}.Chat-module_emailContainer__TBxXZ{display:flex;flex-direction:column;gap:16px;margin-bottom:20px}.Chat-module_emailModalHeader__Z4-CJ{background:#f8fafc}.Chat-module_emailHeaderText__1dR6R{display:flex;flex-direction:column;gap:2px}.Chat-module_emailHeaderLabel__7iAEH{color:#64748b;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_emailMetadata__8XXGf{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:16px;padding:18px 20px}.Chat-module_emailField__pcb03{display:flex;font-size:14px;gap:8px;line-height:1.5;margin-bottom:8px}.Chat-module_emailField__pcb03:last-child{margin-bottom:0}.Chat-module_emailField__pcb03 strong{color:#64748b;font-weight:600;min-width:60px}.Chat-module_emailRecipients__YVVys{color:#0f172a;word-break:break-word}.Chat-module_emailBody__OBt-w{text-align:left}.Chat-module_emailBody__OBt-w strong{color:#64748b;display:block;font-size:14px;font-weight:600;margin-bottom:12px}.Chat-module_emailBodyContent__-vFo2{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);line-height:1.6;max-height:400px;overflow-y:auto;padding:22px}.Chat-module_emailBodyContent__-vFo2 p{margin:0 0 12px}.Chat-module_emailBodyContent__-vFo2 p:last-child{margin-bottom:0}.Chat-module_browserRunModalHeader__0AyeK{background:linear-gradient(135deg,#f8fafc,#ecfeff 40%,#ecfccb);border-bottom:1px solid #dbeafe}.Chat-module_browserRunHeaderText__JUbNv{display:flex;flex-direction:column;gap:2px}.Chat-module_browserRunHeaderStatus__uu3Fi{color:#475467;font-size:13px;line-height:1.5;margin:0}.Chat-module_browserRunHeaderLabel__uKYCb{color:#475569;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.Chat-module_browserRunMeta__lJkQc{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 1px 4px rgba(15,23,42,.08);margin-bottom:18px;padding:16px 18px}.Chat-module_browserRunWarning__ojdEP{background:#fffbeb;border:1px solid #fbbf24;border-radius:12px;color:#92400e;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunError__aELQo{background:#fef2f2;border:1px solid #fca5a5;border-radius:12px;color:#7f1d1d;margin-bottom:14px;padding:12px 14px}.Chat-module_browserRunErrorSummary__ygz-g{font-size:14px;line-height:1.5;margin:0}.Chat-module_browserRunErrorSteps__S96nl{display:flex;flex-direction:column;gap:6px;margin:8px 0 0;padding-left:18px}.Chat-module_browserRunDebugDetails__SZ3VT{margin-top:10px}.Chat-module_browserRunDebugDetails__SZ3VT summary{color:#7f1d1d;cursor:pointer;font-weight:600}.Chat-module_browserRunDebugDetails__SZ3VT pre{background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;font-size:12px;line-height:1.45;margin:10px 0 0;max-height:220px;overflow:auto;padding:10px}.Chat-module_browserRunFallbackContent__NYCkp{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin-bottom:14px;padding:14px 16px}.Chat-module_browserRunStatusBanner__ljIE9{background:rgba(248,250,252,.95);border:1px solid rgba(148,163,184,.28);border-radius:14px;color:#334155;font-size:13px;line-height:1.5;margin-bottom:18px;padding:12px 14px}.Chat-module_browserRunMediaGrid__KDz3I{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.Chat-module_browserRunMediaCard__focNP{background:#fff;border:1px solid #e2e8f0;border-radius:14px;box-shadow:0 1px 4px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:10px;padding:12px}.Chat-module_browserRunMediaCardHeader__sOfLw{display:flex;flex-direction:column;gap:4px}.Chat-module_browserRunMediaTitle__a6Ctw{color:#0f172a;font-size:14px;font-weight:600;margin:0}.Chat-module_browserRunMediaCaption__LG8E6{color:#475569;font-size:12px;line-height:1.5;margin:0}.Chat-module_browserRunMediaImage__UI4pd,.Chat-module_browserRunMediaVideo__z2RgF{background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;max-height:260px;object-fit:contain;width:100%}.Chat-module_browserRunActionLog__YZ0CQ{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;margin-top:18px;padding:14px 16px}.Chat-module_browserRunActionLogTitle__XaEIW{color:#64748b;font-size:13px;letter-spacing:.08em;margin:0 0 10px;text-transform:uppercase}.Chat-module_browserRunActionList__SOgfd{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.Chat-module_browserRunActionItem__1q668{align-items:center;background:#fff;border:1px solid rgba(226,232,240,.9);border-radius:12px;color:#0f172a;display:flex;font-size:14px;gap:10px;line-height:1.5;padding:10px 12px}.Chat-module_browserRunActionPending__unJJt{opacity:.82}.Chat-module_browserRunActionRunning__NdlRL{background:rgba(14,165,233,.08);border-color:rgba(14,165,233,.35)}.Chat-module_browserRunActionComplete__PU36H{background:rgba(16,185,129,.08);border-color:rgba(16,185,129,.22)}.Chat-module_browserRunActionError__y-cm0{background:rgba(239,68,68,.08);border-color:rgba(239,68,68,.24)}.Chat-module_browserRunActionState__pkfKg{background:#cbd5e1;border-radius:999px;flex-shrink:0;height:10px;width:10px}.Chat-module_browserRunActionStateRunning__L1IbZ{background:#0ea5e9;box-shadow:0 0 0 4px rgba(14,165,233,.14)}.Chat-module_browserRunActionStateComplete__CpVEc{background:#10b981;box-shadow:0 0 0 4px rgba(16,185,129,.12)}.Chat-module_browserRunActionStateError__lU-t4{background:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.12)}.Chat-module_browserRunActionMeta__df32n{color:#64748b;font-size:12px;font-weight:600;margin-left:auto}@media print{.Chat-module_Chat__j2eE5{background:transparent!important;box-shadow:none!important;color:#f8fafc!important;min-height:auto!important;padding:0!important}.Chat-module_chatMainFlow__--8FE{gap:0!important;min-height:auto!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N{background:linear-gradient(150deg,rgba(2,6,23,.98),rgba(15,23,42,.92))!important;border:1px solid rgba(56,189,248,.32)!important;border-radius:40px!important;box-shadow:inset 0 40px 80px rgba(0,0,0,.35)!important;padding:48px 40px 64px!important;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ{break-inside:avoid;page-break-inside:avoid}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ{background:linear-gradient(145deg,var(--agent-chat-brand-color-light,#7dd3fc),var(--agent-chat-brand-color,#0ea5e9))!important;border:1px solid hsla(0,0%,100%,.35)!important;border-radius:32px!important;box-shadow:inset 0 18px 40px rgba(2,6,23,.6)!important;color:#f8fafc!important;padding:18px 22px!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ.Chat-module_isMe__nBtaV .Chat-module_messageText__XgNyQ{background:#f8fbff!important;border:1px solid rgba(148,163,184,.45)!important;box-shadow:inset 0 10px 30px rgba(15,23,42,.3)!important;color:#0f172a!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_avatar__gL6bm{border:1px solid hsla(0,0%,100%,.35)!important}.Chat-module_messageMeta__eqCRu,.Chat-module_participantLabel__0Oo-3{color:rgba(226,232,240,.8)!important}.Chat-module_actions__gTZ5T,.Chat-module_chatMainFlow__--8FE .Chat-module_chatInput__1Ecan,.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessage__nmLaZ .Chat-module_messageText__XgNyQ button,.Chat-module_copyButtonContainer__Rij0U,.Chat-module_feedbackStatus__-df7l,.Chat-module_scrollToBottom__nzxdZ,.Chat-module_voiceCallIndicatorBar__N2sWN,.Chat-module_voiceCallIndicator__tsaaG{display:none!important}.Chat-module_chatMainFlow__--8FE .Chat-module_chatMessages__J2u2N>:last-child{padding-bottom:100px!important}}.Chat-module_emailStatus__T4UuL{color:#0f172a;font-weight:600;text-transform:capitalize}.Chat-module_imagePrompt__v7-Ho{backdrop-filter:blur(12px);background:hsla(0,0%,100%,.25);border:1px solid hsla(0,0%,49%,.35);border-radius:18px;box-shadow:inset 0 0 0 1px hsla(0,0%,100%,.25);display:flex;flex-direction:column;gap:8px;margin-bottom:16px;margin-top:16px;padding:12px}.Chat-module_imagePromptPreview__ve5dB{background:linear-gradient(180deg,rgba(15,118,255,.05),hsla(0,0%,100%,.4));border:1px dashed hsla(0,0%,49%,.3);border-radius:14px;min-height:160px;overflow:hidden;position:relative}.Chat-module_imagePromptImage__KjE3H{display:block;height:100%;object-fit:cover;width:100%}.Chat-module_imagePromptPlaceholder__b8cW6{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.Chat-module_imagePromptSpinner__nat8r{animation:Chat-module_imagePromptSpinner__nat8r .9s linear infinite;border:3px solid hsla(0,0%,100%,.35);border-radius:50%;border-top-color:#2563eb;height:36px;width:36px}@keyframes Chat-module_imagePromptSpinner__nat8r{to{transform:rotate(1turn)}}.Chat-module_imagePromptMeta__YwltP{display:flex;flex-direction:column;gap:4px}.Chat-module_imagePromptPrompt__N1E--{color:#111;font-size:13px;font-weight:500;overflow-wrap:anywhere}.Chat-module_imagePromptStatus__0ROQF{color:#6b7280;font-size:11px}.Chat-module_imagePromptError__x1952{align-items:center;background:rgba(220,38,38,.08);color:#dc2626;display:flex;font-size:12px;inset:0;justify-content:center;padding:12px;position:absolute;text-align:center}.Chat-module_richFeaturePlaceholder__mXS7-{align-items:center;background:rgba(56,189,248,.12);border:1px solid rgba(59,130,246,.25);border-radius:18px;display:flex;gap:12px;margin-bottom:16px;margin-top:16px;padding:12px 14px}.Chat-module_richFeaturePlaceholderSpinner__ingFq{animation:Chat-module_richFeatureSpinner__eOql6 .8s linear infinite;border:3px solid rgba(59,130,246,.3);border-radius:50%;border-top-color:#22d3ee;height:32px;width:32px}.Chat-module_richFeaturePlaceholderCopy__sEgxN{display:flex;flex-direction:column}.Chat-module_richFeaturePlaceholderTitle__lF7rJ{color:#0f172a;font-size:13px;font-weight:600}.Chat-module_richFeaturePlaceholderStatus__UJg09{color:#475569;font-size:11px}@keyframes Chat-module_richFeatureSpinner__eOql6{to{transform:rotate(1turn)}}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkNoYXQubW9kdWxlLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxXQUtJLGlCQUFrQixDQUpsQix5QkFBNEIsQ0FDNUIsaUlBRTZFLENBRTdFLGlyRUF1QkosQ0FFQSxXQUtJLGlCQUFrQixDQUpsQix5QkFBNEIsQ0FDNUIsaUlBRTZFLENBRTdFLGlyRUF1QkosQ0FFQSw2Q0FLSSxlQUFnQixDQUdoQixpQkFBa0IsQ0FFbEIscUNBQTBDLENBSjFDLFVBQVcsQ0FHWCxlQUFnQixDQU5oQixRQUFTLENBUVQsV0FBYSxDQUpiLGlCQUFrQixDQUtsQixtQkFBb0IsQ0FYcEIsY0FBZSxDQUNmLFFBQVMsQ0FFVCwwQkFBMkIsQ0FTM0IsWUFDSixDQUVBLHlCQVVJLDhCQUErQixDQUMvQiw4QkFBK0IsQ0FDL0IsK0JBQWdDLENBQ2hDLHFIQUlDLENBQ0QsNEJBQTZCLENBQzdCLDJCQUE0QixDQUM1Qiw0QkFBNkIsQ0FDN0IsMkJBQTRCLENBQzVCLDJCQUE0QixDQUM1Qiw2QkFBOEIsQ0FDOUIsNEpBR0MsQ0F2QkQsWUFBYSxDQUNiLHFCQUFzQixDQUd0QixrRUFBMkUsQ0FOM0UsV0FBWSxDQUNaLFlBQWEsQ0FHYixlQUFnQixDQUxoQixVQTRCSixDQUVBLGlDQU1JLFlBQWEsQ0FDYiw0REFJUyxDQVRULFdBQVksQ0FDWixjQUFlLENBRWYsWUFBYSxDQURiLFdBQVksQ0FIWixVQVdKLENBRUEsNkRBS0kscUJBQXlCLENBQ3pCLDBDQUErQyxDQUYvQyxhQUFjLENBSWQsZUFBZ0IsQ0FQaEIsWUFBYSxDQUViLGlCQUFrQixDQUlsQixpQkFBa0IsQ0FMbEIsVUFPSixDQUVBLG9DQUlJLGlCQUFrQixDQUhsQixZQUFhLENBRWIsa0JBQW1CLENBRW5CLHFCQUFzQixDQUN0QixlQUFnQixDQUpoQixVQUtKLENBRUEsNEJBU0ksa0JBQW1CLENBSm5CLHFCQUFzQixDQUd0QixZQUFhLENBRWIsT0FBUSxDQVRSLFlBQWEsQ0FFYixrQkFBbUIsQ0FHbkIscUJBQXNCLENBQ3RCLGtCQUFtQixDQUluQiwyQkFBNkIsQ0FUN0IsVUFBVyxDQVVYLG1CQUFvQixDQVJwQixVQVNKLENBRUEsc0RBQ0ksUUFDSixDQUVBLG9EQUNJLHVCQUNKLENBRUEscURBQ0kscUJBQ0osQ0FFQSxpQ0FDSSxVQUNKLENBRUEscUNBQ0ksV0FBYSxDQUNiLG1CQUNKLENBR0EseUJBQ0ksK0JBQ0ksMkJBQTZCLENBTTdCLGVBQWlCLENBSmpCLHFCQUF1QixDQUt2QixrQkFBb0IsQ0FIcEIseUJBQTJCLENBRDNCLHdCQUEwQixDQUUxQixtQkFBcUIsQ0FKckIsb0JBT0osQ0FFQSxtQ0FFSSxxQkFBdUIsQ0FEdkIsb0JBRUosQ0FFQSxtQ0FDSSxzQkFDSixDQUVBLHNDQUNJLDJCQUE2QixDQU03QixlQUFpQixDQUpqQixxQkFBdUIsQ0FLdkIsa0JBQW9CLENBSHBCLHlCQUEyQixDQUQzQix3QkFBMEIsQ0FFMUIsbUJBQXFCLENBSnJCLG9CQU9KLENBRUEsMENBRUkscUJBQXVCLENBRHZCLG9CQUVKLENBRUEseUVBQ0ksc0JBQ0osQ0FDSixDQUdBLHlCQUNJLDRCQUVJLE9BQVEsQ0FEUixrQkFFSixDQUNKLENBRUEsa0VBQ0ksWUFBYSxDQUViLFdBQVksQ0FFWixZQUFhLENBRGIsV0FBWSxDQUZaLFVBQVcsQ0FJWCxXQUNKLENBR0Esa0VBQ0ksWUFBYSxDQUliLFdBQVksQ0FEWixZQUFhLENBRGIsV0FBWSxDQU1aLGlCQUFrQixDQURsQixlQUFnQixDQURoQixzQkFBdUIsQ0FHdkIsc0JBQXVCLENBUnZCLFVBQVcsQ0FJWCxVQUtKLENBRUEsb0RBQ0ksZ0JBQ0osQ0FHQSxxRkFDSSxTQUNKLENBRUEsMkZBQ0ksc0JBQ0osQ0FFQSwyRkFDSSw0QkFBb0MsQ0FDcEMsaUJBQWtCLENBQ2xCLHVCQUNKLENBRUEsaUdBQ0ksNEJBQ0osQ0FHQSxpRUFHSSxvQkFBcUIsQ0FJckIsNkVBQW1FLENBRm5FLHlDQUEwQyxDQUoxQyxZQUFhLENBR2Isa0JBQW1CLENBRm5CLGtCQUFtQixDQU1uQixjQUFlLENBQ2YsV0FBWSxDQUhaLGlCQUlKLENBRUEsa0dBR0ksc0JBQXVCLENBRnZCLFlBQWEsQ0FDYixxQkFBc0IsQ0FFdEIsdUNBQXdDLENBQ3hDLFdBQ0osQ0FFQSwwSEFDSSxvQkFDSixDQUVBLG9HQUNJLGNBQ0osQ0FNQSxtR0FDSSxtQkFDSixDQUVBLG9JQUNJLG1CQUFvQixDQU1wQix1R0FJQyxDQVRELG1HQVVKLENBRUEseUJBQ0ksb0lBRUkseUJBQTJCLENBRDNCLHFCQUVKLENBQ0osQ0FFQSxnQ0FFSSxrQkFBbUIsQ0FLbkIsYUFBYyxDQU5kLFlBQWEsQ0FFYixjQUFlLENBR2YsY0FBZSxDQUZmLE9BQVEsQ0FJUixlQUFnQixDQUhoQixnQkFJSixDQUVBLHlIQUNJLG1CQUFvQixDQUNwQixnQkFDSixDQUVBLDBDQUVJLGtCQUFtQixDQUduQixnQ0FBcUMsQ0FEckMsbUJBQW9CLENBRXBCLGFBQWMsQ0FMZCxtQkFBb0IsQ0FNcEIsZUFBZ0IsQ0FDaEIsb0JBQXNCLENBTHRCLGVBQWdCLENBTWhCLHdCQUNKLENBRUEscUNBQ0ksb0JBQ0osQ0FFQSxvQ0FDSSxXQUNKLENBRUEsMENBR0ksYUFBYyxDQURkLGNBQWUsQ0FFZixnQkFBaUIsQ0FIakIsZ0JBSUosQ0FFQSxxQ0FHSSxhQUFjLENBRmQsY0FBZSxDQUNmLGVBQWdCLENBRWhCLGNBQ0osQ0FFQSw4SEFDSSxnQkFDSixDQUVBLDZDQUNJLEdBQ0ksU0FBVSxDQUNWLHFDQUNKLENBQ0EsR0FDSSxTQUFVLENBQ1YsZ0NBQ0osQ0FDSixDQUVBLHlDQUtJLFVBQVksQ0FDWixpQkFDSixDQUVBLDZDQUNJLGlCQUNKLENBR0EsK0VBU0ksbUVBQWlELENBRmpELDRFQUFzRixDQUN0RixpQkFBa0IsQ0FMbEIsVUFBVyxDQUZYLFVBQVcsQ0FLWCxVQUFXLENBSlgsaUJBQWtCLENBRWxCLFVBQVcsQ0FDWCxVQUtKLENBWUEsc0VBT0ksdUNBQThDLENBTjlDLFlBQWEsQ0FDYixrQkFBbUIsQ0FDbkIsY0FBZSxDQUNmLE9BQVEsQ0FDUixjQUFlLENBQ2YsZUFFSixDQUVBLGlDQUVJLGtCQUFtQixDQUluQiw4QkFBcUMsQ0FDckMsbUNBQTBDLENBQzFDLGtCQUFtQixDQUNuQixtQ0FBd0MsQ0FDeEMsYUFBYyxDQUVkLGNBQWUsQ0FYZixZQUFhLENBVWIsa0VBQTJFLENBUDNFLGNBQWdCLENBRGhCLE9BQVEsQ0FFUixnQkFBaUIsQ0FRakIsdUJBQ0osQ0FFQSx1Q0FDSSw2QkFBb0MsQ0FFcEMsb0NBQXlDLENBRHpDLDBCQUVKLENBRUEsd0NBRUksOEJBQW1DLENBRG5DLGdDQUVKLENBRUEsdUNBR0ksa0JBQW1CLENBRG5CLG1CQUFvQixDQURwQixnQkFHSixDQUVBLHdFQUdJLE9BQVEsQ0FEUiwwQkFFSixDQUVBLDBFQUVJLGFBQ0osQ0FFQSxrQ0FDSSxNQUFPLENBQ1AsY0FBZ0IsQ0FFaEIsZUFBZ0IsQ0FDaEIsc0JBQXVCLENBRnZCLGtCQUdKLENBRUEsc0NBRUksK0JBQW9DLENBRHBDLGdDQUVKLENBRUEsbUNBQ0ksZUFBaUIsQ0FFakIsZUFBZ0IsQ0FEaEIsV0FBYSxDQUViLGtCQUNKLENBRUEsb0NBQ0ksa0JBRUosQ0FFQSxzQ0FDSSxpQkFDSixDQUVBLGlDQUNJLGtCQUFtQixDQVFuQix3QkFBeUIsQ0FOekIsaUJBQWtCLENBQ2xCLGNBQWUsQ0FJZixnQkFBaUIsQ0FIakIsZUFBZ0IsQ0FIaEIsWUFBYSxDQUtiLG9CQUdKLENBRUEsd0NBTUksZ0VBQStDLENBRi9DLG1DQUFzQixDQUN0QixpQkFBa0IsQ0FEbEIscUJBQXNCLENBRnRCLFdBQVksQ0FEWixVQU1KLENBRUEsOENBQ0ksR0FDSSx1QkFDSixDQUNKLENBRUEsMkNBQ0ksTUFFSSxVQUFZLENBQ1osb0JBQ0osQ0FDQSxJQUNJLFNBQVUsQ0FDVixxQkFDSixDQUNKLENBR0Esb0NBRUksb0JBQXFCLENBRXJCLDZFQUFtRSxDQUhuRSxZQUFhLENBRWIsa0JBRUosQ0FFQSwrREFJSSxhQUFjLENBRmQsV0FBWSxDQUNaLGlCQUFrQixDQUZsQixVQUlKLENBYUEsaUNBTUksMEJBQTJCLENBRjNCLGtDQUEwQyxDQUYxQyxrQkFBbUIsQ0FDbkIsNkJBQThCLENBRTlCLG1DQUF3QyxDQUt4QyxlQUFnQixDQVRoQixpQkFVSixDQUVBLGdFQUxJLGtCQUFtQixDQURuQixZQUFhLENBRWIsT0FRSixDQUVBLDhCQUtJLG1FQUFpRCxDQURqRCw0REFBOEUsQ0FEOUUsaUJBQWtCLENBR2xCLG1DQUF3QyxDQUp4QyxVQUFXLENBRFgsU0FNSixDQUVBLDBDQUNJLHFCQUNKLENBRUEsMkNBQ0kscUJBQ0osQ0FFQSwyQ0FDSSxrQkFDSixDQUVBLDJDQUNJLFVBSUksVUFBWSxDQURaLGlDQUVKLENBQ0EsSUFFSSxTQUFVLENBRFYscUNBRUosQ0FDSixDQUVBLHlGQUNJLG9CQUFxQixDQUNyQiwwQkFBMkIsQ0FDM0IsMEJBQ0osQ0FFQSx5SEFDSSw4QkFDSixDQUVBLCtCQUlJLHFDQUF1QyxDQUh2QyxjQUFlLENBQ2YsY0FBZSxDQUNmLG9CQUVKLENBRUEseURBQ0ksVUFDSixDQUdBLDRGQUdJLGdCQUFtQixDQUVuQixhQUFjLENBSGQsc0NBQXVDLENBRXZDLGNBQWUsQ0FFZixpQkFBa0IsQ0FMbEIscUNBTUosQ0FxQkEsaUdBWUksb0JBQXFCLENBSXJCLDBDQUFpRCxDQUNqRCwwQ0FBK0MsQ0FDL0MsMkRBQTZELENBQzdELDhDQUFtRCxDQUNuRCw4Q0FBbUQsQ0FMbkQsMEJBQTJCLENBZDNCLHdDQUF5QyxDQUl6QyxrQkFBbUIsQ0FLbkIsbUNBQXdDLENBUnhDLCtCQUFnQyxDQVloQyxjQUFlLENBSGYsZUFBZ0IsQ0FGaEIsaUJBQWtCLENBSGxCLGNBQWUsQ0FDZixpREFBbUQsQ0FIbkQsaUJBQWtCLENBRGxCLGlCQUFrQixDQUtsQixlQUFnQixDQUtoQix1QkFRSixDQUVBLHVEQUNJLGlHQUNJLGlHQUE0RyxDQUM1RyxzR0FBOEcsQ0FDOUcsc0dBSUMsQ0FDRCw4RkFBeUcsQ0FDekcsMkRBQ0osQ0FDSixDQUdBLHdDQUNJLFdBQVksQ0FJWixtQkFBb0IsQ0FGcEIsVUFBVyxDQURYLE9BQVEsQ0FLUixpQkFBa0IsQ0FIbEIsU0FJSixDQUNBLG9NQUdJLG1CQUFvQixDQURwQixrQkFFSixDQUVBLHdDQUVJLGtCQUFtQixDQURuQixZQUFhLENBRWIsT0FBUSxDQUNSLG1CQUNKLENBRUEsK0JBU0ksa0JBQW1CLENBUm5CLDZCQUFvQyxDQUNwQyxxQkFBc0IsQ0FDdEIsaUJBQWtCLENBR2xCLG9DQUF5QyxDQUR6QyxjQUFlLENBR2YsWUFBYSxDQUViLFVBQVksQ0FOWixlQUFnQixDQU9oQixpQkFBa0IsQ0FKbEIsK0NBS0osQ0FFQSwrQkFPSSxrQkFBbUIsQ0FGbkIsOEJBQXFDLENBRHJDLG1DQUEwQyxDQUQxQyxrQkFBbUIsQ0FRbkIsVUFBVyxDQUZYLGNBQWUsQ0FIZixtQkFBb0IsQ0FKcEIsV0FBWSxDQU1aLHNCQUF1QixDQUt2QixTQUFVLENBRFYsaUJBQWtCLENBRmxCLHdCQUEwQixDQVQxQixVQWFKLENBRUEsbUNBRUksV0FBWSxDQURaLFVBRUosQ0FFQSxzQ0FNSSxtRUFBa0QsQ0FEbEQsK0JBQXNCLENBRnRCLGlCQUFrQixDQUVsQixxQkFBc0IsQ0FIdEIsV0FBWSxDQURaLFVBTUosQ0FFQSxvREFDSSw2QkFBb0MsQ0FDcEMsK0JBQ0osQ0FFQSx3Q0FDSSxrQkFBbUIsQ0FDbkIsVUFDSixDQUVBLGlEQUNJLEdBQ0ksc0JBQ0osQ0FFQSxHQUNJLHVCQUNKLENBQ0osQ0FFQSxrQ0FnQkksb0RBQW1DLENBWG5DLGVBQWdCLENBR2hCLGlCQUFrQixDQUVsQixxQ0FBMEMsQ0FKMUMsVUFBVyxDQUdYLGVBQWlCLENBUGpCLFFBQVMsQ0FhVCxjQUFlLENBRWYsZUFBZ0IsQ0FOaEIsV0FBYSxDQU9iLHdCQUF5QixDQVh6QixnQkFBaUIsQ0FLakIsbUJBQW9CLENBWHBCLGlCQUFrQixDQUVsQixRQUFTLENBQ1QsMEJBQTJCLENBVTNCLGtCQUFtQixDQUtuQixxQkFBc0IsQ0FOdEIsV0FPSixDQUVBLHNDQUNJLGdCQUFrQixDQUNsQix3QkFDSixDQUVBLHVDQUNJLG1CQUFxQixDQUNyQixpQkFBbUIsQ0FDbkIsd0JBQ0osQ0FJQSxrREFDSSxHQUNJLFNBQVUsQ0FDVixxREFDSixDQUNBLEdBQ0ksV0FBYSxDQUNiLGlEQUNKLENBQ0osQ0FFQSwwRUFFSSx1QkFBd0IsQ0FFeEIsdUNBQTRDLENBRDVDLFNBRUosQ0FFQSxtQ0FDSSxhQUNKLENBRUEsbUNBQ0ksZUFBZ0IsQ0FDaEIsZ0JBQ0osQ0FFQSxtQ0FDSSxrQkFBbUIsQ0FDbkIsZ0JBQ0osQ0FFQSx5SkFNSSxpQkFBa0IsQ0FEbEIsa0JBQW1CLENBRG5CLGVBR0osQ0FFQSxvQ0FJSSxlQUFxQixDQUdyQixVQUVKLENBRUEsK0VBVEksV0FBWSxDQUNaLGVBQWdCLENBRmhCLGFBQWMsQ0FJZCxpQkFBa0IsQ0FDbEIsbUJBQW9CLENBRXBCLFdBWUosQ0FUQSwyQ0FJSSxvQkFBcUIsQ0FHckIsVUFFSixDQUVBLHFDQU1JLG9CQUFxQixDQUZyQixXQUFZLENBQ1osZUFBZ0IsQ0FJaEIsYUFBYyxDQVJkLG9CQUFxQixDQU1yQixpQkFBa0IsQ0FDbEIsbUJBQW9CLENBTnBCLFFBQVMsQ0FDVCxTQU9KLENBRUEseUNBQ0ksMEJBQTJCLENBQzNCLGlCQUNKLENBRUEsb0VBQ0ksa0JBQW1CLENBS25CLG9CQUFxQixDQUNyQixvQ0FBeUMsQ0FMekMsYUFBYyxDQU1kLDhEQUEyRSxDQUwzRSxjQUFlLENBQ2YsZUFBZ0IsQ0FDaEIsZUFJSixDQUNBLHlFQUNJLHlCQUEyQixDQUszQixxQkFBdUIsQ0FDdkIseUJBQTJCLENBTDNCLHVCQUF5QixDQVN6QixhQUFjLENBUmQsNkJBQStCLENBQy9CLDJCQUE2QixDQU03QixlQUFnQixDQUxoQixtQkFBcUIsQ0FHckIsZUFBZ0IsQ0FDaEIscUJBR0osQ0FDQSxzQ0FLSSxrQkFBbUIsQ0FIbkIsd0JBQXlCLENBQ3pCLGdCQUFpQixDQUtqQixvQ0FBeUMsQ0FFekMsYUFBYyxDQURkLGNBQWUsQ0FMZixhQUFjLENBSGQsVUFVSixDQUNBLHNFQU1JLGVBQWdCLENBSGhCLCtCQUFnQyxDQUVoQyxhQUFjLENBSGQsaUJBQWtCLENBRWxCLGVBR0osQ0FDQSxtQ0FDSSxxREFBNkQsQ0FHN0QsK0JBQWdDLENBRGhDLGFBQWMsQ0FEZCxlQUdKLENBQ0EsaURBQ0ksa0JBQ0osQ0FDQSxvREFDSSxrQkFDSixDQUNBLDRDQUNJLGtCQUFtQixDQUNuQix5QkFDSixDQUNBLHNDQUNJLGtCQUFtQixDQUNuQixlQUNKLENBQ0EsOEZBRUksMkJBQ0osQ0FDQSw0RkFFSSw0QkFDSixDQUVBLHVHQUNJLHFDQUEwQyxDQUMxQywwQkFDSixDQUdBLGdDQU1JLHNDQUE4QyxDQUw5QyxZQUFhLENBQ2IsY0FBZSxDQUNmLE9BQVEsQ0FDUixlQUFnQixDQUNoQixnQkFFSixDQUVBLCtCQUVJLGtCQUFtQixDQUduQiw2QkFBb0MsQ0FDcEMsa0NBQTBDLENBQzFDLGtCQUFtQixDQUVuQixhQUFjLENBUmQsWUFBYSxDQU9iLGNBQWUsQ0FMZixPQUFRLENBU1IsZUFBZ0IsQ0FSaEIsZ0JBQWlCLENBTWpCLG9CQUFxQixDQUNyQix1QkFFSixDQUVBLHFDQUNJLDZCQUFvQyxDQUNwQyw4QkFBc0MsQ0FDdEMsMEJBQ0osQ0FFQSxtQ0FDSSxjQUFlLENBQ2YsVUFDSixDQUVBLG1DQUVJLGVBQWdCLENBQ2hCLHNCQUF1QixDQUZ2QixrQkFHSixDQUdBLG1DQU1JLHVDQUE4QyxDQUw5QyxZQUFhLENBQ2IsY0FBZSxDQUNmLE9BQVEsQ0FDUixlQUFnQixDQUNoQixnQkFFSixDQUdBLGtDQVlJLHVDQUF3QyxDQVZ4QyxrQkFBbUIsQ0FTbkIsMEJBQTJCLENBUDNCLDRCQUFvQyxDQUNwQyxrQ0FBMEMsQ0FDMUMsa0JBQW1CLENBR25CLGNBQWUsQ0FSZixtQkFBb0IsQ0FNcEIsY0FBZSxDQUNmLGVBQWdCLENBTGhCLGdCQUFpQixDQVVqQix5QkFBMEIsQ0FIMUIsdUJBQXlCLENBSXpCLGdCQUNKLENBRUEsMkNBSUksZUFBZ0IsQ0FIaEIsZUFBZ0IsQ0FDaEIsV0FBYSxDQUNiLGNBRUosQ0FFQSx3Q0FDSSw2QkFBa0MsQ0FDbEMsK0JBQW9DLENBRXBDLHdDQUE2QyxDQUQ3QywwQkFFSixDQUVBLGlEQUNJLDRCQUFvQyxDQUNwQyw4QkFDSixDQUVBLHlDQUNJLG9CQUFzQixDQUN0Qiw2QkFDSixDQUVBLHdDQUNJLDZCQUFrQyxDQUNsQywrQkFBb0MsQ0FDcEMsVUFDSixDQUVBLDhDQUNJLDZCQUFrQyxDQUNsQywrQkFBb0MsQ0FDcEMsd0NBQ0osQ0FFQSx1REFDSSw2QkFBa0MsQ0FDbEMsK0JBQ0osQ0FHQSxvQ0FHSSxtQkFBb0IsQ0FGcEIsUUFBUyxDQUNULFNBRUosQ0FFQSx5Q0FDSSxlQUNKLENBRUEscUNBQ0ksaUJBQ0osQ0FHQSw0RkFNSSxrQkFBbUIsQ0FNbkIsMEJBQTJCLENBSDNCLHlCQUE4QixDQUM5QixrQkFBbUIsQ0FSbkIsV0FBWSxDQUVaLFlBQWEsQ0FDYixPQUFRLENBRVIsY0FBZSxDQU1mLFNBQVUsQ0FGVixlQUFnQixDQVZoQixpQkFBa0IsQ0FFbEIsU0FBVSxDQVdWLHlCQUEwQixDQUMxQixnREFBeUQsQ0FQekQsU0FRSixDQUVBLGtHQUNJLFNBQVUsQ0FDVix1QkFDSixDQUVBLGtHQUNJLHlCQUE4QixDQUU5QixvQ0FBeUMsQ0FEekMsZUFFSixDQUVBLGlHQUdJLGNBQWUsQ0FEZixvQkFBcUIsQ0FFckIsY0FBZSxDQUhmLDRDQUlKLENBRUEsdUdBQ0ksb0JBQ0osQ0FHQSwrREFPSSxxQkFBc0IsQ0FJdEIsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixRQUFTLENBWFQsWUFBYSxDQU1iLGNBQWUsQ0FDZixXQUFZLENBSFosMERBQXdELENBUXhELGlCQUFrQixDQVhsQixVQUFXLENBRlgsVUFjSixDQUVBLDBIQUNJLDBCQUEyQixDQUMzQix1RUFDSixDQUdBLDJGQUNJLHlFQUNKLENBR0EseUNBQ0ksWUFBYSxDQUNiLGNBQWUsQ0FDZixPQUFRLENBQ1IsaUJBQ0osQ0FHQSxnQ0FFSSxrQkFBbUIsQ0FPbkIsMEJBQTJCLENBSjNCLDRCQUFvQyxDQUNwQyxrQ0FBMEMsQ0FDMUMsaUJBQWtCLENBTmxCLFlBQWEsQ0FPYixjQUFlLENBTGYsT0FBUSxDQUNSLGdCQUFpQixDQU1qQix1QkFDSixDQUVBLHNDQUNJLDZCQUFxQyxDQUNyQyw4QkFDSixDQUVBLDZCQUNJLGNBQWUsQ0FDZixVQUNKLENBRUEsNkJBQ0ksWUFBYSxDQUNiLHFCQUFzQixDQUN0QixPQUFRLENBQ1IsV0FDSixDQUVBLDZCQUVJLFVBQVksQ0FEWixlQUFnQixDQUtoQixlQUFnQixDQUZoQixlQUFnQixDQUNoQixzQkFBdUIsQ0FGdkIsa0JBSUosQ0FFQSw2QkFDSSxhQUFjLENBQ2QsY0FDSixDQUVBLHFDQUVJLGtCQUFtQixDQUtuQiwyQkFBZ0MsQ0FEaEMsV0FBWSxDQUdaLGlCQUFrQixDQURsQixVQUFjLENBRWQsY0FBZSxDQVRmLFlBQWEsQ0FXYixhQUFjLENBUGQsV0FBWSxDQUZaLHNCQUF1QixDQVF2Qix1QkFBeUIsQ0FQekIsVUFTSixDQUVBLDJDQUNJLDJCQUFnQyxDQUNoQyxvQkFDSixDQUdBLG1DQUVJLGtCQUFtQixDQUduQixlQUFtQixDQUNuQixnQ0FBcUMsQ0FDckMsa0JBQW1CLENBRW5CLHFDQUEwQyxDQVIxQyxZQUFhLENBRWIsT0FBUSxDQUNSLFdBQVksQ0FJWixnQkFBaUIsQ0FFakIsZ0RBQ0osQ0FFQSxnREFDSSwrQkFBZ0MsQ0FDaEMseUNBQThDLENBQzlDLDBCQUNKLENBRUEseURBQ0ksYUFBYyxDQUNkLFNBQ0osQ0FHQSxxQ0FRSSxrQkFBbUIsQ0FKbkIsc0JBQXVCLENBRHZCLFdBQVksQ0FHWixpQkFBa0IsQ0FEbEIsYUFBYyxDQUtkLGNBQWUsQ0FIZixZQUFhLENBS2IsYUFBYyxDQVZkLG9DQUFxQyxDQU9yQyxzQkFBdUIsQ0FJdkIsUUFBUyxDQUZULHVCQUF5QixDQVZ6QixtQ0FhSixDQUVBLDBEQUNJLGtCQUFtQixDQUNuQixhQUNKLENBRUEsOENBRUksa0JBQW1CLENBRG5CLFVBRUosQ0FHQSxnQ0FRSSxrQkFBbUIsQ0FKbkIsc0JBQXVCLENBRHZCLFdBQVksQ0FHWixpQkFBa0IsQ0FEbEIsYUFBYyxDQUtkLGNBQWUsQ0FIZixZQUFhLENBS2IsYUFBYyxDQVZkLG9DQUFxQyxDQU9yQyxzQkFBdUIsQ0FJdkIsUUFBUyxDQUZULHVCQUF5QixDQVZ6QixtQ0FhSixDQUVBLHFEQUNJLGtCQUFtQixDQUNuQixhQUNKLENBRUEsc0NBR0ksOERBQTRDLENBRjVDLHVDQUE2QyxDQUM3Qyx1QkFFSixDQUVBLHVDQUtJLGtCQUFtQixDQWtCbkIsOERBQTZDLENBRjdDLGVBQWdCLENBVmhCLDhCQUFxQyxDQVFyQyxtQ0FBbUIsQ0FWbkIsbUJBQW9CLENBTnBCLFdBQVksQ0FVWix5Q0FBOEMsQ0FEOUMsYUFBYyxDQUtkLGNBQWUsQ0FiZixtQkFBb0IsQ0FVcEIsY0FBZSxDQUNmLGVBQWdCLENBVGhCLE9BQVEsQ0FVUixvQkFBc0IsQ0FUdEIsc0NBQXdDLENBQ3hDLGdCQUFpQixDQVBqQixpQkFBa0IsQ0FDbEIsVUFBVyxDQWtCWCxlQUFnQixDQUVoQixVQUVKLENBRUEsMENBTUksaUZBQStELENBRi9ELGtCQUFtQixDQURuQixpQkFBa0IsQ0FFbEIsYUFBYyxDQUhkLFVBQVcsQ0FEWCxTQU1KLENBRUEsZ0RBRUksOEJBQXFDLENBRHJDLGdDQUFxQyxDQUVyQyxhQUNKLENBRUEsMEZBQ0ksa0JBQ0osQ0FFQSxpREFFSSxnQ0FBcUMsQ0FEckMsaUNBQXNDLENBRXRDLGFBQ0osQ0FFQSwyRkFDSSxrQkFDSixDQUVBLDRDQUVJLDhCQUFxQyxDQURyQyxnQ0FBcUMsQ0FFckMsYUFDSixDQUVBLHNGQUVJLGNBQWUsQ0FEZixrQkFFSixDQUVBLG1DQUlJLDZCQUFvQyxDQUhwQyxzQ0FBMkMsQ0FDM0Msa0JBQW1CLENBSW5CLDZDQUFvRCxDQURwRCxhQUFjLENBRWQsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixRQUFTLENBTlQsaUJBT0osQ0FFQSx5Q0FFSSxrQkFBbUIsQ0FEbkIsWUFBYSxDQUdiLE9BQVEsQ0FEUiw2QkFFSixDQUVBLHdDQUtJLGFBQWMsQ0FKZCxjQUFlLENBQ2YsZUFBZ0IsQ0FDaEIsb0JBQXNCLENBQ3RCLHdCQUVKLENBRUEseUNBRUksa0JBQW1CLENBRG5CLHNDQUEyQyxDQUUzQyxrQkFBbUIsQ0FHbkIsYUFBYyxDQUVkLGNBQWUsQ0FKZixjQUFlLENBQ2YsZUFBZ0IsQ0FFaEIsZUFFSixDQUVBLCtDQUdJLCtCQUFvQyxDQUZwQyxzQ0FBMkMsQ0FDM0Msa0JBQW1CLENBSW5CLGFBQWMsQ0FHZCxjQUFlLENBRmYsY0FBZSxDQUNmLGdCQUFpQixDQUpqQixnQkFBaUIsQ0FDakIsZUFLSixDQUVBLHdDQUVJLDhCQUFxQyxDQURyQyxvQ0FBeUMsQ0FFekMsa0JBQW1CLENBS25CLGFBQWMsQ0FIZCxZQUFhLENBQ2IscUJBQXNCLENBR3RCLGNBQWUsQ0FDZixlQUFnQixDQUhoQixPQUFRLENBSFIsZ0JBT0osQ0FFQSwwQ0FDSSxZQUFhLENBQ2IsY0FBZSxDQUNmLE9BQ0osQ0FFQSx1R0FHSSxrQkFBbUIsQ0FEbkIsc0NBQTJDLENBRTNDLGtCQUFtQixDQUNuQixhQUFjLENBSWQsY0FBZSxDQUhmLGNBQWUsQ0FDZixlQUFnQixDQUNoQixnQkFFSixDQUVBLDZDQUNJLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsT0FDSixDQUVBLDZDQUdJLGFBQWMsQ0FGZCxjQUFlLENBQ2YsZUFBZ0IsQ0FHaEIsb0JBQXNCLENBRHRCLHdCQUVKLENBRUEsZ0RBVUksZUFBZ0IsQ0FQaEIsc0NBQTJDLENBQzNDLGtCQUFtQixDQUluQixhQUFjLENBRmQsY0FBZSxDQUNmLGVBQWdCLENBTGhCLGVBQWdCLENBR2hCLGdCQUFpQixDQUlqQixlQUFnQixDQVJoQixVQVVKLENBRUEsK0NBQ0ksWUFBYSxDQUNiLGNBQWUsQ0FDZixPQUNKLENBRUEsMkNBQ0ksWUFBYSxDQUViLFlBQWEsQ0FEYiw2Q0FFSixDQUVBLGlEQUVJLGtCQUFtQixDQUduQixhQUFjLENBSmQsbUJBQW9CLENBR3BCLGNBQWUsQ0FEZixPQUdKLENBRUEsMENBR0ksYUFBYyxDQURkLGNBQWUsQ0FFZixnQkFBaUIsQ0FIakIsUUFJSixDQUVBLG1EQUNJLEdBQ0ksU0FBVSxDQUNWLG9DQUNKLENBQ0EsR0FDSSxTQUFVLENBQ1YsZ0NBQ0osQ0FDSixDQUVBLHlEQUNJLE1BRUksU0FBVSxDQUNWLGtCQUNKLENBQ0EsSUFDSSxVQUFZLENBQ1osb0JBQ0osQ0FDSixDQUVBLGtEQUNJLEdBQ0ksbUNBQ0osQ0FDQSxJQUNJLHFDQUNKLENBQ0EsR0FDSSxrQ0FDSixDQUNKLENBR0EsbUNBRUksa0JBQW1CLENBR25CLDZCQUFrQyxDQUNsQyxtQ0FBd0MsQ0FDeEMsaUJBQWtCLENBRWxCLGFBQWMsQ0FSZCxZQUFhLENBT2IsY0FBZSxDQUxmLFFBQVMsQ0FDVCxnQkFNSixDQUVBLHNDQUdJLDZCQUFrQyxDQUNsQyxpQkFBa0IsQ0FIbEIsTUFBTyxDQUNQLFVBQVcsQ0FHWCxlQUNKLENBRUEsdUNBSUkscUVBQW1ELENBRm5ELDREQUFtRSxDQUNuRSxpQkFBa0IsQ0FGbEIsV0FJSixDQUVBLDZDQUNJLEdBQ0ksMkJBQ0osQ0FDQSxJQUNJLHVCQUNKLENBQ0EsR0FDSSwwQkFDSixDQUNKLENBR0EsZ0NBVUksa0JBQW1CLENBRW5CLDBCQUEyQixDQU4zQiw2QkFBa0MsQ0FDbEMsb0NBQXlDLENBQ3pDLGtCQUFtQixDQUhuQixRQUFTLENBSVQsWUFBYSxDQUViLHNCQUF1QixDQVJ2QixNQUFPLENBV1AsbUJBQW9CLENBYnBCLGlCQUFrQixDQUdsQixPQUFRLENBRlIsS0FBTSxDQVdOLFVBRUosQ0FFQSx1Q0FHSSxrQkFBbUIsQ0FFbkIsYUFBYyxDQUpkLFlBQWEsQ0FDYixxQkFBc0IsQ0FJdEIsZUFBZ0IsQ0FGaEIsUUFBUyxDQUdULGlCQUNKLENBRUEsMkNBQ0ksVUFDSixDQUdBLHdFQW1CSSx1Q0FBd0MsQ0FGeEMsZUFBZ0IsQ0FDaEIsdUJBQXdCLENBWnhCLHNCQUF1QixDQUZ2QixXQUFZLENBVVoscUJBQXNCLENBUHRCLGFBQWMsQ0FOZCxNQUFPLENBV1AscUNBQXNDLENBSHRDLHdDQUF5QyxDQUl6Qyx5Q0FBMEMsQ0FWMUMsUUFBUyxDQVFULDRDQUE2QyxDQUQ3Qyw0Q0FBNkMsQ0FGN0MsV0FBWSxDQUhaLFlBQWEsQ0FVYixlQUFnQixDQWJoQiwrREFBZ0UsQ0FjaEUsV0FBWSxDQUlaLHlCQUNKLENBTUEsaUZBRUksa0JBQW1CLENBRG5CLFVBQVksQ0FFWixjQUNKLENBRUEscUZBQ0ksYUFBYyxDQUNkLFVBQ0osQ0FHQSx1R0FrQkksdUNBQXdDLENBVHhDLGtCQUFtQixDQUduQixnQkFBbUIsQ0FObkIsV0FBWSxDQUtaLDJCQUE2QixDQU03Qix5Q0FBOEMsQ0FWOUMsVUFBYyxDQUNkLFlBQWEsQ0FOYixvQ0FBcUMsQ0FRckMsc0JBQXVCLENBUHZCLGtCQUFvQixDQVdwQiwwQkFBNEIsQ0FENUIseUJBQTJCLENBUTNCLGdCQUFpQixDQWpCakIsbUJBQXFCLENBZXJCLHlCQUEwQixDQUgxQixnREFBeUQsQ0FJekQsZ0JBQWlCLENBbkJqQixtQ0FxQkosQ0FFQSw2R0FFSSx5Q0FBOEMsQ0FEOUMscUJBRUosQ0FFQSw4R0FDSSxvQkFDSixDQUVBLDJHQUVJLFdBQVksQ0FEWixVQUVKLENBRUEsMEVBRUksV0FBWSxDQUNaLGtCQUFtQixDQUZuQixTQUdKLENBSUEsNENBV0ksc0JBQXVCLENBRnZCLFlBQWEsQ0FIYixZQUFhLENBRWIsV0FBWSxDQUVaLHNCQUF1QixDQUd2QixtQkFBb0IsQ0FOcEIsVUFBVyxDQUZYLFVBU0osQ0FFQSxzRkFNSSxrQkFBbUIsQ0FDbkIsNkRBQTRDLENBSDVDLG1CQUFvQixDQUNwQixzQkFBdUIsQ0FKdkIsa0JBQW1CLENBQ25CLGlCQUFrQixDQUNsQiwrQkFBaUMsQ0FLakMsc0RBQ0osQ0FFQSwrRUFhSSx1Q0FBd0MsQ0FSeEMsa0JBQW1CLENBR25CLHlCQUE2QixDQUY3QixXQUFZLENBR1osaUJBQWtCLENBUWxCLG9DQUF5QyxDQU56QyxVQUFZLENBQ1osY0FBZSxDQVRmLFlBQWEsQ0FPYixlQUFpQixDQVJqQixXQUFZLENBRVosc0JBQXVCLENBR3ZCLFlBQWEsQ0FPYix5QkFBMEIsQ0FFMUIsZ0RBQXlELENBRHpELGdCQUFpQixDQWRqQixVQWlCSixDQUVBLGtEQUNJLEdBQ0ksU0FBVSxDQUNWLHdDQUNKLENBQ0EsR0FDSSxVQUFZLENBQ1osa0NBQ0osQ0FDSixDQUVBLHdDQWlCSSxrQkFBbUIsQ0FUbkIsa0JBQW1CLENBRW5CLG1CQUFvQixDQUNwQix3Q0FBNkMsQ0FGN0MsVUFBVyxDQU9YLG1CQUFvQixDQVZwQixjQUFlLENBQ2YsZUFBZ0IsQ0FXaEIsc0JBQXVCLENBTHZCLG9CQUFzQixDQVR0QixjQUFlLENBQ2YsZUFBZ0IsQ0FVaEIsbUJBQW9CLENBZHBCLGlCQUFrQixDQUVsQixVQUFXLENBU1gsd0JBQXlCLENBVnpCLFFBQVMsQ0FZVCxrQkFLSixDQUdBLGdDQVlJLGtCQUFtQixDQUVuQixxREFBb0MsQ0FOcEMseUJBQTBCLENBRDFCLCtCQUFvQyxDQUZwQyxRQUFTLENBS1QsWUFBYSxDQUNiLHNCQUF1QixDQVJ2QixNQUFPLENBRlAsY0FBZSxDQUdmLE9BQVEsQ0FGUixLQUFNLENBV04sWUFFSixDQUVBLDBDQUNJLEdBRUksdUJBQTBCLENBRDFCLFNBRUosQ0FDQSxHQUVJLHlCQUEwQixDQUQxQixTQUVKLENBQ0osQ0FFQSx1Q0FVSSwyRUFBaUUsQ0FEakUsMEJBQTJCLENBUjNCLGVBQW1CLENBT25CLGtDQUEwQyxDQUoxQyxrQkFBbUIsQ0FHbkIscUNBQTBDLENBTDFDLGFBQWMsQ0FVZCxrRUFBMkUsQ0FOM0UsZUFBZ0IsQ0FIaEIsWUFBYSxDQUViLFNBU0osQ0FFQSwyQ0FDSSxHQUNJLFNBQVUsQ0FDVixxQ0FDSixDQUNBLEdBQ0ksU0FBVSxDQUNWLGdDQUNKLENBQ0osQ0FFQSwwQ0FHSSxVQUFZLENBQ1osY0FBZSxDQUNmLGVBQWdCLENBSmhCLGVBQWtCLENBQ2xCLGlCQUlKLENBRUEsMEJBQ0ksWUFBYSxDQUViLE9BQVEsQ0FEUixzQkFBdUIsQ0FFdkIsa0JBQ0osQ0FFQSwrQkFLSSxpQkFBa0IsQ0FIbEIsY0FBZSxDQURmLGNBQWUsQ0FHZixXQUFZLENBRFosdUJBR0osQ0FFQSxxQ0FFSSw2QkFBa0MsQ0FEbEMsb0JBRUosQ0FFQSxvQ0FDSSxjQUFlLENBQ2YsY0FBZSxDQUNmLG9CQUNKLENBRUEsa0NBR0ksNkJBQThCLENBRjlCLGVBQWdCLENBSWhCLGlCQUFrQixDQURsQixlQUFnQixDQUZoQixTQUFVLENBSVYsaUJBQ0osQ0FFQSxtQ0FFSSxrQkFBbUIsQ0FHbkIsOERBQTBFLENBQzFFLDBDQUErQyxDQUwvQyxZQUFhLENBRWIsUUFBUyxDQUNULHNCQUdKLENBRUEsaUNBQ0ksY0FDSixDQUVBLHVDQUNJLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsT0FDSixDQUVBLHVDQUlJLGFBQWMsQ0FIZCxjQUFlLENBQ2Ysb0JBQXNCLENBR3RCLFFBQVMsQ0FGVCx3QkFHSixDQUVBLGtDQUlJLGFBQWMsQ0FGZCxjQUFlLENBQ2YsZUFBZ0IsQ0FGaEIsUUFJSixDQUVBLHFDQUdJLGFBQWMsQ0FEZCxjQUFlLENBRGYsUUFHSixDQUVBLGlDQUtJLGtCQUFtQixDQUpuQixZQUFhLENBRWIsUUFBUyxDQURULHdEQUEyRCxDQUUzRCxzQkFFSixDQUVBLGtDQUNJLGVBQW1CLENBRW5CLHdCQUF5QixDQUR6QixrQkFBbUIsQ0FHbkIseUNBQThDLENBRDlDLFlBRUosQ0FFQSx1Q0FNSSxhQUFjLENBSmQsY0FBZSxDQUNmLGVBQWdCLENBQ2hCLG9CQUFzQixDQUh0QixlQUFrQixDQUlsQix3QkFFSixDQUVBLGlDQUlJLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsUUFBUyxDQUxULGVBQWdCLENBQ2hCLFFBQVMsQ0FDVCxTQUlKLENBRUEsaUNBQ0ksWUFBYSxDQUNiLHFCQUFzQixDQUN0QixPQUNKLENBRUEsc0NBSUksYUFBYyxDQUhkLGNBQWUsQ0FDZixvQkFBc0IsQ0FDdEIsd0JBRUosQ0FFQSxzQ0FFSSxhQUFjLENBRGQsY0FBZSxDQUVmLGVBQWdCLENBRWhCLG9CQUFxQixDQURyQixxQkFFSixDQUVBLG9DQUdJLGFBQWMsQ0FEZCxjQUFlLENBRWYsZUFBZ0IsQ0FIaEIsUUFJSixDQUVBLHdDQUVJLFlBQWEsQ0FDYixjQUFlLENBQ2YsT0FBUSxDQUhSLGVBSUosQ0FFQSw2Q0FHSSw4QkFBbUMsQ0FEbkMsbUJBQW9CLENBRXBCLGFBQWMsQ0FDZCxjQUFlLENBQ2YsZUFBZ0IsQ0FMaEIsZ0JBTUosQ0FFQSxrQ0FFSSxhQUFjLENBQ2QsY0FBZSxDQUZmLFFBR0osQ0FFQSx3Q0FJSSxrREFBNkQsQ0FIN0QseUJBQTBCLENBQzFCLGtCQUFtQixDQUduQixZQUFhLENBQ2IscUJBQXNCLENBQ3RCLFFBQVMsQ0FKVCxZQUtKLENBRUEsMENBRUksa0JBQW1CLENBRG5CLFlBQWEsQ0FHYixRQUFTLENBRFQsNkJBRUosQ0FFQSx5Q0FHSSxhQUFjLENBRmQsY0FBZSxDQUNmLGVBRUosQ0FFQSx5Q0FHSSwrQkFBb0MsQ0FEcEMsbUJBQW9CLENBRXBCLGFBQWMsQ0FDZCxjQUFlLENBQ2YsZUFBZ0IsQ0FDaEIsb0JBQXNCLENBTnRCLGdCQUFpQixDQU9qQix3QkFDSixDQUVBLDJDQUVJLGFBQWMsQ0FDZCxjQUFlLENBQ2YsZUFBZ0IsQ0FIaEIsUUFJSixDQUVBLDRDQUNJLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsT0FDSixDQUVBLGdEQUtJLG1GQUFpRSxDQUZqRSxtRkFBOEcsQ0FDOUcseUJBQTBCLENBRjFCLG1CQUFvQixDQURwQixXQUtKLENBRUEsaURBQ0ksU0FDSixDQUVBLDJEQUNJLEdBQ0ksNEJBQ0osQ0FDQSxHQUNJLDZCQUNKLENBQ0osQ0FFQSx3Q0FJSSxrQkFBbUIsQ0FEbkIsd0JBQXlCLENBRHpCLGtCQUFtQixDQURuQixlQUFnQixDQUloQixlQUNKLENBRUEsMkNBT0kseUNBQThDLENBRDlDLGFBQWMsQ0FMZCxZQUFhLENBSWIsY0FBZSxDQUZmLFFBQVMsQ0FEVCw2QkFBOEIsQ0FFOUIsaUJBSUosQ0FFQSx1REFDSSxlQUNKLENBRUEsa0RBQ0ksYUFDSixDQUVBLG1DQUVJLFlBQWEsQ0FDYixjQUFlLENBQ2YsT0FBUSxDQUhSLG1CQUlKLENBRUEsdUNBRUksa0JBQW1CLENBS25CLG1CQUFvQixDQU5wQixtQkFBb0IsQ0FHcEIsY0FBZSxDQUNmLGVBQWdCLENBRmhCLE9BQVEsQ0FHUixnQkFFSixDQUVBLHVDQUNJLDhCQUFtQyxDQUNuQyxhQUNKLENBRUEseUNBQ0ksOEJBQW1DLENBQ25DLGFBQ0osQ0FFQSx1Q0FHSSxrQkFBbUIsQ0FGbkIsWUFBYSxDQUtiLGNBQWUsQ0FGZixRQUFTLENBRlQsd0JBQXlCLENBR3pCLG1CQUVKLENBRUEsdUNBR0ksZUFBbUIsQ0FGbkIsd0JBQXlCLENBQ3pCLG1CQUFvQixDQUVwQixhQUFjLENBSWQsY0FBZSxDQUZmLGNBQWUsQ0FDZixlQUFnQixDQUZoQixnQkFBaUIsQ0FJakIsNkVBQ0osQ0FFQSw2Q0FDSSxrQkFBbUIsQ0FDbkIsb0JBQXFCLENBQ3JCLDBCQUNKLENBRUEsdUNBR0ksa0JBQW1CLENBRm5CLFlBQWEsQ0FDYixxQkFBc0IsQ0FFdEIsUUFBUyxDQUNULFlBQ0osQ0FFQSx3Q0FDSSxpQkFDSixDQUVBLHlDQUdJLGFBQWMsQ0FGZCxhQUFjLENBQ2QsZUFFSixDQUVBLDJDQUNJLGFBQ0osQ0FFQSxzQ0FFSSxhQUFjLENBRGQsY0FBZ0IsQ0FFaEIsY0FDSixDQUVBLHVDQUdJLGtCQUFtQixDQUZuQix3QkFBeUIsQ0FDekIsa0JBQW1CLENBRW5CLFlBQ0osQ0FFQSwrQ0FFSSxhQUFjLENBQ2QsY0FBZSxDQUNmLGVBQWdCLENBQ2hCLGVBQWdCLENBSmhCLFFBS0osQ0FFQSxpREFFSSxhQUFjLENBQ2QsY0FBZSxDQUNmLGVBQWdCLENBSGhCLGNBSUosQ0FFQSx5Q0FFSSxZQUFhLENBQ2IsY0FBZSxDQUNmLE9BQVEsQ0FIUixlQUlKLENBRUEsNENBR0ksZUFBbUIsQ0FGbkIsd0JBQXlCLENBQ3pCLG1CQUFvQixDQUVwQixhQUFjLENBSWQsY0FBZSxDQUZmLGNBQWUsQ0FDZixlQUFnQixDQUZoQixnQkFBaUIsQ0FJakIsMERBQ0osQ0FFQSxrREFDSSxrQkFBbUIsQ0FDbkIsb0JBQ0osQ0FFQSxxREFDSSxjQUFlLENBQ2YsV0FDSixDQUVBLHNDQUdJLHNCQUF1QixDQUV2QixrREFBNkQsQ0FDN0QsK0JBQWdDLENBSmhDLFlBQWEsQ0FFYixRQUFTLENBSFQsc0JBTUosQ0FFQSxvQ0FPSSxrQkFBbUIsQ0FIbkIsa0RBQXFELENBRHJELGtCQUFtQixDQU9uQix5Q0FBOEMsQ0FMOUMsVUFBVyxDQUNYLG1CQUFvQixDQUdwQixjQUFlLENBUGYsV0FBWSxDQU1aLHNCQUF1QixDQVB2QixVQVVKLENBRUEsMENBQ0ksTUFDSixDQUVBLHFDQUlJLGFBQWMsQ0FGZCxjQUFlLENBQ2YsZUFBZ0IsQ0FGaEIsUUFJSixDQUVBLHdDQUVJLGFBQWMsQ0FDZCxjQUFlLENBRmYsY0FHSixDQUVBLHNDQU9JLGtCQUFtQixDQUxuQixtQkFBb0IsQ0FJcEIsbUJBQW9CLENBRnBCLGNBQWUsQ0FDZixlQUFnQixDQUdoQixPQUFRLENBUFIsZ0JBQWlCLENBRWpCLGdCQUFpQixDQU1qQixrQkFDSixDQUVBLG9DQUlJLHVCQUF3QixDQUR4QixpQkFBa0IsQ0FFbEIsb0JBQXFCLENBSHJCLFVBQVcsQ0FEWCxTQUtKLENBRUEsdUNBRUksZUFBbUIsQ0FDbkIsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixRQUFTLENBSlQsc0JBS0osQ0FFQSxrQ0FFSSxhQUFjLENBQ2QsY0FBZSxDQUNmLGVBQWdCLENBSGhCLFFBSUosQ0FFQSxrQ0FHSSxrQkFBbUIsQ0FFbkIsYUFBYyxDQUpkLFlBQWEsQ0FHYixjQUFlLENBRmYsNkJBSUosQ0FFQSxvQ0FHSSxlQUFnQixDQUZoQixvQkFBc0IsQ0FDdEIsd0JBRUosQ0FFQSxvQ0FFSSxhQUFjLENBRGQsZUFFSixDQUVBLGlGQUVJLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsUUFDSixDQUVBLCtCQUlJLGtCQUFtQixDQUhuQix3QkFBeUIsQ0FDekIsa0JBQW1CLENBR25CLHlDQUE4QyxDQUY5QyxZQUdKLENBRUEsc0NBQ0ksYUFBYyxDQUVkLGNBQWUsQ0FEZixlQUFnQixDQUdoQix3QkFBeUIsQ0FEekIsb0JBRUosQ0FFQSxtQ0FJSSxrQkFBbUIsQ0FDbkIsYUFBYyxDQUhkLFlBQWEsQ0FJYixjQUFlLENBSGYsNkJBQThCLENBRjlCLGVBTUosQ0FFQSxxQ0FNSSwrQkFBb0MsQ0FKcEMsbUJBQW9CLENBR3BCLGFBQWMsQ0FGZCxjQUFlLENBQ2YsZUFBZ0IsQ0FIaEIsZ0JBTUosQ0FFQSwrQkFDSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLFFBQ0osQ0FFQSxxQ0FFSSxrQkFBbUIsQ0FDbkIsd0JBQXlCLENBQ3pCLGtCQUFtQixDQUNuQixhQUFjLENBQ2QsZUFBZ0IsQ0FMaEIsWUFNSixDQUVBLHFDQUVJLGFBQWMsQ0FEZCxjQUFlLENBRWYsaUJBQ0osQ0FFQSx3Q0FDSSwrQkFBb0MsQ0FDcEMsYUFDSixDQUVBLHdDQUNJLDhCQUFtQyxDQUNuQyxhQUNKLENBRUEsc0NBQ0ksOEJBQW1DLENBQ25DLGFBQ0osQ0FFQSx3Q0FDSSwrQkFBb0MsQ0FDcEMsYUFDSixDQUVBLHNDQUtJLGtCQUFtQixDQUVuQixrQkFBbUIsQ0FKbkIsNEJBQTZCLENBQzdCLFlBQWEsQ0FFYixRQUFTLENBSlQsMkJBTUosQ0FFQSw0Q0FDSSxrQkFBbUIsQ0FFbkIsOERBQTBFLENBQzFFLCtCQUFnQyxDQUZoQyxRQUdKLENBRUEsNENBRUksa0JBQW1CLENBRG5CLFlBQWEsQ0FFYixRQUNKLENBRUEsdUNBT0ksa0JBQW1CLENBSG5CLGtCQUFtQixDQVNuQix1QkFBMkIsQ0FEM0IscUJBQXNCLENBVHRCLGlCQUFrQixDQVdsQix5Q0FBOEMsQ0FUOUMsYUFBYyxDQUNkLG1CQUFvQixDQUlwQixjQUFlLENBRGYsZUFBZ0IsQ0FQaEIsV0FBWSxDQU1aLHNCQUF1QixDQUd2QixvQkFBc0IsQ0FWdEIsVUFjSixDQUVBLDhDQUNJLGFBQ0osQ0FFQSx3Q0FDSSxrREFDSixDQUVBLDJDQUNJLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsT0FBUSxDQUNSLGVBQ0osQ0FFQSxzQ0FJSSxhQUFjLENBRmQsY0FBZSxDQUNmLGVBQWdCLENBRmhCLFFBSUosQ0FFQSx3Q0FHSSxrQkFBbUIsQ0FHbkIsYUFBYyxDQUxkLFlBQWEsQ0FDYixjQUFlLENBR2YsY0FBZSxDQURmLFFBQVMsQ0FHVCxrQkFDSixDQUVBLHFDQUVJLGFBQWMsQ0FEZCxjQUVKLENBRUEseUNBQ0ksa0JBQW1CLENBRW5CLG1CQUFvQixDQURwQixhQUFjLENBR2QsY0FBZSxDQUNmLGVBQWdCLENBRmhCLGdCQUdKLENBRUEsNENBQ0ksa0JBQW1CLENBQ25CLHdCQUF5QixDQUN6QixrQkFBbUIsQ0FDbkIsWUFDSixDQUVBLGlEQUlJLGFBQWMsQ0FIZCxjQUFlLENBSWYsZUFBZ0IsQ0FIaEIsb0JBQXNCLENBQ3RCLHdCQUdKLENBRUEsMkNBR0ksa0JBQW1CLENBRm5CLGVBQWdCLENBQ2hCLGVBRUosQ0FFQSxzQ0FHSSxhQUFjLENBRGQsY0FBZSxDQURmLGVBR0osQ0FFQSxxQ0FZSSxrQkFBbUIsQ0FIbkIsZUFBZ0IsQ0FEaEIsd0JBQXlCLENBRHpCLG1CQUFvQixDQVFwQix3Q0FBNkMsQ0FMN0MsYUFBYyxDQUlkLGNBQWUsQ0FIZixtQkFBb0IsQ0FMcEIsV0FBWSxDQU9aLHNCQUF1QixDQVp2QixpQkFBa0IsQ0FFbEIsVUFBVyxDQURYLFFBQVMsQ0FjVCxvRkFBNEYsQ0FYNUYsVUFBVyxDQURYLFNBYUosQ0FFQSwyQ0FDSSxrQkFBbUIsQ0FFbkIseUNBQThDLENBRDlDLGFBQWMsQ0FFZCwwQkFDSixDQUVBLG1EQUNJLHlCQUEwQixDQUMxQixrQkFDSixDQUVBLG9DQUVJLGNBQWUsQ0FEZixRQUVKLENBRUEsMkNBRUksa0JBQW1CLENBRG5CLFlBQWEsQ0FHYixjQUFlLENBRGYsUUFFSixDQUVBLHNDQUVJLGtCQUFtQixDQUduQixhQUFjLENBSmQsbUJBQW9CLENBRXBCLFFBQVMsQ0FDVCxvQkFFSixDQUVBLGdEQUNJLGFBQ0osQ0FFQSxxQ0FNSSx1QkFBMkIsQ0FDM0IsMkJBQTRCLENBRjVCLHFCQUFzQixDQUR0Qix3QkFBeUIsQ0FEekIsbUJBQW9CLENBS3BCLHdDQUE2QyxDQU43QyxXQUFZLENBRFosVUFRSixDQUVBLG1DQUdJLGFBQWMsQ0FGZCxjQUFlLENBQ2YsZUFFSixDQUVBLHNDQUdJLGFBQWMsQ0FGZCxjQUFlLENBQ2YsZUFFSixDQUVBLG9DQUdJLGtCQUFtQixDQUVuQixhQUFjLENBSGQsbUJBQW9CLENBRHBCLGNBQWUsQ0FHZixzQkFFSixDQUVBLHFDQUlJLHVCQUF5QixDQUZ6Qix3QkFBMEIsQ0FDMUIseUJBQTJCLENBRjNCLGtCQUFvQixDQUlwQix5QkFDSixDQUVBLHVDQUVJLGVBQWdCLENBQ2hCLGVBQWdCLENBQ2hCLGVBQWdCLENBSGhCLGlCQUlKLENBRUEsc0NBSUksa0JBQW1CLENBSG5CLHdCQUF5QixDQUN6QixrQkFBbUIsQ0FHbkIsa0JBQW1CLENBRm5CLGVBR0osQ0FFQSx3Q0FDSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLFFBQ0osQ0FFQSxzQ0FDSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLE9BQ0osQ0FFQSx3Q0FLSSxhQUFjLENBSmQsY0FBZSxDQUNmLGVBQWdCLENBRWhCLG9CQUFzQixDQUR0Qix3QkFHSixDQUVBLHNDQUNJLFlBQWEsQ0FDYixjQUFlLENBQ2YsT0FDSixDQUVBLHdDQUlJLGtCQUFtQixDQUhuQixxQ0FBMEMsQ0FDMUMsa0JBQW1CLENBQ25CLFlBRUosQ0FFQSw4Q0FFSSxrQkFBbUIsQ0FEbkIsWUFBYSxDQUdiLFFBQVMsQ0FEVCw2QkFBOEIsQ0FFOUIsa0JBQ0osQ0FFQSw2Q0FLSSxrQkFBbUIsQ0FGbkIsYUFBYyxDQUNkLFlBQWEsQ0FIYixjQUFlLENBQ2YsZUFBZ0IsQ0FJaEIsT0FDSixDQUVBLDZDQUNJLCtCQUFvQyxDQUNwQyxxQ0FBMEMsQ0FDMUMsbUJBQW9CLENBSXBCLGFBQWMsQ0FEZCxjQUFlLENBRGYsY0FBZSxDQURmLGdCQUFpQixDQUlqQix1QkFDSixDQUVBLG1EQUNJLGdDQUNKLENBRUEsc0NBQ0ksWUFBYSxDQUNiLHFCQUFzQixDQUN0QixRQUFTLENBQ1QsZUFDSixDQUVBLHFDQUVJLGVBQWdCLENBRGhCLGVBRUosQ0FFQSxxQ0FDSSxlQUNKLENBRUEsb0NBRUksYUFBYyxDQURkLGNBQWUsQ0FFZixpQkFBa0IsQ0FFbEIsZUFBZ0IsQ0FDaEIsc0JBQXVCLENBRnZCLGtCQUdKLENBRUEsc0NBQ0ksYUFBYyxDQUNkLG9CQUNKLENBRUEsc0NBQ0ksd0JBQTBCLENBQzFCLHlCQUEyQixDQUUzQixlQUFnQixDQURoQix3QkFFSixDQUVBLHdDQUNJLGFBQWMsQ0FDZCxvQkFDSixDQUVBLDhDQUNJLHlCQUNKLENBRUEsd0NBR0ksYUFBYyxDQUZkLGNBQWUsQ0FDZixnQkFBaUIsQ0FFakIsUUFDSixDQUVBLDhCQUdJLGFBQWMsQ0FDZCxpQkFBa0IsQ0FIbEIsWUFBYSxDQUNiLGlCQUdKLENBTUEsd0VBRUksYUFBYyxDQURkLGVBRUosQ0FFQSxvQ0FLSSxrQkFBbUIsQ0FIbkIscUJBQXNCLENBQ3RCLGlCQUFrQixDQUZsQixlQUFnQixDQUdoQixlQUVKLENBRUEsbUNBSUksV0FBWSxDQUNaLGFBQWMsQ0FIZCxXQUFZLENBQ1osZ0JBQWlCLENBRmpCLFVBS0osQ0FFQSxxQ0FDSSxrQkFBbUIsQ0FHbkIscUJBQXNCLENBRHRCLGlCQUFrQixDQUVsQixrQkFBbUIsQ0FIbkIsWUFJSixDQUVBLHVDQUVJLGNBQWdCLENBRGhCLFlBRUosQ0FFQSw0Q0FDSSxVQUNKLENBRUEsdUNBQ0ksYUFBYyxDQUNkLG9CQUFxQixDQUNyQixvQkFDSixDQUVBLDZDQUNJLHlCQUNKLENBRUEsb0NBQ0ksZUFBZ0IsQ0FHaEIscUJBQXNCLENBRHRCLGlCQUFrQixDQUVsQixnQkFBaUIsQ0FDakIsZUFBZ0IsQ0FKaEIsWUFLSixDQUVBLHVDQUVJLFVBQVcsQ0FDWCxhQUFjLENBRmQsZUFHSixDQUVBLGlDQUNJLGVBQWlCLENBQ2pCLGNBQWUsQ0FDZixVQUNKLENBRUEsMENBQ0ksa0JBQW1CLENBR25CLHFCQUFzQixDQUR0QixpQkFBa0IsQ0FFbEIsa0JBQW1CLENBQ25CLGdCQUFpQixDQUNqQixlQUFnQixDQUxoQixZQU1KLENBRUEsNkNBSUksa0JBQW1CLENBSG5CLHdCQUF5QixDQUN6QixrQkFBbUIsQ0FDbkIsZUFFSixDQUVBLDBSQUlJLDRCQUNKLENBRUEsaUNBRUksZUFBaUIsQ0FEakIsUUFBUyxDQUVULG9CQUFxQixDQUNyQixxQkFDSixDQUVBLG1FQUNJLGtCQUFtQixDQUNuQixhQUNKLENBRUEsZ0NBUUksNkJBQXFDLENBSnJDLGtDQUEwQyxDQUMxQyxrQkFBbUIsQ0FJbkIsYUFBYyxDQUNkLGNBQWUsQ0FDZixlQUFnQixDQUxoQixrQkFBbUIsQ0FKbkIsZ0JBQWlCLENBQ2pCLFlBQWEsQ0FJYixlQUFnQixDQUtoQix1QkFBeUIsQ0FYekIsVUFZSixDQUVBLHNDQUVJLDZCQUFxQyxDQURyQyxvQkFBcUIsQ0FFckIsdUNBQTRDLENBQzVDLFlBQ0osQ0FFQSwwQ0FFSSw2QkFBcUMsQ0FEckMsa0NBRUosQ0FFQSxrQ0FDSSxZQUFhLENBRWIsUUFBUyxDQURULHdCQUVKLENBRUEseUNBRUksV0FBWSxDQUNaLGlCQUFrQixDQUNsQixjQUFlLENBQ2YsY0FBZSxDQUNmLGVBQWdCLENBRWhCLGNBQWUsQ0FQZixpQkFBa0IsQ0FNbEIsdUJBRUosQ0FFQSxxREFDSSxrQ0FBMEMsQ0FFMUMsa0NBQTBDLENBRDFDLGFBRUosQ0FFQSwwRUFDSSxrQ0FBMEMsQ0FDMUMsYUFDSixDQUVBLG9EQUNJLCtDQUE2RCxDQUM3RCxVQUNKLENBRUEseUVBQ0ksa0RBQTZELENBRTdELHdDQUE2QyxDQUQ3QywwQkFFSixDQUVBLDZEQUVJLGtCQUFtQixDQURuQixVQUVKLENBRUEsbUNBRUksa0JBQW1CLENBSW5CLCtDQUE2RCxDQUU3RCxXQUFZLENBQ1osaUJBQWtCLENBS2xCLHVDQUE0QyxDQVA1QyxVQUFjLENBR2QsY0FBZSxDQVRmLG1CQUFvQixDQVVwQixjQUFlLENBQ2YsZUFBZ0IsQ0FSaEIsT0FBUSxDQURSLHNCQUF1QixDQUV2QixpQkFBa0IsQ0FRbEIsdUJBRUosQ0FFQSx5Q0FDSSw0Q0FBNkQsQ0FFN0Qsd0NBQTZDLENBRDdDLDBCQUVKLENBRUEsMENBRUksdUNBQTRDLENBRDVDLHVCQUVKLENBRUEsdUNBQ0ksYUFDSixDQUVBLHdDQUNJLGVBQ0osQ0FHQSwrQkFrQkksaURBQW1ELENBaEJuRCw0QkFBOEIsQ0FlOUIsb0NBQXNDLENBVnRDLHlEQUF3RSxDQUV4RSxxQkFBdUIsQ0FDdkIsNEJBQThCLENBTTlCLGtEQUF3RCxDQVJ4RCxvQkFBeUIsQ0FNekIsd0JBQTBCLENBYjFCLDZCQUErQixDQVUvQix3QkFBMEIsQ0FDMUIseUJBQTJCLENBUjNCLGlCQUFtQixDQURuQixnQ0FBa0MsQ0FVbEMseUJBQTJCLENBUDNCLGtCQUFvQixDQWVwQix5QkFBMkIsQ0FDM0IseUJBQTJCLENBRTNCLHlCQUEyQixDQW5CM0IsMkJBQTZCLENBa0I3QiwyQkFBNkIsQ0FKN0IsbUNBQXFDLENBSnJDLDBEQUFvRSxDQUtwRSwwQkFLSixDQUVBLHNDQU9JLDRFQUFzRixDQU50RixVQUFXLENBS1gsV0FBWSxDQUZaLFVBQVcsQ0FGWCxpQkFBa0IsQ0FDbEIsS0FBTSxDQUtOLHdCQUEwQixDQUgxQixVQUlKLENBRUEsNENBQ0ksU0FDSixDQUVBLG9EQUNJLDRDQUE2RCxDQUU3RCx3Q0FBNkMsQ0FEN0Msc0NBRUosQ0FFQSxzQ0FHSSx3Q0FBNkMsQ0FGN0MscUNBQXVDLENBQ3ZDLDZCQUVKLENBRUEscUNBRUkscUVBQStFLENBRC9FLFlBRUosQ0FFQSxtQ0FNSSw0Q0FBaUQsQ0FIakQsYUFBYyxDQURkLFdBQVksQ0FFWixTQUFVLENBQ1YsZ0RBQXlELENBSnpELFVBTUosQ0FFQSx5Q0FFSSw0Q0FBaUQsQ0FEakQsbUNBRUosQ0FFQSxtQ0FFSSxlQUFnQixDQUdoQixTQUFVLENBRFYsb0NBQXlDLENBRHpDLHVCQUF5QixDQUZ6QixrQkFLSixDQUVBLHdFQUNJLHlCQUNKLENBR0Esc0NBa0JJLGlEQUFtRCxDQWhCbkQsNEJBQThCLENBZTlCLG9DQUFzQyxDQVZ0Qyx5REFBd0UsQ0FFeEUscUJBQXVCLENBQ3ZCLDRCQUE4QixDQU05QixrREFBd0QsQ0FSeEQsb0JBQXlCLENBTXpCLHdCQUEwQixDQWIxQiw2QkFBK0IsQ0FVL0Isd0JBQTBCLENBQzFCLHlCQUEyQixDQVIzQixpQkFBbUIsQ0FEbkIsZ0NBQWtDLENBVWxDLHlCQUEyQixDQVAzQixrQkFBb0IsQ0FlcEIseUJBQTJCLENBQzNCLHlCQUEyQixDQUUzQix5QkFBMkIsQ0FuQjNCLDJCQUE2QixDQWtCN0IsMkJBQTZCLENBSjdCLG1DQUFxQyxDQUpyQywwREFBb0UsQ0FLcEUsMEJBS0osQ0FFQSw2Q0FPSSw0RUFBc0YsQ0FOdEYsVUFBVyxDQUtYLFdBQVksQ0FGWixVQUFXLENBRlgsaUJBQWtCLENBQ2xCLEtBQU0sQ0FLTix3QkFBMEIsQ0FIMUIsVUFJSixDQUVBLG1EQUNJLFNBQ0osQ0FFQSwyREFDSSw0Q0FBNkQsQ0FFN0Qsd0NBQTZDLENBRDdDLHNDQUVKLENBRUEsNkNBR0ksd0NBQTZDLENBRjdDLHFDQUF1QyxDQUN2Qyw2QkFFSixDQUVBLDRDQUVJLHFFQUErRSxDQUQvRSxZQUVKLENBRUEsMENBTUksNENBQWlELENBSGpELGFBQWMsQ0FEZCxXQUFZLENBRVosU0FBVSxDQUNWLGdEQUF5RCxDQUp6RCxVQU1KLENBRUEsZ0RBRUksNENBQWlELENBRGpELG9CQUVKLENBRUEsK0VBQ0kseUJBQ0osQ0FFQSx3Q0FDSSxvQkFBcUIsQ0FDckIsaUJBQ0osQ0FFQSw2QkFJSSxlQUFnQixDQUNoQixxQkFBc0IsQ0FHdEIsb0NBQXlDLENBTHpDLE1BQU8sQ0FJUCxlQUFnQixDQU5oQixpQkFBa0IsQ0FDbEIsUUFBUyxDQUlULFVBR0osQ0FFQSxpQ0FLSSxlQUFnQixDQURoQixXQUFZLENBSVosVUFBVyxDQURYLGNBQWUsQ0FOZixhQUFjLENBRWQsZ0JBQWlCLENBR2pCLGVBQWdCLENBSmhCLFVBT0osQ0FFQSx1Q0FDSSx3QkFDSixDQUVBLG9DQUVJLHFCQUFzQixDQUR0QixVQUFXLENBRVgsWUFDSixDQUVBLHNDQUtJLGVBQW1CLENBRG5CLHdCQUF5QixDQUR6QixrQkFBbUIsQ0FHbkIsd0NBQTZDLENBQzdDLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsT0FBUSxDQVBSLGVBQWdCLENBRGhCLHFCQVNKLENBRUEsdUNBRUksa0JBQW1CLENBTW5CLHNCQUF1QixDQUR2QixXQUFZLENBRFosa0JBQW1CLENBR25CLGNBQWUsQ0FSZixZQUFhLENBRWIsUUFBUyxDQUVULGVBQWdCLENBTWhCLGVBQWdCLENBRGhCLGlEQUFxRCxDQU5yRCxVQVFKLENBRUEsNkNBQ0ksa0JBQW1CLENBQ25CLDJCQUNKLENBRUEscURBQ0kseUJBQTBCLENBQzFCLGtCQUNKLENBRUEscUNBSUksa0JBQW1CLENBRG5CLGtCQUFtQixDQUVuQixhQUFjLENBQ2QsWUFBYSxDQUViLGFBQWMsQ0FOZCxXQUFZLENBS1osa0JBQW1CLENBRW5CLDZDQUFpRCxDQVJqRCxVQVNKLENBRUEsK0ZBQ0ksa0JBQW1CLENBQ25CLGFBQ0osQ0FFQSxnR0FDSSxrQkFBbUIsQ0FDbkIsYUFDSixDQUVBLHFDQUVJLFlBQWEsQ0FEYixNQUFPLENBRVAscUJBQXNCLENBQ3RCLE9BQ0osQ0FFQSxzQ0FHSSxhQUFjLENBRmQsZ0JBQWtCLENBQ2xCLGVBRUosQ0FFQSw0Q0FFSSxhQUFjLENBRGQsZ0JBRUosQ0FFQSwwQ0FNSSxtQkFBb0IsQ0FMcEIsZ0JBQWtCLENBR2xCLGVBQWdCLENBRmhCLG9CQUFzQixDQUd0QixlQUFnQixDQUZoQix3QkFJSixDQUVBLGdEQUVJLGtCQUFtQixDQUNuQix3QkFBeUIsQ0FGekIsYUFHSixDQUVBLGtEQUVJLGtCQUFtQixDQUNuQix3QkFBeUIsQ0FGekIsYUFHSixDQUdBLGdDQUNJLDREQUNKLENBRUEscURBQ0ksNERBQ0osQ0FFQSwyREFFSSxxQkFBdUIsQ0FEdkIsb0JBRUosQ0FFQSwwREFDSSw0REFDSixDQUVBLCtFQUNJLDREQUF3RSxDQUV4RSwwQ0FBK0MsQ0FEL0Msc0NBRUosQ0FFQSxvQ0FDSSw2QkFDSixDQUVBLDhEQUNJLG9CQUNKLENBRUEsK0RBQ0ksVUFDSixDQUVBLCtCQUNJLDREQUF3RSxDQUN4RSx1QkFDSixDQUVBLG9EQUNJLDREQUNKLENBRUEsd0NBRUksNEJBQThCLENBRDlCLG9CQUVKLENBRUEsbUNBQ0ksNkJBQ0osQ0FFQSw2Q0FDSSxvQ0FBMkMsQ0FDM0Msa0JBQ0osQ0FHQSwwQ0FRSSxrQkFBbUIsQ0FDbkIsMEJBQTJCLENBTDNCLHlFQUE0RixDQUM1RiwwQ0FBK0MsQ0FDL0MsWUFBYSxDQUxiLFlBQWEsQ0FNYixzQkFBdUIsQ0FKdkIsaUJBQWtCLENBRGxCLFVBUUosQ0FHQSx1Q0FFSSxrQkFBbUIsQ0FTbkIsMEJBQTJCLENBTjNCLHlFQUE0RixDQUM1RixtQ0FBd0MsQ0FDeEMsa0JBQW1CLENBS25CLHVDQUE0QyxDQUo1QyxhQUFjLENBUGQsbUJBQW9CLENBUXBCLGNBQWUsQ0FDZixlQUFnQixDQVBoQixPQUFRLENBQ1IsZ0JBQWlCLENBU2pCLGlCQUNKLENBRUEsMkNBSUksdUVBQXFELENBRHJELGFBQWMsQ0FEZCxXQUFZLENBRFosVUFJSixDQUVBLDRDQUNJLGVBQWdCLENBQ2hCLG9DQUNKLENBR0EsbUNBU0kscUVBQW1ELENBRm5ELGtCQUFtQixDQUNuQixpQkFBa0IsQ0FGbEIsVUFBVyxDQUxYLGlCQUFrQixDQUNsQixTQUFVLENBQ1YsT0FBUSxDQUNSLDBCQUEyQixDQUMzQixTQUtKLENBRUEsaURBQ0ksTUFHSSxTQUFVLENBRFYsa0JBRUosQ0FDQSxJQUVJLFVBQVksQ0FEWixvQkFFSixDQUNKLENBRUEsNkNBQ0ksTUFHSSxTQUFVLENBRFYsbUNBRUosQ0FDQSxJQUVJLFVBQVksQ0FEWixxQ0FFSixDQUNKLENBR0EsdUVBSUksa0JBQW1CLENBRG5CLGNBQWUsQ0FGZixpQkFBa0IsQ0FDbEIsZ0JBR0osQ0FFQSwyRUFFSSxXQUFZLENBRFosVUFFSixDQUdBLG1DQVVJLG9CQUFxQixDQUZyQixnRUFBK0MsQ0FJL0MsMEJBQTJCLENBUDNCLGtCQUFtQixDQUNuQix5Q0FBOEMsQ0FLOUMsZUFBZ0IsQ0FGaEIsZUFBZ0IsQ0FMaEIsaUJBQWtCLENBU2xCLG1CQUFvQixDQVpwQixjQUFlLENBRWYsVUFBVyxDQURYLFFBQVMsQ0FLVCxhQU9KLENBRUEsMENBQ0ksa0RBQTZELENBQzdELGFBQ0osQ0FFQSx3Q0FDSSxrREFBNkQsQ0FDN0QsYUFDSixDQUVBLG9EQUNJLEdBRUksU0FBVSxDQURWLDBCQUVKLENBRUEsR0FFSSxTQUFVLENBRFYsdUJBRUosQ0FDSixDQUdBLHlCQUNJLHlCQUNJLDhCQUErQixDQUMvQiwrQkFBZ0MsQ0FDaEMscUhBSUMsQ0FDRCw4QkFBK0IsQ0FDL0IsMkJBQTRCLENBQzVCLDJCQUE0QixDQUM1QiwyQkFBNEIsQ0FDNUIsNkJBQ0osQ0FFQSw0QkFFSSxPQUFRLENBRFIsa0JBRUosQ0FFQSxrRUFDSSxpQkFDSixDQUVBLGlFQUNJLGtCQUNKLENBRUEsaUdBR0ksa0JBQW1CLENBRG5CLGNBQWUsQ0FEZixpQkFHSixDQUVBLDRGQUNJLGNBQ0osQ0FTQSwrREFJSSxRQUFTLENBRFQsMERBRUosQ0FFQSx1Q0FFSSxXQUFZLENBRVosY0FBZSxDQURmLDJCQUE0QixDQUU1QixnQkFBaUIsQ0FKakIsVUFLSixDQUVBLDJDQUNJLG1DQUNKLENBRUEsbUNBR0ksY0FBZSxDQURmLFdBQVksQ0FFWixzQkFBdUIsQ0FIdkIsVUFJSixDQUVBLCtCQUNJLDJCQUE2QixDQU03QixlQUFpQixDQUpqQixxQkFBdUIsQ0FLdkIsa0JBQW9CLENBSHBCLHlCQUEyQixDQUQzQix3QkFBMEIsQ0FFMUIsbUJBQXFCLENBSnJCLG9CQU9KLENBRUEsbUNBRUkscUJBQXVCLENBRHZCLG9CQUVKLENBRUEsbUNBQ0ksc0JBQ0osQ0FFQSxzQ0FDSSwyQkFBNkIsQ0FNN0IsZUFBaUIsQ0FKakIscUJBQXVCLENBS3ZCLGtCQUFvQixDQUhwQix5QkFBMkIsQ0FEM0Isd0JBQTBCLENBRTFCLG1CQUFxQixDQUpyQixvQkFPSixDQUVBLDBDQUVJLHFCQUF1QixDQUR2QixvQkFFSixDQUVBLHlFQUNJLHNCQUNKLENBRUEsdUNBR0ksa0JBQW1CLENBRm5CLFdBQVksQ0FHWixlQUFnQixDQUNoQixlQUFnQixDQUhoQixpQkFJSixDQUVBLDBCQUNJLE9BQVEsQ0FDUixrQkFDSixDQUVBLCtCQUNJLGNBQWUsQ0FDZixXQUNKLENBRUEsa0NBQ0ksNkJBQThCLENBQzlCLE9BQ0osQ0FFQSx5Q0FJSSxrQkFBbUIsQ0FEbkIsY0FBZSxDQURmLFlBQWEsQ0FEYixVQUlKLENBRUEsNENBRUksc0JBQXVCLENBRHZCLHFCQUVKLENBRUEsNENBQ0ksMEJBQ0osQ0FFQSx3Q0FDSSxzQkFDSixDQUNKLENBRUEseUJBQ0kseUJBQ0ksNkJBQThCLENBQzlCLCtCQUFnQyxDQUNoQyxxSEFJQyxDQUNELDZCQUE4QixDQUM5QiwyQkFBNEIsQ0FDNUIsMkJBQTRCLENBQzVCLDZCQUNKLENBRUEsNEJBRUksT0FBUSxDQURSLGlCQUVKLENBRUEsa0VBQ0ksZ0JBQ0osQ0FFQSxpR0FHSSxrQkFBbUIsQ0FEbkIsY0FBZSxDQURmLGlCQUdKLENBRUEsNEZBQ0ksY0FDSixDQVNBLCtEQUlJLE9BQVEsQ0FEUix5REFFSixDQUVBLHVDQUVJLFdBQVksQ0FDWiwyQkFBNEIsQ0FGNUIsVUFHSixDQUVBLHlGQUVJLHFCQUNKLENBRUEsK0JBQ0ksMkJBQTZCLENBTTdCLGVBQWlCLENBSmpCLHFCQUF1QixDQUt2QixrQkFBb0IsQ0FIcEIseUJBQTJCLENBRDNCLHdCQUEwQixDQUUxQixtQkFBcUIsQ0FKckIsb0JBT0osQ0FFQSxtQ0FFSSxxQkFBdUIsQ0FEdkIsb0JBRUosQ0FFQSxtQ0FDSSxzQkFDSixDQUVBLHNDQUNJLDJCQUE2QixDQU03QixlQUFpQixDQUpqQixxQkFBdUIsQ0FLdkIsa0JBQW9CLENBSHBCLHlCQUEyQixDQUQzQix3QkFBMEIsQ0FFMUIsbUJBQXFCLENBSnJCLG9CQU9KLENBRUEsMENBRUkscUJBQXVCLENBRHZCLG9CQUVKLENBRUEseUVBQ0ksc0JBQ0osQ0FFQSxtQ0FHSSxjQUFlLENBRGYsV0FBWSxDQUVaLHNCQUF1QixDQUh2QixVQUlKLENBRUEsZ0NBRUksb0JBQXFCLENBRHJCLFNBRUosQ0FFQSx1Q0FHSSwyQkFBNEIsQ0FGNUIsUUFBUyxDQUdULGVBQWdCLENBQ2hCLHNCQUF1QixDQUh2QixVQUlKLENBQ0osQ0FHQSx1Q0FDSSw4TUFLSSxjQUNKLENBRUEsOFFBS0ksZUFDSixDQUNKLENBR0EsK0JBQ0ksaUdBQ0ksZ0JBQ0osQ0FFQSx3RUFDSSxnQkFDSixDQUVBLHNFQUNJLGdCQUNKLENBQ0osQ0FHQSxtQ0FFSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLFFBQVMsQ0FIVCxrQkFJSixDQUVBLHFDQUNJLGtCQUNKLENBRUEsb0NBQ0ksWUFBYSxDQUNiLHFCQUFzQixDQUN0QixPQUNKLENBRUEscUNBSUksYUFBYyxDQUhkLGNBQWUsQ0FDZixvQkFBc0IsQ0FDdEIsd0JBRUosQ0FFQSxrQ0FDSSxlQUFtQixDQUNuQix3QkFBeUIsQ0FDekIsa0JBQW1CLENBR25CLHVDQUE0QyxDQUQ1QyxrQkFBbUIsQ0FEbkIsaUJBR0osQ0FFQSwrQkFDSSxZQUFhLENBR2IsY0FBZSxDQUZmLE9BQVEsQ0FHUixlQUFnQixDQUZoQixpQkFHSixDQUVBLDBDQUNJLGVBQ0osQ0FFQSxzQ0FFSSxhQUFjLENBQ2QsZUFBZ0IsQ0FGaEIsY0FHSixDQUVBLG9DQUNJLGFBQWMsQ0FDZCxxQkFDSixDQUVBLDhCQUNJLGVBQ0osQ0FFQSxxQ0FHSSxhQUFjLENBRmQsYUFBYyxDQUlkLGNBQWUsQ0FEZixlQUFnQixDQUZoQixrQkFJSixDQUVBLHFDQUNJLGVBQW1CLENBQ25CLHdCQUF5QixDQUN6QixrQkFBbUIsQ0FLbkIsdUNBQTRDLENBSDVDLGVBQWdCLENBQ2hCLGdCQUFpQixDQUNqQixlQUFnQixDQUhoQixZQUtKLENBRUEsdUNBQ0ksZUFDSixDQUVBLGtEQUNJLGVBQ0osQ0FFQSwwQ0FDSSw4REFBMEUsQ0FDMUUsK0JBQ0osQ0FFQSx5Q0FDSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLE9BQ0osQ0FFQSwyQ0FFSSxhQUFjLENBQ2QsY0FBZSxDQUNmLGVBQWdCLENBSGhCLFFBSUosQ0FFQSwwQ0FJSSxhQUFjLENBSGQsY0FBZSxDQUNmLG9CQUFzQixDQUN0Qix3QkFFSixDQUVBLG1DQUVJLGVBQW1CLENBQ25CLHdCQUF5QixDQUN6QixrQkFBbUIsQ0FFbkIsdUNBQTRDLENBTDVDLGtCQUFtQixDQUluQixpQkFFSixDQUVBLHNDQUlJLGtCQUFtQixDQUZuQix3QkFBeUIsQ0FDekIsa0JBQW1CLENBRW5CLGFBQWMsQ0FKZCxrQkFBbUIsQ0FLbkIsaUJBQ0osQ0FFQSxvQ0FJSSxrQkFBbUIsQ0FGbkIsd0JBQXlCLENBQ3pCLGtCQUFtQixDQUVuQixhQUFjLENBSmQsa0JBQW1CLENBS25CLGlCQUNKLENBRUEsMkNBR0ksY0FBZSxDQURmLGVBQWdCLENBRGhCLFFBR0osQ0FFQSx5Q0FHSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLE9BQVEsQ0FKUixjQUFlLENBQ2YsaUJBSUosQ0FFQSwyQ0FDSSxlQUNKLENBRUEsbURBRUksYUFBYyxDQURkLGNBQWUsQ0FFZixlQUNKLENBRUEsK0NBR0ksa0JBQW1CLENBQ25CLHdCQUF5QixDQUN6QixpQkFBa0IsQ0FHbEIsY0FBZSxDQUNmLGdCQUFpQixDQVJqQixlQUFnQixDQUtoQixnQkFBaUIsQ0FDakIsYUFBYyxDQUxkLFlBUUosQ0FFQSw4Q0FJSSxlQUFtQixDQUZuQix3QkFBeUIsQ0FDekIsa0JBQW1CLENBRm5CLGtCQUFtQixDQUluQixpQkFDSixDQUVBLDJDQUtJLGdDQUFxQyxDQURyQyxzQ0FBMkMsQ0FEM0Msa0JBQW1CLENBR25CLGFBQWMsQ0FDZCxjQUFlLENBQ2YsZUFBZ0IsQ0FQaEIsa0JBQW1CLENBQ25CLGlCQU9KLENBRUEsd0NBQ0ksWUFBYSxDQUViLFFBQVMsQ0FEVCx3REFFSixDQUVBLHdDQU1JLGVBQWdCLENBRmhCLHdCQUF5QixDQUN6QixrQkFBbUIsQ0FHbkIsdUNBQTRDLENBUDVDLFlBQWEsQ0FDYixxQkFBc0IsQ0FDdEIsUUFBUyxDQUlULFlBRUosQ0FFQSw4Q0FDSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLE9BQ0osQ0FFQSx5Q0FHSSxhQUFjLENBRGQsY0FBZSxDQUVmLGVBQWdCLENBSGhCLFFBSUosQ0FFQSwyQ0FHSSxhQUFjLENBRGQsY0FBZSxDQUVmLGVBQWdCLENBSGhCLFFBSUosQ0FFQSxrRkFLSSxrQkFBbUIsQ0FEbkIsd0JBQXlCLENBRHpCLGtCQUFtQixDQUduQixnQkFBaUIsQ0FDakIsa0JBQW1CLENBTG5CLFVBTUosQ0FFQSx3Q0FLSSxrQkFBbUIsQ0FIbkIsd0JBQXlCLENBQ3pCLGtCQUFtQixDQUZuQixlQUFnQixDQUdoQixpQkFFSixDQUVBLDZDQUtJLGFBQWMsQ0FIZCxjQUFlLENBQ2Ysb0JBQXNCLENBRnRCLGVBQWdCLENBR2hCLHdCQUVKLENBRUEseUNBSUksWUFBYSxDQUNiLHFCQUFzQixDQUN0QixPQUFRLENBSFIsZUFBZ0IsQ0FGaEIsUUFBUyxDQUNULFNBS0osQ0FFQSx5Q0FLSSxrQkFBbUIsQ0FLbkIsZUFBZ0IsQ0FEaEIscUNBQTBDLENBRDFDLGtCQUFtQixDQVBuQixhQUFjLENBR2QsWUFBYSxDQUZiLGNBQWUsQ0FJZixRQUFTLENBSFQsZUFBZ0IsQ0FJaEIsaUJBSUosQ0FFQSw0Q0FDSSxXQUNKLENBRUEsNENBRUksK0JBQW9DLENBRHBDLGlDQUVKLENBRUEsNkNBRUksK0JBQW9DLENBRHBDLGlDQUVKLENBRUEsMENBRUksOEJBQW1DLENBRG5DLGdDQUVKLENBRUEsMENBSUksa0JBQW1CLENBRG5CLG1CQUFvQixDQUVwQixhQUFjLENBSGQsV0FBWSxDQURaLFVBS0osQ0FFQSxpREFDSSxrQkFBbUIsQ0FDbkIseUNBQ0osQ0FFQSxrREFDSSxrQkFBbUIsQ0FDbkIseUNBQ0osQ0FFQSwrQ0FDSSxrQkFBbUIsQ0FDbkIsd0NBQ0osQ0FFQSx5Q0FFSSxhQUFjLENBQ2QsY0FBZSxDQUNmLGVBQWdCLENBSGhCLGdCQUlKLENBRUEsYUFDSSx5QkFDSSxnQ0FBa0MsQ0FDbEMseUJBQTJCLENBQzNCLHVCQUF5QixDQUN6Qix5QkFBMkIsQ0FDM0IsbUJBQ0osQ0FFQSxpQ0FFSSxlQUFpQixDQURqQix5QkFFSixDQUVBLGtFQUVJLGdGQUE0RixDQUU1RiwrQ0FBcUQsQ0FEckQsNEJBQThCLENBRTlCLHNEQUE0RCxDQUo1RCxnQ0FBa0MsQ0FLbEMsdUJBQ0osQ0FFQSxpRUFFSSxrQkFBbUIsQ0FEbkIsdUJBRUosQ0FFQSxpR0FDSSw4SEFJWSxDQUdaLDhDQUFzRCxDQUR0RCw0QkFBOEIsQ0FFOUIsc0RBQTRELENBSDVELHVCQUF5QixDQUl6QiwyQkFDSixDQUVBLHlIQUNJLDRCQUE4QixDQUU5QixnREFBc0QsQ0FDdEQsd0RBQThELENBRjlELHVCQUdKLENBRUEsNEZBQ0ksOENBQ0osQ0FFQSxxRUFFSSxvQ0FDSixDQVdBLGtZQUVJLHNCQUNKLENBRUEsOEVBQ0ksOEJBQ0osQ0FDSixDQUVBLGdDQUVJLGFBQWMsQ0FDZCxlQUFnQixDQUZoQix5QkFHSixDQU1BLGdDQU9JLDBCQUEyQixDQUQzQiw4QkFBcUMsQ0FEckMsbUNBQTJDLENBRDNDLGtCQUFtQixDQUluQiw4Q0FBcUQsQ0FDckQsWUFBYSxDQUNiLHFCQUFzQixDQUN0QixPQUFRLENBVFIsa0JBQW1CLENBRG5CLGVBQWdCLENBRWhCLFlBU0osQ0FFQSx1Q0FNSSwwRUFBdUYsQ0FEdkYsbUNBQTJDLENBSDNDLGtCQUFtQixDQUVuQixnQkFBaUIsQ0FEakIsZUFBZ0IsQ0FGaEIsaUJBTUosQ0FFQSxxQ0FJSSxhQUFjLENBRmQsV0FBWSxDQUNaLGdCQUFpQixDQUZqQixVQUlKLENBRUEsMkNBSUksa0JBQW1CLENBRG5CLFlBQWEsQ0FEYixXQUFZLENBR1osc0JBQXVCLENBSnZCLFVBS0osQ0FFQSx1Q0FNSSxtRUFBa0QsQ0FEbEQsb0NBQXlCLENBRnpCLGlCQUFrQixDQUVsQix3QkFBeUIsQ0FIekIsV0FBWSxDQURaLFVBTUosQ0FFQSxpREFDSSxHQUNJLHVCQUNKLENBQ0osQ0FFQSxvQ0FDSSxZQUFhLENBQ2IscUJBQXNCLENBQ3RCLE9BQ0osQ0FFQSxzQ0FHSSxVQUFXLENBRlgsY0FBZSxDQUNmLGVBQWdCLENBRWhCLHNCQUNKLENBRUEsc0NBRUksYUFBYyxDQURkLGNBRUosQ0FFQSxxQ0FJSSxrQkFBbUIsQ0FNbkIsOEJBQW1DLENBRG5DLGFBQWMsQ0FOZCxZQUFhLENBS2IsY0FBZSxDQU5mLE9BQVEsQ0FHUixzQkFBdUIsQ0FDdkIsWUFBYSxDQUxiLGlCQUFrQixDQU1sQixpQkFJSixDQUVBLDJDQVFJLGtCQUFtQixDQUZuQiwrQkFBb0MsQ0FEcEMscUNBQTBDLENBRjFDLGtCQUFtQixDQUluQixZQUFhLENBRWIsUUFBUyxDQVBULGtCQUFtQixDQURuQixlQUFnQixDQUdoQixpQkFNSixDQUVBLGtEQU1JLG1FQUFrRCxDQURsRCxvQ0FBeUIsQ0FGekIsaUJBQWtCLENBRWxCLHdCQUF5QixDQUh6QixXQUFZLENBRFosVUFNSixDQUVBLCtDQUNJLFlBQWEsQ0FDYixxQkFDSixDQUVBLGdEQUdJLGFBQWMsQ0FGZCxjQUFlLENBQ2YsZUFFSixDQUVBLGlEQUVJLGFBQWMsQ0FEZCxjQUVKLENBRUEsaURBQ0ksR0FDSSx1QkFDSixDQUNKIiwiZmlsZSI6IkNoYXQubW9kdWxlLmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlCbGFjayc7XG4gICAgc3JjOlxuICAgICAgICB1cmwoJy9mb250cy9PcGVuTW9qaS1ibGFjay1nbHlmLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2h0dHBzOi8vczYucHRiay5pby9mb250cy9PcGVuTW9qaS1ibGFjay1nbHlmLndvZmYyJykgZm9ybWF0KCd3b2ZmMicpOyAvKiA8LSBUT0RPOiBb8J+QseKAjfCfmoBdIER5bmFtaWNhbGx5IGxvYWQgZnJvbSAvc2VydmVycy50cyAqL1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzIzLCBVKzJBLCBVKzJELCBVKzMwLTM5LCBVK0E5LCBVK0FFLCBVKzIwMEQsIFUrMjAzQywgVSsyMDQ5LCBVKzIwRTMsIFUrMjExNywgVSsyMTIwLCBVKzIxMjIsIFUrMjEzOSxcbiAgICAgICAgVSsyMTk0LTIxOTksIFUrMjFBOSwgVSsyMUFBLCBVKzIyOUMsIFUrMjMxQSwgVSsyMzFCLCBVKzIzMjgsIFUrMjNDRiwgVSsyM0U5LTIzRjMsIFUrMjNGOC0yM0ZFLCBVKzI0QzIsIFUrMjVBMSxcbiAgICAgICAgVSsyNUFBLTI1QUUsIFUrMjVCNiwgVSsyNUMwLCBVKzI1QzksIFUrMjVEMCwgVSsyNUQxLCBVKzI1RTctMjVFQSwgVSsyNUVELCBVKzI1RUUsIFUrMjVGQi0yNUZFLCBVKzI2MDAtMjYwNSxcbiAgICAgICAgVSsyNjBFLCBVKzI2MTEsIFUrMjYxNCwgVSsyNjE1LCBVKzI2MTgsIFUrMjYxRCwgVSsyNjIwLCBVKzI2MjIsIFUrMjYyMywgVSsyNjI2LCBVKzI2MkEsIFUrMjYyRSwgVSsyNjJGLFxuICAgICAgICBVKzI2MzgtMjYzQSwgVSsyNjQwLCBVKzI2NDIsIFUrMjY0OC0yNjUzLCBVKzI2NUYsIFUrMjY2MCwgVSsyNjYzLCBVKzI2NjUsIFUrMjY2NiwgVSsyNjY4LCBVKzI2N0IsIFUrMjY3RSwgVSsyNjdGLFxuICAgICAgICBVKzI2OTEtMjY5NywgVSsyNjk5LCBVKzI2OUIsIFUrMjY5QywgVSsyNkEwLCBVKzI2QTEsIFUrMjZBNywgVSsyNkFBLCBVKzI2QUIsIFUrMjZCMCwgVSsyNkIxLCBVKzI2QkQsIFUrMjZCRSxcbiAgICAgICAgVSsyNkM0LCBVKzI2QzUsIFUrMjZDOCwgVSsyNkNFLCBVKzI2Q0YsIFUrMjZEMSwgVSsyNkQzLCBVKzI2RDQsIFUrMjZFOSwgVSsyNkVBLCBVKzI2RjAtMjZGNSwgVSsyNkY3LTI2RkEsIFUrMjZGRCxcbiAgICAgICAgVSsyNzAyLCBVKzI3MDUsIFUrMjcwOC0yNzBELCBVKzI3MEYsIFUrMjcxMiwgVSsyNzE0LCBVKzI3MTYsIFUrMjcxRCwgVSsyNzIxLCBVKzI3MjgsIFUrMjczMywgVSsyNzM0LCBVKzI3NDQsXG4gICAgICAgIFUrMjc0NywgVSsyNzRDLCBVKzI3NEUsIFUrMjc1My0yNzU1LCBVKzI3NTcsIFUrMjc2MywgVSsyNzY0LCBVKzI3OTUtMjc5NywgVSsyN0ExLCBVKzI3QjAsIFUrMjdCRiwgVSsyOTM0LCBVKzI5MzUsXG4gICAgICAgIFUrMkIwNS0yQjA3LCBVKzJCMEMsIFUrMkIwRCwgVSsyQjFCLCBVKzJCMUMsIFUrMkIxRi0yQjI0LCBVKzJCMkUsIFUrMkIyRiwgVSsyQjUwLCBVKzJCNTUsIFUrMkI1OCwgVSsyQjhGLFxuICAgICAgICBVKzJCQkEtMkJCQywgVSsyQkMzLCBVKzJCQzQsIFUrMkJFQSwgVSsyQkVCLCBVKzMwMzAsIFUrMzAzRCwgVSszMjk3LCBVKzMyOTksIFUrRTAwMC1FMDA5LCBVK0UwMTAsIFUrRTAxMSxcbiAgICAgICAgVStFMDQwLUUwNkQsIFUrRTA4MC1FMEI0LCBVK0UwQzAtRTBDQywgVStFMEZGLUUxMEQsIFUrRTE0MC1FMTRBLCBVK0UxNTAtRTE1NywgVStFMTgxLUUxODksIFUrRTFDMC1FMUM0LFxuICAgICAgICBVK0UxQzYtRTFEOSwgVStFMjAwLUUyMTYsIFUrRTI0MC1FMjY5LCBVK0UyODAtRTI4MywgVStFMkMwLUUyQzQsIFUrRTJDNi1FMkRBLCBVK0UzMDAtRTMwMywgVStFMzA1LUUzMEYsXG4gICAgICAgIFUrRTMxMi1FMzE2LCBVK0UzMTgtRTMyMiwgVStFMzI0LUUzMjksIFUrRTMyQiwgVStFMzQwLUUzNDgsIFUrRTM4MCwgVStFMzgxLCBVK0YwMDAsIFUrRjc3QSwgVStGOEZGLCBVK0ZFMEYsXG4gICAgICAgIFUrMUYwMDQsIFUrMUYwQ0YsIFUrMUYxMEQtMUYxMEYsIFUrMUYxMkYsIFUrMUYxNkQtMUYxNzEsIFUrMUYxN0UsIFUrMUYxN0YsIFUrMUYxOEUsIFUrMUYxOTEtMUYxOUEsIFUrMUYxRTYtMUYxRkYsXG4gICAgICAgIFUrMUYyMDEsIFUrMUYyMDIsIFUrMUYyMUEsIFUrMUYyMkYsIFUrMUYyMzItMUYyM0EsIFUrMUYyNTAsIFUrMUYyNTEsIFUrMUYyNjAtMUYyNjUsIFUrMUYzMDAtMUYzMjEsIFUrMUYzMjQtMUYzOTMsXG4gICAgICAgIFUrMUYzOTYsIFUrMUYzOTcsIFUrMUYzOTktMUYzOUIsIFUrMUYzOUUtMUYzRjAsIFUrMUYzRjMtMUYzRjUsIFUrMUYzRjctMUY0RkQsIFUrMUY0RkYtMUY1M0QsIFUrMUY1NDktMUY1NEUsXG4gICAgICAgIFUrMUY1NTAtMUY1NjcsIFUrMUY1NkYsIFUrMUY1NzAsIFUrMUY1NzMtMUY1N0EsIFUrMUY1ODcsIFUrMUY1OEEtMUY1OEQsIFUrMUY1OTAsIFUrMUY1OTUsIFUrMUY1OTYsIFUrMUY1QTQsXG4gICAgICAgIFUrMUY1QTUsIFUrMUY1QTgsIFUrMUY1QjEsIFUrMUY1QjIsIFUrMUY1QkMsIFUrMUY1QzItMUY1QzQsIFUrMUY1RDEtMUY1RDMsIFUrMUY1REMtMUY1REUsIFUrMUY1RTEsIFUrMUY1RTMsXG4gICAgICAgIFUrMUY1RTgsIFUrMUY1RUYsIFUrMUY1RjMsIFUrMUY1RkEtMUY2NEYsIFUrMUY2ODAtMUY2QzUsIFUrMUY2Q0ItMUY2RDIsIFUrMUY2RDUtMUY2RDcsIFUrMUY2REMtMUY2RTUsIFUrMUY2RTksXG4gICAgICAgIFUrMUY2RUIsIFUrMUY2RUMsIFUrMUY2RjAsIFUrMUY2RjMtMUY2RkMsIFUrMUY3RTAtMUY3RUIsIFUrMUY3RjAsIFUrMUY5MEMtMUY5M0EsIFUrMUY5M0MtMUY5NDUsIFUrMUY5NDctMUY5RkYsXG4gICAgICAgIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODgsIFUrMUZBOTAtMUZBQkQsIFUrMUZBQkYtMUZBQzUsIFUrMUZBQ0UtMUZBREIsIFUrMUZBRTAtMUZBRTgsIFUrMUZBRjAtMUZBRjgsXG4gICAgICAgIFUrMUZCQzUtMUZCQzksIFUrRTAwNjEtRTAwNjcsIFUrRTAwNjksIFUrRTAwNkMtRTAwNzksIFUrRTAwN0Y7XG59XG5cbkBmb250LWZhY2Uge1xuICAgIGZvbnQtZmFtaWx5OiAnT3Blbk1vamlDb2xvcic7XG4gICAgc3JjOlxuICAgICAgICB1cmwoJy9mb250cy9PcGVuTW9qaS1jb2xvci1jYmR0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpLFxuICAgICAgICB1cmwoJ2h0dHBzOi8vczYucHRiay5pby9mb250cy9PcGVuTW9qaS1jb2xvci1jYmR0LndvZmYyJykgZm9ybWF0KCd3b2ZmMicpO1xuICAgIGZvbnQtZGlzcGxheTogc3dhcDtcbiAgICB1bmljb2RlLXJhbmdlOiBVKzIzLCBVKzJBLCBVKzJELCBVKzMwLTM5LCBVK0E5LCBVK0FFLCBVKzIwMEQsIFUrMjAzQywgVSsyMDQ5LCBVKzIwRTMsIFUrMjExNywgVSsyMTIwLCBVKzIxMjIsIFUrMjEzOSxcbiAgICAgICAgVSsyMTk0LTIxOTksIFUrMjFBOSwgVSsyMUFBLCBVKzIyOUMsIFUrMjMxQSwgVSsyMzFCLCBVKzIzMjgsIFUrMjNDRiwgVSsyM0U5LTIzRjMsIFUrMjNGOC0yM0ZFLCBVKzI0QzIsIFUrMjVBMSxcbiAgICAgICAgVSsyNUFBLTI1QUUsIFUrMjVCNiwgVSsyNUMwLCBVKzI1QzksIFUrMjVEMCwgVSsyNUQxLCBVKzI1RTctMjVFQSwgVSsyNUVELCBVKzI1RUUsIFUrMjVGQi0yNUZFLCBVKzI2MDAtMjYwNSxcbiAgICAgICAgVSsyNjBFLCBVKzI2MTEsIFUrMjYxNCwgVSsyNjE1LCBVKzI2MTgsIFUrMjYxRCwgVSsyNjIwLCBVKzI2MjIsIFUrMjYyMywgVSsyNjI2LCBVKzI2MkEsIFUrMjYyRSwgVSsyNjJGLFxuICAgICAgICBVKzI2MzgtMjYzQSwgVSsyNjQwLCBVKzI2NDIsIFUrMjY0OC0yNjUzLCBVKzI2NUYsIFUrMjY2MCwgVSsyNjYzLCBVKzI2NjUsIFUrMjY2NiwgVSsyNjY4LCBVKzI2N0IsIFUrMjY3RSwgVSsyNjdGLFxuICAgICAgICBVKzI2OTEtMjY5NywgVSsyNjk5LCBVKzI2OUIsIFUrMjY5QywgVSsyNkEwLCBVKzI2QTEsIFUrMjZBNywgVSsyNkFBLCBVKzI2QUIsIFUrMjZCMCwgVSsyNkIxLCBVKzI2QkQsIFUrMjZCRSxcbiAgICAgICAgVSsyNkM0LCBVKzI2QzUsIFUrMjZDOCwgVSsyNkNFLCBVKzI2Q0YsIFUrMjZEMSwgVSsyNkQzLCBVKzI2RDQsIFUrMjZFOSwgVSsyNkVBLCBVKzI2RjAtMjZGNSwgVSsyNkY3LTI2RkEsIFUrMjZGRCxcbiAgICAgICAgVSsyNzAyLCBVKzI3MDUsIFUrMjcwOC0yNzBELCBVKzI3MEYsIFUrMjcxMiwgVSsyNzE0LCBVKzI3MTYsIFUrMjcxRCwgVSsyNzIxLCBVKzI3MjgsIFUrMjczMywgVSsyNzM0LCBVKzI3NDQsXG4gICAgICAgIFUrMjc0NywgVSsyNzRDLCBVKzI3NEUsIFUrMjc1My0yNzU1LCBVKzI3NTcsIFUrMjc2MywgVSsyNzY0LCBVKzI3OTUtMjc5NywgVSsyN0ExLCBVKzI3QjAsIFUrMjdCRiwgVSsyOTM0LCBVKzI5MzUsXG4gICAgICAgIFUrMkIwNS0yQjA3LCBVKzJCMEMsIFUrMkIwRCwgVSsyQjFCLCBVKzJCMUMsIFUrMkIxRi0yQjI0LCBVKzJCMkUsIFUrMkIyRiwgVSsyQjUwLCBVKzJCNTUsIFUrMkI1OCwgVSsyQjhGLFxuICAgICAgICBVKzJCQkEtMkJCQywgVSsyQkMzLCBVKzJCQzQsIFUrMkJFQSwgVSsyQkVCLCBVKzMwMzAsIFUrMzAzRCwgVSszMjk3LCBVKzMyOTksIFUrRTAwMC1FMDA5LCBVK0UwMTAsIFUrRTAxMSxcbiAgICAgICAgVStFMDQwLUUwNkQsIFUrRTA4MC1FMEI0LCBVK0UwQzAtRTBDQywgVStFMEZGLUUxMEQsIFUrRTE0MC1FMTRBLCBVK0UxNTAtRTE1NywgVStFMTgxLUUxODksIFUrRTFDMC1FMUM0LFxuICAgICAgICBVK0UxQzYtRTFEOSwgVStFMjAwLUUyMTYsIFUrRTI0MC1FMjY5LCBVK0UyODAtRTI4MywgVStFMkMwLUUyQzQsIFUrRTJDNi1FMkRBLCBVK0UzMDAtRTMwMywgVStFMzA1LUUzMEYsXG4gICAgICAgIFUrRTMxMi1FMzE2LCBVK0UzMTgtRTMyMiwgVStFMzI0LUUzMjksIFUrRTMyQiwgVStFMzQwLUUzNDgsIFUrRTM4MCwgVStFMzgxLCBVK0YwMDAsIFUrRjc3QSwgVStGOEZGLCBVK0ZFMEYsXG4gICAgICAgIFUrMUYwMDQsIFUrMUYwQ0YsIFUrMUYxMEQtMUYxMEYsIFUrMUYxMkYsIFUrMUYxNkQtMUYxNzEsIFUrMUYxN0UsIFUrMUYxN0YsIFUrMUYxOEUsIFUrMUYxOTEtMUYxOUEsIFUrMUYxRTYtMUYxRkYsXG4gICAgICAgIFUrMUYyMDEsIFUrMUYyMDIsIFUrMUYyMUEsIFUrMUYyMkYsIFUrMUYyMzItMUYyM0EsIFUrMUYyNTAsIFUrMUYyNTEsIFUrMUYyNjAtMUYyNjUsIFUrMUYzMDAtMUYzMjEsIFUrMUYzMjQtMUYzOTMsXG4gICAgICAgIFUrMUYzOTYsIFUrMUYzOTcsIFUrMUYzOTktMUYzOUIsIFUrMUYzOUUtMUYzRjAsIFUrMUYzRjMtMUYzRjUsIFUrMUYzRjctMUY0RkQsIFUrMUY0RkYtMUY1M0QsIFUrMUY1NDktMUY1NEUsXG4gICAgICAgIFUrMUY1NTAtMUY1NjcsIFUrMUY1NkYsIFUrMUY1NzAsIFUrMUY1NzMtMUY1N0EsIFUrMUY1ODcsIFUrMUY1OEEtMUY1OEQsIFUrMUY1OTAsIFUrMUY1OTUsIFUrMUY1OTYsIFUrMUY1QTQsXG4gICAgICAgIFUrMUY1QTUsIFUrMUY1QTgsIFUrMUY1QjEsIFUrMUY1QjIsIFUrMUY1QkMsIFUrMUY1QzItMUY1QzQsIFUrMUY1RDEtMUY1RDMsIFUrMUY1REMtMUY1REUsIFUrMUY1RTEsIFUrMUY1RTMsXG4gICAgICAgIFUrMUY1RTgsIFUrMUY1RUYsIFUrMUY1RjMsIFUrMUY1RkEtMUY2NEYsIFUrMUY2ODAtMUY2QzUsIFUrMUY2Q0ItMUY2RDIsIFUrMUY2RDUtMUY2RDcsIFUrMUY2REMtMUY2RTUsIFUrMUY2RTksXG4gICAgICAgIFUrMUY2RUIsIFUrMUY2RUMsIFUrMUY2RjAsIFUrMUY2RjMtMUY2RkMsIFUrMUY3RTAtMUY3RUIsIFUrMUY3RjAsIFUrMUY5MEMtMUY5M0EsIFUrMUY5M0MtMUY5NDUsIFUrMUY5NDctMUY5RkYsXG4gICAgICAgIFUrMUZBNzAtMUZBN0MsIFUrMUZBODAtMUZBODgsIFUrMUZBOTAtMUZBQkQsIFUrMUZBQkYtMUZBQzUsIFUrMUZBQ0UtMUZBREIsIFUrMUZBRTAtMUZBRTgsIFUrMUZBRjAtMUZBRjgsXG4gICAgICAgIFUrMUZCQzUtMUZCQzksIFUrRTAwNjEtRTAwNjcsIFUrRTAwNjksIFUrRTAwNkMtRTAwNzksIFUrRTAwN0Y7XG59XG5cbi5jb3BpZWRUb0NsaXBib2FyZE1lc3NhZ2Uge1xuICAgIHBvc2l0aW9uOiBmaXhlZDtcbiAgICB0b3A6IDMycHg7XG4gICAgbGVmdDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDEwcHggMjRweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxLjFlbTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgb3BhY2l0eTogMC45NztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiA5OTk5O1xufVxuXG4uQ2hhdCB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG5cbiAgICBmb250LWZhbWlseTogQXJpYWwsIEhlbHZldGljYSwgc2Fucy1zZXJpZiwgJ09wZW5Nb2ppQ29sb3InLCAnT3Blbk1vamlCbGFjayc7XG5cbiAgICAtLWNoYXQtbWVzc2FnZS1taW4td2lkdGg6IDE1MHB4O1xuICAgIC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXA6IDEycHg7XG4gICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDQwcHg7XG4gICAgLS1jaGF0LW1lc3NhZ2UtbWF4LXdpZHRoOiBtaW4oXG4gICAgICAgIDcwJSxcbiAgICAgICAgNjAwcHgsXG4gICAgICAgIGNhbGMoMTAwJSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItc2l6ZSkgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCkpXG4gICAgKTtcbiAgICAtLWNoYXQtaW5wdXQtdmlzaWJsZS1saW5lczogMztcbiAgICAtLWNoYXQtaW5wdXQtZm9udC1zaXplOiAxNXB4O1xuICAgIC0tY2hhdC1pbnB1dC1saW5lLWhlaWdodDogMS41O1xuICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDEwcHg7XG4gICAgLS1jaGF0LWlucHV0LXBhZGRpbmcteDogMTJweDtcbiAgICAtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemU6IDQwcHg7XG4gICAgLS1jaGF0LWlucHV0LXRleHRhcmVhLWhlaWdodDogY2FsYyhcbiAgICAgICAgdmFyKC0tY2hhdC1pbnB1dC12aXNpYmxlLWxpbmVzKSAqIHZhcigtLWNoYXQtaW5wdXQtZm9udC1zaXplKSAqIHZhcigtLWNoYXQtaW5wdXQtbGluZS1oZWlnaHQpICtcbiAgICAgICAgICAgICgyICogdmFyKC0tY2hhdC1pbnB1dC1wYWRkaW5nLXkpKVxuICAgICk7XG4gICAgLyogPC0gVE9ETzogW/Cfp6BdW/CfjrFdIEJldHRlciwgZGVmaW5lIG90aGVyIGZvbnRzICovXG59XG5cbi5jaGF0TWFpbkZsb3cge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgZGlzcGxheTogZ3JpZDtcbiAgICBncmlkLXRlbXBsYXRlOlxuICAgICAgICAn8J+fpicgbWluLWNvbnRlbnRcbiAgICAgICAgJ/CfkqwnIDFmclxuICAgICAgICAn8J+TnScgbWluLWNvbnRlbnRcbiAgICAgICAgLyAxZnI7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRCYXIge1xuICAgIGdyaWQtYXJlYTog8J+fpjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxNnB4IDIwcHg7XG4gICAgY29sb3I6ICMwZjE3MjQ7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZmZmZjtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgcmdiYSgxNSwgMjMsIDM2LCAwLjA2KTtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLlRhc2tzSW5Qcm9ncmVzcyB7XG4gICAgZ3JpZC1hcmVhOiDwn5+mO1xuICAgIHdpZHRoOiBhdXRvO1xuICAgIGhlaWdodDogbWluLWNvbnRlbnQ7XG4gICAgYWxpZ24tc2VsZjogY2VudGVyO1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1lbmQ7XG4gICAgbWFyZ2luOiA4cHggMTZweDtcbn1cblxuLmFjdGlvbnMge1xuICAgIGdyaWQtYXJlYTog8J+SrDtcbiAgICB3aWR0aDogYXV0bztcbiAgICBoZWlnaHQ6IG1pbi1jb250ZW50O1xuICAgIHotaW5kZXg6IDQwO1xuICAgIGFsaWduLXNlbGY6IHNlbGYtc3RhcnQ7XG4gICAganVzdGlmeS1zZWxmOiBzZWxmLWVuZDtcbiAgICBtYXJnaW46IDE2cHggMjBweCAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDhweDtcbiAgICB0cmFuc2l0aW9uOiBvcGFjaXR5IDAuMnMgZWFzZTtcbiAgICB3aWxsLWNoYW5nZTogb3BhY2l0eTtcbn1cblxuLmFjdGlvbnMucG9ydGFsIHtcbiAgICBtYXJnaW46IDA7XG59XG5cbi5hY3Rpb25zLmxlZnQge1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1zdGFydDtcbn1cblxuLmFjdGlvbnMucmlnaHQge1xuICAgIGp1c3RpZnktc2VsZjogc2VsZi1lbmQ7XG59XG5cbi5hY3Rpb25zRmFkZWQge1xuICAgIG9wYWNpdHk6IDAuMztcbn1cblxuLmFjdGlvbnNTY3JvbGxpbmcge1xuICAgIG9wYWNpdHk6IDAuMTU7XG4gICAgcG9pbnRlci1ldmVudHM6IG5vbmU7XG59XG5cbi8qIExhcmdlIHRhYmxldCBhbmQgc21hbGwgZGVza3RvcCBzY3JlZW5zICovXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxufVxuXG4vKiBNZWRpdW0gc2NyZWVucyAqL1xuQG1lZGlhIChtYXgtd2lkdGg6IDYwMHB4KSB7XG4gICAgLmFjdGlvbnMge1xuICAgICAgICBtYXJnaW46IDE0cHggMThweCAwO1xuICAgICAgICBnYXA6IDdweDtcbiAgICB9XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRDaGlsZHJlbiB7XG4gICAgZ3JpZC1hcmVhOiDwn5KsO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBtaW4td2lkdGg6IDA7XG4gICAgbWluLWhlaWdodDogMDtcbiAgICB6LWluZGV4OiAzMDA7XG59XG5cbi8qIENoYXQgbWVzc2FnZXMgYXJlYSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICBncmlkLWFyZWE6IPCfkqw7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIG1pbi1oZWlnaHQ6IDA7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIHotaW5kZXg6IDEwO1xuICAgIHBhZGRpbmc6IDI0cHggMjBweCAxNnB4O1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHNjcm9sbC1iZWhhdmlvcjogc21vb3RoO1xufVxuXG4uaGFzQWN0aW9uc0FuZEZpcnN0TWVzc2FnZUlzTG9uZyB7XG4gICAgcGFkZGluZy10b3A6IDgwcHg7XG59XG5cbi8qIEN1c3RvbSBzY3JvbGxiYXIgc3R5bGluZyAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhciB7XG4gICAgd2lkdGg6IDZweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10cmFjayB7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlczo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzOjotd2Via2l0LXNjcm9sbGJhci10aHVtYjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjMpO1xufVxuXG4vKiBJbmRpdmlkdWFsIGNoYXQgbWVzc2FnZSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2Uge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbiAgICBhbGlnbi1pdGVtczogZmxleC1lbmQ7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBjb2x1bW4tZ2FwOiB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLWdhcCk7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGFuaW1hdGlvbjogbWVzc2FnZVNsaWRlSW4gMC40cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VTdGFjayB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICAgIG1heC13aWR0aDogdmFyKC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aCk7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5tZXNzYWdlU3RhY2sge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VTdGFjayA+ICoge1xuICAgIG1heC13aWR0aDogMTAwJTtcbn1cblxuLm1lc3NhZ2VXaXRoTWFwIHtcbiAgICAvKiBtYXJrZXIgY2xhc3MgYXBwbGllZCB0byBtYXAgbWVzc2FnZXMgc28gdGhleSBjYW4gc3RyZXRjaCB3aWRlci4gKi9cbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UubWVzc2FnZVdpdGhNYXAge1xuICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5tZXNzYWdlV2l0aE1hcCAubWVzc2FnZVN0YWNrIHtcbiAgICBhbGlnbi1pdGVtczogc3RyZXRjaDtcbiAgICB3aWR0aDogbWluKFxuICAgICAgICA5MHZ3LFxuICAgICAgICA5MjBweCxcbiAgICAgICAgY2FsYygxMDAlIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplKSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwKSlcbiAgICApO1xuICAgIG1heC13aWR0aDogbWluKFxuICAgICAgICA5MHZ3LFxuICAgICAgICA5MjBweCxcbiAgICAgICAgY2FsYygxMDAlIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplKSAtIHZhcigtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwKSlcbiAgICApO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTAwcHgpIHtcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5tZXNzYWdlV2l0aE1hcCAubWVzc2FnZVN0YWNrIHtcbiAgICAgICAgd2lkdGg6IG1pbig5MnZ3LCA2NDBweCk7XG4gICAgICAgIG1heC13aWR0aDogbWluKDkydncsIDY0MHB4KTtcbiAgICB9XG59XG5cbi5tZXNzYWdlTWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDZweDtcbiAgICBtYXJnaW46IDRweCA2cHggMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICM2YjcyODA7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAubWVzc2FnZU1ldGEge1xuICAgIGFsaWduLXNlbGY6IGZsZXgtZW5kO1xuICAgIHRleHQtYWxpZ246IHJpZ2h0O1xufVxuXG4ubWVzc2FnZUxpZmVjeWNsZUJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjE2KTtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbn1cblxuLm1lc3NhZ2VUaW1lc3RhbXAge1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjAyZW07XG59XG5cbi5tZXNzYWdlRHVyYXRpb24ge1xuICAgIG9wYWNpdHk6IDAuODU7XG59XG5cbi5tZXNzYWdlTGlmZWN5Y2xlRXJyb3Ige1xuICAgIG1hcmdpbjogNHB4IDZweCAwO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjb2xvcjogI2I5MWMxYztcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuLnBhcnRpY2lwYW50TGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIG1hcmdpbjogMCAwIDZweDtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAucGFydGljaXBhbnRMYWJlbCB7XG4gICAgdGV4dC1hbGlnbjogcmlnaHQ7XG59XG5cbkBrZXlmcmFtZXMgbWVzc2FnZVNsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMjBweCkgc2NhbGUoMC45NSk7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApIHNjYWxlKDEpO1xuICAgIH1cbn1cblxuLmlzTm90Q29tcGxldGVNZXNzYWdlIHtcbiAgICAvKi9cbiAgICBvdXRsaW5lOiAxcHggZG90dGVkICNmZjAwMDAgIWltcG9ydGFudDtcbiAgICAvKiovXG5cbiAgICBvcGFjaXR5OiAwLjc7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uTm9uQ29tcGxldGVNZXNzYWdlRmlsbGVyIHtcbiAgICBjb2xvcjogdHJhbnNwYXJlbnQ7XG59XG5cbi8qIEVuaGFuY2VkIGxvYWRpbmcgc3RhdGVzIGZvciBtZXNzYWdlcyAqL1xuLmlzTm90Q29tcGxldGVNZXNzYWdlIC5tZXNzYWdlVGV4dDo6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IDhweDtcbiAgICByaWdodDogMTJweDtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoOTBkZWcsIHRyYW5zcGFyZW50LCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuNiksIHRyYW5zcGFyZW50KTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYW5pbWF0aW9uOiBsb2FkaW5nUHVsc2UgMS41cyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbn1cblxuLnRvb2xDYWxsQ2hpcHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLXRvcDogOHB4O1xuICAgIHBhZGRpbmctdG9wOiA4cHg7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbn1cblxuLnNvdXJjZUNpdGF0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgcGFkZGluZy10b3A6IDhweDtcbiAgICBib3JkZXItdG9wOiAxcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xufVxuXG4udG9vbENhbGxDaGlwIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgZm9udC1zaXplOiAwLjhlbTtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTUpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgZm9udC1mYW1pbHk6ICdPcGVuTW9qaUNvbG9yJywgJ09wZW5Nb2ppQmxhY2snLCBBcmlhbCwgSGVsdmV0aWNhLCBzYW5zLXNlcmlmO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4udG9vbENhbGxDaGlwOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDZweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuXG4udG9vbENhbGxDaGlwT25nb2luZyB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDU5LCAxMzAsIDI0NiwgMC44KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4xKTtcbn1cblxuLnRvb2xDYWxsQ2hpcFN0YXR1cyB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnRlYW1Ub29sQ2FsbCxcbi50cmFuc2l0aXZlVG9vbENhbGwge1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRlYW1BZ2VudENoaXAsXG4udHJhbnNpdGl2ZUFnZW50Q2hpcCB7XG4gICAgZmxleC1zaHJpbms6IDA7XG59XG5cbi50b29sQ2FsbExhYmVsIHtcbiAgICBmbGV4OiAxO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xufVxuXG4udG9vbENhbGxXaXRoRXJyb3Ige1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNDksIDExNSwgMjIsIDAuOCk7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNDksIDExNSwgMjIsIDAuMTIpO1xufVxuXG4udG9vbENhbGxPcmlnaW4ge1xuICAgIGZvbnQtc2l6ZTogMC44NWVtO1xuICAgIG9wYWNpdHk6IDAuNzU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xufVxuXG4udG9vbENhbGxEZXRhaWxzIHtcbiAgICBtYXJnaW4tYm90dG9tOiAyNHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi50b29sQ2FsbERldGFpbHMgcCB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4udG9vbENhbGxEYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBvdmVyZmxvdy14OiBhdXRvO1xuICAgIHdoaXRlLXNwYWNlOiBwcmUtd3JhcDtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG4gICAgbWF4LWhlaWdodDogMzAwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbn1cblxuLnRvb2xDYWxsQ2hpcFNwaW5uZXIge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMyk7XG4gICAgYm9yZGVyLXRvcC1jb2xvcjogI2ZmZjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB0b29sQ2FsbFNwaW5uZXIgMC44cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbkBrZXlmcmFtZXMgdG9vbENhbGxTcGlubmVyIHtcbiAgICB0byB7XG4gICAgICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIGxvYWRpbmdQdWxzZSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIG9wYWNpdHk6IDAuMztcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMC44KTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZVgoMS4yKTtcbiAgICB9XG59XG5cbi8qIFR5cGluZyBpbmRpY2F0b3IgZm9yIEFJIG1lc3NhZ2VzICovXG4udHlwaW5nSW5kaWNhdG9yIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIGFuaW1hdGlvbjogbWVzc2FnZVNsaWRlSW4gMC40cyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi50eXBpbmdJbmRpY2F0b3IgLmF2YXRhciB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIG1hcmdpbjogMCAxMnB4IDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLyogW+OKl++4j11cbi50eXBpbmdJbmRpY2F0b3IgLmF2YXRhciBpbWcge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIG9iamVjdC1maXQ6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlZWY2ZmI7XG4gICAgYm9yZGVyOiAycHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xufVxuKi9cblxuLnR5cGluZ0J1YmJsZSB7XG4gICAgcGFkZGluZzogMTZweCAyMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA0cHg7XG4gICAgbWluLWhlaWdodDogMjRweDtcbn1cblxuLnR5cGluZ0RvdHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA0cHg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbn1cblxuLnR5cGluZ0RvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzZiNzI4MCAwJSwgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjYpIDEwMCUpO1xuICAgIGFuaW1hdGlvbjogdHlwaW5nQm91bmNlIDEuNHMgaW5maW5pdGUgZWFzZS1pbi1vdXQ7XG4gICAgYm94LXNoYWRvdzogMCAycHggNHB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLnR5cGluZ0RvdDpudGgtY2hpbGQoMSkge1xuICAgIGFuaW1hdGlvbi1kZWxheTogLTAuMzJzO1xufVxuXG4udHlwaW5nRG90Om50aC1jaGlsZCgyKSB7XG4gICAgYW5pbWF0aW9uLWRlbGF5OiAtMC4xNnM7XG59XG5cbi50eXBpbmdEb3Q6bnRoLWNoaWxkKDMpIHtcbiAgICBhbmltYXRpb24tZGVsYXk6IDBzO1xufVxuXG5Aa2V5ZnJhbWVzIHR5cGluZ0JvdW5jZSB7XG4gICAgMCUsXG4gICAgODAlLFxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOCkgdHJhbnNsYXRlWSgwKTtcbiAgICAgICAgb3BhY2l0eTogMC41O1xuICAgIH1cbiAgICA0MCUge1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMikgdHJhbnNsYXRlWSgtOHB4KTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlLmlzTWUge1xuICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDtcbiAgICBmbGV4LWRpcmVjdGlvbjogcm93LXJldmVyc2U7XG4gICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZS5pc01lIC5tZXNzYWdlVGV4dCB7XG4gICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDZweDtcbn1cblxuLnJhdGluZ1N0YXIge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgdHJhbnNpdGlvbjogY29sb3IgMC4ycztcbiAgICBjb2xvcjogdmFyKC0tc3Rhci1pbmFjdGl2ZS1jb2xvciwgI2NjYyk7XG59XG5cbi5yYXRpbmdTdGFyLmFjdGl2ZSB7XG4gICAgY29sb3I6ICNmZmQ3MDA7XG59XG5cbi8qIFNlbmRlciBBdmF0YXIgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1zaXplKTtcbiAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi8qIFvjipfvuI9dXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZyB7XG4gICAgd2lkdGg6IDQwcHg7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgb2JqZWN0LWZpdDogY292ZXI7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tYXZhdGFyLWJnLWNvbG9yLCAjZWVmNmZiKTtcbiAgICBib3JkZXI6IDJweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2U7XG59XG5cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciBpbWc6aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4wNSk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTJweCByZ2JhKDAsIDAsIDAsIDAuMTUpO1xufVxuKi9cblxuLyogTWVzc2FnZSB0ZXh0IGJ1YmJsZSAqL1xuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yKTtcbiAgICBjb2xvcjogdmFyKC0tbWVzc2FnZS10ZXh0LWNvbG9yKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgcGFkZGluZzogMTRweCAxOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHg7XG4gICAgbWF4LXdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogbWluKHZhcigtLWNoYXQtbWVzc2FnZS1taW4td2lkdGgpLCAxMDAlKTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbi1ib3R0b206IDRweDtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICAtLWNoYXQtaGVhZGluZy1zdXJmYWNlOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMTIpO1xuICAgIC0tY2hhdC1oZWFkaW5nLWFjY2VudDogcmdiYSg1NiwgMTg5LCAyNDgsIDAuODUpO1xuICAgIC0tY2hhdC1oZWFkaW5nLXRleHQtY29sb3I6IHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSk7XG4gICAgLS1jaGF0LWhlYWRpbmctYm9yZGVyLWNvbG9yOiByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xuICAgIC0tY2hhdC1oZWFkaW5nLXNoYWRvdy1jb2xvcjogcmdiYSgxNSwgMjMsIDQyLCAwLjY1KTtcbn1cblxuQHN1cHBvcnRzIChjb2xvcjogY29sb3ItbWl4KGluIHNyZ2IsICMwMDAgNTAlLCAjZmZmIDUwJSkpIHtcbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgICAgICAtLWNoYXQtaGVhZGluZy1zdXJmYWNlOiBjb2xvci1taXgoaW4gc3JnYiwgdmFyKC0tbWVzc2FnZS1iZy1jb2xvciwgI2ZmZmZmZikgNzAlLCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpIDMwJSk7XG4gICAgICAgIC0tY2hhdC1oZWFkaW5nLWFjY2VudDogY29sb3ItbWl4KGluIHNyZ2IsIHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSkgNjUlLCByZ2JhKDU5LCAxMzAsIDI0NiwgMC45KSAzNSUpO1xuICAgICAgICAtLWNoYXQtaGVhZGluZy1ib3JkZXItY29sb3I6IGNvbG9yLW1peChcbiAgICAgICAgICAgIGluIHNyZ2IsXG4gICAgICAgICAgICB2YXIoLS1tZXNzYWdlLWJnLWNvbG9yLCAjZmZmZmZmKSA2MCUsXG4gICAgICAgICAgICByZ2JhKDE1LCAyMywgNDIsIDAuMTIpIDQwJVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtaGVhZGluZy1zaGFkb3ctY29sb3I6IGNvbG9yLW1peChpbiBzcmdiLCByZ2JhKDE1LCAyMywgNDIsIDAuNjUpIDgwJSwgcmdiYSg5NiwgMTY1LCAyNTAsIDAuNDUpIDIwJSk7XG4gICAgICAgIC0tY2hhdC1oZWFkaW5nLXRleHQtY29sb3I6IHZhcigtLW1lc3NhZ2UtdGV4dC1jb2xvciwgIzBmMTcyYSk7XG4gICAgfVxufVxuXG4vKiBDb3B5IGJ1dHRvbiBzdHlsZXMgKi9cbi5jb3B5QnV0dG9uQ29udGFpbmVyIHtcbiAgICBmbG9hdDogcmlnaHQ7XG4gICAgdG9wOiA4cHg7XG4gICAgcmlnaHQ6IDEwcHg7XG4gICAgei1pbmRleDogMjtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcblxuICAgIHZpc2liaWxpdHk6IGhpZGRlbjtcbn1cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dDpob3ZlciAuY29weUJ1dHRvbkNvbnRhaW5lcixcbi5jb3B5QnV0dG9uQ29udGFpbmVyOmZvY3VzLXdpdGhpbiB7XG4gICAgdmlzaWJpbGl0eTogdmlzaWJsZTtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLm1lc3NhZ2VDb250cm9sR3JvdXAge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBwb2ludGVyLWV2ZW50czogYXV0bztcbn1cblxuLmNvcHlCdXR0b24ge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgICBwYWRkaW5nOiAycHggNXB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA3KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4xNXMsIGJveC1zaGFkb3cgMC4xNXMsIGJvcmRlciAwLjE1cztcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgb3BhY2l0eTogMC43O1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnBsYXlCdXR0b24ge1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC42KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjE1cyBlYXNlO1xuICAgIGNvbG9yOiAjMTExO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBwYWRkaW5nOiAwO1xufVxuXG4ucGxheUJ1dHRvbkljb24ge1xuICAgIHdpZHRoOiAxNnB4O1xuICAgIGhlaWdodDogMTZweDtcbn1cblxuLnBsYXlCdXR0b25TcGlubmVyIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMTExO1xuICAgIGFuaW1hdGlvbjogbWVzc2FnZVBsYXlTcGlubmVyIDAuOXMgbGluZWFyIGluZmluaXRlO1xufVxuXG4ucGxheUJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjgpO1xufVxuXG4ucGxheUJ1dHRvbjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBvcGFjaXR5OiAwLjY7XG59XG5cbkBrZXlmcmFtZXMgbWVzc2FnZVBsYXlTcGlubmVyIHtcbiAgICBmcm9tIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMGRlZyk7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuLmNvcGllZFRvb2x0aXAge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBsZWZ0OiA1MCU7XG4gICAgdG9wOiAxMTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTtcbiAgICBiYWNrZ3JvdW5kOiAjMjIyO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIHBhZGRpbmc6IDZweCAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDAuOThlbTtcbiAgICBib3gtc2hhZG93OiAwIDJweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4xOCk7XG4gICAgb3BhY2l0eTogMC45NztcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICB6LWluZGV4OiAxMDA7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBtYXJnaW4tdG9wOiA0cHg7XG4gICAgYW5pbWF0aW9uOiBjb3BpZWRUb29sdGlwRmFkZUluIDAuMnM7XG4gICAgbWF4LXdpZHRoOiAyMjBweDtcbiAgICBvdmVyZmxvdy13cmFwOiBicmVhay13b3JkO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG59XG5cbi5jb3BpZWRUb29sdGlwTGVmdCB7XG4gICAgbGVmdDogMCAhaW1wb3J0YW50O1xuICAgIHRyYW5zZm9ybTogbm9uZSAhaW1wb3J0YW50O1xufVxuXG4uY29waWVkVG9vbHRpcFJpZ2h0IHtcbiAgICBsZWZ0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgcmlnaHQ6IDAgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcbn1cblxuLyogUmVtb3ZlZCByaWdodC1hbGlnbmVkIG92ZXJyaWRlIHRvIGtlZXAgdG9vbHRpcCBwb3NpdGlvbiBzdGFibGUgKi9cblxuQGtleWZyYW1lcyBjb3BpZWRUb29sdGlwRmFkZUluIHtcbiAgICBmcm9tIHtcbiAgICAgICAgb3BhY2l0eTogMDtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoOHB4KSBzY2FsZSgwLjk3KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAwLjk3O1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgwKSBzY2FsZSgxKTtcbiAgICB9XG59XG5cbi5jb3B5QnV0dG9uOmhvdmVyLFxuLmNvcHlCdXR0b246Zm9jdXMge1xuICAgIGJvcmRlcjogMS41cHggc29saWQgI2JiYjtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xufVxuXG4uY29weUJ1dHRvbiBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xufVxuXG4ubWVzc2FnZVRleHQgdWwge1xuICAgIGxpc3Qtc3R5bGU6IGRpc2M7XG4gICAgbWFyZ2luLWxlZnQ6IDIwcHg7XG59XG5cbi5tZXNzYWdlVGV4dCBvbCB7XG4gICAgbGlzdC1zdHlsZTogZGVjaW1hbDtcbiAgICBtYXJnaW4tbGVmdDogMjBweDtcbn1cblxuLm1lc3NhZ2VUZXh0IGltZyxcbi5tZXNzYWdlVGV4dCBwcmUsXG4ubWVzc2FnZVRleHQgYmxvY2txdW90ZSxcbi5tZXNzYWdlVGV4dCB0YWJsZSB7XG4gICAgbWFyZ2luLXRvcDogMTBweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLm1lc3NhZ2VUZXh0IHByZSB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJveC1zaGFkb3c6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogIzAwMDAwMGZmO1xuICAgIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgICBjb2xvcjogI2ZmZjtcbiAgICBwYWRkaW5nOiAxZW07XG59XG5cbi5tZXNzYWdlVGV4dCBibG9ja3F1b3RlIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmY2M7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIHBhZGRpbmc6IDFlbTtcbn1cblxuLm1lc3NhZ2VUZXh0IGNvZGUge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiAjY2NjY2NjNTU7XG4gICAgZm9udC1zaXplOiBpbmhlcml0O1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4ubWVzc2FnZVRleHQgcHJlIGNvZGUge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDAwMDBjYztcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG59XG5cbi5tZXNzYWdlVGV4dCAuY2hhdC1jb2RlLWJsb2NrIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTgxYzIzO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIG92ZXJmbG93LXg6IGF1dG87XG4gICAgYm9yZGVyLWNvbG9yOiAjMjMyNzJmO1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMTIpO1xuICAgIGZvbnQtZmFtaWx5OiAnRmlyYSBNb25vJywgJ01lbmxvJywgJ0NvbnNvbGFzJywgJ0xpYmVyYXRpb24gTW9ubycsIG1vbm9zcGFjZTtcbn1cbi5tZXNzYWdlVGV4dCAuY2hhdC1jb2RlLWJsb2NrIGNvZGUge1xuICAgIGJhY2tncm91bmQ6IG5vbmUgIWltcG9ydGFudDtcbiAgICBjb2xvcjogaW5oZXJpdCAhaW1wb3J0YW50O1xuICAgIGZvbnQtZmFtaWx5OiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiBpbmhlcml0ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IG5vbmUgIWltcG9ydGFudDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlO1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgb3ZlcmZsb3cteDogYXV0bztcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cbi5tZXNzYWdlVGV4dCB0YWJsZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTtcbiAgICBib3JkZXItc3BhY2luZzogMDtcbiAgICBtYXJnaW46IDE2cHggMDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjOyAvKiBTdHJvbmdlciBsaWdodCBiYWNrZ3JvdW5kIGZvciBjb250cmFzdCAqL1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMxNzIyM2I7IC8qIERhcmsgdGV4dCBmb3IgY29udHJhc3QgKi9cbn1cbi5tZXNzYWdlVGV4dCB0aCxcbi5tZXNzYWdlVGV4dCB0ZCB7XG4gICAgcGFkZGluZzogMTBweCAxNnB4O1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjZDFkYmU4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgY29sb3I6ICMxNzIyM2I7IC8qIEVuc3VyZSBzdHJvbmcgdGV4dCBjb2xvciBmb3IgYWxsIGNlbGxzICovXG4gICAgYmFja2dyb3VuZDogbm9uZTtcbn1cbi5tZXNzYWdlVGV4dCB0aCB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjZWFmM2ZhIDgwJSwgI2QxZTNmOCAxMDAlKTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMTcyMjNiOyAvKiBTdHJvbmcgaGVhZGVyIHRleHQgKi9cbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgI2I1YzdkZTtcbn1cbi5tZXNzYWdlVGV4dCB0cjpsYXN0LWNoaWxkIHRkIHtcbiAgICBib3JkZXItYm90dG9tOiBub25lO1xufVxuLm1lc3NhZ2VUZXh0IHRyOm50aC1jaGlsZChldmVuKSB0ZCB7XG4gICAgYmFja2dyb3VuZDogI2VhZjNmYTtcbn1cbi5tZXNzYWdlVGV4dCB0cjpob3ZlciB0ZCB7XG4gICAgYmFja2dyb3VuZDogI2NiZTBmNztcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnM7XG59XG4ubWVzc2FnZVRleHQgdGFibGUge1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cbi5tZXNzYWdlVGV4dCB0aDpmaXJzdC1jaGlsZCxcbi5tZXNzYWdlVGV4dCB0ZDpmaXJzdC1jaGlsZCB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMTJweDtcbn1cbi5tZXNzYWdlVGV4dCB0aDpsYXN0LWNoaWxkLFxuLm1lc3NhZ2VUZXh0IHRkOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAxMnB4O1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQ6aG92ZXIge1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjE1KTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTFweCk7XG59XG5cbi8qIEF0dGFjaG1lbnRzIHN0eWxlcyAqL1xuLmF0dGFjaG1lbnRzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxMHB4O1xuICAgIHBhZGRpbmctdG9wOiAxMHB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMik7XG59XG5cbi5hdHRhY2htZW50IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgcGFkZGluZzogNnB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4zKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogaW5oZXJpdDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBtYXgtd2lkdGg6IDIwMHB4O1xufVxuXG4uYXR0YWNobWVudDpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjMpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbn1cblxuLmF0dGFjaG1lbnRJY29uIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgb3BhY2l0eTogMC44O1xufVxuXG4uYXR0YWNobWVudE5hbWUge1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLyogTWVzc2FnZSBidXR0b25zIGNvbnRhaW5lciAqL1xuLm1lc3NhZ2VCdXR0b25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIHBhZGRpbmctdG9wOiAxMnB4O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDEyNSAxMjUgMTI1IC8gMC44Myk7XG59XG5cbi8qIEluZGl2aWR1YWwgbWVzc2FnZSBidXR0b24gKi9cbi5tZXNzYWdlQnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIHBhZGRpbmc6IDhweCAxNHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuOSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbiAgICB1c2VyLXNlbGVjdDogbm9uZTtcbn1cblxuLm1lc3NhZ2VCdXR0b246ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogcHJvZ3Jlc3M7XG4gICAgb3BhY2l0eTogMC43MjtcbiAgICB0cmFuc2Zvcm06IG5vbmU7XG4gICAgYm94LXNoYWRvdzogbm9uZTtcbn1cblxuLm1lc3NhZ2VCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCwgMTMyLCAyNTUsIDAuMSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4xNSk7XG59XG5cbi5tZXNzYWdlQnV0dG9uOmhvdmVyOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuOSk7XG59XG5cbi5tZXNzYWdlQnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xufVxuXG4uYWN0aW9uTWVzc2FnZUJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogcmdiYSg1NSwgNjUsIDgxLCAwLjkyKTtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMzEsIDQxLCA1NSwgMC45NSk7XG4gICAgY29sb3I6ICNmZmY7XG59XG5cbi5hY3Rpb25NZXNzYWdlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDMxLCA0MSwgNTUsIDAuOTgpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNywgMjQsIDM5LCAwLjk4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4zMik7XG59XG5cbi5hY3Rpb25NZXNzYWdlQnV0dG9uOmhvdmVyOmRpc2FibGVkIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU1LCA2NSwgODEsIDAuOTIpO1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgzMSwgNDEsIDU1LCAwLjk1KTtcbn1cblxuLyogUmVtb3ZlIGRlZmF1bHQgbWFya2Rvd24gc3R5bGVzIGZyb20gYnV0dG9uIGNvbnRlbnQgKi9cbi5tZXNzYWdlQnV0dG9uIHAge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xufVxuXG4ubWVzc2FnZUJ1dHRvbiBzdHJvbmcge1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5tZXNzYWdlQnV0dG9uIGVtIHtcbiAgICBmb250LXN0eWxlOiBpdGFsaWM7XG59XG5cbi8qIFJhdGluZyBzeXN0ZW0gKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmcge1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBib3R0b206IC04cHg7XG4gICAgcmlnaHQ6IDhweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGdhcDogMnB4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgbWluLXdpZHRoOiAyNHB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAwLCAwLCAwLjgpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogNHB4IDZweDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMTBweCk7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlOmhvdmVyIC5yYXRpbmcge1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDApO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAucmF0aW5nOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDAsIDAsIDAuOSk7XG4gICAgcGFkZGluZzogNnB4IDhweDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLnJhdGluZyBzcGFuIHtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4ycyBlYXNlLCBjb2xvciAwLjJzIGVhc2U7XG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5yYXRpbmc6aG92ZXIgc3BhbiB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjEpO1xufVxuXG4vKiBDaGF0IGlucHV0IGFyZWEgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgei1pbmRleDogMTA7XG4gICAgZ3JpZC1hcmVhOiDwn5OdO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIHBhZGRpbmc6IDI0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IDI0cHg7XG4gICAgcGFkZGluZy1ib3R0b206IGNhbGMoMjRweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgbWluLXdpZHRoOiAwO1xuXG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5DaGF0LmZ1bGxQYWdlVmlzdWFsIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCB7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDI1cHgpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMCkgMCUsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC44KSAxMDAlKTtcbn1cblxuLyogRmlsZSB1cGxvYWQgZHJhZy1hbmQtZHJvcCBzdHlsZXMgKi9cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dC5kcmFnT3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHRvcCwgcmdiYSgwLCAxMzIsIDI1NSwgMC4xKSAwJSwgcmdiYSgwLCAxMzIsIDI1NSwgMC4wNSkgMTAwJSk7XG59XG5cbi8qIEZpbGUgcHJldmlldyBjb250YWluZXIgKi9cbi5maWxlUHJldmlld0NvbnRhaW5lciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xufVxuXG4vKiBJbmRpdmlkdWFsIGZpbGUgcHJldmlldyAqL1xuLmZpbGVQcmV2aWV3IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjEpO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xufVxuXG4uZmlsZVByZXZpZXc6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xNSk7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMyk7XG59XG5cbi5maWxlSWNvbiB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIG9wYWNpdHk6IDAuNztcbn1cblxuLmZpbGVJbmZvIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAycHg7XG4gICAgbWluLXdpZHRoOiAwO1xufVxuXG4uZmlsZU5hbWUge1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgY29sb3I6IGJsYWNrO1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgICBtYXgtd2lkdGg6IDE1MHB4O1xufVxuXG4uZmlsZVNpemUge1xuICAgIGNvbG9yOiAjNmI3MjgwO1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbn1cblxuLnJlbW92ZUZpbGVCdXR0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjEpO1xuICAgIGNvbG9yOiAjZmY0NDQ0O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLnJlbW92ZUZpbGVCdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAwLCAwLCAwLjIpO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbn1cblxuLyogSW5wdXQgY29udGFpbmVyIGZvciB0ZXh0YXJlYSBhbmQgYnV0dG9ucyAqL1xuLmlucHV0Q29udGFpbmVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAwLjA4KTtcbiAgICBib3JkZXItcmFkaXVzOiAyOHB4O1xuICAgIHBhZGRpbmc6IDhweCAxMnB4O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDIwcHggcmdiYSgwLCAwLCAwLCAwLjA2KTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG59XG5cbi5pbnB1dENvbnRhaW5lcjpmb2N1cy13aXRoaW4ge1xuICAgIGJvcmRlci1jb2xvcjogdmFyKC0tYnJhbmQtY29sb3IpO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDMycHggcmdiYSgwLCAxMzIsIDI1NSwgMC4xMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpO1xufVxuXG4uaW5wdXRDb250YWluZXIgdGV4dGFyZWE6OnBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4vKiBBdHRhY2htZW50IGJ1dHRvbiAqL1xuLmF0dGFjaG1lbnRCdXR0b24ge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLmF0dGFjaG1lbnRCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5hdHRhY2htZW50QnV0dG9uOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjM7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLyogVm9pY2UgQnV0dG9uICovXG4udm9pY2VCdXR0b24ge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG1hcmdpbjogMDtcbn1cblxuLnZvaWNlQnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjFmNWY5O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udm9pY2VCdXR0b25BY3RpdmUge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2VmNDQ0NCAhaW1wb3J0YW50O1xuICAgIGFuaW1hdGlvbjogdm9pY2VSZWNvcmRpbmdQdWxzZSAxLjVzIGluZmluaXRlO1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDI0cHg7XG4gICAgYm90dG9tOiA4NnB4O1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWF4LXdpZHRoOiBtaW4oMzIwcHgsIGNhbGMoMTAwJSAtIDQ4cHgpKTtcbiAgICBwYWRkaW5nOiA4cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMTUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC45NSk7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgYm94LXNoYWRvdzogMCAxMnB4IDI4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjE4KTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wMWVtO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3JkZXItd2lkdGg6IDFweDtcbiAgICBib3JkZXItc3R5bGU6IHNvbGlkO1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICB6LWluZGV4OiAyNTtcbiAgICBhbmltYXRpb246IHNwZWVjaFN0YXR1c0J1YmJsZUluIDAuMnMgZWFzZS1vdXQ7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVEb3Qge1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJhY2tncm91bmQ6ICM2NDc0OGI7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYW5pbWF0aW9uOiBzcGVlY2hTdGF0dXNCdWJibGVEb3RQdWxzZSAxLjJzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlUmVjb3JkaW5nIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU0LCAyNDIsIDI0MiwgMC45Nyk7XG4gICAgY29sb3I6ICM5OTFiMWI7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVSZWNvcmRpbmcgLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgYmFja2dyb3VuZDogI2VmNDQ0NDtcbn1cblxuLnNwZWVjaFN0YXR1c0J1YmJsZVByb2Nlc3Npbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNCwgMTE2LCAxNDQsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM2LCAyNTQsIDI1NSwgMC45Nyk7XG4gICAgY29sb3I6ICMxNTVlNzU7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVQcm9jZXNzaW5nIC5zcGVlY2hTdGF0dXNCdWJibGVEb3Qge1xuICAgIGJhY2tncm91bmQ6ICMwZWE1ZTk7XG59XG5cbi5zcGVlY2hTdGF0dXNCdWJibGVFcnJvciB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDIyMCwgMzgsIDM4LCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjQyLCAyNDIsIDAuOTgpO1xuICAgIGNvbG9yOiAjOTkxYjFiO1xufVxuXG4uc3BlZWNoU3RhdHVzQnViYmxlRXJyb3IgLnNwZWVjaFN0YXR1c0J1YmJsZURvdCB7XG4gICAgYmFja2dyb3VuZDogI2RjMjYyNjtcbiAgICBhbmltYXRpb246IG5vbmU7XG59XG5cbi5kaWN0YXRpb25QYW5lbCB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHBhZGRpbmc6IDEwcHggMTJweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuOSk7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgYm94LXNoYWRvdzogaW5zZXQgMCAwIDAgMXB4IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4uZGljdGF0aW9uUGFuZWxIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5kaWN0YXRpb25QYW5lbFRpdGxlIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5kaWN0YXRpb25QYW5lbFRvZ2dsZSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMzMzQxNTU7XG4gICAgcGFkZGluZzogNHB4IDhweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kaWN0YXRpb25JbnRlcmltVHJhbnNjcmlwdCB7XG4gICAgYm9yZGVyOiAxcHggZGFzaGVkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjQ1KTtcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCAyNDYsIDI1NSwgMC45KTtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGNvbG9yOiAjMGM0YTZlO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kaWN0YXRpb25FcnJvclBhbmVsIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyMCwgMzgsIDM4LCAwLjI1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NCwgMjQyLCAyNDIsIDAuOTUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgcGFkZGluZzogOHB4IDEwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xuICAgIGNvbG9yOiAjOTkxYjFiO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZGljdGF0aW9uRXJyb3JBY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvbkVycm9yQWN0aW9ucyBidXR0b24sXG4uZGljdGF0aW9uQ29ycmVjdGlvbkFjdGlvbnMgYnV0dG9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBwYWRkaW5nOiA2cHggMTBweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi5kaWN0YXRpb25Db3JyZWN0aW9uUGFuZWwge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmRpY3RhdGlvbkNvcnJlY3Rpb25MYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMzMzQxNTU7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wNWVtO1xufVxuXG4uZGljdGF0aW9uQ29ycmVjdGlvblRleHRhcmVhIHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiA2OHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC4zNSk7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBwYWRkaW5nOiA4cHggMTBweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNTtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICByZXNpemU6IHZlcnRpY2FsO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG59XG5cbi5kaWN0YXRpb25Db3JyZWN0aW9uQWN0aW9ucyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5kaWN0YXRpb25TZXR0aW5nc1BhbmVsIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KDIsIG1pbm1heCgwLCAxZnIpKTtcbiAgICBnYXA6IDhweCAxMnB4O1xufVxuXG4uZGljdGF0aW9uU2V0dGluZ3NQYW5lbCBsYWJlbCB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDZweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgY29sb3I6ICMzMzQxNTU7XG59XG5cbi5kaWN0YXRpb25GYWxsYmFja05vdGUge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgbGluZS1oZWlnaHQ6IDEuNDU7XG59XG5cbkBrZXlmcmFtZXMgc3BlZWNoU3RhdHVzQnViYmxlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoNnB4KSBzY2FsZSgwLjk4KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG5Aa2V5ZnJhbWVzIHNwZWVjaFN0YXR1c0J1YmJsZURvdFB1bHNlIHtcbiAgICAwJSxcbiAgICAxMDAlIHtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxKTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgb3BhY2l0eTogMC42O1xuICAgICAgICB0cmFuc2Zvcm06IHNjYWxlKDAuODIpO1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyB2b2ljZVJlY29yZGluZ1B1bHNlIHtcbiAgICAwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDAgcmdiYSgyNTUsIDAsIDAsIDAuNCk7XG4gICAgfVxuICAgIDcwJSB7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDEwcHggcmdiYSgyNTUsIDAsIDAsIDApO1xuICAgIH1cbiAgICAxMDAlIHtcbiAgICAgICAgYm94LXNoYWRvdzogMCAwIDAgMCByZ2JhKDI1NSwgMCwgMCwgMCk7XG4gICAgfVxufVxuXG4vKiBVcGxvYWQgcHJvZ3Jlc3MgaW5kaWNhdG9yICovXG4udXBsb2FkUHJvZ3Jlc3Mge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgcGFkZGluZzogOHB4IDEycHg7XG4gICAgYmFja2dyb3VuZDogcmdiYSgwLCAxMzIsIDI1NSwgMC4xKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDAsIDEzMiwgMjU1LCAwLjIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICMwMDg0ZmY7XG59XG5cbi51cGxvYWRQcm9ncmVzc0JhciB7XG4gICAgZmxleDogMTtcbiAgICBoZWlnaHQ6IDRweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjIpO1xuICAgIGJvcmRlci1yYWRpdXM6IDJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xufVxuXG4udXBsb2FkUHJvZ3Jlc3NGaWxsIHtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCAjMDA4NGZmLCByZ2JhKDAsIDEzMiwgMjU1LCAwLjgpKTtcbiAgICBib3JkZXItcmFkaXVzOiAycHg7XG4gICAgYW5pbWF0aW9uOiB1cGxvYWRQcm9ncmVzcyAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHVwbG9hZFByb2dyZXNzIHtcbiAgICAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtMTAwJSk7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgwJSk7XG4gICAgfVxuICAgIDEwMCUge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgfVxufVxuXG4vKiBEcmFnIG92ZXJsYXkgKi9cbi5kcmFnT3ZlcmxheSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDAsIDEzMiwgMjU1LCAwLjEpO1xuICAgIGJvcmRlcjogMnB4IGRhc2hlZCByZ2JhKDAsIDEzMiwgMjU1LCAwLjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICB6LWluZGV4OiAyMDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbn1cblxuLmRyYWdPdmVybGF5Q29udGVudCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIGNvbG9yOiAjMDA4NGZmO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4uZHJhZ092ZXJsYXlDb250ZW50IHN2ZyB7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4vKiBDaGF0IGlucHV0IGZpZWxkICovXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWEge1xuICAgIGZsZXg6IDE7XG4gICAgcGFkZGluZzogdmFyKC0tY2hhdC1pbnB1dC1wYWRkaW5nLXkpIHZhcigtLWNoYXQtaW5wdXQtcGFkZGluZy14KTtcbiAgICBtYXJnaW46IDA7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgbWluLXdpZHRoOiAwO1xuICAgIGhlaWdodDogdmFyKC0tY2hhdC1pbnB1dC10ZXh0YXJlYS1oZWlnaHQpO1xuICAgIG1pbi1oZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtdGV4dGFyZWEtaGVpZ2h0KTtcbiAgICBtYXgtaGVpZ2h0OiB2YXIoLS1jaGF0LWlucHV0LXRleHRhcmVhLWhlaWdodCk7XG4gICAgZm9udC1zaXplOiB2YXIoLS1jaGF0LWlucHV0LWZvbnQtc2l6ZSk7XG4gICAgbGluZS1oZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtbGluZS1oZWlnaHQpO1xuICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbiAgICByZXNpemU6IG5vbmU7XG4gICAgYXBwZWFyYW5jZTogbm9uZTtcbiAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7XG4gICAgLXdlYmtpdC10YXAtaGlnaGxpZ2h0LWNvbG9yOiB0cmFuc3BhcmVudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbjtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHRleHRhcmVhOmZvY3VzIHtcbiAgICAvKiBGb2N1cyBpcyBoYW5kbGVkIGJ5IC5pbnB1dENvbnRhaW5lciAqL1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWE6ZGlzYWJsZWQge1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIHRyYW5zZm9ybTogbm9uZTtcbn1cblxuLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHRleHRhcmVhOjpwbGFjZWhvbGRlciB7XG4gICAgY29sb3I6IGluaGVyaXQ7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4vKiBDaGF0IHNlbmQgYnV0dG9uICovXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uW2RhdGEtYnV0dG9uLXR5cGU9J2NhbGwtdG8tYWN0aW9uJ10ge1xuICAgIHdpZHRoOiB2YXIoLS1jaGF0LWlucHV0LWFjdGlvbi1zaXplKTtcbiAgICBoZWlnaHQ6IHZhcigtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemUpO1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcblxuICAgIGJvcmRlcjogbm9uZTtcbiAgICBjb2xvcjogI2ZmZmZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlICFpbXBvcnRhbnQ7XG4gICAgYXNwZWN0LXJhdGlvOiAxIC8gMTtcbiAgICBtaW4td2lkdGg6IHVuc2V0ICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogdW5zZXQgIWltcG9ydGFudDtcblxuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMjUpO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgb3ZlcmZsb3c6IHZpc2libGU7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b25bZGF0YS1idXR0b24tdHlwZT0nY2FsbC10by1hY3Rpb24nXTpob3ZlciB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgxLjA1KTtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMzUpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uW2RhdGEtYnV0dG9uLXR5cGU9J2NhbGwtdG8tYWN0aW9uJ106YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTUpO1xufVxuXG4uY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uW2RhdGEtYnV0dG9uLXR5cGU9J2NhbGwtdG8tYWN0aW9uJ10gc3ZnIHtcbiAgICB3aWR0aDogMjBweDtcbiAgICBoZWlnaHQ6IDIwcHg7XG59XG5cbi5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b24gaW1nIHtcbiAgICB3aWR0aDogNTAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb250YWluO1xufVxuXG4vKiBTY3JvbGwgdG8gYm90dG9tIGJ1dHRvbiAqL1xuXG4uc2Nyb2xsVG9Cb3R0b21Db250YWluZXIge1xuICAgIC8qL1xuICAgIG91dGxpbmU6IDFweCBkb3R0ZWQgcmVkO1xuICAgIC8qKi9cblxuICAgIHotaW5kZXg6IDIwO1xuICAgIGdyaWQtYXJlYTog8J+TnTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogZmxleC1zdGFydDtcblxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uc2Nyb2xsVG9Cb3R0b21Db250YWluZXIgLnNjcm9sbFRvQm90dG9tV3JhcHBlciB7XG4gICAgcG9pbnRlci1ldmVudHM6IGFsbDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTE1MCUpO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgYW5pbWF0aW9uOiBzY3JvbGxCdXR0b25TbGlkZUluIDAuM3MgZWFzZS1vdXQ7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xufVxuXG4uc2Nyb2xsVG9Cb3R0b21Db250YWluZXIgLnNjcm9sbFRvQm90dG9tIHtcbiAgICB3aWR0aDogNDhweDtcbiAgICBoZWlnaHQ6IDQ4cHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBvdXRsaW5lOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMCAwIDAgLyAwLjUpO1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBmb250LXdlaWdodDogYm9sZDtcbiAgICBjb2xvcjogd2hpdGU7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb247XG4gICAgdXNlci1zZWxlY3Q6IG5vbmU7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAwLCAwLCAwLjMpO1xufVxuXG5Aa2V5ZnJhbWVzIHNjcm9sbEJ1dHRvblNsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICBvcGFjaXR5OiAwO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtNTAlLCAyMHB4KSBzY2FsZSgwLjgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDAuOTtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG4uc2Nyb2xsVG9Cb3R0b21CYWRnZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogLThweDtcbiAgICByaWdodDogLThweDtcbiAgICBtaW4td2lkdGg6IDMycHg7XG4gICAgcGFkZGluZzogMnB4IDZweDtcbiAgICBmb250LXNpemU6IDEwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBiYWNrZ3JvdW5kOiAjMjU2M2ViO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDEwcHggcmdiYSgzNywgOTksIDIzNSwgMC40KTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA0ZW07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xufVxuXG4vKiBSYXRpbmcgbW9kYWwgKi9cbi5yYXRpbmdNb2RhbCB7XG4gICAgcG9zaXRpb246IGZpeGVkO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAwO1xuICAgIHJpZ2h0OiAwO1xuICAgIGJvdHRvbTogMDtcblxuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMCwgMCwgMCwgMC42KTtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoOHB4KTtcblxuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICB6LWluZGV4OiAxMDAwO1xuICAgIGFuaW1hdGlvbjogbW9kYWxGYWRlSW4gMC4zcyBlYXNlLW91dDtcbn1cblxuQGtleWZyYW1lcyBtb2RhbEZhZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigwcHgpO1xuICAgIH1cbiAgICB0byB7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cig4cHgpO1xuICAgIH1cbn1cblxuLnJhdGluZ01vZGFsQ29udGVudCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBjb2xvcjogIzBmMTcyNDtcbiAgICBwYWRkaW5nOiAzMnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgd2lkdGg6IDkwJTtcbiAgICBtYXgtd2lkdGg6IDQ4MHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMjBweCA2MHB4IHJnYmEoMCwgMCwgMCwgMC4zKTtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAgIGFuaW1hdGlvbjogbW9kYWxTbGlkZUluIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuXG4gICAgZm9udC1mYW1pbHk6IEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWYsICdPcGVuTW9qaUNvbG9yJywgJ09wZW5Nb2ppQmxhY2snO1xuICAgIC8qIDwtIFRPRE86IFvwn6egXVvwn46xXSBCZXR0ZXIsIGRlZmluZSBvdGhlciBmb250cyAqL1xufVxuXG5Aa2V5ZnJhbWVzIG1vZGFsU2xpZGVJbiB7XG4gICAgZnJvbSB7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgyMHB4KSBzY2FsZSgwLjk1KTtcbiAgICB9XG4gICAgdG8ge1xuICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCkgc2NhbGUoMSk7XG4gICAgfVxufVxuXG4ucmF0aW5nTW9kYWxDb250ZW50IGgzIHtcbiAgICBtYXJnaW46IDAgMCAyNHB4IDA7XG4gICAgdGV4dC1hbGlnbjogY2VudGVyO1xuICAgIGNvbG9yOiBibGFjaztcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnN0YXJzIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIG1hcmdpbi1ib3R0b206IDI0cHg7XG59XG5cbi5zdGFycyBzcGFuIHtcbiAgICBmb250LXNpemU6IDI4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgcGFkZGluZzogNHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbn1cblxuLnN0YXJzIHNwYW46aG92ZXIge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4yKTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDI1NSwgMjE1LCAwLCAwLjEpO1xufVxuXG4ucmF0aW5nTW9kYWxTdGFyIHtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIHRyYW5zaXRpb246IGNvbG9yIDAuMnM7XG59XG5cbi50b29sQ2FsbE1vZGFsIHtcbiAgICBtYXgtd2lkdGg6IDgwMHB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDQ4cHgpO1xuICAgIG92ZXJmbG93LXk6IGF1dG87XG4gICAgb3ZlcmZsb3cteDogaGlkZGVuO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbn1cblxuLnRvb2xDYWxsSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIHBhZGRpbmc6IDI0cHggMzJweCAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNlZWYyZmYgMCUsICNmNWYzZmYgNDAlLCAjZmVmY2M5IDEwMCUpO1xuICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4udG9vbENhbGxJY29uIHtcbiAgICBmb250LXNpemU6IDMycHg7XG59XG5cbi50b29sQ2FsbEhlYWRlck1ldGEge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLnRvb2xDYWxsTW9kYWxMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjM1ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICBtYXJnaW46IDA7XG59XG5cbi50b29sQ2FsbFRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi50b29sQ2FsbFN1YnRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNDc1NDY3O1xufVxuXG4udG9vbENhbGxHcmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjUwcHgsIDFmcikpO1xuICAgIGdhcDogMTZweDtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmZWZlO1xufVxuXG4udG9vbENhbGxQYW5lbCB7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgcGFkZGluZzogMThweDtcbiAgICBib3gtc2hhZG93OiAwIDE4cHggNDBweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4udG9vbENhbGxQYW5lbFRpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMjVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4udG9vbENhbGxMaXN0IHtcbiAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEycHg7XG59XG5cbi50b29sQ2FsbEl0ZW0ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLnRvb2xDYWxsSXRlbUxhYmVsIHtcbiAgICBmb250LXNpemU6IDExcHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMjVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4udG9vbENhbGxJdGVtVmFsdWUge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS40O1xuICAgIHdvcmQtYnJlYWs6IGJyZWFrLXdvcmQ7XG4gICAgd2hpdGUtc3BhY2U6IHByZS13cmFwO1xufVxuXG4udG9vbENhbGxTdW1tYXJ5IHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNXB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjY7XG59XG5cbi50b29sQ2FsbFN1bW1hcnlNZXRhIHtcbiAgICBtYXJnaW4tdG9wOiAxNHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4udG9vbENhbGxTdW1tYXJ5TWV0YUJhZGdlIHtcbiAgICBwYWRkaW5nOiA1cHggMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDc5LCA3MCwgMjI5LCAwLjE1KTtcbiAgICBjb2xvcjogIzMxMmU4MTtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnRvb2xDYWxsRW1wdHkge1xuICAgIG1hcmdpbjogMDtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgICBmb250LXNpemU6IDE0cHg7XG59XG5cbi50b29sQ2FsbFBlbmRpbmdDYXJkIHtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgI2NiZDVlMTtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIHBhZGRpbmc6IDE0cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDE4MGRlZywgI2Y4ZmJmZiAwJSwgI2Y4ZmFmYyAxMDAlKTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxMHB4O1xufVxuXG4udG9vbENhbGxQZW5kaW5nSGVhZGVyIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTBweDtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ1RpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ0JhZGdlIHtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0LCAxNjUsIDIzMywgMC4xMik7XG4gICAgY29sb3I6ICMwMzY5YTE7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDVlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuXG4udG9vbENhbGxQZW5kaW5nTWVzc2FnZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4udG9vbENhbGxQZW5kaW5nU2tlbGV0b24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRvb2xDYWxsUGVuZGluZ1NrZWxldG9uTGluZSB7XG4gICAgaGVpZ2h0OiAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjcpLCByZ2JhKDI0MSwgMjQ1LCAyNDksIDEpLCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuNykpO1xuICAgIGJhY2tncm91bmQtc2l6ZTogMjAwJSAxMDAlO1xuICAgIGFuaW1hdGlvbjogdG9vbENhbGxQZW5kaW5nU2tlbGV0b25QdWxzZSAxLjRzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG4udG9vbENhbGxQZW5kaW5nU2tlbGV0b25TaG9ydCB7XG4gICAgd2lkdGg6IDY4JTtcbn1cblxuQGtleWZyYW1lcyB0b29sQ2FsbFBlbmRpbmdTa2VsZXRvblB1bHNlIHtcbiAgICBmcm9tIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogMTAwJSA1MCU7XG4gICAgfVxuICAgIHRvIHtcbiAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogLTEwMCUgNTAlO1xuICAgIH1cbn1cblxuLnRvb2xDYWxsRGV0YWlsc0NhcmQge1xuICAgIG1hcmdpbi10b3A6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLnRvb2xDYWxsRGV0YWlsc0NhcmRSb3cge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGdhcDogMTJweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjMzM0MTU1O1xuICAgIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOSk7XG59XG5cbi50b29sQ2FsbERldGFpbHNDYXJkUm93OmZpcnN0LWNoaWxkIHtcbiAgICBib3JkZXItdG9wOiBub25lO1xufVxuXG4udG9vbENhbGxEZXRhaWxzQ2FyZFJvdyBzdHJvbmcge1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxJc3N1ZXMge1xuICAgIHBhZGRpbmc6IDAgMzJweCAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4udG9vbENhbGxJc3N1ZUJhZGdlIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHBhZGRpbmc6IDZweCAxMHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xufVxuXG4udG9vbENhbGxJc3N1ZUVycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjEyKTtcbiAgICBjb2xvcjogI2I5MWMxYztcbn1cblxuLnRvb2xDYWxsSXNzdWVXYXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNCwgMTc5LCA4LCAwLjE2KTtcbiAgICBjb2xvcjogI2ExNjIwNztcbn1cblxuLnRvb2xDYWxsTW9kZUZvb3RlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxMnB4O1xuICAgIHBhZGRpbmc6IDAgMzJweCAyNHB4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbn1cblxuLnRvb2xDYWxsTW9kZUJ1dHRvbiB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2NiZDVlMTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIHBhZGRpbmc6IDhweCAxNnB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLCBiYWNrZ3JvdW5kLWNvbG9yIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbn1cblxuLnRvb2xDYWxsTW9kZUJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBib3JkZXItY29sb3I6ICM5NGEzYjg7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4udG9vbENhbGxDbG9ja1BhbmVsIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDIwcHg7XG4gICAgcGFkZGluZzogMjBweDtcbn1cblxuLnRvb2xDYWxsQ2xvY2tMYWJlbHMge1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cblxuLnRvb2xDYWxsQ2xvY2tQcmltYXJ5IHtcbiAgICBmb250LXNpemU6IDJlbTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udG9vbENhbGxDbG9ja1NlY29uZGFyeSB7XG4gICAgY29sb3I6ICM0NzU0Njc7XG59XG5cbi50b29sQ2FsbENsb2NrTWV0YSB7XG4gICAgZm9udC1zaXplOiAwLjllbTtcbiAgICBjb2xvcjogIzY2NzA4NTtcbiAgICBtYXJnaW4tdG9wOiA1cHg7XG59XG5cbi50aW1lb3V0VG9vbFN1bW1hcnkge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIHBhZGRpbmc6IDE2cHg7XG59XG5cbi50aW1lb3V0VG9vbFByaW1hcnlTZW50ZW5jZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi50aW1lb3V0VG9vbFNlY29uZGFyeVNlbnRlbmNlIHtcbiAgICBtYXJnaW46IDZweCAwIDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi50aW1lb3V0VG9vbEFjdGlvblJvdyB7XG4gICAgbWFyZ2luLXRvcDogMTRweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtd3JhcDogd3JhcDtcbiAgICBnYXA6IDhweDtcbn1cblxuLnRpbWVvdXRUb29sQWN0aW9uQnV0dG9uIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JkNWUxO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgcGFkZGluZzogOHB4IDE0cHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UsIGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xufVxuXG4udGltZW91dFRvb2xBY3Rpb25CdXR0b246aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmMWY1Zjk7XG4gICAgYm9yZGVyLWNvbG9yOiAjOTRhM2I4O1xufVxuXG4udGltZW91dFRvb2xBY3Rpb25CdXR0b246ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogZGVmYXVsdDtcbiAgICBvcGFjaXR5OiAwLjQ1O1xufVxuXG4ubWVtb3J5TW9kYWxIZWFkZXIge1xuICAgIHBhZGRpbmc6IDI4cHggMzJweCAxNnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsICNmZGZkZmQgMCUsICNmNmY5ZmYgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7XG59XG5cbi5tZW1vcnlNb2RhbEljb24ge1xuICAgIHdpZHRoOiA1MnB4O1xuICAgIGhlaWdodDogNTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICM2MzY2ZjEsICNhODU1ZjcpO1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAyNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCAyOHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xOCk7XG59XG5cbi5tZW1vcnlNb2RhbEhlYWRlclRleHQge1xuICAgIGZsZXg6IDE7XG59XG5cbi5tZW1vcnlNb2RhbFRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAyMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG59XG5cbi5tZW1vcnlNb2RhbFN1YnRpdGxlIHtcbiAgICBtYXJnaW46IDRweCAwIDA7XG4gICAgY29sb3I6ICM0NzU0Njc7XG4gICAgZm9udC1zaXplOiAxNHB4O1xufVxuXG4ubWVtb3J5TW9kYWxTdGF0dXMge1xuICAgIG1hcmdpbi1sZWZ0OiBhdXRvO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDZweCAxNHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA2cHg7XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbn1cblxuLm1lbW9yeVN0YXR1c0RvdCB7XG4gICAgd2lkdGg6IDhweDtcbiAgICBoZWlnaHQ6IDhweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYmFja2dyb3VuZDogY3VycmVudENvbG9yO1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbn1cblxuLm1lbW9yeU1vZGFsQ29udGVudCB7XG4gICAgcGFkZGluZzogMjRweCAzMnB4IDMycHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAxNnB4O1xufVxuXG4ubWVtb3J5TWVzc2FnZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xufVxuXG4ubWVtb3J5TWV0YVJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU0Njc7XG59XG5cbi5tZW1vcnlNZXRhTGFiZWwge1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4ubWVtb3J5TWV0YVZhbHVlIHtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4ubWVtb3J5U3RvcmVTZWN0aW9uLFxuLm1lbW9yeVJldHJpZXZlU2VjdGlvbiB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLm1lbW9yeUNhcmQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBwYWRkaW5nOiAxOHB4O1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgYm94LXNoYWRvdzogMCAxMHB4IDE4cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLm1lbW9yeUNhcmRDb250ZW50IHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBsaW5lLWhlaWdodDogMS42O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgb3ZlcmZsb3ctd3JhcDogYnJlYWstd29yZDtcbn1cblxuLm1lbW9yeUNhcmRNZXRhIHtcbiAgICBtYXJnaW4tdG9wOiAxMnB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgY29sb3I6ICM5NGEzYjg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xufVxuXG4ubWVtb3J5U2NvcGVCYWRnZSB7XG4gICAgcGFkZGluZzogM3B4IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgZm9udC1zaXplOiAxMXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxMjQsIDU4LCAyMzcsIDAuMTIpO1xufVxuXG4ubWVtb3J5TGlzdCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTJweDtcbn1cblxuLm1lbW9yeUVtcHR5U3RhdGUge1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYmFja2dyb3VuZDogI2ZlZjNjNztcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZmRlNjhhO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgY29sb3I6ICM5MjQwMGU7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cblxuLm1lbW9yeUxpc3RGb290ZXIge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBjb2xvcjogIzQ3NTQ2NztcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5tZW1vcnlTdGF0dXNTdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4xNik7XG4gICAgY29sb3I6ICMwNDc4NTc7XG59XG5cbi5tZW1vcnlTdGF0dXNXYXJuaW5nIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzNCwgMTc5LCA4LCAwLjE2KTtcbiAgICBjb2xvcjogI2ExNjIwNztcbn1cblxuLm1lbW9yeVN0YXR1c0Vycm9yIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDIzOSwgNjgsIDY4LCAwLjE1KTtcbiAgICBjb2xvcjogI2I5MWMxYztcbn1cblxuLm1lbW9yeVN0YXR1c05ldXRyYWwge1xuICAgIGJhY2tncm91bmQ6IHJnYmEoOTYsIDE2NSwgMjUwLCAwLjE1KTtcbiAgICBjb2xvcjogIzFkNGVkODtcbn1cblxuLnNlYXJjaE1vZGFsSGVhZGVyIHtcbiAgICBwYWRkaW5nOiAyNHB4IDMycHg7XG4gICAgcGFkZGluZy1yaWdodDogNzJweDtcbiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2VlZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiAxNnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZGZkZmQ7XG59XG5cbi5zZWxmTGVhcm5pbmdNb2RhbEhlYWRlciB7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDE4cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y4ZmFmYyAwJSwgI2ZlZjljMyA0NSUsICNlY2ZjY2IgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlMmU4ZjA7XG59XG5cbi5zZWxmTGVhcm5pbmdBdmF0YXJHcm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbn1cblxuLnNlbGZMZWFybmluZ0F2YXRhciB7XG4gICAgd2lkdGg6IDQ4cHg7XG4gICAgaGVpZ2h0OiA0OHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDUwJTtcbiAgICBiYWNrZ3JvdW5kOiAjZTJlOGYwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBmb250LXNpemU6IDE4cHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDJlbTtcbiAgICBiYWNrZ3JvdW5kLXNpemU6IGNvdmVyO1xuICAgIGJhY2tncm91bmQtcG9zaXRpb246IGNlbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDEwcHggMjBweCByZ2JhKDE1LCAyMywgNDIsIDAuMTgpO1xufVxuXG4uc2VsZkxlYXJuaW5nQXZhdGFySW5pdGlhbCB7XG4gICAgbGluZS1oZWlnaHQ6IDE7XG59XG5cbi5zZWxmTGVhcm5pbmdUZWFjaGVyIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZmRlNjhhIDAlLCAjODZlZmFjIDEwMCUpO1xufVxuXG4uc2VsZkxlYXJuaW5nSGVhZGVyVGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNnB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zZWxmTGVhcm5pbmdUaXRsZSB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGZvbnQtc2l6ZTogMjBweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4uc2VsZkxlYXJuaW5nTWV0YVJvdyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEwcHg7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xuICAgIG1hcmdpbi1ib3R0b206IDEycHg7XG59XG5cbi5zZWxmTGVhcm5pbmdNZXRhIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM2NDc0OGI7XG59XG5cbi5zZWxmTGVhcm5pbmdNZXRhQ2hpcCB7XG4gICAgYmFja2dyb3VuZDogI2UyZThmMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBwYWRkaW5nOiA0cHggMTBweDtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLnNlbGZMZWFybmluZ0NvbW1pdG1lbnRzIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xufVxuXG4uc2VsZkxlYXJuaW5nQ29tbWl0bWVudHNMYWJlbCB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBjb2xvcjogIzk0YTNiODtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uc2VsZkxlYXJuaW5nQm9va0VkaXRvciB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG59XG5cbi5zZWxmTGVhcm5pbmdFbXB0eSB7XG4gICAgbWFyZ2luLXRvcDogMTJweDtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgY29sb3I6ICM0NzU1Njk7XG59XG5cbi5tb2RhbENsb3NlQnV0dG9uIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAxNnB4O1xuICAgIHJpZ2h0OiAxNnB4O1xuICAgIHotaW5kZXg6IDE7XG4gICAgd2lkdGg6IDM2cHg7XG4gICAgaGVpZ2h0OiAzNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBib3gtc2hhZG93OiAwIDZweCAxNnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4wOCk7XG4gICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjJzIGVhc2UsIGNvbG9yIDAuMnMgZWFzZSwgYm94LXNoYWRvdyAwLjJzIGVhc2UsIHRyYW5zZm9ybSAwLjJzIGVhc2U7XG59XG5cbi5tb2RhbENsb3NlQnV0dG9uOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGJveC1zaGFkb3c6IDAgMTBweCAyNHB4IHJnYmEoMTUsIDIzLCA0MiwgMC4xMik7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0xcHgpO1xufVxuXG4ubW9kYWxDbG9zZUJ1dHRvbjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgIzk0YTNiODtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4udGVhbU1vZGFsSGVhZGVyIHtcbiAgICBnYXA6IDEycHg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xufVxuXG4udGVhbUhlYWRlclBhcnRpY2lwYW50cyB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbiAgICBmbGV4LXdyYXA6IHdyYXA7XG59XG5cbi50ZWFtSGVhZGVyUHJvZmlsZSB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBnYXA6IDEycHg7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICAgIGNvbG9yOiBpbmhlcml0O1xufVxuXG4udGVhbUhlYWRlclByb2ZpbGVMaW5rOmhvdmVyIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnRlYW1IZWFkZXJBdmF0YXIge1xuICAgIHdpZHRoOiA0MHB4O1xuICAgIGhlaWdodDogNDBweDtcbiAgICBib3JkZXItcmFkaXVzOiA5OTlweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJhY2tncm91bmQtc2l6ZTogY292ZXI7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyO1xuICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG4gICAgYm94LXNoYWRvdzogMCA2cHggMTRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4udGVhbUhlYWRlck5hbWUge1xuICAgIGZvbnQtc2l6ZTogMThweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4udGVhbUhlYWRlckRpdmlkZXIge1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjOTRhM2I4O1xufVxuXG4uc2VhcmNoTW9kYWxJY29uIHtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuLnNlYXJjaE1vZGFsUXVlcnkge1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGZvbnQtc2l6ZTogMjJweCAhaW1wb3J0YW50O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDAgIWltcG9ydGFudDtcbiAgICBjb2xvcjogIzIwMjEyNCAhaW1wb3J0YW50O1xuICAgIHRleHQtYWxpZ246IGxlZnQgIWltcG9ydGFudDtcbn1cblxuLnNlYXJjaE1vZGFsQ29udGVudCB7XG4gICAgcGFkZGluZzogMjRweCAzMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgbWF4LWhlaWdodDogNjB2aDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4udGVhbUNoYXRDb250YWluZXIge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlNWU3ZWI7XG4gICAgYm9yZGVyLXJhZGl1czogMTZweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgbWFyZ2luLWJvdHRvbTogMjBweDtcbn1cblxuLnRlYW1Ub29sQ2FsbFNlY3Rpb24ge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDE2cHg7XG59XG5cbi50ZWFtVG9vbENhbGxHcm91cCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogOHB4O1xufVxuXG4udGVhbVRvb2xDYWxsSGVhZGluZyB7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIGNvbG9yOiAjNjQ3NDhiO1xufVxuXG4udGVhbVRvb2xDYWxsQ2hpcHMge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC13cmFwOiB3cmFwO1xuICAgIGdhcDogOHB4O1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlscyB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlsc0hlYWRlciB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgICBnYXA6IDEycHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNUaXRsZSB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogNnB4O1xufVxuXG4udGVhbVRvb2xDYWxsRGV0YWlsc0NsZWFyIHtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMik7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxNDgsIDE2MywgMTg0LCAwLjQpO1xuICAgIGJvcmRlci1yYWRpdXM6IDk5OXB4O1xuICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBjdXJzb3I6IHBvaW50ZXI7XG4gICAgY29sb3I6ICM0NzU1Njk7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbn1cblxuLnRlYW1Ub29sQ2FsbERldGFpbHNDbGVhcjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNDgsIDE2MywgMTg0LCAwLjM1KTtcbn1cblxuLnNlYXJjaFJlc3VsdHNMaXN0IHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiAyOHB4O1xuICAgIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5zZWFyY2hSZXN1bHRzUmF3IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1heC13aWR0aDogNjUwcHg7XG59XG5cbi5zZWFyY2hSZXN1bHRJdGVtIHtcbiAgICBtYXgtd2lkdGg6IDY1MHB4O1xufVxuXG4uc2VhcmNoUmVzdWx0VXJsIHtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgY29sb3I6ICMyMDIxMjQ7XG4gICAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbn1cblxuLnNlYXJjaFJlc3VsdFVybCBhIHtcbiAgICBjb2xvcjogIzIwMjEyNDtcbiAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7XG59XG5cbi5zZWFyY2hSZXN1bHRUaXRsZSB7XG4gICAgZm9udC1zaXplOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDQwMCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAwIDRweCAwICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMztcbn1cblxuLnNlYXJjaFJlc3VsdFRpdGxlIGEge1xuICAgIGNvbG9yOiAjMWEwZGFiO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cblxuLnNlYXJjaFJlc3VsdFRpdGxlIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uc2VhcmNoUmVzdWx0U25pcHBldCB7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU4O1xuICAgIGNvbG9yOiAjNGQ1MTU2O1xuICAgIG1hcmdpbjogMDtcbn1cblxuLm5vUmVzdWx0cyB7XG4gICAgcGFkZGluZzogNDBweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgY29sb3I6ICM3MDc1N2E7XG4gICAgZm9udC1zdHlsZTogaXRhbGljO1xufVxuXG4udG9vbENhbGxEZXRhaWxzIHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIG1hcmdpbjogMjBweCAwO1xufVxuLmNpdGF0aW9uRGV0YWlscyB7XG4gICAgdGV4dC1hbGlnbjogbGVmdDtcbiAgICBtYXJnaW46IDIwcHggMDtcbn1cblxuLmNpdGF0aW9uUHJldmlldyB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZGRkO1xuICAgIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG59XG5cbi5jaXRhdGlvbklmcmFtZSB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiA2MHZoO1xuICAgIG1pbi1oZWlnaHQ6IDQwMHB4O1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmNpdGF0aW9uTWV0YWRhdGEge1xuICAgIGJhY2tncm91bmQ6ICNmOGY4Zjg7XG4gICAgcGFkZGluZzogMTZweDtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2VlZTtcbiAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xufVxuXG4uY2l0YXRpb25NZXRhZGF0YSBwIHtcbiAgICBtYXJnaW46IDhweCAwO1xuICAgIGZvbnQtc2l6ZTogMC45ZW07XG59XG5cbi5jaXRhdGlvbk1ldGFkYXRhIHN0cm9uZyB7XG4gICAgY29sb3I6ICMzMzM7XG59XG5cbi5jaXRhdGlvbk1ldGFkYXRhIGEge1xuICAgIGNvbG9yOiAjMDA3YmZmO1xuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgICB3b3JkLWJyZWFrOiBicmVhay1hbGw7XG59XG5cbi5jaXRhdGlvbk1ldGFkYXRhIGE6aG92ZXIge1xuICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xufVxuXG4uY2l0YXRpb25FeGNlcnB0IHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmO1xuICAgIHBhZGRpbmc6IDE2cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNkZGQ7XG4gICAgbWF4LWhlaWdodDogNDAwcHg7XG4gICAgb3ZlcmZsb3cteTogYXV0bztcbn1cblxuLmNpdGF0aW9uRXhjZXJwdCBoNCB7XG4gICAgbWFyZ2luOiAwIDAgMTJweCAwO1xuICAgIGNvbG9yOiAjMzMzO1xuICAgIGZvbnQtc2l6ZTogMWVtO1xufVxuXG4uY2l0YXRpb25IaW50IHtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICBtYXJnaW4tdG9wOiA4cHg7XG4gICAgb3BhY2l0eTogMC43O1xufVxuXG4udG9vbENhbGxEYXRhQ29udGFpbmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmOGY4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNnB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlZWU7XG4gICAgbWFyZ2luLWJvdHRvbTogMTVweDtcbiAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xufVxuXG4udG9vbENhbGxQYXlsb2FkQ29udGFpbmVyIHtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4udG9vbENhbGxQYXlsb2FkRWRpdG9yIDpnbG9iYWwoLm1vbmFjby1lZGl0b3IpLFxuLnRvb2xDYWxsUGF5bG9hZEVkaXRvciA6Z2xvYmFsKC5tb25hY28tZWRpdG9yIC5vdmVyZmxvdy1ndWFyZCksXG4udG9vbENhbGxQYXlsb2FkRWRpdG9yIDpnbG9iYWwoLm1vbmFjby1lZGl0b3IgLm1vbmFjby1zY3JvbGxhYmxlLWVsZW1lbnQpLFxuLnRvb2xDYWxsUGF5bG9hZEVkaXRvciA6Z2xvYmFsKC5tb25hY28tZWRpdG9yLWJhY2tncm91bmQpIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjICFpbXBvcnRhbnQ7XG59XG5cbi50b29sQ2FsbERhdGEge1xuICAgIG1hcmdpbjogMDtcbiAgICBmb250LXNpemU6IDAuODVlbTtcbiAgICB3aGl0ZS1zcGFjZTogcHJlLXdyYXA7XG4gICAgd29yZC1icmVhazogYnJlYWstd29yZDtcbn1cblxuLnRvb2xDYWxsTW9kYWwgLnRvb2xDYWxsRGF0YSB7XG4gICAgYmFja2dyb3VuZDogI2Y4ZmFmYztcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnJhdGluZ0lucHV0IHtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBtaW4taGVpZ2h0OiAxMDBweDtcbiAgICBwYWRkaW5nOiAxNnB4O1xuICAgIGJvcmRlcjogMnB4IHNvbGlkIHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4xKTtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgcmVzaXplOiB2ZXJ0aWNhbDtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMDUpO1xuICAgIGNvbG9yOiAjMGIxMjIwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG59XG5cbi5yYXRpbmdJbnB1dDpmb2N1cyB7XG4gICAgYm9yZGVyLWNvbG9yOiAjMDA4NGZmO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4wOCk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMSk7XG4gICAgb3V0bGluZTogbm9uZTtcbn1cblxuLnJhdGluZ0lucHV0W3JlYWRvbmx5XSB7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4wMSk7XG59XG5cbi5yYXRpbmdBY3Rpb25zIHtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGp1c3RpZnktY29udGVudDogZmxleC1lbmQ7XG4gICAgZ2FwOiAxMnB4O1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b24ge1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBmb250LXNpemU6IDE0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4ycyBlYXNlO1xuICAgIG1pbi13aWR0aDogODBweDtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmZpcnN0LWNoaWxkIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMSk7XG4gICAgY29sb3I6ICMwYjEyMjA7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjIpO1xufVxuXG4ucmF0aW5nQWN0aW9ucyBidXR0b246Zmlyc3QtY2hpbGQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQtY29sb3I6IHJnYmEoMTI1LCAxMjUsIDEyNSwgMC4yKTtcbiAgICBjb2xvcjogIzBiMTIyMDtcbn1cblxuLnJhdGluZ0FjdGlvbnMgYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDg0ZmYgMCUsICMwMDY2Y2MgMTAwJSk7XG4gICAgY29sb3I6ICNmZmZmZmY7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpsYXN0LWNoaWxkOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA3MWQxIDAlLCAjMDA1MmEzIDEwMCUpO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMXB4KTtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxMnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMyk7XG59XG5cbi5yYXRpbmdBY3Rpb25zIGJ1dHRvbjpsYXN0LWNoaWxkOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjU7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbn1cblxuLmRvd25sb2FkQnV0dG9uIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICAgIGdhcDogOHB4O1xuICAgIHBhZGRpbmc6IDEycHggMjRweDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA4NGZmIDAlLCAjMDA2NmNjIDEwMCUpO1xuICAgIGNvbG9yOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogbm9uZTtcbiAgICBib3JkZXItcmFkaXVzOiA4cHg7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjJzIGVhc2U7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG59XG5cbi5kb3dubG9hZEJ1dHRvbjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwOTlmZiAwJSwgIzAwNzdkZCAxMDAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCk7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpO1xufVxuXG4uZG93bmxvYWRCdXR0b246YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMCk7XG4gICAgYm94LXNoYWRvdzogMCAycHggOHB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMik7XG59XG5cbi5kb3dubG9hZEJ1dHRvbiBzdmcge1xuICAgIGZsZXgtc2hyaW5rOiAwO1xufVxuXG4uZG93bmxvYWRCdXR0b24gc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLyogTmV3IGNoYXQgYnV0dG9uIHN0eWxpbmcgLSBNYXRjaGVzIHRoZSBzbGVlayBjaGF0IG1lc3NhZ2UgZGVzaWduICovXG4uY2hhdEJ1dHRvbiB7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXggIWltcG9ydGFudDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXIgIWltcG9ydGFudDtcbiAgICBnYXA6IDhweCAhaW1wb3J0YW50O1xuICAgIHBhZGRpbmc6IDEycHggMTZweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDg0ZmYgMCUsICMwMDY2Y2MgMTAwJSkgIWltcG9ydGFudDtcbiAgICBjb2xvcjogI2ZmZmZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlcjogbm9uZSAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1yYWRpdXM6IDIwcHggIWltcG9ydGFudDtcbiAgICBmb250LXNpemU6IDEzcHggIWltcG9ydGFudDtcbiAgICBmb250LXdlaWdodDogNjAwICFpbXBvcnRhbnQ7XG4gICAgbGluZS1oZWlnaHQ6IDEuMyAhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogcG9pbnRlciAhaW1wb3J0YW50O1xuICAgIHRyYW5zaXRpb246IGFsbCAwLjNzIGN1YmljLWJlemllcigwLjI1LCAwLjQ2LCAwLjQ1LCAwLjk0KSAhaW1wb3J0YW50O1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKSAhaW1wb3J0YW50O1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigyMHB4KSAhaW1wb3J0YW50O1xuICAgIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcbiAgICB0b3VjaC1hY3Rpb246IG1hbmlwdWxhdGlvbiAhaW1wb3J0YW50O1xuICAgIHVzZXItc2VsZWN0OiBub25lICFpbXBvcnRhbnQ7XG4gICAgbWluLWhlaWdodDogNDBweCAhaW1wb3J0YW50O1xuICAgIG1pbi13aWR0aDogMTEwcHggIWltcG9ydGFudDtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmUgIWltcG9ydGFudDtcbiAgICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7XG59XG5cbi5jaGF0QnV0dG9uOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogLTEwMCU7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCg5MGRlZywgdHJhbnNwYXJlbnQsIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yKSwgdHJhbnNwYXJlbnQpO1xuICAgIHRyYW5zaXRpb246IGxlZnQgMC41cyBlYXNlO1xufVxuXG4uY2hhdEJ1dHRvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMDAlO1xufVxuXG4uY2hhdEJ1dHRvbjpob3Zlcjpub3QoOmRpc2FibGVkKSB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgIzAwOTlmZiAwJSwgIzAwNzdkZCAxMDAlKTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wMik7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjQpO1xufVxuXG4uY2hhdEJ1dHRvbjphY3RpdmUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMC45OCkgdHJhbnNsYXRlWSgtMXB4KTtcbiAgICB0cmFuc2l0aW9uOiB0cmFuc2Zvcm0gMC4xcyBlYXNlO1xuICAgIGJveC1zaGFkb3c6IDAgNHB4IDE2cHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKTtcbn1cblxuLmNoYXRCdXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpLCAwIDAgMCAzcHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKTtcbn1cblxuLmNoYXRCdXR0b24gc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDFweCAycHggcmdiYSgwLCAwLCAwLCAwLjIpKTtcbn1cblxuLmNoYXRCdXR0b246aG92ZXIgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHJvdGF0ZSgtOTBkZWcpIHNjYWxlKDEuMSk7XG4gICAgZmlsdGVyOiBkcm9wLXNoYWRvdygwIDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjMpKTtcbn1cblxuLmNoYXRCdXR0b25UZXh0IHtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuMnMgZWFzZTtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBvcGFjaXR5OiAxO1xufVxuXG4uY2hhdEJ1dHRvbjpob3ZlciAuY2hhdEJ1dHRvblRleHQge1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxcHgpO1xufVxuXG4vKiBVc2UgdGVtcGxhdGUgYnV0dG9uIHN0eWxpbmcgLSBtYXRjaGVzIHRoZSBjaGF0QnV0dG9uIGFuZCBzYXZlQnV0dG9uICovXG4udXNlVGVtcGxhdGVCdXR0b24ge1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4ICFpbXBvcnRhbnQ7XG4gICAgYWxpZ24taXRlbXM6IGNlbnRlciAhaW1wb3J0YW50O1xuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyICFpbXBvcnRhbnQ7XG4gICAgZ2FwOiA4cHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nOiAxMnB4IDE2cHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDAgIWltcG9ydGFudDtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMDA4NGZmIDAlLCAjMDA2NmNjIDEwMCUpICFpbXBvcnRhbnQ7XG4gICAgY29sb3I6ICNmZmZmZmYgIWltcG9ydGFudDtcbiAgICBib3JkZXI6IG5vbmUgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC1zaXplOiAxM3B4ICFpbXBvcnRhbnQ7XG4gICAgZm9udC13ZWlnaHQ6IDYwMCAhaW1wb3J0YW50O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjMgIWltcG9ydGFudDtcbiAgICBjdXJzb3I6IHBvaW50ZXIgIWltcG9ydGFudDtcbiAgICB0cmFuc2l0aW9uOiBhbGwgMC4zcyBjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCkgIWltcG9ydGFudDtcbiAgICBib3gtc2hhZG93OiAwIDRweCAxNnB4IHJnYmEoMCwgMTMyLCAyNTUsIDAuMykgIWltcG9ydGFudDtcbiAgICBiYWNrZHJvcC1maWx0ZXI6IGJsdXIoMjBweCkgIWltcG9ydGFudDtcbiAgICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XG4gICAgdG91Y2gtYWN0aW9uOiBtYW5pcHVsYXRpb24gIWltcG9ydGFudDtcbiAgICB1c2VyLXNlbGVjdDogbm9uZSAhaW1wb3J0YW50O1xuICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDExMHB4ICFpbXBvcnRhbnQ7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlICFpbXBvcnRhbnQ7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50O1xufVxuXG4udXNlVGVtcGxhdGVCdXR0b246OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMDtcbiAgICBsZWZ0OiAtMTAwJTtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDkwZGVnLCB0cmFuc3BhcmVudCwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjIpLCB0cmFuc3BhcmVudCk7XG4gICAgdHJhbnNpdGlvbjogbGVmdCAwLjVzIGVhc2U7XG59XG5cbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3Zlcjo6YmVmb3JlIHtcbiAgICBsZWZ0OiAxMDAlO1xufVxuXG4udXNlVGVtcGxhdGVCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMwMDk5ZmYgMCUsICMwMDc3ZGQgMTAwJSk7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC0ycHgpIHNjYWxlKDEuMDIpO1xuICAgIGJveC1zaGFkb3c6IDAgOHB4IDI0cHggcmdiYSgwLCAxMzIsIDI1NSwgMC40KTtcbn1cblxuLnVzZVRlbXBsYXRlQnV0dG9uOmFjdGl2ZSB7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjk4KSB0cmFuc2xhdGVZKC0xcHgpO1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjFzIGVhc2U7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpO1xufVxuXG4udXNlVGVtcGxhdGVCdXR0b246Zm9jdXMge1xuICAgIG91dGxpbmU6IG5vbmU7XG4gICAgYm94LXNoYWRvdzogMCA0cHggMTZweCByZ2JhKDAsIDEzMiwgMjU1LCAwLjMpLCAwIDAgMCAzcHggcmdiYSgwLCAxMzIsIDI1NSwgMC4zKTtcbn1cblxuLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgd2lkdGg6IDE2cHg7XG4gICAgaGVpZ2h0OiAxNnB4O1xuICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgIG9wYWNpdHk6IDE7XG4gICAgdHJhbnNpdGlvbjogYWxsIDAuM3MgY3ViaWMtYmV6aWVyKDAuMjUsIDAuNDYsIDAuNDUsIDAuOTQpO1xuICAgIGZpbHRlcjogZHJvcC1zaGFkb3coMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4yKSk7XG59XG5cbi51c2VUZW1wbGF0ZUJ1dHRvbjpob3ZlciBzdmcge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICBmaWx0ZXI6IGRyb3Atc2hhZG93KDAgMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMykpO1xufVxuXG4udXNlVGVtcGxhdGVCdXR0b246aG92ZXIgLmNoYXRCdXR0b25UZXh0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMXB4KTtcbn1cblxuLnNhdmVCdXR0b25Db250YWluZXIge1xuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi5zYXZlTWVudSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHRvcDogMTAwJTtcbiAgICBsZWZ0OiAwO1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2RkZDtcbiAgICB6LWluZGV4OiAxMDtcbiAgICBtaW4td2lkdGg6IDEyMHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMnB4IDhweCByZ2JhKDAsIDAsIDAsIDAuMDgpO1xufVxuXG4uc2F2ZU1lbnVJdGVtIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA4cHggMTZweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgYmFja2dyb3VuZDogbm9uZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzExMTtcbn1cblxuLnNhdmVNZW51SXRlbTpob3ZlciB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2YwZjBmMDtcbn1cblxuLnNhdmVNZW51RGl2aWRlciB7XG4gICAgaGVpZ2h0OiAxcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2RkZDtcbiAgICBtYXJnaW46IDRweCAwO1xufVxuXG4uY2hhdEZlZWRiYWNrUGFuZWwge1xuICAgIHdpZHRoOiBtaW4oMjYwcHgsIDEwMCUpO1xuICAgIHBhZGRpbmc6IDZweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTVlN2ViO1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMThweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLmNoYXRGZWVkYmFja1RvZ2dsZSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiA2cHggOHB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgYm9yZGVyOiBub25lO1xuICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAjZjVmNWY1O1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtMC41cHgpO1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAjMjU2M2ViO1xuICAgIG91dGxpbmUtb2Zmc2V0OiAycHg7XG59XG5cbi5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICB3aWR0aDogMzRweDtcbiAgICBoZWlnaHQ6IDM0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZWVmMmZmO1xuICAgIGNvbG9yOiAjNjM2NmYxO1xuICAgIGRpc3BsYXk6IGdyaWQ7XG4gICAgcGxhY2UtaXRlbXM6IGNlbnRlcjtcbiAgICBmbGV4LXNocmluazogMDtcbiAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuMnMgZWFzZSwgY29sb3IgMC4ycyBlYXNlO1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlW2RhdGEtZW5hYmxlZD0ndHJ1ZSddIC5jaGF0RmVlZGJhY2tJY29uIHtcbiAgICBiYWNrZ3JvdW5kOiAjZTBmMmZlO1xuICAgIGNvbG9yOiAjMDI4NGM3O1xufVxuXG4uY2hhdEZlZWRiYWNrVG9nZ2xlW2RhdGEtZW5hYmxlZD0nZmFsc2UnXSAuY2hhdEZlZWRiYWNrSWNvbiB7XG4gICAgYmFja2dyb3VuZDogI2YzZjRmNjtcbiAgICBjb2xvcjogIzk0YTNiODtcbn1cblxuLmNoYXRGZWVkYmFja01ldGEge1xuICAgIGZsZXg6IDE7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4uY2hhdEZlZWRiYWNrTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMC44NXJlbTtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGNvbG9yOiAjMGYxNzJhO1xufVxuXG4uY2hhdEZlZWRiYWNrRGVzY3JpcHRpb24ge1xuICAgIGZvbnQtc2l6ZTogMC43NXJlbTtcbiAgICBjb2xvcjogIzY0NzQ4Yjtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvciB7XG4gICAgZm9udC1zaXplOiAwLjcycmVtO1xuICAgIGxldHRlci1zcGFjaW5nOiAwLjA4ZW07XG4gICAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgICBmb250LXdlaWdodDogNzAwO1xuICAgIHBhZGRpbmc6IDJweCA4cHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG59XG5cbi5jaGF0RmVlZGJhY2tJbmRpY2F0b3JBY3RpdmUge1xuICAgIGNvbG9yOiAjMTY2NTM0O1xuICAgIGJhY2tncm91bmQ6ICNkY2ZjZTc7XG4gICAgYm9yZGVyOiAxcHggc29saWQgIzM0ZDM5OTtcbn1cblxuLmNoYXRGZWVkYmFja0luZGljYXRvckluYWN0aXZlIHtcbiAgICBjb2xvcjogIzcxM2YxMjtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmOWMzO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmYWNjMTU7XG59XG5cbi8qIFBhdXNlL1Jlc3VtZSBidXR0b24gdmFyaWFudCAocmV1c2VzIC5jaGF0QnV0dG9uIGJhc2Ugc3R5bGVzIGZvciBEUlkpICovXG4ucGF1c2VCdXR0b24ge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmIzNDcgMCUsICNmZjhjNDIgMTAwJSkgIWltcG9ydGFudDsgLyogV2FybSBvcmFuZ2UgZm9yIFwiYWN0aXZlL3J1bm5pbmdcIiAqL1xufVxuXG4ucGF1c2VCdXR0b246aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICNmZmMwNjcgMCUsICNmZjllNWYgMTAwJSkgIWltcG9ydGFudDtcbn1cblxuLnBhdXNlQnV0dG9uLnBhdXNpbmcge1xuICAgIG9wYWNpdHk6IDAuNiAhaW1wb3J0YW50O1xuICAgIGN1cnNvcjogd2FpdCAhaW1wb3J0YW50O1xufVxuXG4ucGF1c2VCdXR0b24ucGF1c2VkIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTBiOTgxIDAlLCAjMDU5NjY5IDEwMCUpICFpbXBvcnRhbnQ7IC8qIEdyZWVuIHdoZW4gcGF1c2VkIChyZWFkeSB0byByZXN1bWUpICovXG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQ6aG92ZXI6bm90KDpkaXNhYmxlZCkge1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxMzVkZWcsICMzNGQzOTkgMCUsICMwNTk2NjkgMTAwJSkgIWltcG9ydGFudDtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVkoLTJweCkgc2NhbGUoMS4wMik7XG4gICAgYm94LXNoYWRvdzogMCA4cHggMjRweCByZ2JhKDE2LCAxODUsIDEyOSwgMC4zNSk7XG59XG5cbi5wYXVzZUJ1dHRvbiBzdmcge1xuICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjNzIGVhc2U7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzZWQgc3ZnIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMSk7XG59XG5cbi5wYXVzZUJ1dHRvbi5wYXVzaW5nIHN2ZyB7XG4gICAgb3BhY2l0eTogMC44O1xufVxuXG4uc3RvcEJ1dHRvbiB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2RjMjYyNiAwJSwgIzk5MWIxYyAxMDAlKSAhaW1wb3J0YW50O1xuICAgIGNvbG9yOiAjZmVmZWZlICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uOmhvdmVyOm5vdCg6ZGlzYWJsZWQpIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjZjg3MTcxIDAlLCAjZGMyNjI2IDEwMCUpICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uOmRpc2FibGVkIHtcbiAgICBvcGFjaXR5OiAwLjYgIWltcG9ydGFudDtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkICFpbXBvcnRhbnQ7XG59XG5cbi5zdG9wQnV0dG9uIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuM3MgZWFzZTtcbn1cblxuLnN0b3BCdXR0b246Zm9jdXMtdmlzaWJsZSB7XG4gICAgb3V0bGluZTogMnB4IHNvbGlkIHJnYmEoMjQ4LCAxMTMsIDExMywgMC44KTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xufVxuXG4vKiBWb2ljZSBjYWxsIGluZGljYXRvciBiYXIgKi9cbi52b2ljZUNhbGxJbmRpY2F0b3JCYXIge1xuICAgIGdyaWQtYXJlYTog8J+fpjtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBwYWRkaW5nOiAxMnB4IDIwcHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzNCwgMTk3LCA5NCwgMC4xKSAwJSwgcmdiYSgxNiwgMTg1LCAxMjksIDAuMSkgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIHJnYmEoMzQsIDE5NywgOTQsIDAuMyk7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbn1cblxuLyogVm9pY2UgY2FsbCBpbmRpY2F0b3IgKi9cbi52b2ljZUNhbGxJbmRpY2F0b3Ige1xuICAgIGRpc3BsYXk6IGlubGluZS1mbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgZ2FwOiA4cHg7XG4gICAgcGFkZGluZzogOHB4IDE2cHg7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgcmdiYSgzNCwgMTk3LCA5NCwgMC4yKSAwJSwgcmdiYSgxNiwgMTg1LCAxMjksIDAuMikgMTAwJSk7XG4gICAgYm9yZGVyOiAxcHggc29saWQgcmdiYSgzNCwgMTk3LCA5NCwgMC40KTtcbiAgICBib3JkZXItcmFkaXVzOiAyMHB4O1xuICAgIGNvbG9yOiAjMTBiOTgxO1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGJhY2tkcm9wLWZpbHRlcjogYmx1cigxMHB4KTtcbiAgICBib3gtc2hhZG93OiAwIDJweCA4cHggcmdiYSgzNCwgMTk3LCA5NCwgMC4yKTtcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG59XG5cbi52b2ljZUNhbGxJbmRpY2F0b3Igc3ZnIHtcbiAgICB3aWR0aDogMTZweDtcbiAgICBoZWlnaHQ6IDE2cHg7XG4gICAgZmxleC1zaHJpbms6IDA7XG4gICAgYW5pbWF0aW9uOiB2b2ljZUNhbGxJY29uUHVsc2UgMnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG59XG5cbi52b2ljZUNhbGxJbmRpY2F0b3Igc3BhbiB7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICB0ZXh0LXNoYWRvdzogMCAxcHggMnB4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbn1cblxuLyogVm9pY2UgY2FsbCBwdWxzZSBhbmltYXRpb24gKi9cbi52b2ljZUNhbGxQdWxzZSB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiA4cHg7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIHdpZHRoOiA4cHg7XG4gICAgaGVpZ2h0OiA4cHg7XG4gICAgYmFja2dyb3VuZDogIzEwYjk4MTtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYW5pbWF0aW9uOiB2b2ljZUNhbGxQdWxzZSAxLjVzIGVhc2UtaW4tb3V0IGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIHZvaWNlQ2FsbEljb25QdWxzZSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICAgIDUwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogc2NhbGUoMS4xKTtcbiAgICAgICAgb3BhY2l0eTogMC44O1xuICAgIH1cbn1cblxuQGtleWZyYW1lcyB2b2ljZUNhbGxQdWxzZSB7XG4gICAgMCUsXG4gICAgMTAwJSB7XG4gICAgICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKSBzY2FsZSgxKTtcbiAgICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gICAgNTAlIHtcbiAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpIHNjYWxlKDEuMyk7XG4gICAgICAgIG9wYWNpdHk6IDAuNjtcbiAgICB9XG59XG5cbi8qIFZvaWNlIGNhbGwgaW5kaWNhdG9yIGluIG1lc3NhZ2VzICovXG4uY2hhdE1lc3NhZ2UgLnZvaWNlQ2FsbEluZGljYXRvciB7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIHBhZGRpbmc6IDZweCAxMnB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xufVxuXG4uY2hhdE1lc3NhZ2UgLnZvaWNlQ2FsbEluZGljYXRvciBzdmcge1xuICAgIHdpZHRoOiAxNHB4O1xuICAgIGhlaWdodDogMTRweDtcbn1cblxuLyogRmVlZGJhY2sgc3RhdHVzIGJhbm5lciAqL1xuLmZlZWRiYWNrU3RhdHVzIHtcbiAgICBwb3NpdGlvbjogZml4ZWQ7XG4gICAgdG9wOiAyMHB4O1xuICAgIHJpZ2h0OiAyMHB4O1xuICAgIHBhZGRpbmc6IDE0cHggMjJweDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMThweCAzMnB4IHJnYmEoMTUsIDIzLCA0MiwgMC4zNSk7XG4gICAgei1pbmRleDogMTAwMDA7IC8qIFtGaXggei1pbmRleF06IEVuc3VyZSBpdCdzIGFib3ZlIHRoZSBoZWFkZXIgKHotNTApIGFuZCBvdGhlciBVSSBlbGVtZW50cyAqL1xuICAgIGFuaW1hdGlvbjogZmVlZGJhY2tTdGF0dXNTbGlkZUluIDAuMjhzIGVhc2Utb3V0O1xuICAgIG1heC13aWR0aDogMzQwcHg7XG4gICAgd29yZC13cmFwOiBicmVhay13b3JkO1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDIwcHgpO1xuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xufVxuXG4uZmVlZGJhY2tTdGF0dXNTdWNjZXNzIHtcbiAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoMTM1ZGVnLCAjMTBiOTgxIDAlLCAjMDU5NjY5IDEwMCUpO1xuICAgIGNvbG9yOiAjZjhmYWZjO1xufVxuXG4uZmVlZGJhY2tTdGF0dXNFcnJvciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2VmNDQ0NCAwJSwgI2RjMjYyNiAxMDAlKTtcbiAgICBjb2xvcjogI2ZlZjJmMjtcbn1cblxuQGtleWZyYW1lcyBmZWVkYmFja1N0YXR1c1NsaWRlSW4ge1xuICAgIGZyb20ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMTAwJSk7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgfVxuXG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZVgoMCk7XG4gICAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxufVxuXG4vKiBNb2JpbGUgcmVzcG9uc2l2ZW5lc3MgKi9cbkBtZWRpYSAobWF4LXdpZHRoOiA3NjhweCkge1xuICAgIC5DaGF0IHtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtbWluLXdpZHRoOiAxMDBweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDM2cHg7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aDogbWluKFxuICAgICAgICAgICAgODUlLFxuICAgICAgICAgICAgNTYwcHgsXG4gICAgICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwOiAxMHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtZm9udC1zaXplOiAxNnB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy15OiAxNHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtcGFkZGluZy14OiAxOHB4O1xuICAgICAgICAtLWNoYXQtaW5wdXQtYWN0aW9uLXNpemU6IDQ0cHg7XG4gICAgfVxuXG4gICAgLmFjdGlvbnMge1xuICAgICAgICBtYXJnaW46IDEycHggMTZweCAwO1xuICAgICAgICBnYXA6IDZweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZXMge1xuICAgICAgICBwYWRkaW5nOiAxNnB4IDEycHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2Uge1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIHBhZGRpbmc6IDEycHggMTZweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxOHB4O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIge1xuICAgICAgICBtYXJnaW46IDAgMCA0cHg7XG4gICAgfVxuXG4gICAgLyogW+OKl++4j11cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAuYXZhdGFyIGltZyB7XG4gICAgICAgIHdpZHRoOiAzNnB4O1xuICAgICAgICBhc3BlY3QtcmF0aW86IDEgLyAxO1xuICAgIH1cbiAgICAqL1xuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHtcbiAgICAgICAgcGFkZGluZzogMTZweCAxMnB4O1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IGNhbGMoMTZweCArIGVudihzYWZlLWFyZWEtaW5zZXQtYm90dG9tKSk7XG4gICAgICAgIGdhcDogMTBweDtcbiAgICB9XG5cbiAgICAuc3BlZWNoU3RhdHVzQnViYmxlIHtcbiAgICAgICAgcmlnaHQ6IDE0cHg7XG4gICAgICAgIGJvdHRvbTogNzZweDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyOHB4KTtcbiAgICAgICAgZm9udC1zaXplOiAxMXB4O1xuICAgICAgICBwYWRkaW5nOiA3cHggMTFweDtcbiAgICB9XG5cbiAgICAuZGljdGF0aW9uU2V0dGluZ3NQYW5lbCB7XG4gICAgICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogbWlubWF4KDAsIDFmcik7XG4gICAgfVxuXG4gICAgLnNjcm9sbFRvQm90dG9tIHtcbiAgICAgICAgd2lkdGg6IDQ0cHg7XG4gICAgICAgIGhlaWdodDogNDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxOHB4O1xuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDE2MHB4KTtcbiAgICB9XG5cbiAgICAuY2hhdEJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24gc3ZnIHtcbiAgICAgICAgd2lkdGg6IDE4cHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiB7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDUwJSAhaW1wb3J0YW50O1xuICAgICAgICB3aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgbWluLXdpZHRoOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgICAgICBnYXA6IDAgIWltcG9ydGFudDtcbiAgICAgICAgbWFyZ2luOiAwICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnVzZVRlbXBsYXRlQnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiAuY2hhdEJ1dHRvblRleHQge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsQ29udGVudCB7XG4gICAgICAgIG1hcmdpbjogMTZweDtcbiAgICAgICAgcGFkZGluZzogMjRweCAyMHB4O1xuICAgICAgICBib3JkZXItcmFkaXVzOiAxNnB4O1xuICAgICAgICBtYXgtaGVpZ2h0OiA4MHZoO1xuICAgICAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIH1cblxuICAgIC5zdGFycyB7XG4gICAgICAgIGdhcDogNnB4O1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAyMHB4O1xuICAgIH1cblxuICAgIC5zdGFycyBzcGFuIHtcbiAgICAgICAgZm9udC1zaXplOiAzMnB4O1xuICAgICAgICBwYWRkaW5nOiA4cHg7XG4gICAgfVxuXG4gICAgLnJhdGluZ0FjdGlvbnMge1xuICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uLXJldmVyc2U7XG4gICAgICAgIGdhcDogOHB4O1xuICAgIH1cblxuICAgIC5yYXRpbmdBY3Rpb25zIGJ1dHRvbiB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBwYWRkaW5nOiAxNHB4O1xuICAgICAgICBmb250LXNpemU6IDE2cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ01vZGFsSGVhZGVyIHtcbiAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxuXG4gICAgLnNlbGZMZWFybmluZ0F2YXRhckdyb3VwIHtcbiAgICAgICAganVzdGlmeS1jb250ZW50OiBmbGV4LXN0YXJ0O1xuICAgIH1cblxuICAgIC5zZWxmTGVhcm5pbmdNZXRhUm93IHtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtc3RhcnQ7XG4gICAgfVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNDgwcHgpIHtcbiAgICAuQ2hhdCB7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1pbi13aWR0aDogODBweDtcbiAgICAgICAgLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemU6IDMycHg7XG4gICAgICAgIC0tY2hhdC1tZXNzYWdlLW1heC13aWR0aDogbWluKFxuICAgICAgICAgICAgOTAlLFxuICAgICAgICAgICAgNTIwcHgsXG4gICAgICAgICAgICBjYWxjKDEwMCUgLSB2YXIoLS1jaGF0LW1lc3NhZ2UtYXZhdGFyLXNpemUpIC0gdmFyKC0tY2hhdC1tZXNzYWdlLWF2YXRhci1nYXApKVxuICAgICAgICApO1xuICAgICAgICAtLWNoYXQtbWVzc2FnZS1hdmF0YXItZ2FwOiA4cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXk6IDEycHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1wYWRkaW5nLXg6IDE2cHg7XG4gICAgICAgIC0tY2hhdC1pbnB1dC1hY3Rpb24tc2l6ZTogNDBweDtcbiAgICB9XG5cbiAgICAuYWN0aW9ucyB7XG4gICAgICAgIG1hcmdpbjogOHB4IDEycHggMDtcbiAgICAgICAgZ2FwOiA0cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzIHtcbiAgICAgICAgcGFkZGluZzogMTJweCA4cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLm1lc3NhZ2VUZXh0IHtcbiAgICAgICAgcGFkZGluZzogMTBweCAxNHB4O1xuICAgICAgICBmb250LXNpemU6IDE0cHg7XG4gICAgICAgIGJvcmRlci1yYWRpdXM6IDE2cHg7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciB7XG4gICAgICAgIG1hcmdpbjogMCAwIDRweDtcbiAgICB9XG5cbiAgICAvKiBb44qX77iPXVxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5hdmF0YXIgaW1nIHtcbiAgICAgICAgd2lkdGg6IDMycHg7XG4gICAgICAgIGFzcGVjdC1yYXRpbzogMSAvIDE7XG4gICAgfVxuICAgICovXG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQge1xuICAgICAgICBwYWRkaW5nOiAxMnB4IDhweDtcbiAgICAgICAgcGFkZGluZy1ib3R0b206IDEycHg7XG4gICAgICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKDEycHggKyBlbnYoc2FmZS1hcmVhLWluc2V0LWJvdHRvbSkpO1xuICAgICAgICBnYXA6IDhweDtcbiAgICB9XG5cbiAgICAuc3BlZWNoU3RhdHVzQnViYmxlIHtcbiAgICAgICAgcmlnaHQ6IDEwcHg7XG4gICAgICAgIGJvdHRvbTogNzJweDtcbiAgICAgICAgbWF4LXdpZHRoOiBjYWxjKDEwMCUgLSAyMHB4KTtcbiAgICB9XG5cbiAgICAuZGljdGF0aW9uQ29ycmVjdGlvbkFjdGlvbnMsXG4gICAgLmRpY3RhdGlvbkVycm9yQWN0aW9ucyB7XG4gICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgfVxuXG4gICAgLmNoYXRCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0QnV0dG9uIHN2ZyB7XG4gICAgICAgIHdpZHRoOiAxOHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGhlaWdodDogMThweCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0QnV0dG9uVGV4dCB7XG4gICAgICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24ge1xuICAgICAgICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDtcbiAgICAgICAgd2lkdGg6IDQwcHggIWltcG9ydGFudDtcbiAgICAgICAgaGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi13aWR0aDogNDBweCAhaW1wb3J0YW50O1xuICAgICAgICBtaW4taGVpZ2h0OiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDtcbiAgICAgICAgZ2FwOiAwICFpbXBvcnRhbnQ7XG4gICAgICAgIG1hcmdpbjogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC51c2VUZW1wbGF0ZUJ1dHRvbiBzdmcge1xuICAgICAgICB3aWR0aDogMThweCAhaW1wb3J0YW50O1xuICAgICAgICBoZWlnaHQ6IDE4cHggIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAudXNlVGVtcGxhdGVCdXR0b24gLmNoYXRCdXR0b25UZXh0IHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5zY3JvbGxUb0JvdHRvbSB7XG4gICAgICAgIHdpZHRoOiA0MHB4O1xuICAgICAgICBoZWlnaHQ6IDQwcHg7XG4gICAgICAgIGZvbnQtc2l6ZTogMTZweDtcbiAgICAgICAgdG9wOiBjYWxjKDEwMCUgLSAxNDBweCk7XG4gICAgfVxuXG4gICAgLnJhdGluZ01vZGFsIHtcbiAgICAgICAgcGFkZGluZzogMDtcbiAgICAgICAgYWxpZ24taXRlbXM6IGZsZXgtZW5kO1xuICAgIH1cblxuICAgIC5yYXRpbmdNb2RhbENvbnRlbnQge1xuICAgICAgICBtYXJnaW46IDA7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBib3JkZXItcmFkaXVzOiAyMHB4IDIwcHggMCAwO1xuICAgICAgICBtYXgtaGVpZ2h0OiA3MHZoO1xuICAgICAgICBwYWRkaW5nOiAyNHB4IDE2cHggMjBweDtcbiAgICB9XG59XG5cbi8qIFJlZHVjZWQgbW90aW9uIHN1cHBvcnQgKi9cbkBtZWRpYSAocHJlZmVycy1yZWR1Y2VkLW1vdGlvbjogcmVkdWNlKSB7XG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UsXG4gICAgLnNjcm9sbFRvQm90dG9tLFxuICAgIC5yYXRpbmdNb2RhbCxcbiAgICAucmF0aW5nTW9kYWxDb250ZW50LFxuICAgIC5mZWVkYmFja1N0YXR1cyB7XG4gICAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQsXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0IHRleHRhcmVhLFxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRJbnB1dCBidXR0b24sXG4gICAgLyogW+OKl++4j10gLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciBpbWcsICovXG4gICAgLmNoYXRCdXR0b24ge1xuICAgICAgICB0cmFuc2l0aW9uOiBub25lO1xuICAgIH1cbn1cblxuLyogSGlnaCBjb250cmFzdCBtb2RlIHN1cHBvcnQgKi9cbkBtZWRpYSAocHJlZmVycy1jb250cmFzdDogaGlnaCkge1xuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCB7XG4gICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGN1cnJlbnRDb2xvcjtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgdGV4dGFyZWEge1xuICAgICAgICBib3JkZXItd2lkdGg6IDNweDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0SW5wdXQgYnV0dG9uIHtcbiAgICAgICAgYm9yZGVyOiAycHggc29saWQgY3VycmVudENvbG9yO1xuICAgIH1cbn1cblxuLyogRW1haWwgbW9kYWwgc3R5bGVzICovXG4uZW1haWxDb250YWluZXIge1xuICAgIG1hcmdpbi1ib3R0b206IDIwcHg7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMTZweDtcbn1cblxuLmVtYWlsTW9kYWxIZWFkZXIge1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG59XG5cbi5lbWFpbEhlYWRlclRleHQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDJweDtcbn1cblxuLmVtYWlsSGVhZGVyTGFiZWwge1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM2NDc0OGI7XG59XG5cbi5lbWFpbE1ldGFkYXRhIHtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNlMmU4ZjA7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBwYWRkaW5nOiAxOHB4IDIwcHg7XG4gICAgbWFyZ2luLWJvdHRvbTogMTZweDtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLmVtYWlsRmllbGQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZ2FwOiA4cHg7XG4gICAgbWFyZ2luLWJvdHRvbTogOHB4O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uZW1haWxGaWVsZDpsYXN0LWNoaWxkIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4uZW1haWxGaWVsZCBzdHJvbmcge1xuICAgIG1pbi13aWR0aDogNjBweDtcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uZW1haWxSZWNpcGllbnRzIHtcbiAgICBjb2xvcjogIzBmMTcyYTtcbiAgICB3b3JkLWJyZWFrOiBicmVhay13b3JkO1xufVxuXG4uZW1haWxCb2R5IHtcbiAgICB0ZXh0LWFsaWduOiBsZWZ0O1xufVxuXG4uZW1haWxCb2R5IHN0cm9uZyB7XG4gICAgZGlzcGxheTogYmxvY2s7XG4gICAgbWFyZ2luLWJvdHRvbTogMTJweDtcbiAgICBjb2xvcjogIzY0NzQ4YjtcbiAgICBmb250LXdlaWdodDogNjAwO1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmVtYWlsQm9keUNvbnRlbnQge1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDIycHg7XG4gICAgbGluZS1oZWlnaHQ6IDEuNjtcbiAgICBtYXgtaGVpZ2h0OiA0MDBweDtcbiAgICBvdmVyZmxvdy15OiBhdXRvO1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4uZW1haWxCb2R5Q29udGVudCBwIHtcbiAgICBtYXJnaW46IDAgMCAxMnB4IDA7XG59XG5cbi5lbWFpbEJvZHlDb250ZW50IHA6bGFzdC1jaGlsZCB7XG4gICAgbWFyZ2luLWJvdHRvbTogMDtcbn1cblxuLmJyb3dzZXJSdW5Nb2RhbEhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KDEzNWRlZywgI2Y4ZmFmYyAwJSwgI2VjZmVmZiA0MCUsICNlY2ZjY2IgMTAwJSk7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNkYmVhZmU7XG59XG5cbi5icm93c2VyUnVuSGVhZGVyVGV4dCB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogMnB4O1xufVxuXG4uYnJvd3NlclJ1bkhlYWRlclN0YXR1cyB7XG4gICAgbWFyZ2luOiAwO1xuICAgIGNvbG9yOiAjNDc1NDY3O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xufVxuXG4uYnJvd3NlclJ1bkhlYWRlckxhYmVsIHtcbiAgICBmb250LXNpemU6IDEycHg7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDAuMDhlbTtcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICAgIGNvbG9yOiAjNDc1NTY5O1xufVxuXG4uYnJvd3NlclJ1bk1ldGEge1xuICAgIG1hcmdpbi1ib3R0b206IDE4cHg7XG4gICAgYmFja2dyb3VuZDogI2ZmZmZmZjtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjZTJlOGYwO1xuICAgIGJvcmRlci1yYWRpdXM6IDEycHg7XG4gICAgcGFkZGluZzogMTZweCAxOHB4O1xuICAgIGJveC1zaGFkb3c6IDAgMXB4IDRweCByZ2JhKDE1LCAyMywgNDIsIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bldhcm5pbmcge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2ZiYmYyNDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZiZWI7XG4gICAgY29sb3I6ICM5MjQwMGU7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xufVxuXG4uYnJvd3NlclJ1bkVycm9yIHtcbiAgICBtYXJnaW4tYm90dG9tOiAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmY2E1YTU7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmVmMmYyO1xuICAgIGNvbG9yOiAjN2YxZDFkO1xuICAgIHBhZGRpbmc6IDEycHggMTRweDtcbn1cblxuLmJyb3dzZXJSdW5FcnJvclN1bW1hcnkge1xuICAgIG1hcmdpbjogMDtcbiAgICBsaW5lLWhlaWdodDogMS41O1xuICAgIGZvbnQtc2l6ZTogMTRweDtcbn1cblxuLmJyb3dzZXJSdW5FcnJvclN0ZXBzIHtcbiAgICBtYXJnaW46IDhweCAwIDA7XG4gICAgcGFkZGluZy1sZWZ0OiAxOHB4O1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDZweDtcbn1cblxuLmJyb3dzZXJSdW5EZWJ1Z0RldGFpbHMge1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG59XG5cbi5icm93c2VyUnVuRGVidWdEZXRhaWxzIHN1bW1hcnkge1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgICBjb2xvcjogIzdmMWQxZDtcbiAgICBmb250LXdlaWdodDogNjAwO1xufVxuXG4uYnJvd3NlclJ1bkRlYnVnRGV0YWlscyBwcmUge1xuICAgIG1hcmdpbjogMTBweCAwIDA7XG4gICAgcGFkZGluZzogMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZmZmN2VkO1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNmZWQ3YWE7XG4gICAgYm9yZGVyLXJhZGl1czogOHB4O1xuICAgIG1heC1oZWlnaHQ6IDIyMHB4O1xuICAgIG92ZXJmbG93OiBhdXRvO1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBsaW5lLWhlaWdodDogMS40NTtcbn1cblxuLmJyb3dzZXJSdW5GYWxsYmFja0NvbnRlbnQge1xuICAgIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmZmZmY7XG4gICAgcGFkZGluZzogMTRweCAxNnB4O1xufVxuXG4uYnJvd3NlclJ1blN0YXR1c0Jhbm5lciB7XG4gICAgbWFyZ2luLWJvdHRvbTogMThweDtcbiAgICBwYWRkaW5nOiAxMnB4IDE0cHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTRweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDE0OCwgMTYzLCAxODQsIDAuMjgpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjQ4LCAyNTAsIDI1MiwgMC45NSk7XG4gICAgY29sb3I6ICMzMzQxNTU7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5icm93c2VyUnVuTWVkaWFHcmlkIHtcbiAgICBkaXNwbGF5OiBncmlkO1xuICAgIGdyaWQtdGVtcGxhdGUtY29sdW1uczogcmVwZWF0KGF1dG8tZml0LCBtaW5tYXgoMjIwcHgsIDFmcikpO1xuICAgIGdhcDogMTRweDtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUNhcmQge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDEwcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxNHB4O1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICBib3gtc2hhZG93OiAwIDFweCA0cHggcmdiYSgxNSwgMjMsIDQyLCAwLjA4KTtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYUNhcmRIZWFkZXIge1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDRweDtcbn1cblxuLmJyb3dzZXJSdW5NZWRpYVRpdGxlIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGNvbG9yOiAjMGYxNzJhO1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbi5icm93c2VyUnVuTWVkaWFDYXB0aW9uIHtcbiAgICBtYXJnaW46IDA7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjNDc1NTY5O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG59XG5cbi5icm93c2VyUnVuTWVkaWFJbWFnZSxcbi5icm93c2VyUnVuTWVkaWFWaWRlbyB7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgYm9yZGVyLXJhZGl1czogMTBweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2JkNWUxO1xuICAgIGJhY2tncm91bmQ6ICNmOGZhZmM7XG4gICAgbWF4LWhlaWdodDogMjYwcHg7XG4gICAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25Mb2cge1xuICAgIG1hcmdpbi10b3A6IDE4cHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgI2UyZThmMDtcbiAgICBib3JkZXItcmFkaXVzOiAxMnB4O1xuICAgIHBhZGRpbmc6IDE0cHggMTZweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjhmYWZjO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkxvZ1RpdGxlIHtcbiAgICBtYXJnaW46IDAgMCAxMHB4O1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBsZXR0ZXItc3BhY2luZzogMC4wOGVtO1xuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XG4gICAgY29sb3I6ICM2NDc0OGI7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uTGlzdCB7XG4gICAgbWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbGlzdC1zdHlsZTogbm9uZTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgZ2FwOiA4cHg7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uSXRlbSB7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC1zaXplOiAxNHB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxLjU7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTBweDtcbiAgICBwYWRkaW5nOiAxMHB4IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMTJweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDIyNiwgMjMyLCAyNDAsIDAuOSk7XG4gICAgYmFja2dyb3VuZDogI2ZmZjtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25QZW5kaW5nIHtcbiAgICBvcGFjaXR5OiAwLjgyO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblJ1bm5pbmcge1xuICAgIGJvcmRlci1jb2xvcjogcmdiYSgxNCwgMTY1LCAyMzMsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjA4KTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25Db21wbGV0ZSB7XG4gICAgYm9yZGVyLWNvbG9yOiByZ2JhKDE2LCAxODUsIDEyOSwgMC4yMik7XG4gICAgYmFja2dyb3VuZDogcmdiYSgxNiwgMTg1LCAxMjksIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvbkVycm9yIHtcbiAgICBib3JkZXItY29sb3I6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMjQpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjM5LCA2OCwgNjgsIDAuMDgpO1xufVxuXG4uYnJvd3NlclJ1bkFjdGlvblN0YXRlIHtcbiAgICB3aWR0aDogMTBweDtcbiAgICBoZWlnaHQ6IDEwcHg7XG4gICAgYm9yZGVyLXJhZGl1czogOTk5cHg7XG4gICAgYmFja2dyb3VuZDogI2NiZDVlMTtcbiAgICBmbGV4LXNocmluazogMDtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25TdGF0ZVJ1bm5pbmcge1xuICAgIGJhY2tncm91bmQ6ICMwZWE1ZTk7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgNHB4IHJnYmEoMTQsIDE2NSwgMjMzLCAwLjE0KTtcbn1cblxuLmJyb3dzZXJSdW5BY3Rpb25TdGF0ZUNvbXBsZXRlIHtcbiAgICBiYWNrZ3JvdW5kOiAjMTBiOTgxO1xuICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCByZ2JhKDE2LCAxODUsIDEyOSwgMC4xMik7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uU3RhdGVFcnJvciB7XG4gICAgYmFja2dyb3VuZDogI2VmNDQ0NDtcbiAgICBib3gtc2hhZG93OiAwIDAgMCA0cHggcmdiYSgyMzksIDY4LCA2OCwgMC4xMik7XG59XG5cbi5icm93c2VyUnVuQWN0aW9uTWV0YSB7XG4gICAgbWFyZ2luLWxlZnQ6IGF1dG87XG4gICAgY29sb3I6ICM2NDc0OGI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGZvbnQtd2VpZ2h0OiA2MDA7XG59XG5cbkBtZWRpYSBwcmludCB7XG4gICAgLkNoYXQge1xuICAgICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiBub25lICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjZjhmYWZjICFpbXBvcnRhbnQ7XG4gICAgICAgIG1pbi1oZWlnaHQ6IGF1dG8gIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cge1xuICAgICAgICBtaW4taGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG4gICAgICAgIGdhcDogMCAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlcyB7XG4gICAgICAgIHBhZGRpbmc6IDQ4cHggNDBweCA2NHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxNTBkZWcsIHJnYmEoMiwgNiwgMjMsIDAuOTgpLCByZ2JhKDE1LCAyMywgNDIsIDAuOTIpKSAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXItcmFkaXVzOiA0MHB4ICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTYsIDE4OSwgMjQ4LCAwLjMyKSAhaW1wb3J0YW50O1xuICAgICAgICBib3gtc2hhZG93OiAwIDQwcHggODBweCByZ2JhKDAsIDAsIDAsIDAuMzUpIGluc2V0ICFpbXBvcnRhbnQ7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSB7XG4gICAgICAgIHBhZ2UtYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICAgICAgYnJlYWstaW5zaWRlOiBhdm9pZDtcbiAgICB9XG5cbiAgICAuY2hhdE1haW5GbG93IC5jaGF0TWVzc2FnZSAubWVzc2FnZVRleHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiBsaW5lYXItZ3JhZGllbnQoXG4gICAgICAgICAgICAxNDVkZWcsXG4gICAgICAgICAgICB2YXIoLS1hZ2VudC1jaGF0LWJyYW5kLWNvbG9yLWxpZ2h0LCAjN2RkM2ZjKSxcbiAgICAgICAgICAgIHZhcigtLWFnZW50LWNoYXQtYnJhbmQtY29sb3IsICMwZWE1ZTkpXG4gICAgICAgICkgIWltcG9ydGFudDtcbiAgICAgICAgY29sb3I6ICNmOGZhZmMgIWltcG9ydGFudDtcbiAgICAgICAgYm9yZGVyLXJhZGl1czogMzJweCAhaW1wb3J0YW50O1xuICAgICAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMzUpICFpbXBvcnRhbnQ7XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMThweCA0MHB4IHJnYmEoMiwgNiwgMjMsIDAuNikgaW5zZXQgIWltcG9ydGFudDtcbiAgICAgICAgcGFkZGluZzogMThweCAyMnB4ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UuaXNNZSAubWVzc2FnZVRleHQge1xuICAgICAgICBiYWNrZ3JvdW5kOiAjZjhmYmZmICFpbXBvcnRhbnQ7XG4gICAgICAgIGNvbG9yOiAjMGYxNzJhICFpbXBvcnRhbnQ7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTQ4LCAxNjMsIDE4NCwgMC40NSkgIWltcG9ydGFudDtcbiAgICAgICAgYm94LXNoYWRvdzogMCAxMHB4IDMwcHggcmdiYSgxNSwgMjMsIDQyLCAwLjMpIGluc2V0ICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2UgLmF2YXRhciB7XG4gICAgICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4zNSkgIWltcG9ydGFudDtcbiAgICB9XG5cbiAgICAubWVzc2FnZU1ldGEsXG4gICAgLnBhcnRpY2lwYW50TGFiZWwge1xuICAgICAgICBjb2xvcjogcmdiYSgyMjYsIDIzMiwgMjQwLCAwLjgpICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmFjdGlvbnMsXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdElucHV0LFxuICAgIC5zY3JvbGxUb0JvdHRvbSxcbiAgICAuZmVlZGJhY2tTdGF0dXMsXG4gICAgLnZvaWNlQ2FsbEluZGljYXRvckJhcixcbiAgICAudm9pY2VDYWxsSW5kaWNhdG9yIHtcbiAgICAgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50O1xuICAgIH1cblxuICAgIC5jb3B5QnV0dG9uQ29udGFpbmVyLFxuICAgIC5jaGF0TWFpbkZsb3cgLmNoYXRNZXNzYWdlIC5tZXNzYWdlVGV4dCBidXR0b24ge1xuICAgICAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7XG4gICAgfVxuXG4gICAgLmNoYXRNYWluRmxvdyAuY2hhdE1lc3NhZ2VzID4gOmxhc3QtY2hpbGQge1xuICAgICAgICBwYWRkaW5nLWJvdHRvbTogMTAwcHggIWltcG9ydGFudDtcbiAgICB9XG59XG5cbi5lbWFpbFN0YXR1cyB7XG4gICAgdGV4dC10cmFuc2Zvcm06IGNhcGl0YWxpemU7XG4gICAgY29sb3I6ICMwZjE3MmE7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbn1cblxuLyoqXG4gKiBUT0RPOiBb8J+MiV0gRFJZIE1hcmtkb3duIHByaW1pdGl2ZXMgc3R5bGluZ1xuICovXG4vKiBJbWFnZSBwcm9tcHQgcHJldmlldyBzdHlsZXMgKi9cbi5pbWFnZVByb21wdCB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIHBhZGRpbmc6IDEycHg7XG4gICAgYm9yZGVyLXJhZGl1czogMThweDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCByZ2JhKDEyNSwgMTI1LCAxMjUsIDAuMzUpO1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC4yNSk7XG4gICAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDEycHgpO1xuICAgIGJveC1zaGFkb3c6IGluc2V0IDAgMCAwIDFweCByZ2JhKDI1NSwgMjU1LCAyNTUsIDAuMjUpO1xuICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBnYXA6IDhweDtcbn1cblxuLmltYWdlUHJvbXB0UHJldmlldyB7XG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xuICAgIGJvcmRlci1yYWRpdXM6IDE0cHg7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBtaW4taGVpZ2h0OiAxNjBweDtcbiAgICBib3JkZXI6IDFweCBkYXNoZWQgcmdiYSgxMjUsIDEyNSwgMTI1LCAwLjMpO1xuICAgIGJhY2tncm91bmQ6IGxpbmVhci1ncmFkaWVudCgxODBkZWcsIHJnYmEoMTUsIDExOCwgMjU1LCAwLjA1KSwgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjQpKTtcbn1cblxuLmltYWdlUHJvbXB0SW1hZ2Uge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBvYmplY3QtZml0OiBjb3ZlcjtcbiAgICBkaXNwbGF5OiBibG9jaztcbn1cblxuLmltYWdlUHJvbXB0UGxhY2Vob2xkZXIge1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIGhlaWdodDogMTAwJTtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG59XG5cbi5pbWFnZVByb21wdFNwaW5uZXIge1xuICAgIHdpZHRoOiAzNnB4O1xuICAgIGhlaWdodDogMzZweDtcbiAgICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICAgYm9yZGVyOiAzcHggc29saWQgcmdiYSgyNTUsIDI1NSwgMjU1LCAwLjM1KTtcbiAgICBib3JkZXItdG9wLWNvbG9yOiAjMjU2M2ViO1xuICAgIGFuaW1hdGlvbjogaW1hZ2VQcm9tcHRTcGlubmVyIDAuOXMgbGluZWFyIGluZmluaXRlO1xufVxuXG5Aa2V5ZnJhbWVzIGltYWdlUHJvbXB0U3Bpbm5lciB7XG4gICAgdG8ge1xuICAgICAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpO1xuICAgIH1cbn1cblxuLmltYWdlUHJvbXB0TWV0YSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICAgIGdhcDogNHB4O1xufVxuXG4uaW1hZ2VQcm9tcHRQcm9tcHQge1xuICAgIGZvbnQtc2l6ZTogMTNweDtcbiAgICBmb250LXdlaWdodDogNTAwO1xuICAgIGNvbG9yOiAjMTExO1xuICAgIG92ZXJmbG93LXdyYXA6IGFueXdoZXJlO1xufVxuXG4uaW1hZ2VQcm9tcHRTdGF0dXMge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzZiNzI4MDtcbn1cblxuLmltYWdlUHJvbXB0RXJyb3Ige1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICBpbnNldDogMDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgcGFkZGluZzogMTJweDtcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGNvbG9yOiAjZGMyNjI2O1xuICAgIGJhY2tncm91bmQ6IHJnYmEoMjIwLCAzOCwgMzgsIDAuMDgpO1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlciB7XG4gICAgbWFyZ2luLXRvcDogMTZweDtcbiAgICBtYXJnaW4tYm90dG9tOiAxNnB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDE4cHg7XG4gICAgcGFkZGluZzogMTJweCAxNHB4O1xuICAgIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjI1KTtcbiAgICBiYWNrZ3JvdW5kOiByZ2JhKDU2LCAxODksIDI0OCwgMC4xMik7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIGdhcDogMTJweDtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXJTcGlubmVyIHtcbiAgICB3aWR0aDogMzJweDtcbiAgICBoZWlnaHQ6IDMycHg7XG4gICAgYm9yZGVyLXJhZGl1czogNTAlO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkIHJnYmEoNTksIDEzMCwgMjQ2LCAwLjMpO1xuICAgIGJvcmRlci10b3AtY29sb3I6ICMyMmQzZWU7XG4gICAgYW5pbWF0aW9uOiByaWNoRmVhdHVyZVNwaW5uZXIgMC44cyBsaW5lYXIgaW5maW5pdGU7XG59XG5cbi5yaWNoRmVhdHVyZVBsYWNlaG9sZGVyQ29weSB7XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuXG4ucmljaEZlYXR1cmVQbGFjZWhvbGRlclRpdGxlIHtcbiAgICBmb250LXNpemU6IDEzcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzBmMTcyYTtcbn1cblxuLnJpY2hGZWF0dXJlUGxhY2Vob2xkZXJTdGF0dXMge1xuICAgIGZvbnQtc2l6ZTogMTFweDtcbiAgICBjb2xvcjogIzQ3NTU2OTtcbn1cblxuQGtleWZyYW1lcyByaWNoRmVhdHVyZVNwaW5uZXIge1xuICAgIHRvIHtcbiAgICAgICAgdHJhbnNmb3JtOiByb3RhdGUoMzYwZGVnKTtcbiAgICB9XG59XG4iXX0= */";
|
|
22471
|
+
var styles$5 = {"copiedToClipboardMessage":"Chat-module_copiedToClipboardMessage__apCPY","Chat":"Chat-module_Chat__j2eE5","chatMainFlow":"Chat-module_chatMainFlow__--8FE","chatBar":"Chat-module_chatBar__fLECN","TasksInProgress":"Chat-module_TasksInProgress__fQfei","actions":"Chat-module_actions__gTZ5T","portal":"Chat-module_portal__uTOT8","left":"Chat-module_left__7l5Mn","right":"Chat-module_right__ABZrW","actionsFaded":"Chat-module_actionsFaded__qqAVQ","actionsScrolling":"Chat-module_actionsScrolling__fIawW","chatButton":"Chat-module_chatButton__d9VgA","chatButtonText":"Chat-module_chatButtonText__RkGB-","useTemplateButton":"Chat-module_useTemplateButton__xcJNR","chatChildren":"Chat-module_chatChildren__flOPK","chatMessages":"Chat-module_chatMessages__J2u2N","hasActionsAndFirstMessageIsLong":"Chat-module_hasActionsAndFirstMessageIsLong__5jgoZ","chatMessage":"Chat-module_chatMessage__nmLaZ","messageSlideIn":"Chat-module_messageSlideIn__soTy2","messageStack":"Chat-module_messageStack__n0xNL","isMe":"Chat-module_isMe__nBtaV","messageWithMap":"Chat-module_messageWithMap__X5dr0","messageMeta":"Chat-module_messageMeta__eqCRu","messageLifecycleBadge":"Chat-module_messageLifecycleBadge__4jDDc","messageTimestamp":"Chat-module_messageTimestamp__LDhRw","messageDuration":"Chat-module_messageDuration__Y9Kg9","messageLifecycleError":"Chat-module_messageLifecycleError__m-FO-","participantLabel":"Chat-module_participantLabel__0Oo-3","isNotCompleteMessage":"Chat-module_isNotCompleteMessage__Hj2K7","NonCompleteMessageFiller":"Chat-module_NonCompleteMessageFiller__G5-Ve","messageText":"Chat-module_messageText__XgNyQ","loadingPulse":"Chat-module_loadingPulse__VomRm","toolCallChips":"Chat-module_toolCallChips__UWgC1","sourceCitations":"Chat-module_sourceCitations__oDtBX","toolCallChip":"Chat-module_toolCallChip__koN18","toolCallChipOngoing":"Chat-module_toolCallChipOngoing__wKcDY","toolCallChipStatus":"Chat-module_toolCallChipStatus__I-nl9","teamToolCall":"Chat-module_teamToolCall__5F45R","transitiveToolCall":"Chat-module_transitiveToolCall__WcaaK","teamAgentChip":"Chat-module_teamAgentChip__mvgtY","transitiveAgentChip":"Chat-module_transitiveAgentChip__zNOJf","toolCallLabel":"Chat-module_toolCallLabel__q7EFf","toolCallWithError":"Chat-module_toolCallWithError__AtQqO","toolCallOrigin":"Chat-module_toolCallOrigin__-Io6Y","toolCallDetails":"Chat-module_toolCallDetails__WUFlD","toolCallData":"Chat-module_toolCallData__UauCO","toolCallChipSpinner":"Chat-module_toolCallChipSpinner__ZGTwl","toolCallSpinner":"Chat-module_toolCallSpinner__LSiK6","typingIndicator":"Chat-module_typingIndicator__S-CT-","avatar":"Chat-module_avatar__gL6bm","typingBubble":"Chat-module_typingBubble__0Lb7B","typingDots":"Chat-module_typingDots__srOBB","typingDot":"Chat-module_typingDot__dnhKT","typingBounce":"Chat-module_typingBounce__1yp2v","ratingStar":"Chat-module_ratingStar__rRfqC","active":"Chat-module_active__lbYL-","copyButtonContainer":"Chat-module_copyButtonContainer__Rij0U","messageControlGroup":"Chat-module_messageControlGroup__gAo4k","copyButton":"Chat-module_copyButton__DcxT5","playButton":"Chat-module_playButton__ZigYL","playButtonIcon":"Chat-module_playButtonIcon__wPErq","playButtonSpinner":"Chat-module_playButtonSpinner__Ad33i","messagePlaySpinner":"Chat-module_messagePlaySpinner__ldlvy","copiedTooltip":"Chat-module_copiedTooltip__LH81j","copiedTooltipFadeIn":"Chat-module_copiedTooltipFadeIn__QekO1","copiedTooltipLeft":"Chat-module_copiedTooltipLeft__j-S-5","copiedTooltipRight":"Chat-module_copiedTooltipRight__R-2cE","chat-code-block":"Chat-module_chat-code-block__k8IyS","attachments":"Chat-module_attachments__m1Fts","attachment":"Chat-module_attachment__aE9hK","attachmentIcon":"Chat-module_attachmentIcon__BX3Cy","attachmentName":"Chat-module_attachmentName__aMx56","messageButtons":"Chat-module_messageButtons__WaOob","messageButton":"Chat-module_messageButton__mRnn-","actionMessageButton":"Chat-module_actionMessageButton__avcbv","rating":"Chat-module_rating__soc3M","chatInput":"Chat-module_chatInput__1Ecan","fullPageVisual":"Chat-module_fullPageVisual__zNAEy","dragOver":"Chat-module_dragOver__bkS-g","filePreviewContainer":"Chat-module_filePreviewContainer__R70hm","filePreview":"Chat-module_filePreview__kq2aX","fileIcon":"Chat-module_fileIcon__zoSKW","fileInfo":"Chat-module_fileInfo__wBLi0","fileName":"Chat-module_fileName__bBujo","fileSize":"Chat-module_fileSize__ivliq","removeFileButton":"Chat-module_removeFileButton__0gakR","inputContainer":"Chat-module_inputContainer__bPt99","attachmentButton":"Chat-module_attachmentButton__qLO47","voiceButton":"Chat-module_voiceButton__d2zlP","voiceButtonActive":"Chat-module_voiceButtonActive__Uoi3W","voiceRecordingPulse":"Chat-module_voiceRecordingPulse__y2wJ5","speechStatusBubble":"Chat-module_speechStatusBubble__qBBWI","speechStatusBubbleIn":"Chat-module_speechStatusBubbleIn__PBm-c","speechStatusBubbleDot":"Chat-module_speechStatusBubbleDot__APu53","speechStatusBubbleDotPulse":"Chat-module_speechStatusBubbleDotPulse__Guqsu","speechStatusBubbleRecording":"Chat-module_speechStatusBubbleRecording__faJs2","speechStatusBubbleProcessing":"Chat-module_speechStatusBubbleProcessing__Crbuu","speechStatusBubbleError":"Chat-module_speechStatusBubbleError__Nd-Aj","dictationPanel":"Chat-module_dictationPanel__kzbyG","dictationPanelHeader":"Chat-module_dictationPanelHeader__rHXTh","dictationPanelTitle":"Chat-module_dictationPanelTitle__sO9XH","dictationPanelToggle":"Chat-module_dictationPanelToggle__z3HMx","dictationInterimTranscript":"Chat-module_dictationInterimTranscript__eAbMI","dictationErrorPanel":"Chat-module_dictationErrorPanel__mjbM7","dictationErrorActions":"Chat-module_dictationErrorActions__K3ykb","dictationCorrectionActions":"Chat-module_dictationCorrectionActions__ssE7i","dictationCorrectionPanel":"Chat-module_dictationCorrectionPanel__5nh9M","dictationCorrectionLabel":"Chat-module_dictationCorrectionLabel__U4uzT","dictationCorrectionTextarea":"Chat-module_dictationCorrectionTextarea__5ovj9","dictationSettingsPanel":"Chat-module_dictationSettingsPanel__0gI-V","dictationFallbackNote":"Chat-module_dictationFallbackNote__919pE","uploadProgress":"Chat-module_uploadProgress__jBTKe","uploadProgressBar":"Chat-module_uploadProgressBar__Gutnt","uploadProgressFill":"Chat-module_uploadProgressFill__EgubT","dragOverlay":"Chat-module_dragOverlay__SEGoS","dragOverlayContent":"Chat-module_dragOverlayContent__gb9kF","scrollToBottomContainer":"Chat-module_scrollToBottomContainer__5rXpK","scrollToBottomWrapper":"Chat-module_scrollToBottomWrapper__PCIu1","scrollButtonSlideIn":"Chat-module_scrollButtonSlideIn__XnImg","scrollToBottom":"Chat-module_scrollToBottom__nzxdZ","scrollToBottomBadge":"Chat-module_scrollToBottomBadge__N6T6-","ratingModal":"Chat-module_ratingModal__XVKYm","modalFadeIn":"Chat-module_modalFadeIn__RPc3w","ratingModalContent":"Chat-module_ratingModalContent__CCdq7","modalSlideIn":"Chat-module_modalSlideIn__XXtgN","stars":"Chat-module_stars__PCzNO","ratingModalStar":"Chat-module_ratingModalStar__XkbHr","toolCallModal":"Chat-module_toolCallModal__uNaIK","toolCallHeader":"Chat-module_toolCallHeader__ZaTZF","toolCallIcon":"Chat-module_toolCallIcon__UgRKj","toolCallHeaderMeta":"Chat-module_toolCallHeaderMeta__iAL-U","toolCallModalLabel":"Chat-module_toolCallModalLabel__4dBP4","toolCallTitle":"Chat-module_toolCallTitle__jhL0A","toolCallSubtitle":"Chat-module_toolCallSubtitle__a2GIO","toolCallGrid":"Chat-module_toolCallGrid__Nfr7N","toolCallPanel":"Chat-module_toolCallPanel__kQZE9","toolCallPanelTitle":"Chat-module_toolCallPanelTitle__-7OtJ","toolCallList":"Chat-module_toolCallList__5co3s","toolCallItem":"Chat-module_toolCallItem__k7W5Z","toolCallItemLabel":"Chat-module_toolCallItemLabel__d3C1E","toolCallItemValue":"Chat-module_toolCallItemValue__cStQ0","toolCallSummary":"Chat-module_toolCallSummary__wGZwg","toolCallSummaryMeta":"Chat-module_toolCallSummaryMeta__RXiSv","toolCallSummaryMetaBadge":"Chat-module_toolCallSummaryMetaBadge__JBi-I","toolCallEmpty":"Chat-module_toolCallEmpty__bUz5v","toolCallPendingCard":"Chat-module_toolCallPendingCard__L3m7T","toolCallPendingHeader":"Chat-module_toolCallPendingHeader__U3htF","toolCallPendingTitle":"Chat-module_toolCallPendingTitle__4fwLL","toolCallPendingBadge":"Chat-module_toolCallPendingBadge__bgY3c","toolCallPendingMessage":"Chat-module_toolCallPendingMessage__grnao","toolCallPendingSkeleton":"Chat-module_toolCallPendingSkeleton__Td5Cu","toolCallPendingSkeletonLine":"Chat-module_toolCallPendingSkeletonLine__Vldel","toolCallPendingSkeletonPulse":"Chat-module_toolCallPendingSkeletonPulse__aKDNI","toolCallPendingSkeletonShort":"Chat-module_toolCallPendingSkeletonShort__FnR-X","toolCallDetailsCard":"Chat-module_toolCallDetailsCard__UJthw","toolCallDetailsCardRow":"Chat-module_toolCallDetailsCardRow__-VhfA","toolCallIssues":"Chat-module_toolCallIssues__evhYM","toolCallIssueBadge":"Chat-module_toolCallIssueBadge__Qbwdp","toolCallIssueError":"Chat-module_toolCallIssueError__LImeS","toolCallIssueWarning":"Chat-module_toolCallIssueWarning__chQDf","toolCallModeFooter":"Chat-module_toolCallModeFooter__XaRqI","toolCallModeButton":"Chat-module_toolCallModeButton__zlcca","toolCallClockPanel":"Chat-module_toolCallClockPanel__h4xZd","toolCallClockLabels":"Chat-module_toolCallClockLabels__KJGxe","toolCallClockPrimary":"Chat-module_toolCallClockPrimary__StLQ8","toolCallClockSecondary":"Chat-module_toolCallClockSecondary__O4WaT","toolCallClockMeta":"Chat-module_toolCallClockMeta__aObb7","timeoutToolSummary":"Chat-module_timeoutToolSummary__kPPvu","timeoutToolPrimarySentence":"Chat-module_timeoutToolPrimarySentence__pQfLn","timeoutToolSecondarySentence":"Chat-module_timeoutToolSecondarySentence__iH5Uc","timeoutToolActionRow":"Chat-module_timeoutToolActionRow__occir","timeoutToolActionButton":"Chat-module_timeoutToolActionButton__8yz0R","memoryModalHeader":"Chat-module_memoryModalHeader__SpZJT","memoryModalIcon":"Chat-module_memoryModalIcon__eYbli","memoryModalHeaderText":"Chat-module_memoryModalHeaderText__S6MZG","memoryModalTitle":"Chat-module_memoryModalTitle__zzbaQ","memoryModalSubtitle":"Chat-module_memoryModalSubtitle__PStci","memoryModalStatus":"Chat-module_memoryModalStatus__bmrfc","memoryStatusDot":"Chat-module_memoryStatusDot__c0oVs","memoryModalContent":"Chat-module_memoryModalContent__8E7oj","memoryMessage":"Chat-module_memoryMessage__q0pNK","memoryMetaRow":"Chat-module_memoryMetaRow__Hc-Xp","memoryMetaLabel":"Chat-module_memoryMetaLabel__LFx11","memoryMetaValue":"Chat-module_memoryMetaValue__4bILO","memoryStoreSection":"Chat-module_memoryStoreSection__qQJPN","memoryRetrieveSection":"Chat-module_memoryRetrieveSection__VbuS4","memoryCard":"Chat-module_memoryCard__-kIDN","memoryCardContent":"Chat-module_memoryCardContent__l9S4G","memoryCardMeta":"Chat-module_memoryCardMeta__K66KE","memoryScopeBadge":"Chat-module_memoryScopeBadge__T2ACc","memoryList":"Chat-module_memoryList__pUOg2","memoryEmptyState":"Chat-module_memoryEmptyState__fPrXA","memoryListFooter":"Chat-module_memoryListFooter__Y0Q2Z","memoryStatusSuccess":"Chat-module_memoryStatusSuccess__4bhfo","memoryStatusWarning":"Chat-module_memoryStatusWarning__AR6yh","memoryStatusError":"Chat-module_memoryStatusError__ZNAT6","memoryStatusNeutral":"Chat-module_memoryStatusNeutral__Fa-4M","searchModalHeader":"Chat-module_searchModalHeader__Y8V-w","selfLearningModalHeader":"Chat-module_selfLearningModalHeader__PDIt1","selfLearningAvatarGroup":"Chat-module_selfLearningAvatarGroup__jgy2k","selfLearningAvatar":"Chat-module_selfLearningAvatar__NHXKm","selfLearningAvatarInitial":"Chat-module_selfLearningAvatarInitial__cuw19","selfLearningTeacher":"Chat-module_selfLearningTeacher__fGhX8","selfLearningHeaderText":"Chat-module_selfLearningHeaderText__LTwHL","selfLearningTitle":"Chat-module_selfLearningTitle__G0SAk","selfLearningMetaRow":"Chat-module_selfLearningMetaRow__z4Tg0","selfLearningMeta":"Chat-module_selfLearningMeta__58Pet","selfLearningMetaChip":"Chat-module_selfLearningMetaChip__0go88","selfLearningCommitments":"Chat-module_selfLearningCommitments__7ECnr","selfLearningCommitmentsLabel":"Chat-module_selfLearningCommitmentsLabel__OkDO1","selfLearningBookEditor":"Chat-module_selfLearningBookEditor__CZy5T","selfLearningEmpty":"Chat-module_selfLearningEmpty__vCKHL","modalCloseButton":"Chat-module_modalCloseButton__AAfWS","teamModalHeader":"Chat-module_teamModalHeader__SB5NL","teamHeaderParticipants":"Chat-module_teamHeaderParticipants__KS7aV","teamHeaderProfile":"Chat-module_teamHeaderProfile__xRlcS","teamHeaderProfileLink":"Chat-module_teamHeaderProfileLink__fYTfT","teamHeaderAvatar":"Chat-module_teamHeaderAvatar__vXcTp","teamHeaderName":"Chat-module_teamHeaderName__ygJR9","teamHeaderDivider":"Chat-module_teamHeaderDivider__cnRMd","searchModalIcon":"Chat-module_searchModalIcon__AR5KY","searchModalQuery":"Chat-module_searchModalQuery__5x-Ra","searchModalContent":"Chat-module_searchModalContent__mWLIE","teamChatContainer":"Chat-module_teamChatContainer__xdLtU","teamToolCallSection":"Chat-module_teamToolCallSection__FH9l7","teamToolCallGroup":"Chat-module_teamToolCallGroup__PO6rl","teamToolCallHeading":"Chat-module_teamToolCallHeading__G-JSj","teamToolCallChips":"Chat-module_teamToolCallChips__hRWqh","teamToolCallDetails":"Chat-module_teamToolCallDetails__ZaTtt","teamToolCallDetailsHeader":"Chat-module_teamToolCallDetailsHeader__FPIgI","teamToolCallDetailsTitle":"Chat-module_teamToolCallDetailsTitle__50SeL","teamToolCallDetailsClear":"Chat-module_teamToolCallDetailsClear__8yvu7","searchResultsList":"Chat-module_searchResultsList__xVDUZ","searchResultsRaw":"Chat-module_searchResultsRaw__i3GkD","searchResultItem":"Chat-module_searchResultItem__bTzq5","searchResultUrl":"Chat-module_searchResultUrl__SbrH4","searchResultTitle":"Chat-module_searchResultTitle__XS7zN","searchResultSnippet":"Chat-module_searchResultSnippet__Wsun2","noResults":"Chat-module_noResults__AAv6s","citationDetails":"Chat-module_citationDetails__2v2e1","citationPreview":"Chat-module_citationPreview__rGhCR","citationIframe":"Chat-module_citationIframe__ngzFY","citationMetadata":"Chat-module_citationMetadata__DPaCF","citationExcerpt":"Chat-module_citationExcerpt__VU4BS","citationHint":"Chat-module_citationHint__5AkLx","toolCallDataContainer":"Chat-module_toolCallDataContainer__rdEzC","toolCallPayloadContainer":"Chat-module_toolCallPayloadContainer__v2yVn","toolCallPayloadEditor":"Chat-module_toolCallPayloadEditor__Hklyf","ratingInput":"Chat-module_ratingInput__z8Pv-","ratingActions":"Chat-module_ratingActions__nXcss","downloadButton":"Chat-module_downloadButton__8--bk","saveButtonContainer":"Chat-module_saveButtonContainer__lSNUJ","saveMenu":"Chat-module_saveMenu__-ph8y","saveMenuItem":"Chat-module_saveMenuItem__ISApL","saveMenuDivider":"Chat-module_saveMenuDivider__3ktTM","chatFeedbackPanel":"Chat-module_chatFeedbackPanel__gfOzk","chatFeedbackToggle":"Chat-module_chatFeedbackToggle__IeOM6","chatFeedbackIcon":"Chat-module_chatFeedbackIcon__XcB7A","chatFeedbackMeta":"Chat-module_chatFeedbackMeta__6t2be","chatFeedbackLabel":"Chat-module_chatFeedbackLabel__qQgH3","chatFeedbackDescription":"Chat-module_chatFeedbackDescription__I9bNg","chatFeedbackIndicator":"Chat-module_chatFeedbackIndicator__uHCr7","chatFeedbackIndicatorActive":"Chat-module_chatFeedbackIndicatorActive__bkw-w","chatFeedbackIndicatorInactive":"Chat-module_chatFeedbackIndicatorInactive__qMBkh","pauseButton":"Chat-module_pauseButton__eeu7K","pausing":"Chat-module_pausing__pTx8b","paused":"Chat-module_paused__j-pya","stopButton":"Chat-module_stopButton__dkPOW","voiceCallIndicatorBar":"Chat-module_voiceCallIndicatorBar__N2sWN","voiceCallIndicator":"Chat-module_voiceCallIndicator__tsaaG","voiceCallIconPulse":"Chat-module_voiceCallIconPulse__zZbJn","voiceCallPulse":"Chat-module_voiceCallPulse__XcGU4","feedbackStatus":"Chat-module_feedbackStatus__-df7l","feedbackStatusSlideIn":"Chat-module_feedbackStatusSlideIn__n6bbB","feedbackStatusSuccess":"Chat-module_feedbackStatusSuccess__Ax2q0","feedbackStatusError":"Chat-module_feedbackStatusError__dnv6d","emailContainer":"Chat-module_emailContainer__TBxXZ","emailModalHeader":"Chat-module_emailModalHeader__Z4-CJ","emailHeaderText":"Chat-module_emailHeaderText__1dR6R","emailHeaderLabel":"Chat-module_emailHeaderLabel__7iAEH","emailMetadata":"Chat-module_emailMetadata__8XXGf","emailField":"Chat-module_emailField__pcb03","emailRecipients":"Chat-module_emailRecipients__YVVys","emailBody":"Chat-module_emailBody__OBt-w","emailBodyContent":"Chat-module_emailBodyContent__-vFo2","browserRunModalHeader":"Chat-module_browserRunModalHeader__0AyeK","browserRunHeaderText":"Chat-module_browserRunHeaderText__JUbNv","browserRunHeaderStatus":"Chat-module_browserRunHeaderStatus__uu3Fi","browserRunHeaderLabel":"Chat-module_browserRunHeaderLabel__uKYCb","browserRunMeta":"Chat-module_browserRunMeta__lJkQc","browserRunWarning":"Chat-module_browserRunWarning__ojdEP","browserRunError":"Chat-module_browserRunError__aELQo","browserRunErrorSummary":"Chat-module_browserRunErrorSummary__ygz-g","browserRunErrorSteps":"Chat-module_browserRunErrorSteps__S96nl","browserRunDebugDetails":"Chat-module_browserRunDebugDetails__SZ3VT","browserRunFallbackContent":"Chat-module_browserRunFallbackContent__NYCkp","browserRunStatusBanner":"Chat-module_browserRunStatusBanner__ljIE9","browserRunMediaGrid":"Chat-module_browserRunMediaGrid__KDz3I","browserRunMediaCard":"Chat-module_browserRunMediaCard__focNP","browserRunMediaCardHeader":"Chat-module_browserRunMediaCardHeader__sOfLw","browserRunMediaTitle":"Chat-module_browserRunMediaTitle__a6Ctw","browserRunMediaCaption":"Chat-module_browserRunMediaCaption__LG8E6","browserRunMediaImage":"Chat-module_browserRunMediaImage__UI4pd","browserRunMediaVideo":"Chat-module_browserRunMediaVideo__z2RgF","browserRunActionLog":"Chat-module_browserRunActionLog__YZ0CQ","browserRunActionLogTitle":"Chat-module_browserRunActionLogTitle__XaEIW","browserRunActionList":"Chat-module_browserRunActionList__SOgfd","browserRunActionItem":"Chat-module_browserRunActionItem__1q668","browserRunActionPending":"Chat-module_browserRunActionPending__unJJt","browserRunActionRunning":"Chat-module_browserRunActionRunning__NdlRL","browserRunActionComplete":"Chat-module_browserRunActionComplete__PU36H","browserRunActionError":"Chat-module_browserRunActionError__y-cm0","browserRunActionState":"Chat-module_browserRunActionState__pkfKg","browserRunActionStateRunning":"Chat-module_browserRunActionStateRunning__L1IbZ","browserRunActionStateComplete":"Chat-module_browserRunActionStateComplete__CpVEc","browserRunActionStateError":"Chat-module_browserRunActionStateError__lU-t4","browserRunActionMeta":"Chat-module_browserRunActionMeta__df32n","emailStatus":"Chat-module_emailStatus__T4UuL","imagePrompt":"Chat-module_imagePrompt__v7-Ho","imagePromptPreview":"Chat-module_imagePromptPreview__ve5dB","imagePromptImage":"Chat-module_imagePromptImage__KjE3H","imagePromptPlaceholder":"Chat-module_imagePromptPlaceholder__b8cW6","imagePromptSpinner":"Chat-module_imagePromptSpinner__nat8r","imagePromptMeta":"Chat-module_imagePromptMeta__YwltP","imagePromptPrompt":"Chat-module_imagePromptPrompt__N1E--","imagePromptStatus":"Chat-module_imagePromptStatus__0ROQF","imagePromptError":"Chat-module_imagePromptError__x1952","richFeaturePlaceholder":"Chat-module_richFeaturePlaceholder__mXS7-","richFeaturePlaceholderSpinner":"Chat-module_richFeaturePlaceholderSpinner__ingFq","richFeatureSpinner":"Chat-module_richFeatureSpinner__eOql6","richFeaturePlaceholderCopy":"Chat-module_richFeaturePlaceholderCopy__sEgxN","richFeaturePlaceholderTitle":"Chat-module_richFeaturePlaceholderTitle__lF7rJ","richFeaturePlaceholderStatus":"Chat-module_richFeaturePlaceholderStatus__UJg09"};
|
|
21237
22472
|
styleInject(css_248z$5);
|
|
21238
22473
|
|
|
21239
22474
|
/**
|
|
@@ -36338,6 +37573,307 @@ function buildCitationKey(citation, origin) {
|
|
|
36338
37573
|
return `${origin.label}:${citation.id}:${citation.source}`;
|
|
36339
37574
|
}
|
|
36340
37575
|
|
|
37576
|
+
/**
|
|
37577
|
+
* Tool names handled by timeout-specific chat presentation.
|
|
37578
|
+
*
|
|
37579
|
+
* @private internal timeout-chat constant
|
|
37580
|
+
*/
|
|
37581
|
+
const TIMEOUT_TOOL_NAMES = ['set_timeout', 'cancel_timeout'];
|
|
37582
|
+
/**
|
|
37583
|
+
* Milliseconds in one second.
|
|
37584
|
+
*
|
|
37585
|
+
* @private internal timeout-chat constant
|
|
37586
|
+
*/
|
|
37587
|
+
const SECOND_IN_MILLISECONDS = 1000;
|
|
37588
|
+
/**
|
|
37589
|
+
* Seconds in one minute.
|
|
37590
|
+
*
|
|
37591
|
+
* @private internal timeout-chat constant
|
|
37592
|
+
*/
|
|
37593
|
+
const MINUTE_IN_SECONDS = 60;
|
|
37594
|
+
/**
|
|
37595
|
+
* Seconds in one hour.
|
|
37596
|
+
*
|
|
37597
|
+
* @private internal timeout-chat constant
|
|
37598
|
+
*/
|
|
37599
|
+
const HOUR_IN_SECONDS = 60 * MINUTE_IN_SECONDS;
|
|
37600
|
+
/**
|
|
37601
|
+
* Seconds in one day.
|
|
37602
|
+
*
|
|
37603
|
+
* @private internal timeout-chat constant
|
|
37604
|
+
*/
|
|
37605
|
+
const HOURS_IN_DAY = 24;
|
|
37606
|
+
/**
|
|
37607
|
+
* Seconds in one day.
|
|
37608
|
+
*
|
|
37609
|
+
* @private internal timeout-chat constant
|
|
37610
|
+
*/
|
|
37611
|
+
const DAY_IN_SECONDS = HOURS_IN_DAY * HOUR_IN_SECONDS;
|
|
37612
|
+
/**
|
|
37613
|
+
* Threshold below which compact labels include seconds.
|
|
37614
|
+
*
|
|
37615
|
+
* @private internal timeout-chat constant
|
|
37616
|
+
*/
|
|
37617
|
+
const SECONDS_VISIBILITY_THRESHOLD_SECONDS = 3 * MINUTE_IN_SECONDS;
|
|
37618
|
+
/**
|
|
37619
|
+
* Shared relative-time formatter for timeout labels.
|
|
37620
|
+
*
|
|
37621
|
+
* @private internal timeout-chat singleton
|
|
37622
|
+
*/
|
|
37623
|
+
const timeoutRelativeTimeFormatter = new Intl.RelativeTimeFormat(undefined, {
|
|
37624
|
+
numeric: 'auto',
|
|
37625
|
+
});
|
|
37626
|
+
/**
|
|
37627
|
+
* Determines whether a tool name belongs to the timeout commitment.
|
|
37628
|
+
*
|
|
37629
|
+
* @private internal utility of `<Chat/>`
|
|
37630
|
+
*/
|
|
37631
|
+
function isTimeoutToolCallName(toolName) {
|
|
37632
|
+
return TIMEOUT_TOOL_NAMES.includes(toolName);
|
|
37633
|
+
}
|
|
37634
|
+
/**
|
|
37635
|
+
* Resolves friendly timeout presentation metadata from one tool call payload.
|
|
37636
|
+
*
|
|
37637
|
+
* @private internal utility of `<Chat/>`
|
|
37638
|
+
*/
|
|
37639
|
+
function resolveTimeoutToolCallPresentation(options) {
|
|
37640
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
37641
|
+
const { toolCallName, args, resultRaw } = options;
|
|
37642
|
+
if (!isTimeoutToolCallName(toolCallName)) {
|
|
37643
|
+
return null;
|
|
37644
|
+
}
|
|
37645
|
+
const resultObject = resultRaw && typeof resultRaw === 'object' && !Array.isArray(resultRaw)
|
|
37646
|
+
? resultRaw
|
|
37647
|
+
: null;
|
|
37648
|
+
const defaultAction = toolCallName === 'cancel_timeout' ? 'cancel' : 'set';
|
|
37649
|
+
const action = (resultObject === null || resultObject === void 0 ? void 0 : resultObject.action) === 'cancel' || (resultObject === null || resultObject === void 0 ? void 0 : resultObject.action) === 'set'
|
|
37650
|
+
? resultObject.action
|
|
37651
|
+
: defaultAction;
|
|
37652
|
+
const status = typeof (resultObject === null || resultObject === void 0 ? void 0 : resultObject.status) === 'string' ? resultObject.status : null;
|
|
37653
|
+
const milliseconds = (_b = (_a = parsePositiveNumber(args.milliseconds)) !== null && _a !== void 0 ? _a : parsePositiveNumber(resultObject === null || resultObject === void 0 ? void 0 : resultObject.milliseconds)) !== null && _b !== void 0 ? _b : null;
|
|
37654
|
+
const timeoutId = (_d = (_c = normalizeStringValue(resultObject === null || resultObject === void 0 ? void 0 : resultObject.timeoutId)) !== null && _c !== void 0 ? _c : normalizeStringValue(args.timeoutId)) !== null && _d !== void 0 ? _d : null;
|
|
37655
|
+
const message = (_f = (_e = normalizeStringValue(args.message)) !== null && _e !== void 0 ? _e : normalizeStringValue(resultObject === null || resultObject === void 0 ? void 0 : resultObject.message)) !== null && _f !== void 0 ? _f : null;
|
|
37656
|
+
const dueAtRaw = (_h = (_g = normalizeStringValue(resultObject === null || resultObject === void 0 ? void 0 : resultObject.dueAt)) !== null && _g !== void 0 ? _g : normalizeStringValue(args.dueAt)) !== null && _h !== void 0 ? _h : null;
|
|
37657
|
+
const dueAtDate = dueAtRaw ? parseDateValue(dueAtRaw) : null;
|
|
37658
|
+
const effectiveCurrentDate = options.currentDate || new Date();
|
|
37659
|
+
return {
|
|
37660
|
+
action,
|
|
37661
|
+
status,
|
|
37662
|
+
milliseconds,
|
|
37663
|
+
timeoutId,
|
|
37664
|
+
message,
|
|
37665
|
+
dueAtDate,
|
|
37666
|
+
dueAtIsoUtc: dueAtDate ? dueAtDate.toISOString() : null,
|
|
37667
|
+
localTimezone: resolveLocalTimezone(),
|
|
37668
|
+
compactDurationLabel: milliseconds !== null ? formatTimeoutDurationCompact(milliseconds) : null,
|
|
37669
|
+
humanDurationLabel: milliseconds !== null ? formatTimeoutDurationHuman(milliseconds) : null,
|
|
37670
|
+
relativeDueLabel: dueAtDate ? formatTimeoutRelativeDueLabel(dueAtDate, effectiveCurrentDate) : null,
|
|
37671
|
+
localDueTimeLabel: dueAtDate
|
|
37672
|
+
? dueAtDate.toLocaleTimeString([], {
|
|
37673
|
+
hour: '2-digit',
|
|
37674
|
+
minute: '2-digit',
|
|
37675
|
+
})
|
|
37676
|
+
: null,
|
|
37677
|
+
localDueDateLabel: dueAtDate ? dueAtDate.toLocaleDateString() : null,
|
|
37678
|
+
};
|
|
37679
|
+
}
|
|
37680
|
+
/**
|
|
37681
|
+
* Builds concise chip text for timeout tool calls.
|
|
37682
|
+
*
|
|
37683
|
+
* @private internal utility of `<Chat/>`
|
|
37684
|
+
*/
|
|
37685
|
+
function buildTimeoutToolCallChipLabel(presentation) {
|
|
37686
|
+
if (presentation.action === 'cancel') {
|
|
37687
|
+
if (presentation.status === 'cancelled') {
|
|
37688
|
+
return 'Timeout cancelled';
|
|
37689
|
+
}
|
|
37690
|
+
if (presentation.status === 'not_found') {
|
|
37691
|
+
return 'Timeout inactive';
|
|
37692
|
+
}
|
|
37693
|
+
return 'Timeout update';
|
|
37694
|
+
}
|
|
37695
|
+
if (presentation.compactDurationLabel) {
|
|
37696
|
+
return `Timeout: ${presentation.compactDurationLabel}`;
|
|
37697
|
+
}
|
|
37698
|
+
if (presentation.relativeDueLabel) {
|
|
37699
|
+
return `Scheduled: ${presentation.relativeDueLabel}`;
|
|
37700
|
+
}
|
|
37701
|
+
return 'Timeout scheduled';
|
|
37702
|
+
}
|
|
37703
|
+
/**
|
|
37704
|
+
* Builds the primary timeout sentence shown in default modal view.
|
|
37705
|
+
*
|
|
37706
|
+
* @private internal utility of `<Chat/>`
|
|
37707
|
+
*/
|
|
37708
|
+
function buildTimeoutToolPrimarySentence(presentation) {
|
|
37709
|
+
if (presentation.action === 'cancel') {
|
|
37710
|
+
if (presentation.status === 'cancelled') {
|
|
37711
|
+
return 'The timeout has been cancelled.';
|
|
37712
|
+
}
|
|
37713
|
+
if (presentation.status === 'not_found') {
|
|
37714
|
+
return 'This timeout was already inactive.';
|
|
37715
|
+
}
|
|
37716
|
+
return 'The timeout status has been updated.';
|
|
37717
|
+
}
|
|
37718
|
+
if (presentation.humanDurationLabel) {
|
|
37719
|
+
return `Will retry in ${presentation.humanDurationLabel}.`;
|
|
37720
|
+
}
|
|
37721
|
+
if (presentation.relativeDueLabel) {
|
|
37722
|
+
return `Scheduled ${presentation.relativeDueLabel}.`;
|
|
37723
|
+
}
|
|
37724
|
+
return 'The timeout has been scheduled.';
|
|
37725
|
+
}
|
|
37726
|
+
/**
|
|
37727
|
+
* Builds one default-view scheduling sentence with local-time and relative context.
|
|
37728
|
+
*
|
|
37729
|
+
* @private internal utility of `<Chat/>`
|
|
37730
|
+
*/
|
|
37731
|
+
function buildTimeoutToolScheduleSentence(presentation) {
|
|
37732
|
+
if (!presentation.localDueTimeLabel) {
|
|
37733
|
+
return null;
|
|
37734
|
+
}
|
|
37735
|
+
const relativeSuffix = presentation.relativeDueLabel ? ` (${presentation.relativeDueLabel})` : '';
|
|
37736
|
+
return `Scheduled for ${presentation.localDueTimeLabel} local time${relativeSuffix}.`;
|
|
37737
|
+
}
|
|
37738
|
+
/**
|
|
37739
|
+
* Converts timeout duration into compact chip-safe text.
|
|
37740
|
+
*
|
|
37741
|
+
* @private internal timeout-chat helper
|
|
37742
|
+
*/
|
|
37743
|
+
function formatTimeoutDurationCompact(milliseconds) {
|
|
37744
|
+
const normalizedMilliseconds = Math.max(0, Math.floor(milliseconds));
|
|
37745
|
+
const totalSeconds = Math.max(1, Math.floor(normalizedMilliseconds / SECOND_IN_MILLISECONDS));
|
|
37746
|
+
if (totalSeconds < MINUTE_IN_SECONDS) {
|
|
37747
|
+
return `${totalSeconds}s`;
|
|
37748
|
+
}
|
|
37749
|
+
if (totalSeconds < SECONDS_VISIBILITY_THRESHOLD_SECONDS) {
|
|
37750
|
+
const minutes = Math.floor(totalSeconds / MINUTE_IN_SECONDS);
|
|
37751
|
+
const seconds = totalSeconds % MINUTE_IN_SECONDS;
|
|
37752
|
+
return `${minutes}m ${seconds}s`;
|
|
37753
|
+
}
|
|
37754
|
+
if (totalSeconds < HOUR_IN_SECONDS) {
|
|
37755
|
+
return `${Math.floor(totalSeconds / MINUTE_IN_SECONDS)}m`;
|
|
37756
|
+
}
|
|
37757
|
+
if (totalSeconds < DAY_IN_SECONDS) {
|
|
37758
|
+
const hours = Math.floor(totalSeconds / HOUR_IN_SECONDS);
|
|
37759
|
+
const minutes = Math.floor((totalSeconds % HOUR_IN_SECONDS) / MINUTE_IN_SECONDS);
|
|
37760
|
+
return minutes === 0 ? `${hours}h` : `${hours}h ${minutes}m`;
|
|
37761
|
+
}
|
|
37762
|
+
const days = Math.floor(totalSeconds / DAY_IN_SECONDS);
|
|
37763
|
+
const hours = Math.floor((totalSeconds % DAY_IN_SECONDS) / HOUR_IN_SECONDS);
|
|
37764
|
+
return hours === 0 ? `${days}d` : `${days}d ${hours}h`;
|
|
37765
|
+
}
|
|
37766
|
+
/**
|
|
37767
|
+
* Converts timeout duration into natural language sentence fragments.
|
|
37768
|
+
*
|
|
37769
|
+
* @private internal timeout-chat helper
|
|
37770
|
+
*/
|
|
37771
|
+
function formatTimeoutDurationHuman(milliseconds) {
|
|
37772
|
+
const normalizedMilliseconds = Math.max(0, Math.floor(milliseconds));
|
|
37773
|
+
const totalSeconds = Math.max(1, Math.floor(normalizedMilliseconds / SECOND_IN_MILLISECONDS));
|
|
37774
|
+
if (totalSeconds < MINUTE_IN_SECONDS) {
|
|
37775
|
+
return formatTimeoutUnit(totalSeconds, 'second');
|
|
37776
|
+
}
|
|
37777
|
+
if (totalSeconds < HOUR_IN_SECONDS) {
|
|
37778
|
+
const roundedMinutes = Math.max(1, Math.round(totalSeconds / MINUTE_IN_SECONDS));
|
|
37779
|
+
return formatTimeoutUnit(roundedMinutes, 'minute');
|
|
37780
|
+
}
|
|
37781
|
+
if (totalSeconds < DAY_IN_SECONDS) {
|
|
37782
|
+
const hours = Math.floor(totalSeconds / HOUR_IN_SECONDS);
|
|
37783
|
+
const minutes = Math.floor((totalSeconds % HOUR_IN_SECONDS) / MINUTE_IN_SECONDS);
|
|
37784
|
+
if (minutes === 0) {
|
|
37785
|
+
return formatTimeoutUnit(hours, 'hour');
|
|
37786
|
+
}
|
|
37787
|
+
return `${formatTimeoutUnit(hours, 'hour')} ${formatTimeoutUnit(minutes, 'minute')}`;
|
|
37788
|
+
}
|
|
37789
|
+
const days = Math.floor(totalSeconds / DAY_IN_SECONDS);
|
|
37790
|
+
const hours = Math.floor((totalSeconds % DAY_IN_SECONDS) / HOUR_IN_SECONDS);
|
|
37791
|
+
if (hours === 0) {
|
|
37792
|
+
return formatTimeoutUnit(days, 'day');
|
|
37793
|
+
}
|
|
37794
|
+
return `${formatTimeoutUnit(days, 'day')} ${formatTimeoutUnit(hours, 'hour')}`;
|
|
37795
|
+
}
|
|
37796
|
+
/**
|
|
37797
|
+
* Formats timeout date into relative text (`in 5 minutes`, `2 hours ago`).
|
|
37798
|
+
*
|
|
37799
|
+
* @private internal timeout-chat helper
|
|
37800
|
+
*/
|
|
37801
|
+
function formatTimeoutRelativeDueLabel(dueAtDate, currentDate) {
|
|
37802
|
+
const millisecondsDifference = dueAtDate.getTime() - currentDate.getTime();
|
|
37803
|
+
const secondsDifference = Math.round(millisecondsDifference / SECOND_IN_MILLISECONDS);
|
|
37804
|
+
const absoluteSecondsDifference = Math.abs(secondsDifference);
|
|
37805
|
+
if (absoluteSecondsDifference < MINUTE_IN_SECONDS) {
|
|
37806
|
+
return timeoutRelativeTimeFormatter.format(secondsDifference, 'second');
|
|
37807
|
+
}
|
|
37808
|
+
if (absoluteSecondsDifference < HOUR_IN_SECONDS) {
|
|
37809
|
+
const minutesDifference = Math.round(secondsDifference / MINUTE_IN_SECONDS);
|
|
37810
|
+
return timeoutRelativeTimeFormatter.format(minutesDifference, 'minute');
|
|
37811
|
+
}
|
|
37812
|
+
if (absoluteSecondsDifference < DAY_IN_SECONDS) {
|
|
37813
|
+
const hoursDifference = Math.round(secondsDifference / HOUR_IN_SECONDS);
|
|
37814
|
+
return timeoutRelativeTimeFormatter.format(hoursDifference, 'hour');
|
|
37815
|
+
}
|
|
37816
|
+
const daysDifference = Math.round(secondsDifference / DAY_IN_SECONDS);
|
|
37817
|
+
return timeoutRelativeTimeFormatter.format(daysDifference, 'day');
|
|
37818
|
+
}
|
|
37819
|
+
/**
|
|
37820
|
+
* Formats one pluralized timeout unit.
|
|
37821
|
+
*
|
|
37822
|
+
* @private internal timeout-chat helper
|
|
37823
|
+
*/
|
|
37824
|
+
function formatTimeoutUnit(value, unit) {
|
|
37825
|
+
return `${value} ${unit}${value === 1 ? '' : 's'}`;
|
|
37826
|
+
}
|
|
37827
|
+
/**
|
|
37828
|
+
* Parses date-like values into a valid `Date`.
|
|
37829
|
+
*
|
|
37830
|
+
* @private internal timeout-chat helper
|
|
37831
|
+
*/
|
|
37832
|
+
function parseDateValue(value) {
|
|
37833
|
+
const parsedDate = new Date(value);
|
|
37834
|
+
return Number.isNaN(parsedDate.getTime()) ? null : parsedDate;
|
|
37835
|
+
}
|
|
37836
|
+
/**
|
|
37837
|
+
* Parses numbers and keeps only positive finite values.
|
|
37838
|
+
*
|
|
37839
|
+
* @private internal timeout-chat helper
|
|
37840
|
+
*/
|
|
37841
|
+
function parsePositiveNumber(value) {
|
|
37842
|
+
const parsedValue = Number(value);
|
|
37843
|
+
if (!Number.isFinite(parsedValue) || parsedValue <= 0) {
|
|
37844
|
+
return null;
|
|
37845
|
+
}
|
|
37846
|
+
return Math.floor(parsedValue);
|
|
37847
|
+
}
|
|
37848
|
+
/**
|
|
37849
|
+
* Normalizes optional string values by trimming and dropping empties.
|
|
37850
|
+
*
|
|
37851
|
+
* @private internal timeout-chat helper
|
|
37852
|
+
*/
|
|
37853
|
+
function normalizeStringValue(value) {
|
|
37854
|
+
if (typeof value !== 'string') {
|
|
37855
|
+
return null;
|
|
37856
|
+
}
|
|
37857
|
+
const normalizedValue = value.trim();
|
|
37858
|
+
return normalizedValue || null;
|
|
37859
|
+
}
|
|
37860
|
+
/**
|
|
37861
|
+
* Resolves user local timezone name with a UTC fallback.
|
|
37862
|
+
*
|
|
37863
|
+
* @private internal timeout-chat helper
|
|
37864
|
+
*/
|
|
37865
|
+
function resolveLocalTimezone() {
|
|
37866
|
+
try {
|
|
37867
|
+
return Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC';
|
|
37868
|
+
}
|
|
37869
|
+
catch (_a) {
|
|
37870
|
+
return 'UTC';
|
|
37871
|
+
}
|
|
37872
|
+
}
|
|
37873
|
+
/**
|
|
37874
|
+
* Note: [💞] Ignore a discrepancy between file name and entity name
|
|
37875
|
+
*/
|
|
37876
|
+
|
|
36341
37877
|
/**
|
|
36342
37878
|
* Synthetic tool name used for wallet-credential chips in chat UI.
|
|
36343
37879
|
*
|
|
@@ -36632,6 +38168,14 @@ function getToolCallChipletInfo(toolCall) {
|
|
|
36632
38168
|
const isMemoryTool = toolCall.name === 'retrieve_user_memory' || toolCall.name === 'store_user_memory';
|
|
36633
38169
|
const isTimeoutTool = toolCall.name === 'set_timeout' || toolCall.name === 'cancel_timeout';
|
|
36634
38170
|
const resultRaw = parseToolCallResult(toolCall.result);
|
|
38171
|
+
const timeoutPresentation = isTimeoutTool
|
|
38172
|
+
? resolveTimeoutToolCallPresentation({
|
|
38173
|
+
toolCallName: toolCall.name,
|
|
38174
|
+
args,
|
|
38175
|
+
resultRaw,
|
|
38176
|
+
currentDate: new Date(),
|
|
38177
|
+
})
|
|
38178
|
+
: null;
|
|
36635
38179
|
const walletCredentialResult = parseWalletCredentialToolCallResult(resultRaw);
|
|
36636
38180
|
const teamResult = parseTeamToolResult(resultRaw);
|
|
36637
38181
|
if (walletCredentialResult) {
|
|
@@ -36673,17 +38217,10 @@ function getToolCallChipletInfo(toolCall) {
|
|
|
36673
38217
|
};
|
|
36674
38218
|
}
|
|
36675
38219
|
}
|
|
36676
|
-
if (isTimeoutTool) {
|
|
36677
|
-
|
|
36678
|
-
|
|
36679
|
-
|
|
36680
|
-
};
|
|
36681
|
-
}
|
|
36682
|
-
if (typeof args.timeoutId === 'string' && args.timeoutId.trim()) {
|
|
36683
|
-
return {
|
|
36684
|
-
text: `${emoji} ${args.timeoutId.trim()}`,
|
|
36685
|
-
};
|
|
36686
|
-
}
|
|
38220
|
+
if (isTimeoutTool && timeoutPresentation) {
|
|
38221
|
+
return {
|
|
38222
|
+
text: `${emoji} ${buildTimeoutToolCallChipLabel(timeoutPresentation)}`,
|
|
38223
|
+
};
|
|
36687
38224
|
}
|
|
36688
38225
|
if (args.query) {
|
|
36689
38226
|
return {
|
|
@@ -38743,19 +40280,43 @@ function resolveAdvancedToolCallHeader(options) {
|
|
|
38743
40280
|
* @private function of ChatToolCallModal
|
|
38744
40281
|
*/
|
|
38745
40282
|
function createAdvancedToolCallPayloadSections(toolCall) {
|
|
38746
|
-
var _a;
|
|
40283
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
40284
|
+
const parsedArguments = parseToolCallArguments(toolCall);
|
|
40285
|
+
const parsedResult = parseToolCallResult(toolCall.result);
|
|
38747
40286
|
const requestPayload = {
|
|
38748
40287
|
toolName: toolCall.name,
|
|
38749
40288
|
state: resolveToolCallState(toolCall),
|
|
38750
40289
|
arguments: toolCall.arguments,
|
|
38751
40290
|
};
|
|
38752
|
-
|
|
40291
|
+
const payloadSections = [
|
|
38753
40292
|
{ id: 'request', title: 'Input payload', payload: requestPayload },
|
|
38754
40293
|
{ id: 'logs', title: 'Streamed logs', payload: (_a = toolCall.logs) !== null && _a !== void 0 ? _a : [] },
|
|
38755
40294
|
{ id: 'result', title: 'Output payload', payload: toolCall.result },
|
|
38756
40295
|
{ id: 'raw-model', title: 'Model payload', payload: toolCall.rawToolCall },
|
|
38757
40296
|
{ id: 'event', title: 'Full event', payload: toolCall },
|
|
38758
40297
|
];
|
|
40298
|
+
if (isTimeoutToolCallName(toolCall.name)) {
|
|
40299
|
+
const timeoutPresentation = resolveTimeoutToolCallPresentation({
|
|
40300
|
+
toolCallName: toolCall.name,
|
|
40301
|
+
args: parsedArguments,
|
|
40302
|
+
resultRaw: parsedResult,
|
|
40303
|
+
currentDate: new Date(),
|
|
40304
|
+
});
|
|
40305
|
+
payloadSections.splice(2, 0, {
|
|
40306
|
+
id: 'timeout-metadata',
|
|
40307
|
+
title: 'Timeout metadata',
|
|
40308
|
+
payload: {
|
|
40309
|
+
action: (_b = timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.action) !== null && _b !== void 0 ? _b : null,
|
|
40310
|
+
status: (_c = timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.status) !== null && _c !== void 0 ? _c : null,
|
|
40311
|
+
milliseconds: (_d = timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.milliseconds) !== null && _d !== void 0 ? _d : null,
|
|
40312
|
+
dueAtIsoUtc: (_e = timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.dueAtIsoUtc) !== null && _e !== void 0 ? _e : null,
|
|
40313
|
+
localTimezone: (_f = timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.localTimezone) !== null && _f !== void 0 ? _f : null,
|
|
40314
|
+
timeoutId: (_g = timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.timeoutId) !== null && _g !== void 0 ? _g : null,
|
|
40315
|
+
idempotencyKey: (_h = toolCall.idempotencyKey) !== null && _h !== void 0 ? _h : null,
|
|
40316
|
+
},
|
|
40317
|
+
});
|
|
40318
|
+
}
|
|
40319
|
+
return payloadSections;
|
|
38759
40320
|
}
|
|
38760
40321
|
/**
|
|
38761
40322
|
* Renders one advanced payload block using Monaco with syntax highlighting.
|
|
@@ -39312,6 +40873,65 @@ function formatMemoryTimestamp(value) {
|
|
|
39312
40873
|
timeStyle: 'short',
|
|
39313
40874
|
});
|
|
39314
40875
|
}
|
|
40876
|
+
/**
|
|
40877
|
+
* Default snooze interval used by timeout quick actions.
|
|
40878
|
+
*
|
|
40879
|
+
* @private internal timeout-chat constant
|
|
40880
|
+
*/
|
|
40881
|
+
const DEFAULT_TIMEOUT_SNOOZE_DURATION_MILLISECONDS = 5 * 60 * 1000;
|
|
40882
|
+
/**
|
|
40883
|
+
* Renders a shared analog-clock panel used by time and timeout tool views.
|
|
40884
|
+
*
|
|
40885
|
+
* @param options - Clock panel rendering options.
|
|
40886
|
+
* @returns Clock section with local date/time labels.
|
|
40887
|
+
* @private internal utility of `<ChatToolCallModal/>`
|
|
40888
|
+
*/
|
|
40889
|
+
function renderToolCallClockPanel(options) {
|
|
40890
|
+
const { date, relativeLabel, timezoneLabel } = options;
|
|
40891
|
+
return (jsxs("div", { className: styles$5.toolCallClockPanel, children: [jsx(ClockIcon, { date: date, size: 150 }), jsxs("div", { className: styles$5.toolCallClockLabels, children: [jsx("div", { className: styles$5.toolCallClockPrimary, children: date.toLocaleTimeString([], {
|
|
40892
|
+
hour: '2-digit',
|
|
40893
|
+
minute: '2-digit',
|
|
40894
|
+
}) }), jsx("div", { className: styles$5.toolCallClockSecondary, children: date.toLocaleDateString() }), relativeLabel && jsxs("div", { className: styles$5.toolCallClockMeta, children: ["(", relativeLabel, ")"] }), timezoneLabel && jsx("div", { className: styles$5.toolCallClockMeta, children: timezoneLabel })] })] }));
|
|
40895
|
+
}
|
|
40896
|
+
/**
|
|
40897
|
+
* Copies one quick action command to clipboard when supported.
|
|
40898
|
+
*
|
|
40899
|
+
* @param command - Command text copied for the user.
|
|
40900
|
+
* @private internal utility of `<ChatToolCallModal/>`
|
|
40901
|
+
*/
|
|
40902
|
+
function copyTimeoutQuickActionCommand(command) {
|
|
40903
|
+
var _a;
|
|
40904
|
+
if (typeof navigator === 'undefined' || !((_a = navigator.clipboard) === null || _a === void 0 ? void 0 : _a.writeText)) {
|
|
40905
|
+
return;
|
|
40906
|
+
}
|
|
40907
|
+
void navigator.clipboard.writeText(command);
|
|
40908
|
+
}
|
|
40909
|
+
/**
|
|
40910
|
+
* Builds one `cancel_timeout(...)` helper command for timeout quick actions.
|
|
40911
|
+
*
|
|
40912
|
+
* @param timeoutId - Timeout identifier to cancel.
|
|
40913
|
+
* @returns Helper command text.
|
|
40914
|
+
* @private internal utility of `<ChatToolCallModal/>`
|
|
40915
|
+
*/
|
|
40916
|
+
function createCancelTimeoutQuickActionCommand(timeoutId) {
|
|
40917
|
+
return `cancel_timeout(${JSON.stringify({ timeoutId })})`;
|
|
40918
|
+
}
|
|
40919
|
+
/**
|
|
40920
|
+
* Builds one `set_timeout(...)` helper command for timeout snooze quick actions.
|
|
40921
|
+
*
|
|
40922
|
+
* @param message - Optional timeout wake-up message.
|
|
40923
|
+
* @returns Helper command text.
|
|
40924
|
+
* @private internal utility of `<ChatToolCallModal/>`
|
|
40925
|
+
*/
|
|
40926
|
+
function createSnoozeTimeoutQuickActionCommand(message) {
|
|
40927
|
+
const payload = {
|
|
40928
|
+
milliseconds: DEFAULT_TIMEOUT_SNOOZE_DURATION_MILLISECONDS,
|
|
40929
|
+
};
|
|
40930
|
+
if (typeof message === 'string' && message.trim()) {
|
|
40931
|
+
payload.message = message.trim();
|
|
40932
|
+
}
|
|
40933
|
+
return `set_timeout(${JSON.stringify(payload)})`;
|
|
40934
|
+
}
|
|
39315
40935
|
/**
|
|
39316
40936
|
* Renders a friendly wallet-credential usage summary for non-technical users.
|
|
39317
40937
|
*
|
|
@@ -39416,7 +41036,7 @@ function renderRunBrowserToolCall(options) {
|
|
|
39416
41036
|
* @private function of ChatToolCallModal
|
|
39417
41037
|
*/
|
|
39418
41038
|
function renderToolCallDetails(options) {
|
|
39419
|
-
const { toolCall, toolTitles, agentParticipant, buttonColor } = options;
|
|
41039
|
+
const { toolCall, toolTitles, agentParticipant, buttonColor, onRequestAdvancedView } = options;
|
|
39420
41040
|
const resultRaw = parseToolCallResult(toolCall.result);
|
|
39421
41041
|
const args = parseToolCallArguments(toolCall);
|
|
39422
41042
|
const toolCallDate = getToolCallTimestamp(toolCall);
|
|
@@ -39435,6 +41055,7 @@ function renderToolCallDetails(options) {
|
|
|
39435
41055
|
}
|
|
39436
41056
|
const isSearch = toolCall.name === 'web_search' || toolCall.name === 'useSearchEngine' || toolCall.name === 'search';
|
|
39437
41057
|
const isTime = toolCall.name === 'get_current_time' || toolCall.name === 'useTime';
|
|
41058
|
+
const isTimeout = toolCall.name === 'set_timeout' || toolCall.name === 'cancel_timeout';
|
|
39438
41059
|
const isEmail = toolCall.name === 'send_email' || toolCall.name === 'useEmail';
|
|
39439
41060
|
const isPopup = toolCall.name === 'open_popup' || toolCall.name === 'usePopup' || toolCall.name === 'popup';
|
|
39440
41061
|
const isRunBrowser = toolCall.name === 'run_browser';
|
|
@@ -39481,18 +41102,50 @@ function renderToolCallDetails(options) {
|
|
|
39481
41102
|
const displayDate = timeResultDate || toolCallDate;
|
|
39482
41103
|
const isValidDate = !!displayDate && !isNaN(displayDate.getTime());
|
|
39483
41104
|
const relativeLabel = toolCallDate ? `called ${moment(toolCallDate).fromNow()}` : null;
|
|
39484
|
-
return (jsxs(Fragment, { children: [jsxs("div", { className: styles$5.searchModalHeader, children: [jsx("span", { className: styles$5.searchModalIcon, children: "\u23F0" }), jsx("h3", { className: styles$5.searchModalQuery, children: "Time at call" })] }), jsxs("div", { className: styles$5.searchModalContent, children: [
|
|
39485
|
-
|
|
39486
|
-
|
|
39487
|
-
|
|
39488
|
-
|
|
39489
|
-
|
|
39490
|
-
|
|
39491
|
-
|
|
39492
|
-
|
|
39493
|
-
|
|
39494
|
-
|
|
39495
|
-
|
|
41105
|
+
return (jsxs(Fragment, { children: [jsxs("div", { className: styles$5.searchModalHeader, children: [jsx("span", { className: styles$5.searchModalIcon, children: "\u23F0" }), jsx("h3", { className: styles$5.searchModalQuery, children: "Time at call" })] }), jsxs("div", { className: styles$5.searchModalContent, children: [isValidDate && displayDate ? (renderToolCallClockPanel({
|
|
41106
|
+
date: displayDate,
|
|
41107
|
+
relativeLabel,
|
|
41108
|
+
timezoneLabel: typeof args.timezone === 'string' && args.timezone.trim()
|
|
41109
|
+
? `Timezone: ${args.timezone.trim()}`
|
|
41110
|
+
: null,
|
|
41111
|
+
})) : (jsx("p", { className: styles$5.toolCallEmpty, children: "Unknown time" })), jsxs("div", { className: styles$5.toolCallDetails, children: [jsx("p", { children: jsx("strong", { children: "Timestamp of call:" }) }), jsx("div", { className: styles$5.toolCallDataContainer, children: jsx("pre", { className: styles$5.toolCallData, children: toolCallDate ? toolCallDate.toLocaleString() : 'Unknown' }) })] })] })] }));
|
|
41112
|
+
}
|
|
41113
|
+
if (isTimeout) {
|
|
41114
|
+
const timeoutPresentation = resolveTimeoutToolCallPresentation({
|
|
41115
|
+
toolCallName: toolCall.name,
|
|
41116
|
+
args,
|
|
41117
|
+
resultRaw,
|
|
41118
|
+
currentDate: new Date(),
|
|
41119
|
+
});
|
|
41120
|
+
const clockDate = (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.dueAtDate) || toolCallDate;
|
|
41121
|
+
const isValidClockDate = !!clockDate && !Number.isNaN(clockDate.getTime());
|
|
41122
|
+
const title = (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.action) === 'cancel'
|
|
41123
|
+
? timeoutPresentation.status === 'cancelled'
|
|
41124
|
+
? 'Timeout cancelled'
|
|
41125
|
+
: 'Timeout update'
|
|
41126
|
+
: 'Timeout scheduled';
|
|
41127
|
+
const primarySentence = timeoutPresentation
|
|
41128
|
+
? buildTimeoutToolPrimarySentence(timeoutPresentation)
|
|
41129
|
+
: 'Timeout details are still loading.';
|
|
41130
|
+
const scheduleSentence = timeoutPresentation ? buildTimeoutToolScheduleSentence(timeoutPresentation) : null;
|
|
41131
|
+
const cancelCommand = (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.timeoutId) && timeoutPresentation.action !== 'cancel'
|
|
41132
|
+
? createCancelTimeoutQuickActionCommand(timeoutPresentation.timeoutId)
|
|
41133
|
+
: null;
|
|
41134
|
+
const snoozeCommand = createSnoozeTimeoutQuickActionCommand((timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.message) || undefined);
|
|
41135
|
+
return (jsxs(Fragment, { children: [jsxs("div", { className: styles$5.searchModalHeader, children: [jsx("span", { className: styles$5.searchModalIcon, children: "\u23F1\uFE0F" }), jsx("h3", { className: styles$5.searchModalQuery, children: title })] }), jsxs("div", { className: styles$5.searchModalContent, children: [isValidClockDate && clockDate ? (renderToolCallClockPanel({
|
|
41136
|
+
date: clockDate,
|
|
41137
|
+
relativeLabel: (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.relativeDueLabel) || null,
|
|
41138
|
+
timezoneLabel: (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.localTimezone)
|
|
41139
|
+
? `Timezone: ${timeoutPresentation.localTimezone}`
|
|
41140
|
+
: null,
|
|
41141
|
+
})) : (jsx("p", { className: styles$5.toolCallEmpty, children: "Scheduled time is unavailable." })), jsxs("div", { className: styles$5.timeoutToolSummary, children: [jsx("p", { className: styles$5.timeoutToolPrimarySentence, children: primarySentence }), scheduleSentence && jsx("p", { className: styles$5.timeoutToolSecondarySentence, children: scheduleSentence }), (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.localDueDateLabel) && (jsxs("p", { className: styles$5.timeoutToolSecondarySentence, children: ["Date: ", timeoutPresentation.localDueDateLabel] })), (timeoutPresentation === null || timeoutPresentation === void 0 ? void 0 : timeoutPresentation.message) && (jsxs("p", { className: styles$5.timeoutToolSecondarySentence, children: ["Message: ", timeoutPresentation.message] }))] }), jsxs("div", { className: styles$5.timeoutToolActionRow, role: "group", "aria-label": "Timeout quick actions", children: [jsx("button", { type: "button", className: styles$5.timeoutToolActionButton, onClick: () => {
|
|
41142
|
+
if (!cancelCommand) {
|
|
41143
|
+
return;
|
|
41144
|
+
}
|
|
41145
|
+
copyTimeoutQuickActionCommand(cancelCommand);
|
|
41146
|
+
}, disabled: !cancelCommand, "aria-label": "Cancel timeout", children: "Cancel" }), jsx("button", { type: "button", className: styles$5.timeoutToolActionButton, onClick: () => {
|
|
41147
|
+
copyTimeoutQuickActionCommand(snoozeCommand);
|
|
41148
|
+
}, "aria-label": "Snooze timeout", children: "Snooze" }), onRequestAdvancedView && (jsx("button", { type: "button", className: styles$5.timeoutToolActionButton, onClick: onRequestAdvancedView, "aria-label": "View advanced timeout details", children: "View advanced" }))] })] })] }));
|
|
39496
41149
|
}
|
|
39497
41150
|
if (isEmail) {
|
|
39498
41151
|
const to = args.to || [];
|
|
@@ -40144,6 +41797,8 @@ function ChatToolCallModal(props) {
|
|
|
40144
41797
|
const [teamProfiles, setTeamProfiles] = useState({});
|
|
40145
41798
|
const [selectedTeamToolCall, setSelectedTeamToolCall] = useState(null);
|
|
40146
41799
|
const [viewMode, setViewMode] = useState('simple');
|
|
41800
|
+
const modalDialogRef = useRef(null);
|
|
41801
|
+
const previousActiveElementRef = useRef(null);
|
|
40147
41802
|
const resultRaw = useMemo(() => (toolCall ? parseToolCallResult(toolCall.result) : null), [toolCall]);
|
|
40148
41803
|
const teamResult = useMemo(() => parseTeamToolResult(resultRaw), [resultRaw]);
|
|
40149
41804
|
const toolCallDate = useMemo(() => (toolCall ? getToolCallTimestamp(toolCall) : null), [toolCall]);
|
|
@@ -40203,6 +41858,41 @@ function ChatToolCallModal(props) {
|
|
|
40203
41858
|
setSelectedTeamToolCall(null);
|
|
40204
41859
|
setViewMode('simple');
|
|
40205
41860
|
}, [isOpen, toolCallIdentity]);
|
|
41861
|
+
useEffect(() => {
|
|
41862
|
+
if (!isOpen) {
|
|
41863
|
+
return;
|
|
41864
|
+
}
|
|
41865
|
+
previousActiveElementRef.current =
|
|
41866
|
+
typeof document !== 'undefined' && document.activeElement instanceof HTMLElement
|
|
41867
|
+
? document.activeElement
|
|
41868
|
+
: null;
|
|
41869
|
+
const animationFrame = requestAnimationFrame(() => {
|
|
41870
|
+
var _a;
|
|
41871
|
+
(_a = modalDialogRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
41872
|
+
});
|
|
41873
|
+
return () => {
|
|
41874
|
+
var _a;
|
|
41875
|
+
cancelAnimationFrame(animationFrame);
|
|
41876
|
+
(_a = previousActiveElementRef.current) === null || _a === void 0 ? void 0 : _a.focus();
|
|
41877
|
+
previousActiveElementRef.current = null;
|
|
41878
|
+
};
|
|
41879
|
+
}, [isOpen, toolCallIdentity]);
|
|
41880
|
+
useEffect(() => {
|
|
41881
|
+
if (!isOpen) {
|
|
41882
|
+
return;
|
|
41883
|
+
}
|
|
41884
|
+
const handleKeyDown = (event) => {
|
|
41885
|
+
if (event.key !== 'Escape') {
|
|
41886
|
+
return;
|
|
41887
|
+
}
|
|
41888
|
+
event.preventDefault();
|
|
41889
|
+
onClose();
|
|
41890
|
+
};
|
|
41891
|
+
window.addEventListener('keydown', handleKeyDown);
|
|
41892
|
+
return () => {
|
|
41893
|
+
window.removeEventListener('keydown', handleKeyDown);
|
|
41894
|
+
};
|
|
41895
|
+
}, [isOpen, onClose]);
|
|
40206
41896
|
const focusedToolCallCandidate = (selectedTeamToolCall === null || selectedTeamToolCall === void 0 ? void 0 : selectedTeamToolCall.toolCall) || toolCall;
|
|
40207
41897
|
const handleAdvancedToolCallReportExport = useCallback(async (destination) => {
|
|
40208
41898
|
var _a;
|
|
@@ -40242,12 +41932,15 @@ function ChatToolCallModal(props) {
|
|
|
40242
41932
|
toolTitles,
|
|
40243
41933
|
agentParticipant,
|
|
40244
41934
|
buttonColor,
|
|
41935
|
+
onRequestAdvancedView: () => {
|
|
41936
|
+
setViewMode('advanced');
|
|
41937
|
+
},
|
|
40245
41938
|
}));
|
|
40246
41939
|
return (jsx("div", { className: styles$5.ratingModal, onClick: (event) => {
|
|
40247
41940
|
if (event.target === event.currentTarget) {
|
|
40248
41941
|
onClose();
|
|
40249
41942
|
}
|
|
40250
|
-
}, children: jsxs("div", { className: classNames(styles$5.ratingModalContent, styles$5.toolCallModal), children: [jsx("button", { type: "button", className: styles$5.modalCloseButton, onClick: onClose, "aria-label": "Close
|
|
41943
|
+
}, children: jsxs("div", { ref: modalDialogRef, className: classNames(styles$5.ratingModalContent, styles$5.toolCallModal), role: "dialog", "aria-modal": "true", "aria-label": "Tool call details", tabIndex: -1, children: [jsx("button", { type: "button", className: styles$5.modalCloseButton, onClick: onClose, "aria-label": "Close tool call details", children: jsx(CloseIcon, {}) }), modalContent, jsxs("div", { className: styles$5.toolCallModeFooter, children: [viewMode === 'advanced' && (jsxs(Fragment, { children: [jsx("button", { type: "button", className: styles$5.toolCallModeButton, onClick: () => {
|
|
40251
41944
|
void handleAdvancedToolCallReportExport('clipboard');
|
|
40252
41945
|
}, children: "Copy" }), jsx("button", { type: "button", className: styles$5.toolCallModeButton, onClick: () => {
|
|
40253
41946
|
void handleAdvancedToolCallReportExport('file');
|