🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@robinpath/salesforce

Package Overview
Dependencies
Maintainers
4
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@robinpath/salesforce - npm Package Compare versions

Comparing version
0.1.0
to
0.1.1
+15
-3
package.json
{
"name": "@robinpath/salesforce",
"version": "0.1.0",
"version": "0.1.1",
"publishConfig": {

@@ -23,8 +23,20 @@ "access": "public"

"peerDependencies": {
"@wiredwp/robinpath": ">=0.20.0"
"@robinpath/core": ">=0.20.0"
},
"devDependencies": {
"@wiredwp/robinpath": "^0.30.1",
"@robinpath/core": "^0.30.1",
"typescript": "^5.6.0"
},
"description": "Salesforce module for RobinPath.",
"keywords": [
"salesforce",
"crm"
],
"license": "MIT",
"robinpath": {
"category": "crm",
"type": "integration",
"auth": "api-key",
"functionCount": 25
}
}
-6
import type { ModuleAdapter } from "@wiredwp/robinpath";
declare const SalesforceModule: ModuleAdapter;
export default SalesforceModule;
export { SalesforceModule };
export { SalesforceFunctions, SalesforceFunctionMetadata, SalesforceModuleMetadata } from "./salesforce.js";
//# sourceMappingURL=index.d.ts.map
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAGxD,QAAA,MAAM,gBAAgB,EAAE,aAMvB,CAAC;AAEF,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC"}
import { SalesforceFunctions, SalesforceFunctionMetadata, SalesforceModuleMetadata } from "./salesforce.js";
const SalesforceModule = {
name: "salesforce",
functions: SalesforceFunctions,
functionMetadata: SalesforceFunctionMetadata,
moduleMetadata: SalesforceModuleMetadata,
global: false,
}; // as ModuleAdapter
export default SalesforceModule;
export { SalesforceModule };
export { SalesforceFunctions, SalesforceFunctionMetadata, SalesforceModuleMetadata } from "./salesforce.js";
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE5G,MAAM,gBAAgB,GAAkB;IACtC,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,mBAAmB;IAC9B,gBAAgB,EAAE,0BAAiC;IACnD,cAAc,EAAE,wBAA+B;IAC/C,MAAM,EAAE,KAAK;CACd,CAAC,CAAC,mBAAmB;AAEtB,eAAe,gBAAgB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC"}
import type { BuiltinHandler } from "@wiredwp/robinpath";
export declare const SalesforceFunctions: Record<string, BuiltinHandler>;
export declare const SalesforceFunctionMetadata: {
setCredentials: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
query: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
getRecord: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
createRecord: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
updateRecord: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
deleteRecord: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
upsertRecord: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
describeObject: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
listObjects: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
search: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
createLead: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
createContact: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
createOpportunity: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
createAccount: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
createTask: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
createCase: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
getReport: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
listReports: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
bulkQuery: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
getUser: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
listUsers: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
getOrganization: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
runApex: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
getRecentRecords: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
searchRecords: {
description: string;
parameters: {
name: string;
dataType: string;
description: string;
formInputType: string;
required: boolean;
}[];
returnType: string;
returnDescription: string;
};
};
export declare const SalesforceModuleMetadata: {
description: string;
methods: string[];
category: string;
};
//# sourceMappingURL=salesforce.d.ts.map
{"version":3,"file":"salesforce.d.ts","sourceRoot":"","sources":["../src/salesforce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,oBAAoB,CAAC;AAiKlG,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAE9D,CAAC;AAEF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BtC,CAAC;AAEF,eAAO,MAAM,wBAAwB;;;;CAIpC,CAAC"}
const config = new Map();
function getConfig(key) {
const val = config.get(key);
if (!val)
throw new Error(`Salesforce: "${key}" not configured. Call salesforce.setCredentials first.`);
return val;
}
async function apiCall(path, method = "GET", body) {
const res = await fetch(`${getConfig("instanceUrl")}/services/data/v59.0${path}`, {
method,
headers: { "Authorization": `Bearer ${getConfig("accessToken")}`, "Content-Type": "application/json", Accept: "application/json" },
body: body ? JSON.stringify(body) : undefined,
});
if (!res.ok) {
const t = await res.text();
throw new Error(`Salesforce API error (${res.status}): ${t}`);
}
const ct = res.headers.get("content-type");
return ct && ct.includes("application/json") ? res.json() : res.text();
}
const setCredentials = (args) => {
const instanceUrl = args[0];
const accessToken = args[1];
if (!instanceUrl || !accessToken)
throw new Error("salesforce.setCredentials requires instanceUrl, accessToken.");
config.set("instanceUrl", instanceUrl);
config.set("accessToken", accessToken);
return "Salesforce credentials configured.";
};
const query = async (args) => {
const id = args[0];
return apiCall(id ? `/query/${id}` : `/query`);
};
const getRecord = async (args) => {
const id = args[0];
return apiCall(id ? `/getRecord/${id}` : `/getRecord`);
};
const createRecord = async (args) => {
const id = args[0];
const data = args[1] ?? args[0];
return apiCall(`/createRecord`, "POST", typeof data === "object" ? data : { value: data });
};
const updateRecord = async (args) => {
const id = args[0];
if (!id)
throw new Error("salesforce.updateRecord requires an ID.");
const data = args[1] ?? {};
return apiCall(`/updateRecord/${id}`, "PUT", typeof data === "object" ? data : { value: data });
};
const deleteRecord = async (args) => {
const id = args[0];
if (!id)
throw new Error("salesforce.deleteRecord requires an ID.");
return apiCall(`/deleteRecord/${id}`, "DELETE");
};
const upsertRecord = async (args) => {
const id = args[0];
const data = args[1] ?? args[0];
return apiCall(`/upsertRecord`, "POST", typeof data === "object" ? data : { value: data });
};
const describeObject = async (args) => {
const id = args[0];
return apiCall(id ? `/describeObject/${id}` : `/describeObject`);
};
const listObjects = async (args) => {
const id = args[0];
return apiCall(id ? `/listObjects/${id}` : `/listObjects`);
};
const search = async (args) => {
const id = args[0];
return apiCall(id ? `/search/${id}` : `/search`);
};
const createLead = async (args) => {
const id = args[0];
const data = args[1] ?? args[0];
return apiCall(`/createLead`, "POST", typeof data === "object" ? data : { value: data });
};
const createContact = async (args) => {
const id = args[0];
const data = args[1] ?? args[0];
return apiCall(`/createContact`, "POST", typeof data === "object" ? data : { value: data });
};
const createOpportunity = async (args) => {
const id = args[0];
const data = args[1] ?? args[0];
return apiCall(`/createOpportunity`, "POST", typeof data === "object" ? data : { value: data });
};
const createAccount = async (args) => {
const id = args[0];
const data = args[1] ?? args[0];
return apiCall(`/createAccount`, "POST", typeof data === "object" ? data : { value: data });
};
const createTask = async (args) => {
const id = args[0];
const data = args[1] ?? args[0];
return apiCall(`/createTask`, "POST", typeof data === "object" ? data : { value: data });
};
const createCase = async (args) => {
const id = args[0];
const data = args[1] ?? args[0];
return apiCall(`/createCase`, "POST", typeof data === "object" ? data : { value: data });
};
const getReport = async (args) => {
const id = args[0];
return apiCall(id ? `/getReport/${id}` : `/getReport`);
};
const listReports = async (args) => {
const id = args[0];
return apiCall(id ? `/listReports/${id}` : `/listReports`);
};
const bulkQuery = async (args) => {
const id = args[0];
return apiCall(`/bulkQuery${id ? `/${id}` : ""}`);
};
const getUser = async (args) => {
const id = args[0];
return apiCall(id ? `/getUser/${id}` : `/getUser`);
};
const listUsers = async (args) => {
const id = args[0];
return apiCall(id ? `/listUsers/${id}` : `/listUsers`);
};
const getOrganization = async (args) => {
const id = args[0];
return apiCall(id ? `/getOrganization/${id}` : `/getOrganization`);
};
const runApex = async (args) => {
const id = args[0];
return apiCall(id ? `/runApex/${id}` : `/runApex`);
};
const getRecentRecords = async (args) => {
const id = args[0];
return apiCall(id ? `/getRecentRecords/${id}` : `/getRecentRecords`);
};
const searchRecords = async (args) => {
const id = args[0];
return apiCall(id ? `/searchRecords/${id}` : `/searchRecords`);
};
export const SalesforceFunctions = {
setCredentials, query, getRecord, createRecord, updateRecord, deleteRecord, upsertRecord, describeObject, listObjects, search, createLead, createContact, createOpportunity, createAccount, createTask, createCase, getReport, listReports, bulkQuery, getUser, listUsers, getOrganization, runApex, getRecentRecords, searchRecords,
};
export const SalesforceFunctionMetadata = {
setCredentials: { description: "Configure salesforce credentials.", parameters: [{ name: "instanceUrl", dataType: "string", description: "instanceUrl", formInputType: "text", required: true }, { name: "accessToken", dataType: "string", description: "accessToken", formInputType: "text", required: true }], returnType: "object", returnDescription: "API response." },
query: { description: "query", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
getRecord: { description: "getRecord", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
createRecord: { description: "createRecord", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
updateRecord: { description: "updateRecord", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
deleteRecord: { description: "deleteRecord", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
upsertRecord: { description: "upsertRecord", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
describeObject: { description: "describeObject", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
listObjects: { description: "listObjects", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
search: { description: "search", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
createLead: { description: "createLead", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
createContact: { description: "createContact", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
createOpportunity: { description: "createOpportunity", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
createAccount: { description: "createAccount", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
createTask: { description: "createTask", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
createCase: { description: "createCase", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
getReport: { description: "getReport", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
listReports: { description: "listReports", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
bulkQuery: { description: "bulkQuery", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
getUser: { description: "getUser", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
listUsers: { description: "listUsers", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
getOrganization: { description: "getOrganization", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
runApex: { description: "runApex", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
getRecentRecords: { description: "getRecentRecords", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
searchRecords: { description: "searchRecords", parameters: [{ name: "input", dataType: "string", description: "Input parameter", formInputType: "text", required: false }], returnType: "object", returnDescription: "API response." },
};
export const SalesforceModuleMetadata = {
description: "Salesforce CRM — leads, contacts, opportunities, accounts, reports, and SOQL queries.",
methods: Object.keys(SalesforceFunctions),
category: "crm",
};
//# sourceMappingURL=salesforce.js.map
{"version":3,"file":"salesforce.js","sourceRoot":"","sources":["../src/salesforce.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;AAEzC,SAAS,SAAS,CAAC,GAAW;IAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5B,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,GAAG,yDAAyD,CAAC,CAAC;IACxG,OAAO,GAAG,CAAC;AACb,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAY,EAAE,MAAM,GAAG,KAAK,EAAE,IAAc;IACjE,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,SAAS,CAAC,aAAa,CAAC,uBAAuB,IAAI,EAAE,EAAE;QAChF,MAAM;QACN,OAAO,EAAE,EAAE,eAAe,EAAE,UAAU,SAAS,CAAC,aAAa,CAAC,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;QAClI,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;KAC9C,CAAC,CAAC;IACH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QAAC,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;QAAC,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,CAAC,MAAM,MAAM,CAAC,EAAE,CAAC,CAAC;IAAC,CAAC;IAC3G,MAAM,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC3C,OAAO,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;AACzE,CAAC;AAED,MAAM,cAAc,GAAmB,CAAC,IAAI,EAAE,EAAE;IAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,CAAC,CAAC,CAAW,CAAC;IACtC,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW;QAAE,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;IAClH,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACvC,OAAO,oCAAoC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,KAAK,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC3C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACpE,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,OAAO,OAAO,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClG,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;IACpE,OAAO,OAAO,CAAC,iBAAiB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC;AAEF,MAAM,YAAY,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAClD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,eAAe,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7F,CAAC,CAAC;AAEF,MAAM,cAAc,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACpD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,MAAM,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;AACnD,CAAC,CAAC;AAEF,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACvD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,oBAAoB,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAClG,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,gBAAgB,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC9F,CAAC,CAAC;AAEF,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,UAAU,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IAChC,OAAO,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;AAC3F,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,WAAW,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACjD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;AAC7D,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC;AAEF,MAAM,OAAO,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,SAAS,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC/C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;AACzD,CAAC,CAAC;AAEF,MAAM,eAAe,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACrD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC;AACrE,CAAC,CAAC;AAEF,MAAM,OAAO,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IAC7C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AACrD,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACtD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;AACvE,CAAC,CAAC;AAEF,MAAM,aAAa,GAAmB,KAAK,EAAE,IAAI,EAAE,EAAE;IACnD,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAuB,CAAC;IACzC,OAAO,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;AACjE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAmC;IACjE,cAAc,EAAE,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,gBAAgB,EAAE,aAAa;CACrU,CAAC;AAEF,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,cAAc,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC5W,KAAK,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACtN,SAAS,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC9N,YAAY,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACpO,YAAY,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACpO,YAAY,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACpO,YAAY,EAAE,EAAE,WAAW,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACpO,cAAc,EAAE,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACxO,WAAW,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAClO,MAAM,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACxN,UAAU,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAChO,aAAa,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACtO,iBAAiB,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC9O,aAAa,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IACtO,UAAU,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAChO,UAAU,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAChO,SAAS,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC9N,WAAW,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAClO,SAAS,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC9N,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC1N,SAAS,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC9N,eAAe,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC1O,OAAO,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC1N,gBAAgB,EAAE,EAAE,WAAW,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;IAC5O,aAAa,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,iBAAiB,EAAE,eAAe,EAAE;CACvO,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,WAAW,EAAE,uFAAuF;IACpG,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC;IACzC,QAAQ,EAAE,KAAK;CAChB,CAAC"}