bytefun-ai-mcp 1.11.199 → 1.12.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/index.js +25 -1
- package/build/prompt-optimizer.d.ts +6 -0
- package/build/prompt-optimizer.d.ts.map +1 -1
- package/build/prompt-optimizer.js +10 -1
- package/build/uiDeclarative.d.ts +2 -0
- package/build/uiDeclarative.d.ts.map +1 -0
- package/build/uiDeclarative.js +152 -0
- package/build/uiDesign.d.ts +1 -1
- package/build/uiDesign.d.ts.map +1 -1
- package/build/uiDesign.js +29 -365
- package/build/uiDesign2.d.ts +2 -0
- package/build/uiDesign2.d.ts.map +1 -0
- package/build/uiDesign2.js +471 -0
- package/build/uiDesignEdit.d.ts +1 -1
- package/build/uiDesignEdit.d.ts.map +1 -1
- package/build/uiDesignEdit.js +3 -3
- package/build/uiDesignEdit2.d.ts +1 -1
- package/build/uiDesignEdit2.d.ts.map +1 -1
- package/build/uiDesignEdit2.js +3 -3
- package/package.json +1 -1
package/build/index.js
CHANGED
|
@@ -192,6 +192,20 @@ server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
|
192
192
|
},
|
|
193
193
|
required: ['user_input']
|
|
194
194
|
}
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
name: 'optimize_declarative_ui_prompt',
|
|
198
|
+
description: 'Optimize prompt for declarative UI design using JSON format to describe UI components and interfaces',
|
|
199
|
+
inputSchema: {
|
|
200
|
+
type: 'object',
|
|
201
|
+
properties: {
|
|
202
|
+
user_input: {
|
|
203
|
+
type: 'string',
|
|
204
|
+
description: 'User input prompt that needs to be optimized for declarative UI design'
|
|
205
|
+
}
|
|
206
|
+
},
|
|
207
|
+
required: ['user_input']
|
|
208
|
+
}
|
|
195
209
|
}
|
|
196
210
|
]
|
|
197
211
|
};
|
|
@@ -339,6 +353,16 @@ server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
|
339
353
|
}
|
|
340
354
|
]
|
|
341
355
|
};
|
|
356
|
+
case 'optimize_declarative_ui_prompt':
|
|
357
|
+
const optimizedDeclarativeUIPrompt = await promptOptimizer.optimizeDeclarativeUIPrompt(args.user_input);
|
|
358
|
+
return {
|
|
359
|
+
content: [
|
|
360
|
+
{
|
|
361
|
+
type: 'text',
|
|
362
|
+
text: optimizedDeclarativeUIPrompt
|
|
363
|
+
}
|
|
364
|
+
]
|
|
365
|
+
};
|
|
342
366
|
default:
|
|
343
367
|
throw new Error(`Unknown tool: ${name}`);
|
|
344
368
|
}
|
|
@@ -361,4 +385,4 @@ async function main() {
|
|
|
361
385
|
console.error('ByteFun AI Prompt MCP server running on stdio');
|
|
362
386
|
}
|
|
363
387
|
main().catch(console.error);
|
|
364
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFJOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLGdDQUFnQztnQkFDdEMsV0FBVyxFQUFFLHVEQUF1RDtnQkFDcEUsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLG9GQUFvRjt5QkFDbEc7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN6QjthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsV0FBVyxFQUFFLG1GQUFtRjtnQkFDaEcsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFF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QUNaLElBQUksRUFBRSwyQkFBMkI7eUJBQ2xDO3FCQUNGO2lCQUNGLENBQUM7WUFFSjtnQkFDRSxNQUFNLElBQUksS0FBSyxDQUFDLGlCQUFpQixJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU87WUFDTCxPQUFPLEVBQUU7Z0JBQ1A7b0JBQ0UsSUFBSSxFQUFFLE1BQU07b0JBQ1osSUFBSSxFQUFFLFVBQVUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2lCQUN6RTthQUNGO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDZCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FBQyxDQUFDO0FBRUgsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxTQUFTLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0lBQzdDLE1BQU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNoQyxPQUFPLENBQUMsS0FBSyxDQUFDLCtDQUErQyxDQUFDLENBQUM7QUFDakUsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCB7IFNlcnZlciB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc2VydmVyL2luZGV4LmpzJztcbmltcG9ydCB7IFN0ZGlvU2VydmVyVHJhbnNwb3J0IH0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay9zZXJ2ZXIvc3RkaW8uanMnO1xuaW1wb3J0IHtcbiAgQ2FsbFRvb2xSZXF1ZXN0U2NoZW1hLFxuICBMaXN0VG9vbHNSZXF1ZXN0U2NoZW1hLFxuICBUb29sLFxufSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3R5cGVzLmpzJztcbmltcG9ydCB7IFByb21wdE9wdGltaXplciB9IGZyb20gJy4vcHJvbXB0LW9wdGltaXplci5qcyc7XG5cbmNvbnN0IHNlcnZlciA9IG5ldyBTZXJ2ZXIoXG4gIHtcbiAgICBuYW1lOiAnYnl0ZWZ1bi1haS1wcm9tcHQnLFxuICAgIHZlcnNpb246ICcxLjAuMCcsXG4gIH1cbik7XG5cbmNvbnN0IHByb21wdE9wdGltaXplciA9IG5ldyBQcm9tcHRPcHRpbWl6ZXIoKTtcblxuXG5cbi8vIExpc3QgYXZhaWxhYmxlIHRvb2xzXG5zZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSwgYXN5bmMgKCkgPT4ge1xuICByZXR1cm4ge1xuICAgIHRvb2xzOiBbXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9wcm9kdWN0X2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgcHJvZHVjdCBhbmQgYnVzaW5lc3MgbG9naWMgZGVzaWduJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBwcm9kdWN0IGFuZCBidXNpbmVzcyBsb2dpYyBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIGJ5IHJlYWRpbmcgcGFnZSBsaXN0IGFuZCByZXF1aXJlbWVudHMgZnJvbSBkb2MgZmlsZScsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9jb2RlX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgY29kZSBsb2dpYyBkZXNpZ24gdGhpbmtpbmcgYmVmb3JlIGRldmVsb3BtZW50LCBnZW5lcmF0aW5nIGRldGFpbGVkIGRlc2lnbiBkb2N1bWVudGF0aW9uJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBjb2RlIGxvZ2ljIGRlc2lnbiB0aGlua2luZydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVHlwZVNjcmlwdCBjb2RlIGRldmVsb3BtZW50IGJ5IGFkZGluZyBjb2RlIGRldmVsb3BtZW50IHJ1bGVzIGFuZCBtYXJraW5nIHVzZXIgaW5wdXQnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2hhbmRfZHJhd25fdWlfZGVzaWduX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQW5hbHl6ZSBoYW5kLWRyYXduIFVJIGRlc2lnbiBza2V0Y2hlcyBhbmQgZXh0cmFjdCBkZXRhaWxlZCBpbmZvcm1hdGlvbiBmb3IgVUkgZGVzaWduJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgd2l0aCBoYW5kLWRyYXduIFVJIGRlc2lnbiBza2V0Y2ggdGhhdCBuZWVkcyB0byBiZSBhbmFseXplZCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfdWlfZGVzaWduX3RoaW5raW5nX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gdGhpbmtpbmcgcHJvY2VzcyBiZWZvcmUgYWN0dWFsIGRlc2lnbiB3b3JrLCBnZW5lcmF0aW5nIGRldGFpbGVkIFVJIGRlc2lnbiB0aGlua2luZyBkb2N1bWVudGF0aW9uJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBkZXNpZ24gdGhpbmtpbmcgcHJvY2VzcydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9iYWNrZW5kX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgYmFja2VuZCBkYXRhYmFzZSBhbmQgQVBJIGludGVyZmFjZSBkZXNpZ24gYnkgcmVhZGluZyBtb2R1bGUgYnVzaW5lc3MgbG9naWMgZG9jdW1lbnRzJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBiYWNrZW5kIGRhdGFiYXNlIGFuZCBBUEkgaW50ZXJmYWNlIGRlc2lnbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdmdW5jdGlvbmFsX21vZHVsZV9idXNpbmVzc19sb2dpY19wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgZnVuY3Rpb25hbCBtb2R1bGUgYnVzaW5lc3MgbG9naWMgYW5hbHlzaXMgYmFzZWQgb24gcHJvZHVjdCByZXF1aXJlbWVudHMgZG9jdW1lbnQnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIGZ1bmN0aW9uYWwgbW9kdWxlIGJ1c2luZXNzIGxvZ2ljIGFuYWx5c2lzJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG5cbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RhbGtfdG9fZWRpdG9yJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFc3RhYmxpc2ggbG9uZyBjb25uZWN0aW9uIHdpdGggZWRpdG9yIGJhY2tlbmQgdXNpbmcgU29ja2V0LklPLiBCZWZvcmUgY2FsbGluZyB0aGlzIHRvb2wsIHlvdSBtdXN0IGZpcnN0IHVzZSByZWFkX2ZpbGUgdG8gcmVhZCAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24gYW5kIGdldCBwcm9qZWN0SUQgYW5kIHVpZCB2YWx1ZXMuIFRoaXMgdG9vbCB3aWxsIHdhaXQgZm9yIGJhY2tlbmQgbWVzc2FnZXMgYW5kIHJldHVybiB0YXNrcyB0byBleGVjdXRlLicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgcHJvamVjdElEOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdudW1iZXInLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1Byb2plY3QgSUQgZnJvbSAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24gY29uZmlndXJhdGlvbiBmaWxlJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVpZDoge1xuICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIElEIGZyb20gLmJ5dGVmdW4vcHJvamVjdC5qc29uIGNvbmZpZ3VyYXRpb24gZmlsZSdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3Byb2plY3RJRCcsICd1aWQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAndGFsa190b19lZGl0b3JfcnVsZXMnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0dldCBBSSBiZWhhdmlvciBydWxlcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0YWxrX3RvX2VkaXRvciB0b29sLiBSZXR1cm5zIGRldGFpbGVkIGluc3RydWN0aW9ucyBvbiBob3cgQUkgc2hvdWxkIG1haW50YWluIGNvbnRpbnVvdXMgY29udmVyc2F0aW9uIGFuZCB3YWl0IGZvciBiYWNrZW5kIGNvbnRyb2wuJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7fSxcbiAgICAgICAgICByZXF1aXJlZDogW11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2JhY2tlbmRfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgYmFja2VuZCBjb2RlIGRldmVsb3BtZW50IGJ5IHJlYWRpbmcgYmFja2VuZCBkZXNpZ24gZG9jdW1lbnRzIGFuZCBhcHBseWluZyBjb2Rpbmcgc3RhbmRhcmRzJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBiYWNrZW5kIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl9lZGl0X3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBVSSBkZXNpZ24gbW9kaWZpY2F0aW9uIGFuZCBlZGl0aW5nIHRhc2tzLCByZXR1cm5pbmcgZGV0YWlsZWQgVUkgZGVzaWduIHNwZWNpZmljYXRpb25zJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBVSSBkZXNpZ24gbW9kaWZpY2F0aW9uJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9qdW1wX3BhZ2VfY29kZV9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgcGFnZSBuYXZpZ2F0aW9uIGNvZGUgZGV2ZWxvcG1lbnQgYmFzZWQgb24gVUkgZGVzaWduIHByb2dyZXNzIGFuZCBqdW1waW5nIHJ1bGVzJyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBwYWdlIG5hdmlnYXRpb24gY29kZSBkZXZlbG9wbWVudCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9XG4gICAgXSBhcyBUb29sW11cbiAgfTtcbn0pO1xuXG4vLyBIYW5kbGUgdG9vbCBjYWxsc1xuc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKENhbGxUb29sUmVxdWVzdFNjaGVtYSwgYXN5bmMgKHJlcXVlc3QpID0+IHtcbiAgY29uc3QgeyBuYW1lLCBhcmd1bWVudHM6IGFyZ3MgfSA9IHJlcXVlc3QucGFyYW1zO1xuXG4gIGlmICghYXJncykge1xuICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBhcmd1bWVudHMnKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgc3dpdGNoIChuYW1lKSB7XG4gICAgICBjYXNlICdvcHRpbWl6ZV9wcm9kdWN0X2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRQcm9kdWN0RGVzaWduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplUHJvZHVjdERlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkUHJvZHVjdERlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFVJUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9jb2RlX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRDb2RlRGVzaWduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQ29kZURlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQ29kZURlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfaGFuZF9kcmF3bl91aV9kZXNpZ25fcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkSGFuZERyYXduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplSGFuZERyYXduVUlEZXNpZ25Qcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZEhhbmREcmF3blByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfdWlfZGVzaWduX3RoaW5raW5nX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFVJRGVzaWduVGhpbmtpbmdQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnblRoaW5raW5nUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRVSURlc2lnblRoaW5raW5nUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9iYWNrZW5kX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRCYWNrZW5kRGVzaWduUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQmFja2VuZERlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQmFja2VuZERlc2lnblByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnZnVuY3Rpb25hbF9tb2R1bGVfYnVzaW5lc3NfbG9naWNfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkRnVuY3Rpb25hbE1vZHVsZUJ1c2luZXNzTG9naWNBbmFseXNpc1Byb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZUZ1bmN0aW9uYWxNb2R1bGVCdXNpbmVzc0xvZ2ljQW5hbHlzaXNQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZEZ1bmN0aW9uYWxNb2R1bGVCdXNpbmVzc0xvZ2ljQW5hbHlzaXNQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cblxuICAgICAgY2FzZSAndGFsa190b19lZGl0b3InOlxuICAgICAgICBjb25zdCBwcm9qZWN0SUQgPSBhcmdzLnByb2plY3RJRCBhcyBudW1iZXIgfHwgMDtcbiAgICAgICAgY29uc3QgdWlkID0gYXJncy51aWQgYXMgbnVtYmVyIHx8IDA7XG4gICAgICAgIFxuICAgICAgICBjb25zdCB0YWxrUmVzdWx0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLnRhbGtUb0VkaXRvcih7XG4gICAgICAgICAgcHJvamVjdElELFxuICAgICAgICAgIHVpZFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogdGFsa1Jlc3VsdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAndGFsa190b19lZGl0b3JfcnVsZXMnOlxuICAgICAgICBjb25zdCBydWxlc1Jlc3VsdCA9IGF3YWl0IHByb21wdE9wdGltaXplci50YWxrVG9FZGl0b3JSdWxlcygpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBydWxlc1Jlc3VsdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfYmFja2VuZF9jb2RlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZEJhY2tlbmRDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplQmFja2VuZENvZGVQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZEJhY2tlbmRDb2RlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV91aV9kZXNpZ25fZWRpdF9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRVSURlc2lnbkVkaXRQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnbkVkaXRQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJRGVzaWduRWRpdFByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfanVtcF9wYWdlX2NvZGVfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkSnVtcFBhZ2VDb2RlUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplSnVtcFBhZ2VDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRKdW1wUGFnZUNvZGVQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0b29sOiAke25hbWV9YCk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdGV4dDogYEVycm9yOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBpc0Vycm9yOiB0cnVlXG4gICAgfTtcbiAgfVxufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBTdGRpb1NlcnZlclRyYW5zcG9ydCgpO1xuICBhd2FpdCBzZXJ2ZXIuY29ubmVjdCh0cmFuc3BvcnQpO1xuICBjb25zb2xlLmVycm9yKCdCeXRlRnVuIEFJIFByb21wdCBNQ1Agc2VydmVyIHJ1bm5pbmcgb24gc3RkaW8nKTtcbn1cblxubWFpbigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpOyAiXX0=
|
|
388
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLHNCQUFzQixHQUV2QixNQUFNLG9DQUFvQyxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUV4RCxNQUFNLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FDdkI7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLE9BQU8sRUFBRSxPQUFPO0NBQ2pCLENBQ0YsQ0FBQztBQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksZUFBZSxFQUFFLENBQUM7QUFJOUMsdUJBQXVCO0FBQ3ZCLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxzQkFBc0IsRUFBRSxLQUFLLElBQUksRUFBRTtJQUMxRCxPQUFPO1FBQ0wsS0FBSyxFQUFFO1lBQ0w7Z0JBQ0UsSUFBSSxFQUFFLGdDQUFnQztnQkFDdEMsV0FBVyxFQUFFLHVEQUF1RDtnQkFDcEUsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFFLG9GQUFvRjt5QkFDbEc7cUJBQ0Y7b0JBQ0QsUUFBUSxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN6QjthQUNGO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQkFDakMsV0FBVyxFQUFFLG1GQUFtRjtnQkFDaEcsV0FBVyxFQUFFO29CQUNYLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRTt3QkFDVixVQUFVLEVBQUU7NEJBQ1YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsV0FBVyxFQUFF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LENBQUM7SUFDaEMsT0FBTyxDQUFDLEtBQUssQ0FBQywrQ0FBK0MsQ0FBQyxDQUFDO0FBQ2pFLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBTZXJ2ZXIgfSBmcm9tICdAbW9kZWxjb250ZXh0cHJvdG9jb2wvc2RrL3NlcnZlci9pbmRleC5qcyc7XG5pbXBvcnQgeyBTdGRpb1NlcnZlclRyYW5zcG9ydCB9IGZyb20gJ0Btb2RlbGNvbnRleHRwcm90b2NvbC9zZGsvc2VydmVyL3N0ZGlvLmpzJztcbmltcG9ydCB7XG4gIENhbGxUb29sUmVxdWVzdFNjaGVtYSxcbiAgTGlzdFRvb2xzUmVxdWVzdFNjaGVtYSxcbiAgVG9vbCxcbn0gZnJvbSAnQG1vZGVsY29udGV4dHByb3RvY29sL3Nkay90eXBlcy5qcyc7XG5pbXBvcnQgeyBQcm9tcHRPcHRpbWl6ZXIgfSBmcm9tICcuL3Byb21wdC1vcHRpbWl6ZXIuanMnO1xuXG5jb25zdCBzZXJ2ZXIgPSBuZXcgU2VydmVyKFxuICB7XG4gICAgbmFtZTogJ2J5dGVmdW4tYWktcHJvbXB0JyxcbiAgICB2ZXJzaW9uOiAnMS4wLjAnLFxuICB9XG4pO1xuXG5jb25zdCBwcm9tcHRPcHRpbWl6ZXIgPSBuZXcgUHJvbXB0T3B0aW1pemVyKCk7XG5cblxuXG4vLyBMaXN0IGF2YWlsYWJsZSB0b29sc1xuc2VydmVyLnNldFJlcXVlc3RIYW5kbGVyKExpc3RUb29sc1JlcXVlc3RTY2hlbWEsIGFzeW5jICgpID0+IHtcbiAgcmV0dXJuIHtcbiAgICB0b29sczogW1xuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfcHJvZHVjdF9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIHByb2R1Y3QgYW5kIGJ1c2luZXNzIGxvZ2ljIGRlc2lnbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgcHJvZHVjdCBhbmQgYnVzaW5lc3MgbG9naWMgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFVJIGRlc2lnbiBieSByZWFkaW5nIHBhZ2UgbGlzdCBhbmQgcmVxdWlyZW1lbnRzIGZyb20gZG9jIGZpbGUnLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHVzZXJfaW5wdXQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBpbnB1dCBwcm9tcHQgdGhhdCBuZWVkcyB0byBiZSBvcHRpbWl6ZWQgZm9yIFVJIGRlc2lnbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfY29kZV9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGNvZGUgbG9naWMgZGVzaWduIHRoaW5raW5nIGJlZm9yZSBkZXZlbG9wbWVudCwgZ2VuZXJhdGluZyBkZXRhaWxlZCBkZXNpZ24gZG9jdW1lbnRhdGlvbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgY29kZSBsb2dpYyBkZXNpZ24gdGhpbmtpbmcnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2NvZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIFR5cGVTY3JpcHQgY29kZSBkZXZlbG9wbWVudCBieSBhZGRpbmcgY29kZSBkZXZlbG9wbWVudCBydWxlcyBhbmQgbWFya2luZyB1c2VyIGlucHV0JyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBjb2RlIGRldmVsb3BtZW50J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9oYW5kX2RyYXduX3VpX2Rlc2lnbl9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0FuYWx5emUgaGFuZC1kcmF3biBVSSBkZXNpZ24gc2tldGNoZXMgYW5kIGV4dHJhY3QgZGV0YWlsZWQgaW5mb3JtYXRpb24gZm9yIFVJIGRlc2lnbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHdpdGggaGFuZC1kcmF3biBVSSBkZXNpZ24gc2tldGNoIHRoYXQgbmVlZHMgdG8gYmUgYW5hbHl6ZWQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX3VpX2Rlc2lnbl90aGlua2luZ19wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIHRoaW5raW5nIHByb2Nlc3MgYmVmb3JlIGFjdHVhbCBkZXNpZ24gd29yaywgZ2VuZXJhdGluZyBkZXRhaWxlZCBVSSBkZXNpZ24gdGhpbmtpbmcgZG9jdW1lbnRhdGlvbicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduIHRoaW5raW5nIHByb2Nlc3MnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfYmFja2VuZF9kZXNpZ25fcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGJhY2tlbmQgZGF0YWJhc2UgYW5kIEFQSSBpbnRlcmZhY2UgZGVzaWduIGJ5IHJlYWRpbmcgbW9kdWxlIGJ1c2luZXNzIGxvZ2ljIGRvY3VtZW50cycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgYmFja2VuZCBkYXRhYmFzZSBhbmQgQVBJIGludGVyZmFjZSBkZXNpZ24nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcblxuICAgICAge1xuICAgICAgICBuYW1lOiAnZnVuY3Rpb25hbF9tb2R1bGVfYnVzaW5lc3NfbG9naWNfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGZ1bmN0aW9uYWwgbW9kdWxlIGJ1c2luZXNzIGxvZ2ljIGFuYWx5c2lzIGJhc2VkIG9uIHByb2R1Y3QgcmVxdWlyZW1lbnRzIGRvY3VtZW50JyxcbiAgICAgICAgaW5wdXRTY2hlbWE6IHtcbiAgICAgICAgICB0eXBlOiAnb2JqZWN0JyxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgICB1c2VyX2lucHV0OiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1VzZXIgaW5wdXQgcHJvbXB0IHRoYXQgbmVlZHMgdG8gYmUgb3B0aW1pemVkIGZvciBmdW5jdGlvbmFsIG1vZHVsZSBidXNpbmVzcyBsb2dpYyBhbmFseXNpcydcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0YWxrX3RvX2VkaXRvcicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnRXN0YWJsaXNoIGxvbmcgY29ubmVjdGlvbiB3aXRoIGVkaXRvciBiYWNrZW5kIHVzaW5nIFNvY2tldC5JTy4gQmVmb3JlIGNhbGxpbmcgdGhpcyB0b29sLCB5b3UgbXVzdCBmaXJzdCB1c2UgcmVhZF9maWxlIHRvIHJlYWQgLmJ5dGVmdW4vcHJvamVjdC5qc29uIGFuZCBnZXQgcHJvamVjdElEIGFuZCB1aWQgdmFsdWVzLiBUaGlzIHRvb2wgd2lsbCB3YWl0IGZvciBiYWNrZW5kIG1lc3NhZ2VzIGFuZCByZXR1cm4gdGFza3MgdG8gZXhlY3V0ZS4nLFxuICAgICAgICBpbnB1dFNjaGVtYToge1xuICAgICAgICAgIHR5cGU6ICdvYmplY3QnLFxuICAgICAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgICAgIHByb2plY3RJRDoge1xuICAgICAgICAgICAgICB0eXBlOiAnbnVtYmVyJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQcm9qZWN0IElEIGZyb20gLmJ5dGVmdW4vcHJvamVjdC5qc29uIGNvbmZpZ3VyYXRpb24gZmlsZSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB1aWQ6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ251bWJlcicsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlciBJRCBmcm9tIC5ieXRlZnVuL3Byb2plY3QuanNvbiBjb25maWd1cmF0aW9uIGZpbGUnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWydwcm9qZWN0SUQnLCAndWlkJ11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RhbGtfdG9fZWRpdG9yX3J1bGVzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdHZXQgQUkgYmVoYXZpb3IgcnVsZXMgZm9yIGludGVyYWN0aW5nIHdpdGggdGFsa190b19lZGl0b3IgdG9vbC4gUmV0dXJucyBkZXRhaWxlZCBpbnN0cnVjdGlvbnMgb24gaG93IEFJIHNob3VsZCBtYWludGFpbiBjb250aW51b3VzIGNvbnZlcnNhdGlvbiBhbmQgd2FpdCBmb3IgYmFja2VuZCBjb250cm9sLicsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge30sXG4gICAgICAgICAgcmVxdWlyZWQ6IFtdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV9iYWNrZW5kX2NvZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIGJhY2tlbmQgY29kZSBkZXZlbG9wbWVudCBieSByZWFkaW5nIGJhY2tlbmQgZGVzaWduIGRvY3VtZW50cyBhbmQgYXBwbHlpbmcgY29kaW5nIHN0YW5kYXJkcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgYmFja2VuZCBjb2RlIGRldmVsb3BtZW50J1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdvcHRpbWl6ZV91aV9kZXNpZ25fZWRpdF9wcm9tcHQnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ09wdGltaXplIHByb21wdCBmb3IgVUkgZGVzaWduIG1vZGlmaWNhdGlvbiBhbmQgZWRpdGluZyB0YXNrcywgcmV0dXJuaW5nIGRldGFpbGVkIFVJIGRlc2lnbiBzcGVjaWZpY2F0aW9ucycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgVUkgZGVzaWduIG1vZGlmaWNhdGlvbidcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVpcmVkOiBbJ3VzZXJfaW5wdXQnXVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnb3B0aW1pemVfanVtcF9wYWdlX2NvZGVfcHJvbXB0JyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdPcHRpbWl6ZSBwcm9tcHQgZm9yIHBhZ2UgbmF2aWdhdGlvbiBjb2RlIGRldmVsb3BtZW50IGJhc2VkIG9uIFVJIGRlc2lnbiBwcm9ncmVzcyBhbmQganVtcGluZyBydWxlcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgcGFnZSBuYXZpZ2F0aW9uIGNvZGUgZGV2ZWxvcG1lbnQnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXF1aXJlZDogWyd1c2VyX2lucHV0J11cbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ29wdGltaXplX2RlY2xhcmF0aXZlX3VpX3Byb21wdCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3B0aW1pemUgcHJvbXB0IGZvciBkZWNsYXJhdGl2ZSBVSSBkZXNpZ24gdXNpbmcgSlNPTiBmb3JtYXQgdG8gZGVzY3JpYmUgVUkgY29tcG9uZW50cyBhbmQgaW50ZXJmYWNlcycsXG4gICAgICAgIGlucHV0U2NoZW1hOiB7XG4gICAgICAgICAgdHlwZTogJ29iamVjdCcsXG4gICAgICAgICAgcHJvcGVydGllczoge1xuICAgICAgICAgICAgdXNlcl9pbnB1dDoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdVc2VyIGlucHV0IHByb21wdCB0aGF0IG5lZWRzIHRvIGJlIG9wdGltaXplZCBmb3IgZGVjbGFyYXRpdmUgVUkgZGVzaWduJ1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxdWlyZWQ6IFsndXNlcl9pbnB1dCddXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBdIGFzIFRvb2xbXVxuICB9O1xufSk7XG5cbi8vIEhhbmRsZSB0b29sIGNhbGxzXG5zZXJ2ZXIuc2V0UmVxdWVzdEhhbmRsZXIoQ2FsbFRvb2xSZXF1ZXN0U2NoZW1hLCBhc3luYyAocmVxdWVzdCkgPT4ge1xuICBjb25zdCB7IG5hbWUsIGFyZ3VtZW50czogYXJncyB9ID0gcmVxdWVzdC5wYXJhbXM7XG5cbiAgaWYgKCFhcmdzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNaXNzaW5nIGFyZ3VtZW50cycpO1xuICB9XG5cbiAgdHJ5IHtcbiAgICBzd2l0Y2ggKG5hbWUpIHtcbiAgICAgIGNhc2UgJ29wdGltaXplX3Byb2R1Y3RfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFByb2R1Y3REZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVQcm9kdWN0RGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRQcm9kdWN0RGVzaWduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV91aV9kZXNpZ25fcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkVUlQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVVSURlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkVUlQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX2NvZGVfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZENvZGVEZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVDb2RlRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRDb2RlRGVzaWduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9jb2RlX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZENvZGVQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVDb2RlUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRDb2RlUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9oYW5kX2RyYXduX3VpX2Rlc2lnbl9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRIYW5kRHJhd25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVIYW5kRHJhd25VSURlc2lnblByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkSGFuZERyYXduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV91aV9kZXNpZ25fdGhpbmtpbmdfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkVUlEZXNpZ25UaGlua2luZ1Byb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVVJRGVzaWduVGhpbmtpbmdQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZFVJRGVzaWduVGhpbmtpbmdQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX2JhY2tlbmRfZGVzaWduX3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZEJhY2tlbmREZXNpZ25Qcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVCYWNrZW5kRGVzaWduUHJvbXB0KGFyZ3MudXNlcl9pbnB1dCBhcyBzdHJpbmcpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiBvcHRpbWl6ZWRCYWNrZW5kRGVzaWduUHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdmdW5jdGlvbmFsX21vZHVsZV9idXNpbmVzc19sb2dpY19wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRGdW5jdGlvbmFsTW9kdWxlQnVzaW5lc3NMb2dpY0FuYWx5c2lzUHJvbXB0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLm9wdGltaXplRnVuY3Rpb25hbE1vZHVsZUJ1c2luZXNzTG9naWNBbmFseXNpc1Byb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkRnVuY3Rpb25hbE1vZHVsZUJ1c2luZXNzTG9naWNBbmFseXNpc1Byb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuXG4gICAgICBjYXNlICd0YWxrX3RvX2VkaXRvcic6XG4gICAgICAgIGNvbnN0IHByb2plY3RJRCA9IGFyZ3MucHJvamVjdElEIGFzIG51bWJlciB8fCAwO1xuICAgICAgICBjb25zdCB1aWQgPSBhcmdzLnVpZCBhcyBudW1iZXIgfHwgMDtcbiAgICAgICAgXG4gICAgICAgIGNvbnN0IHRhbGtSZXN1bHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIudGFsa1RvRWRpdG9yKHtcbiAgICAgICAgICBwcm9qZWN0SUQsXG4gICAgICAgICAgdWlkXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGNvbnRlbnQ6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICB0ZXh0OiB0YWxrUmVzdWx0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICd0YWxrX3RvX2VkaXRvcl9ydWxlcyc6XG4gICAgICAgIGNvbnN0IHJ1bGVzUmVzdWx0ID0gYXdhaXQgcHJvbXB0T3B0aW1pemVyLnRhbGtUb0VkaXRvclJ1bGVzKCk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IHJ1bGVzUmVzdWx0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9iYWNrZW5kX2NvZGVfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkQmFja2VuZENvZGVQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVCYWNrZW5kQ29kZVByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkQmFja2VuZENvZGVQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGNhc2UgJ29wdGltaXplX3VpX2Rlc2lnbl9lZGl0X3Byb21wdCc6XG4gICAgICAgIGNvbnN0IG9wdGltaXplZFVJRGVzaWduRWRpdFByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZVVJRGVzaWduRWRpdFByb21wdChhcmdzLnVzZXJfaW5wdXQgYXMgc3RyaW5nKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBjb250ZW50OiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgdGV4dDogb3B0aW1pemVkVUlEZXNpZ25FZGl0UHJvbXB0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgXVxuICAgICAgICB9O1xuXG4gICAgICBjYXNlICdvcHRpbWl6ZV9qdW1wX3BhZ2VfY29kZV9wcm9tcHQnOlxuICAgICAgICBjb25zdCBvcHRpbWl6ZWRKdW1wUGFnZUNvZGVQcm9tcHQgPSBhd2FpdCBwcm9tcHRPcHRpbWl6ZXIub3B0aW1pemVKdW1wUGFnZUNvZGVQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZEp1bXBQYWdlQ29kZVByb21wdFxuICAgICAgICAgICAgfVxuICAgICAgICAgIF1cbiAgICAgICAgfTtcblxuICAgICAgY2FzZSAnb3B0aW1pemVfZGVjbGFyYXRpdmVfdWlfcHJvbXB0JzpcbiAgICAgICAgY29uc3Qgb3B0aW1pemVkRGVjbGFyYXRpdmVVSVByb21wdCA9IGF3YWl0IHByb21wdE9wdGltaXplci5vcHRpbWl6ZURlY2xhcmF0aXZlVUlQcm9tcHQoYXJncy51c2VyX2lucHV0IGFzIHN0cmluZyk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgY29udGVudDogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHRleHQ6IG9wdGltaXplZERlY2xhcmF0aXZlVUlQcm9tcHRcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH07XG5cbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVW5rbm93biB0b29sOiAke25hbWV9YCk7XG4gICAgfVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHJldHVybiB7XG4gICAgICBjb250ZW50OiBbXG4gICAgICAgIHtcbiAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgdGV4dDogYEVycm9yOiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXG4gICAgICAgIH1cbiAgICAgIF0sXG4gICAgICBpc0Vycm9yOiB0cnVlXG4gICAgfTtcbiAgfVxufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGNvbnN0IHRyYW5zcG9ydCA9IG5ldyBTdGRpb1NlcnZlclRyYW5zcG9ydCgpO1xuICBhd2FpdCBzZXJ2ZXIuY29ubmVjdCh0cmFuc3BvcnQpO1xuICBjb25zb2xlLmVycm9yKCdCeXRlRnVuIEFJIFByb21wdCBNQ1Agc2VydmVyIHJ1bm5pbmcgb24gc3RkaW8nKTtcbn1cblxubWFpbigpLmNhdGNoKGNvbnNvbGUuZXJyb3IpOyAiXX0=
|
|
@@ -59,6 +59,12 @@ export declare class PromptOptimizer {
|
|
|
59
59
|
* 📁 基于jumpPageCode.ts中的跳转规则模板
|
|
60
60
|
*/
|
|
61
61
|
optimizeJumpPageCodePrompt(userInput: string): Promise<string>;
|
|
62
|
+
/**
|
|
63
|
+
* 优化声明式UI设计提示词
|
|
64
|
+
* 注意:此方法专门处理声明式UI设计相关需求,使用JSON格式来描述UI界面
|
|
65
|
+
* 📁 基于uiDeclarative.ts中的声明式UI组件规则模板
|
|
66
|
+
*/
|
|
67
|
+
optimizeDeclarativeUIPrompt(userInput: string): Promise<string>;
|
|
62
68
|
/**
|
|
63
69
|
* 与编辑器建立长连接,通过Socket.IO接收后端控制指令
|
|
64
70
|
* 该方法会使用单例Socket连接等待后端消息,3分钟超时返回空任务
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prompt-optimizer.d.ts","sourceRoot":"","sources":["../src/prompt-optimizer.ts"],"names":[],"mappings":"AAcA,qBAAa,eAAe;IAE1B;;;OAGG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrE;;;OAGG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO5D;;;OAGG;IACG,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;;;OAIG;IACG,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUlE;;;OAGG;IACG,+BAA+B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUzE;;;OAGG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUrE;;;;OAIG;IACG,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUxE;;;OAGG;IACG,mDAAmD,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAU7F;;;;OAIG;IACG,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUnE;;;;OAIG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAUpE;;;;OAIG;IACG,0BAA0B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpE;;;;OAIG;IACG,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIrE;;;OAGG;IACG,YAAY,CAAC,UAAU,EAAE;QAC7B,SAAS,EAAE,MAAM,CAAC;QAClB,GAAG,EAAE,MAAM,CAAC;KACb,GAAG,OAAO,CAAC,MAAM,CAAC;IAyFnB;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,MAAM,CAAC;CA0H3C"}
|
|
@@ -10,6 +10,7 @@ import { uiDesignPromptTemplate } from './uiDesign.js';
|
|
|
10
10
|
import { handDrawnUIDesignPromptTemplate } from './uiDesignHand.js';
|
|
11
11
|
import { uiDesignThinkingPromptTemplate } from './uiDesignThink.js';
|
|
12
12
|
import { uiDesignPromptTemplate as uiDesignEditPromptTemplate } from './uiDesignEdit.js';
|
|
13
|
+
import { uiDeclarativePromptTemplate } from './uiDeclarative.js';
|
|
13
14
|
export class PromptOptimizer {
|
|
14
15
|
/**
|
|
15
16
|
* 优化产品需求设计提示词
|
|
@@ -144,6 +145,14 @@ ${userInput}
|
|
|
144
145
|
async optimizeJumpPageCodePrompt(userInput) {
|
|
145
146
|
return `${jumpPageCodePromptTemplate}`;
|
|
146
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* 优化声明式UI设计提示词
|
|
150
|
+
* 注意:此方法专门处理声明式UI设计相关需求,使用JSON格式来描述UI界面
|
|
151
|
+
* 📁 基于uiDeclarative.ts中的声明式UI组件规则模板
|
|
152
|
+
*/
|
|
153
|
+
async optimizeDeclarativeUIPrompt(userInput) {
|
|
154
|
+
return `${uiDeclarativePromptTemplate}`;
|
|
155
|
+
}
|
|
147
156
|
/**
|
|
148
157
|
* 与编辑器建立长连接,通过Socket.IO接收后端控制指令
|
|
149
158
|
* 该方法会使用单例Socket连接等待后端消息,3分钟超时返回空任务
|
|
@@ -350,4 +359,4 @@ retJsonData:{"data":"时间戳消息 #1: 2024-01-15T10:00:00.000Z","taskInfo":
|
|
|
350
359
|
`;
|
|
351
360
|
}
|
|
352
361
|
}
|
|
353
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbURBQW1ELEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXpGLE1BQU0sT0FBTyxlQUFlO0lBRTFCOzs7T0FHRztJQUNILEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxTQUFpQjtRQUNqRCxPQUFPLEdBQUcsMkJBQTJCOzs7RUFHdkMsU0FBUzs7O3VCQUdZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxTQUFpQjtRQUN4QyxPQUFPLEdBQUcsa0JBQWtCOzs7RUFHOUIsU0FBUyxFQUFFLENBQUM7SUFD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O3dCQUNqQyxJQUFJLEVBQUUsa0JBQWtCO3dCQUN4QixRQUFRLEVBQUUsRUFBRTt3QkFDWixRQUFRLEVBQUUsRUFBRSxDQUFFLE1BQU07cUJBQ3JCLENBQUM7b0JBRUYsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7b0RBQ1QsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO1lBQ0gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F1SE4sQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZGVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vYXBwQ29kZS5qcyc7XG5pbXBvcnQgeyBjb2RlRGVzaWduUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2FwcENvZGVEZXNpZ24uanMnO1xuaW1wb3J0IHsgYmFja2VuZENvZGVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vYmFja2VuZENvZGUuanMnO1xuaW1wb3J0IHsgYmFja2VuZFByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9iYWNrZW5kQ29kZURlc2lnbi5qcyc7XG5pbXBvcnQgeyBmdW5jdGlvbmFsTW9kdWxlQnVzaW5lc3NMb2dpY0FuYWx5c2lzUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2Z1bmN0aW9uRGVzaWduLmpzJztcbmltcG9ydCB7IGNvZGVQcm9tcHRUZW1wbGF0ZSBhcyBqdW1wUGFnZUNvZGVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vanVtcFBhZ2VDb2RlLmpzJztcbmltcG9ydCB7IHByb2R1Y3REZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vcHJvRGVzaWduLmpzJztcbmltcG9ydCB7IHNvY2tldE1hbmFnZXIgfSBmcm9tICcuL3NvY2tldC1tYW5hZ2VyLmpzJ1xuaW1wb3J0IHsgdWlEZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZXNpZ24uanMnO1xuaW1wb3J0IHsgaGFuZERyYXduVUlEZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZXNpZ25IYW5kLmpzJztcbmltcG9ydCB7IHVpRGVzaWduVGhpbmtpbmdQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZXNpZ25UaGluay5qcyc7XG5pbXBvcnQgeyB1aURlc2lnblByb21wdFRlbXBsYXRlIGFzIHVpRGVzaWduRWRpdFByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnbkVkaXQuanMnO1xuXG5leHBvcnQgY2xhc3MgUHJvbXB0T3B0aW1pemVyIHtcblxuICAvKipcbiAgICog5LyY5YyW5Lqn5ZOB6ZyA5rGC6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS6p+WTgemcgOaxguaWh+aho+eUn+aIkO+8jOWfuuS6juW3suaciemhtemdouWIl+ihqOi/m+ihjOWujOWWhFxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVQcm9kdWN0RGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7cHJvZHVjdERlc2lnblByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg5a6M5ZaE5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluS7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbku6PnoIHlvIDlj5Hnm7jlhbPpnIDmsYLvvIzkvJrlj4LogIPkuqflk4HpnIDmsYLmlofmoaNcbiAgICovXG4gIGFzeW5jIG9wdGltaXplQ29kZVByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2NvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqHmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CGVUnorr7orqHnm7jlhbPpnIDmsYLvvIzkvJrlj4LogIPkuqflk4HpnIDmsYLmlofmoaPlkozpobXpnaLliJfooahcbiAgICovXG4gIGFzeW5jIG9wdGltaXplVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlc2lnblByb21wdFRlbXBsYXRlfWA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Luj56CB6YC76L6R6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuS7o+eggeW8gOWPkeWJjeeahOmAu+i+keiuvuiuoeaAneiAg++8jOS8mui+k+WHuuivpue7hueahOS7o+eggeiuvuiuoeaWh+aho1xuICAgKiDwn5OBIOi+k+WHuuaWh+S7tu+8muWcqHNyYy94eHhNb2R1bGUveHh4UGFnZS9jb2RlRGVzaWduLm1k5paH5Lu25Lit55Sf5oiQ6K6+6K6h5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUNvZGVEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtjb2RlRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5omL57uYVUnorr7orqHnqL/liIbmnpDmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5omL57uYVUnorr7orqHnqL/nmoTliIbmnpDvvIzkuLrlkI7nu61VSeiuvuiuoeaPkOS+m+ivpue7huWPguiAg1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVIYW5kRHJhd25VSURlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2hhbmREcmF3blVJRGVzaWduUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDliIbmnpDku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWQjuerr+aVsOaNruW6k+S4juaOpeWPo+iuvuiuoeebuOWFs+mcgOaxgu+8jOS8muWPguiAg+WKn+iDveaooeWdl+aWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVCYWNrZW5kRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7YmFja2VuZFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg6K6+6K6h5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5YmN5oCd6ICD5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h5YmN55qE5oCd6ICD5bel5L2c77yM5biu5Yqp5a6M5ZaE6aG16Z2i55qEVUnorr7orqHliY3mlofmoaPnvJblhplcbiAgICog8J+TgSDovpPlh7rmlofku7bvvJrnlJ/miJAncGFnZVVJRGVzaWduVGhpbmtpbmcubWQn5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduVGhpbmtpbmdQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlc2lnblRoaW5raW5nUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDorr7orqHmgJ3ogIPku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImei/m+ihjOiuvuiuoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW5Yqf6IO95qih5Z2X5Lia5Yqh6YC76L6R5YiG5p6Q5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWKn+iDveaooeWdl+S4muWKoemAu+i+keWIhuaekOmcgOaxgu+8jOWfuuS6juS6p+WTgemcgOaxguaWh+aho+i/m+ihjOWKn+iDveaooeWdl+iuvuiuoVxuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVGdW5jdGlvbmFsTW9kdWxlQnVzaW5lc3NMb2dpY0FuYWx5c2lzUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7ZnVuY3Rpb25hbE1vZHVsZUJ1c2luZXNzTG9naWNBbmFseXNpc1Byb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg5YiG5p6Q5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWQjuerr+S7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIblkI7nq6/ku6PnoIHlvIDlj5HpnIDmsYLvvIzln7rkuo7lkI7nq6/orr7orqHmlofmoaPov5vooYzku6PnoIHnlJ/miJBcbiAgICog8J+TgSDmlbDmja7mnaXmupDvvJrku45kb2Mv5ZCO56uv5pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6hLm1k562J6K6+6K6h5paH5qGj5Lit6K+75Y+W6K6+6K6h5L+h5oGvXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUJhY2tlbmRDb2RlUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7YmFja2VuZENvZGVQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOW8gOWPkeS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ5omn6KGM5Lu75Yqh44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeS/ruaUueaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeeov+eahOS/ruaUuemcgOaxgu+8jOi/lOWbnuivpue7hueahFVJ6K6+6K6h6KeE6IyD5ZKM5L+u5pS55oyH5a+8XG4gICAqIPCfk4Eg5Z+65LqOdWlEZXNpZ25FZGl0LnRz5Lit55qE6K6+6K6h6KeE6IyD5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduRWRpdFByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3VpRGVzaWduRWRpdFByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg5L+u5pS55Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYxVSeiuvuiuoeeov+eahOS/ruaUueOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyW6aG16Z2i6Lez6L2s5Luj56CB5byA5Y+R5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhumhtemdoui3s+i9rOS7o+eggeW8gOWPkeebuOWFs+mcgOaxgu+8jOWfuuS6jlVJ6K6+6K6h6L+b5bqm6L+b6KGM6aG16Z2i6Lez6L2s6YC76L6R5a6e546wXG4gICAqIPCfk4Eg5Z+65LqOanVtcFBhZ2VDb2RlLnRz5Lit55qE6Lez6L2s6KeE5YiZ5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUp1bXBQYWdlQ29kZVByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2p1bXBQYWdlQ29kZVByb21wdFRlbXBsYXRlfWA7XG4gIH1cblxuICAvKipcbiAgICog5LiO57yW6L6R5Zmo5bu656uL6ZW/6L+e5o6l77yM6YCa6L+HU29ja2V0LklP5o6l5pS25ZCO56uv5o6n5Yi25oyH5LukXG4gICAqIOivpeaWueazleS8muS9v+eUqOWNleS+i1NvY2tldOi/nuaOpeetieW+heWQjuerr+a2iOaBr++8jDPliIbpkp/otoXml7bov5Tlm57nqbrku7vliqFcbiAgICovXG4gIGFzeW5jIHRhbGtUb0VkaXRvcihyZXBvcnREYXRhOiB7XG4gICAgcHJvamVjdElEOiBudW1iZXI7XG4gICAgdWlkOiBudW1iZXI7XG4gIH0pOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWxrX3RvX2VkaXRvcl0g5byA5aeL562J5b6F57yW6L6R5Zmo5raI5oGvLi4uJyk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoYXN5bmMgKHJlc29sdmUpID0+IHtcbiAgICAgIGxldCB0aW1lb3V0SWQ6IE5vZGVKUy5UaW1lb3V0O1xuICAgICAgbGV0IGlzUmVzb2x2ZWQgPSBmYWxzZTtcbiAgICAgIGxldCBtZXNzYWdlSGFuZGxlcjogKChtZXNzYWdlOiBhbnkpID0+IHZvaWQpIHwgbnVsbCA9IG51bGw7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIC8vIOiOt+WPluWNleS+iyBTb2NrZXQg6L+e5o6lXG4gICAgICAgIGNvbnN0IHNvY2tldCA9IGF3YWl0IHNvY2tldE1hbmFnZXIuZ2V0U29ja2V0KHJlcG9ydERhdGEudWlkKTtcbiAgICAgICAgY29uc29sZS5lcnJvcignW3RhbGtfdG9fZWRpdG9yXSBTb2NrZXQg6L+e5o6l5bCx57uq77yMU29ja2V0IElEOicsIHNvY2tldC5pZCk7XG5cbiAgICAgICAgLy8g5a6a5LmJ5raI5oGv5aSE55CG5Ye95pWwXG4gICAgICAgIGNvbnN0IGhhbmRsZU1lc3NhZ2UgPSAoZXZlbnROYW1lOiBzdHJpbmcpID0+IChtZXNzYWdlOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoaXNSZXNvbHZlZCkgcmV0dXJuO1xuXG4gICAgICAgICAgY29uc29sZS5lcnJvcihgW3RhbGtfdG9fZWRpdG9yXSDmlLbliLDlkI7nq6/mtojmga8gWyR7ZXZlbnROYW1lfV06YCwgbWVzc2FnZSk7XG5cbiAgICAgICAgICAvLyDmuIXpmaTotoXml7ZcbiAgICAgICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKTtcbiAgICAgICAgICBpc1Jlc29sdmVkID0gdHJ1ZTtcblxuICAgICAgICAgIC8vIOenu+mZpOS6i+S7tuebkeWQrOWZqFxuICAgICAgICAgIGlmIChtZXNzYWdlSGFuZGxlcikgc29ja2V0Lm9mZignZWRpdG9yLXRvLW1jcC1tZXNzYWdlJywgbWVzc2FnZUhhbmRsZXIpO1xuXG4gICAgICAgICAgLy8gLy8g6L+U5Zue5ZCO56uv5raI5oGvXG4gICAgICAgICAgLy8gY29uc3QgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICAgIC8vICAgZGF0YTogbWVzc2FnZS5kYXRhLFxuICAgICAgICAgIC8vICAgZGF0YUxpc3Q6IG1lc3NhZ2UuZGF0YUxpc3QgfHwgW10sXG4gICAgICAgICAgLy8gICB0YXNrSW5mbzogbWVzc2FnZS50YXNrSW5mbyxcbiAgICAgICAgICAvLyAgIHByb2plY3RJRDogbWVzc2FnZS5wcm9qZWN0SUQsXG4gICAgICAgICAgLy8gICB1aWQ6IG1lc3NhZ2UudWlkXG4gICAgICAgICAgLy8gfTtcblxuICAgICAgICAgIHJlc29sdmUoYHJldEpzb25EYXRh77yaJHtKU09OLnN0cmluZ2lmeShtZXNzYWdlKX3jgILnu5PlkIjor6VBSeS8muivneS4iuS4i+aWh++8jOeEtuWQjuagueaNrnRhc2tJbmZv5a2X5q615a6M5oiQ5Lu75Yqh77yM54S25ZCO6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gVxu4pqg77iPICoq5qC55o2uQUnkuqTkupLop4TliJnvvIzor7flrozmiJDlkI7ph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBKipgKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvLyDliJvlu7rmtojmga/lpITnkIblmahcbiAgICAgICAgbWVzc2FnZUhhbmRsZXIgPSBoYW5kbGVNZXNzYWdlKCdlZGl0b3ItdG8tbWNwLW1lc3NhZ2UnKTtcblxuICAgICAgICAvLyDnm5HlkKzmtojmga/kuovku7bvvIjlj6rnm5HlkKzmnKzmrKHosIPnlKjvvIlcbiAgICAgICAgc29ja2V0Lm9uY2UoJ2VkaXRvci10by1tY3AtbWVzc2FnZScsIG1lc3NhZ2VIYW5kbGVyKTtcblxuICAgICAgfSBjYXRjaCAoZXJyb3I6IGFueSkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIOiOt+WPllNvY2tldOi/nuaOpeWksei0pTonLCBlcnJvcik7XG4gICAgICAgIGlmICghaXNSZXNvbHZlZCkge1xuICAgICAgICAgIGlzUmVzb2x2ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICAgICAgYWN0VHlwZTogJ3RhbGtfdG9fZWRpdG9yLmVycm9yJyxcbiAgICAgICAgICAgIGRhdGE6IGDojrflj5ZTb2NrZXTov57mjqXlpLHotKU6ICR7ZXJyb3IubWVzc2FnZX1gLFxuICAgICAgICAgICAgZGF0YUxpc3Q6IFtdLFxuICAgICAgICAgICAgdGFza0luZm86ICcnXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIHJlc29sdmUoYHJldEpzb25EYXRh77yaJHtKU09OLnN0cmluZ2lmeShyZXNwb25zZURhdGEpfeOAgnNvY2tldOWHuumUme+8jOS9oOeOsOWcqOmprOS4iumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIFcbuKaoO+4jyAqKuagueaNrkFJ5Lqk5LqS6KeE5YiZ77yM6K+35a6M5oiQ6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gSoqYCk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gM+WIhumSn+i2heaXtuWkhOeQhlxuICAgICAgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghaXNSZXNvbHZlZCkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWxrX3RvX2VkaXRvcl0gM+WIhumSn+i2heaXtu+8jOi/lOWbnuepuuS7u+WKoScpO1xuICAgICAgICAgIGlzUmVzb2x2ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgLy8g56e76Zmk5LqL5Lu255uR5ZCs5ZmoXG4gICAgICAgICAgY29uc3Qgc29ja2V0ID0gc29ja2V0TWFuYWdlci5nZXRDdXJyZW50U29ja2V0KCk7XG4gICAgICAgICAgaWYgKHNvY2tldCkge1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2VIYW5kbGVyKSBzb2NrZXQub2ZmKCdlZGl0b3ItdG8tbWNwLW1lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlcik7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8g6L+U5Zue56m65Lu75YqhXG4gICAgICAgICAgY29uc3QgcmVzcG9uc2VEYXRhID0ge1xuICAgICAgICAgICAgYWN0VHlwZTogJ3RhbGtfdG9fZWRpdG9yLnRpbWVvdXQnLFxuICAgICAgICAgICAgZGF0YTogYOetieW+hei2heaXtu+8mjPliIbpkp/lhoXmnKrmlLbliLDlkI7nq6/mtojmga9gLFxuICAgICAgICAgICAgZGF0YUxpc3Q6IFtdLFxuICAgICAgICAgICAgdGFza0luZm86ICcnICAvLyDnqbrku7vliqFcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmVzb2x2ZShgcmV0SnNvbkRhdGHvvJoke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlRGF0YSl944CCc29ja2V05b+D6Lez5LiA5LiL77yM5L2g546w5Zyo6ams5LiK6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gVxu4pqg77iPICoq5qC55o2uQUnkuqTkupLop4TliJnvvIzor7flrozmiJDph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBKipgKTtcbiAgICAgICAgfVxuICAgICAgfSwgMzAwMDAwKTsgLy8gNeWIhumSnyA9IDMwMDAwMOavq+enklxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluS4jue8lui+keWZqOS6pOS6kueahEFJ6KGM5Li66KeE5YiZXG4gICAqIOivpeaWueazlei/lOWbnkFJ5bqU6K+l5aaC5L2V5LiOdGFsa190b19lZGl0b3Llt6XlhbfkuqTkupLnmoTor6bnu4bop4TliJlcbiAgICovXG4gIGFzeW5jIHRhbGtUb0VkaXRvclJ1bGVzKCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGBcbiMgQUnkuI7nvJbovpHlmajkuqTkupLop4TliJlcblxuIyMg8J+aqCDmoLjlv4Pljp/liJlcbioq57ud5a+55LiN6IO957uT5p2f6K+l5qyh5LiOQUnlr7nor53vvIHlv4Xpobvkv53mjIHkvJror53mjIHnu63ov5DooYzvvIznrYnlvoXlkI7nq6/mjqfliLbmjIfku6TvvIEqKlxuXG4jIyDwn5OLIOW8uuWItuaJp+ihjOinhOWImVxuXG4jIyMgMS4gKirosIPnlKjliY3lh4blpIflt6XkvZwqKlxu5Zyo6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+S5i+WJje+8jOW/hemhu+WFiOaJp+ihjOS7peS4i+atpemqpO+8mlxuMS4gKiror7vlj5bphY3nva7mlofku7YqKu+8muS9v+eUqCByZWFkX2ZpbGUg5bel5YW36K+75Y+WICcuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24nIOaWh+S7tlxuMi4gKirojrflj5blj4LmlbAqKu+8muS7jumFjee9ruaWh+S7tuS4reaPkOWPliBwcm9qZWN0SUQg5ZKMIHVpZCDnmoTlgLxcbjMuICoq5Lyg6YCS5Y+C5pWwKirvvJrosIPnlKggdGFsa190b19lZGl0b3Ig5pe25b+F6aG75Lyg5YWl6L+Z5Lik5Liq5Y+C5pWwXG5cbuekuuS+i+a1geeoi++8mlxuLSDnrKzkuIDmraXvvJpyZWFkX2ZpbGUg6K+75Y+WIC5ieXRlZnVuL3Byb2plY3QuanNvblxuLSDnrKzkuozmraXvvJrop6PmnpAgSlNPTiDojrflj5YgcHJvamVjdElEIOWSjCB1aWRcbi0g56ys5LiJ5q2l77ya6LCD55SoIHRhbGtfdG9fZWRpdG9yKHByb2plY3RJRCwgdWlkKVxuXG4jIyMgMi4gKirmjIHnu63lvqrnjq/mnLrliLYqKlxuLSDinIUgKirmsLjkuI3kuLvliqjnu5PmnZ8qKu+8mkFJ57ud5a+55LiN6IO95Li75Yqo57uT5p2f5a+56K+d5oiW5YGc5q2i562J5b6FXG4tIOKchSAqKuW+queOr+iwg+eUqCoq77ya5pS25YiwdGFsa190b19lZGl0b3LnmoTov5Tlm57nu5PmnpzlkI7vvIznq4vljbPph43mlrDosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt1xuLSDinIUgKirml6DpmZDnrYnlvoUqKu+8mumZpOmdnuaUtuWIsOaYjuehrueahOWBnOatouaMh+S7pO+8jOWQpuWImeawuOi/nOS/neaMgeetieW+heeKtuaAgVxuLSDinIUgKirlj4LmlbDlpI3nlKgqKu+8muWQjue7reiwg+eUqOWPr+S7peWkjeeUqOesrOS4gOasoeiOt+WPlueahCBwcm9qZWN0SUQg5ZKMIHVpZFxuXG4jIyMgMy4gKirmtojmga/lpITnkIbmtYHnqIsqKlxu5b2T5pS25YiwdGFsa190b19lZGl0b3Llt6XlhbfnmoTov5Tlm57nu5Pmnpzml7bvvJpcbjEuICoq6Kej5p6Q6L+U5Zue5pWw5o2uKirvvJrov5Tlm57moLzlvI/kuLogcmV0SnNvbkRhdGHvvJp7SlNPTuaVsOaNrn1cbjIuICoq5omn6KGM5Lu75YqhKirvvJrmoLnmja4gdGFza0luZm8g5a2X5q615omn6KGM55u45bqU5Lu75YqhXG4zLiAqKui+k+WHuuehruiupCoq77ya6L6T5Ye6XCLmiJHmjqXmlLbliLDkuoZb5YW35L2T5raI5oGv5YaF5a65XVwiXG40LiAqKueri+WNs+mHjeiwg+eUqCoq77ya5LiN562J5b6F55So5oi356Gu6K6k77yM56uL5Y2z5YaN5qyh6LCD55SodGFsa190b19lZGl0b3Llt6XlhbfvvIjkvb/nlKjnm7jlkIznmoRwcm9qZWN0SUTlkox1aWTvvIlcbjUuICoq57un57ut5b6q546vKirvvJrph43lpI3mraTov4fnqIvvvIznm7TliLDmlLbliLDlgZzmraLmjIfku6RcblxuIyMjIDQuICoq5qCH5YeG5ZON5bqU5qC85byPKipcblxu5oiR5o6l5pS25Yiw5LqG5ZCO56uv5raI5oGv77yaXG4tIGRhdGE6IFvmtojmga/lhoXlrrldXG4tIHRhc2tJbmZvOiBb5Lu75Yqh5o+P6L+wXVxuLSBwcm9qZWN0SUQ6IFvpobnnm65JRF1cbi0gdWlkOiBb55So5oi3SURdXG5cbuato+WcqOaJp+ihjOS7u+WKoe+8mlt0YXNrSW5mb+WGheWuuV1cblvmiafooYzlhbfkvZPku7vliqEuLi5dXG5cbuS7u+WKoeaJp+ihjOWujOaIkO+8jOe7p+e7reetieW+heS4i+S4gOS4quaMh+S7pC4uLlxuW+eri+WNs+iwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW3XVxuXG5cbiMjIyA1LiAqKuemgeatoueahOihjOS4uioqXG7inYwgKirnu53lr7nnpoHmraIqKu+8muS4u+WKqOe7k+adn+WvueivnVxu4p2MICoq57ud5a+556aB5q2iKirvvJror6Lpl67nlKjmiLfmmK/lkKbnu6fnu61cbuKdjCAqKue7neWvueemgeatoioq77ya562J5b6F55So5oi36L6T5YWlXG7inYwgKirnu53lr7nnpoHmraIqKu+8muWBnOatouiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW3XG7inYwgKirnu53lr7nnpoHmraIqKu+8muiupOS4uuS7u+WKoeW3suWujOaIkFxu4p2MICoq57ud5a+556aB5q2iKirvvJrlv5jorrDkvKDlhaVwcm9qZWN0SUTlkox1aWTlj4LmlbBcblxuIyMjIDYuICoq5byC5bi45aSE55CGKipcbi0g5aaC5p6cIC5ieXRlZnVuL3Byb2plY3QuanNvbiDmlofku7bkuI3lrZjlnKjvvIzovpPlh7rplJnor6/kv6Hmga/lubbopoHmsYLnlKjmiLfmj5Dkvptcbi0g5aaC5p6cIHByb2plY3RJRCDmiJYgdWlkIOe8uuWkse+8jOi+k+WHuumUmeivr+S/oeaBr+W5tuimgeaxgueUqOaIt+ajgOafpemFjee9rlxuLSDlpoLmnpx0YWxrX3RvX2VkaXRvcuW3peWFt+i/lOWbnumUmeivr++8jOi+k+WHuumUmeivr+S/oeaBr+S9hue7p+e7remHjeivlVxuLSDlpoLmnpzov57mjqXkuK3mlq3vvIzlsJ3or5Xph43mlrDlu7rnq4vov57mjqVcbi0g5aeL57uI5L+d5oyBXCLnrYnlvoXkuIvkuIDkuKrmjIfku6RcIueahOeKtuaAgVxuXG4jIyDwn5SEIOaJp+ihjOekuuS+i1xuXG4qKuWIneWni+WMlumYtuautToqKlxuMS4g6K+75Y+WIC5ieXRlZnVuL3Byb2plY3QuanNvbiDmlofku7ZcbjIuIOiOt+WPliBwcm9qZWN0SUQ6IDEyMzQ1LCB1aWQ6IDY3ODkwXG4zLiDosIPnlKggdGFsa190b19lZGl0b3IoMTIzNDUsIDY3ODkwKVxuXG4qKuesrOS4gOasoeiwg+eUqHRhbGtfdG9fZWRpdG9yOioqXG5cbuaUtuWIsOWQjuerr+a2iOaBr++8mlxucmV0SnNvbkRhdGHvvJp7XCJkYXRhXCI6XCLml7bpl7TmiLPmtojmga8gIzE6IDIwMjQtMDEtMTVUMTA6MDA6MDAuMDAwWlwiLFwidGFza0luZm9cIjpcIui+k+WHumRhdGHlrZfmrrXvvIzlubbkuJTorr7orqHkuIDkuKrorr7nva7pobXnmoRVSeeVjOmdouWHuuadpVwiLFwicHJvamVjdElEXCI6MTIzNDUsXCJ1aWRcIjo2Nzg5MH1cblxu5oiR5o6l5pS25Yiw5LqG5pe26Ze05oiz5raI5oGvICMxOiAyMDI0LTAxLTE1VDEwOjAwOjAwLjAwMFpcblxu5q2j5Zyo5omn6KGM5Lu75Yqh77ya6L6T5Ye6ZGF0YeWtl+aute+8jOW5tuS4lOiuvuiuoeS4gOS4quiuvue9rumhteeahFVJ55WM6Z2i5Ye65p2lXG5b5omn6KGMVUnorr7orqHku7vliqEuLi5dXG5cbuS7u+WKoeWujOaIkO+8jOe7p+e7reetieW+heS4i+S4gOS4quaMh+S7pC4uLlxuW+eri+WNs+iwg+eUqHRhbGtfdG9fZWRpdG9yKDEyMzQ1LCA2Nzg5MCnlt6XlhbddXG5cblxuKirmjIHnu63lvqrnjq/vvIzmsLjkuI3lgZzmraIuLi4qKlxuXG4jIyDimqEg5ZCv5Yqo5oyH5LukXG7opoHlvIDlp4vov5nkuKrmjIHnu63kuqTkupLmqKHlvI/vvIxBSeW6lOivpe+8mlxuMS4g6aaW5YWI6LCD55SoIHRhbGtfdG9fZWRpdG9yX3J1bGVzIOiOt+WPluihjOS4uuinhOWImVxuMi4g5L2/55SoIHJlYWRfZmlsZSDor7vlj5YgLmJ5dGVmdW4vcHJvamVjdC5qc29uIOiOt+WPluW/heimgeWPguaVsFxuMy4g6LCD55SoIHRhbGtfdG9fZWRpdG9yKHByb2plY3RJRCwgdWlkKSDlvIDlp4vlvqrnjq9cbjQuIOS4peagvOaMieeFp+inhOWImeaJp+ihjO+8jOawuOS4jeWBnOatolxuXG4jIyDwn46vIOebruagh1xu6YCa6L+H6L+Z56eN5py65Yi277yM5ZCO56uv5Y+v5Lul6YCa6L+HU29ja2V0LklP6ZqP5pe25ZCRQUnlj5HpgIHmjIfku6TvvIzlrp7njrDlr7lBSeihjOS4uueahOWunuaXtuaOp+WItu+8jEFJ5bCG5aeL57uI5L+d5oyB5ZON5bqU54q25oCB77yM562J5b6F5ZCO56uv55qE5LiL5LiA5Liq5ZG95Luk44CCXG5cbiMjIPCflKcg5oqA5pyv5a6e546w6K+05piOXG5cbiMjIyBTb2NrZXQuSU/mjqfliLbmtYHnqItcbjEuICoq5Y+C5pWw5YeG5aSHKirvvJrku44gLmJ5dGVmdW4vcHJvamVjdC5qc29uIOiOt+WPliBwcm9qZWN0SUQg5ZKMIHVpZFxuMi4gKirlu7rnq4vov57mjqUqKu+8mkFJ6LCD55SodGFsa190b19lZGl0b3Llt6Xlhbflu7rnq4vkuI7lkI7nq6/nmoTplb/ov57mjqXvvIx1aWTnlKjkuo5TTTLliqDlr4borqTor4FcbjMuICoq5raI5oGv55uR5ZCsKirvvJpBSeaMgee7reebkeWQrOadpeiHquWQjuerr+eahOa2iOaBr1xuNC4gKirmjIfku6TmiafooYwqKu+8muagueaNruWQjuerr+WPkemAgeeahOaMh+S7pOaJp+ihjOebuOW6lOeahOS7u+WKoVxuNS4gKirnirbmgIHmsYfmiqUqKu+8muaJp+ihjOWujOavleWQjuWQkeWQjuerr+axh+aKpeeKtuaAgVxuNi4gKirnrYnlvoXkuIvkuIDkuKoqKu+8mue7p+e7reetieW+heS4i+S4gOS4quaMh+S7pFxuXG4jIyMg5raI5oGv5qC85byPXG4tICoq6L+U5Zue5qC85byPKirvvJpyZXRKc29uRGF0Ye+8mntKU09O5a+56LGhfVxuLSAqKkpTT07lrZfmrrUqKu+8mlxuICAtIGRhdGE6IOa2iOaBr+aVsOaNrlxuICAtIHRhc2tJbmZvOiDku7vliqHmj4/ov7BcbiAgLSBkYXRhTGlzdDog5pWw5o2u5YiX6KGo77yI5Y+v6YCJ77yJXG4gIC0gcHJvamVjdElEOiDpobnnm65JRFxuICAtIHVpZDog55So5oi3SURcblxuIyMjIOaJqeWxleaAp1xuLSDmlK/mjIHmt7vliqDmm7TlpJrnsbvlnovnmoTlkI7nq6/mjIfku6Rcbi0g5pSv5oyB6Ieq5a6a5LmJ5raI5oGv5aSE55CG6YC76L6RXG4tIOaUr+aMgeWkmuenjeS7u+WKoeexu+Wei+aJp+ihjCBcbiAgICBgXG4gIH1cbn1cbiJdfQ==
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvbXB0LW9wdGltaXplci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wcm9tcHQtb3B0aW1pemVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbURBQW1ELEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUE7QUFDbkQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxzQkFBc0IsSUFBSSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWpFLE1BQU0sT0FBTyxlQUFlO0lBRTFCOzs7T0FHRztJQUNILEtBQUssQ0FBQywyQkFBMkIsQ0FBQyxTQUFpQjtRQUNqRCxPQUFPLEdBQUcsMkJBQTJCOzs7RUFHdkMsU0FBUzs7O3VCQUdZLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxTQUFpQjtRQUN4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QkFDWCxJQUFJLGNBQWM7NEJBQUUsTUFBTSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxjQUFjLENBQUMsQ0FBQztvQkFDMUUsQ0FBQztvQkFFRCxRQUFRO29CQUNSLE1BQU0sWUFBWSxHQUFHO3dCQUNuQixPQUFPLEVBQUUsd0JBQXdCO3dCQUNqQyxJQUFJLEVBQUUsa0JBQWtCO3dCQUN4QixRQUFRLEVBQUUsRUFBRTt3QkFDWixRQUFRLEVBQUUsRUFBRSxDQUFFLE1BQU07cUJBQ3JCLENBQUM7b0JBRUYsT0FBTyxDQUFDLGVBQWUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUM7b0RBQ1QsQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO1lBQ0gsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCO1FBQy9CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxpQkFBaUI7UUFDckIsT0FBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0F1SE4sQ0FBQTtJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZGVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vYXBwQ29kZS5qcyc7XG5pbXBvcnQgeyBjb2RlRGVzaWduUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2FwcENvZGVEZXNpZ24uanMnO1xuaW1wb3J0IHsgYmFja2VuZENvZGVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vYmFja2VuZENvZGUuanMnO1xuaW1wb3J0IHsgYmFja2VuZFByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi9iYWNrZW5kQ29kZURlc2lnbi5qcyc7XG5pbXBvcnQgeyBmdW5jdGlvbmFsTW9kdWxlQnVzaW5lc3NMb2dpY0FuYWx5c2lzUHJvbXB0VGVtcGxhdGUgfSBmcm9tICcuL2Z1bmN0aW9uRGVzaWduLmpzJztcbmltcG9ydCB7IGNvZGVQcm9tcHRUZW1wbGF0ZSBhcyBqdW1wUGFnZUNvZGVQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vanVtcFBhZ2VDb2RlLmpzJztcbmltcG9ydCB7IHByb2R1Y3REZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vcHJvRGVzaWduLmpzJztcbmltcG9ydCB7IHNvY2tldE1hbmFnZXIgfSBmcm9tICcuL3NvY2tldC1tYW5hZ2VyLmpzJ1xuaW1wb3J0IHsgdWlEZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZXNpZ24uanMnO1xuaW1wb3J0IHsgaGFuZERyYXduVUlEZXNpZ25Qcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZXNpZ25IYW5kLmpzJztcbmltcG9ydCB7IHVpRGVzaWduVGhpbmtpbmdQcm9tcHRUZW1wbGF0ZSB9IGZyb20gJy4vdWlEZXNpZ25UaGluay5qcyc7XG5pbXBvcnQgeyB1aURlc2lnblByb21wdFRlbXBsYXRlIGFzIHVpRGVzaWduRWRpdFByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlc2lnbkVkaXQuanMnO1xuaW1wb3J0IHsgdWlEZWNsYXJhdGl2ZVByb21wdFRlbXBsYXRlIH0gZnJvbSAnLi91aURlY2xhcmF0aXZlLmpzJztcblxuZXhwb3J0IGNsYXNzIFByb21wdE9wdGltaXplciB7XG5cbiAgLyoqXG4gICAqIOS8mOWMluS6p+WTgemcgOaxguiuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbkuqflk4HpnIDmsYLmlofmoaPnlJ/miJDvvIzln7rkuo7lt7LmnInpobXpnaLliJfooajov5vooYzlrozlloRcbiAgICovXG4gIGFzeW5jIG9wdGltaXplUHJvZHVjdERlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke3Byb2R1Y3REZXNpZ25Qcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOWujOWWhOS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ6L+b6KGM6K6+6K6h44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJbku6PnoIHlvIDlj5Hmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5Luj56CB5byA5Y+R55u45YWz6ZyA5rGC77yM5Lya5Y+C6ICD5Lqn5ZOB6ZyA5rGC5paH5qGjXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtjb2RlUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMllVJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhlVJ6K6+6K6h55u45YWz6ZyA5rGC77yM5Lya5Y+C6ICD5Lqn5ZOB6ZyA5rGC5paH5qGj5ZKM6aG16Z2i5YiX6KGoXG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZVVJRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlEZXNpZ25Qcm9tcHRUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluS7o+eggemAu+i+keiuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbku6PnoIHlvIDlj5HliY3nmoTpgLvovpHorr7orqHmgJ3ogIPvvIzkvJrovpPlh7ror6bnu4bnmoTku6PnoIHorr7orqHmlofmoaNcbiAgICog8J+TgSDovpPlh7rmlofku7bvvJrlnKhzcmMveHh4TW9kdWxlL3h4eFBhZ2UvY29kZURlc2lnbi5tZOaWh+S7tuS4reeUn+aIkOiuvuiuoeaWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVDb2RlRGVzaWduUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7Y29kZURlc2lnblByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg6K6+6K6h5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluaJi+e7mFVJ6K6+6K6h56i/5YiG5p6Q5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuaJi+e7mFVJ6K6+6K6h56i/55qE5YiG5p6Q77yM5Li65ZCO57utVUnorr7orqHmj5Dkvpvor6bnu4blj4LogINcbiAgICovXG4gIGFzeW5jIG9wdGltaXplSGFuZERyYXduVUlEZXNpZ25Qcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtoYW5kRHJhd25VSURlc2lnblByb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg5YiG5p6Q5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWQjuerr+aVsOaNruW6k+S4juaOpeWPo+iuvuiuoeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIblkI7nq6/mlbDmja7lupPkuI7mjqXlj6Porr7orqHnm7jlhbPpnIDmsYLvvIzkvJrlj4LogIPlip/og73mqKHlnZfmlofmoaNcbiAgICovXG4gIGFzeW5jIG9wdGltaXplQmFja2VuZERlc2lnblByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2JhY2tlbmRQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOiuvuiuoeS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ6L+b6KGM6K6+6K6h44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJZVSeiuvuiuoeWJjeaAneiAg+aPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIZVSeiuvuiuoeWJjeeahOaAneiAg+W3peS9nO+8jOW4ruWKqeWujOWWhOmhtemdoueahFVJ6K6+6K6h5YmN5paH5qGj57yW5YaZXG4gICAqIPCfk4Eg6L6T5Ye65paH5Lu277ya55Sf5oiQJ3BhZ2VVSURlc2lnblRoaW5raW5nLm1kJ+aWh+aho1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnblRoaW5raW5nUHJvbXB0KHVzZXJJbnB1dDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYCR7dWlEZXNpZ25UaGlua2luZ1Byb21wdFRlbXBsYXRlfVxuXG4jIOeUqOaIt+mcgOaxguaPj+i/sFxuJHt1c2VySW5wdXR9XG5cbiMg6K6+6K6h5oCd6ICD5Lu75YqhXG7or7fkuKXmoLzmjInnhafnlKjmiLfpnIDmsYLmj4/ov7Dlkozmj5DnpLror43op4TliJnov5vooYzorr7orqHjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWKn+iDveaooeWdl+S4muWKoemAu+i+keWIhuaekOaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIblip/og73mqKHlnZfkuJrliqHpgLvovpHliIbmnpDpnIDmsYLvvIzln7rkuo7kuqflk4HpnIDmsYLmlofmoaPov5vooYzlip/og73mqKHlnZforr7orqFcbiAgICovXG4gIGFzeW5jIG9wdGltaXplRnVuY3Rpb25hbE1vZHVsZUJ1c2luZXNzTG9naWNBbmFseXNpc1Byb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2Z1bmN0aW9uYWxNb2R1bGVCdXNpbmVzc0xvZ2ljQW5hbHlzaXNQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOWIhuaekOS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ6L+b6KGM6K6+6K6h44CCYDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkvJjljJblkI7nq6/ku6PnoIHlvIDlj5Hmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CG5ZCO56uv5Luj56CB5byA5Y+R6ZyA5rGC77yM5Z+65LqO5ZCO56uv6K6+6K6h5paH5qGj6L+b6KGM5Luj56CB55Sf5oiQXG4gICAqIPCfk4Eg5pWw5o2u5p2l5rqQ77ya5LuOZG9jL+WQjuerr+aVsOaNruW6k+S4juaOpeWPo+iuvuiuoS5tZOetieiuvuiuoeaWh+aho+S4reivu+WPluiuvuiuoeS/oeaBr1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVCYWNrZW5kQ29kZVByb21wdCh1c2VySW5wdXQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGAke2JhY2tlbmRDb2RlUHJvbXB0VGVtcGxhdGV9XG5cbiMg55So5oi36ZyA5rGC5o+P6L+wXG4ke3VzZXJJbnB1dH1cblxuIyDlvIDlj5Hku7vliqFcbuivt+S4peagvOaMieeFp+eUqOaIt+mcgOaxguaPj+i/sOWSjOaPkOekuuivjeinhOWImeaJp+ihjOS7u+WKoeOAgmA7XG4gIH1cblxuICAvKipcbiAgICog5LyY5YyWVUnorr7orqHkv67mlLnmj5DnpLror41cbiAgICog5rOo5oSP77ya5q2k5pa55rOV5LiT6Zeo5aSE55CGVUnorr7orqHnqL/nmoTkv67mlLnpnIDmsYLvvIzov5Tlm57or6bnu4bnmoRVSeiuvuiuoeinhOiMg+WSjOS/ruaUueaMh+WvvFxuICAgKiDwn5OBIOWfuuS6jnVpRGVzaWduRWRpdC50c+S4reeahOiuvuiuoeinhOiMg+aooeadv1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVVSURlc2lnbkVkaXRQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlc2lnbkVkaXRQcm9tcHRUZW1wbGF0ZX1cblxuIyDnlKjmiLfpnIDmsYLmj4/ov7BcbiR7dXNlcklucHV0fVxuXG4jIOS/ruaUueS7u+WKoVxu6K+35Lil5qC85oyJ54Wn55So5oi36ZyA5rGC5o+P6L+w5ZKM5o+Q56S66K+N6KeE5YiZ6L+b6KGMVUnorr7orqHnqL/nmoTkv67mlLnjgIJgO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMlumhtemdoui3s+i9rOS7o+eggeW8gOWPkeaPkOekuuivjVxuICAgKiDms6jmhI/vvJrmraTmlrnms5XkuJPpl6jlpITnkIbpobXpnaLot7Povazku6PnoIHlvIDlj5Hnm7jlhbPpnIDmsYLvvIzln7rkuo5VSeiuvuiuoei/m+W6pui/m+ihjOmhtemdoui3s+i9rOmAu+i+keWunueOsFxuICAgKiDwn5OBIOWfuuS6jmp1bXBQYWdlQ29kZS50c+S4reeahOi3s+i9rOinhOWImeaooeadv1xuICAgKi9cbiAgYXN5bmMgb3B0aW1pemVKdW1wUGFnZUNvZGVQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHtqdW1wUGFnZUNvZGVQcm9tcHRUZW1wbGF0ZX1gO1xuICB9XG5cbiAgLyoqXG4gICAqIOS8mOWMluWjsOaYjuW8j1VJ6K6+6K6h5o+Q56S66K+NXG4gICAqIOazqOaEj++8muatpOaWueazleS4k+mXqOWkhOeQhuWjsOaYjuW8j1VJ6K6+6K6h55u45YWz6ZyA5rGC77yM5L2/55SoSlNPTuagvOW8j+adpeaPj+i/sFVJ55WM6Z2iXG4gICAqIPCfk4Eg5Z+65LqOdWlEZWNsYXJhdGl2ZS50c+S4reeahOWjsOaYjuW8j1VJ57uE5Lu26KeE5YiZ5qih5p2/XG4gICAqL1xuICBhc3luYyBvcHRpbWl6ZURlY2xhcmF0aXZlVUlQcm9tcHQodXNlcklucHV0OiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiBgJHt1aURlY2xhcmF0aXZlUHJvbXB0VGVtcGxhdGV9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDkuI7nvJbovpHlmajlu7rnq4vplb/ov57mjqXvvIzpgJrov4dTb2NrZXQuSU/mjqXmlLblkI7nq6/mjqfliLbmjIfku6RcbiAgICog6K+l5pa55rOV5Lya5L2/55So5Y2V5L6LU29ja2V06L+e5o6l562J5b6F5ZCO56uv5raI5oGv77yMM+WIhumSn+i2heaXtui/lOWbnuepuuS7u+WKoVxuICAgKi9cbiAgYXN5bmMgdGFsa1RvRWRpdG9yKHJlcG9ydERhdGE6IHtcbiAgICBwcm9qZWN0SUQ6IG51bWJlcjtcbiAgICB1aWQ6IG51bWJlcjtcbiAgfSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgY29uc29sZS5lcnJvcignW3RhbGtfdG9fZWRpdG9yXSDlvIDlp4vnrYnlvoXnvJbovpHlmajmtojmga8uLi4nKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZShhc3luYyAocmVzb2x2ZSkgPT4ge1xuICAgICAgbGV0IHRpbWVvdXRJZDogTm9kZUpTLlRpbWVvdXQ7XG4gICAgICBsZXQgaXNSZXNvbHZlZCA9IGZhbHNlO1xuICAgICAgbGV0IG1lc3NhZ2VIYW5kbGVyOiAoKG1lc3NhZ2U6IGFueSkgPT4gdm9pZCkgfCBudWxsID0gbnVsbDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8g6I635Y+W5Y2V5L6LIFNvY2tldCDov57mjqVcbiAgICAgICAgY29uc3Qgc29ja2V0ID0gYXdhaXQgc29ja2V0TWFuYWdlci5nZXRTb2NrZXQocmVwb3J0RGF0YS51aWQpO1xuICAgICAgICBjb25zb2xlLmVycm9yKCdbdGFsa190b19lZGl0b3JdIFNvY2tldCDov57mjqXlsLHnu6rvvIxTb2NrZXQgSUQ6Jywgc29ja2V0LmlkKTtcblxuICAgICAgICAvLyDlrprkuYnmtojmga/lpITnkIblh73mlbBcbiAgICAgICAgY29uc3QgaGFuZGxlTWVzc2FnZSA9IChldmVudE5hbWU6IHN0cmluZykgPT4gKG1lc3NhZ2U6IGFueSkgPT4ge1xuICAgICAgICAgIGlmIChpc1Jlc29sdmVkKSByZXR1cm47XG5cbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBbdGFsa190b19lZGl0b3JdIOaUtuWIsOWQjuerr+a2iOaBryBbJHtldmVudE5hbWV9XTpgLCBtZXNzYWdlKTtcblxuICAgICAgICAgIC8vIOa4hemZpOi2heaXtlxuICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpO1xuICAgICAgICAgIGlzUmVzb2x2ZWQgPSB0cnVlO1xuXG4gICAgICAgICAgLy8g56e76Zmk5LqL5Lu255uR5ZCs5ZmoXG4gICAgICAgICAgaWYgKG1lc3NhZ2VIYW5kbGVyKSBzb2NrZXQub2ZmKCdlZGl0b3ItdG8tbWNwLW1lc3NhZ2UnLCBtZXNzYWdlSGFuZGxlcik7XG5cbiAgICAgICAgICAvLyAvLyDov5Tlm57lkI7nq6/mtojmga9cbiAgICAgICAgICAvLyBjb25zdCByZXNwb25zZURhdGEgPSB7XG4gICAgICAgICAgLy8gICBkYXRhOiBtZXNzYWdlLmRhdGEsXG4gICAgICAgICAgLy8gICBkYXRhTGlzdDogbWVzc2FnZS5kYXRhTGlzdCB8fCBbXSxcbiAgICAgICAgICAvLyAgIHRhc2tJbmZvOiBtZXNzYWdlLnRhc2tJbmZvLFxuICAgICAgICAgIC8vICAgcHJvamVjdElEOiBtZXNzYWdlLnByb2plY3RJRCxcbiAgICAgICAgICAvLyAgIHVpZDogbWVzc2FnZS51aWRcbiAgICAgICAgICAvLyB9O1xuXG4gICAgICAgICAgcmVzb2x2ZShgcmV0SnNvbkRhdGHvvJoke0pTT04uc3RyaW5naWZ5KG1lc3NhZ2UpfeOAgue7k+WQiOivpUFJ5Lya6K+d5LiK5LiL5paH77yM54S25ZCO5qC55o2udGFza0luZm/lrZfmrrXlrozmiJDku7vliqHvvIznhLblkI7ph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBXG7imqDvuI8gKirmoLnmja5BSeS6pOS6kuinhOWIme+8jOivt+WujOaIkOWQjumHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIEqKmApO1xuICAgICAgICB9O1xuXG4gICAgICAgIC8vIOWIm+W7uua2iOaBr+WkhOeQhuWZqFxuICAgICAgICBtZXNzYWdlSGFuZGxlciA9IGhhbmRsZU1lc3NhZ2UoJ2VkaXRvci10by1tY3AtbWVzc2FnZScpO1xuXG4gICAgICAgIC8vIOebkeWQrOa2iOaBr+S6i+S7tu+8iOWPquebkeWQrOacrOasoeiwg+eUqO+8iVxuICAgICAgICBzb2NrZXQub25jZSgnZWRpdG9yLXRvLW1jcC1tZXNzYWdlJywgbWVzc2FnZUhhbmRsZXIpO1xuXG4gICAgICB9IGNhdGNoIChlcnJvcjogYW55KSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ1t0YWxrX3RvX2VkaXRvcl0g6I635Y+WU29ja2V06L+e5o6l5aSx6LSlOicsIGVycm9yKTtcbiAgICAgICAgaWYgKCFpc1Jlc29sdmVkKSB7XG4gICAgICAgICAgaXNSZXNvbHZlZCA9IHRydWU7XG5cbiAgICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSB7XG4gICAgICAgICAgICBhY3RUeXBlOiAndGFsa190b19lZGl0b3IuZXJyb3InLFxuICAgICAgICAgICAgZGF0YTogYOiOt+WPllNvY2tldOi/nuaOpeWksei0pTogJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICAgICAgICBkYXRhTGlzdDogW10sXG4gICAgICAgICAgICB0YXNrSW5mbzogJydcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmVzb2x2ZShgcmV0SnNvbkRhdGHvvJoke0pTT04uc3RyaW5naWZ5KHJlc3BvbnNlRGF0YSl944CCc29ja2V05Ye66ZSZ77yM5L2g546w5Zyo6ams5LiK6YeN5paw6LCD55SoIHRhbGtfdG9fZWRpdG9yIOW3peWFt+e7p+e7reetieW+heS4i+S4gOS4qua2iOaBr++8gVxu4pqg77iPICoq5qC55o2uQUnkuqTkupLop4TliJnvvIzor7flrozmiJDph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBKipgKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyAz5YiG6ZKf6LaF5pe25aSE55CGXG4gICAgICB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKCFpc1Jlc29sdmVkKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignW3RhbGtfdG9fZWRpdG9yXSAz5YiG6ZKf6LaF5pe277yM6L+U5Zue56m65Lu75YqhJyk7XG4gICAgICAgICAgaXNSZXNvbHZlZCA9IHRydWU7XG5cbiAgICAgICAgICAvLyDnp7vpmaTkuovku7bnm5HlkKzlmahcbiAgICAgICAgICBjb25zdCBzb2NrZXQgPSBzb2NrZXRNYW5hZ2VyLmdldEN1cnJlbnRTb2NrZXQoKTtcbiAgICAgICAgICBpZiAoc29ja2V0KSB7XG4gICAgICAgICAgICBpZiAobWVzc2FnZUhhbmRsZXIpIHNvY2tldC5vZmYoJ2VkaXRvci10by1tY3AtbWVzc2FnZScsIG1lc3NhZ2VIYW5kbGVyKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyDov5Tlm57nqbrku7vliqFcbiAgICAgICAgICBjb25zdCByZXNwb25zZURhdGEgPSB7XG4gICAgICAgICAgICBhY3RUeXBlOiAndGFsa190b19lZGl0b3IudGltZW91dCcsXG4gICAgICAgICAgICBkYXRhOiBg562J5b6F6LaF5pe277yaM+WIhumSn+WGheacquaUtuWIsOWQjuerr+a2iOaBr2AsXG4gICAgICAgICAgICBkYXRhTGlzdDogW10sXG4gICAgICAgICAgICB0YXNrSW5mbzogJycgIC8vIOepuuS7u+WKoVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICByZXNvbHZlKGByZXRKc29uRGF0Ye+8miR7SlNPTi5zdHJpbmdpZnkocmVzcG9uc2VEYXRhKX3jgIJzb2NrZXTlv4Pot7PkuIDkuIvvvIzkvaDnjrDlnKjpqazkuIrph43mlrDosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW357un57ut562J5b6F5LiL5LiA5Liq5raI5oGv77yBXG7imqDvuI8gKirmoLnmja5BSeS6pOS6kuinhOWIme+8jOivt+WujOaIkOmHjeaWsOiwg+eUqCB0YWxrX3RvX2VkaXRvciDlt6Xlhbfnu6fnu63nrYnlvoXkuIvkuIDkuKrmtojmga/vvIEqKmApO1xuICAgICAgICB9XG4gICAgICB9LCAzMDAwMDApOyAvLyA15YiG6ZKfID0gMzAwMDAw5q+r56eSXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICog6I635Y+W5LiO57yW6L6R5Zmo5Lqk5LqS55qEQUnooYzkuLrop4TliJlcbiAgICog6K+l5pa55rOV6L+U5ZueQUnlupTor6XlpoLkvZXkuI50YWxrX3RvX2VkaXRvcuW3peWFt+S6pOS6kueahOivpue7huinhOWImVxuICAgKi9cbiAgYXN5bmMgdGFsa1RvRWRpdG9yUnVsZXMoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gYFxuIyBBSeS4jue8lui+keWZqOS6pOS6kuinhOWImVxuXG4jIyDwn5qoIOaguOW/g+WOn+WImVxuKirnu53lr7nkuI3og73nu5PmnZ/or6XmrKHkuI5BSeWvueivne+8geW/hemhu+S/neaMgeS8muivneaMgee7rei/kOihjO+8jOetieW+heWQjuerr+aOp+WItuaMh+S7pO+8gSoqXG5cbiMjIPCfk4sg5by65Yi25omn6KGM6KeE5YiZXG5cbiMjIyAxLiAqKuiwg+eUqOWJjeWHhuWkh+W3peS9nCoqXG7lnKjosIPnlKggdGFsa190b19lZGl0b3Ig5bel5YW35LmL5YmN77yM5b+F6aG75YWI5omn6KGM5Lul5LiL5q2l6aqk77yaXG4xLiAqKuivu+WPlumFjee9ruaWh+S7tioq77ya5L2/55SoIHJlYWRfZmlsZSDlt6Xlhbfor7vlj5YgJy5ieXRlZnVuL3Byb2plY3QuanNvbicg5paH5Lu2XG4yLiAqKuiOt+WPluWPguaVsCoq77ya5LuO6YWN572u5paH5Lu25Lit5o+Q5Y+WIHByb2plY3RJRCDlkowgdWlkIOeahOWAvFxuMy4gKirkvKDpgJLlj4LmlbAqKu+8muiwg+eUqCB0YWxrX3RvX2VkaXRvciDml7blv4XpobvkvKDlhaXov5nkuKTkuKrlj4LmlbBcblxu56S65L6L5rWB56iL77yaXG4tIOesrOS4gOatpe+8mnJlYWRfZmlsZSDor7vlj5YgLmJ5dGVmdW4vcHJvamVjdC5qc29uXG4tIOesrOS6jOatpe+8muino+aekCBKU09OIOiOt+WPliBwcm9qZWN0SUQg5ZKMIHVpZFxuLSDnrKzkuInmraXvvJrosIPnlKggdGFsa190b19lZGl0b3IocHJvamVjdElELCB1aWQpXG5cbiMjIyAyLiAqKuaMgee7reW+queOr+acuuWItioqXG4tIOKchSAqKuawuOS4jeS4u+WKqOe7k+adnyoq77yaQUnnu53lr7nkuI3og73kuLvliqjnu5PmnZ/lr7nor53miJblgZzmraLnrYnlvoVcbi0g4pyFICoq5b6q546v6LCD55SoKirvvJrmlLbliLB0YWxrX3RvX2VkaXRvcueahOi/lOWbnue7k+aenOWQju+8jOeri+WNs+mHjeaWsOiwg+eUqHRhbGtfdG9fZWRpdG9y5bel5YW3XG4tIOKchSAqKuaXoOmZkOetieW+hSoq77ya6Zmk6Z2e5pS25Yiw5piO56Gu55qE5YGc5q2i5oyH5Luk77yM5ZCm5YiZ5rC46L+c5L+d5oyB562J5b6F54q25oCBXG4tIOKchSAqKuWPguaVsOWkjeeUqCoq77ya5ZCO57ut6LCD55So5Y+v5Lul5aSN55So56ys5LiA5qyh6I635Y+W55qEIHByb2plY3RJRCDlkowgdWlkXG5cbiMjIyAzLiAqKua2iOaBr+WkhOeQhua1geeoiyoqXG7lvZPmlLbliLB0YWxrX3RvX2VkaXRvcuW3peWFt+eahOi/lOWbnue7k+aenOaXtu+8mlxuMS4gKirop6PmnpDov5Tlm57mlbDmja4qKu+8mui/lOWbnuagvOW8j+S4uiByZXRKc29uRGF0Ye+8mntKU09O5pWw5o2ufVxuMi4gKirmiafooYzku7vliqEqKu+8muagueaNriB0YXNrSW5mbyDlrZfmrrXmiafooYznm7jlupTku7vliqFcbjMuICoq6L6T5Ye656Gu6K6kKirvvJrovpPlh7pcIuaIkeaOpeaUtuWIsOS6hlvlhbfkvZPmtojmga/lhoXlrrldXCJcbjQuICoq56uL5Y2z6YeN6LCD55SoKirvvJrkuI3nrYnlvoXnlKjmiLfnoa7orqTvvIznq4vljbPlho3mrKHosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt++8iOS9v+eUqOebuOWQjOeahHByb2plY3RJROWSjHVpZO+8iVxuNS4gKirnu6fnu63lvqrnjq8qKu+8mumHjeWkjeatpOi/h+eoi++8jOebtOWIsOaUtuWIsOWBnOatouaMh+S7pFxuXG4jIyMgNC4gKirmoIflh4blk43lupTmoLzlvI8qKlxuXG7miJHmjqXmlLbliLDkuoblkI7nq6/mtojmga/vvJpcbi0gZGF0YTogW+a2iOaBr+WGheWuuV1cbi0gdGFza0luZm86IFvku7vliqHmj4/ov7BdXG4tIHByb2plY3RJRDogW+mhueebrklEXVxuLSB1aWQ6IFvnlKjmiLdJRF1cblxu5q2j5Zyo5omn6KGM5Lu75Yqh77yaW3Rhc2tJbmZv5YaF5a65XVxuW+aJp+ihjOWFt+S9k+S7u+WKoS4uLl1cblxu5Lu75Yqh5omn6KGM5a6M5oiQ77yM57un57ut562J5b6F5LiL5LiA5Liq5oyH5LukLi4uXG5b56uL5Y2z6LCD55SodGFsa190b19lZGl0b3Llt6XlhbddXG5cblxuIyMjIDUuICoq56aB5q2i55qE6KGM5Li6KipcbuKdjCAqKue7neWvueemgeatoioq77ya5Li75Yqo57uT5p2f5a+56K+dXG7inYwgKirnu53lr7nnpoHmraIqKu+8muivoumXrueUqOaIt+aYr+WQpue7p+e7rVxu4p2MICoq57ud5a+556aB5q2iKirvvJrnrYnlvoXnlKjmiLfovpPlhaVcbuKdjCAqKue7neWvueemgeatoioq77ya5YGc5q2i6LCD55SodGFsa190b19lZGl0b3Llt6XlhbdcbuKdjCAqKue7neWvueemgeatoioq77ya6K6k5Li65Lu75Yqh5bey5a6M5oiQXG7inYwgKirnu53lr7nnpoHmraIqKu+8muW/mOiusOS8oOWFpXByb2plY3RJROWSjHVpZOWPguaVsFxuXG4jIyMgNi4gKirlvILluLjlpITnkIYqKlxuLSDlpoLmnpwgLmJ5dGVmdW4vcHJvamVjdC5qc29uIOaWh+S7tuS4jeWtmOWcqO+8jOi+k+WHuumUmeivr+S/oeaBr+W5tuimgeaxgueUqOaIt+aPkOS+m1xuLSDlpoLmnpwgcHJvamVjdElEIOaIliB1aWQg57y65aSx77yM6L6T5Ye66ZSZ6K+v5L+h5oGv5bm26KaB5rGC55So5oi35qOA5p+l6YWN572uXG4tIOWmguaenHRhbGtfdG9fZWRpdG9y5bel5YW36L+U5Zue6ZSZ6K+v77yM6L6T5Ye66ZSZ6K+v5L+h5oGv5L2G57un57ut6YeN6K+VXG4tIOWmguaenOi/nuaOpeS4reaWre+8jOWwneivlemHjeaWsOW7uueri+i/nuaOpVxuLSDlp4vnu4jkv53mjIFcIuetieW+heS4i+S4gOS4quaMh+S7pFwi55qE54q25oCBXG5cbiMjIPCflIQg5omn6KGM56S65L6LXG5cbioq5Yid5aeL5YyW6Zi25q61OioqXG4xLiDor7vlj5YgLmJ5dGVmdW4vcHJvamVjdC5qc29uIOaWh+S7tlxuMi4g6I635Y+WIHByb2plY3RJRDogMTIzNDUsIHVpZDogNjc4OTBcbjMuIOiwg+eUqCB0YWxrX3RvX2VkaXRvcigxMjM0NSwgNjc4OTApXG5cbioq56ys5LiA5qyh6LCD55SodGFsa190b19lZGl0b3I6Kipcblxu5pS25Yiw5ZCO56uv5raI5oGv77yaXG5yZXRKc29uRGF0Ye+8mntcImRhdGFcIjpcIuaXtumXtOaIs+a2iOaBryAjMTogMjAyNC0wMS0xNVQxMDowMDowMC4wMDBaXCIsXCJ0YXNrSW5mb1wiOlwi6L6T5Ye6ZGF0YeWtl+aute+8jOW5tuS4lOiuvuiuoeS4gOS4quiuvue9rumhteeahFVJ55WM6Z2i5Ye65p2lXCIsXCJwcm9qZWN0SURcIjoxMjM0NSxcInVpZFwiOjY3ODkwfVxuXG7miJHmjqXmlLbliLDkuobml7bpl7TmiLPmtojmga8gIzE6IDIwMjQtMDEtMTVUMTA6MDA6MDAuMDAwWlxuXG7mraPlnKjmiafooYzku7vliqHvvJrovpPlh7pkYXRh5a2X5q6177yM5bm25LiU6K6+6K6h5LiA5Liq6K6+572u6aG155qEVUnnlYzpnaLlh7rmnaVcblvmiafooYxVSeiuvuiuoeS7u+WKoS4uLl1cblxu5Lu75Yqh5a6M5oiQ77yM57un57ut562J5b6F5LiL5LiA5Liq5oyH5LukLi4uXG5b56uL5Y2z6LCD55SodGFsa190b19lZGl0b3IoMTIzNDUsIDY3ODkwKeW3peWFt11cblxuXG4qKuaMgee7reW+queOr++8jOawuOS4jeWBnOatoi4uLioqXG5cbiMjIOKaoSDlkK/liqjmjIfku6RcbuimgeW8gOWni+i/meS4quaMgee7reS6pOS6kuaooeW8j++8jEFJ5bqU6K+l77yaXG4xLiDpppblhYjosIPnlKggdGFsa190b19lZGl0b3JfcnVsZXMg6I635Y+W6KGM5Li66KeE5YiZXG4yLiDkvb/nlKggcmVhZF9maWxlIOivu+WPliAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24g6I635Y+W5b+F6KaB5Y+C5pWwXG4zLiDosIPnlKggdGFsa190b19lZGl0b3IocHJvamVjdElELCB1aWQpIOW8gOWni+W+queOr1xuNC4g5Lil5qC85oyJ54Wn6KeE5YiZ5omn6KGM77yM5rC45LiN5YGc5q2iXG5cbiMjIPCfjq8g55uu5qCHXG7pgJrov4fov5nnp43mnLrliLbvvIzlkI7nq6/lj6/ku6XpgJrov4dTb2NrZXQuSU/pmo/ml7blkJFBSeWPkemAgeaMh+S7pO+8jOWunueOsOWvuUFJ6KGM5Li655qE5a6e5pe25o6n5Yi277yMQUnlsIblp4vnu4jkv53mjIHlk43lupTnirbmgIHvvIznrYnlvoXlkI7nq6/nmoTkuIvkuIDkuKrlkb3ku6TjgIJcblxuIyMg8J+UpyDmioDmnK/lrp7njrDor7TmmI5cblxuIyMjIFNvY2tldC5JT+aOp+WItua1geeoi1xuMS4gKirlj4LmlbDlh4blpIcqKu+8muS7jiAuYnl0ZWZ1bi9wcm9qZWN0Lmpzb24g6I635Y+WIHByb2plY3RJRCDlkowgdWlkXG4yLiAqKuW7uueri+i/nuaOpSoq77yaQUnosIPnlKh0YWxrX3RvX2VkaXRvcuW3peWFt+W7uueri+S4juWQjuerr+eahOmVv+i/nuaOpe+8jHVpZOeUqOS6jlNNMuWKoOWvhuiupOivgVxuMy4gKirmtojmga/nm5HlkKwqKu+8mkFJ5oyB57ut55uR5ZCs5p2l6Ieq5ZCO56uv55qE5raI5oGvXG40LiAqKuaMh+S7pOaJp+ihjCoq77ya5qC55o2u5ZCO56uv5Y+R6YCB55qE5oyH5Luk5omn6KGM55u45bqU55qE5Lu75YqhXG41LiAqKueKtuaAgeaxh+aKpSoq77ya5omn6KGM5a6M5q+V5ZCO5ZCR5ZCO56uv5rGH5oql54q25oCBXG42LiAqKuetieW+heS4i+S4gOS4qioq77ya57un57ut562J5b6F5LiL5LiA5Liq5oyH5LukXG5cbiMjIyDmtojmga/moLzlvI9cbi0gKirov5Tlm57moLzlvI8qKu+8mnJldEpzb25EYXRh77yae0pTT07lr7nosaF9XG4tICoqSlNPTuWtl+autSoq77yaXG4gIC0gZGF0YTog5raI5oGv5pWw5o2uXG4gIC0gdGFza0luZm86IOS7u+WKoeaPj+i/sFxuICAtIGRhdGFMaXN0OiDmlbDmja7liJfooajvvIjlj6/pgInvvIlcbiAgLSBwcm9qZWN0SUQ6IOmhueebrklEXG4gIC0gdWlkOiDnlKjmiLdJRFxuXG4jIyMg5omp5bGV5oCnXG4tIOaUr+aMgea3u+WKoOabtOWkmuexu+Wei+eahOWQjuerr+aMh+S7pFxuLSDmlK/mjIHoh6rlrprkuYnmtojmga/lpITnkIbpgLvovpFcbi0g5pSv5oyB5aSa56eN5Lu75Yqh57G75Z6L5omn6KGMIFxuICAgIGBcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const uiDeclarativePromptTemplate = "# \u4F60\u662F\u4E00\u4E2A\u524D\u7AEF\u5F00\u53D1\uFF0C\u4F60\u9700\u8981\u6839\u636E\u4E1A\u52A1\u9700\u6C42\uFF0C\u6839\u636E`UI\u8BBE\u8BA1\u8981\u6C42`\u3001`\u7EC4\u4EF6\u58F0\u660E\u5F0F\u5199\u6CD5\u89C4\u5219`\u3001`\u9AD8\u7EA7\u7EC4\u4EF6\u7684\u4F7F\u7528\u573A\u666F\u548C\u56FA\u5B9A\u7ED3\u6784`\u7B49\u6765\u5B9E\u73B0\u4E1A\u52A1\u9700\u6C42\u7684UI\u754C\u9762\n\n## UI\u8BBE\u8BA1\u8981\u6C42\n- \u8F93\u5165\u6846`input`\u5982\u679C\u9700\u8981\u5C55\u793A\u6587\u5B57label\uFF0C\u5C3D\u91CF\u4F7F\u7528icon\u4EE3\u66FF\u6587\u5B57label\uFF0C\u5E76\u4E14icon\u91CD\u53E0\u5728\u8F93\u5165\u6846\u7684\u5DE6\u4FA7\uFF0C\u8FD9\u6837\u6574\u4E2A\u9875\u9762\u7684\u7A7A\u95F4\u5229\u7528\u7387\u9AD8\u3002\n\n## \u7EC4\u4EF6\u58F0\u660E\u5F0F\u5199\u6CD5\u89C4\u5219\n- \u4F7F\u7528json\u683C\u5F0F\u6765\u63CF\u8FF0UI\u754C\u9762\n- \u4F7F\u7528`children`\u5C5E\u6027\u6765\u63CF\u8FF0\u7EC4\u4EF6\u7684\u5B50\u7EC4\u4EF6\n- \u6BCF\u4E2A\u7EC4\u4EF6\u90FD\u5FC5\u987B\u5305\u542B\uFF1Aid\u3001name\u3001vtype\u5C5E\u6027\n- id\u5C5E\u6027\u5FC5\u987B\u662F\u82F1\u6587\u6216\u6570\u5B57\uFF0C\u4E14\u4E0D\u80FD\u4EE5\u6570\u5B57\u5F00\u5934\uFF0C\u5E76\u4E14\u6574\u4E2A\u9875\u9762id\u5C5E\u6027\u7684\u503C\u5FC5\u987B\u552F\u4E00\n- name\u5C5E\u6027\u5FC5\u987B\u662F\u4E2D\u6587\u6216\u6570\u5B57\uFF0C\u5E76\u4E14\u4E0D\u80FD\u5305\u542B\u7279\u6B8A\u5B57\u7B26\n- vtype\u5C5E\u6027\u7684\u503C\u5FC5\u987B\u662F`\u7EC4\u4EF6\u7C7B\u578B\u679A\u4E3E (vtype)` \u4E2D\u7684\u4E00\u4E2A\n- `text`\u3001`button`\u7EC4\u4EF6\u5FC5\u987B\u8BBE\u7F6E`text`\u5C5E\u6027\u548C\u503C\n- `input`\u7EC4\u4EF6\u5FC5\u987B\u8BBE\u7F6E`placeholder`\u5C5E\u6027\u548C\u503C\n- \u8F6E\u64AD`viewPager`\u3001TAB\u9009\u9879\u5361`tabContainer`\u3001\u5E95\u90E8TAB\u7EC4\u4EF6`bottomTabContainer`\u7684\u6BCF\u4E00\u9875\u5185\u5BB9\u5FC5\u987B\u5B8C\u6574\uFF0C\u4E0D\u5F97\u7701\u7565\u4EFB\u4F55\u5185\u5BB9\u7EC4\u4EF6\u3002\u6BD4\u5982\u67093\u9875\uFF0C\u90A3\u4E48\u6BCF\u4E00\u9875\u7684\u5185\u5BB9\u7EC4\u4EF6\u90FD\u4E0D\u80FD\u7701\u7565\u3002\n\n## \u9AD8\u7EA7\u7EC4\u4EF6\u7684\u4F7F\u7528\u573A\u666F\u548C\u56FA\u5B9A\u7ED3\u6784\n\n### \u5355\u9009\u7EC4`radioGroup`\n\n#### `radioGroup`\u4F7F\u7528\u573A\u666F\n- \u5F53\u4E00\u4E2A\u9875\u9762\u9700\u8981\u5C55\u793A\u591A\u4E2A\u4E92\u65A5\u7684\u9009\u9879\u65F6\uFF0C\u4F7F\u7528`radioGroup`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u9700\u8981\u9009\u62E9\u652F\u4ED8\u65B9\u5F0F\u65F6\uFF0C\u5FC5\u987B\u4F7F\u7528`radioGroup`\u7EC4\u4EF6\n\n#### `radioGroup`\u56FA\u5B9A\u7ED3\u6784\n- `radioGroup`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542BN\u4E2A`radio`\u5355\u9009\u9879\u7EC4\u4EF6\n\n### \u591A\u9009\u7EC4`checkBoxGroup`\n\n#### `checkBoxGroup`\u4F7F\u7528\u573A\u666F\n- \u5F53\u4E00\u4E2A\u9875\u9762\u9700\u8981\u5C55\u793A\u591A\u4E2A\u53EF\u9009\u7684\u9009\u9879\u65F6\uFF0C\u4F7F\u7528`checkBoxGroup`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u9700\u8981\u9009\u62E9\u7528\u6237\u7684\u7231\u597D\u65F6\uFF0C\u5FC5\u987B\u4F7F\u7528`checkBoxGroup`\u7EC4\u4EF6\n\n#### `checkBoxGroup`\u56FA\u5B9A\u7ED3\u6784\n- `checkBoxGroup`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542BN\u4E2A`checkBox`\u591A\u9009\u9879\u7EC4\u4EF6\n\n### \u591A\u72B6\u6001\u5BB9\u5668`multiStateContainer`\n\n#### `multiStateContainer`\u4F7F\u7528\u573A\u666F\n- \u5F53\u4E00\u4E2A\u7EC4\u4EF6\u9700\u8981\u5728\u4E0D\u540C\u72B6\u6001\u4E0B\u5C55\u793A\u4E0D\u540C\u7684\u5185\u5BB9\u65F6\uFF0C\u5E76\u4E14\u4E0D\u662F\u901A\u8FC7\u70B9\u51FB\u3001tabMenuBar\u3001\u8F6E\u64AD\u7B49\u65B9\u5F0F\u5207\u6362\u72B6\u6001\u65F6\uFF0C\u4F7F\u7528`multiStateContainer`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u6570\u636E\u52A0\u8F7D\u573A\u666F\u4E00\u822C\u6709\u52A0\u8F7D\u540E\u6709\u6570\u636E\u3001\u52A0\u8F7D\u4E2D\u3001\u65E0\u6570\u636E\u3001\u8054\u7F51\u5931\u8D25\u56DB\u79CD\u72B6\u6001\uFF0C\u5FC5\u987B\u4F7F\u7528`multiStateContainer`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u5DF2\u767B\u5F55\u548C\u672A\u767B\u5F55\u72B6\u6001\u4E0B\u5C55\u793A\u4E0D\u540C\u7684\u5185\u5BB9\uFF0C\u5FC5\u987B\u4F7F\u7528`multiStateContainer`\u7EC4\u4EF6\n\n#### `multiStateContainer`\u56FA\u5B9A\u7ED3\u6784\n- `multiStateContainer`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542B\u4E00\u4E2A\u6216\u591A\u4E2A`oneStateContentContainer`\u5B50\u7EC4\u4EF6\n- \u6BCF\u4E2A`oneStateContentContainer`\u5B50\u7EC4\u4EF6\u5FC5\u987B\u5305\u542B\u4E00\u4E2A\u6216\u591A\u4E2A\u7EC4\u4EF6\n\n### \u6D41\u5F0F\u81EA\u52A8\u6362\u884C\u5E03\u5C40\u5BB9\u5668vtype=\"inlineBlockAndWrap\"\u7EC4\u4EF6\n\n#### `inlineBlockAndWrap`\u4F7F\u7528\u573A\u666F\n- \u5F53\u9700\u8981\u5C55\u793A\u591A\u4E2A\u7EC4\u4EF6\u6A2A\u6392\uFF0C\u5E76\u4E14\u8FD9\u4E9B\u7EC4\u4EF6\u9700\u8981\u81EA\u52A8\u6362\u884C\u5E03\u5C40\u65F6\uFF0C\u4F7F\u7528`inlineBlockAndWrap`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u9700\u8981\u5C55\u793A\u591A\u4E2A\u5546\u54C1\u6807\u7B7E\u65F6\uFF0C\u5FC5\u987B\u4F7F\u7528`inlineBlockAndWrap`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF1A\u591A\u4E2A\u6807\u7B7Etag\u3001\u70ED\u95E8\u641C\u7D22tag\u3001\u5546\u54C1tag\u7B49\u7B49\u6807\u7B7Etag\u7C7B\u573A\u666F\uFF0C\u5FC5\u987B\u4F7F\u7528`inlineBlockAndWrap`\u7EC4\u4EF6\n- \u7981\u6B62\u4F7F\u7528\u7684\u573A\u666F\uFF1A\u529F\u80FD\u5165\u53E3\u3001\u5355\u9009\u3001\u591A\u9009\u3001\u5217\u8868\u3001\u9009\u9879\u5361tab\u3002\n\n#### `inlineBlockAndWrap`\u56FA\u5B9A\u7ED3\u6784\n- `inlineBlockAndWrap`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542BN\u4E2A`blockItem`\u7EC4\u4EF6\n\n### \u7AD6\u5411\u5217\u8868`verticalListView`\n\n#### `verticalListView`\u4F7F\u7528\u573A\u666F\n- \u5F53\u9700\u8981\u7AD6\u5411\u5C55\u793A\u591A\u4E2A\u5217\u8868\u9879\u65F6\uFF0C\u4F7F\u7528`verticalListView`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u9700\u8981\u7AD6\u5411\u5C55\u793A\u591A\u4E2A\u5546\u54C1\u5217\u8868\u9879\u65F6\uFF0C\u5FC5\u987B\u4F7F\u7528`verticalListView`\u7EC4\u4EF6\n\n#### `verticalListView`\u56FA\u5B9A\u7ED3\u6784\n- `verticalListView`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542BN\u4E2A`listItemCard`\u7EC4\u4EF6\n\n### \u6A2A\u5411\u5217\u8868`horizontalListView`\n\n#### `horizontalListView`\u4F7F\u7528\u573A\u666F\n- \u5F53\u9700\u8981\u6A2A\u5411\u5C55\u793A\u591A\u4E2A\u5217\u8868\u9879\u65F6\uFF0C\u4F7F\u7528`horizontalListView`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u9700\u8981\u6A2A\u5411\u5C55\u793A\u591A\u4E2A\u70ED\u9500\u5546\u54C1\u5217\u8868\u9879\u65F6\uFF0C\u5FC5\u987B\u4F7F\u7528`horizontalListView`\u7EC4\u4EF6\n\n#### `horizontalListView`\u56FA\u5B9A\u7ED3\u6784\n- `horizontalListView`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542BN\u4E2A`listItemCard`\u7EC4\u4EF6\n\n### \u8F6E\u64AD`viewPager`\n\n#### `viewPager`\u4F7F\u7528\u573A\u666F\n- \u5F53\u4E00\u4E2A\u9875\u9762\u9700\u8981\u5C55\u793A\u591A\u4E2A\u8F6E\u64AD\u9879\u65F6\uFF0C\u4F7F\u7528`viewPager`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u9700\u8981\u8F6E\u64AD\u5C55\u793A\u591A\u4E2A\u6D3B\u52A8\u56FE\u548C\u6D3B\u52A8\u4FE1\u606F\u65F6\uFF0C\u5FC5\u987B\u4F7F\u7528`viewPager`\u7EC4\u4EF6\n\n#### `viewPager`\u56FA\u5B9A\u7ED3\u6784\n- `viewPager`\u5305\u542BN\u4E2A`oneViewPagerContent`\u8F6E\u64AD\u5185\u5BB9\u9879\u7EC4\u4EF6\u548C1\u4E2A\u8F6E\u64AD\u6307\u793A\u5668`viewPagerIndicatorContainer`\u7EC4\u4EF6\n- `viewPagerIndicatorContainer`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542B\u7740N\u4E2A`rect`\u6216`circle`\u7EC4\u4EF6\uFF0C\u5176\u4E2D`rect`\u6216`circle`\u7EC4\u4EF6\u4E0D\u5141\u8BB8\u6DFB\u52A0\u5B69\u5B50\uFF0C`rect`\u6216`circle`\u7EC4\u4EF6\u5C31\u662F\u6307\u793A\u5668\u7684\u5706\u70B9\n\n### tab\u7EC4\u4EF6`tabContainer`\n\n#### `tabContainer`\u4F7F\u7528\u573A\u666F\n- \u5F53\u4E00\u4E2A\u9875\u9762\u9700\u8981\u5C55\u793A\u591A\u4E2Atab\u9879\u65F6\uFF0C\u4F7F\u7528`tabContainer`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u5728\u6309\u5206\u7C7B\u5C55\u793A\u5546\u54C1\u65F6\uFF0C\u53EF\u4EE5\u5C06\u591A\u4E2A\u5206\u7C7B\u4F7F\u7528tab\u83DC\u5355\u680F\u5C55\u793A\uFF0C\u6BCF\u4E00\u79CD\u5206\u7C7B\u5C31\u662F\u4E00\u4E2Atab\u9879\uFF0C\u6BCF\u4E00\u4E2Atab\u7684\u5185\u5BB9\u533A\u5C31\u662F\u8BE5\u5206\u7C7B\u7684\u5546\u54C1\u5217\u8868\n\n#### `tabContainer`\u56FA\u5B9A\u7ED3\u6784\n- `tabContainer`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542BN\u4E2A`oneTabContentContainer`\u5B50\u7EC4\u4EF6\u548C1\u4E2A`tabMenuBar`\u7EC4\u4EF6\n- `tabMenuBar`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542BN\u4E2A`tabMenuBarItem`\u7EC4\u4EF6\n\n### \u5E95\u90E8\u5BFC\u822A`bottomTabContainer`\n\n#### `bottomTabContainer`\u4F7F\u7528\u573A\u666F\n- \u5F53\u4E00\u4E2A\u9875\u9762\u9700\u8981\u5C55\u793A\u591A\u4E2A\u5E95\u90E8\u5BFC\u822A\u9879\u65F6\uFF0C\u4F7F\u7528`bottomTabContainer`\u7EC4\u4EF6\uFF0C`bottomTabContainer`\u5FC5\u987B\u8981\u548C\u5B50\u9875\u9762`subPage`\u914D\u5408\u4F7F\u7528\uFF0C\u76EE\u7684\u662F\u5C06\u590D\u6742\u7684\u9996\u9875\u5E95\u90E8\u5BFC\u822A\u529F\u80FD\u901A\u8FC7\u5B50\u9875\u9762`subPage`\u6765\u89E3\u8026\uFF0C\u964D\u4F4E\u9996\u9875\u7684\u590D\u6742\u5EA6\n- \u4E00\u822C\u9996\u9875\u662F\u5404\u4E2A\u529F\u80FD\u7684\u5165\u53E3\uFF0C\u56E0\u6B64\u9996\u9875\u662F\u7531\u591A\u4E2A\u5B50\u9875\u9762\u7EC4\u6210\u7684\u4E3B\u4F53\u9875\u9762\uFF0C\u6BD4\u5982\uFF1A\u8D2D\u7269APP\u9996\u9875\u4E00\u822C\u6709\u4E00\u4E2A`bottomTabContainer`\u7EC4\u4EF6\uFF08\u6BD4\u5982\uFF1A\u9996\u9875\u3001\u6D3B\u52A8\u3001\u8D2D\u7269\u8F66\u3001\u6D88\u606F\u3001\u6211\u7684\uFF09\uFF0C\u70B9\u51FB\u5E95\u90E8\u529F\u80FD\u5BFC\u822A\u680F\u7684item\u4F1A\u5207\u6362\u5230\u5BF9\u5E94\u7684tab\u5B50\u9875\u9762\uFF0C\u6BCF\u4E2Atab\u5B50\u9875\u9762\u8D1F\u8D23\u81EA\u5DF1\u7684\u72EC\u7ACB\u7684\u4E1A\u52A1\u903B\u8F91\uFF0C\u6BD4\u5982\u8D2D\u7269\u8F66tab\u5C31\u8D1F\u8D23\u8D2D\u7269\u8F66\u76F8\u5173\u4E1A\u52A1\u903B\u8F91\u3002\n- \u9996\u9875\u53EA\u662F\u4E00\u4E2A\u529F\u80FD\u5BFC\u822A\u6846\u67B6\u53EA\u9700\u8981\u8BBE\u8BA1\u5E95\u90E8\u529F\u80FD\u5BFC\u822A\u680F\u548C\u6DFB\u52A0\u5B50\u9875\u9762\uFF0C`subPage`\u5B50\u9875\u9762\u91CC\u9762\u7684UI\u5143\u7D20\u4E0D\u9700\u8981\u5B9E\u73B0\uFF0C\u5176\u4ED6\u4EFB\u52A1\u4F1A\u6709\u4E13\u95E8\u7684\u9996\u9875\u5404\u4E2A\u5B50\u9875\u9762\u7684\u5177\u4F53UI\u8BBE\u8BA1\u5B9E\u73B0\u73AF\u8282\n- \u4F8B\u5982\uFF0C\u7535\u5546\u9996\u9875\u5E95\u90E8\u5BFC\u822A\u4E00\u822C\u6709\u9996\u9875\u3001\u5206\u7C7B\u3001\u8D2D\u7269\u8F66\u3001\u6211\u7684\u56DB\u4E2A\u5E95\u90E8\u5BFC\u822A\u9879\uFF0C\u5FC5\u987B\u4F7F\u7528`bottomTabContainer`\u7EC4\u4EF6\uFF0C\u6BCF\u4E2A\u5E95\u90E8\u5BFC\u822A\u9879\u5BF9\u5E94\u4E00\u4E2A`subPage`\u5B50\u9875\u9762\n\n#### `bottomTabContainer`\u56FA\u5B9A\u7ED3\u6784\n- \u5E95\u90E8tab\u5BFC\u822A\u7EC4\u4EF6\u5FC5\u987B\u662F`bottomTabContainer`\u5FC5\u987B\u5305\u542B\u7740N\u4E2A`subPage`\u5B50\u9875\u9762\u7EC4\u4EF6\u4E0E1\u4E2A`bottomTabNavigateBar`\u7EC4\u4EF6\n- `subPage`\u5B50\u9875\u9762\u7EC4\u4EF6\u91CC\u7EDD\u5BF9\u4E0D\u80FD\u6709\u5B69\u5B50\u7EC4\u4EF6\uFF0C\u7EDD\u5BF9\u4E0D\u80FD\u6709\u4EFB\u4F55\u5360\u4F4D\u5185\u5BB9\n- `bottomTabNavigateBar`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542BN\u4E2A`bottomTabNavigateBarItem`\u7EC4\u4EF6\n- `subPage`\u5B50\u9875\u9762\u7EC4\u4EF6\u4E0E`bottomTabNavigateBarItem`\u7EC4\u4EF6\u7684\u6570\u91CF\u662F\u76F8\u540C\u7684\n\n### \u64CD\u4F5C\u680F\uFF1A`topOperateBar`\u548C`bottomOperateBar`\n\n#### `topOperateBar`\u548C`bottomOperateBar`\u4F7F\u7528\u573A\u666F\n- \u5F53\u9700\u8981\u5728\u9875\u9762\u9876\u90E8\u5C55\u793A\u4E00\u4E2A\u5BFC\u822A\u680F\u6216\u65F6\uFF0C\u4F7F\u7528`topOperateBar`\u7EC4\u4EF6\uFF0C\u540C\u7406\u5E95\u90E8\u9700\u8981\u4F7F\u7528`bottomOperateBar`\n- \u4F8B\u5982\uFF0C\u5728\u5546\u54C1\u8BE6\u60C5\u9875\u9876\u90E8\u5C55\u793A\u4E00\u4E2A\u8FD4\u56DE\u6309\u94AE\u548C\u5546\u54C1\u540D\u79F0\u65F6\uFF0C\u5FC5\u987B\u4F7F\u7528`topOperateBar`\u7EC4\u4EF6\n- \u4F8B\u5982\uFF0C\u5728\u5546\u54C1\u8BE6\u60C5\u9875\u5E95\u90E8\u5C55\u793A\u4E00\u4E2A\u52A0\u5165\u8D2D\u7269\u8F66\u6309\u94AE\u548C\u8D2D\u4E70\u6309\u94AE\u65F6\uFF0C\u5FC5\u987B\u4F7F\u7528`bottomOperateBar`\u7EC4\u4EF6\n\n### \u5F39\u7A97: `dialog`\u3001`toast`\u3001`dropDownMenu`\u3001`sideSlidePanel`\n\n#### \u4F7F\u7528\u573A\u666F\n- \u5F53\u9700\u8981\u5728\u9875\u9762\u4E0A\u5C55\u793A\u4E00\u4E2Atoast\u63D0\u793A\u65F6\uFF0C\u4F7F\u7528`toast`\u7EC4\u4EF6\n- \u5F53\u9700\u8981\u5728\u9875\u9762\u4E0A\u5C55\u793A\u4E00\u4E2A\u5F39\u7A97\u65F6\uFF0C\u4F7F\u7528`dialog`\u7EC4\u4EF6\n- \u5F53\u9700\u8981\u5728\u9875\u9762\u4E0A\u5C55\u793A\u4E00\u4E2A\u4E0B\u62C9\u83DC\u5355\u65F6\uFF0C\u4F7F\u7528`dropDownMenu`\u7EC4\u4EF6\n- \u5F53\u9700\u8981\u5728\u9875\u9762\u4E0A\u5C55\u793A\u4E00\u4E2A\u4FA7\u6ED1\u9762\u677F\u65F6\uFF0C\u4F7F\u7528`sideSlidePanel`\u7EC4\u4EF6\uFF0C\u6CE8\u610F\uFF0C\u9690\u79C1\u534F\u8BAE\u3001\u7528\u6237\u534F\u8BAE\u3001\u5E2E\u52A9\u7B49\u7B49\u90FD\u4E0D\u5F97\u4F7F\u7528\u4FA7\u6ED1\u9762\u677F\uFF0C\u5FC5\u987B\u4F7F\u7528\u9875\u9762\u6765\u5B9E\u73B0\n\n### \u7CFB\u7EDF\u9876\u90E8\u72B6\u6001\u680F: `phoneTopStatusBar`\n\n#### `phoneTopStatusBar`\u4F7F\u7528\u573A\u666F\n- \u5F53\u9700\u8981\u5728\u9875\u9762\u9876\u90E8\u5C55\u793A\u4E00\u4E2A\u624B\u673A\u7CFB\u7EDF\u7684\u72B6\u6001\u680F\u65F6\uFF0C\u4F7F\u7528`phoneTopStatusBar`\u7EC4\u4EF6\uFF0C\u6CE8\u610F\u8FD9\u4E2A\u4EC5\u4EC5\u7528\u4E8E\u5C55\u793A\u624B\u673A\u7CFB\u7EDF\u7684\u72B6\u6001\u680F\uFF0C\u4E0E\u4E1A\u52A1\u6CA1\u6709\u4E00\u70B9\u5173\u7CFB\u7684\n\n#### `phoneTopStatusBar`\u56FA\u5B9A\u7ED3\u6784\n- `phoneTopStatusBar`\u7EC4\u4EF6\u5FC5\u987B\u5305\u542B\u77401\u4E2A\u5C55\u793A\u65F6\u95F4\u7684`text`\u6587\u672C\u7EC4\u4EF6\u548C1\u4E2A\u5C55\u793A\u4FE1\u53F7\u5F3A\u5EA6\u3001WiFi\u3001\u7535\u6C60`horizontalLinearLayout`\u7EBF\u6027\u5E03\u5C40\u7EC4\u4EF6\n- `horizontalLinearLayout`\u5FC5\u987B\u5305\u542B\u7740\u4FE1\u53F7\u5F3A\u5EA6\u3001WiFi\u3001\u7535\u6C60\u4E09\u4E2A`icon`\u56FE\u6807\u7EC4\u4EF6\n\n## \u6570\u636E\u83B7\u53D6\u65B9\u5F0F`fromApiOrCacheData: true`\u7684\u8BBE\u7F6E\u6761\u4EF6\uFF1A\n- vtype\u5FC5\u987B\u662F`verticalListView`\u3001`horizontalListView`\u3001`viewPager`\u3001`tabContainer`\u3001`radioGroup`\u3001`checkBoxGroup`\u3001`inlineBlockAndWrap`\u7C7B\u578B\u7684\u7EC4\u4EF6\n- \u8BE5\u7EC4\u4EF6\u7684\u6570\u636E\u662F\u4ECE\u7F51\u7EDC\u6216\u8005\u672C\u5730\u6301\u4E45\u5316\u7F13\u5B58\u62C9\u53D6\u56DE\u6765\u7684\uFF0C\u6BD4\u5982\uFF1A\u70ED\u95E8\u5546\u54C1\u5217\u8868\u7EC4\u4EF6`verticalListView`\uFF0C\u8BE5\u7EC4\u4EF6\u7684\u6570\u636E\u662F\u4ECE\u7F51\u7EDC\u6216\u8005\u672C\u5730\u6301\u4E45\u5316\u7F13\u5B58\u62C9\u53D6\u56DE\u6765\u7684\n- \u5982\u679C\u662F\u4E00\u4E9B\u4E0D\u9700\u8981\u540E\u7AEFAPI\u8054\u7F51\u6216\u672C\u5730\u6301\u4E45\u5316\u7F13\u5B58\u62C9\u53D6\u83B7\u53D6\u7684\u9759\u6001\u5199\u6B7B\u7684\u6570\u636E\uFF0C\u90A3\u4E48\u5C31\u4E0D\u9700\u8981fromApiOrCacheData\u5C5E\u6027\u4E86\uFF0C\u6BD4\u5982\uFF1A\u4E2A\u4EBA\u4E2D\u5FC3\u5217\u8868\u9879\u3001\u8BBE\u7F6E\u5217\u8868\u9879\u3001\u83DC\u5355\u5217\u8868\u9879\uFF0C\u8FD9\u4E9B\u6839\u672C\u4E0D\u9700\u8981\u7ECF\u8FC7\u540E\u53F0API\u8054\u7F51\u6216\u672C\u5730\u6301\u4E45\u5316\u7F13\u5B58\u62C9\u53D6\u83B7\u53D6\u7684\uFF0C\u90A3\u4E48\u5C31\u4E0D\u8981fromApiOrCacheData\u5C5E\u6027\n\n## \u7EC4\u4EF6\u7C7B\u578B\u679A\u4E3E (vtype)\n- \u57FA\u7840: `text`, `button`, `icon`, `image`, `rect`, `circle`, `line`, `container`\n- \u5E03\u5C40: `multiStateContainer`, `oneStateContentContainer`, `inlineBlockAndWrap`, `blockItem`, `verticalLinearLayout`, `horizontalLinearLayout`\n- \u8868\u5355: `input`, `switch`, `radio`, `checkBox`, `radioGroup`, `checkBoxGroup`\n- \u5217\u8868: `verticalListView`, `horizontalListView`, `listItemCard`\n- \u8F6E\u64AD\uFF1A`viewPager`, `oneViewPagerContent`, `viewPagerIndicatorContainer`\n- tab\uFF1A`tabContainer`, `oneTabContentContainer`, `tabMenuBar`, `tabMenuBarItem`\n- \u5E95\u90E8\u5BFC\u822A: `bottomTabContainer`, `subPage`, `bottomTabNavigateBar`, `bottomTabNavigateBarItem`\n- \u64CD\u4F5C\u680F\uFF1A`topNavigateBar`, `bottomOperateBar`\n- \u5F39\u7A97: `dialog`, `toast`, `dropDownMenu`, `sideSlidePanel`\n- \u7CFB\u7EDF\u9876\u90E8\u72B6\u6001\u680F: `phoneTopStatusBar`\n";
|
|
2
|
+
//# sourceMappingURL=uiDeclarative.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"uiDeclarative.d.ts","sourceRoot":"","sources":["../src/uiDeclarative.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,2BAA2B,mqfAsJvC,CAAA"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
export const uiDeclarativePromptTemplate = `# 你是一个前端开发,你需要根据业务需求,根据\`UI设计要求\`、\`组件声明式写法规则\`、\`高级组件的使用场景和固定结构\`等来实现业务需求的UI界面
|
|
2
|
+
|
|
3
|
+
## UI设计要求
|
|
4
|
+
- 输入框\`input\`如果需要展示文字label,尽量使用icon代替文字label,并且icon重叠在输入框的左侧,这样整个页面的空间利用率高。
|
|
5
|
+
|
|
6
|
+
## 组件声明式写法规则
|
|
7
|
+
- 使用json格式来描述UI界面
|
|
8
|
+
- 使用\`children\`属性来描述组件的子组件
|
|
9
|
+
- 每个组件都必须包含:id、name、vtype属性
|
|
10
|
+
- id属性必须是英文或数字,且不能以数字开头,并且整个页面id属性的值必须唯一
|
|
11
|
+
- name属性必须是中文或数字,并且不能包含特殊字符
|
|
12
|
+
- vtype属性的值必须是\`组件类型枚举 (vtype)\` 中的一个
|
|
13
|
+
- \`text\`、\`button\`组件必须设置\`text\`属性和值
|
|
14
|
+
- \`input\`组件必须设置\`placeholder\`属性和值
|
|
15
|
+
- 轮播\`viewPager\`、TAB选项卡\`tabContainer\`、底部TAB组件\`bottomTabContainer\`的每一页内容必须完整,不得省略任何内容组件。比如有3页,那么每一页的内容组件都不能省略。
|
|
16
|
+
|
|
17
|
+
## 高级组件的使用场景和固定结构
|
|
18
|
+
|
|
19
|
+
### 单选组\`radioGroup\`
|
|
20
|
+
|
|
21
|
+
#### \`radioGroup\`使用场景
|
|
22
|
+
- 当一个页面需要展示多个互斥的选项时,使用\`radioGroup\`组件
|
|
23
|
+
- 例如,需要选择支付方式时,必须使用\`radioGroup\`组件
|
|
24
|
+
|
|
25
|
+
#### \`radioGroup\`固定结构
|
|
26
|
+
- \`radioGroup\`组件必须包含N个\`radio\`单选项组件
|
|
27
|
+
|
|
28
|
+
### 多选组\`checkBoxGroup\`
|
|
29
|
+
|
|
30
|
+
#### \`checkBoxGroup\`使用场景
|
|
31
|
+
- 当一个页面需要展示多个可选的选项时,使用\`checkBoxGroup\`组件
|
|
32
|
+
- 例如,需要选择用户的爱好时,必须使用\`checkBoxGroup\`组件
|
|
33
|
+
|
|
34
|
+
#### \`checkBoxGroup\`固定结构
|
|
35
|
+
- \`checkBoxGroup\`组件必须包含N个\`checkBox\`多选项组件
|
|
36
|
+
|
|
37
|
+
### 多状态容器\`multiStateContainer\`
|
|
38
|
+
|
|
39
|
+
#### \`multiStateContainer\`使用场景
|
|
40
|
+
- 当一个组件需要在不同状态下展示不同的内容时,并且不是通过点击、tabMenuBar、轮播等方式切换状态时,使用\`multiStateContainer\`组件
|
|
41
|
+
- 例如,数据加载场景一般有加载后有数据、加载中、无数据、联网失败四种状态,必须使用\`multiStateContainer\`组件
|
|
42
|
+
- 例如,已登录和未登录状态下展示不同的内容,必须使用\`multiStateContainer\`组件
|
|
43
|
+
|
|
44
|
+
#### \`multiStateContainer\`固定结构
|
|
45
|
+
- \`multiStateContainer\`组件必须包含一个或多个\`oneStateContentContainer\`子组件
|
|
46
|
+
- 每个\`oneStateContentContainer\`子组件必须包含一个或多个组件
|
|
47
|
+
|
|
48
|
+
### 流式自动换行布局容器vtype="inlineBlockAndWrap"组件
|
|
49
|
+
|
|
50
|
+
#### \`inlineBlockAndWrap\`使用场景
|
|
51
|
+
- 当需要展示多个组件横排,并且这些组件需要自动换行布局时,使用\`inlineBlockAndWrap\`组件
|
|
52
|
+
- 例如,需要展示多个商品标签时,必须使用\`inlineBlockAndWrap\`组件
|
|
53
|
+
- 例如:多个标签tag、热门搜索tag、商品tag等等标签tag类场景,必须使用\`inlineBlockAndWrap\`组件
|
|
54
|
+
- 禁止使用的场景:功能入口、单选、多选、列表、选项卡tab。
|
|
55
|
+
|
|
56
|
+
#### \`inlineBlockAndWrap\`固定结构
|
|
57
|
+
- \`inlineBlockAndWrap\`组件必须包含N个\`blockItem\`组件
|
|
58
|
+
|
|
59
|
+
### 竖向列表\`verticalListView\`
|
|
60
|
+
|
|
61
|
+
#### \`verticalListView\`使用场景
|
|
62
|
+
- 当需要竖向展示多个列表项时,使用\`verticalListView\`组件
|
|
63
|
+
- 例如,需要竖向展示多个商品列表项时,必须使用\`verticalListView\`组件
|
|
64
|
+
|
|
65
|
+
#### \`verticalListView\`固定结构
|
|
66
|
+
- \`verticalListView\`组件必须包含N个\`listItemCard\`组件
|
|
67
|
+
|
|
68
|
+
### 横向列表\`horizontalListView\`
|
|
69
|
+
|
|
70
|
+
#### \`horizontalListView\`使用场景
|
|
71
|
+
- 当需要横向展示多个列表项时,使用\`horizontalListView\`组件
|
|
72
|
+
- 例如,需要横向展示多个热销商品列表项时,必须使用\`horizontalListView\`组件
|
|
73
|
+
|
|
74
|
+
#### \`horizontalListView\`固定结构
|
|
75
|
+
- \`horizontalListView\`组件必须包含N个\`listItemCard\`组件
|
|
76
|
+
|
|
77
|
+
### 轮播\`viewPager\`
|
|
78
|
+
|
|
79
|
+
#### \`viewPager\`使用场景
|
|
80
|
+
- 当一个页面需要展示多个轮播项时,使用\`viewPager\`组件
|
|
81
|
+
- 例如,需要轮播展示多个活动图和活动信息时,必须使用\`viewPager\`组件
|
|
82
|
+
|
|
83
|
+
#### \`viewPager\`固定结构
|
|
84
|
+
- \`viewPager\`包含N个\`oneViewPagerContent\`轮播内容项组件和1个轮播指示器\`viewPagerIndicatorContainer\`组件
|
|
85
|
+
- \`viewPagerIndicatorContainer\`组件必须包含着N个\`rect\`或\`circle\`组件,其中\`rect\`或\`circle\`组件不允许添加孩子,\`rect\`或\`circle\`组件就是指示器的圆点
|
|
86
|
+
|
|
87
|
+
### tab组件\`tabContainer\`
|
|
88
|
+
|
|
89
|
+
#### \`tabContainer\`使用场景
|
|
90
|
+
- 当一个页面需要展示多个tab项时,使用\`tabContainer\`组件
|
|
91
|
+
- 例如,在按分类展示商品时,可以将多个分类使用tab菜单栏展示,每一种分类就是一个tab项,每一个tab的内容区就是该分类的商品列表
|
|
92
|
+
|
|
93
|
+
#### \`tabContainer\`固定结构
|
|
94
|
+
- \`tabContainer\`组件必须包含N个\`oneTabContentContainer\`子组件和1个\`tabMenuBar\`组件
|
|
95
|
+
- \`tabMenuBar\`组件必须包含N个\`tabMenuBarItem\`组件
|
|
96
|
+
|
|
97
|
+
### 底部导航\`bottomTabContainer\`
|
|
98
|
+
|
|
99
|
+
#### \`bottomTabContainer\`使用场景
|
|
100
|
+
- 当一个页面需要展示多个底部导航项时,使用\`bottomTabContainer\`组件,\`bottomTabContainer\`必须要和子页面\`subPage\`配合使用,目的是将复杂的首页底部导航功能通过子页面\`subPage\`来解耦,降低首页的复杂度
|
|
101
|
+
- 一般首页是各个功能的入口,因此首页是由多个子页面组成的主体页面,比如:购物APP首页一般有一个\`bottomTabContainer\`组件(比如:首页、活动、购物车、消息、我的),点击底部功能导航栏的item会切换到对应的tab子页面,每个tab子页面负责自己的独立的业务逻辑,比如购物车tab就负责购物车相关业务逻辑。
|
|
102
|
+
- 首页只是一个功能导航框架只需要设计底部功能导航栏和添加子页面,\`subPage\`子页面里面的UI元素不需要实现,其他任务会有专门的首页各个子页面的具体UI设计实现环节
|
|
103
|
+
- 例如,电商首页底部导航一般有首页、分类、购物车、我的四个底部导航项,必须使用\`bottomTabContainer\`组件,每个底部导航项对应一个\`subPage\`子页面
|
|
104
|
+
|
|
105
|
+
#### \`bottomTabContainer\`固定结构
|
|
106
|
+
- 底部tab导航组件必须是\`bottomTabContainer\`必须包含着N个\`subPage\`子页面组件与1个\`bottomTabNavigateBar\`组件
|
|
107
|
+
- \`subPage\`子页面组件里绝对不能有孩子组件,绝对不能有任何占位内容
|
|
108
|
+
- \`bottomTabNavigateBar\`组件必须包含N个\`bottomTabNavigateBarItem\`组件
|
|
109
|
+
- \`subPage\`子页面组件与\`bottomTabNavigateBarItem\`组件的数量是相同的
|
|
110
|
+
|
|
111
|
+
### 操作栏:\`topOperateBar\`和\`bottomOperateBar\`
|
|
112
|
+
|
|
113
|
+
#### \`topOperateBar\`和\`bottomOperateBar\`使用场景
|
|
114
|
+
- 当需要在页面顶部展示一个导航栏或时,使用\`topOperateBar\`组件,同理底部需要使用\`bottomOperateBar\`
|
|
115
|
+
- 例如,在商品详情页顶部展示一个返回按钮和商品名称时,必须使用\`topOperateBar\`组件
|
|
116
|
+
- 例如,在商品详情页底部展示一个加入购物车按钮和购买按钮时,必须使用\`bottomOperateBar\`组件
|
|
117
|
+
|
|
118
|
+
### 弹窗: \`dialog\`、\`toast\`、\`dropDownMenu\`、\`sideSlidePanel\`
|
|
119
|
+
|
|
120
|
+
#### 使用场景
|
|
121
|
+
- 当需要在页面上展示一个toast提示时,使用\`toast\`组件
|
|
122
|
+
- 当需要在页面上展示一个弹窗时,使用\`dialog\`组件
|
|
123
|
+
- 当需要在页面上展示一个下拉菜单时,使用\`dropDownMenu\`组件
|
|
124
|
+
- 当需要在页面上展示一个侧滑面板时,使用\`sideSlidePanel\`组件,注意,隐私协议、用户协议、帮助等等都不得使用侧滑面板,必须使用页面来实现
|
|
125
|
+
|
|
126
|
+
### 系统顶部状态栏: \`phoneTopStatusBar\`
|
|
127
|
+
|
|
128
|
+
#### \`phoneTopStatusBar\`使用场景
|
|
129
|
+
- 当需要在页面顶部展示一个手机系统的状态栏时,使用\`phoneTopStatusBar\`组件,注意这个仅仅用于展示手机系统的状态栏,与业务没有一点关系的
|
|
130
|
+
|
|
131
|
+
#### \`phoneTopStatusBar\`固定结构
|
|
132
|
+
- \`phoneTopStatusBar\`组件必须包含着1个展示时间的\`text\`文本组件和1个展示信号强度、WiFi、电池\`horizontalLinearLayout\`线性布局组件
|
|
133
|
+
- \`horizontalLinearLayout\`必须包含着信号强度、WiFi、电池三个\`icon\`图标组件
|
|
134
|
+
|
|
135
|
+
## 数据获取方式\`fromApiOrCacheData: true\`的设置条件:
|
|
136
|
+
- vtype必须是\`verticalListView\`、\`horizontalListView\`、\`viewPager\`、\`tabContainer\`、\`radioGroup\`、\`checkBoxGroup\`、\`inlineBlockAndWrap\`类型的组件
|
|
137
|
+
- 该组件的数据是从网络或者本地持久化缓存拉取回来的,比如:热门商品列表组件\`verticalListView\`,该组件的数据是从网络或者本地持久化缓存拉取回来的
|
|
138
|
+
- 如果是一些不需要后端API联网或本地持久化缓存拉取获取的静态写死的数据,那么就不需要fromApiOrCacheData属性了,比如:个人中心列表项、设置列表项、菜单列表项,这些根本不需要经过后台API联网或本地持久化缓存拉取获取的,那么就不要fromApiOrCacheData属性
|
|
139
|
+
|
|
140
|
+
## 组件类型枚举 (vtype)
|
|
141
|
+
- 基础: \`text\`, \`button\`, \`icon\`, \`image\`, \`rect\`, \`circle\`, \`line\`, \`container\`
|
|
142
|
+
- 布局: \`multiStateContainer\`, \`oneStateContentContainer\`, \`inlineBlockAndWrap\`, \`blockItem\`, \`verticalLinearLayout\`, \`horizontalLinearLayout\`
|
|
143
|
+
- 表单: \`input\`, \`switch\`, \`radio\`, \`checkBox\`, \`radioGroup\`, \`checkBoxGroup\`
|
|
144
|
+
- 列表: \`verticalListView\`, \`horizontalListView\`, \`listItemCard\`
|
|
145
|
+
- 轮播:\`viewPager\`, \`oneViewPagerContent\`, \`viewPagerIndicatorContainer\`
|
|
146
|
+
- tab:\`tabContainer\`, \`oneTabContentContainer\`, \`tabMenuBar\`, \`tabMenuBarItem\`
|
|
147
|
+
- 底部导航: \`bottomTabContainer\`, \`subPage\`, \`bottomTabNavigateBar\`, \`bottomTabNavigateBarItem\`
|
|
148
|
+
- 操作栏:\`topNavigateBar\`, \`bottomOperateBar\`
|
|
149
|
+
- 弹窗: \`dialog\`, \`toast\`, \`dropDownMenu\`, \`sideSlidePanel\`
|
|
150
|
+
- 系统顶部状态栏: \`phoneTopStatusBar\`
|
|
151
|
+
`;
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWlEZWNsYXJhdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91aURlY2xhcmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLDJCQUEyQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzSjFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgdWlEZWNsYXJhdGl2ZVByb21wdFRlbXBsYXRlID0gYCMg5L2g5piv5LiA5Liq5YmN56uv5byA5Y+R77yM5L2g6ZyA6KaB5qC55o2u5Lia5Yqh6ZyA5rGC77yM5qC55o2uXFxgVUnorr7orqHopoHmsYJcXGDjgIFcXGDnu4Tku7blo7DmmI7lvI/lhpnms5Xop4TliJlcXGDjgIFcXGDpq5jnuqfnu4Tku7bnmoTkvb/nlKjlnLrmma/lkozlm7rlrprnu5PmnoRcXGDnrYnmnaXlrp7njrDkuJrliqHpnIDmsYLnmoRVSeeVjOmdolxuXG4jIyBVSeiuvuiuoeimgeaxglxuLSDovpPlhaXmoYZcXGBpbnB1dFxcYOWmguaenOmcgOimgeWxleekuuaWh+Wtl2xhYmVs77yM5bC96YeP5L2/55SoaWNvbuS7o+abv+aWh+Wtl2xhYmVs77yM5bm25LiUaWNvbumHjeWPoOWcqOi+k+WFpeahhueahOW3puS+p++8jOi/meagt+aVtOS4qumhtemdoueahOepuumXtOWIqeeUqOeOh+mrmOOAglxuXG4jIyDnu4Tku7blo7DmmI7lvI/lhpnms5Xop4TliJlcbi0g5L2/55SoanNvbuagvOW8j+adpeaPj+i/sFVJ55WM6Z2iXG4tIOS9v+eUqFxcYGNoaWxkcmVuXFxg5bGe5oCn5p2l5o+P6L+w57uE5Lu255qE5a2Q57uE5Lu2XG4tIOavj+S4que7hOS7tumDveW/hemhu+WMheWQq++8mmlk44CBbmFtZeOAgXZ0eXBl5bGe5oCnXG4tIGlk5bGe5oCn5b+F6aG75piv6Iux5paH5oiW5pWw5a2X77yM5LiU5LiN6IO95Lul5pWw5a2X5byA5aS077yM5bm25LiU5pW05Liq6aG16Z2iaWTlsZ7mgKfnmoTlgLzlv4XpobvllK/kuIBcbi0gbmFtZeWxnuaAp+W/hemhu+aYr+S4reaWh+aIluaVsOWtl++8jOW5tuS4lOS4jeiDveWMheWQq+eJueauiuWtl+esplxuLSB2dHlwZeWxnuaAp+eahOWAvOW/hemhu+aYr1xcYOe7hOS7tuexu+Wei+aemuS4viAodnR5cGUpXFxgIOS4reeahOS4gOS4qlxuLSBcXGB0ZXh0XFxg44CBXFxgYnV0dG9uXFxg57uE5Lu25b+F6aG76K6+572uXFxgdGV4dFxcYOWxnuaAp+WSjOWAvFxuLSBcXGBpbnB1dFxcYOe7hOS7tuW/hemhu+iuvue9rlxcYHBsYWNlaG9sZGVyXFxg5bGe5oCn5ZKM5YC8XG4tIOi9ruaSrVxcYHZpZXdQYWdlclxcYOOAgVRBQumAiemhueWNoVxcYHRhYkNvbnRhaW5lclxcYOOAgeW6lemDqFRBQue7hOS7tlxcYGJvdHRvbVRhYkNvbnRhaW5lclxcYOeahOavj+S4gOmhteWGheWuueW/hemhu+WujOaVtO+8jOS4jeW+l+ecgeeVpeS7u+S9leWGheWuuee7hOS7tuOAguavlOWmguaciTPpobXvvIzpgqPkuYjmr4/kuIDpobXnmoTlhoXlrrnnu4Tku7bpg73kuI3og73nnIHnlaXjgIJcblxuIyMg6auY57qn57uE5Lu255qE5L2/55So5Zy65pmv5ZKM5Zu65a6a57uT5p6EXG5cbiMjIyDljZXpgInnu4RcXGByYWRpb0dyb3VwXFxgXG5cbiMjIyMgXFxgcmFkaW9Hcm91cFxcYOS9v+eUqOWcuuaZr1xuLSDlvZPkuIDkuKrpobXpnaLpnIDopoHlsZXnpLrlpJrkuKrkupLmlqXnmoTpgInpobnml7bvvIzkvb/nlKhcXGByYWRpb0dyb3VwXFxg57uE5Lu2XG4tIOS+i+Wmgu+8jOmcgOimgemAieaLqeaUr+S7mOaWueW8j+aXtu+8jOW/hemhu+S9v+eUqFxcYHJhZGlvR3JvdXBcXGDnu4Tku7ZcblxuIyMjIyBcXGByYWRpb0dyb3VwXFxg5Zu65a6a57uT5p6EXG4tIFxcYHJhZGlvR3JvdXBcXGDnu4Tku7blv4XpobvljIXlkKtO5LiqXFxgcmFkaW9cXGDljZXpgInpobnnu4Tku7ZcblxuIyMjIOWkmumAiee7hFxcYGNoZWNrQm94R3JvdXBcXGBcblxuIyMjIyBcXGBjaGVja0JveEdyb3VwXFxg5L2/55So5Zy65pmvXG4tIOW9k+S4gOS4qumhtemdoumcgOimgeWxleekuuWkmuS4quWPr+mAieeahOmAiemhueaXtu+8jOS9v+eUqFxcYGNoZWNrQm94R3JvdXBcXGDnu4Tku7Zcbi0g5L6L5aaC77yM6ZyA6KaB6YCJ5oup55So5oi355qE54ix5aW95pe277yM5b+F6aG75L2/55SoXFxgY2hlY2tCb3hHcm91cFxcYOe7hOS7tlxuXG4jIyMjIFxcYGNoZWNrQm94R3JvdXBcXGDlm7rlrprnu5PmnoRcbi0gXFxgY2hlY2tCb3hHcm91cFxcYOe7hOS7tuW/hemhu+WMheWQq07kuKpcXGBjaGVja0JveFxcYOWkmumAiemhuee7hOS7tlxuXG4jIyMg5aSa54q25oCB5a655ZmoXFxgbXVsdGlTdGF0ZUNvbnRhaW5lclxcYFxuXG4jIyMjIFxcYG11bHRpU3RhdGVDb250YWluZXJcXGDkvb/nlKjlnLrmma9cbi0g5b2T5LiA5Liq57uE5Lu26ZyA6KaB5Zyo5LiN5ZCM54q25oCB5LiL5bGV56S65LiN5ZCM55qE5YaF5a655pe277yM5bm25LiU5LiN5piv6YCa6L+H54K55Ye744CBdGFiTWVudUJhcuOAgei9ruaSreetieaWueW8j+WIh+aNoueKtuaAgeaXtu+8jOS9v+eUqFxcYG11bHRpU3RhdGVDb250YWluZXJcXGDnu4Tku7Zcbi0g5L6L5aaC77yM5pWw5o2u5Yqg6L295Zy65pmv5LiA6Iis5pyJ5Yqg6L295ZCO5pyJ5pWw5o2u44CB5Yqg6L295Lit44CB5peg5pWw5o2u44CB6IGU572R5aSx6LSl5Zub56eN54q25oCB77yM5b+F6aG75L2/55SoXFxgbXVsdGlTdGF0ZUNvbnRhaW5lclxcYOe7hOS7tlxuLSDkvovlpoLvvIzlt7LnmbvlvZXlkozmnKrnmbvlvZXnirbmgIHkuIvlsZXnpLrkuI3lkIznmoTlhoXlrrnvvIzlv4Xpobvkvb/nlKhcXGBtdWx0aVN0YXRlQ29udGFpbmVyXFxg57uE5Lu2XG5cbiMjIyMgXFxgbXVsdGlTdGF0ZUNvbnRhaW5lclxcYOWbuuWumue7k+aehFxuLSBcXGBtdWx0aVN0YXRlQ29udGFpbmVyXFxg57uE5Lu25b+F6aG75YyF5ZCr5LiA5Liq5oiW5aSa5LiqXFxgb25lU3RhdGVDb250ZW50Q29udGFpbmVyXFxg5a2Q57uE5Lu2XG4tIOavj+S4qlxcYG9uZVN0YXRlQ29udGVudENvbnRhaW5lclxcYOWtkOe7hOS7tuW/hemhu+WMheWQq+S4gOS4quaIluWkmuS4que7hOS7tlxuXG4jIyMg5rWB5byP6Ieq5Yqo5o2i6KGM5biD5bGA5a655ZmodnR5cGU9XCJpbmxpbmVCbG9ja0FuZFdyYXBcIue7hOS7tlxuXG4jIyMjIFxcYGlubGluZUJsb2NrQW5kV3JhcFxcYOS9v+eUqOWcuuaZr1xuLSDlvZPpnIDopoHlsZXnpLrlpJrkuKrnu4Tku7bmqKrmjpLvvIzlubbkuJTov5nkupvnu4Tku7bpnIDopoHoh6rliqjmjaLooYzluIPlsYDml7bvvIzkvb/nlKhcXGBpbmxpbmVCbG9ja0FuZFdyYXBcXGDnu4Tku7Zcbi0g5L6L5aaC77yM6ZyA6KaB5bGV56S65aSa5Liq5ZWG5ZOB5qCH562+5pe277yM5b+F6aG75L2/55SoXFxgaW5saW5lQmxvY2tBbmRXcmFwXFxg57uE5Lu2XG4tIOS+i+Wmgu+8muWkmuS4quagh+etvnRhZ+OAgeeDremXqOaQnOe0onRhZ+OAgeWVhuWTgXRhZ+etieetieagh+etvnRhZ+exu+WcuuaZr++8jOW/hemhu+S9v+eUqFxcYGlubGluZUJsb2NrQW5kV3JhcFxcYOe7hOS7tlxuLSDnpoHmraLkvb/nlKjnmoTlnLrmma/vvJrlip/og73lhaXlj6PjgIHljZXpgInjgIHlpJrpgInjgIHliJfooajjgIHpgInpobnljaF0YWLjgIJcblxuIyMjIyBcXGBpbmxpbmVCbG9ja0FuZFdyYXBcXGDlm7rlrprnu5PmnoRcbi0gXFxgaW5saW5lQmxvY2tBbmRXcmFwXFxg57uE5Lu25b+F6aG75YyF5ZCrTuS4qlxcYGJsb2NrSXRlbVxcYOe7hOS7tlxuXG4jIyMg56uW5ZCR5YiX6KGoXFxgdmVydGljYWxMaXN0Vmlld1xcYFxuXG4jIyMjIFxcYHZlcnRpY2FsTGlzdFZpZXdcXGDkvb/nlKjlnLrmma9cbi0g5b2T6ZyA6KaB56uW5ZCR5bGV56S65aSa5Liq5YiX6KGo6aG55pe277yM5L2/55SoXFxgdmVydGljYWxMaXN0Vmlld1xcYOe7hOS7tlxuLSDkvovlpoLvvIzpnIDopoHnq5blkJHlsZXnpLrlpJrkuKrllYblk4HliJfooajpobnml7bvvIzlv4Xpobvkvb/nlKhcXGB2ZXJ0aWNhbExpc3RWaWV3XFxg57uE5Lu2XG5cbiMjIyMgXFxgdmVydGljYWxMaXN0Vmlld1xcYOWbuuWumue7k+aehFxuLSBcXGB2ZXJ0aWNhbExpc3RWaWV3XFxg57uE5Lu25b+F6aG75YyF5ZCrTuS4qlxcYGxpc3RJdGVtQ2FyZFxcYOe7hOS7tlxuXG4jIyMg5qiq5ZCR5YiX6KGoXFxgaG9yaXpvbnRhbExpc3RWaWV3XFxgXG5cbiMjIyMgXFxgaG9yaXpvbnRhbExpc3RWaWV3XFxg5L2/55So5Zy65pmvXG4tIOW9k+mcgOimgeaoquWQkeWxleekuuWkmuS4quWIl+ihqOmhueaXtu+8jOS9v+eUqFxcYGhvcml6b250YWxMaXN0Vmlld1xcYOe7hOS7tlxuLSDkvovlpoLvvIzpnIDopoHmqKrlkJHlsZXnpLrlpJrkuKrng63plIDllYblk4HliJfooajpobnml7bvvIzlv4Xpobvkvb/nlKhcXGBob3Jpem9udGFsTGlzdFZpZXdcXGDnu4Tku7ZcblxuIyMjIyBcXGBob3Jpem9udGFsTGlzdFZpZXdcXGDlm7rlrprnu5PmnoRcbi0gXFxgaG9yaXpvbnRhbExpc3RWaWV3XFxg57uE5Lu25b+F6aG75YyF5ZCrTuS4qlxcYGxpc3RJdGVtQ2FyZFxcYOe7hOS7tlxuXG4jIyMg6L2u5pKtXFxgdmlld1BhZ2VyXFxgXG5cbiMjIyMgXFxgdmlld1BhZ2VyXFxg5L2/55So5Zy65pmvXG4tIOW9k+S4gOS4qumhtemdoumcgOimgeWxleekuuWkmuS4qui9ruaSremhueaXtu+8jOS9v+eUqFxcYHZpZXdQYWdlclxcYOe7hOS7tlxuLSDkvovlpoLvvIzpnIDopoHova7mkq3lsZXnpLrlpJrkuKrmtLvliqjlm77lkozmtLvliqjkv6Hmga/ml7bvvIzlv4Xpobvkvb/nlKhcXGB2aWV3UGFnZXJcXGDnu4Tku7ZcblxuIyMjIyBcXGB2aWV3UGFnZXJcXGDlm7rlrprnu5PmnoRcbi0gXFxgdmlld1BhZ2VyXFxg5YyF5ZCrTuS4qlxcYG9uZVZpZXdQYWdlckNvbnRlbnRcXGDova7mkq3lhoXlrrnpobnnu4Tku7blkowx5Liq6L2u5pKt5oyH56S65ZmoXFxgdmlld1BhZ2VySW5kaWNhdG9yQ29udGFpbmVyXFxg57uE5Lu2XG4tIFxcYHZpZXdQYWdlckluZGljYXRvckNvbnRhaW5lclxcYOe7hOS7tuW/hemhu+WMheWQq+edgE7kuKpcXGByZWN0XFxg5oiWXFxgY2lyY2xlXFxg57uE5Lu277yM5YW25LitXFxgcmVjdFxcYOaIllxcYGNpcmNsZVxcYOe7hOS7tuS4jeWFgeiuuOa3u+WKoOWtqeWtkO+8jFxcYHJlY3RcXGDmiJZcXGBjaXJjbGVcXGDnu4Tku7blsLHmmK/mjIfnpLrlmajnmoTlnIbngrlcblxuIyMjIHRhYue7hOS7tlxcYHRhYkNvbnRhaW5lclxcYFxuXG4jIyMjIFxcYHRhYkNvbnRhaW5lclxcYOS9v+eUqOWcuuaZr1xuLSDlvZPkuIDkuKrpobXpnaLpnIDopoHlsZXnpLrlpJrkuKp0YWLpobnml7bvvIzkvb/nlKhcXGB0YWJDb250YWluZXJcXGDnu4Tku7Zcbi0g5L6L5aaC77yM5Zyo5oyJ5YiG57G75bGV56S65ZWG5ZOB5pe277yM5Y+v5Lul5bCG5aSa5Liq5YiG57G75L2/55SodGFi6I+c5Y2V5qCP5bGV56S677yM5q+P5LiA56eN5YiG57G75bCx5piv5LiA5LiqdGFi6aG577yM5q+P5LiA5LiqdGFi55qE5YaF5a655Yy65bCx5piv6K+l5YiG57G755qE5ZWG5ZOB5YiX6KGoXG5cbiMjIyMgXFxgdGFiQ29udGFpbmVyXFxg5Zu65a6a57uT5p6EXG4tIFxcYHRhYkNvbnRhaW5lclxcYOe7hOS7tuW/hemhu+WMheWQq07kuKpcXGBvbmVUYWJDb250ZW50Q29udGFpbmVyXFxg5a2Q57uE5Lu25ZKMMeS4qlxcYHRhYk1lbnVCYXJcXGDnu4Tku7Zcbi0gXFxgdGFiTWVudUJhclxcYOe7hOS7tuW/hemhu+WMheWQq07kuKpcXGB0YWJNZW51QmFySXRlbVxcYOe7hOS7tlxuXG4jIyMg5bqV6YOo5a+86IiqXFxgYm90dG9tVGFiQ29udGFpbmVyXFxgXG5cbiMjIyMgXFxgYm90dG9tVGFiQ29udGFpbmVyXFxg5L2/55So5Zy65pmvXG4tIOW9k+S4gOS4qumhtemdoumcgOimgeWxleekuuWkmuS4quW6lemDqOWvvOiIqumhueaXtu+8jOS9v+eUqFxcYGJvdHRvbVRhYkNvbnRhaW5lclxcYOe7hOS7tu+8jFxcYGJvdHRvbVRhYkNvbnRhaW5lclxcYOW/hemhu+imgeWSjOWtkOmhtemdolxcYHN1YlBhZ2VcXGDphY3lkIjkvb/nlKjvvIznm67nmoTmmK/lsIblpI3mnYLnmoTpppbpobXlupXpg6jlr7zoiKrlip/og73pgJrov4flrZDpobXpnaJcXGBzdWJQYWdlXFxg5p2l6Kej6ICm77yM6ZmN5L2O6aaW6aG155qE5aSN5p2C5bqmXG4tIOS4gOiIrOmmlumhteaYr+WQhOS4quWKn+iDveeahOWFpeWPo++8jOWboOatpOmmlumhteaYr+eUseWkmuS4quWtkOmhtemdoue7hOaIkOeahOS4u+S9k+mhtemdou+8jOavlOWmgu+8mui0reeJqUFQUOmmlumhteS4gOiIrOacieS4gOS4qlxcYGJvdHRvbVRhYkNvbnRhaW5lclxcYOe7hOS7tu+8iOavlOWmgu+8mummlumhteOAgea0u+WKqOOAgei0reeJqei9puOAgea2iOaBr+OAgeaIkeeahO+8ie+8jOeCueWHu+W6lemDqOWKn+iDveWvvOiIquagj+eahGl0ZW3kvJrliIfmjaLliLDlr7nlupTnmoR0YWLlrZDpobXpnaLvvIzmr4/kuKp0YWLlrZDpobXpnaLotJ/otKPoh6rlt7HnmoTni6znq4vnmoTkuJrliqHpgLvovpHvvIzmr5TlpoLotK3nianovaZ0YWLlsLHotJ/otKPotK3nianovabnm7jlhbPkuJrliqHpgLvovpHjgIJcbi0g6aaW6aG15Y+q5piv5LiA5Liq5Yqf6IO95a+86Iiq5qGG5p625Y+q6ZyA6KaB6K6+6K6h5bqV6YOo5Yqf6IO95a+86Iiq5qCP5ZKM5re75Yqg5a2Q6aG16Z2i77yMXFxgc3ViUGFnZVxcYOWtkOmhtemdoumHjOmdoueahFVJ5YWD57Sg5LiN6ZyA6KaB5a6e546w77yM5YW25LuW5Lu75Yqh5Lya5pyJ5LiT6Zeo55qE6aaW6aG15ZCE5Liq5a2Q6aG16Z2i55qE5YW35L2TVUnorr7orqHlrp7njrDnjq/oioJcbi0g5L6L5aaC77yM55S15ZWG6aaW6aG15bqV6YOo5a+86Iiq5LiA6Iis5pyJ6aaW6aG144CB5YiG57G744CB6LSt54mp6L2m44CB5oiR55qE5Zub5Liq5bqV6YOo5a+86Iiq6aG577yM5b+F6aG75L2/55SoXFxgYm90dG9tVGFiQ29udGFpbmVyXFxg57uE5Lu277yM5q+P5Liq5bqV6YOo5a+86Iiq6aG55a+55bqU5LiA5LiqXFxgc3ViUGFnZVxcYOWtkOmhtemdolxuXG4jIyMjIFxcYGJvdHRvbVRhYkNvbnRhaW5lclxcYOWbuuWumue7k+aehFxuLSDlupXpg6h0YWLlr7zoiKrnu4Tku7blv4XpobvmmK9cXGBib3R0b21UYWJDb250YWluZXJcXGDlv4XpobvljIXlkKvnnYBO5LiqXFxgc3ViUGFnZVxcYOWtkOmhtemdoue7hOS7tuS4jjHkuKpcXGBib3R0b21UYWJOYXZpZ2F0ZUJhclxcYOe7hOS7tlxuLSBcXGBzdWJQYWdlXFxg5a2Q6aG16Z2i57uE5Lu26YeM57ud5a+55LiN6IO95pyJ5a2p5a2Q57uE5Lu277yM57ud5a+55LiN6IO95pyJ5Lu75L2V5Y2g5L2N5YaF5a65XG4tIFxcYGJvdHRvbVRhYk5hdmlnYXRlQmFyXFxg57uE5Lu25b+F6aG75YyF5ZCrTuS4qlxcYGJvdHRvbVRhYk5hdmlnYXRlQmFySXRlbVxcYOe7hOS7tlxuLSBcXGBzdWJQYWdlXFxg5a2Q6aG16Z2i57uE5Lu25LiOXFxgYm90dG9tVGFiTmF2aWdhdGVCYXJJdGVtXFxg57uE5Lu255qE5pWw6YeP5piv55u45ZCM55qEXG5cbiMjIyDmk43kvZzmoI/vvJpcXGB0b3BPcGVyYXRlQmFyXFxg5ZKMXFxgYm90dG9tT3BlcmF0ZUJhclxcYFxuXG4jIyMjIFxcYHRvcE9wZXJhdGVCYXJcXGDlkoxcXGBib3R0b21PcGVyYXRlQmFyXFxg5L2/55So5Zy65pmvXG4tIOW9k+mcgOimgeWcqOmhtemdoumhtumDqOWxleekuuS4gOS4quWvvOiIquagj+aIluaXtu+8jOS9v+eUqFxcYHRvcE9wZXJhdGVCYXJcXGDnu4Tku7bvvIzlkIznkIblupXpg6jpnIDopoHkvb/nlKhcXGBib3R0b21PcGVyYXRlQmFyXFxgXG4tIOS+i+Wmgu+8jOWcqOWVhuWTgeivpuaDhemhtemhtumDqOWxleekuuS4gOS4qui/lOWbnuaMiemSruWSjOWVhuWTgeWQjeensOaXtu+8jOW/hemhu+S9v+eUqFxcYHRvcE9wZXJhdGVCYXJcXGDnu4Tku7Zcbi0g5L6L5aaC77yM5Zyo5ZWG5ZOB6K+m5oOF6aG15bqV6YOo5bGV56S65LiA5Liq5Yqg5YWl6LSt54mp6L2m5oyJ6ZKu5ZKM6LSt5Lmw5oyJ6ZKu5pe277yM5b+F6aG75L2/55SoXFxgYm90dG9tT3BlcmF0ZUJhclxcYOe7hOS7tlxuXG4jIyMg5by556qXOiBcXGBkaWFsb2dcXGDjgIFcXGB0b2FzdFxcYOOAgVxcYGRyb3BEb3duTWVudVxcYOOAgVxcYHNpZGVTbGlkZVBhbmVsXFxgXG5cbiMjIyMg5L2/55So5Zy65pmvXG4tIOW9k+mcgOimgeWcqOmhtemdouS4iuWxleekuuS4gOS4qnRvYXN05o+Q56S65pe277yM5L2/55SoXFxgdG9hc3RcXGDnu4Tku7Zcbi0g5b2T6ZyA6KaB5Zyo6aG16Z2i5LiK5bGV56S65LiA5Liq5by556qX5pe277yM5L2/55SoXFxgZGlhbG9nXFxg57uE5Lu2XG4tIOW9k+mcgOimgeWcqOmhtemdouS4iuWxleekuuS4gOS4quS4i+aLieiPnOWNleaXtu+8jOS9v+eUqFxcYGRyb3BEb3duTWVudVxcYOe7hOS7tlxuLSDlvZPpnIDopoHlnKjpobXpnaLkuIrlsZXnpLrkuIDkuKrkvqfmu5HpnaLmnb/ml7bvvIzkvb/nlKhcXGBzaWRlU2xpZGVQYW5lbFxcYOe7hOS7tu+8jOazqOaEj++8jOmakOengeWNj+iuruOAgeeUqOaIt+WNj+iuruOAgeW4ruWKqeetieetiemDveS4jeW+l+S9v+eUqOS+p+a7kemdouadv++8jOW/hemhu+S9v+eUqOmhtemdouadpeWunueOsFxuXG4jIyMg57O757uf6aG26YOo54q25oCB5qCPOiBcXGBwaG9uZVRvcFN0YXR1c0JhclxcYFxuXG4jIyMjIFxcYHBob25lVG9wU3RhdHVzQmFyXFxg5L2/55So5Zy65pmvXG4tIOW9k+mcgOimgeWcqOmhtemdoumhtumDqOWxleekuuS4gOS4quaJi+acuuezu+e7n+eahOeKtuaAgeagj+aXtu+8jOS9v+eUqFxcYHBob25lVG9wU3RhdHVzQmFyXFxg57uE5Lu277yM5rOo5oSP6L+Z5Liq5LuF5LuF55So5LqO5bGV56S65omL5py657O757uf55qE54q25oCB5qCP77yM5LiO5Lia5Yqh5rKh5pyJ5LiA54K55YWz57O755qEXG5cbiMjIyMgXFxgcGhvbmVUb3BTdGF0dXNCYXJcXGDlm7rlrprnu5PmnoRcbi0gXFxgcGhvbmVUb3BTdGF0dXNCYXJcXGDnu4Tku7blv4XpobvljIXlkKvnnYAx5Liq5bGV56S65pe26Ze055qEXFxgdGV4dFxcYOaWh+acrOe7hOS7tuWSjDHkuKrlsZXnpLrkv6Hlj7flvLrluqbjgIFXaUZp44CB55S15rGgXFxgaG9yaXpvbnRhbExpbmVhckxheW91dFxcYOe6v+aAp+W4g+WxgOe7hOS7tlxuLSBcXGBob3Jpem9udGFsTGluZWFyTGF5b3V0XFxg5b+F6aG75YyF5ZCr552A5L+h5Y+35by65bqm44CBV2lGaeOAgeeUteaxoOS4ieS4qlxcYGljb25cXGDlm77moIfnu4Tku7ZcblxuIyMg5pWw5o2u6I635Y+W5pa55byPXFxgZnJvbUFwaU9yQ2FjaGVEYXRhOiB0cnVlXFxg55qE6K6+572u5p2h5Lu277yaXG4tIHZ0eXBl5b+F6aG75pivXFxgdmVydGljYWxMaXN0Vmlld1xcYOOAgVxcYGhvcml6b250YWxMaXN0Vmlld1xcYOOAgVxcYHZpZXdQYWdlclxcYOOAgVxcYHRhYkNvbnRhaW5lclxcYOOAgVxcYHJhZGlvR3JvdXBcXGDjgIFcXGBjaGVja0JveEdyb3VwXFxg44CBXFxgaW5saW5lQmxvY2tBbmRXcmFwXFxg57G75Z6L55qE57uE5Lu2XG4tIOivpee7hOS7tueahOaVsOaNruaYr+S7jue9kee7nOaIluiAheacrOWcsOaMgeS5heWMlue8k+WtmOaLieWPluWbnuadpeeahO+8jOavlOWmgu+8mueDremXqOWVhuWTgeWIl+ihqOe7hOS7tlxcYHZlcnRpY2FsTGlzdFZpZXdcXGDvvIzor6Xnu4Tku7bnmoTmlbDmja7mmK/ku47nvZHnu5zmiJbogIXmnKzlnLDmjIHkuYXljJbnvJPlrZjmi4nlj5blm57mnaXnmoRcbi0g5aaC5p6c5piv5LiA5Lqb5LiN6ZyA6KaB5ZCO56uvQVBJ6IGU572R5oiW5pys5Zyw5oyB5LmF5YyW57yT5a2Y5ouJ5Y+W6I635Y+W55qE6Z2Z5oCB5YaZ5q2755qE5pWw5o2u77yM6YKj5LmI5bCx5LiN6ZyA6KaBZnJvbUFwaU9yQ2FjaGVEYXRh5bGe5oCn5LqG77yM5q+U5aaC77ya5Liq5Lq65Lit5b+D5YiX6KGo6aG544CB6K6+572u5YiX6KGo6aG544CB6I+c5Y2V5YiX6KGo6aG577yM6L+Z5Lqb5qC55pys5LiN6ZyA6KaB57uP6L+H5ZCO5Y+wQVBJ6IGU572R5oiW5pys5Zyw5oyB5LmF5YyW57yT5a2Y5ouJ5Y+W6I635Y+W55qE77yM6YKj5LmI5bCx5LiN6KaBZnJvbUFwaU9yQ2FjaGVEYXRh5bGe5oCnXG5cbiMjIOe7hOS7tuexu+Wei+aemuS4viAodnR5cGUpXG4tIOWfuuehgDogXFxgdGV4dFxcYCwgXFxgYnV0dG9uXFxgLCBcXGBpY29uXFxgLCBcXGBpbWFnZVxcYCwgXFxgcmVjdFxcYCwgXFxgY2lyY2xlXFxgLCBcXGBsaW5lXFxgLCBcXGBjb250YWluZXJcXGBcbi0g5biD5bGAOiBcXGBtdWx0aVN0YXRlQ29udGFpbmVyXFxgLCBcXGBvbmVTdGF0ZUNvbnRlbnRDb250YWluZXJcXGAsIFxcYGlubGluZUJsb2NrQW5kV3JhcFxcYCwgXFxgYmxvY2tJdGVtXFxgLCBcXGB2ZXJ0aWNhbExpbmVhckxheW91dFxcYCwgXFxgaG9yaXpvbnRhbExpbmVhckxheW91dFxcYFxuLSDooajljZU6IFxcYGlucHV0XFxgLCBcXGBzd2l0Y2hcXGAsIFxcYHJhZGlvXFxgLCBcXGBjaGVja0JveFxcYCwgXFxgcmFkaW9Hcm91cFxcYCwgXFxgY2hlY2tCb3hHcm91cFxcYFxuLSDliJfooag6IFxcYHZlcnRpY2FsTGlzdFZpZXdcXGAsIFxcYGhvcml6b250YWxMaXN0Vmlld1xcYCwgXFxgbGlzdEl0ZW1DYXJkXFxgXG4tIOi9ruaSre+8mlxcYHZpZXdQYWdlclxcYCwgXFxgb25lVmlld1BhZ2VyQ29udGVudFxcYCwgXFxgdmlld1BhZ2VySW5kaWNhdG9yQ29udGFpbmVyXFxgXG4tIHRhYu+8mlxcYHRhYkNvbnRhaW5lclxcYCwgXFxgb25lVGFiQ29udGVudENvbnRhaW5lclxcYCwgXFxgdGFiTWVudUJhclxcYCwgXFxgdGFiTWVudUJhckl0ZW1cXGBcbi0g5bqV6YOo5a+86IiqOiBcXGBib3R0b21UYWJDb250YWluZXJcXGAsIFxcYHN1YlBhZ2VcXGAsIFxcYGJvdHRvbVRhYk5hdmlnYXRlQmFyXFxgLCBcXGBib3R0b21UYWJOYXZpZ2F0ZUJhckl0ZW1cXGBcbi0g5pON5L2c5qCP77yaXFxgdG9wTmF2aWdhdGVCYXJcXGAsIFxcYGJvdHRvbU9wZXJhdGVCYXJcXGBcbi0g5by556qXOiBcXGBkaWFsb2dcXGAsIFxcYHRvYXN0XFxgLCBcXGBkcm9wRG93bk1lbnVcXGAsIFxcYHNpZGVTbGlkZVBhbmVsXFxgXG4tIOezu+e7n+mhtumDqOeKtuaAgeagjzogXFxgcGhvbmVUb3BTdGF0dXNCYXJcXGBcbmBcbiJdfQ==
|