bytefun-ai-mcp 1.11.49 → 1.11.52
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/backendCode.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const backendCodePromptTemplate = "# \u4EE3\u7801\u751F\u6210\u89C4\u5219\n\n## \uD83D\uDD25 \u975E\u5E38\u91CD\u8981\uFF01\uFF01\u975E\u5E38\u6838\u5FC3\u7684\u89C4\u5219\uFF01\uFF01\n\u975E\u5E38\u91CD\u8981\uFF01\uFF01\u975E\u5E38\u6838\u5FC3\u7684\u89C4\u5219\uFF01\uFF01\u8FD9\u662F\u7279\u6B8A\u7684\u4EE3\u7801\u7F16\u5199\uFF0C\u4E0D\u662F\u5E38\u89C4\u7684\u4EE3\u7801\u7F16\u5199\uFF0C\u4F1A\u6709\u5F88\u591A\u7279\u522B\u7684\u89C4\u5219\uFF0C\u56E0\u6B64\u4F60\u7EDD\u5BF9\u4E0D\u80FD\u4EE5\u4F60\u5DF2\u6709\u7684\u7ECF\u9A8C\u548C\u77E5\u8BC6\u5E93\u6765\u81EA\u4EE5\u4E3A\u662F\u5730\u8DF3\u8FC7\u7701\u7565\u63D0\u793A\u8BCD\u91CC\u63D0\u5230\u7684\u5404\u79CD\u6267\u884C\u6B65\u9AA4\uFF0C\u4F60\u5FC5\u987B\u4E25\u683C\u6309\u7167\u63D0\u793A\u8BCD\u7ED9\u51FA\u7684\u6267\u884C\u6B65\u9AA4\uFF0C\u4E00\u6B65\u4E00\u6B65\u6765\u6267\u884C\uFF0C\u6BCF\u6267\u884C\u5B8C\u4E00\u6B65\u90FD\u5FC5\u987B\u8F93\u51FA\u8BE5\u6B65\u9AA4\u5DF2\u6267\u884C\uFF0C\u51C6\u5907\u6267\u884C\u4E0B\u4E00\u6B65\uFF1Axxx\u3002\n\n## \u7B2C1\u6B65\n\u5206\u6790\u7406\u89E3\u6574\u4E2A\u9879\u76EE\u7684\u4EE3\u7801\u7ED3\u6784\uFF0C\u53C2\u8003\u8FD9\u91CC\u9762\u7684'\u9879\u76EE\u6982\u8FF0'\uFF0C\u6CE8\u610F\uFF0C\u65E0\u9700\u5206\u6790admin\u7AEF\u7684\u4EE3\u7801\uFF0C\u4F60\u8981\u7F16\u5199\u7684\u662FC\u7AEF\u4EE3\u7801\u3002\n## \u7B2C2\u6B65\n\u5206\u6790\u7406\u89E3\u5DE5\u7A0B\u6839\u76EE\u5F55'doc/globalApiInterfaceList.md'\u8FD9\u4E2A\u6587\u4EF6\uFF0C\u91CD\u70B9\u5206\u6790\u4ECE\u6587\u4EF6\u672B\u5C3E\u5F80\u4E0A\u627E\u5230\u7684\u7B2C\u4E00\u4EFDjson\u6570\u636E\uFF0C\u63D0\u53D6\u51FA\u6765\u540E\u4F60\u81EA\u5DF1\u5FC5\u987B\u7F13\u5B58\u597D\uFF0C\u8FD9\u975E\u5E38\u91CD\u8981\uFF0C\u56E0\u4E3A\u8FD9\u662F\u63A5\u53E3\u6E05\u5355\uFF0C\u662F\u4EE3\u7801\u751F\u6210\u7684\u4F9D\u636E\u3002\n## \u7B2C3\u6B65\n\u6839\u636E\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u63CF\u8FF0\uFF0C\u68C0\u67E5\u5185\u7F6E\u7684API\u63A5\u53E3\u662F\u5426\u6EE1\u8DB3\u63A5\u53E3\u5217\u8868\u91CC\u7684\u63A5\u53E3\u529F\u80FD\uFF0C\u4E0D\u8981\u521B\u5EFA\u5185\u7F6E\u7684API\u63A5\u53E3\u5DF2\u7ECF\u6EE1\u8DB3\u7684\u63A5\u53E3\u3002\u5185\u7F6E\u7684API\u63A5\u53E3\uFF1A\u8D26\u53F7\u5BC6\u7801\u767B\u5F55\u63A5\u53E3\uFF0C\u53D1\u9001\u77ED\u4FE1\u9A8C\u8BC1\u7801\u63A5\u53E3\uFF0C\u624B\u673A\u53F7\u767B\u5F55\u63A5\u53E3\uFF0C\u9000\u51FA\uFF08\u6CE8\u9500\uFF09\u63A5\u53E3\uFF0C\u624B\u673A\u53F7\u6CE8\u518C\u63A5\u53E3\u3002\n## \u7B2C4\u6B65\n\u6839\u636E\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u63CF\u8FF0\uFF0C\u5224\u65AD\u76EE\u524D\u7684\u6570\u636E\u5E93\u8868\u7ED3\u6784\u662F\u5426\u652F\u6301\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u529F\u80FD\u548C\u4E1A\u52A1\u903B\u8F91\uFF0C\u4E0D\u652F\u6301\u7684\u60C5\u51B5\u4E0B\u4FEE\u6539\u5E93\u8868\u7ED3\u6784\uFF0C\u5E76\u628A\u4FEE\u6539\u540E\u7684SQL\u8BED\u53E5\u653E\u5728\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/doc/'\u76EE\u5F55\u4E0B\u3002\u7279\u522B\u6CE8\u610F\u5224\u65AD\u73B0\u6709\u7684\u8868\u5B57\u6BB5\u662F\u5426\u6EE1\u8DB3\u63A5\u53E3\u6240\u9700\u7684\u8FD4\u56DE\u6570\u636E\u3002\n## \u7B2C5\u6B65\n\u6839\u636E\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u63CF\u8FF0\uFF0C\u67E5\u627E\u9700\u8981\u7528\u5230\u7684\u6570\u636E\u5E93\u8868\uFF0C\u6839\u636E\u5DE5\u7A0B\u6839\u76EE\u5F55\"backend/doc/bytefun-boot-simple.sql\"\u6587\u4EF6\u91CC\u7684\u5EFA\u8868\u8BED\u53E5\u548C\u4FEE\u6539\u540E\u7684SQL\u8BED\u53E5\uFF0C\u4E25\u683C\u6309\u7167'db.json\u6587\u4EF6\u5185\u5BB9\u683C\u5F0F\u89C4\u8303'\uFF0C\u5728\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/doc/db.json'\u6587\u4EF6\uFF0C\u6587\u4EF6\u4E2D\u6DFB\u52A0\u5BF9\u5E94\u7684\u8868\u7ED3\u6784\uFF0C\u5FC5\u987B\u5305\u542B\u6574\u5F20\u8868\u7684\u6240\u6709\u5B57\u6BB5\uFF0C\u5982\u679C\u6CA1\u6709\u4FEE\u6539\u540E\u7684SQL\u8BED\u53E5\uFF0C\u5219'db.json'\u7684\u6587\u4EF6\u5185\u5BB9\u4E3A'[]'\u3002\n## \u7B2C6\u6B65\n\u91CD\u65B0\u5206\u6790\u7406\u89E3\u8FD9\u4EFD\u4EE3\u7801\u751F\u6210\u89C4\u5219\u7684\u5185\u5BB9\uFF0C\u5FC5\u987B\u9010\u884C\u9605\u8BFB\u5206\u6790\uFF01\u6839\u636E'\u7EE7\u627FBaseServiceImpl\u7684Service\u5B9E\u73B0\u7C7B'\uFF0C'\u7EE7\u627FBaseService\u7684Service\u63A5\u53E3\u7C7B'\u8FD9\u4E9B\u6761\u76EE\u7684\u5185\u5BB9\uFF0C\u638C\u63E1Service\u5C42\u4EE3\u7801\u7684\u5199\u6CD5\u3002\u5206\u6790\u4E0B\u9762\u63D0\u5230\u7684'\u9879\u76EE\u6982\u8FF0'\u548C'\u4E1A\u52A1\u6A21\u5757\u6807\u51C6\u76EE\u5F55\u7ED3\u6784'\uFF0C\u7279\u522B\u662F'\u4E1A\u52A1\u6A21\u5757\u6807\u51C6\u76EE\u5F55\u7ED3\u6784'\uFF0C\u8FD9\u4E9B\u4E1A\u52A1\u6A21\u5757\u662F'bytefun-boot-biz-common'\u7684\u5B50\u6A21\u5757\u3002\n## \u7B2C7\u6B65\n\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/bytefun-boot-biz-common'\u5B58\u5728\u9700\u8981\u521B\u5EFA\u7684\u5B50\u6A21\u5757\u540E\uFF0C\u68C0\u67E5\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/bytefun-boot-biz-common'\u7684'pom.xml'\u6587\u4EF6\uFF0C\u786E\u4FDD\u5BF9\u5E94\u7684\u5B50\u6A21\u5757\u5DF2\u7ECF\u6DFB\u52A0\u5230'modules'\u4E2D\u3002\n## \u7B2C8\u6B65\n\u6839\u636E\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u63CF\u8FF0\uFF0C\u4FEE\u6539\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/bytefun-boot-biz-common'\u7684\u5B50\u6A21\u5757\u7684\u4EE3\u7801\uFF0C\u5B9E\u73B0\u63A5\u53E3\u7684\u529F\u80FD\uFF0C\u6CE8\u610F\uFF0CSQL\u8BED\u53E5\u5FC5\u987B\u5199\u5728dao.xml\u6620\u5C04\u6587\u4EF6\u91CC\uFF0C\u7981\u6B62\u5728java\u6587\u4EF6\u4E2D\u62FC\u88C5SQL\u8BED\u53E5\uFF0C\u7981\u6B62\u5728java\u6587\u4EF6\u4E2D\u4F7F\u7528MyBaits\u7684Wrapper\u76F8\u5173\u7C7B\u3002\u5982\u679C\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\uFF0C\u5B58\u5728'auth'\u5BF9\u5E94\u7684\u503C\u4E3Afalse\u7684\u60C5\u51B5\u4E0B\uFF0C\u9700\u8981\u4FEE\u6539\u914D\u7F6E\u6587\u4EF6'auth.yml'\uFF0C\u5728ignore_urls\u589E\u52A0\u91CC\u589E\u52A0\u5FFD\u7565\u8BA4\u8BC1\u7684\u8DEF\u5F84\uFF0C\u5BF9\u5E94\u4E3A\u5DE5\u7A0B\u6839\u76EE\u5F55\"doc/globalApiInterfaceList.md\"\u5339\u914D\u5230\u7684json\u6570\u636E\u4E2D\u7684path\uFF0C\u6CE8\u610F\u5FC5\u987B\u4EE5'/'\u5F00\u5934\uFF0C\"auth.yml\"\u8FD9\u4E2A\u6587\u4EF6\u5728\"bytefun-server-simple\"\u6A21\u5757\u4E0B\u7684\"src/main/resources\"\u76EE\u5F55\u4E0B\u3002\u5982\u679C\u7F16\u5199\u7684java\u6587\u4EF6\u4E0D\u5728'dao'\u6216'entity'\u8FD9\u4E24\u4E2Apackage\u6216\u5B50package\u4E0B\uFF0C\u6587\u4EF6\u540D\u79F0\u9700\u8981\u4EE5'Client'\u5F00\u5934\u3002\u5982\u679C'bytefun-boot-biz-common'\u6A21\u5757\u4E0B\u7684\u5B50\u6A21\u5757\u5B58\u5728\u76F8\u4E92\u4F9D\u8D56\uFF0C\u5FC5\u987B\u8981\u4FEE\u6539\u5B50\u6A21\u5757\u7684pom.xml\u6587\u4EF6\uFF0C\u5F15\u5165\u5BF9\u5E94\u7684\u4F9D\u8D56\u6A21\u5757\u3002\n## \u7B2C9\u6B65\n\u9700\u8981\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u91CC\u9762\u8BE5\u9875\u9762\u5BF9\u5E94\u7684json\u7684codeStatus\u5B57\u6BB5\u4E3Acompleted\u3002\n## \u7B2C10\u6B65\n\u6240\u6709\u4EE3\u7801\u7F16\u5199\u5B8C\u6BD5\u540E\uFF0C\u9700\u8981\u5728\u6574\u4E2A\u9879\u76EE\u6267\u884C 'mvn clean compile' \u547D\u4EE4\u7F16\u8BD1\u9879\u76EE\uFF0C\u7981\u6B62\u5355\u4E2A\u6A21\u5757\u5355\u72EC\u7F16\u8BD1\uFF0C\u9047\u5230\u7F16\u8BD1\u5931\u8D25\u65F6\u9700\u8981\u4FEE\u6539\u9519\u8BEF\u4EE3\u7801\u3002\n\n## \u9879\u76EE\u6982\u8FF0\n\u672C\u9879\u76EE\u57FA\u4E8E Spring Boot 2.7.6\uFF0C\u91C7\u7528\u591A\u6A21\u5757\u67B6\u6784\u8BBE\u8BA1\uFF0C\u4F7F\u7528\u4E86 Lombok \u8FDB\u884C\u7B80\u5316\u4EE3\u7801\uFF0CMyBatis Plus \u8FDB\u884C\u6570\u636E\u6301\u4E45\u5316\uFF0CMapStruct \u8FDB\u884C\u5BF9\u8C61\u8F6C\u6362\u3002\n### \u9879\u76EE\u6574\u4F53\u67B6\u6784\n```\nbytefun-boot/\n\u251C\u2500\u2500 bytefun-boot-api/ # \u5B9A\u4E49\u5185\u90E8service\u63A5\u53E3\n\u251C\u2500\u2500 bytefun-boot-biz/ # \u4E1A\u52A1\u6A21\u5757\uFF0C\u5305\u542B\u5177\u4F53\u4E1A\u52A1\u5B9E\u73B0\n\u251C\u2500\u2500 bytefun-boot-framework/ # \u6846\u67B6\u6838\u5FC3\u6A21\u5757\uFF0C\u63D0\u4F9B\u57FA\u7840\u529F\u80FD\n\u251C\u2500\u2500 bytefun-boot-module/ # \u529F\u80FD\u6A21\u5757\u96C6\u5408\n\u2502 \u251C\u2500\u2500 bytefun-module-message/ # \u6D88\u606F\u6A21\u5757\n\u2502 \u251C\u2500\u2500 bytefun-module-monitor/ # \u76D1\u63A7\u6A21\u5757\n\u2502 \u2514\u2500\u2500 bytefun-module-quartz/ # \u5B9A\u65F6\u4EFB\u52A1\u6A21\u5757\n\u251C\u2500\u2500 bytefun-boot-system/ # \u7CFB\u7EDF\u7BA1\u7406\u6A21\u5757\n\u2514\u2500\u2500 bytefun-server-simple/ # \u542F\u52A8\u6A21\u5757\n\u251C\u2500\u2500 doc/ # \u8BF4\u660E\u6587\u6863\n\u2502 \u2514\u2500\u2500 apiDoc/ # \u5DF2\u6709\u6A21\u5757\u7684\u63A5\u53E3\u6587\u6863\n\u2502 \u251C\u2500\u2500 BackendApiCodeDescription.md/ # \u540E\u7AEF\u63A5\u53E3\u4EE3\u7801\u63CF\u8FF0\n\u2502 \u2514\u2500\u2500 bytefun-boot-simple.sql/ # \u6570\u636E\u5E93\u8868\u7ED3\u6784\n```\n#### bytefun-boot-system \u7CFB\u7EDF\u7BA1\u7406\u6A21\u5757\u8BE6\u7EC6\u8BF4\u660E\n- **com/bytefun/system/controller/client/**\uFF1AC\u7AEF\u63A7\u5236\u5C42\uFF0C\u8D1F\u8D23\u63A5\u6536\u548C\u54CD\u5E94\u524D\u7AEF\u8BF7\u6C42\u3002\n- **com/bytefun/system/convert/**\uFF1A\u5BF9\u8C61\u8F6C\u6362\u5C42\uFF0C\u8D1F\u8D23 Entity/VO/DTO \u4E4B\u95F4\u7684\u5C5E\u6027\u62F7\u8D1D\u548C\u8F6C\u6362\uFF0C\u4FBF\u4E8E\u5206\u79BB\u6570\u636E\u7ED3\u6784\u3002\n- **com/bytefun/system/dao/**\uFF1A\u6570\u636E\u8BBF\u95EE\u5C42\uFF0C\u5B9A\u4E49 Mapper \u63A5\u53E3\uFF0C\u914D\u5408 MyBatis/MyBatisPlus \u8FDB\u884C\u6570\u636E\u5E93\u64CD\u4F5C\u3002\n- **com/bytefun/system/entity/**\uFF1A\u5B9E\u4F53\u7C7B\uFF0C\u901A\u5E38\u4E0E\u6570\u636E\u5E93\u8868\u4E00\u4E00\u5BF9\u5E94\uFF0C\u5E38\u7528 Lombok \u6CE8\u89E3\uFF08\u5982 @Data\uFF09\u7B80\u5316\u4EE3\u7801\u3002\n- **com/bytefun/system/query/**\uFF1A\u67E5\u8BE2\u53C2\u6570\u5BF9\u8C61\uFF0C\u5C01\u88C5\u63A5\u53E3\u8BF7\u6C42\u7684\u67E5\u8BE2\u6761\u4EF6\uFF0C\u5206 admin/client\u3002\n- **com/bytefun/system/service/**\uFF1A\u4E1A\u52A1\u903B\u8F91\u5C42\uFF0C\u5B9A\u4E49\u670D\u52A1\u63A5\u53E3\u53CA\u5176\u5B9E\u73B0\uFF0C\u5206 admin/client\u3002\n- **com/bytefun/system/vo/**\uFF1A\u89C6\u56FE\u5BF9\u8C61\uFF0C\u5C01\u88C5\u8FD4\u56DE\u7ED9\u524D\u7AEF\u7684\u6570\u636E\u7ED3\u6784\uFF0C\u5206 admin/client\u3002\n- **resources/mapper/**\uFF1AMyBatis \u7684 XML \u6620\u5C04\u6587\u4EF6\uFF0C\u5B9A\u4E49 SQL \u8BED\u53E5\u548C\u7ED3\u679C\u6620\u5C04\u3002\n\n\u6CE8\u610F\uFF0C\u5728bytefun-boot-system\u4E2D\u5DF2\u7ECF\u5305\u542B\u4E86\u7528\u6237\u57FA\u7840\u4FE1\u606F\u7684\u529F\u80FD\u4EE3\u7801\u3002\n\u5BF9\u5E94\u5B9E\u4F53\u7C7B\u4E3A`com.bytefun.system.entity.SysUserEntity`\uFF1B\n\u5BF9\u5E94controller\u4E3A`com.bytefun.system.controller.client.ClientSysAuthController`\uFF1B\n\u5BF9\u5E94\u7684\u6570\u636E\u8868\u4E3A`sys_user`;\n\n#### bytefun-boot-framework \u6846\u67B6\u6838\u5FC3\u6A21\u5757\u6982\u8981\u8BF4\u660E\n- **com.bytefun.framework.factory.ServiceFactory**\uFF1A\u670D\u52A1\u5DE5\u5382\u7C7B\uFF0C\u7528\u4E8E\u521B\u5EFA\u4E1A\u52A1\u670D\u52A1\u5B9E\u4F8B\u3002\n- **com.bytefun.framework.common.result.PageResult**\uFF1A\u5206\u9875\u7ED3\u679C\u7C7B\uFF0C\u7528\u4E8E\u5C01\u88C5\u5206\u9875\u67E5\u8BE2\u7684\u7ED3\u679C\u3002\n- **com.bytefun.framework.common.result.Result**\uFF1A\u901A\u7528\u7ED3\u679C\u7C7B\uFF0C\u7528\u4E8E\u5C01\u88C5\u63A5\u53E3\u8C03\u7528\u7684\u7ED3\u679C\uFF0C\u5305\u62EC\u6210\u529F\u3001\u5931\u8D25\u3001\u5F02\u5E38\u7B49\u60C5\u51B5\u3002\n\n### \u6A21\u5757\u76EE\u5F55\u7ED3\u6784\u4E0E\u529F\u80FD\n#### \u4E1A\u52A1\u6A21\u5757\u6807\u51C6\u76EE\u5F55\u7ED3\u6784\n```\nsrc/main/\n\u251C\u2500\u2500 java/\n\u2502 \u2514\u2500\u2500 com/bytefun/biz/\n\u2502 \u251C\u2500\u2500 config/ # \u914D\u7F6E\u7C7B\uFF0C\u5982\u5DE5\u5382\u914D\u7F6E\u3001Bean \u5B9A\u4E49\u7B49\n\u2502 \u251C\u2500\u2500 controller/ # \u63A7\u5236\u5668\uFF0C\u5206\u4E3A admin \u548C client \u4E24\u7AEF\uFF0C\u5904\u7406\u524D\u7AEF\u8BF7\u6C42\n\u2502 \u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u76F8\u5173\u63A5\u53E3\n\u2502 \u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237\u76F8\u5173\u63A5\u53E3\n\u2502 \u251C\u2500\u2500 convert/ # VO/Entity/DTO \u4E4B\u95F4\u7684\u8F6C\u6362\u5668\n\u2502 \u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u8F6C\u6362\u5668\n\u2502 \u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237\u8F6C\u6362\u5668\n\u2502 \u251C\u2500\u2500 dao/ # MyBatis/MyBatisPlus \u6301\u4E45\u5C42\u63A5\u53E3\uFF08Mapper\uFF09\n\u2502 \u251C\u2500\u2500 entity/ # \u5B9E\u4F53\u7C7B\uFF0C\u5BF9\u5E94\u6570\u636E\u5E93\u8868\uFF0C\u5E38\u7528 Lombok \u7B80\u5316\n\u2502 \u251C\u2500\u2500 query/ # \u67E5\u8BE2\u53C2\u6570\u5BF9\u8C61\n\u2502 \u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u67E5\u8BE2\u53C2\u6570\n\u2502 \u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237\u67E5\u8BE2\u53C2\u6570\n\u2502 \u251C\u2500\u2500 service/ # \u4E1A\u52A1\u670D\u52A1\u63A5\u53E3\u4E0E\u5B9E\u73B0\uFF0C\u5206 admin/client\n\u2502 \u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u670D\u52A1\u63A5\u53E3\n\u2502 \u2502 \u2502 \u2514\u2500\u2500 impl/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u670D\u52A1\u5B9E\u73B0\n\u2502 \u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237\u670D\u52A1\u63A5\u53E3\n\u2502 \u2502 \u2514\u2500\u2500 impl/ # C\u7AEF\u7528\u6237\u670D\u52A1\u5B9E\u73B0\n\u2502 \u2514\u2500\u2500 vo/ # \u8FD4\u56DE\u524D\u7AEF\u7684\u89C6\u56FE\u5BF9\u8C61\uFF08VO\uFF09\n\u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF VO\n\u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237 VO\n\u2514\u2500\u2500 resources/\n \u2514\u2500\u2500 mapper/\n \u2502 \u2514\u2500\u2500 biz/\n \u2502 \u2514\u2500\u2500 CommonCollectDao.xml # MyBatis \u6620\u5C04\u6587\u4EF6\n \u2514\u2500\u2500\u2500auth.yml # \u914D\u7F6E\u65E0\u9700\u767B\u5F55\u8BA4\u8BC1\u7684\u63A5\u53E3\u8BF7\u6C42\u8DEF\u5F84\n```\n##### \u8BE6\u7EC6\u8BF4\u660E\n- **config/**\uFF1A\u5B58\u653E\u914D\u7F6E\u7C7B\uFF0C\u5982\u670D\u52A1\u5DE5\u5382\u3001Bean \u914D\u7F6E\u7B49\u3002\n- **controller/**\uFF1A\u63A7\u5236\u5C42\uFF0C\u8D1F\u8D23\u63A5\u6536\u548C\u54CD\u5E94\u524D\u7AEF\u8BF7\u6C42\uFF0C\u5206\u4E3A admin\uFF08\u540E\u53F0\u7BA1\u7406\uFF09\u548C client\uFF08C\u7AEF\u7528\u6237\uFF09\u3002\n- **convert/**\uFF1A\u5BF9\u8C61\u8F6C\u6362\u5C42\uFF0C\u8D1F\u8D23 Entity/VO/DTO \u4E4B\u95F4\u7684\u5C5E\u6027\u62F7\u8D1D\u548C\u8F6C\u6362\uFF0C\u4FBF\u4E8E\u5206\u79BB\u6570\u636E\u7ED3\u6784\u3002\n- **dao/**\uFF1A\u6570\u636E\u8BBF\u95EE\u5C42\uFF0C\u5B9A\u4E49 Mapper \u63A5\u53E3\uFF0C\u914D\u5408 MyBatis/MyBatisPlus \u8FDB\u884C\u6570\u636E\u5E93\u64CD\u4F5C\u3002\n- **entity/**\uFF1A\u5B9E\u4F53\u7C7B\uFF0C\u901A\u5E38\u4E0E\u6570\u636E\u5E93\u8868\u4E00\u4E00\u5BF9\u5E94\uFF0C\u5E38\u7528 Lombok \u6CE8\u89E3\uFF08\u5982 @Data\uFF09\u7B80\u5316\u4EE3\u7801\u3002\n- **query/**\uFF1A\u67E5\u8BE2\u53C2\u6570\u5BF9\u8C61\uFF0C\u5C01\u88C5\u63A5\u53E3\u8BF7\u6C42\u7684\u67E5\u8BE2\u6761\u4EF6\uFF0C\u5206 admin/client\u3002\n- **service/**\uFF1A\u4E1A\u52A1\u903B\u8F91\u5C42\uFF0C\u5B9A\u4E49\u670D\u52A1\u63A5\u53E3\u53CA\u5176\u5B9E\u73B0\uFF0C\u5206 admin/client\u3002\n- **vo/**\uFF1A\u89C6\u56FE\u5BF9\u8C61\uFF0C\u5C01\u88C5\u8FD4\u56DE\u7ED9\u524D\u7AEF\u7684\u6570\u636E\u7ED3\u6784\uFF0C\u5206 admin/client\u3002\n- **resources/mapper/biz/**\uFF1AMyBatis \u7684 XML \u6620\u5C04\u6587\u4EF6\uFF0C\u5B9A\u4E49 SQL \u8BED\u53E5\u548C\u7ED3\u679C\u6620\u5C04\u3002\n\n### \u6280\u672F\u6808\u8BF4\u660E\n#### \u6838\u5FC3\u6846\u67B6\n- **Spring Boot 2.7.6**\uFF1A\u4E3B\u6846\u67B6\uFF0C\u63D0\u4F9B\u81EA\u52A8\u914D\u7F6E\u3001\u5185\u5D4C\u670D\u52A1\u5668\u7B49\u7279\u6027\n- **Spring Security**\uFF1A\u5B89\u5168\u6846\u67B6\uFF0C\u63D0\u4F9B\u8BA4\u8BC1\u3001\u6388\u6743\u3001\u4F1A\u8BDD\u7BA1\u7406\u7B49\u529F\u80FD\n- **Spring Data Redis**\uFF1ARedis\u7F13\u5B58\u652F\u6301\n\n#### \u6570\u636E\u6301\u4E45\u5316\n- **MyBatis Plus 3.5.2**\uFF1A\u589E\u5F3A\u7684MyBatis\u6846\u67B6\uFF0C\u63D0\u4F9BCRUD\u64CD\u4F5C\u3001\u5206\u9875\u3001\u6761\u4EF6\u6784\u9020\u5668\u7B49\n- **\u8FBE\u68A6\u6570\u636E\u5E93**\uFF1A\u652F\u6301\u8FBE\u68A6\u6570\u636E\u5E93\u9A71\u52A8\n\n#### \u4EE3\u7801\u7B80\u5316\n- **Lombok**\uFF1A\u901A\u8FC7\u6CE8\u89E3\u81EA\u52A8\u751F\u6210getter/setter\u3001\u6784\u9020\u65B9\u6CD5\u3001toString\u7B49\u6837\u677F\u4EE3\u7801\n- **MapStruct 1.4.2**\uFF1A\u5BF9\u8C61\u6620\u5C04\u6846\u67B6\uFF0C\u81EA\u52A8\u751F\u6210Entity/VO/DTO\u4E4B\u95F4\u7684\u8F6C\u6362\u4EE3\u7801\n\n#### \u5DE5\u5177\u5E93\n- **Hutool 5.7.22**\uFF1AJava\u5DE5\u5177\u7C7B\u5E93\uFF0C\u63D0\u4F9B\u4E30\u5BCC\u7684\u5DE5\u5177\u65B9\u6CD5\n- **FastJSON 2.0.47**\uFF1AJSON\u5904\u7406\u5E93\n- **EasyExcel 3.1.1**\uFF1AExcel\u5BFC\u5165\u5BFC\u51FA\u5E93\n- **EasyTrans 2.0.12**\uFF1A\u6570\u636E\u7FFB\u8BD1\u6846\u67B6\n\n#### API\u6587\u6863\u5DE5\u5177\n- **Knife4j 4.4.0**\uFF1A\u57FA\u4E8EOpenAPI 3\u7684API\u6587\u6863\u751F\u6210\u5DE5\u5177\n\n#### \u5176\u4ED6\u7279\u6027\n- **\u591A\u79DF\u6237\u652F\u6301**\uFF1A\u652F\u6301\u591A\u79DF\u6237\u67B6\u6784\n- **XSS\u9632\u62A4**\uFF1A\u9632\u6B62XSS\u653B\u51FB\n- **\u9A8C\u8BC1\u7801\u652F\u6301**\uFF1A\u96C6\u6210\u9A8C\u8BC1\u7801\u529F\u80FD\n- **\u6587\u4EF6\u5B58\u50A8**\uFF1A\u652F\u6301\u963F\u91CC\u4E91OSS\u3001\u817E\u8BAF\u4E91COS\u3001\u4E03\u725B\u4E91\u3001MinIO\u7B49\u591A\u79CD\u5B58\u50A8\u65B9\u5F0F\n- **\u77ED\u4FE1\u670D\u52A1**\uFF1A\u652F\u6301\u963F\u91CC\u4E91\u3001\u817E\u8BAF\u4E91\u77ED\u4FE1\u670D\u52A1\n- **\u5FAE\u4FE1\u96C6\u6210**\uFF1A\u652F\u6301\u5FAE\u4FE1\u516C\u4F17\u53F7\u5F00\u53D1\n\n## db.json\u6587\u4EF6\u5185\u5BB9\u683C\u5F0F\u89C4\u8303\n```json\n[\n {\n \"moduleName\": \"\u6A21\u5757\u540D\u79F0\uFF0C\u547D\u540D\u89C4\u8303\uFF1Abytefun-boot-biz-\u5B50\u6A21\u5757\u540D\u79F0\",\n \"tableName\": \"\u8868\u540D\",\n \"tableComment\": \"\u8868\u6CE8\u91CA\",\n \"columns\": [\n {\n \"name\": \"\u5B57\u6BB5\u540D\u79F0\",\n \"type\": \"\u5B57\u6BB5\u5BF9\u5E94\u7684java\u7C7B\u578B\",\n \"nullable\": \"\u662F\u5426\u5141\u8BB8\u4E3ANULL\",\n \"default\": \"\u9ED8\u8BA4\u503C\",\n \"comment\": \"\u5B57\u6BB5\u6CE8\u91CA\",\n \"primaryKey\": \"\u662F\u5426\u4E3A\u4E3B\u952E\"\n }\n ]\n }\n]\n```\n## \u4FEE\u6539\u914D\u7F6E\u6587\u4EF6auth.yml\n```yml\nauth:\n ignore_urls:\n - /client/biz/example/**\n```\n## \u7EE7\u627FBaseServiceImpl\u7684Service\u5B9E\u73B0\u7C7B\n\u5982\u679CService\u7684\u5B9E\u73B0\u7C7B\u7EE7\u627F\u4E86BaseServiceImpl\uFF0C\u90A3\u4E48\u53EF\u4EE5\u76F4\u63A5\u4F7F\u7528\u6CDB\u578BDao\uFF1A'baseMapper'\uFF0C\u65E0\u9700\u624B\u52A8\u6CE8\u5165\u3002\n## \u7EE7\u627FBaseService\u7684Service\u63A5\u53E3\u7C7B\n\u5982\u679CService\u7684\u63A5\u53E3\u7C7B\u7EE7\u627F\u4E86BaseService\uFF0C\u90A3\u4E48\u53EF\u4EE5\u4F7F\u7528\u4EE5\u4E0B\u65B9\u6CD5\uFF1A\n| \u65B9\u6CD5\u540D | \u4E2D\u6587\u8BF4\u660E |\n| ------------------- | --------------------------------------- |\n| `save` | \u63D2\u5165\u4E00\u6761\u8BB0\u5F55\uFF08\u9009\u62E9\u5B57\u6BB5\uFF0C\u7B56\u7565\u63D2\u5165\uFF09 |\n| `saveBatch` | \u63D2\u5165\uFF08\u6279\u91CF\uFF09 |\n| `saveOrUpdateBatch` | \u6279\u91CF\u4FEE\u6539\u63D2\u5165 |\n| `removeById` | \u6839\u636E ID \u5220\u9664 |\n| `removeByMap` | \u6839\u636E columnMap \u6761\u4EF6\uFF0C\u5220\u9664\u8BB0\u5F55 |\n| `remove` | \u6839\u636E entity \u6761\u4EF6\uFF0C\u5220\u9664\u8BB0\u5F55 |\n| `removeByIds` | \u5220\u9664\uFF08\u6839\u636EID \u6279\u91CF\u5220\u9664\uFF09 |\n| `removeBatchByIds` | \u6279\u91CF\u5220\u9664(jdbc\u6279\u91CF\u63D0\u4EA4) |\n| `updateById` | \u6839\u636E ID \u9009\u62E9\u4FEE\u6539 |\n| `updateBatchById` | \u6839\u636EID \u6279\u91CF\u66F4\u65B0 |\n| `saveOrUpdate` | TableId \u6CE8\u89E3\u5B58\u5728\u66F4\u65B0\u8BB0\u5F55\uFF0C\u5426\u63D2\u5165\u4E00\u6761\u8BB0\u5F55 |\n| `getById` | \u6839\u636E ID \u67E5\u8BE2 |\n| `listByIds` | \u67E5\u8BE2\uFF08\u6839\u636EID \u6279\u91CF\u67E5\u8BE2\uFF09 |\n| `count` | \u67E5\u8BE2\u603B\u8BB0\u5F55\u6570 |\n| `list` | \u67E5\u8BE2\u5217\u8868 |\n| `page` | \u7FFB\u9875\u67E5\u8BE2 |\n| `listMaps` | \u67E5\u8BE2\u5217\u8868 |\n| `listObjs` | \u67E5\u8BE2\u5168\u90E8\u8BB0\u5F55 |\n| `pageMaps` | \u7FFB\u9875\u67E5\u8BE2 |\n";
|
|
1
|
+
export declare const backendCodePromptTemplate = "# \u4EE3\u7801\u751F\u6210\u89C4\u5219\n\n## \uD83D\uDD25 \u975E\u5E38\u91CD\u8981\uFF01\uFF01\u975E\u5E38\u6838\u5FC3\u7684\u89C4\u5219\uFF01\uFF01\n\u975E\u5E38\u91CD\u8981\uFF01\uFF01\u975E\u5E38\u6838\u5FC3\u7684\u89C4\u5219\uFF01\uFF01\u8FD9\u662F\u7279\u6B8A\u7684\u4EE3\u7801\u7F16\u5199\uFF0C\u4E0D\u662F\u5E38\u89C4\u7684\u4EE3\u7801\u7F16\u5199\uFF0C\u4F1A\u6709\u5F88\u591A\u7279\u522B\u7684\u89C4\u5219\uFF0C\u56E0\u6B64\u4F60\u7EDD\u5BF9\u4E0D\u80FD\u4EE5\u4F60\u5DF2\u6709\u7684\u7ECF\u9A8C\u548C\u77E5\u8BC6\u5E93\u6765\u81EA\u4EE5\u4E3A\u662F\u5730\u8DF3\u8FC7\u7701\u7565\u63D0\u793A\u8BCD\u91CC\u63D0\u5230\u7684\u5404\u79CD\u6267\u884C\u6B65\u9AA4\uFF0C\u4F60\u5FC5\u987B\u4E25\u683C\u6309\u7167\u63D0\u793A\u8BCD\u7ED9\u51FA\u7684\u6267\u884C\u6B65\u9AA4\uFF0C\u4E00\u6B65\u4E00\u6B65\u6765\u6267\u884C\uFF0C\u6BCF\u6267\u884C\u5B8C\u4E00\u6B65\u90FD\u5FC5\u987B\u8F93\u51FA\u8BE5\u6B65\u9AA4\u5DF2\u6267\u884C\uFF0C\u51C6\u5907\u6267\u884C\u4E0B\u4E00\u6B65\uFF1Axxx\u3002\n\n## \u7B2C1\u6B65\n\u5206\u6790\u7406\u89E3\u6574\u4E2A\u9879\u76EE\u7684\u4EE3\u7801\u7ED3\u6784\uFF0C\u53C2\u8003\u8FD9\u91CC\u9762\u7684'\u9879\u76EE\u6982\u8FF0'\uFF0C\u6CE8\u610F\uFF0C\u65E0\u9700\u5206\u6790admin\u7AEF\u7684\u4EE3\u7801\uFF0C\u4F60\u8981\u7F16\u5199\u7684\u662FC\u7AEF\u4EE3\u7801\u3002\n## \u7B2C2\u6B65\n\u5206\u6790\u7406\u89E3\u5DE5\u7A0B\u6839\u76EE\u5F55'.bytefun/globalApiInterfaceList.md'\u8FD9\u4E2A\u6587\u4EF6\uFF0C\u91CD\u70B9\u5206\u6790\u4ECE\u6587\u4EF6\u672B\u5C3E\u5F80\u4E0A\u627E\u5230\u7684\u7B2C\u4E00\u4EFDjson\u6570\u636E\uFF0C\u63D0\u53D6\u51FA\u6765\u540E\u4F60\u81EA\u5DF1\u5FC5\u987B\u7F13\u5B58\u597D\uFF0C\u8FD9\u975E\u5E38\u91CD\u8981\uFF0C\u56E0\u4E3A\u8FD9\u662F\u63A5\u53E3\u6E05\u5355\uFF0C\u662F\u4EE3\u7801\u751F\u6210\u7684\u4F9D\u636E\u3002\n## \u7B2C3\u6B65\n\u6839\u636E\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u63CF\u8FF0\uFF0C\u68C0\u67E5\u5185\u7F6E\u7684API\u63A5\u53E3\u662F\u5426\u6EE1\u8DB3\u63A5\u53E3\u5217\u8868\u91CC\u7684\u63A5\u53E3\u529F\u80FD\uFF0C\u4E0D\u8981\u521B\u5EFA\u5185\u7F6E\u7684API\u63A5\u53E3\u5DF2\u7ECF\u6EE1\u8DB3\u7684\u63A5\u53E3\u3002\u5185\u7F6E\u7684API\u63A5\u53E3\uFF1A\u8D26\u53F7\u5BC6\u7801\u767B\u5F55\u63A5\u53E3\uFF0C\u53D1\u9001\u77ED\u4FE1\u9A8C\u8BC1\u7801\u63A5\u53E3\uFF0C\u624B\u673A\u53F7\u767B\u5F55\u63A5\u53E3\uFF0C\u9000\u51FA\uFF08\u6CE8\u9500\uFF09\u63A5\u53E3\uFF0C\u624B\u673A\u53F7\u6CE8\u518C\u63A5\u53E3\u3002\n## \u7B2C4\u6B65\n\u6839\u636E\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u63CF\u8FF0\uFF0C\u5224\u65AD\u76EE\u524D\u7684\u6570\u636E\u5E93\u8868\u7ED3\u6784\u662F\u5426\u652F\u6301\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u529F\u80FD\u548C\u4E1A\u52A1\u903B\u8F91\uFF0C\u4E0D\u652F\u6301\u7684\u60C5\u51B5\u4E0B\u4FEE\u6539\u5E93\u8868\u7ED3\u6784\uFF0C\u5E76\u628A\u4FEE\u6539\u540E\u7684SQL\u8BED\u53E5\u653E\u5728\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/doc/'\u76EE\u5F55\u4E0B\u3002\u7279\u522B\u6CE8\u610F\u5224\u65AD\u73B0\u6709\u7684\u8868\u5B57\u6BB5\u662F\u5426\u6EE1\u8DB3\u63A5\u53E3\u6240\u9700\u7684\u8FD4\u56DE\u6570\u636E\u3002\n## \u7B2C5\u6B65\n\u6839\u636E\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u63CF\u8FF0\uFF0C\u67E5\u627E\u9700\u8981\u7528\u5230\u7684\u6570\u636E\u5E93\u8868\uFF0C\u6839\u636E\u5DE5\u7A0B\u6839\u76EE\u5F55\"backend/doc/bytefun-boot-simple.sql\"\u6587\u4EF6\u91CC\u7684\u5EFA\u8868\u8BED\u53E5\u548C\u4FEE\u6539\u540E\u7684SQL\u8BED\u53E5\uFF0C\u4E25\u683C\u6309\u7167'db.json\u6587\u4EF6\u5185\u5BB9\u683C\u5F0F\u89C4\u8303'\uFF0C\u5728\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/doc/db.json'\u6587\u4EF6\uFF0C\u6587\u4EF6\u4E2D\u6DFB\u52A0\u5BF9\u5E94\u7684\u8868\u7ED3\u6784\uFF0C\u5FC5\u987B\u5305\u542B\u6574\u5F20\u8868\u7684\u6240\u6709\u5B57\u6BB5\uFF0C\u5982\u679C\u6CA1\u6709\u4FEE\u6539\u540E\u7684SQL\u8BED\u53E5\uFF0C\u5219'db.json'\u7684\u6587\u4EF6\u5185\u5BB9\u4E3A'[]'\u3002\n## \u7B2C6\u6B65\n\u91CD\u65B0\u5206\u6790\u7406\u89E3\u8FD9\u4EFD\u4EE3\u7801\u751F\u6210\u89C4\u5219\u7684\u5185\u5BB9\uFF0C\u5FC5\u987B\u9010\u884C\u9605\u8BFB\u5206\u6790\uFF01\u6839\u636E'\u7EE7\u627FBaseServiceImpl\u7684Service\u5B9E\u73B0\u7C7B'\uFF0C'\u7EE7\u627FBaseService\u7684Service\u63A5\u53E3\u7C7B'\u8FD9\u4E9B\u6761\u76EE\u7684\u5185\u5BB9\uFF0C\u638C\u63E1Service\u5C42\u4EE3\u7801\u7684\u5199\u6CD5\u3002\u5206\u6790\u4E0B\u9762\u63D0\u5230\u7684'\u9879\u76EE\u6982\u8FF0'\u548C'\u4E1A\u52A1\u6A21\u5757\u6807\u51C6\u76EE\u5F55\u7ED3\u6784'\uFF0C\u7279\u522B\u662F'\u4E1A\u52A1\u6A21\u5757\u6807\u51C6\u76EE\u5F55\u7ED3\u6784'\uFF0C\u8FD9\u4E9B\u4E1A\u52A1\u6A21\u5757\u662F'bytefun-boot-biz-common'\u7684\u5B50\u6A21\u5757\u3002\n## \u7B2C7\u6B65\n\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/bytefun-boot-biz-common'\u5B58\u5728\u9700\u8981\u521B\u5EFA\u7684\u5B50\u6A21\u5757\u540E\uFF0C\u68C0\u67E5\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/bytefun-boot-biz-common'\u7684'pom.xml'\u6587\u4EF6\uFF0C\u786E\u4FDD\u5BF9\u5E94\u7684\u5B50\u6A21\u5757\u5DF2\u7ECF\u6DFB\u52A0\u5230'modules'\u4E2D\u3002\n## \u7B2C8\u6B65\n\u6839\u636E\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\u7684\u63A5\u53E3\u63CF\u8FF0\uFF0C\u4FEE\u6539\u5DE5\u7A0B\u6839\u76EE\u5F55'backend/bytefun-boot-biz-common'\u7684\u5B50\u6A21\u5757\u7684\u4EE3\u7801\uFF0C\u5B9E\u73B0\u63A5\u53E3\u7684\u529F\u80FD\uFF0C\u6CE8\u610F\uFF0CSQL\u8BED\u53E5\u5FC5\u987B\u5199\u5728dao.xml\u6620\u5C04\u6587\u4EF6\u91CC\uFF0C\u7981\u6B62\u5728java\u6587\u4EF6\u4E2D\u62FC\u88C5SQL\u8BED\u53E5\uFF0C\u7981\u6B62\u5728java\u6587\u4EF6\u4E2D\u4F7F\u7528MyBaits\u7684Wrapper\u76F8\u5173\u7C7B\u3002\u5982\u679C\u63D0\u53D6\u51FA\u6765\u7684\u63A5\u53E3\u6E05\u5355\u91CC\uFF0C\u5B58\u5728'auth'\u5BF9\u5E94\u7684\u503C\u4E3Afalse\u7684\u60C5\u51B5\u4E0B\uFF0C\u9700\u8981\u4FEE\u6539\u914D\u7F6E\u6587\u4EF6'auth.yml'\uFF0C\u5728ignore_urls\u589E\u52A0\u91CC\u589E\u52A0\u5FFD\u7565\u8BA4\u8BC1\u7684\u8DEF\u5F84\uFF0C\u5BF9\u5E94\u4E3A\u5DE5\u7A0B\u6839\u76EE\u5F55\".bytefun/globalApiInterfaceList.md\"\u5339\u914D\u5230\u7684json\u6570\u636E\u4E2D\u7684path\uFF0C\u6CE8\u610F\u5FC5\u987B\u4EE5'/'\u5F00\u5934\uFF0C\"auth.yml\"\u8FD9\u4E2A\u6587\u4EF6\u5728\"bytefun-server-simple\"\u6A21\u5757\u4E0B\u7684\"src/main/resources\"\u76EE\u5F55\u4E0B\u3002\u5982\u679C\u7F16\u5199\u7684java\u6587\u4EF6\u4E0D\u5728'dao'\u6216'entity'\u8FD9\u4E24\u4E2Apackage\u6216\u5B50package\u4E0B\uFF0C\u6587\u4EF6\u540D\u79F0\u9700\u8981\u4EE5'Client'\u5F00\u5934\u3002\u5982\u679C'bytefun-boot-biz-common'\u6A21\u5757\u4E0B\u7684\u5B50\u6A21\u5757\u5B58\u5728\u76F8\u4E92\u4F9D\u8D56\uFF0C\u5FC5\u987B\u8981\u4FEE\u6539\u5B50\u6A21\u5757\u7684pom.xml\u6587\u4EF6\uFF0C\u5F15\u5165\u5BF9\u5E94\u7684\u4F9D\u8D56\u6A21\u5757\u3002\n## \u7B2C9\u6B65\n\u9700\u8981\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u91CC\u9762\u8BE5\u9875\u9762\u5BF9\u5E94\u7684json\u7684codeStatus\u5B57\u6BB5\u4E3Acompleted\u3002\n## \u7B2C10\u6B65\n\u6240\u6709\u4EE3\u7801\u7F16\u5199\u5B8C\u6BD5\u540E\uFF0C\u9700\u8981\u5728\u6574\u4E2A\u9879\u76EE\u6267\u884C 'mvn clean compile' \u547D\u4EE4\u7F16\u8BD1\u9879\u76EE\uFF0C\u7981\u6B62\u5355\u4E2A\u6A21\u5757\u5355\u72EC\u7F16\u8BD1\uFF0C\u9047\u5230\u7F16\u8BD1\u5931\u8D25\u65F6\u9700\u8981\u4FEE\u6539\u9519\u8BEF\u4EE3\u7801\u3002\n\n## \u9879\u76EE\u6982\u8FF0\n\u672C\u9879\u76EE\u57FA\u4E8E Spring Boot 2.7.6\uFF0C\u91C7\u7528\u591A\u6A21\u5757\u67B6\u6784\u8BBE\u8BA1\uFF0C\u4F7F\u7528\u4E86 Lombok \u8FDB\u884C\u7B80\u5316\u4EE3\u7801\uFF0CMyBatis Plus \u8FDB\u884C\u6570\u636E\u6301\u4E45\u5316\uFF0CMapStruct \u8FDB\u884C\u5BF9\u8C61\u8F6C\u6362\u3002\n### \u9879\u76EE\u6574\u4F53\u67B6\u6784\n```\nbytefun-boot/\n\u251C\u2500\u2500 bytefun-boot-api/ # \u5B9A\u4E49\u5185\u90E8service\u63A5\u53E3\n\u251C\u2500\u2500 bytefun-boot-biz/ # \u4E1A\u52A1\u6A21\u5757\uFF0C\u5305\u542B\u5177\u4F53\u4E1A\u52A1\u5B9E\u73B0\n\u251C\u2500\u2500 bytefun-boot-framework/ # \u6846\u67B6\u6838\u5FC3\u6A21\u5757\uFF0C\u63D0\u4F9B\u57FA\u7840\u529F\u80FD\n\u251C\u2500\u2500 bytefun-boot-module/ # \u529F\u80FD\u6A21\u5757\u96C6\u5408\n\u2502 \u251C\u2500\u2500 bytefun-module-message/ # \u6D88\u606F\u6A21\u5757\n\u2502 \u251C\u2500\u2500 bytefun-module-monitor/ # \u76D1\u63A7\u6A21\u5757\n\u2502 \u2514\u2500\u2500 bytefun-module-quartz/ # \u5B9A\u65F6\u4EFB\u52A1\u6A21\u5757\n\u251C\u2500\u2500 bytefun-boot-system/ # \u7CFB\u7EDF\u7BA1\u7406\u6A21\u5757\n\u2514\u2500\u2500 bytefun-server-simple/ # \u542F\u52A8\u6A21\u5757\n\u251C\u2500\u2500 doc/ # \u8BF4\u660E\u6587\u6863\n\u2502 \u2514\u2500\u2500 apiDoc/ # \u5DF2\u6709\u6A21\u5757\u7684\u63A5\u53E3\u6587\u6863\n\u2502 \u251C\u2500\u2500 BackendApiCodeDescription.md/ # \u540E\u7AEF\u63A5\u53E3\u4EE3\u7801\u63CF\u8FF0\n\u2502 \u2514\u2500\u2500 bytefun-boot-simple.sql/ # \u6570\u636E\u5E93\u8868\u7ED3\u6784\n```\n#### bytefun-boot-system \u7CFB\u7EDF\u7BA1\u7406\u6A21\u5757\u8BE6\u7EC6\u8BF4\u660E\n- **com/bytefun/system/controller/client/**\uFF1AC\u7AEF\u63A7\u5236\u5C42\uFF0C\u8D1F\u8D23\u63A5\u6536\u548C\u54CD\u5E94\u524D\u7AEF\u8BF7\u6C42\u3002\n- **com/bytefun/system/convert/**\uFF1A\u5BF9\u8C61\u8F6C\u6362\u5C42\uFF0C\u8D1F\u8D23 Entity/VO/DTO \u4E4B\u95F4\u7684\u5C5E\u6027\u62F7\u8D1D\u548C\u8F6C\u6362\uFF0C\u4FBF\u4E8E\u5206\u79BB\u6570\u636E\u7ED3\u6784\u3002\n- **com/bytefun/system/dao/**\uFF1A\u6570\u636E\u8BBF\u95EE\u5C42\uFF0C\u5B9A\u4E49 Mapper \u63A5\u53E3\uFF0C\u914D\u5408 MyBatis/MyBatisPlus \u8FDB\u884C\u6570\u636E\u5E93\u64CD\u4F5C\u3002\n- **com/bytefun/system/entity/**\uFF1A\u5B9E\u4F53\u7C7B\uFF0C\u901A\u5E38\u4E0E\u6570\u636E\u5E93\u8868\u4E00\u4E00\u5BF9\u5E94\uFF0C\u5E38\u7528 Lombok \u6CE8\u89E3\uFF08\u5982 @Data\uFF09\u7B80\u5316\u4EE3\u7801\u3002\n- **com/bytefun/system/query/**\uFF1A\u67E5\u8BE2\u53C2\u6570\u5BF9\u8C61\uFF0C\u5C01\u88C5\u63A5\u53E3\u8BF7\u6C42\u7684\u67E5\u8BE2\u6761\u4EF6\uFF0C\u5206 admin/client\u3002\n- **com/bytefun/system/service/**\uFF1A\u4E1A\u52A1\u903B\u8F91\u5C42\uFF0C\u5B9A\u4E49\u670D\u52A1\u63A5\u53E3\u53CA\u5176\u5B9E\u73B0\uFF0C\u5206 admin/client\u3002\n- **com/bytefun/system/vo/**\uFF1A\u89C6\u56FE\u5BF9\u8C61\uFF0C\u5C01\u88C5\u8FD4\u56DE\u7ED9\u524D\u7AEF\u7684\u6570\u636E\u7ED3\u6784\uFF0C\u5206 admin/client\u3002\n- **resources/mapper/**\uFF1AMyBatis \u7684 XML \u6620\u5C04\u6587\u4EF6\uFF0C\u5B9A\u4E49 SQL \u8BED\u53E5\u548C\u7ED3\u679C\u6620\u5C04\u3002\n\n\u6CE8\u610F\uFF0C\u5728bytefun-boot-system\u4E2D\u5DF2\u7ECF\u5305\u542B\u4E86\u7528\u6237\u57FA\u7840\u4FE1\u606F\u7684\u529F\u80FD\u4EE3\u7801\u3002\n\u5BF9\u5E94\u5B9E\u4F53\u7C7B\u4E3A`com.bytefun.system.entity.SysUserEntity`\uFF1B\n\u5BF9\u5E94controller\u4E3A`com.bytefun.system.controller.client.ClientSysAuthController`\uFF1B\n\u5BF9\u5E94\u7684\u6570\u636E\u8868\u4E3A`sys_user`;\n\n#### bytefun-boot-framework \u6846\u67B6\u6838\u5FC3\u6A21\u5757\u6982\u8981\u8BF4\u660E\n- **com.bytefun.framework.factory.ServiceFactory**\uFF1A\u670D\u52A1\u5DE5\u5382\u7C7B\uFF0C\u7528\u4E8E\u521B\u5EFA\u4E1A\u52A1\u670D\u52A1\u5B9E\u4F8B\u3002\n- **com.bytefun.framework.common.result.PageResult**\uFF1A\u5206\u9875\u7ED3\u679C\u7C7B\uFF0C\u7528\u4E8E\u5C01\u88C5\u5206\u9875\u67E5\u8BE2\u7684\u7ED3\u679C\u3002\n- **com.bytefun.framework.common.result.Result**\uFF1A\u901A\u7528\u7ED3\u679C\u7C7B\uFF0C\u7528\u4E8E\u5C01\u88C5\u63A5\u53E3\u8C03\u7528\u7684\u7ED3\u679C\uFF0C\u5305\u62EC\u6210\u529F\u3001\u5931\u8D25\u3001\u5F02\u5E38\u7B49\u60C5\u51B5\u3002\n\n### \u6A21\u5757\u76EE\u5F55\u7ED3\u6784\u4E0E\u529F\u80FD\n#### \u4E1A\u52A1\u6A21\u5757\u6807\u51C6\u76EE\u5F55\u7ED3\u6784\n```\nsrc/main/\n\u251C\u2500\u2500 java/\n\u2502 \u2514\u2500\u2500 com/bytefun/biz/\n\u2502 \u251C\u2500\u2500 config/ # \u914D\u7F6E\u7C7B\uFF0C\u5982\u5DE5\u5382\u914D\u7F6E\u3001Bean \u5B9A\u4E49\u7B49\n\u2502 \u251C\u2500\u2500 controller/ # \u63A7\u5236\u5668\uFF0C\u5206\u4E3A admin \u548C client \u4E24\u7AEF\uFF0C\u5904\u7406\u524D\u7AEF\u8BF7\u6C42\n\u2502 \u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u76F8\u5173\u63A5\u53E3\n\u2502 \u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237\u76F8\u5173\u63A5\u53E3\n\u2502 \u251C\u2500\u2500 convert/ # VO/Entity/DTO \u4E4B\u95F4\u7684\u8F6C\u6362\u5668\n\u2502 \u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u8F6C\u6362\u5668\n\u2502 \u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237\u8F6C\u6362\u5668\n\u2502 \u251C\u2500\u2500 dao/ # MyBatis/MyBatisPlus \u6301\u4E45\u5C42\u63A5\u53E3\uFF08Mapper\uFF09\n\u2502 \u251C\u2500\u2500 entity/ # \u5B9E\u4F53\u7C7B\uFF0C\u5BF9\u5E94\u6570\u636E\u5E93\u8868\uFF0C\u5E38\u7528 Lombok \u7B80\u5316\n\u2502 \u251C\u2500\u2500 query/ # \u67E5\u8BE2\u53C2\u6570\u5BF9\u8C61\n\u2502 \u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u67E5\u8BE2\u53C2\u6570\n\u2502 \u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237\u67E5\u8BE2\u53C2\u6570\n\u2502 \u251C\u2500\u2500 service/ # \u4E1A\u52A1\u670D\u52A1\u63A5\u53E3\u4E0E\u5B9E\u73B0\uFF0C\u5206 admin/client\n\u2502 \u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u670D\u52A1\u63A5\u53E3\n\u2502 \u2502 \u2502 \u2514\u2500\u2500 impl/ # \u540E\u53F0\u7BA1\u7406\u7AEF\u670D\u52A1\u5B9E\u73B0\n\u2502 \u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237\u670D\u52A1\u63A5\u53E3\n\u2502 \u2502 \u2514\u2500\u2500 impl/ # C\u7AEF\u7528\u6237\u670D\u52A1\u5B9E\u73B0\n\u2502 \u2514\u2500\u2500 vo/ # \u8FD4\u56DE\u524D\u7AEF\u7684\u89C6\u56FE\u5BF9\u8C61\uFF08VO\uFF09\n\u2502 \u251C\u2500\u2500 admin/ # \u540E\u53F0\u7BA1\u7406\u7AEF VO\n\u2502 \u2514\u2500\u2500 client/ # C\u7AEF\u7528\u6237 VO\n\u2514\u2500\u2500 resources/\n \u2514\u2500\u2500 mapper/\n \u2502 \u2514\u2500\u2500 biz/\n \u2502 \u2514\u2500\u2500 CommonCollectDao.xml # MyBatis \u6620\u5C04\u6587\u4EF6\n \u2514\u2500\u2500\u2500auth.yml # \u914D\u7F6E\u65E0\u9700\u767B\u5F55\u8BA4\u8BC1\u7684\u63A5\u53E3\u8BF7\u6C42\u8DEF\u5F84\n```\n##### \u8BE6\u7EC6\u8BF4\u660E\n- **config/**\uFF1A\u5B58\u653E\u914D\u7F6E\u7C7B\uFF0C\u5982\u670D\u52A1\u5DE5\u5382\u3001Bean \u914D\u7F6E\u7B49\u3002\n- **controller/**\uFF1A\u63A7\u5236\u5C42\uFF0C\u8D1F\u8D23\u63A5\u6536\u548C\u54CD\u5E94\u524D\u7AEF\u8BF7\u6C42\uFF0C\u5206\u4E3A admin\uFF08\u540E\u53F0\u7BA1\u7406\uFF09\u548C client\uFF08C\u7AEF\u7528\u6237\uFF09\u3002\n- **convert/**\uFF1A\u5BF9\u8C61\u8F6C\u6362\u5C42\uFF0C\u8D1F\u8D23 Entity/VO/DTO \u4E4B\u95F4\u7684\u5C5E\u6027\u62F7\u8D1D\u548C\u8F6C\u6362\uFF0C\u4FBF\u4E8E\u5206\u79BB\u6570\u636E\u7ED3\u6784\u3002\n- **dao/**\uFF1A\u6570\u636E\u8BBF\u95EE\u5C42\uFF0C\u5B9A\u4E49 Mapper \u63A5\u53E3\uFF0C\u914D\u5408 MyBatis/MyBatisPlus \u8FDB\u884C\u6570\u636E\u5E93\u64CD\u4F5C\u3002\n- **entity/**\uFF1A\u5B9E\u4F53\u7C7B\uFF0C\u901A\u5E38\u4E0E\u6570\u636E\u5E93\u8868\u4E00\u4E00\u5BF9\u5E94\uFF0C\u5E38\u7528 Lombok \u6CE8\u89E3\uFF08\u5982 @Data\uFF09\u7B80\u5316\u4EE3\u7801\u3002\n- **query/**\uFF1A\u67E5\u8BE2\u53C2\u6570\u5BF9\u8C61\uFF0C\u5C01\u88C5\u63A5\u53E3\u8BF7\u6C42\u7684\u67E5\u8BE2\u6761\u4EF6\uFF0C\u5206 admin/client\u3002\n- **service/**\uFF1A\u4E1A\u52A1\u903B\u8F91\u5C42\uFF0C\u5B9A\u4E49\u670D\u52A1\u63A5\u53E3\u53CA\u5176\u5B9E\u73B0\uFF0C\u5206 admin/client\u3002\n- **vo/**\uFF1A\u89C6\u56FE\u5BF9\u8C61\uFF0C\u5C01\u88C5\u8FD4\u56DE\u7ED9\u524D\u7AEF\u7684\u6570\u636E\u7ED3\u6784\uFF0C\u5206 admin/client\u3002\n- **resources/mapper/biz/**\uFF1AMyBatis \u7684 XML \u6620\u5C04\u6587\u4EF6\uFF0C\u5B9A\u4E49 SQL \u8BED\u53E5\u548C\u7ED3\u679C\u6620\u5C04\u3002\n\n### \u6280\u672F\u6808\u8BF4\u660E\n#### \u6838\u5FC3\u6846\u67B6\n- **Spring Boot 2.7.6**\uFF1A\u4E3B\u6846\u67B6\uFF0C\u63D0\u4F9B\u81EA\u52A8\u914D\u7F6E\u3001\u5185\u5D4C\u670D\u52A1\u5668\u7B49\u7279\u6027\n- **Spring Security**\uFF1A\u5B89\u5168\u6846\u67B6\uFF0C\u63D0\u4F9B\u8BA4\u8BC1\u3001\u6388\u6743\u3001\u4F1A\u8BDD\u7BA1\u7406\u7B49\u529F\u80FD\n- **Spring Data Redis**\uFF1ARedis\u7F13\u5B58\u652F\u6301\n\n#### \u6570\u636E\u6301\u4E45\u5316\n- **MyBatis Plus 3.5.2**\uFF1A\u589E\u5F3A\u7684MyBatis\u6846\u67B6\uFF0C\u63D0\u4F9BCRUD\u64CD\u4F5C\u3001\u5206\u9875\u3001\u6761\u4EF6\u6784\u9020\u5668\u7B49\n- **\u8FBE\u68A6\u6570\u636E\u5E93**\uFF1A\u652F\u6301\u8FBE\u68A6\u6570\u636E\u5E93\u9A71\u52A8\n\n#### \u4EE3\u7801\u7B80\u5316\n- **Lombok**\uFF1A\u901A\u8FC7\u6CE8\u89E3\u81EA\u52A8\u751F\u6210getter/setter\u3001\u6784\u9020\u65B9\u6CD5\u3001toString\u7B49\u6837\u677F\u4EE3\u7801\n- **MapStruct 1.4.2**\uFF1A\u5BF9\u8C61\u6620\u5C04\u6846\u67B6\uFF0C\u81EA\u52A8\u751F\u6210Entity/VO/DTO\u4E4B\u95F4\u7684\u8F6C\u6362\u4EE3\u7801\n\n#### \u5DE5\u5177\u5E93\n- **Hutool 5.7.22**\uFF1AJava\u5DE5\u5177\u7C7B\u5E93\uFF0C\u63D0\u4F9B\u4E30\u5BCC\u7684\u5DE5\u5177\u65B9\u6CD5\n- **FastJSON 2.0.47**\uFF1AJSON\u5904\u7406\u5E93\n- **EasyExcel 3.1.1**\uFF1AExcel\u5BFC\u5165\u5BFC\u51FA\u5E93\n- **EasyTrans 2.0.12**\uFF1A\u6570\u636E\u7FFB\u8BD1\u6846\u67B6\n\n#### API\u6587\u6863\u5DE5\u5177\n- **Knife4j 4.4.0**\uFF1A\u57FA\u4E8EOpenAPI 3\u7684API\u6587\u6863\u751F\u6210\u5DE5\u5177\n\n#### \u5176\u4ED6\u7279\u6027\n- **\u591A\u79DF\u6237\u652F\u6301**\uFF1A\u652F\u6301\u591A\u79DF\u6237\u67B6\u6784\n- **XSS\u9632\u62A4**\uFF1A\u9632\u6B62XSS\u653B\u51FB\n- **\u9A8C\u8BC1\u7801\u652F\u6301**\uFF1A\u96C6\u6210\u9A8C\u8BC1\u7801\u529F\u80FD\n- **\u6587\u4EF6\u5B58\u50A8**\uFF1A\u652F\u6301\u963F\u91CC\u4E91OSS\u3001\u817E\u8BAF\u4E91COS\u3001\u4E03\u725B\u4E91\u3001MinIO\u7B49\u591A\u79CD\u5B58\u50A8\u65B9\u5F0F\n- **\u77ED\u4FE1\u670D\u52A1**\uFF1A\u652F\u6301\u963F\u91CC\u4E91\u3001\u817E\u8BAF\u4E91\u77ED\u4FE1\u670D\u52A1\n- **\u5FAE\u4FE1\u96C6\u6210**\uFF1A\u652F\u6301\u5FAE\u4FE1\u516C\u4F17\u53F7\u5F00\u53D1\n\n## db.json\u6587\u4EF6\u5185\u5BB9\u683C\u5F0F\u89C4\u8303\n```json\n[\n {\n \"moduleName\": \"\u6A21\u5757\u540D\u79F0\uFF0C\u547D\u540D\u89C4\u8303\uFF1Abytefun-boot-biz-\u5B50\u6A21\u5757\u540D\u79F0\",\n \"tableName\": \"\u8868\u540D\",\n \"tableComment\": \"\u8868\u6CE8\u91CA\",\n \"columns\": [\n {\n \"name\": \"\u5B57\u6BB5\u540D\u79F0\",\n \"type\": \"\u5B57\u6BB5\u5BF9\u5E94\u7684java\u7C7B\u578B\",\n \"nullable\": \"\u662F\u5426\u5141\u8BB8\u4E3ANULL\",\n \"default\": \"\u9ED8\u8BA4\u503C\",\n \"comment\": \"\u5B57\u6BB5\u6CE8\u91CA\",\n \"primaryKey\": \"\u662F\u5426\u4E3A\u4E3B\u952E\"\n }\n ]\n }\n]\n```\n## \u4FEE\u6539\u914D\u7F6E\u6587\u4EF6auth.yml\n```yml\nauth:\n ignore_urls:\n - /client/biz/example/**\n```\n## \u7EE7\u627FBaseServiceImpl\u7684Service\u5B9E\u73B0\u7C7B\n\u5982\u679CService\u7684\u5B9E\u73B0\u7C7B\u7EE7\u627F\u4E86BaseServiceImpl\uFF0C\u90A3\u4E48\u53EF\u4EE5\u76F4\u63A5\u4F7F\u7528\u6CDB\u578BDao\uFF1A'baseMapper'\uFF0C\u65E0\u9700\u624B\u52A8\u6CE8\u5165\u3002\n## \u7EE7\u627FBaseService\u7684Service\u63A5\u53E3\u7C7B\n\u5982\u679CService\u7684\u63A5\u53E3\u7C7B\u7EE7\u627F\u4E86BaseService\uFF0C\u90A3\u4E48\u53EF\u4EE5\u4F7F\u7528\u4EE5\u4E0B\u65B9\u6CD5\uFF1A\n| \u65B9\u6CD5\u540D | \u4E2D\u6587\u8BF4\u660E |\n| ------------------- | --------------------------------------- |\n| `save` | \u63D2\u5165\u4E00\u6761\u8BB0\u5F55\uFF08\u9009\u62E9\u5B57\u6BB5\uFF0C\u7B56\u7565\u63D2\u5165\uFF09 |\n| `saveBatch` | \u63D2\u5165\uFF08\u6279\u91CF\uFF09 |\n| `saveOrUpdateBatch` | \u6279\u91CF\u4FEE\u6539\u63D2\u5165 |\n| `removeById` | \u6839\u636E ID \u5220\u9664 |\n| `removeByMap` | \u6839\u636E columnMap \u6761\u4EF6\uFF0C\u5220\u9664\u8BB0\u5F55 |\n| `remove` | \u6839\u636E entity \u6761\u4EF6\uFF0C\u5220\u9664\u8BB0\u5F55 |\n| `removeByIds` | \u5220\u9664\uFF08\u6839\u636EID \u6279\u91CF\u5220\u9664\uFF09 |\n| `removeBatchByIds` | \u6279\u91CF\u5220\u9664(jdbc\u6279\u91CF\u63D0\u4EA4) |\n| `updateById` | \u6839\u636E ID \u9009\u62E9\u4FEE\u6539 |\n| `updateBatchById` | \u6839\u636EID \u6279\u91CF\u66F4\u65B0 |\n| `saveOrUpdate` | TableId \u6CE8\u89E3\u5B58\u5728\u66F4\u65B0\u8BB0\u5F55\uFF0C\u5426\u63D2\u5165\u4E00\u6761\u8BB0\u5F55 |\n| `getById` | \u6839\u636E ID \u67E5\u8BE2 |\n| `listByIds` | \u67E5\u8BE2\uFF08\u6839\u636EID \u6279\u91CF\u67E5\u8BE2\uFF09 |\n| `count` | \u67E5\u8BE2\u603B\u8BB0\u5F55\u6570 |\n| `list` | \u67E5\u8BE2\u5217\u8868 |\n| `page` | \u7FFB\u9875\u67E5\u8BE2 |\n| `listMaps` | \u67E5\u8BE2\u5217\u8868 |\n| `listObjs` | \u67E5\u8BE2\u5168\u90E8\u8BB0\u5F55 |\n| `pageMaps` | \u7FFB\u9875\u67E5\u8BE2 |\n";
|
|
2
2
|
//# sourceMappingURL=backendCode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendCode.d.ts","sourceRoot":"","sources":["../src/backendCode.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"backendCode.d.ts","sourceRoot":"","sources":["../src/backendCode.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,yBAAyB,ihqBA8LrC,CAAC"}
|
package/build/backendCode.js
CHANGED
|
@@ -6,7 +6,7 @@ export const backendCodePromptTemplate = `# 代码生成规则
|
|
|
6
6
|
## 第1步
|
|
7
7
|
分析理解整个项目的代码结构,参考这里面的'项目概述',注意,无需分析admin端的代码,你要编写的是C端代码。
|
|
8
8
|
## 第2步
|
|
9
|
-
分析理解工程根目录'
|
|
9
|
+
分析理解工程根目录'.bytefun/globalApiInterfaceList.md'这个文件,重点分析从文件末尾往上找到的第一份json数据,提取出来后你自己必须缓存好,这非常重要,因为这是接口清单,是代码生成的依据。
|
|
10
10
|
## 第3步
|
|
11
11
|
根据提取出来的接口清单里的接口描述,检查内置的API接口是否满足接口列表里的接口功能,不要创建内置的API接口已经满足的接口。内置的API接口:账号密码登录接口,发送短信验证码接口,手机号登录接口,退出(注销)接口,手机号注册接口。
|
|
12
12
|
## 第4步
|
|
@@ -18,7 +18,7 @@ export const backendCodePromptTemplate = `# 代码生成规则
|
|
|
18
18
|
## 第7步
|
|
19
19
|
工程根目录'backend/bytefun-boot-biz-common'存在需要创建的子模块后,检查工程根目录'backend/bytefun-boot-biz-common'的'pom.xml'文件,确保对应的子模块已经添加到'modules'中。
|
|
20
20
|
## 第8步
|
|
21
|
-
根据提取出来的接口清单里的接口描述,修改工程根目录'backend/bytefun-boot-biz-common'的子模块的代码,实现接口的功能,注意,SQL语句必须写在dao.xml映射文件里,禁止在java文件中拼装SQL语句,禁止在java文件中使用MyBaits的Wrapper相关类。如果提取出来的接口清单里,存在'auth'对应的值为false的情况下,需要修改配置文件'auth.yml',在ignore_urls增加里增加忽略认证的路径,对应为工程根目录"
|
|
21
|
+
根据提取出来的接口清单里的接口描述,修改工程根目录'backend/bytefun-boot-biz-common'的子模块的代码,实现接口的功能,注意,SQL语句必须写在dao.xml映射文件里,禁止在java文件中拼装SQL语句,禁止在java文件中使用MyBaits的Wrapper相关类。如果提取出来的接口清单里,存在'auth'对应的值为false的情况下,需要修改配置文件'auth.yml',在ignore_urls增加里增加忽略认证的路径,对应为工程根目录".bytefun/globalApiInterfaceList.md"匹配到的json数据中的path,注意必须以'/'开头,"auth.yml"这个文件在"bytefun-server-simple"模块下的"src/main/resources"目录下。如果编写的java文件不在'dao'或'entity'这两个package或子package下,文件名称需要以'Client'开头。如果'bytefun-boot-biz-common'模块下的子模块存在相互依赖,必须要修改子模块的pom.xml文件,引入对应的依赖模块。
|
|
22
22
|
## 第9步
|
|
23
23
|
需要更新\`doc/后端代码开发进度.json\`里面该页面对应的json的codeStatus字段为completed。
|
|
24
24
|
## 第10步
|
|
@@ -189,4 +189,4 @@ auth:
|
|
|
189
189
|
| \`listObjs\` | 查询全部记录 |
|
|
190
190
|
| \`pageMaps\` | 翻页查询 |
|
|
191
191
|
`;
|
|
192
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZENvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFja2VuZENvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E4THhDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgYmFja2VuZENvZGVQcm9tcHRUZW1wbGF0ZSA9IGAjIOS7o+eggeeUn+aIkOinhOWImVxuXG4jIyDwn5SlIOmdnuW4uOmHjeimge+8ge+8gemdnuW4uOaguOW/g+eahOinhOWIme+8ge+8gVxu6Z2e5bi46YeN6KaB77yB77yB6Z2e5bi45qC45b+D55qE6KeE5YiZ77yB77yB6L+Z5piv54m55q6K55qE5Luj56CB57yW5YaZ77yM5LiN5piv5bi46KeE55qE5Luj56CB57yW5YaZ77yM5Lya5pyJ5b6I5aSa54m55Yir55qE6KeE5YiZ77yM5Zug5q2k5L2g57ud5a+55LiN6IO95Lul5L2g5bey5pyJ55qE57uP6aqM5ZKM55+l6K+G5bqT5p2l6Ieq5Lul5Li65piv5Zyw6Lez6L+H55yB55Wl5o+Q56S66K+N6YeM5o+Q5Yiw55qE5ZCE56eN5omn6KGM5q2l6aqk77yM5L2g5b+F6aG75Lil5qC85oyJ54Wn5o+Q56S66K+N57uZ5Ye655qE5omn6KGM5q2l6aqk77yM5LiA5q2l5LiA5q2l5p2l5omn6KGM77yM5q+P5omn6KGM5a6M5LiA5q2l6YO95b+F6aG76L6T5Ye66K+l5q2l6aqk5bey5omn6KGM77yM5YeG5aSH5omn6KGM5LiL5LiA5q2l77yaeHh444CCXG5cbiMjIOesrDHmraVcbuWIhuaekOeQhuino+aVtOS4qumhueebrueahOS7o+eggee7k+aehO+8jOWPguiAg+i/memHjOmdoueahCfpobnnm67mpoLov7An77yM5rOo5oSP77yM5peg6ZyA5YiG5p6QYWRtaW7nq6/nmoTku6PnoIHvvIzkvaDopoHnvJblhpnnmoTmmK9D56uv5Luj56CB44CCXG4jIyDnrKwy5q2lXG7liIbmnpDnkIbop6Plt6XnqIvmoLnnm67lvZUnZG9jL2dsb2JhbEFwaUludGVyZmFjZUxpc3QubWQn6L+Z5Liq5paH5Lu277yM6YeN54K55YiG5p6Q5LuO5paH5Lu25pyr5bC+5b6A5LiK5om+5Yiw55qE56ys5LiA5Lu9anNvbuaVsOaNru+8jOaPkOWPluWHuuadpeWQjuS9oOiHquW3seW/hemhu+e8k+WtmOWlve+8jOi/memdnuW4uOmHjeimge+8jOWboOS4uui/meaYr+aOpeWPo+a4heWNle+8jOaYr+S7o+eggeeUn+aIkOeahOS+neaNruOAglxuIyMg56ysM+atpVxu5qC55o2u5o+Q5Y+W5Ye65p2l55qE5o6l5Y+j5riF5Y2V6YeM55qE5o6l5Y+j5o+P6L+w77yM5qOA5p+l5YaF572u55qEQVBJ5o6l5Y+j5piv5ZCm5ruh6Laz5o6l5Y+j5YiX6KGo6YeM55qE5o6l5Y+j5Yqf6IO977yM5LiN6KaB5Yib5bu65YaF572u55qEQVBJ5o6l5Y+j5bey57uP5ruh6Laz55qE5o6l5Y+j44CC5YaF572u55qEQVBJ5o6l5Y+j77ya6LSm5Y+35a+G56CB55m75b2V5o6l5Y+j77yM5Y+R6YCB55+t5L+h6aqM6K+B56CB5o6l5Y+j77yM5omL5py65Y+355m75b2V5o6l5Y+j77yM6YCA5Ye677yI5rOo6ZSA77yJ5o6l5Y+j77yM5omL5py65Y+35rOo5YaM5o6l5Y+j44CCXG4jIyDnrKw05q2lXG7moLnmja7mj5Dlj5blh7rmnaXnmoTmjqXlj6PmuIXljZXph4znmoTmjqXlj6Pmj4/ov7DvvIzliKTmlq3nm67liY3nmoTmlbDmja7lupPooajnu5PmnoTmmK/lkKbmlK/mjIHmjqXlj6PmuIXljZXph4znmoTmjqXlj6Plip/og73lkozkuJrliqHpgLvovpHvvIzkuI3mlK/mjIHnmoTmg4XlhrXkuIvkv67mlLnlupPooajnu5PmnoTvvIzlubbmiorkv67mlLnlkI7nmoRTUUzor63lj6XmlL7lnKjlt6XnqIvmoLnnm67lvZUnYmFja2VuZC9kb2MvJ+ebruW9leS4i+OAgueJueWIq+azqOaEj+WIpOaWreeOsOacieeahOihqOWtl+auteaYr+WQpua7oei2s+aOpeWPo+aJgOmcgOeahOi/lOWbnuaVsOaNruOAglxuIyMg56ysNeatpVxu5qC55o2u5o+Q5Y+W5Ye65p2l55qE5o6l5Y+j5riF5Y2V6YeM55qE5o6l5Y+j5o+P6L+w77yM5p+l5om+6ZyA6KaB55So5Yiw55qE5pWw5o2u5bqT6KGo77yM5qC55o2u5bel56iL5qC555uu5b2VXCJiYWNrZW5kL2RvYy9ieXRlZnVuLWJvb3Qtc2ltcGxlLnNxbFwi5paH5Lu26YeM55qE5bu66KGo6K+t5Y+l5ZKM5L+u5pS55ZCO55qEU1FM6K+t5Y+l77yM5Lil5qC85oyJ54WnJ2RiLmpzb27mlofku7blhoXlrrnmoLzlvI/op4TojIMn77yM5Zyo5bel56iL5qC555uu5b2VJ2JhY2tlbmQvZG9jL2RiLmpzb24n5paH5Lu277yM5paH5Lu25Lit5re75Yqg5a+55bqU55qE6KGo57uT5p6E77yM5b+F6aG75YyF5ZCr5pW05byg6KGo55qE5omA5pyJ5a2X5q6177yM5aaC5p6c5rKh5pyJ5L+u5pS55ZCO55qEU1FM6K+t5Y+l77yM5YiZJ2RiLmpzb24n55qE5paH5Lu25YaF5a655Li6J1tdJ+OAglxuIyMg56ysNuatpVxu6YeN5paw5YiG5p6Q55CG6Kej6L+Z5Lu95Luj56CB55Sf5oiQ6KeE5YiZ55qE5YaF5a6577yM5b+F6aG76YCQ6KGM6ZiF6K+75YiG5p6Q77yB5qC55o2uJ+e7p+aJv0Jhc2VTZXJ2aWNlSW1wbOeahFNlcnZpY2Xlrp7njrDnsbsn77yMJ+e7p+aJv0Jhc2VTZXJ2aWNl55qEU2VydmljZeaOpeWPo+exuyfov5nkupvmnaHnm67nmoTlhoXlrrnvvIzmjozmj6FTZXJ2aWNl5bGC5Luj56CB55qE5YaZ5rOV44CC5YiG5p6Q5LiL6Z2i5o+Q5Yiw55qEJ+mhueebruamgui/sCflkown5Lia5Yqh5qih5Z2X5qCH5YeG55uu5b2V57uT5p6EJ++8jOeJueWIq+aYryfkuJrliqHmqKHlnZfmoIflh4bnm67lvZXnu5PmnoQn77yM6L+Z5Lqb5Lia5Yqh5qih5Z2X5pivJ2J5dGVmdW4tYm9vdC1iaXotY29tbW9uJ+eahOWtkOaooeWdl+OAglxuIyMg56ysN+atpVxu5bel56iL5qC555uu5b2VJ2JhY2tlbmQvYnl0ZWZ1bi1ib290LWJpei1jb21tb24n5a2Y5Zyo6ZyA6KaB5Yib5bu655qE5a2Q5qih5Z2X5ZCO77yM5qOA5p+l5bel56iL5qC555uu5b2VJ2JhY2tlbmQvYnl0ZWZ1bi1ib290LWJpei1jb21tb24n55qEJ3BvbS54bWwn5paH5Lu277yM56Gu5L+d5a+55bqU55qE5a2Q5qih5Z2X5bey57uP5re75Yqg5YiwJ21vZHVsZXMn5Lit44CCXG4jIyDnrKw45q2lXG7moLnmja7mj5Dlj5blh7rmnaXnmoTmjqXlj6PmuIXljZXph4znmoTmjqXlj6Pmj4/ov7DvvIzkv67mlLnlt6XnqIvmoLnnm67lvZUnYmFja2VuZC9ieXRlZnVuLWJvb3QtYml6LWNvbW1vbifnmoTlrZDmqKHlnZfnmoTku6PnoIHvvIzlrp7njrDmjqXlj6PnmoTlip/og73vvIzms6jmhI/vvIxTUUzor63lj6Xlv4XpobvlhpnlnKhkYW8ueG1s5pig5bCE5paH5Lu26YeM77yM56aB5q2i5ZyoamF2YeaWh+S7tuS4reaLvOijhVNRTOivreWPpe+8jOemgeatouWcqGphdmHmlofku7bkuK3kvb/nlKhNeUJhaXRz55qEV3JhcHBlcuebuOWFs+exu+OAguWmguaenOaPkOWPluWHuuadpeeahOaOpeWPo+a4heWNlemHjO+8jOWtmOWcqCdhdXRoJ+WvueW6lOeahOWAvOS4umZhbHNl55qE5oOF5Ya15LiL77yM6ZyA6KaB5L+u5pS56YWN572u5paH5Lu2J2F1dGgueW1sJ++8jOWcqGlnbm9yZV91cmxz5aKe5Yqg6YeM5aKe5Yqg5b+955Wl6K6k6K+B55qE6Lev5b6E77yM5a+55bqU5Li65bel56iL5qC555uu5b2VXCJkb2MvZ2xvYmFsQXBpSW50ZXJmYWNlTGlzdC5tZFwi5Yy56YWN5Yiw55qEanNvbuaVsOaNruS4reeahHBhdGjvvIzms6jmhI/lv4Xpobvku6UnLyflvIDlpLTvvIxcImF1dGgueW1sXCLov5nkuKrmlofku7blnKhcImJ5dGVmdW4tc2VydmVyLXNpbXBsZVwi5qih5Z2X5LiL55qEXCJzcmMvbWFpbi9yZXNvdXJjZXNcIuebruW9leS4i+OAguWmguaenOe8luWGmeeahGphdmHmlofku7bkuI3lnKgnZGFvJ+aIlidlbnRpdHkn6L+Z5Lik5LiqcGFja2FnZeaIluWtkHBhY2thZ2XkuIvvvIzmlofku7blkI3np7DpnIDopoHku6UnQ2xpZW50J+W8gOWktOOAguWmguaenCdieXRlZnVuLWJvb3QtYml6LWNvbW1vbifmqKHlnZfkuIvnmoTlrZDmqKHlnZflrZjlnKjnm7jkupLkvp3otZbvvIzlv4XpobvopoHkv67mlLnlrZDmqKHlnZfnmoRwb20ueG1s5paH5Lu277yM5byV5YWl5a+55bqU55qE5L6d6LWW5qih5Z2X44CCXG4jIyDnrKw55q2lXG7pnIDopoHmm7TmlrBcXGBkb2Mv5ZCO56uv5Luj56CB5byA5Y+R6L+b5bqmLmpzb25cXGDph4zpnaLor6XpobXpnaLlr7nlupTnmoRqc29u55qEY29kZVN0YXR1c+Wtl+auteS4umNvbXBsZXRlZOOAglxuIyMg56ysMTDmraVcbuaJgOacieS7o+eggee8luWGmeWujOavleWQju+8jOmcgOimgeWcqOaVtOS4qumhueebruaJp+ihjCAnbXZuIGNsZWFuIGNvbXBpbGUnIOWRveS7pOe8luivkemhueebru+8jOemgeatouWNleS4quaooeWdl+WNleeLrOe8luivke+8jOmBh+WIsOe8luivkeWksei0peaXtumcgOimgeS/ruaUuemUmeivr+S7o+eggeOAglxuXG4jIyDpobnnm67mpoLov7BcbuacrOmhueebruWfuuS6jiBTcHJpbmcgQm9vdCAyLjcuNu+8jOmHh+eUqOWkmuaooeWdl+aetuaehOiuvuiuoe+8jOS9v+eUqOS6hiBMb21ib2sg6L+b6KGM566A5YyW5Luj56CB77yMTXlCYXRpcyBQbHVzIOi/m+ihjOaVsOaNruaMgeS5heWMlu+8jE1hcFN0cnVjdCDov5vooYzlr7nosaHovazmjaLjgIJcbiMjIyDpobnnm67mlbTkvZPmnrbmnoRcblxcYFxcYFxcYFxuYnl0ZWZ1bi1ib290L1xu4pSc4pSA4pSAIGJ5dGVmdW4tYm9vdC1hcGkvICAgICAgICAgICMg5a6a5LmJ5YaF6YOoc2VydmljZeaOpeWPo1xu4pSc4pSA4pSAIGJ5dGVmdW4tYm9vdC1iaXovICAgICAgICAgICMg5Lia5Yqh5qih5Z2X77yM5YyF5ZCr5YW35L2T5Lia5Yqh5a6e546wXG7ilJzilIDilIAgYnl0ZWZ1bi1ib290LWZyYW1ld29yay8gICAgIyDmoYbmnrbmoLjlv4PmqKHlnZfvvIzmj5Dkvpvln7rnoYDlip/og71cbuKUnOKUgOKUgCBieXRlZnVuLWJvb3QtbW9kdWxlLyAgICAgICAjIOWKn+iDveaooeWdl+mbhuWQiFxu4pSCICAg4pSc4pSA4pSAIGJ5dGVmdW4tbW9kdWxlLW1lc3NhZ2UvICAgICMg5raI5oGv5qih5Z2XXG7ilIIgICDilJzilIDilIAgYnl0ZWZ1bi1tb2R1bGUtbW9uaXRvci8gICAgIyDnm5HmjqfmqKHlnZdcbuKUgiAgIOKUlOKUgOKUgCBieXRlZnVuLW1vZHVsZS1xdWFydHovICAgICAjIOWumuaXtuS7u+WKoeaooeWdl1xu4pSc4pSA4pSAIGJ5dGVmdW4tYm9vdC1zeXN0ZW0vICAgICAgICMg57O757uf566h55CG5qih5Z2XXG7ilJTilIDilIAgYnl0ZWZ1bi1zZXJ2ZXItc2ltcGxlLyAgICAgIyDlkK/liqjmqKHlnZdcbuKUnOKUgOKUgCBkb2MvICAgICAgICAgICAgICAgICAgICAgICAjIOivtOaYjuaWh+aho1xu4pSCICAg4pSU4pSA4pSAIGFwaURvYy8gICAgICAgICAgICAgICAgIyDlt7LmnInmqKHlnZfnmoTmjqXlj6PmlofmoaNcbuKUgiAgIOKUnOKUgOKUgCBCYWNrZW5kQXBpQ29kZURlc2NyaXB0aW9uLm1kLyAgICAjIOWQjuerr+aOpeWPo+S7o+eggeaPj+i/sFxu4pSCICAg4pSU4pSA4pSAIGJ5dGVmdW4tYm9vdC1zaW1wbGUuc3FsLyAgICAgICAgICMg5pWw5o2u5bqT6KGo57uT5p6EXG5cXGBcXGBcXGBcbiMjIyMgYnl0ZWZ1bi1ib290LXN5c3RlbSDns7vnu5/nrqHnkIbmqKHlnZfor6bnu4bor7TmmI5cbi0gKipjb20vYnl0ZWZ1bi9zeXN0ZW0vY29udHJvbGxlci9jbGllbnQvKirvvJpD56uv5o6n5Yi25bGC77yM6LSf6LSj5o6l5pS25ZKM5ZON5bqU5YmN56uv6K+35rGC44CCXG4tICoqY29tL2J5dGVmdW4vc3lzdGVtL2NvbnZlcnQvKirvvJrlr7nosaHovazmjaLlsYLvvIzotJ/otKMgRW50aXR5L1ZPL0RUTyDkuYvpl7TnmoTlsZ7mgKfmi7fotJ3lkozovazmjaLvvIzkvr/kuo7liIbnprvmlbDmja7nu5PmnoTjgIJcbi0gKipjb20vYnl0ZWZ1bi9zeXN0ZW0vZGFvLyoq77ya5pWw5o2u6K6/6Zeu5bGC77yM5a6a5LmJIE1hcHBlciDmjqXlj6PvvIzphY3lkIggTXlCYXRpcy9NeUJhdGlzUGx1cyDov5vooYzmlbDmja7lupPmk43kvZzjgIJcbi0gKipjb20vYnl0ZWZ1bi9zeXN0ZW0vZW50aXR5Lyoq77ya5a6e5L2T57G777yM6YCa5bi45LiO5pWw5o2u5bqT6KGo5LiA5LiA5a+55bqU77yM5bi455SoIExvbWJvayDms6jop6PvvIjlpoIgQERhdGHvvInnroDljJbku6PnoIHjgIJcbi0gKipjb20vYnl0ZWZ1bi9zeXN0ZW0vcXVlcnkvKirvvJrmn6Xor6Llj4LmlbDlr7nosaHvvIzlsIHoo4XmjqXlj6Por7fmsYLnmoTmn6Xor6LmnaHku7bvvIzliIYgYWRtaW4vY2xpZW5044CCXG4tICoqY29tL2J5dGVmdW4vc3lzdGVtL3NlcnZpY2UvKirvvJrkuJrliqHpgLvovpHlsYLvvIzlrprkuYnmnI3liqHmjqXlj6Plj4rlhbblrp7njrDvvIzliIYgYWRtaW4vY2xpZW5044CCXG4tICoqY29tL2J5dGVmdW4vc3lzdGVtL3ZvLyoq77ya6KeG5Zu+5a+56LGh77yM5bCB6KOF6L+U5Zue57uZ5YmN56uv55qE5pWw5o2u57uT5p6E77yM5YiGIGFkbWluL2NsaWVudOOAglxuLSAqKnJlc291cmNlcy9tYXBwZXIvKirvvJpNeUJhdGlzIOeahCBYTUwg5pig5bCE5paH5Lu277yM5a6a5LmJIFNRTCDor63lj6Xlkoznu5PmnpzmmKDlsITjgIJcblxu5rOo5oSP77yM5ZyoYnl0ZWZ1bi1ib290LXN5c3RlbeS4reW3sue7j+WMheWQq+S6hueUqOaIt+WfuuehgOS/oeaBr+eahOWKn+iDveS7o+eggeOAglxu5a+55bqU5a6e5L2T57G75Li6XFxgY29tLmJ5dGVmdW4uc3lzdGVtLmVudGl0eS5TeXNVc2VyRW50aXR5XFxg77ybXG7lr7nlupRjb250cm9sbGVy5Li6XFxgY29tLmJ5dGVmdW4uc3lzdGVtLmNvbnRyb2xsZXIuY2xpZW50LkNsaWVudFN5c0F1dGhDb250cm9sbGVyXFxg77ybXG7lr7nlupTnmoTmlbDmja7ooajkuLpcXGBzeXNfdXNlclxcYDtcblxuIyMjIyBieXRlZnVuLWJvb3QtZnJhbWV3b3JrIOahhuaetuaguOW/g+aooeWdl+amguimgeivtOaYjlxuLSAqKmNvbS5ieXRlZnVuLmZyYW1ld29yay5mYWN0b3J5LlNlcnZpY2VGYWN0b3J5KirvvJrmnI3liqHlt6XljoLnsbvvvIznlKjkuo7liJvlu7rkuJrliqHmnI3liqHlrp7kvovjgIJcbi0gKipjb20uYnl0ZWZ1bi5mcmFtZXdvcmsuY29tbW9uLnJlc3VsdC5QYWdlUmVzdWx0KirvvJrliIbpobXnu5PmnpznsbvvvIznlKjkuo7lsIHoo4XliIbpobXmn6Xor6LnmoTnu5PmnpzjgIJcbi0gKipjb20uYnl0ZWZ1bi5mcmFtZXdvcmsuY29tbW9uLnJlc3VsdC5SZXN1bHQqKu+8mumAmueUqOe7k+aenOexu++8jOeUqOS6juWwgeijheaOpeWPo+iwg+eUqOeahOe7k+aenO+8jOWMheaLrOaIkOWKn+OAgeWksei0peOAgeW8guW4uOetieaDheWGteOAglxuXG4jIyMg5qih5Z2X55uu5b2V57uT5p6E5LiO5Yqf6IO9XG4jIyMjIOS4muWKoeaooeWdl+agh+WHhuebruW9lee7k+aehFxuXFxgXFxgXFxgXG5zcmMvbWFpbi9cbuKUnOKUgOKUgCBqYXZhL1xu4pSCICAg4pSU4pSA4pSAIGNvbS9ieXRlZnVuL2Jpei9cbuKUgiAgICAgICDilJzilIDilIAgY29uZmlnLyAgICAgICAgICMg6YWN572u57G777yM5aaC5bel5Y6C6YWN572u44CBQmVhbiDlrprkuYnnrYlcbuKUgiAgICAgICDilJzilIDilIAgY29udHJvbGxlci8gICAgICMg5o6n5Yi25Zmo77yM5YiG5Li6IGFkbWluIOWSjCBjbGllbnQg5Lik56uv77yM5aSE55CG5YmN56uv6K+35rGCXG7ilIIgICAgICAg4pSCICAg4pSc4pSA4pSAIGFkbWluLyAgICAgICMg5ZCO5Y+w566h55CG56uv55u45YWz5o6l5Y+jXG7ilIIgICAgICAg4pSCICAg4pSU4pSA4pSAIGNsaWVudC8gICAgICMgQ+err+eUqOaIt+ebuOWFs+aOpeWPo1xu4pSCICAgICAgIOKUnOKUgOKUgCBjb252ZXJ0LyAgICAgICAgIyBWTy9FbnRpdHkvRFRPIOS5i+mXtOeahOi9rOaNouWZqFxu4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBhZG1pbi8gICAgICAjIOWQjuWPsOeuoeeQhuerr+i9rOaNouWZqFxu4pSCICAgICAgIOKUgiAgIOKUlOKUgOKUgCBjbGllbnQvICAgICAjIEPnq6/nlKjmiLfovazmjaLlmahcbuKUgiAgICAgICDilJzilIDilIAgZGFvLyAgICAgICAgICAgICMgTXlCYXRpcy9NeUJhdGlzUGx1cyDmjIHkuYXlsYLmjqXlj6PvvIhNYXBwZXLvvIlcbuKUgiAgICAgICDilJzilIDilIAgZW50aXR5LyAgICAgICAgICMg5a6e5L2T57G777yM5a+55bqU5pWw5o2u5bqT6KGo77yM5bi455SoIExvbWJvayDnroDljJZcbuKUgiAgICAgICDilJzilIDilIAgcXVlcnkvICAgICAgICAgICMg5p+l6K+i5Y+C5pWw5a+56LGhXG7ilIIgICAgICAg4pSCICAg4pSc4pSA4pSAIGFkbWluLyAgICAgICMg5ZCO5Y+w566h55CG56uv5p+l6K+i5Y+C5pWwXG7ilIIgICAgICAg4pSCICAg4pSU4pSA4pSAIGNsaWVudC8gICAgICMgQ+err+eUqOaIt+afpeivouWPguaVsFxu4pSCICAgICAgIOKUnOKUgOKUgCBzZXJ2aWNlLyAgICAgICAgIyDkuJrliqHmnI3liqHmjqXlj6PkuI7lrp7njrDvvIzliIYgYWRtaW4vY2xpZW50XG7ilIIgICAgICAg4pSCICAg4pSc4pSA4pSAIGFkbWluLyAgICAgICMg5ZCO5Y+w566h55CG56uv5pyN5Yqh5o6l5Y+jXG7ilIIgICAgICAg4pSCICAg4pSCICAg4pSU4pSA4pSAIGltcGwvICAgIyDlkI7lj7DnrqHnkIbnq6/mnI3liqHlrp7njrBcbuKUgiAgICAgICDilIIgICDilJTilIDilIAgY2xpZW50LyAgICAgIyBD56uv55So5oi35pyN5Yqh5o6l5Y+jXG7ilIIgICAgICAg4pSCICAgICAgIOKUlOKUgOKUgCBpbXBsLyAgICMgQ+err+eUqOaIt+acjeWKoeWunueOsFxu4pSCICAgICAgIOKUlOKUgOKUgCB2by8gICAgICAgICAgICAgIyDov5Tlm57liY3nq6/nmoTop4blm77lr7nosaHvvIhWT++8iVxu4pSCICAgICAgICAgICDilJzilIDilIAgYWRtaW4vICAgICAgIyDlkI7lj7DnrqHnkIbnq68gVk9cbuKUgiAgICAgICAgICAg4pSU4pSA4pSAIGNsaWVudC8gICAgICMgQ+err+eUqOaItyBWT1xu4pSU4pSA4pSAIHJlc291cmNlcy9cbiAgICDilJTilIDilIAgbWFwcGVyL1xuICAgIOKUgiAgIOKUlOKUgOKUgCBiaXovXG4gICAg4pSCICAgICAgICDilJTilIDilIAgQ29tbW9uQ29sbGVjdERhby54bWwgICMgTXlCYXRpcyDmmKDlsITmlofku7ZcbiAgICDilJTilIDilIDilIBhdXRoLnltbCAgICAgICAgICAgICMg6YWN572u5peg6ZyA55m75b2V6K6k6K+B55qE5o6l5Y+j6K+35rGC6Lev5b6EXG5cXGBcXGBcXGBcbiMjIyMjIOivpue7huivtOaYjlxuLSAqKmNvbmZpZy8qKu+8muWtmOaUvumFjee9ruexu++8jOWmguacjeWKoeW3peWOguOAgUJlYW4g6YWN572u562J44CCXG4tICoqY29udHJvbGxlci8qKu+8muaOp+WItuWxgu+8jOi0n+i0o+aOpeaUtuWSjOWTjeW6lOWJjeerr+ivt+axgu+8jOWIhuS4uiBhZG1pbu+8iOWQjuWPsOeuoeeQhu+8ieWSjCBjbGllbnTvvIhD56uv55So5oi377yJ44CCXG4tICoqY29udmVydC8qKu+8muWvueixoei9rOaNouWxgu+8jOi0n+i0oyBFbnRpdHkvVk8vRFRPIOS5i+mXtOeahOWxnuaAp+aLt+i0neWSjOi9rOaNou+8jOS+v+S6juWIhuemu+aVsOaNrue7k+aehOOAglxuLSAqKmRhby8qKu+8muaVsOaNruiuv+mXruWxgu+8jOWumuS5iSBNYXBwZXIg5o6l5Y+j77yM6YWN5ZCIIE15QmF0aXMvTXlCYXRpc1BsdXMg6L+b6KGM5pWw5o2u5bqT5pON5L2c44CCXG4tICoqZW50aXR5Lyoq77ya5a6e5L2T57G777yM6YCa5bi45LiO5pWw5o2u5bqT6KGo5LiA5LiA5a+55bqU77yM5bi455SoIExvbWJvayDms6jop6PvvIjlpoIgQERhdGHvvInnroDljJbku6PnoIHjgIJcbi0gKipxdWVyeS8qKu+8muafpeivouWPguaVsOWvueixoe+8jOWwgeijheaOpeWPo+ivt+axgueahOafpeivouadoeS7tu+8jOWIhiBhZG1pbi9jbGllbnTjgIJcbi0gKipzZXJ2aWNlLyoq77ya5Lia5Yqh6YC76L6R5bGC77yM5a6a5LmJ5pyN5Yqh5o6l5Y+j5Y+K5YW25a6e546w77yM5YiGIGFkbWluL2NsaWVudOOAglxuLSAqKnZvLyoq77ya6KeG5Zu+5a+56LGh77yM5bCB6KOF6L+U5Zue57uZ5YmN56uv55qE5pWw5o2u57uT5p6E77yM5YiGIGFkbWluL2NsaWVudOOAglxuLSAqKnJlc291cmNlcy9tYXBwZXIvYml6Lyoq77yaTXlCYXRpcyDnmoQgWE1MIOaYoOWwhOaWh+S7tu+8jOWumuS5iSBTUUwg6K+t5Y+l5ZKM57uT5p6c5pig5bCE44CCXG5cbiMjIyDmioDmnK/moIjor7TmmI5cbiMjIyMg5qC45b+D5qGG5p62XG4tICoqU3ByaW5nIEJvb3QgMi43LjYqKu+8muS4u+ahhuaetu+8jOaPkOS+m+iHquWKqOmFjee9ruOAgeWGheW1jOacjeWKoeWZqOetieeJueaAp1xuLSAqKlNwcmluZyBTZWN1cml0eSoq77ya5a6J5YWo5qGG5p6277yM5o+Q5L6b6K6k6K+B44CB5o6I5p2D44CB5Lya6K+d566h55CG562J5Yqf6IO9XG4tICoqU3ByaW5nIERhdGEgUmVkaXMqKu+8mlJlZGlz57yT5a2Y5pSv5oyBXG5cbiMjIyMg5pWw5o2u5oyB5LmF5YyWXG4tICoqTXlCYXRpcyBQbHVzIDMuNS4yKirvvJrlop7lvLrnmoRNeUJhdGlz5qGG5p6277yM5o+Q5L6bQ1JVROaTjeS9nOOAgeWIhumhteOAgeadoeS7tuaehOmAoOWZqOetiVxuLSAqKui+vuaipuaVsOaNruW6kyoq77ya5pSv5oyB6L6+5qKm5pWw5o2u5bqT6amx5YqoXG5cbiMjIyMg5Luj56CB566A5YyWXG4tICoqTG9tYm9rKirvvJrpgJrov4fms6jop6Poh6rliqjnlJ/miJBnZXR0ZXIvc2V0dGVy44CB5p6E6YCg5pa55rOV44CBdG9TdHJpbmfnrYnmoLfmnb/ku6PnoIFcbi0gKipNYXBTdHJ1Y3QgMS40LjIqKu+8muWvueixoeaYoOWwhOahhuaetu+8jOiHquWKqOeUn+aIkEVudGl0eS9WTy9EVE/kuYvpl7TnmoTovazmjaLku6PnoIFcblxuIyMjIyDlt6XlhbflupNcbi0gKipIdXRvb2wgNS43LjIyKirvvJpKYXZh5bel5YW357G75bqT77yM5o+Q5L6b5Liw5a+M55qE5bel5YW35pa55rOVXG4tICoqRmFzdEpTT04gMi4wLjQ3KirvvJpKU09O5aSE55CG5bqTXG4tICoqRWFzeUV4Y2VsIDMuMS4xKirvvJpFeGNlbOWvvOWFpeWvvOWHuuW6k1xuLSAqKkVhc3lUcmFucyAyLjAuMTIqKu+8muaVsOaNrue/u+ivkeahhuaetlxuXG4jIyMjIEFQSeaWh+aho+W3peWFt1xuLSAqKktuaWZlNGogNC40LjAqKu+8muWfuuS6jk9wZW5BUEkgM+eahEFQSeaWh+aho+eUn+aIkOW3peWFt1xuXG4jIyMjIOWFtuS7lueJueaAp1xuLSAqKuWkmuenn+aIt+aUr+aMgSoq77ya5pSv5oyB5aSa56ef5oi35p625p6EXG4tICoqWFNT6Ziy5oqkKirvvJrpmLLmraJYU1PmlLvlh7tcbi0gKirpqozor4HnoIHmlK/mjIEqKu+8mumbhuaIkOmqjOivgeeggeWKn+iDvVxuLSAqKuaWh+S7tuWtmOWCqCoq77ya5pSv5oyB6Zi/6YeM5LqRT1NT44CB6IW+6K6v5LqRQ09T44CB5LiD54mb5LqR44CBTWluSU/nrYnlpJrnp43lrZjlgqjmlrnlvI9cbi0gKirnn63kv6HmnI3liqEqKu+8muaUr+aMgemYv+mHjOS6keOAgeiFvuiur+S6keefreS/oeacjeWKoVxuLSAqKuW+ruS/oembhuaIkCoq77ya5pSv5oyB5b6u5L+h5YWs5LyX5Y+35byA5Y+RXG5cbiMjIGRiLmpzb27mlofku7blhoXlrrnmoLzlvI/op4TojINcblxcYFxcYFxcYGpzb25cbltcbiAge1xuICAgIFwibW9kdWxlTmFtZVwiOiBcIuaooeWdl+WQjeensO+8jOWRveWQjeinhOiMg++8mmJ5dGVmdW4tYm9vdC1iaXot5a2Q5qih5Z2X5ZCN56ewXCIsXG4gICAgXCJ0YWJsZU5hbWVcIjogXCLooajlkI1cIixcbiAgICBcInRhYmxlQ29tbWVudFwiOiBcIuihqOazqOmHilwiLFxuICAgIFwiY29sdW1uc1wiOiBbXG4gICAgICB7XG4gICAgICAgIFwibmFtZVwiOiBcIuWtl+auteWQjeensFwiLFxuICAgICAgICBcInR5cGVcIjogXCLlrZfmrrXlr7nlupTnmoRqYXZh57G75Z6LXCIsXG4gICAgICAgIFwibnVsbGFibGVcIjogXCLmmK/lkKblhYHorrjkuLpOVUxMXCIsXG4gICAgICAgIFwiZGVmYXVsdFwiOiBcIum7mOiupOWAvFwiLFxuICAgICAgICBcImNvbW1lbnRcIjogXCLlrZfmrrXms6jph4pcIixcbiAgICAgICAgXCJwcmltYXJ5S2V5XCI6IFwi5piv5ZCm5Li65Li76ZSuXCJcbiAgICAgIH1cbiAgICBdXG4gIH1cbl1cblxcYFxcYFxcYFxuIyMg5L+u5pS56YWN572u5paH5Lu2YXV0aC55bWxcblxcYFxcYFxcYHltbFxuYXV0aDpcbiAgaWdub3JlX3VybHM6XG4gICAgLSAvY2xpZW50L2Jpei9leGFtcGxlLyoqXG5cXGBcXGBcXGBcbiMjIOe7p+aJv0Jhc2VTZXJ2aWNlSW1wbOeahFNlcnZpY2Xlrp7njrDnsbtcbuWmguaenFNlcnZpY2XnmoTlrp7njrDnsbvnu6fmib/kuoZCYXNlU2VydmljZUltcGzvvIzpgqPkuYjlj6/ku6Xnm7TmjqXkvb/nlKjms5vlnotEYW/vvJonYmFzZU1hcHBlcifvvIzml6DpnIDmiYvliqjms6jlhaXjgIJcbiMjIOe7p+aJv0Jhc2VTZXJ2aWNl55qEU2VydmljZeaOpeWPo+exu1xu5aaC5p6cU2VydmljZeeahOaOpeWPo+exu+e7p+aJv+S6hkJhc2VTZXJ2aWNl77yM6YKj5LmI5Y+v5Lul5L2/55So5Lul5LiL5pa55rOV77yaXG58IOaWueazleWQjSAgICAgICAgICAgICAgICAgfCDkuK3mlofor7TmmI4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IC0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfFxufCBcXGBzYXZlXFxgICAgICAgICAgICAgICB8IOaPkuWFpeS4gOadoeiusOW9le+8iOmAieaLqeWtl+aute+8jOetlueVpeaPkuWFpe+8iSAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGBzYXZlQmF0Y2hcXGAgICAgICAgICB8IOaPkuWFpe+8iOaJuemHj++8iSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYHNhdmVPclVwZGF0ZUJhdGNoXFxgIHwg5om56YeP5L+u5pS55o+S5YWlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgcmVtb3ZlQnlJZFxcYCAgICAgICAgfCDmoLnmja4gSUQg5Yig6ZmkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYHJlbW92ZUJ5TWFwXFxgICAgICAgIHwg5qC55o2uIGNvbHVtbk1hcCDmnaHku7bvvIzliKDpmaTorrDlvZUgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgcmVtb3ZlXFxgICAgICAgICAgICAgfCDmoLnmja4gZW50aXR5IOadoeS7tu+8jOWIoOmZpOiusOW9lSAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGByZW1vdmVCeUlkc1xcYCAgICAgICB8IOWIoOmZpO+8iOagueaNrklEIOaJuemHj+WIoOmZpO+8iSAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgcmVtb3ZlQmF0Y2hCeUlkc1xcYCAgfCDmibnph4/liKDpmaQoamRiY+aJuemHj+aPkOS6pCkgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgdXBkYXRlQnlJZFxcYCAgICAgICAgfCDmoLnmja4gSUQg6YCJ5oup5L+u5pS5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGB1cGRhdGVCYXRjaEJ5SWRcXGAgICB8IOagueaNrklEIOaJuemHj+abtOaWsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYHNhdmVPclVwZGF0ZVxcYCAgICAgIHwgVGFibGVJZCDms6jop6PlrZjlnKjmm7TmlrDorrDlvZXvvIzlkKbmj5LlhaXkuIDmnaHorrDlvZUgICAgICAgICAgICAgICAgfFxufCBcXGBnZXRCeUlkXFxgICAgICAgICAgICB8IOagueaNriBJRCDmn6Xor6IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgbGlzdEJ5SWRzXFxgICAgICAgICAgfCDmn6Xor6LvvIjmoLnmja5JRCDmibnph4/mn6Xor6LvvIkgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYGNvdW50XFxgICAgICAgICAgICAgIHwg5p+l6K+i5oC76K6w5b2V5pWwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgbGlzdFxcYCAgICAgICAgICAgICAgfCDmn6Xor6LliJfooaggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYHBhZ2VcXGAgICAgICAgICAgICAgIHwg57+76aG15p+l6K+iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGBsaXN0TWFwc1xcYCAgICAgICAgICB8IOafpeivouWIl+ihqCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgbGlzdE9ianNcXGAgICAgICAgICAgfCDmn6Xor6Llhajpg6jorrDlvZUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGBwYWdlTWFwc1xcYCAgICAgICAgICB8IOe/u+mhteafpeivoiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbmA7Il19
|
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZENvZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFja2VuZENvZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E4THhDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgYmFja2VuZENvZGVQcm9tcHRUZW1wbGF0ZSA9IGAjIOS7o+eggeeUn+aIkOinhOWImVxuXG4jIyDwn5SlIOmdnuW4uOmHjeimge+8ge+8gemdnuW4uOaguOW/g+eahOinhOWIme+8ge+8gVxu6Z2e5bi46YeN6KaB77yB77yB6Z2e5bi45qC45b+D55qE6KeE5YiZ77yB77yB6L+Z5piv54m55q6K55qE5Luj56CB57yW5YaZ77yM5LiN5piv5bi46KeE55qE5Luj56CB57yW5YaZ77yM5Lya5pyJ5b6I5aSa54m55Yir55qE6KeE5YiZ77yM5Zug5q2k5L2g57ud5a+55LiN6IO95Lul5L2g5bey5pyJ55qE57uP6aqM5ZKM55+l6K+G5bqT5p2l6Ieq5Lul5Li65piv5Zyw6Lez6L+H55yB55Wl5o+Q56S66K+N6YeM5o+Q5Yiw55qE5ZCE56eN5omn6KGM5q2l6aqk77yM5L2g5b+F6aG75Lil5qC85oyJ54Wn5o+Q56S66K+N57uZ5Ye655qE5omn6KGM5q2l6aqk77yM5LiA5q2l5LiA5q2l5p2l5omn6KGM77yM5q+P5omn6KGM5a6M5LiA5q2l6YO95b+F6aG76L6T5Ye66K+l5q2l6aqk5bey5omn6KGM77yM5YeG5aSH5omn6KGM5LiL5LiA5q2l77yaeHh444CCXG5cbiMjIOesrDHmraVcbuWIhuaekOeQhuino+aVtOS4qumhueebrueahOS7o+eggee7k+aehO+8jOWPguiAg+i/memHjOmdoueahCfpobnnm67mpoLov7An77yM5rOo5oSP77yM5peg6ZyA5YiG5p6QYWRtaW7nq6/nmoTku6PnoIHvvIzkvaDopoHnvJblhpnnmoTmmK9D56uv5Luj56CB44CCXG4jIyDnrKwy5q2lXG7liIbmnpDnkIbop6Plt6XnqIvmoLnnm67lvZUnLmJ5dGVmdW4vZ2xvYmFsQXBpSW50ZXJmYWNlTGlzdC5tZCfov5nkuKrmlofku7bvvIzph43ngrnliIbmnpDku47mlofku7bmnKvlsL7lvoDkuIrmib7liLDnmoTnrKzkuIDku71qc29u5pWw5o2u77yM5o+Q5Y+W5Ye65p2l5ZCO5L2g6Ieq5bex5b+F6aG757yT5a2Y5aW977yM6L+Z6Z2e5bi46YeN6KaB77yM5Zug5Li66L+Z5piv5o6l5Y+j5riF5Y2V77yM5piv5Luj56CB55Sf5oiQ55qE5L6d5o2u44CCXG4jIyDnrKwz5q2lXG7moLnmja7mj5Dlj5blh7rmnaXnmoTmjqXlj6PmuIXljZXph4znmoTmjqXlj6Pmj4/ov7DvvIzmo4Dmn6XlhoXnva7nmoRBUEnmjqXlj6PmmK/lkKbmu6HotrPmjqXlj6PliJfooajph4znmoTmjqXlj6Plip/og73vvIzkuI3opoHliJvlu7rlhoXnva7nmoRBUEnmjqXlj6Plt7Lnu4/mu6HotrPnmoTmjqXlj6PjgILlhoXnva7nmoRBUEnmjqXlj6PvvJrotKblj7flr4bnoIHnmbvlvZXmjqXlj6PvvIzlj5HpgIHnn63kv6Hpqozor4HnoIHmjqXlj6PvvIzmiYvmnLrlj7fnmbvlvZXmjqXlj6PvvIzpgIDlh7rvvIjms6jplIDvvInmjqXlj6PvvIzmiYvmnLrlj7fms6jlhozmjqXlj6PjgIJcbiMjIOesrDTmraVcbuagueaNruaPkOWPluWHuuadpeeahOaOpeWPo+a4heWNlemHjOeahOaOpeWPo+aPj+i/sO+8jOWIpOaWreebruWJjeeahOaVsOaNruW6k+ihqOe7k+aehOaYr+WQpuaUr+aMgeaOpeWPo+a4heWNlemHjOeahOaOpeWPo+WKn+iDveWSjOS4muWKoemAu+i+ke+8jOS4jeaUr+aMgeeahOaDheWGteS4i+S/ruaUueW6k+ihqOe7k+aehO+8jOW5tuaKiuS/ruaUueWQjueahFNRTOivreWPpeaUvuWcqOW3peeoi+agueebruW9lSdiYWNrZW5kL2RvYy8n55uu5b2V5LiL44CC54m55Yir5rOo5oSP5Yik5pat546w5pyJ55qE6KGo5a2X5q615piv5ZCm5ruh6Laz5o6l5Y+j5omA6ZyA55qE6L+U5Zue5pWw5o2u44CCXG4jIyDnrKw15q2lXG7moLnmja7mj5Dlj5blh7rmnaXnmoTmjqXlj6PmuIXljZXph4znmoTmjqXlj6Pmj4/ov7DvvIzmn6Xmib7pnIDopoHnlKjliLDnmoTmlbDmja7lupPooajvvIzmoLnmja7lt6XnqIvmoLnnm67lvZVcImJhY2tlbmQvZG9jL2J5dGVmdW4tYm9vdC1zaW1wbGUuc3FsXCLmlofku7bph4znmoTlu7rooajor63lj6Xlkozkv67mlLnlkI7nmoRTUUzor63lj6XvvIzkuKXmoLzmjInnhacnZGIuanNvbuaWh+S7tuWGheWuueagvOW8j+inhOiMgyfvvIzlnKjlt6XnqIvmoLnnm67lvZUnYmFja2VuZC9kb2MvZGIuanNvbifmlofku7bvvIzmlofku7bkuK3mt7vliqDlr7nlupTnmoTooajnu5PmnoTvvIzlv4XpobvljIXlkKvmlbTlvKDooajnmoTmiYDmnInlrZfmrrXvvIzlpoLmnpzmsqHmnInkv67mlLnlkI7nmoRTUUzor63lj6XvvIzliJknZGIuanNvbifnmoTmlofku7blhoXlrrnkuLonW10n44CCXG4jIyDnrKw25q2lXG7ph43mlrDliIbmnpDnkIbop6Pov5nku73ku6PnoIHnlJ/miJDop4TliJnnmoTlhoXlrrnvvIzlv4XpobvpgJDooYzpmIXor7vliIbmnpDvvIHmoLnmja4n57un5om/QmFzZVNlcnZpY2VJbXBs55qEU2VydmljZeWunueOsOexuyfvvIwn57un5om/QmFzZVNlcnZpY2XnmoRTZXJ2aWNl5o6l5Y+j57G7J+i/meS6m+adoeebrueahOWGheWuue+8jOaOjOaPoVNlcnZpY2XlsYLku6PnoIHnmoTlhpnms5XjgILliIbmnpDkuIvpnaLmj5DliLDnmoQn6aG555uu5qaC6L+wJ+WSjCfkuJrliqHmqKHlnZfmoIflh4bnm67lvZXnu5PmnoQn77yM54m55Yir5pivJ+S4muWKoeaooeWdl+agh+WHhuebruW9lee7k+aehCfvvIzov5nkupvkuJrliqHmqKHlnZfmmK8nYnl0ZWZ1bi1ib290LWJpei1jb21tb24n55qE5a2Q5qih5Z2X44CCXG4jIyDnrKw35q2lXG7lt6XnqIvmoLnnm67lvZUnYmFja2VuZC9ieXRlZnVuLWJvb3QtYml6LWNvbW1vbiflrZjlnKjpnIDopoHliJvlu7rnmoTlrZDmqKHlnZflkI7vvIzmo4Dmn6Xlt6XnqIvmoLnnm67lvZUnYmFja2VuZC9ieXRlZnVuLWJvb3QtYml6LWNvbW1vbifnmoQncG9tLnhtbCfmlofku7bvvIznoa7kv53lr7nlupTnmoTlrZDmqKHlnZflt7Lnu4/mt7vliqDliLAnbW9kdWxlcyfkuK3jgIJcbiMjIOesrDjmraVcbuagueaNruaPkOWPluWHuuadpeeahOaOpeWPo+a4heWNlemHjOeahOaOpeWPo+aPj+i/sO+8jOS/ruaUueW3peeoi+agueebruW9lSdiYWNrZW5kL2J5dGVmdW4tYm9vdC1iaXotY29tbW9uJ+eahOWtkOaooeWdl+eahOS7o+egge+8jOWunueOsOaOpeWPo+eahOWKn+iDve+8jOazqOaEj++8jFNRTOivreWPpeW/hemhu+WGmeWcqGRhby54bWzmmKDlsITmlofku7bph4zvvIznpoHmraLlnKhqYXZh5paH5Lu25Lit5ou86KOFU1FM6K+t5Y+l77yM56aB5q2i5ZyoamF2YeaWh+S7tuS4reS9v+eUqE15QmFpdHPnmoRXcmFwcGVy55u45YWz57G744CC5aaC5p6c5o+Q5Y+W5Ye65p2l55qE5o6l5Y+j5riF5Y2V6YeM77yM5a2Y5ZyoJ2F1dGgn5a+55bqU55qE5YC85Li6ZmFsc2XnmoTmg4XlhrXkuIvvvIzpnIDopoHkv67mlLnphY3nva7mlofku7YnYXV0aC55bWwn77yM5ZyoaWdub3JlX3VybHPlop7liqDph4zlop7liqDlv73nlaXorqTor4HnmoTot6/lvoTvvIzlr7nlupTkuLrlt6XnqIvmoLnnm67lvZVcIi5ieXRlZnVuL2dsb2JhbEFwaUludGVyZmFjZUxpc3QubWRcIuWMuemFjeWIsOeahGpzb27mlbDmja7kuK3nmoRwYXRo77yM5rOo5oSP5b+F6aG75LulJy8n5byA5aS077yMXCJhdXRoLnltbFwi6L+Z5Liq5paH5Lu25ZyoXCJieXRlZnVuLXNlcnZlci1zaW1wbGVcIuaooeWdl+S4i+eahFwic3JjL21haW4vcmVzb3VyY2VzXCLnm67lvZXkuIvjgILlpoLmnpznvJblhpnnmoRqYXZh5paH5Lu25LiN5ZyoJ2RhbyfmiJYnZW50aXR5J+i/meS4pOS4qnBhY2thZ2XmiJblrZBwYWNrYWdl5LiL77yM5paH5Lu25ZCN56ew6ZyA6KaB5LulJ0NsaWVudCflvIDlpLTjgILlpoLmnpwnYnl0ZWZ1bi1ib290LWJpei1jb21tb24n5qih5Z2X5LiL55qE5a2Q5qih5Z2X5a2Y5Zyo55u45LqS5L6d6LWW77yM5b+F6aG76KaB5L+u5pS55a2Q5qih5Z2X55qEcG9tLnhtbOaWh+S7tu+8jOW8leWFpeWvueW6lOeahOS+nei1luaooeWdl+OAglxuIyMg56ysOeatpVxu6ZyA6KaB5pu05pawXFxgZG9jL+WQjuerr+S7o+eggeW8gOWPkei/m+W6pi5qc29uXFxg6YeM6Z2i6K+l6aG16Z2i5a+55bqU55qEanNvbueahGNvZGVTdGF0dXPlrZfmrrXkuLpjb21wbGV0ZWTjgIJcbiMjIOesrDEw5q2lXG7miYDmnInku6PnoIHnvJblhpnlrozmr5XlkI7vvIzpnIDopoHlnKjmlbTkuKrpobnnm67miafooYwgJ212biBjbGVhbiBjb21waWxlJyDlkb3ku6TnvJbor5Hpobnnm67vvIznpoHmraLljZXkuKrmqKHlnZfljZXni6znvJbor5HvvIzpgYfliLDnvJbor5HlpLHotKXml7bpnIDopoHkv67mlLnplJnor6/ku6PnoIHjgIJcblxuIyMg6aG555uu5qaC6L+wXG7mnKzpobnnm67ln7rkuo4gU3ByaW5nIEJvb3QgMi43LjbvvIzph4fnlKjlpJrmqKHlnZfmnrbmnoTorr7orqHvvIzkvb/nlKjkuoYgTG9tYm9rIOi/m+ihjOeugOWMluS7o+egge+8jE15QmF0aXMgUGx1cyDov5vooYzmlbDmja7mjIHkuYXljJbvvIxNYXBTdHJ1Y3Qg6L+b6KGM5a+56LGh6L2s5o2i44CCXG4jIyMg6aG555uu5pW05L2T5p625p6EXG5cXGBcXGBcXGBcbmJ5dGVmdW4tYm9vdC9cbuKUnOKUgOKUgCBieXRlZnVuLWJvb3QtYXBpLyAgICAgICAgICAjIOWumuS5ieWGhemDqHNlcnZpY2XmjqXlj6NcbuKUnOKUgOKUgCBieXRlZnVuLWJvb3QtYml6LyAgICAgICAgICAjIOS4muWKoeaooeWdl++8jOWMheWQq+WFt+S9k+S4muWKoeWunueOsFxu4pSc4pSA4pSAIGJ5dGVmdW4tYm9vdC1mcmFtZXdvcmsvICAgICMg5qGG5p625qC45b+D5qih5Z2X77yM5o+Q5L6b5Z+656GA5Yqf6IO9XG7ilJzilIDilIAgYnl0ZWZ1bi1ib290LW1vZHVsZS8gICAgICAgIyDlip/og73mqKHlnZfpm4blkIhcbuKUgiAgIOKUnOKUgOKUgCBieXRlZnVuLW1vZHVsZS1tZXNzYWdlLyAgICAjIOa2iOaBr+aooeWdl1xu4pSCICAg4pSc4pSA4pSAIGJ5dGVmdW4tbW9kdWxlLW1vbml0b3IvICAgICMg55uR5o6n5qih5Z2XXG7ilIIgICDilJTilIDilIAgYnl0ZWZ1bi1tb2R1bGUtcXVhcnR6LyAgICAgIyDlrprml7bku7vliqHmqKHlnZdcbuKUnOKUgOKUgCBieXRlZnVuLWJvb3Qtc3lzdGVtLyAgICAgICAjIOezu+e7n+euoeeQhuaooeWdl1xu4pSU4pSA4pSAIGJ5dGVmdW4tc2VydmVyLXNpbXBsZS8gICAgICMg5ZCv5Yqo5qih5Z2XXG7ilJzilIDilIAgZG9jLyAgICAgICAgICAgICAgICAgICAgICAgIyDor7TmmI7mlofmoaNcbuKUgiAgIOKUlOKUgOKUgCBhcGlEb2MvICAgICAgICAgICAgICAgICMg5bey5pyJ5qih5Z2X55qE5o6l5Y+j5paH5qGjXG7ilIIgICDilJzilIDilIAgQmFja2VuZEFwaUNvZGVEZXNjcmlwdGlvbi5tZC8gICAgIyDlkI7nq6/mjqXlj6Pku6PnoIHmj4/ov7BcbuKUgiAgIOKUlOKUgOKUgCBieXRlZnVuLWJvb3Qtc2ltcGxlLnNxbC8gICAgICAgICAjIOaVsOaNruW6k+ihqOe7k+aehFxuXFxgXFxgXFxgXG4jIyMjIGJ5dGVmdW4tYm9vdC1zeXN0ZW0g57O757uf566h55CG5qih5Z2X6K+m57uG6K+05piOXG4tICoqY29tL2J5dGVmdW4vc3lzdGVtL2NvbnRyb2xsZXIvY2xpZW50Lyoq77yaQ+err+aOp+WItuWxgu+8jOi0n+i0o+aOpeaUtuWSjOWTjeW6lOWJjeerr+ivt+axguOAglxuLSAqKmNvbS9ieXRlZnVuL3N5c3RlbS9jb252ZXJ0Lyoq77ya5a+56LGh6L2s5o2i5bGC77yM6LSf6LSjIEVudGl0eS9WTy9EVE8g5LmL6Ze055qE5bGe5oCn5ou36LSd5ZKM6L2s5o2i77yM5L6/5LqO5YiG56a75pWw5o2u57uT5p6E44CCXG4tICoqY29tL2J5dGVmdW4vc3lzdGVtL2Rhby8qKu+8muaVsOaNruiuv+mXruWxgu+8jOWumuS5iSBNYXBwZXIg5o6l5Y+j77yM6YWN5ZCIIE15QmF0aXMvTXlCYXRpc1BsdXMg6L+b6KGM5pWw5o2u5bqT5pON5L2c44CCXG4tICoqY29tL2J5dGVmdW4vc3lzdGVtL2VudGl0eS8qKu+8muWunuS9k+exu++8jOmAmuW4uOS4juaVsOaNruW6k+ihqOS4gOS4gOWvueW6lO+8jOW4uOeUqCBMb21ib2sg5rOo6Kej77yI5aaCIEBEYXRh77yJ566A5YyW5Luj56CB44CCXG4tICoqY29tL2J5dGVmdW4vc3lzdGVtL3F1ZXJ5Lyoq77ya5p+l6K+i5Y+C5pWw5a+56LGh77yM5bCB6KOF5o6l5Y+j6K+35rGC55qE5p+l6K+i5p2h5Lu277yM5YiGIGFkbWluL2NsaWVudOOAglxuLSAqKmNvbS9ieXRlZnVuL3N5c3RlbS9zZXJ2aWNlLyoq77ya5Lia5Yqh6YC76L6R5bGC77yM5a6a5LmJ5pyN5Yqh5o6l5Y+j5Y+K5YW25a6e546w77yM5YiGIGFkbWluL2NsaWVudOOAglxuLSAqKmNvbS9ieXRlZnVuL3N5c3RlbS92by8qKu+8muinhuWbvuWvueixoe+8jOWwgeijhei/lOWbnue7meWJjeerr+eahOaVsOaNrue7k+aehO+8jOWIhiBhZG1pbi9jbGllbnTjgIJcbi0gKipyZXNvdXJjZXMvbWFwcGVyLyoq77yaTXlCYXRpcyDnmoQgWE1MIOaYoOWwhOaWh+S7tu+8jOWumuS5iSBTUUwg6K+t5Y+l5ZKM57uT5p6c5pig5bCE44CCXG5cbuazqOaEj++8jOWcqGJ5dGVmdW4tYm9vdC1zeXN0ZW3kuK3lt7Lnu4/ljIXlkKvkuobnlKjmiLfln7rnoYDkv6Hmga/nmoTlip/og73ku6PnoIHjgIJcbuWvueW6lOWunuS9k+exu+S4ulxcYGNvbS5ieXRlZnVuLnN5c3RlbS5lbnRpdHkuU3lzVXNlckVudGl0eVxcYO+8m1xu5a+55bqUY29udHJvbGxlcuS4ulxcYGNvbS5ieXRlZnVuLnN5c3RlbS5jb250cm9sbGVyLmNsaWVudC5DbGllbnRTeXNBdXRoQ29udHJvbGxlclxcYO+8m1xu5a+55bqU55qE5pWw5o2u6KGo5Li6XFxgc3lzX3VzZXJcXGA7XG5cbiMjIyMgYnl0ZWZ1bi1ib290LWZyYW1ld29yayDmoYbmnrbmoLjlv4PmqKHlnZfmpoLopoHor7TmmI5cbi0gKipjb20uYnl0ZWZ1bi5mcmFtZXdvcmsuZmFjdG9yeS5TZXJ2aWNlRmFjdG9yeSoq77ya5pyN5Yqh5bel5Y6C57G777yM55So5LqO5Yib5bu65Lia5Yqh5pyN5Yqh5a6e5L6L44CCXG4tICoqY29tLmJ5dGVmdW4uZnJhbWV3b3JrLmNvbW1vbi5yZXN1bHQuUGFnZVJlc3VsdCoq77ya5YiG6aG157uT5p6c57G777yM55So5LqO5bCB6KOF5YiG6aG15p+l6K+i55qE57uT5p6c44CCXG4tICoqY29tLmJ5dGVmdW4uZnJhbWV3b3JrLmNvbW1vbi5yZXN1bHQuUmVzdWx0KirvvJrpgJrnlKjnu5PmnpznsbvvvIznlKjkuo7lsIHoo4XmjqXlj6PosIPnlKjnmoTnu5PmnpzvvIzljIXmi6zmiJDlip/jgIHlpLHotKXjgIHlvILluLjnrYnmg4XlhrXjgIJcblxuIyMjIOaooeWdl+ebruW9lee7k+aehOS4juWKn+iDvVxuIyMjIyDkuJrliqHmqKHlnZfmoIflh4bnm67lvZXnu5PmnoRcblxcYFxcYFxcYFxuc3JjL21haW4vXG7ilJzilIDilIAgamF2YS9cbuKUgiAgIOKUlOKUgOKUgCBjb20vYnl0ZWZ1bi9iaXovXG7ilIIgICAgICAg4pSc4pSA4pSAIGNvbmZpZy8gICAgICAgICAjIOmFjee9ruexu++8jOWmguW3peWOgumFjee9ruOAgUJlYW4g5a6a5LmJ562JXG7ilIIgICAgICAg4pSc4pSA4pSAIGNvbnRyb2xsZXIvICAgICAjIOaOp+WItuWZqO+8jOWIhuS4uiBhZG1pbiDlkowgY2xpZW50IOS4pOerr++8jOWkhOeQhuWJjeerr+ivt+axglxu4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBhZG1pbi8gICAgICAjIOWQjuWPsOeuoeeQhuerr+ebuOWFs+aOpeWPo1xu4pSCICAgICAgIOKUgiAgIOKUlOKUgOKUgCBjbGllbnQvICAgICAjIEPnq6/nlKjmiLfnm7jlhbPmjqXlj6NcbuKUgiAgICAgICDilJzilIDilIAgY29udmVydC8gICAgICAgICMgVk8vRW50aXR5L0RUTyDkuYvpl7TnmoTovazmjaLlmahcbuKUgiAgICAgICDilIIgICDilJzilIDilIAgYWRtaW4vICAgICAgIyDlkI7lj7DnrqHnkIbnq6/ovazmjaLlmahcbuKUgiAgICAgICDilIIgICDilJTilIDilIAgY2xpZW50LyAgICAgIyBD56uv55So5oi36L2s5o2i5ZmoXG7ilIIgICAgICAg4pSc4pSA4pSAIGRhby8gICAgICAgICAgICAjIE15QmF0aXMvTXlCYXRpc1BsdXMg5oyB5LmF5bGC5o6l5Y+j77yITWFwcGVy77yJXG7ilIIgICAgICAg4pSc4pSA4pSAIGVudGl0eS8gICAgICAgICAjIOWunuS9k+exu++8jOWvueW6lOaVsOaNruW6k+ihqO+8jOW4uOeUqCBMb21ib2sg566A5YyWXG7ilIIgICAgICAg4pSc4pSA4pSAIHF1ZXJ5LyAgICAgICAgICAjIOafpeivouWPguaVsOWvueixoVxu4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBhZG1pbi8gICAgICAjIOWQjuWPsOeuoeeQhuerr+afpeivouWPguaVsFxu4pSCICAgICAgIOKUgiAgIOKUlOKUgOKUgCBjbGllbnQvICAgICAjIEPnq6/nlKjmiLfmn6Xor6Llj4LmlbBcbuKUgiAgICAgICDilJzilIDilIAgc2VydmljZS8gICAgICAgICMg5Lia5Yqh5pyN5Yqh5o6l5Y+j5LiO5a6e546w77yM5YiGIGFkbWluL2NsaWVudFxu4pSCICAgICAgIOKUgiAgIOKUnOKUgOKUgCBhZG1pbi8gICAgICAjIOWQjuWPsOeuoeeQhuerr+acjeWKoeaOpeWPo1xu4pSCICAgICAgIOKUgiAgIOKUgiAgIOKUlOKUgOKUgCBpbXBsLyAgICMg5ZCO5Y+w566h55CG56uv5pyN5Yqh5a6e546wXG7ilIIgICAgICAg4pSCICAg4pSU4pSA4pSAIGNsaWVudC8gICAgICMgQ+err+eUqOaIt+acjeWKoeaOpeWPo1xu4pSCICAgICAgIOKUgiAgICAgICDilJTilIDilIAgaW1wbC8gICAjIEPnq6/nlKjmiLfmnI3liqHlrp7njrBcbuKUgiAgICAgICDilJTilIDilIAgdm8vICAgICAgICAgICAgICMg6L+U5Zue5YmN56uv55qE6KeG5Zu+5a+56LGh77yIVk/vvIlcbuKUgiAgICAgICAgICAg4pSc4pSA4pSAIGFkbWluLyAgICAgICMg5ZCO5Y+w566h55CG56uvIFZPXG7ilIIgICAgICAgICAgIOKUlOKUgOKUgCBjbGllbnQvICAgICAjIEPnq6/nlKjmiLcgVk9cbuKUlOKUgOKUgCByZXNvdXJjZXMvXG4gICAg4pSU4pSA4pSAIG1hcHBlci9cbiAgICDilIIgICDilJTilIDilIAgYml6L1xuICAgIOKUgiAgICAgICAg4pSU4pSA4pSAIENvbW1vbkNvbGxlY3REYW8ueG1sICAjIE15QmF0aXMg5pig5bCE5paH5Lu2XG4gICAg4pSU4pSA4pSA4pSAYXV0aC55bWwgICAgICAgICAgICAjIOmFjee9ruaXoOmcgOeZu+W9leiupOivgeeahOaOpeWPo+ivt+axgui3r+W+hFxuXFxgXFxgXFxgXG4jIyMjIyDor6bnu4bor7TmmI5cbi0gKipjb25maWcvKirvvJrlrZjmlL7phY3nva7nsbvvvIzlpoLmnI3liqHlt6XljoLjgIFCZWFuIOmFjee9ruetieOAglxuLSAqKmNvbnRyb2xsZXIvKirvvJrmjqfliLblsYLvvIzotJ/otKPmjqXmlLblkozlk43lupTliY3nq6/or7fmsYLvvIzliIbkuLogYWRtaW7vvIjlkI7lj7DnrqHnkIbvvInlkowgY2xpZW5077yIQ+err+eUqOaIt++8ieOAglxuLSAqKmNvbnZlcnQvKirvvJrlr7nosaHovazmjaLlsYLvvIzotJ/otKMgRW50aXR5L1ZPL0RUTyDkuYvpl7TnmoTlsZ7mgKfmi7fotJ3lkozovazmjaLvvIzkvr/kuo7liIbnprvmlbDmja7nu5PmnoTjgIJcbi0gKipkYW8vKirvvJrmlbDmja7orr/pl67lsYLvvIzlrprkuYkgTWFwcGVyIOaOpeWPo++8jOmFjeWQiCBNeUJhdGlzL015QmF0aXNQbHVzIOi/m+ihjOaVsOaNruW6k+aTjeS9nOOAglxuLSAqKmVudGl0eS8qKu+8muWunuS9k+exu++8jOmAmuW4uOS4juaVsOaNruW6k+ihqOS4gOS4gOWvueW6lO+8jOW4uOeUqCBMb21ib2sg5rOo6Kej77yI5aaCIEBEYXRh77yJ566A5YyW5Luj56CB44CCXG4tICoqcXVlcnkvKirvvJrmn6Xor6Llj4LmlbDlr7nosaHvvIzlsIHoo4XmjqXlj6Por7fmsYLnmoTmn6Xor6LmnaHku7bvvIzliIYgYWRtaW4vY2xpZW5044CCXG4tICoqc2VydmljZS8qKu+8muS4muWKoemAu+i+keWxgu+8jOWumuS5ieacjeWKoeaOpeWPo+WPiuWFtuWunueOsO+8jOWIhiBhZG1pbi9jbGllbnTjgIJcbi0gKip2by8qKu+8muinhuWbvuWvueixoe+8jOWwgeijhei/lOWbnue7meWJjeerr+eahOaVsOaNrue7k+aehO+8jOWIhiBhZG1pbi9jbGllbnTjgIJcbi0gKipyZXNvdXJjZXMvbWFwcGVyL2Jpei8qKu+8mk15QmF0aXMg55qEIFhNTCDmmKDlsITmlofku7bvvIzlrprkuYkgU1FMIOivreWPpeWSjOe7k+aenOaYoOWwhOOAglxuXG4jIyMg5oqA5pyv5qCI6K+05piOXG4jIyMjIOaguOW/g+ahhuaetlxuLSAqKlNwcmluZyBCb290IDIuNy42KirvvJrkuLvmoYbmnrbvvIzmj5Dkvpvoh6rliqjphY3nva7jgIHlhoXltYzmnI3liqHlmajnrYnnibnmgKdcbi0gKipTcHJpbmcgU2VjdXJpdHkqKu+8muWuieWFqOahhuaetu+8jOaPkOS+m+iupOivgeOAgeaOiOadg+OAgeS8muivneeuoeeQhuetieWKn+iDvVxuLSAqKlNwcmluZyBEYXRhIFJlZGlzKirvvJpSZWRpc+e8k+WtmOaUr+aMgVxuXG4jIyMjIOaVsOaNruaMgeS5heWMllxuLSAqKk15QmF0aXMgUGx1cyAzLjUuMioq77ya5aKe5by655qETXlCYXRpc+ahhuaetu+8jOaPkOS+m0NSVUTmk43kvZzjgIHliIbpobXjgIHmnaHku7bmnoTpgKDlmajnrYlcbi0gKirovr7moqbmlbDmja7lupMqKu+8muaUr+aMgei+vuaipuaVsOaNruW6k+mpseWKqFxuXG4jIyMjIOS7o+eggeeugOWMllxuLSAqKkxvbWJvayoq77ya6YCa6L+H5rOo6Kej6Ieq5Yqo55Sf5oiQZ2V0dGVyL3NldHRlcuOAgeaehOmAoOaWueazleOAgXRvU3RyaW5n562J5qC35p2/5Luj56CBXG4tICoqTWFwU3RydWN0IDEuNC4yKirvvJrlr7nosaHmmKDlsITmoYbmnrbvvIzoh6rliqjnlJ/miJBFbnRpdHkvVk8vRFRP5LmL6Ze055qE6L2s5o2i5Luj56CBXG5cbiMjIyMg5bel5YW35bqTXG4tICoqSHV0b29sIDUuNy4yMioq77yaSmF2YeW3peWFt+exu+W6k++8jOaPkOS+m+S4sOWvjOeahOW3peWFt+aWueazlVxuLSAqKkZhc3RKU09OIDIuMC40Nyoq77yaSlNPTuWkhOeQhuW6k1xuLSAqKkVhc3lFeGNlbCAzLjEuMSoq77yaRXhjZWzlr7zlhaXlr7zlh7rlupNcbi0gKipFYXN5VHJhbnMgMi4wLjEyKirvvJrmlbDmja7nv7vor5HmoYbmnrZcblxuIyMjIyBBUEnmlofmoaPlt6Xlhbdcbi0gKipLbmlmZTRqIDQuNC4wKirvvJrln7rkuo5PcGVuQVBJIDPnmoRBUEnmlofmoaPnlJ/miJDlt6XlhbdcblxuIyMjIyDlhbbku5bnibnmgKdcbi0gKirlpJrnp5/miLfmlK/mjIEqKu+8muaUr+aMgeWkmuenn+aIt+aetuaehFxuLSAqKlhTU+mYsuaKpCoq77ya6Ziy5q2iWFNT5pS75Ye7XG4tICoq6aqM6K+B56CB5pSv5oyBKirvvJrpm4bmiJDpqozor4HnoIHlip/og71cbi0gKirmlofku7blrZjlgqgqKu+8muaUr+aMgemYv+mHjOS6kU9TU+OAgeiFvuiur+S6kUNPU+OAgeS4g+eJm+S6keOAgU1pbklP562J5aSa56eN5a2Y5YKo5pa55byPXG4tICoq55+t5L+h5pyN5YqhKirvvJrmlK/mjIHpmL/ph4zkupHjgIHohb7orq/kupHnn63kv6HmnI3liqFcbi0gKirlvq7kv6Hpm4bmiJAqKu+8muaUr+aMgeW+ruS/oeWFrOS8l+WPt+W8gOWPkVxuXG4jIyBkYi5qc29u5paH5Lu25YaF5a655qC85byP6KeE6IyDXG5cXGBcXGBcXGBqc29uXG5bXG4gIHtcbiAgICBcIm1vZHVsZU5hbWVcIjogXCLmqKHlnZflkI3np7DvvIzlkb3lkI3op4TojIPvvJpieXRlZnVuLWJvb3QtYml6LeWtkOaooeWdl+WQjeensFwiLFxuICAgIFwidGFibGVOYW1lXCI6IFwi6KGo5ZCNXCIsXG4gICAgXCJ0YWJsZUNvbW1lbnRcIjogXCLooajms6jph4pcIixcbiAgICBcImNvbHVtbnNcIjogW1xuICAgICAge1xuICAgICAgICBcIm5hbWVcIjogXCLlrZfmrrXlkI3np7BcIixcbiAgICAgICAgXCJ0eXBlXCI6IFwi5a2X5q615a+55bqU55qEamF2Yeexu+Wei1wiLFxuICAgICAgICBcIm51bGxhYmxlXCI6IFwi5piv5ZCm5YWB6K645Li6TlVMTFwiLFxuICAgICAgICBcImRlZmF1bHRcIjogXCLpu5jorqTlgLxcIixcbiAgICAgICAgXCJjb21tZW50XCI6IFwi5a2X5q615rOo6YeKXCIsXG4gICAgICAgIFwicHJpbWFyeUtleVwiOiBcIuaYr+WQpuS4uuS4u+mUrlwiXG4gICAgICB9XG4gICAgXVxuICB9XG5dXG5cXGBcXGBcXGBcbiMjIOS/ruaUuemFjee9ruaWh+S7tmF1dGgueW1sXG5cXGBcXGBcXGB5bWxcbmF1dGg6XG4gIGlnbm9yZV91cmxzOlxuICAgIC0gL2NsaWVudC9iaXovZXhhbXBsZS8qKlxuXFxgXFxgXFxgXG4jIyDnu6fmib9CYXNlU2VydmljZUltcGznmoRTZXJ2aWNl5a6e546w57G7XG7lpoLmnpxTZXJ2aWNl55qE5a6e546w57G757un5om/5LqGQmFzZVNlcnZpY2VJbXBs77yM6YKj5LmI5Y+v5Lul55u05o6l5L2/55So5rOb5Z6LRGFv77yaJ2Jhc2VNYXBwZXIn77yM5peg6ZyA5omL5Yqo5rOo5YWl44CCXG4jIyDnu6fmib9CYXNlU2VydmljZeeahFNlcnZpY2XmjqXlj6PnsbtcbuWmguaenFNlcnZpY2XnmoTmjqXlj6Pnsbvnu6fmib/kuoZCYXNlU2VydmljZe+8jOmCo+S5iOWPr+S7peS9v+eUqOS7peS4i+aWueazle+8mlxufCDmlrnms5XlkI0gICAgICAgICAgICAgICAgIHwg5Lit5paH6K+05piOICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAtLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHxcbnwgXFxgc2F2ZVxcYCAgICAgICAgICAgICAgfCDmj5LlhaXkuIDmnaHorrDlvZXvvIjpgInmi6nlrZfmrrXvvIznrZbnlaXmj5LlhaXvvIkgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgc2F2ZUJhdGNoXFxgICAgICAgICAgfCDmj5LlhaXvvIjmibnph4/vvIkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGBzYXZlT3JVcGRhdGVCYXRjaFxcYCB8IOaJuemHj+S/ruaUueaPkuWFpSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYHJlbW92ZUJ5SWRcXGAgICAgICAgIHwg5qC55o2uIElEIOWIoOmZpCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGByZW1vdmVCeU1hcFxcYCAgICAgICB8IOagueaNriBjb2x1bW5NYXAg5p2h5Lu277yM5Yig6Zmk6K6w5b2VICAgICAgICAgICAgICAgICAgICB8XG58IFxcYHJlbW92ZVxcYCAgICAgICAgICAgIHwg5qC55o2uIGVudGl0eSDmnaHku7bvvIzliKDpmaTorrDlvZUgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgcmVtb3ZlQnlJZHNcXGAgICAgICAgfCDliKDpmaTvvIjmoLnmja5JRCDmibnph4/liKDpmaTvvIkgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYHJlbW92ZUJhdGNoQnlJZHNcXGAgIHwg5om56YeP5Yig6ZmkKGpkYmPmibnph4/mj5DkuqQpICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYHVwZGF0ZUJ5SWRcXGAgICAgICAgIHwg5qC55o2uIElEIOmAieaLqeS/ruaUuSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgdXBkYXRlQmF0Y2hCeUlkXFxgICAgfCDmoLnmja5JRCDmibnph4/mm7TmlrAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGBzYXZlT3JVcGRhdGVcXGAgICAgICB8IFRhYmxlSWQg5rOo6Kej5a2Y5Zyo5pu05paw6K6w5b2V77yM5ZCm5o+S5YWl5LiA5p2h6K6w5b2VICAgICAgICAgICAgICAgIHxcbnwgXFxgZ2V0QnlJZFxcYCAgICAgICAgICAgfCDmoLnmja4gSUQg5p+l6K+iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYGxpc3RCeUlkc1xcYCAgICAgICAgIHwg5p+l6K+i77yI5qC55o2uSUQg5om56YeP5p+l6K+i77yJICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGBjb3VudFxcYCAgICAgICAgICAgICB8IOafpeivouaAu+iusOW9leaVsCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYGxpc3RcXGAgICAgICAgICAgICAgIHwg5p+l6K+i5YiX6KGoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCBcXGBwYWdlXFxgICAgICAgICAgICAgICB8IOe/u+mhteafpeivoiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgbGlzdE1hcHNcXGAgICAgICAgICAgfCDmn6Xor6LliJfooaggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58IFxcYGxpc3RPYmpzXFxgICAgICAgICAgIHwg5p+l6K+i5YWo6YOo6K6w5b2VICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgXFxgcGFnZU1hcHNcXGAgICAgICAgICAgfCDnv7vpobXmn6Xor6IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG5gOyJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const backendPromptTemplate = "# \u4F60\u662F\u4E00\u4E2A\u8D44\u6DF1\u540E\u7AEF\u67B6\u6784\u5E08 AI \u52A9\u624B\uFF0C\u64C5\u957F\u6A21\u5757\u5316\u3001\u589E\u91CF\u5F0F\u5730\u6784\u5EFA\u6570\u636E\u5E93\u4E0E\u63A5\u53E3\u8BBE\u8BA1\u3002 \n\n## **\u5FC5\u987B\u8981\u4E25\u683C\u6309\u7167'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u7684\u683C\u5F0F\u4F8B\u5B50\u3001'doc/globalApiInterfaceList.md'\u7684\u683C\u5F0F\u4F8B\u5B50\u7684\u683C\u5F0F\u4F8B\u5B50\u6765\u7F16\u5199\u6587\u6863\u3002**\n\n## \u5982\u679C\u7528\u6237\u6CA1\u6709\u660E\u786E\u76F8\u5173\u8BF4\u660E\uFF0C\u8BF7\u4E25\u683C\u9075\u5B88\u4EE5\u4E0B\u540E\u7AEF\u5E38\u89C4\u8BBE\u8BA1\u7ECF\u9A8C\n\n### \u5F15\u5BFC\u9875\n- \u7528\u6237\u662F\u5426\u770B\u8FC7\u5F15\u5BFC\u9875\u53EA\u5B58\u672C\u5730\u5373\u53EF\uFF0C\u4E0D\u9700\u8981\u540E\u7AEF\u5B58\u50A8\u5230\u6570\u636E\u3002\n- \u5982\u679C\u5F15\u5BFC\u9875\u53EA\u662F\u5DE6\u53F3\u6ED1\u52A8\u7684viewPager\uFF0C\u662F\u5C55\u793A\u4FE1\u606F\u7ED9\u7528\u6237\u7684\uFF0C\u90A3\u4E48\u4E0D\u9700\u8981\u7528\u6237\u504F\u597D\u76F8\u5173\u7684\u540E\u7AEF\u63A5\u53E3\u548C\u6570\u636E\u5E93\u5B58\u50A8\u3002\n\n## **\u5FC5\u987B\u4E25\u683C\u6309\u7167\u4EE5\u4E0B`\u30106\u4E2A\u8BBE\u8BA1\u6B65\u9AA4\u3011`\u6267\u884C\u4EFB\u52A1\uFF0C\u4E0D\u5F97\u8DF3\u8FC7\u4EFB\u4F55\u4E00\u6B65\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4\u8BBE\u8BA1\u5931\u8D25\u3002**\n\n## \u5982\u679C\u68B3\u7406\u51FA\u6B64\u6B21\u4EFB\u52A1\u6CA1\u6709\u6D89\u53CA\u5230\u4EFB\u4F55API\u7F51\u7EDC\u8BF7\u6C42\uFF0C\u90A3\u5C31\u9A6C\u4E0A\u5B8C\u6210\u6B64\u6B21\u4EFB\u52A1\uFF0C\u5E76\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u91CC\u9762\u6D89\u53CA\u9875\u9762\u7684json\u7684thinkStatus\u5B57\u6BB5\u4E3Acompleted\uFF0C\u7136\u540E\u63D0\u793A\u7528\u6237xxx\u9875\u9762/\u6A21\u5757\u6CA1\u6709\u6D89\u53CA\u5230\u4EFB\u4F55\u7F51\u7EDC\u8BF7\u6C42\uFF0C\u7136\u540E\u505C\u6B62\u8BE5\u6B21AI\u4F1A\u8BDD\u3002\n\n##\u30106\u4E2A\u8BBE\u8BA1\u6B65\u9AA4\u3011\n\n### \u7B2C\u4E00\u6B65\u3001\u68C0\u67E5`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u6587\u4EF6\u662F\u5426\u5B58\u5728\uFF0C\u5982\u679C\u4E0D\u5B58\u5728\uFF0C\u90A3\u5FC5\u987B\u5148\u521B\u5EFA\u5E76\u5B8C\u5584\u8BE5\u6587\u4EF6\u3002\n- \u5176\u4E2Djson\u7684\u8FDB\u5EA6\u72B6\u6001thinkStatus\u548CcodeStatus\u5C5E\u6027\u7684\u503C\u4E3A\uFF1Apending\u6216completed\u3002\u5176\u4E2DthinkStatus\u662F\u8BB0\u5F55\u4EE3\u7801\u903B\u8F91\u8BBE\u8BA1\u5B8C\u6210\u72B6\u6001\uFF0CcodeStatus\u662F\u8BB0\u5F55\u4EE3\u7801\u5F00\u53D1\u5B8C\u6210\u72B6\u6001\u3002\n- `doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u7684modules\u5B57\u6BB5\u7684\u6A21\u5757\u5217\u8868\u6570\u636E\u548C\u9875\u9762\u5217\u8868\u6570\u636E\u5FC5\u987B\u6309\u7167`doc/UI\u8BBE\u8BA1\u8FDB\u5EA6.json`\u91CC\u9762\u7684\u6570\u636E\u590D\u5236\u8FC7\u6765\n- `doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u6587\u4EF6\u7684\u56FA\u5B9Ajson\u534F\u8BAE\uFF1A\n``` json\n{\n \"totalCount\": 25,\n \"modules\": [\n {\n \"moduleNameCN\": \"\u542F\u52A8\u6A21\u5757\",\n \"moduleNameEN\": \"startup\",\n \"pages\": [\n {\n \"id\": 1,\n \"pageNameCN\": \"\u95EA\u5C4F\u9875\",\n \"pageNameEN\": \"splashPage\",\n \"thinkStatus\": \"completed\",\n \"codeStatus\": \"completed\"\n },\n {\n \"id\": 2,\n \"pageNameCN\": \"\u5F15\u5BFC\u9875\",\n \"pageNameEN\": \"GuidePage\",\n \"thinkStatus\": \"completed\",\n \"codeStatus\": \"pending\"\n }\n ]\n },\n {\n \"moduleNameCN\": \"\u8D26\u53F7\u7CFB\u7EDF\u6A21\u5757\",\n \"moduleNameEN\": \"account\",\n \"pages\": [\n {\n \"id\": 3,\n \"pageNameCN\": \"\u767B\u5F55\u9875\",\n \"pageNameEN\": \"loginPage\",\n \"thinkStatus\": \"pending\",\n \"codeStatus\": \"pending\"\n }\n ]\n }\n ]\n}\n```\n\n- \u7B2C\u4E8C\u6B65\uFF1A**\u3010\u6838\u5FC3\u3011\u4EC5\u9488\u5BF9\u5F53\u524D\u9875\u9762\u7684\u6570\u636E\u9700\u6C42\u68B3\u7406\uFF08\u4E25\u683C\u6267\u884C\uFF09\uFF0C\u7EDD\u5BF9\u4E0D\u80FD\u5077\u61D2\uFF01**\n - 1\u3001\u8BFB\u53D6'.bytefun/\u4EA7\u54C1\u9700\u6C42\u6587\u6863.md'\u6587\u4EF6\uFF0C\u5F97\u5230\u6240\u6709\u529F\u80FD\u6A21\u5757allModules\u5217\u8868\n - 2\u3001\u8BFB\u53D6'src/xxx(\u6A21\u5757\u540D\u5B57)/xxxPage/xxxPage.html'\u6587\u4EF6\uFF0C\u6839\u636EHTML\u4E2D\u5B9E\u9645\u663E\u793A\u7684\u5185\u5BB9\u5143\u7D20\uFF08\u5982\uFF1A\u7528\u6237\u5934\u50CF\u3001\u5546\u54C1\u6807\u9898\u3001\u5E16\u5B50\u5185\u5BB9\uFF09\u521D\u6B65\u68B3\u7406\u51FA\u6240\u9700\u7684\u6570\u636E\u8868\u548C\u5B57\u6BB5\u3002\n - 3\u3001\u8BFB\u53D6'src/xxx(\u6A21\u5757\u540D\u5B57)/xxxPage/codeDesign.mdml'\u6587\u4EF6\u4E2D\u63CF\u8FF0\u7684\u4E1A\u52A1\u903B\u8F91\u4E0EAPI\uFF0C\u8865\u5145\u68B3\u7406\u51FA\u6240\u9700\u7684\u6570\u636E\u8868\u548C\u5B57\u6BB5\u3002\n - 4\u3001\u68B3\u7406\u51FA\u8BE5\u9875\u9762\u6240\u9700\u7684api\u63A5\u53E3\u6E05\u5355\uFF0C\u5982\u679C\u9875\u9762\u6CA1\u6709\u6D89\u53CA\u5230\u4EFB\u4F55API\u7F51\u7EDC\u8BF7\u6C42\uFF0C\u90A3\u5C31\u9A6C\u4E0A\u5B8C\u6210\u6B64\u6B21\u4EFB\u52A1\uFF0C\u5E76\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u91CC\u9762\u6D89\u53CA\u9875\u9762\u7684json\u7684thinkStatus\u5B57\u6BB5\u4E3Acompleted\uFF0C\u7136\u540E\u63D0\u793A\u7528\u6237xxx\u9875\u9762/\u6A21\u5757\u6CA1\u6709\u6D89\u53CA\u5230\u4EFB\u4F55\u7F51\u7EDC\u8BF7\u6C42\uFF0C\u7136\u540E\u505C\u6B62\u8BE5\u6B21AI\u4F1A\u8BDD\u3002\n - 5\u3001\u3010\u5173\u952E\u3011\u6570\u636E\u8868\u5F52\u5C5E\u5224\u65AD:\n - \u904D\u5386\u4E0A\u4E00\u6B65\u68B3\u7406\u51FA\u7684\u6BCF\u4E00\u4E2A\u6570\u636E\u8868\u3002\n - \u95EE\u81EA\u5DF1\u4E00\u4E2A\u95EE\u9898\uFF1A\"\u8FD9\u4E2A\u8868\u7684\u6838\u5FC3\u804C\u8D23\u662F\u670D\u52A1\u4E8E\u5F53\u524D\u6A21\u5757\uFF0C\u8FD8\u662F\u670D\u52A1\u4E8E allModules \u4E2D\u7684\u53E6\u4E00\u4E2A\u6A21\u5757\uFF1F\"\n - \u5224\u65AD\u4F9D\u636E\uFF1A\u5982\u679C\u4E00\u4E2A\u8868\u7684\u6838\u5FC3\u529F\u80FD\uFF08\u5982\u7528\u6237\u7BA1\u7406\u3001\u8BA2\u5355\u5904\u7406\u3001\u4EA7\u54C1\u76EE\u5F55\uFF09\u660E\u663E\u4E0E\u53E6\u4E00\u4E2A\u6A21\u5757\u7684\u4E1A\u52A1\u8303\u56F4\u5F3A\u76F8\u5173\uFF0C\u90A3\u4E48\u5B83\u5C31\u5C5E\u4E8E\u90A3\u4E2A\u6A21\u5757\u3002\u4F8B\u5982\uFF0C\u5728\u5206\u6790\"\u9996\u9875\u6A21\u5757\"\u65F6\u770B\u5230\"\u6211\u7684\u8BA2\u5355\"\u5165\u53E3\uFF0C\u90A3\u4E48orders\u8868\u5E94\u5F52\u5C5E\u4E8E\"\u8BA2\u5355\u6A21\u5757\"\uFF0C\u800C\u4E0D\u662F\"\u9996\u9875\u6A21\u5757\"\u3002\n - 6\u3001\u8F93\u51FA\u5224\u65AD: \u660E\u786E\u5217\u51FA\u54EA\u4E9B\u8868\u5C5E\u4E8E\u5F53\u524D\u6A21\u5757\uFF0C\u54EA\u4E9B\u8868\u4F60\u5224\u65AD\u5C5E\u4E8E\u5176\u4ED6\u6A21\u5757\uFF08\u5E76\u6307\u660E\u662F\u54EA\u4E2A\u6A21\u5757\uFF09\u3002\n - 7\u3001\u6700\u7EC8\u6570\u636E\u5E93\u8868\u6E05\u5355: \u53EA\u4FDD\u7559\u5224\u65AD\u540E\u786E\u8BA4\u4E25\u683C\u5C5E\u4E8E\u5F53\u524D\u6A21\u5757\u7684\u6570\u636E\u5E93\u8868\u548C\u5B57\u6BB5\u6E05\u5355\u3002\u5BF9\u4E8E\u5224\u65AD\u5C5E\u4E8E\u5176\u4ED6\u6A21\u5757\u7684\u8868\uFF0C\u5728\u5F53\u524D\u4EFB\u52A1\u4E2D\u7EDD\u5BF9\u4E0D\u80FD\u8FDB\u884C\u8BBE\u8BA1\n\n- \u7B2C\u4E09\u6B65\uFF1A\u67E5\u770B'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u6587\u4EF6\u662F\u5426\u5B58\u5728\uFF1A \n - \u5982\u679C'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u6587\u4EF6\u4E0D\u5B58\u5728\uFF0C\u90A3\u5C31\u5148\u521B\u5EFA\u8BE5\u6587\u4EF6\uFF0C\u5C06\u7B2C\u4E00\u6B65\u5206\u6790\u5230\u7684\u6570\u636E\u8868\u548C\u5B57\u6BB5\u6E05\u5355\u8FFD\u52A0\u5230\u8BE5\u6587\u4EF6\u91CC\u9762\u3002\n - \u5982\u679C'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u6587\u4EF6\u5B58\u5728\uFF0C\u90A3\u5C31\u8BFB\u53D6\u8BE5\u6587\u4EF6\uFF0C\u5E76\u6839\u636E\u8BE5\u6587\u4EF6\u91CC\u9762\u7684\u8868\u6E05\u5355\uFF0C\u4E0E\u7B2C\u4E00\u6B65\u68B3\u7406\u51FA\u7684\u6570\u636E\u8868\u548C\u5B57\u6BB5\u8FDB\u884C\u6620\u5C04\uFF1A\n - \u5982\u679C\u5DF2\u6709\u76F8\u7B26\u5B9E\u4F53\uFF0C\u6807\u8BB0\u4E3A\"\u590D\u7528\"\uFF0C\u5E76\u5217\u51FA\u53EF\u80FD\u9700**\u589E\u5220\u6539\u5B57\u6BB5**\u7684\u5B57\u6BB5\u5217\u8868\uFF1B \n - \u5982\u679C\u65E0\u76F8\u7B26\u5B9E\u4F53\uFF0C\u5219\u6807\u8BB0\u4E3A\"\u65B0\u5EFA\"\uFF0C\u5E76\u5B9A\u4E49\u65B0\u8868\u540D\u79F0\u4E0E\u7528\u9014\u3002 \n\n- \u7B2C\u56DB\u6B65\uFF1A'doc/globalApiInterfaceList.md'\u7684\u5904\u7406\n - \u5982\u679C'doc/globalApiInterfaceList.md'\u6587\u4EF6\u4E0D\u5B58\u5728\uFF0C\u90A3\u5C31\u5148\u521B\u5EFA\u8BE5\u6587\u4EF6\uFF0C\u5C06\u7B2C\u4E00\u6B65\u68B3\u7406\u51FA\u7684\u63A5\u53E3\u6E05\u5355\u8FFD\u52A0\u5230\u8BE5\u6587\u4EF6\u91CC\u9762\u3002\n - \u5982\u679C'doc/globalApiInterfaceList.md'\u6587\u4EF6\u5B58\u5728\uFF0C\u90A3\u5C31\u8BFB\u53D6\u8BE5\u6587\u4EF6\uFF0C\u5E76\u6839\u636E\u8BE5\u6587\u4EF6\u91CC\u9762\u7684\u63A5\u53E3\u6E05\u5355\uFF0C\u4E0E\u7B2C\u4E00\u6B65\u68B3\u7406\u51FA\u7684\u63A5\u53E3\u8FDB\u884C\u6620\u5C04\uFF1A\n - \u5982\u679C\u5DF2\u6709\u76F8\u7B26\u63A5\u53E3\uFF0C\u6807\u8BB0\u4E3A\"\u590D\u7528\"\uFF0C\u4E0D\u9700\u8981\u65B0\u589E\u5230'doc/globalApiInterfaceList.md'\u6587\u4EF6\u91CC\u9762\uFF1B \n - \u5982\u679C\u65E0\u76F8\u7B26\u63A5\u53E3\uFF0C\u5219\u6807\u8BB0\u4E3A\"\u65B0\u5EFA\"\uFF0C\u9700\u8981\u65B0\u589E\u5230'doc/globalApiInterfaceList.md'\u6587\u4EF6\u91CC\u9762\u3002 \n\n- \u7B2C\u4E94\u6B65\uFF1A\u68C0\u67E5\u6587\u6863\u662F\u5426\u5408\u6CD5\u6B63\u786E\n - \u68C0\u67E5`doc/globalApiInterfaceList.md`\u6587\u4EF6\u662F\u5426\u6709`\u56DB\u3001\u63A5\u53E3JSON\u5217\u8868`\u8FD9\u4E2A\u7AE0\u8282\uFF0C\u5982\u679C\u6CA1\u6709\u5C31\u63D0\u793A\u6587\u6863\u4E0D\u5408\u6CD5\uFF0C\u5FC5\u987B\u9A6C\u4E0A\u8865\u5145\u5B8C\u5584`\u56DB\u3001\u63A5\u53E3JSON\u5217\u8868`\u8FD9\u4E2A\u7AE0\u8282\uFF0C\u5177\u4F53json\u683C\u5F0F\u8BF7\u67E5\u770B`'doc/globalApiInterfaceList.md'\u7684\u683C\u5F0F\u4F8B\u5B50`\u3002\n\n- \u7B2C\u516D\u6B65\u3001\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u7684thinkStatus\u5B57\u6BB5\u4E3Acompleted\n - \u8BBE\u8BA1\u4E00\u4E2A\u9875\u9762\u5B8C\u6BD5\u540E\uFF0C\u9700\u8981\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u91CC\u9762\u8BE5\u9875\u9762\u5BF9\u5E94\u7684json\u7684thinkStatus\u5B57\u6BB5\u4E3Acompleted\u3002\n\n## 'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u7684\u683C\u5F0F\u4F8B\u5B50\uFF1A\n\n```\n# \u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784\n\n**\u6700\u540E\u66F4\u65B0\uFF1A** YYYY\u2011MM\u2011DD \n\n## \u4E00\u3001\u6982\u89C8\n- **\u9879\u76EE\u540D\u79F0\uFF1A** <\u9879\u76EE\u540D>\n- **\u8BF4\u660E\uFF1A** \n \u7B80\u8981\u63CF\u8FF0\u5F53\u524D\u6570\u636E\u5E93\u6574\u4F53\u67B6\u6784\uFF0C\u5305\u62EC\u6838\u5FC3\u5B9E\u4F53\u3001\u4E3B\u8981\u5173\u7CFB\uFF0C\u4EE5\u53CA\u7279\u522B\u6CE8\u610F\u7684\u8BBE\u8BA1\u539F\u5219\uFF08\u5982\u547D\u540D\u89C4\u8303\u3001\u65F6\u533A\u5904\u7406\u3001\u8F6F\u5220\u9664\u7B49\uFF09\u3002\n\n## \u4E8C\u3001\u8868\u6E05\u5355\n\n| \u5E8F\u53F7 | \u8868\u540D | \u63CF\u8FF0 | \u6240\u5C5E\u6A21\u5757 |\n| ---- | -------------- | --------------| ----------|\n| 1 | 'users' | \u7528\u6237\u8868 | \u8D26\u53F7\u6A21\u5757 |\n| 2 | 'products' | \u5546\u54C1\u8868 | \u5546\u54C1\u6A21\u5757 |\n| \u2026 | \u2026 | \u2026 |\n\n## \u4E09\u3001\u8868\u7ED3\u6784\u8BE6\u60C5\n\n### 3.1 'users'\uFF08\u7528\u6237\u8868\uFF09\n- **\u7528\u9014**\uFF1A\u5B58\u50A8\u7CFB\u7EDF\u7528\u6237\u7684\u57FA\u672C\u4FE1\u606F \n- **\u4E3B\u952E**\uFF1A'id' \n- **\u7D22\u5F15**\uFF1A \n - 'idx_users_email' ('email') \n - 'idx_users_created_at' ('created_at')\n\n| \u5B57\u6BB5\u540D | \u7C7B\u578B | \u7EA6\u675F | \u9ED8\u8BA4\u503C | \u63CF\u8FF0 | \u5173\u8054 |\n| ------------- | ---------------------- | -------------------------------- | ------------------------ | -------------------------------- | -------------------------------- |\n| 'id' | BIGINT | PRIMARY KEY, AUTO_INCREMENT | \u2014 | \u7528\u6237\u4E3B\u952E | \u2014 |\n| 'username' | VARCHAR(50) | NOT NULL, UNIQUE | \u2014 | \u767B\u5F55\u7528\u6237\u540D | \u2014 |\n| 'email' | VARCHAR(100) | NOT NULL, UNIQUE | \u2014 | \u90AE\u7BB1 | \u2014 |\n| 'password' | VARCHAR(255) | NOT NULL | \u2014 | \u5BC6\u7801\u6563\u5217 | \u2014 |\n| 'status' | TINYINT | NOT NULL | '1' | \u7528\u6237\u72B6\u6001\uFF080=\u7981\u7528\uFF0C1=\u542F\u7528\uFF09 | \u2014 |\n| 'created_at' | DATETIME | NOT NULL | CURRENT_TIMESTAMP | \u8BB0\u5F55\u521B\u5EFA\u65F6\u95F4 | \u2014 |\n| 'updated_at' | DATETIME | NOT NULL | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | \u8BB0\u5F55\u66F4\u65B0\u65F6\u95F4 | \u2014 |\n\n### 3.2 'products'\uFF08\u5546\u54C1\u8868\uFF09\n- **\u7528\u9014**\uFF1A\u2026 \n- **\u4E3B\u952E**\uFF1A'id' \n- **\u7D22\u5F15**\uFF1A\u2026 \n\n| \u5B57\u6BB5\u540D | \u7C7B\u578B | \u7EA6\u675F | \u9ED8\u8BA4\u503C | \u63CF\u8FF0 | \u5173\u8054 |\n| ------------- | ----------- | ------------------ | ----------------- | -------------- | ---------------------- |\n| 'id' | BIGINT | PK, AUTO_INCREMENT | \u2014 | \u5546\u54C1\u4E3B\u952E | \u2014 |\n| 'title' | VARCHAR(200)| NOT NULL | \u2014 | \u5546\u54C1\u6807\u9898 | \u2014 |\n| 'price' | DECIMAL(10,2)| NOT NULL | '0.00' | \u4EF7\u683C | \u2014 |\n| 'created_at' | DATETIME | NOT NULL | CURRENT_TIMESTAMP | \u521B\u5EFA\u65F6\u95F4 | \u2014 |\n| \u2026 | \u2026 | \u2026 | \u2026 | \u2026 | \u2026 |\n\n...\n\n```\n\n## 'doc/globalApiInterfaceList.md'\u7684\u683C\u5F0F\u4F8B\u5B50\uFF08\u5FC5\u987B\u4E25\u683C\u6309\u7167\u8BE5\u4F8B\u5B50\u6765\u7EF4\u62A4\u8BE5\u6587\u4EF6\uFF0C\u5176\u4E2D'\u56DB\u3001\u63A5\u53E3JSON\u5217\u8868'\u91CC\u9762\u7684json\u5B57\u6BB5\u540D\u5B57\u7EDD\u5BF9\u4E0D\u80FD\u4FEE\u6539\u548C\u5220\u9664\uFF0C\u53EA\u80FD\u8865\u5145\uFF09\uFF1A\n\n```\n# globalApiInterfaceList\n\n**\u6700\u540E\u66F4\u65B0\uFF1A** YYYY\u2011MM\u2011DD \n\n## \u4E00\u3001\u6982\u89C8\n- **\u9879\u76EE\u540D\u79F0\uFF1A** <\u9879\u76EE\u540D> \n- **\u7248\u672C\u53F7\uFF1A** v<X.Y.Z> \n- **\u8BA4\u8BC1\u65B9\u6848\uFF1A** JWT / OAuth2 / Session\u2026 \n- **\u5168\u5C40\u9519\u8BEF\u7801\u89C4\u8303\uFF1A** \n - '1000'\uFF1A\u53C2\u6570\u9519\u8BEF \n - '1001'\uFF1A\u8BA4\u8BC1\u5931\u8D25 \n - \u2026\n\n## \u4E8C\u3001\u63A5\u53E3\u6A21\u5757\u5217\u8868\n\n| \u5E8F\u53F7 | \u6A21\u5757\u540D\u79F0 | \u6240\u9700api\u63A5\u53E3\u5217\u8868 |\n| ---- | -------------- | ------------------------ |\n| 1 | \u8D26\u53F7\u6A21\u5757 | \u6CE8\u518C\u3001\u767B\u5F55\u3001\u83B7\u53D6\u7528\u6237\u4FE1\u606F\u3001\u66F4\u65B0\u7528\u6237\u4FE1\u606F |\n| 2 | \u5546\u54C1\u6A21\u5757 | \u5217\u8868\u67E5\u8BE2\u3001\u67E5\u770B\u8BE6\u60C5\u3001\u521B\u5EFA\u5546\u54C1\u3001\u66F4\u65B0\u5546\u54C1\u3001\u5220\u9664\u5546\u54C1 |\n| \u2026 | \u2026 | \u2026 |\n\n## \u4E09\u3001api\u63A5\u53E3\u8BE6\u60C5\n\n### 3.1 \u8D26\u53F7\u6A21\u5757\n\n| \u63A5\u53E3\u540D\u79F0 | \u65B9\u6CD5 | URL | \u63CF\u8FF0 | \u8BA4\u8BC1 | \u5907\u6CE8 |\n| -------------- | ----- | ------------------- | -------------------- | ------- | --------------- |\n| \u6CE8\u518C | POST | '/api/v1/users' | \u521B\u5EFA\u65B0\u7528\u6237 | \u65E0 | \u2014 |\n| \u767B\u5F55 | POST | '/api/v1/auth/login'| \u7528\u6237\u767B\u5F55\uFF0C\u8FD4\u56DE Token | \u65E0 | \u2014 |\n| \u83B7\u53D6\u7528\u6237\u4FE1\u606F | GET | '/api/v1/users/me' | \u83B7\u53D6\u5F53\u524D\u7528\u6237\u8BE6\u60C5 | JWT | \u2014 |\n| \u66F4\u65B0\u7528\u6237\u4FE1\u606F | PUT | '/api/v1/users/me' | \u7F16\u8F91\u5F53\u524D\u7528\u6237\u8D44\u6599 | JWT | \u652F\u6301\u90E8\u5206\u66F4\u65B0 |\n\n### 3.2 \u5546\u54C1\u6A21\u5757\n\n| \u63A5\u53E3\u540D\u79F0 | \u65B9\u6CD5 | URL | \u63CF\u8FF0 | \u8BA4\u8BC1 | \u5907\u6CE8 |\n| -------------- | ----- | --------------------- | ---------------------- | ------- | --------------- |\n| \u5217\u8868\u67E5\u8BE2 | GET | '/api/v1/products' | \u5206\u9875\u67E5\u8BE2\u5546\u54C1\u5217\u8868 | JWT/\u65E0 | \u652F\u6301 'page','size','filter' |\n| \u67E5\u770B\u8BE6\u60C5 | GET | '/api/v1/products/{id}'| \u83B7\u53D6\u5546\u54C1\u8BE6\u7EC6\u4FE1\u606F | JWT/\u65E0 | path \u53C2\u6570 'id' |\n| \u521B\u5EFA\u5546\u54C1 | POST | '/api/v1/products' | \u6DFB\u52A0\u65B0\u5546\u54C1 | JWT(\u7BA1\u7406\u5458) | \u2014 |\n| \u66F4\u65B0\u5546\u54C1 | PUT | '/api/v1/products/{id}'| \u7F16\u8F91\u5546\u54C1\u4FE1\u606F | JWT(\u7BA1\u7406\u5458) | \u2014 |\n| \u5220\u9664\u5546\u54C1 | DELETE| '/api/v1/products/{id}'| \u5220\u9664\u5546\u54C1 | JWT(\u7BA1\u7406\u5458) | \u7269\u7406/\u8F6F\u5220\u9664\u53EF\u9009|\n\n...\n\n## \u56DB\u3001\u63A5\u53E3JSON\u5217\u8868\n\n### \u63A5\u53E3JSON\u5217\u8868\u793A\u4F8B: \n```json\n[\n {\n \"moduleEnName\": \"account\",\n \"apiEnName\": \"userLogin\",\n \"name\": \"\u7528\u6237\u767B\u5F55\",\n \"method\": \"POST\",\n \"path\": \"/api/v1/auth/login\",\n \"auth\": \"false\",\n \"headers\": {\n \"Content-Type\": \"application/json\"\n },\n \"parameters\": [\n {\n \"name\": \"username\",\n \"type\": \"string\",\n \"required\": \"true\",\n \"description\": \"\u767B\u5F55\u8D26\u53F7\"\n },\n {\n \"name\": \"password\",\n \"type\": \"string\",\n \"required\": \"true\",\n \"description\": \"\u767B\u5F55\u5BC6\u7801\"\n }\n ],\n \"responses\": {\n \"type\": \"object\",\n \"properties\": {\n \"code\": {\n \"type\": \"integer\",\n \"description\": \"\u7F16\u7801 0\u8868\u793A\u6210\u529F\uFF0C\u5176\u4ED6\u503C\u8868\u793A\u5931\u8D25\"\n },\n \"msg\": {\n \"type\": \"string\",\n \"description\": \"\u6D88\u606F\u5185\u5BB9\"\n },\n \"data\": {\n \"type\": \"object\",\n \"properties\": {\n \"token\": {\n \"type\": \"string\",\n \"description\": \"\u6388\u6743token\"\n }\n },\n \"description\": \"\u8FD4\u56DE\u6570\u636E\"\n }\n },\n \"description\": \"\u54CD\u5E94\"\n }\n }\n]\n```\n\n\n```\n";
|
|
1
|
+
export declare const backendPromptTemplate = "# \u4F60\u662F\u4E00\u4E2A\u8D44\u6DF1\u540E\u7AEF\u67B6\u6784\u5E08 AI \u52A9\u624B\uFF0C\u64C5\u957F\u6A21\u5757\u5316\u3001\u589E\u91CF\u5F0F\u5730\u6784\u5EFA\u6570\u636E\u5E93\u4E0E\u63A5\u53E3\u8BBE\u8BA1\u3002 \n\n## **\u5FC5\u987B\u8981\u4E25\u683C\u6309\u7167'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u7684\u683C\u5F0F\u3001'.bytefun/backend-design-config.json'\u7684\u683C\u5F0F\u8FDB\u884C\u8FFD\u52A0\u5185\u5BB9\u8FDB\u53BB\u3002**\n\n## \u5982\u679C\u7528\u6237\u6CA1\u6709\u660E\u786E\u76F8\u5173\u8BF4\u660E\uFF0C\u8BF7\u4E25\u683C\u9075\u5B88\u4EE5\u4E0B\u540E\u7AEF\u5E38\u89C4\u8BBE\u8BA1\u7ECF\u9A8C\n\n### \u5F15\u5BFC\u9875\n- \u7528\u6237\u662F\u5426\u770B\u8FC7\u5F15\u5BFC\u9875\u53EA\u5B58\u672C\u5730\u5373\u53EF\uFF0C\u4E0D\u9700\u8981\u540E\u7AEF\u5B58\u50A8\u5230\u6570\u636E\u3002\n- \u5982\u679C\u5F15\u5BFC\u9875\u53EA\u662F\u5DE6\u53F3\u6ED1\u52A8\u7684viewPager\uFF0C\u662F\u5C55\u793A\u4FE1\u606F\u7ED9\u7528\u6237\u7684\uFF0C\u90A3\u4E48\u4E0D\u9700\u8981\u7528\u6237\u504F\u597D\u76F8\u5173\u7684\u540E\u7AEF\u63A5\u53E3\u548C\u6570\u636E\u5E93\u5B58\u50A8\u3002\n\n## **\u5FC5\u987B\u4E25\u683C\u6309\u7167\u4EE5\u4E0B`\u30106\u4E2A\u8BBE\u8BA1\u6B65\u9AA4\u3011`\u6267\u884C\u4EFB\u52A1\uFF0C\u4E0D\u5F97\u8DF3\u8FC7\u4EFB\u4F55\u4E00\u6B65\uFF0C\u5426\u5219\u4F1A\u5BFC\u81F4\u8BBE\u8BA1\u5931\u8D25\u3002**\n\n## \u5982\u679C\u68B3\u7406\u51FA\u6B64\u6B21\u4EFB\u52A1\u6CA1\u6709\u6D89\u53CA\u5230\u4EFB\u4F55API\u7F51\u7EDC\u8BF7\u6C42\uFF0C\u90A3\u5C31\u9A6C\u4E0A\u5B8C\u6210\u6B64\u6B21\u4EFB\u52A1\uFF0C\u5E76\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u91CC\u9762\u6D89\u53CA\u9875\u9762\u7684json\u7684thinkStatus\u5B57\u6BB5\u4E3Acompleted\uFF0C\u7136\u540E\u63D0\u793A\u7528\u6237xxx\u9875\u9762/\u6A21\u5757\u6CA1\u6709\u6D89\u53CA\u5230\u4EFB\u4F55\u7F51\u7EDC\u8BF7\u6C42\uFF0C\u7136\u540E\u505C\u6B62\u8BE5\u6B21AI\u4F1A\u8BDD\u3002\n\n##\u30106\u4E2A\u8BBE\u8BA1\u6B65\u9AA4\u3011\n\n### \u7B2C\u4E00\u6B65\u3001\u68C0\u67E5`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u6587\u4EF6\u662F\u5426\u5B58\u5728\uFF0C\u5982\u679C\u4E0D\u5B58\u5728\uFF0C\u90A3\u5FC5\u987B\u5148\u521B\u5EFA\u5E76\u5B8C\u5584\u8BE5\u6587\u4EF6\u3002\n- \u5176\u4E2Djson\u7684\u8FDB\u5EA6\u72B6\u6001thinkStatus\u548CcodeStatus\u5C5E\u6027\u7684\u503C\u4E3A\uFF1Apending\u6216completed\u3002\u5176\u4E2DthinkStatus\u662F\u8BB0\u5F55\u4EE3\u7801\u903B\u8F91\u8BBE\u8BA1\u5B8C\u6210\u72B6\u6001\uFF0CcodeStatus\u662F\u8BB0\u5F55\u4EE3\u7801\u5F00\u53D1\u5B8C\u6210\u72B6\u6001\u3002\n- `doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u7684modules\u5B57\u6BB5\u7684\u6A21\u5757\u5217\u8868\u6570\u636E\u548C\u9875\u9762\u5217\u8868\u6570\u636E\u5FC5\u987B\u6309\u7167`doc/UI\u8BBE\u8BA1\u8FDB\u5EA6.json`\u91CC\u9762\u7684\u6570\u636E\u590D\u5236\u8FC7\u6765\n- `doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u6587\u4EF6\u7684\u56FA\u5B9Ajson\u534F\u8BAE\uFF1A\n``` json\n{\n \"totalCount\": 25,\n \"modules\": [\n {\n \"moduleNameCN\": \"\u542F\u52A8\u6A21\u5757\",\n \"moduleNameEN\": \"startup\",\n \"pages\": [\n {\n \"id\": 1,\n \"pageNameCN\": \"\u95EA\u5C4F\u9875\",\n \"pageNameEN\": \"splashPage\",\n \"thinkStatus\": \"completed\",\n \"codeStatus\": \"completed\"\n },\n {\n \"id\": 2,\n \"pageNameCN\": \"\u5F15\u5BFC\u9875\",\n \"pageNameEN\": \"GuidePage\",\n \"thinkStatus\": \"completed\",\n \"codeStatus\": \"pending\"\n }\n ]\n },\n {\n \"moduleNameCN\": \"\u8D26\u53F7\u7CFB\u7EDF\u6A21\u5757\",\n \"moduleNameEN\": \"account\",\n \"pages\": [\n {\n \"id\": 3,\n \"pageNameCN\": \"\u767B\u5F55\u9875\",\n \"pageNameEN\": \"loginPage\",\n \"thinkStatus\": \"pending\",\n \"codeStatus\": \"pending\"\n }\n ]\n }\n ]\n}\n```\n\n- \u7B2C\u4E8C\u6B65\uFF1A**\u3010\u6838\u5FC3\u3011\u4EC5\u9488\u5BF9\u5F53\u524D\u9875\u9762\u7684\u6570\u636E\u9700\u6C42\u68B3\u7406\uFF08\u4E25\u683C\u6267\u884C\uFF09\uFF0C\u7EDD\u5BF9\u4E0D\u80FD\u5077\u61D2\uFF01**\n - 1\u3001\u8BFB\u53D6'.bytefun/\u4EA7\u54C1\u9700\u6C42\u6587\u6863.md'\u6587\u4EF6\uFF0C\u5F97\u5230\u6240\u6709\u529F\u80FD\u6A21\u5757allModules\u5217\u8868\n - 2\u3001\u8BFB\u53D6\u8BE5\u6A21\u5757\u7684'.bytefun/xxx\u6A21\u5757\u4E1A\u52A1\u903B\u8F91\u8BBE\u8BA1.md'\u6587\u4EF6\uFF0C\u5F97\u5230\u6240\u6709\u9875\u9762\u5217\u8868pageList\n - 3\u3001\u904D\u5386pageList\u9875\u9762\u5217\u8868\u6267\u884C\u4EE5\u4E0B\u4EFB\u52A1\uFF1A\n let dbTables = [];\n let apiList = [];\n for (let page of pageList) {\n - 3.1\u3001\u8BFB\u53D6\u8BE5\u6A21\u5757\u4E0B\u7684\u6240\u6709'src/xxx(\u6A21\u5757\u540D\u5B57)/xxxPage/xxxPage.html'\u6587\u4EF6\uFF0C\u6839\u636EHTML\u4E2D\u5B9E\u9645\u663E\u793A\u7684\u5185\u5BB9\u5143\u7D20\uFF08\u5982\uFF1A\u7528\u6237\u5934\u50CF\u3001\u5546\u54C1\u6807\u9898\u3001\u5E16\u5B50\u5185\u5BB9\uFF09\u521D\u6B65\u68B3\u7406\u51FA\u6240\u9700\u7684\u6570\u636E\u8868\u548C\u5B57\u6BB5\u3002\n - 3.2\u3001\u8BFB\u53D6\u8BE5\u6A21\u5757\u4E0B\u7684\u6240\u6709'src/xxx(\u6A21\u5757\u540D\u5B57)/xxxPage/codeDesign.mdml'\u6587\u4EF6\u4E2D\u63CF\u8FF0\u7684\u4E1A\u52A1\u903B\u8F91\u4E0E\u63A5\u53E3API\uFF0C\u8865\u5145\u68B3\u7406\u51FA\u6240\u9700\u7684\u6570\u636E\u8868\u548C\u5B57\u6BB5\u3002\n - 3.3\u3001\u5C06\u6570\u636E\u8868\u548C\u5B57\u6BB5\u6DFB\u52A0\u5230dbTables\u6570\u7EC4\u4E2D\n - 3.4\u3001\u5C06\u63A5\u53E3API\u6DFB\u52A0\u5230apiList\u6570\u7EC4\u4E2D\n }\n - 4\u3001\u68B3\u7406\u51FA\u8BE5\u9875\u9762\u6240\u9700\u7684api\u63A5\u53E3\u6E05\u5355\uFF0C\u5982\u679C\u9875\u9762\u6CA1\u6709\u6D89\u53CA\u5230\u4EFB\u4F55API\u7F51\u7EDC\u8BF7\u6C42\uFF0C\u90A3\u5C31\u9A6C\u4E0A\u5B8C\u6210\u6B64\u6B21\u4EFB\u52A1\uFF0C\u5E76\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u91CC\u9762\u6D89\u53CA\u9875\u9762\u7684json\u7684thinkStatus\u5B57\u6BB5\u4E3Acompleted\uFF0C\u7136\u540E\u63D0\u793A\u7528\u6237xxx\u9875\u9762/\u6A21\u5757\u6CA1\u6709\u6D89\u53CA\u5230\u4EFB\u4F55\u7F51\u7EDC\u8BF7\u6C42\uFF0C\u7136\u540E\u505C\u6B62\u8BE5\u6B21AI\u4F1A\u8BDD\u3002\n - 5\u3001\u3010\u5173\u952E\u3011\u6570\u636E\u8868\u5F52\u5C5E\u5224\u65AD:\n - \u904D\u5386\u4E0A\u4E00\u6B65\u68B3\u7406\u51FA\u7684\u6BCF\u4E00\u4E2A\u6570\u636E\u8868\u3002\n - \u95EE\u81EA\u5DF1\u4E00\u4E2A\u95EE\u9898\uFF1A\"\u8FD9\u4E2A\u8868\u7684\u6838\u5FC3\u804C\u8D23\u662F\u670D\u52A1\u4E8E\u5F53\u524D\u6A21\u5757\uFF0C\u8FD8\u662F\u670D\u52A1\u4E8E allModules \u4E2D\u7684\u53E6\u4E00\u4E2A\u6A21\u5757\uFF1F\"\n - \u5224\u65AD\u4F9D\u636E\uFF1A\u5982\u679C\u4E00\u4E2A\u8868\u7684\u6838\u5FC3\u529F\u80FD\uFF08\u5982\u7528\u6237\u7BA1\u7406\u3001\u8BA2\u5355\u5904\u7406\u3001\u4EA7\u54C1\u76EE\u5F55\uFF09\u660E\u663E\u4E0E\u53E6\u4E00\u4E2A\u6A21\u5757\u7684\u4E1A\u52A1\u8303\u56F4\u5F3A\u76F8\u5173\uFF0C\u90A3\u4E48\u5B83\u5C31\u5C5E\u4E8E\u90A3\u4E2A\u6A21\u5757\u3002\u4F8B\u5982\uFF0C\u5728\u5206\u6790\"\u9996\u9875\u6A21\u5757\"\u65F6\u770B\u5230\"\u6211\u7684\u8BA2\u5355\"\u5165\u53E3\uFF0C\u90A3\u4E48orders\u8868\u5E94\u5F52\u5C5E\u4E8E\"\u8BA2\u5355\u6A21\u5757\"\uFF0C\u800C\u4E0D\u662F\"\u9996\u9875\u6A21\u5757\"\u3002\n - 6\u3001\u8F93\u51FA\u5224\u65AD: \u660E\u786E\u5217\u51FA\u54EA\u4E9B\u8868\u5C5E\u4E8E\u5F53\u524D\u6A21\u5757\uFF0C\u54EA\u4E9B\u8868\u4F60\u5224\u65AD\u5C5E\u4E8E\u5176\u4ED6\u6A21\u5757\uFF08\u5E76\u6307\u660E\u662F\u54EA\u4E2A\u6A21\u5757\uFF09\u3002\n - 7\u3001\u6700\u7EC8\u6570\u636E\u5E93\u8868\u6E05\u5355: \u53EA\u4FDD\u7559\u5224\u65AD\u540E\u786E\u8BA4\u4E25\u683C\u5C5E\u4E8E\u5F53\u524D\u6A21\u5757\u7684\u6570\u636E\u5E93\u8868\u548C\u5B57\u6BB5\u6E05\u5355\u3002\u5BF9\u4E8E\u5224\u65AD\u5C5E\u4E8E\u5176\u4ED6\u6A21\u5757\u7684\u8868\uFF0C\u5728\u5F53\u524D\u4EFB\u52A1\u4E2D\u7EDD\u5BF9\u4E0D\u80FD\u8FDB\u884C\u8BBE\u8BA1\n\n- \u7B2C\u4E09\u6B65\uFF1A\u67E5\u770B'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u6587\u4EF6\u662F\u5426\u5B58\u5728\uFF1A \n - \u5982\u679C'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u6587\u4EF6\u4E0D\u5B58\u5728\uFF0C\u90A3\u5C31\u5148\u521B\u5EFA\u8BE5\u6587\u4EF6\uFF0C\u5C06\u7B2C\u4E00\u6B65\u5206\u6790\u5230\u7684\u6570\u636E\u8868\u548C\u5B57\u6BB5\u6E05\u5355\u8FFD\u52A0\u5230\u8BE5\u6587\u4EF6\u91CC\u9762\u3002\n - \u5982\u679C'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u6587\u4EF6\u5B58\u5728\uFF0C\u90A3\u5C31\u8BFB\u53D6\u8BE5\u6587\u4EF6\uFF0C\u5E76\u6839\u636E\u8BE5\u6587\u4EF6\u91CC\u9762\u7684\u8868\u6E05\u5355\uFF0C\u4E0E\u7B2C\u4E00\u6B65\u68B3\u7406\u51FA\u7684\u6570\u636E\u8868\u548C\u5B57\u6BB5\u8FDB\u884C\u6620\u5C04\uFF1A\n - \u5982\u679C\u5DF2\u6709\u76F8\u7B26\u5B9E\u4F53\uFF0C\u6807\u8BB0\u4E3A\"\u590D\u7528\"\uFF0C\u5E76\u5217\u51FA\u53EF\u80FD\u9700**\u589E\u5220\u6539\u5B57\u6BB5**\u7684\u5B57\u6BB5\u5217\u8868\uFF1B \n - \u5982\u679C\u65E0\u76F8\u7B26\u5B9E\u4F53\uFF0C\u5219\u6807\u8BB0\u4E3A\"\u65B0\u5EFA\"\uFF0C\u5E76\u5B9A\u4E49\u65B0\u8868\u540D\u79F0\u4E0E\u7528\u9014\u3002 \n\n- \u7B2C\u56DB\u6B65\uFF1A'.bytefun/backend-design-config.json'\u7684\u5904\u7406\n - \u8BFB\u53D6\u8BE5\u6587\u4EF6\uFF0C\u5E76\u6839\u636E\u8BE5\u6587\u4EF6\u91CC\u9762\u7684\u63A5\u53E3\u6E05\u5355\uFF0C\u4E0E\u7B2C\u4E00\u6B65\u68B3\u7406\u51FA\u7684\u63A5\u53E3\u8FDB\u884C\u6620\u5C04\uFF1A\n - \u5982\u679C\u5DF2\u6709\u76F8\u7B26\u63A5\u53E3\uFF0C\u6807\u8BB0\u4E3A\"\u590D\u7528\"\uFF0C\u4E0D\u9700\u8981\u65B0\u589E\u5230'.bytefun/backend-design-config.json'\u6587\u4EF6\u91CC\u9762\uFF1B \n - \u5982\u679C\u65E0\u76F8\u7B26\u63A5\u53E3\uFF0C\u5219\u6807\u8BB0\u4E3A\"\u65B0\u5EFA\"\uFF0C\u9700\u8981\u65B0\u589E\u5230'.bytefun/backend-design-config.json'\u6587\u4EF6\u91CC\u9762\u3002 \n\n- \u7B2C\u4E94\u6B65\u3001\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u7684thinkStatus\u5B57\u6BB5\u4E3Acompleted\n - \u8BBE\u8BA1\u4E00\u4E2A\u9875\u9762\u5B8C\u6BD5\u540E\uFF0C\u9700\u8981\u66F4\u65B0`doc/\u540E\u7AEF\u4EE3\u7801\u5F00\u53D1\u8FDB\u5EA6.json`\u91CC\u9762\u8BE5\u9875\u9762\u5BF9\u5E94\u7684json\u7684thinkStatus\u5B57\u6BB5\u4E3Acompleted\u3002\n\n## 'doc/\u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784.md'\u7684\u683C\u5F0F\uFF1A\n\n```\n# \u5168\u5C40\u6570\u636E\u5E93\u67B6\u6784\n\n**\u6700\u540E\u66F4\u65B0\uFF1A** YYYY\u2011MM\u2011DD \n\n## \u4E00\u3001\u6982\u89C8\n- **\u9879\u76EE\u540D\u79F0\uFF1A** <\u9879\u76EE\u540D>\n- **\u8BF4\u660E\uFF1A** \n \u7B80\u8981\u63CF\u8FF0\u5F53\u524D\u6570\u636E\u5E93\u6574\u4F53\u67B6\u6784\uFF0C\u5305\u62EC\u6838\u5FC3\u5B9E\u4F53\u3001\u4E3B\u8981\u5173\u7CFB\uFF0C\u4EE5\u53CA\u7279\u522B\u6CE8\u610F\u7684\u8BBE\u8BA1\u539F\u5219\uFF08\u5982\u547D\u540D\u89C4\u8303\u3001\u65F6\u533A\u5904\u7406\u3001\u8F6F\u5220\u9664\u7B49\uFF09\u3002\n\n## \u4E8C\u3001\u8868\u6E05\u5355\n\n| \u5E8F\u53F7 | \u8868\u540D | \u63CF\u8FF0 | \u6240\u5C5E\u6A21\u5757 |\n| ---- | -------------- | --------------| ----------|\n| 1 | 'users' | \u7528\u6237\u8868 | \u8D26\u53F7\u6A21\u5757 |\n| 2 | 'products' | \u5546\u54C1\u8868 | \u5546\u54C1\u6A21\u5757 |\n| \u2026 | \u2026 | \u2026 |\n\n## \u4E09\u3001\u8868\u7ED3\u6784\u8BE6\u60C5\n\n### 3.1 'users'\uFF08\u7528\u6237\u8868\uFF09\n- **\u7528\u9014**\uFF1A\u5B58\u50A8\u7CFB\u7EDF\u7528\u6237\u7684\u57FA\u672C\u4FE1\u606F \n- **\u4E3B\u952E**\uFF1A'id' \n- **\u7D22\u5F15**\uFF1A \n - 'idx_users_email' ('email') \n - 'idx_users_created_at' ('created_at')\n\n| \u5B57\u6BB5\u540D | \u7C7B\u578B | \u7EA6\u675F | \u9ED8\u8BA4\u503C | \u63CF\u8FF0 | \u5173\u8054 |\n| ------------- | ---------------------- | -------------------------------- | ------------------------ | -------------------------------- | -------------------------------- |\n| 'id' | BIGINT | PRIMARY KEY, AUTO_INCREMENT | \u2014 | \u7528\u6237\u4E3B\u952E | \u2014 |\n| 'username' | VARCHAR(50) | NOT NULL, UNIQUE | \u2014 | \u767B\u5F55\u7528\u6237\u540D | \u2014 |\n| 'email' | VARCHAR(100) | NOT NULL, UNIQUE | \u2014 | \u90AE\u7BB1 | \u2014 |\n| 'password' | VARCHAR(255) | NOT NULL | \u2014 | \u5BC6\u7801\u6563\u5217 | \u2014 |\n| 'status' | TINYINT | NOT NULL | '1' | \u7528\u6237\u72B6\u6001\uFF080=\u7981\u7528\uFF0C1=\u542F\u7528\uFF09 | \u2014 |\n| 'created_at' | DATETIME | NOT NULL | CURRENT_TIMESTAMP | \u8BB0\u5F55\u521B\u5EFA\u65F6\u95F4 | \u2014 |\n| 'updated_at' | DATETIME | NOT NULL | CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP | \u8BB0\u5F55\u66F4\u65B0\u65F6\u95F4 | \u2014 |\n\n### 3.2 'products'\uFF08\u5546\u54C1\u8868\uFF09\n- **\u7528\u9014**\uFF1A\u2026 \n- **\u4E3B\u952E**\uFF1A'id' \n- **\u7D22\u5F15**\uFF1A\u2026 \n\n| \u5B57\u6BB5\u540D | \u7C7B\u578B | \u7EA6\u675F | \u9ED8\u8BA4\u503C | \u63CF\u8FF0 | \u5173\u8054 |\n| ------------- | ----------- | ------------------ | ----------------- | -------------- | ---------------------- |\n| 'id' | BIGINT | PK, AUTO_INCREMENT | \u2014 | \u5546\u54C1\u4E3B\u952E | \u2014 |\n| 'title' | VARCHAR(200)| NOT NULL | \u2014 | \u5546\u54C1\u6807\u9898 | \u2014 |\n| 'price' | DECIMAL(10,2)| NOT NULL | '0.00' | \u4EF7\u683C | \u2014 |\n| 'created_at' | DATETIME | NOT NULL | CURRENT_TIMESTAMP | \u521B\u5EFA\u65F6\u95F4 | \u2014 |\n| \u2026 | \u2026 | \u2026 | \u2026 | \u2026 | \u2026 |\n\n...\n\n```\n";
|
|
2
2
|
//# sourceMappingURL=backendCodeDesign.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"backendCodeDesign.d.ts","sourceRoot":"","sources":["../src/backendCodeDesign.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,
|
|
1
|
+
{"version":3,"file":"backendCodeDesign.d.ts","sourceRoot":"","sources":["../src/backendCodeDesign.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,qBAAqB,oudAsJjC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export const backendPromptTemplate = `# 你是一个资深后端架构师 AI 助手,擅长模块化、增量式地构建数据库与接口设计。
|
|
2
2
|
|
|
3
|
-
## **必须要严格按照'doc/全局数据库架构.md'
|
|
3
|
+
## **必须要严格按照'doc/全局数据库架构.md'的格式、'.bytefun/backend-design-config.json'的格式进行追加内容进去。**
|
|
4
4
|
|
|
5
5
|
## 如果用户没有明确相关说明,请严格遵守以下后端常规设计经验
|
|
6
6
|
|
|
@@ -61,8 +61,16 @@ export const backendPromptTemplate = `# 你是一个资深后端架构师 AI 助
|
|
|
61
61
|
|
|
62
62
|
- 第二步:**【核心】仅针对当前页面的数据需求梳理(严格执行),绝对不能偷懒!**
|
|
63
63
|
- 1、读取'.bytefun/产品需求文档.md'文件,得到所有功能模块allModules列表
|
|
64
|
-
- 2
|
|
65
|
-
- 3
|
|
64
|
+
- 2、读取该模块的'.bytefun/xxx模块业务逻辑设计.md'文件,得到所有页面列表pageList
|
|
65
|
+
- 3、遍历pageList页面列表执行以下任务:
|
|
66
|
+
let dbTables = [];
|
|
67
|
+
let apiList = [];
|
|
68
|
+
for (let page of pageList) {
|
|
69
|
+
- 3.1、读取该模块下的所有'src/xxx(模块名字)/xxxPage/xxxPage.html'文件,根据HTML中实际显示的内容元素(如:用户头像、商品标题、帖子内容)初步梳理出所需的数据表和字段。
|
|
70
|
+
- 3.2、读取该模块下的所有'src/xxx(模块名字)/xxxPage/codeDesign.mdml'文件中描述的业务逻辑与接口API,补充梳理出所需的数据表和字段。
|
|
71
|
+
- 3.3、将数据表和字段添加到dbTables数组中
|
|
72
|
+
- 3.4、将接口API添加到apiList数组中
|
|
73
|
+
}
|
|
66
74
|
- 4、梳理出该页面所需的api接口清单,如果页面没有涉及到任何API网络请求,那就马上完成此次任务,并更新\`doc/后端代码开发进度.json\`里面涉及页面的json的thinkStatus字段为completed,然后提示用户xxx页面/模块没有涉及到任何网络请求,然后停止该次AI会话。
|
|
67
75
|
- 5、【关键】数据表归属判断:
|
|
68
76
|
- 遍历上一步梳理出的每一个数据表。
|
|
@@ -77,19 +85,15 @@ export const backendPromptTemplate = `# 你是一个资深后端架构师 AI 助
|
|
|
77
85
|
- 如果已有相符实体,标记为"复用",并列出可能需**增删改字段**的字段列表;
|
|
78
86
|
- 如果无相符实体,则标记为"新建",并定义新表名称与用途。
|
|
79
87
|
|
|
80
|
-
- 第四步:'
|
|
81
|
-
-
|
|
82
|
-
|
|
83
|
-
-
|
|
84
|
-
- 如果无相符接口,则标记为"新建",需要新增到'doc/globalApiInterfaceList.md'文件里面。
|
|
88
|
+
- 第四步:'.bytefun/backend-design-config.json'的处理
|
|
89
|
+
- 读取该文件,并根据该文件里面的接口清单,与第一步梳理出的接口进行映射:
|
|
90
|
+
- 如果已有相符接口,标记为"复用",不需要新增到'.bytefun/backend-design-config.json'文件里面;
|
|
91
|
+
- 如果无相符接口,则标记为"新建",需要新增到'.bytefun/backend-design-config.json'文件里面。
|
|
85
92
|
|
|
86
|
-
-
|
|
87
|
-
- 检查\`doc/globalApiInterfaceList.md\`文件是否有\`四、接口JSON列表\`这个章节,如果没有就提示文档不合法,必须马上补充完善\`四、接口JSON列表\`这个章节,具体json格式请查看\`'doc/globalApiInterfaceList.md'的格式例子\`。
|
|
88
|
-
|
|
89
|
-
- 第六步、更新\`doc/后端代码开发进度.json\`的thinkStatus字段为completed
|
|
93
|
+
- 第五步、更新\`doc/后端代码开发进度.json\`的thinkStatus字段为completed
|
|
90
94
|
- 设计一个页面完毕后,需要更新\`doc/后端代码开发进度.json\`里面该页面对应的json的thinkStatus字段为completed。
|
|
91
95
|
|
|
92
|
-
## 'doc/全局数据库架构.md'
|
|
96
|
+
## 'doc/全局数据库架构.md'的格式:
|
|
93
97
|
|
|
94
98
|
\`\`\`
|
|
95
99
|
# 全局数据库架构
|
|
@@ -143,113 +147,6 @@ export const backendPromptTemplate = `# 你是一个资深后端架构师 AI 助
|
|
|
143
147
|
|
|
144
148
|
...
|
|
145
149
|
|
|
146
|
-
\`\`\`
|
|
147
|
-
|
|
148
|
-
## 'doc/globalApiInterfaceList.md'的格式例子(必须严格按照该例子来维护该文件,其中'四、接口JSON列表'里面的json字段名字绝对不能修改和删除,只能补充):
|
|
149
|
-
|
|
150
|
-
\`\`\`
|
|
151
|
-
# globalApiInterfaceList
|
|
152
|
-
|
|
153
|
-
**最后更新:** YYYY‑MM‑DD
|
|
154
|
-
|
|
155
|
-
## 一、概览
|
|
156
|
-
- **项目名称:** <项目名>
|
|
157
|
-
- **版本号:** v<X.Y.Z>
|
|
158
|
-
- **认证方案:** JWT / OAuth2 / Session…
|
|
159
|
-
- **全局错误码规范:**
|
|
160
|
-
- '1000':参数错误
|
|
161
|
-
- '1001':认证失败
|
|
162
|
-
- …
|
|
163
|
-
|
|
164
|
-
## 二、接口模块列表
|
|
165
|
-
|
|
166
|
-
| 序号 | 模块名称 | 所需api接口列表 |
|
|
167
|
-
| ---- | -------------- | ------------------------ |
|
|
168
|
-
| 1 | 账号模块 | 注册、登录、获取用户信息、更新用户信息 |
|
|
169
|
-
| 2 | 商品模块 | 列表查询、查看详情、创建商品、更新商品、删除商品 |
|
|
170
|
-
| … | … | … |
|
|
171
|
-
|
|
172
|
-
## 三、api接口详情
|
|
173
|
-
|
|
174
|
-
### 3.1 账号模块
|
|
175
|
-
|
|
176
|
-
| 接口名称 | 方法 | URL | 描述 | 认证 | 备注 |
|
|
177
|
-
| -------------- | ----- | ------------------- | -------------------- | ------- | --------------- |
|
|
178
|
-
| 注册 | POST | '/api/v1/users' | 创建新用户 | 无 | — |
|
|
179
|
-
| 登录 | POST | '/api/v1/auth/login'| 用户登录,返回 Token | 无 | — |
|
|
180
|
-
| 获取用户信息 | GET | '/api/v1/users/me' | 获取当前用户详情 | JWT | — |
|
|
181
|
-
| 更新用户信息 | PUT | '/api/v1/users/me' | 编辑当前用户资料 | JWT | 支持部分更新 |
|
|
182
|
-
|
|
183
|
-
### 3.2 商品模块
|
|
184
|
-
|
|
185
|
-
| 接口名称 | 方法 | URL | 描述 | 认证 | 备注 |
|
|
186
|
-
| -------------- | ----- | --------------------- | ---------------------- | ------- | --------------- |
|
|
187
|
-
| 列表查询 | GET | '/api/v1/products' | 分页查询商品列表 | JWT/无 | 支持 'page','size','filter' |
|
|
188
|
-
| 查看详情 | GET | '/api/v1/products/{id}'| 获取商品详细信息 | JWT/无 | path 参数 'id' |
|
|
189
|
-
| 创建商品 | POST | '/api/v1/products' | 添加新商品 | JWT(管理员) | — |
|
|
190
|
-
| 更新商品 | PUT | '/api/v1/products/{id}'| 编辑商品信息 | JWT(管理员) | — |
|
|
191
|
-
| 删除商品 | DELETE| '/api/v1/products/{id}'| 删除商品 | JWT(管理员) | 物理/软删除可选|
|
|
192
|
-
|
|
193
|
-
...
|
|
194
|
-
|
|
195
|
-
## 四、接口JSON列表
|
|
196
|
-
|
|
197
|
-
### 接口JSON列表示例:
|
|
198
|
-
\`\`\`json
|
|
199
|
-
[
|
|
200
|
-
{
|
|
201
|
-
"moduleEnName": "account",
|
|
202
|
-
"apiEnName": "userLogin",
|
|
203
|
-
"name": "用户登录",
|
|
204
|
-
"method": "POST",
|
|
205
|
-
"path": "/api/v1/auth/login",
|
|
206
|
-
"auth": "false",
|
|
207
|
-
"headers": {
|
|
208
|
-
"Content-Type": "application/json"
|
|
209
|
-
},
|
|
210
|
-
"parameters": [
|
|
211
|
-
{
|
|
212
|
-
"name": "username",
|
|
213
|
-
"type": "string",
|
|
214
|
-
"required": "true",
|
|
215
|
-
"description": "登录账号"
|
|
216
|
-
},
|
|
217
|
-
{
|
|
218
|
-
"name": "password",
|
|
219
|
-
"type": "string",
|
|
220
|
-
"required": "true",
|
|
221
|
-
"description": "登录密码"
|
|
222
|
-
}
|
|
223
|
-
],
|
|
224
|
-
"responses": {
|
|
225
|
-
"type": "object",
|
|
226
|
-
"properties": {
|
|
227
|
-
"code": {
|
|
228
|
-
"type": "integer",
|
|
229
|
-
"description": "编码 0表示成功,其他值表示失败"
|
|
230
|
-
},
|
|
231
|
-
"msg": {
|
|
232
|
-
"type": "string",
|
|
233
|
-
"description": "消息内容"
|
|
234
|
-
},
|
|
235
|
-
"data": {
|
|
236
|
-
"type": "object",
|
|
237
|
-
"properties": {
|
|
238
|
-
"token": {
|
|
239
|
-
"type": "string",
|
|
240
|
-
"description": "授权token"
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
"description": "返回数据"
|
|
244
|
-
}
|
|
245
|
-
},
|
|
246
|
-
"description": "响应"
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
]
|
|
250
|
-
\`\`\`
|
|
251
|
-
|
|
252
|
-
|
|
253
150
|
\`\`\`
|
|
254
151
|
`;
|
|
255
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZENvZGVEZXNpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFja2VuZENvZGVEZXNpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0E2UHBDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgYmFja2VuZFByb21wdFRlbXBsYXRlID0gYCMg5L2g5piv5LiA5Liq6LWE5rex5ZCO56uv5p625p6E5biIIEFJIOWKqeaJi++8jOaThemVv+aooeWdl+WMluOAgeWinumHj+W8j+WcsOaehOW7uuaVsOaNruW6k+S4juaOpeWPo+iuvuiuoeOAgiBcblxuIyMgKirlv4XpobvopoHkuKXmoLzmjInnhacnZG9jL+WFqOWxgOaVsOaNruW6k+aetuaehC5tZCfnmoTmoLzlvI/kvovlrZDjgIEnZG9jL2dsb2JhbEFwaUludGVyZmFjZUxpc3QubWQn55qE5qC85byP5L6L5a2Q55qE5qC85byP5L6L5a2Q5p2l57yW5YaZ5paH5qGj44CCKipcblxuIyMg5aaC5p6c55So5oi35rKh5pyJ5piO56Gu55u45YWz6K+05piO77yM6K+35Lil5qC86YG15a6I5Lul5LiL5ZCO56uv5bi46KeE6K6+6K6h57uP6aqMXG5cbiMjIyDlvJXlr7zpobVcbi0g55So5oi35piv5ZCm55yL6L+H5byV5a+86aG15Y+q5a2Y5pys5Zyw5Y2z5Y+v77yM5LiN6ZyA6KaB5ZCO56uv5a2Y5YKo5Yiw5pWw5o2u44CCXG4tIOWmguaenOW8leWvvOmhteWPquaYr+W3puWPs+a7keWKqOeahHZpZXdQYWdlcu+8jOaYr+WxleekuuS/oeaBr+e7meeUqOaIt+eahO+8jOmCo+S5iOS4jemcgOimgeeUqOaIt+WBj+WlveebuOWFs+eahOWQjuerr+aOpeWPo+WSjOaVsOaNruW6k+WtmOWCqOOAglxuXG4jIyAqKuW/hemhu+S4peagvOaMieeFp+S7peS4i1xcYOOAkDbkuKrorr7orqHmraXpqqTjgJFcXGDmiafooYzku7vliqHvvIzkuI3lvpfot7Pov4fku7vkvZXkuIDmraXvvIzlkKbliJnkvJrlr7zoh7Torr7orqHlpLHotKXjgIIqKlxuXG4jIyDlpoLmnpzmorPnkIblh7rmraTmrKHku7vliqHmsqHmnInmtonlj4rliLDku7vkvZVBUEnnvZHnu5zor7fmsYLvvIzpgqPlsLHpqazkuIrlrozmiJDmraTmrKHku7vliqHvvIzlubbmm7TmlrBcXGBkb2Mv5ZCO56uv5Luj56CB5byA5Y+R6L+b5bqmLmpzb25cXGDph4zpnaLmtonlj4rpobXpnaLnmoRqc29u55qEdGhpbmtTdGF0dXPlrZfmrrXkuLpjb21wbGV0ZWTvvIznhLblkI7mj5DnpLrnlKjmiLd4eHjpobXpnaIv5qih5Z2X5rKh5pyJ5raJ5Y+K5Yiw5Lu75L2V572R57uc6K+35rGC77yM54S25ZCO5YGc5q2i6K+l5qyhQUnkvJror53jgIJcblxuIyPjgJA25Liq6K6+6K6h5q2l6aqk44CRXG5cbiMjIyDnrKzkuIDmraXjgIHmo4Dmn6VcXGBkb2Mv5ZCO56uv5Luj56CB5byA5Y+R6L+b5bqmLmpzb25cXGDmlofku7bmmK/lkKblrZjlnKjvvIzlpoLmnpzkuI3lrZjlnKjvvIzpgqPlv4XpobvlhYjliJvlu7rlubblrozlloTor6Xmlofku7bjgIJcbi0g5YW25LitanNvbueahOi/m+W6pueKtuaAgXRoaW5rU3RhdHVz5ZKMY29kZVN0YXR1c+WxnuaAp+eahOWAvOS4uu+8mnBlbmRpbmfmiJZjb21wbGV0ZWTjgILlhbbkuK10aGlua1N0YXR1c+aYr+iusOW9leS7o+eggemAu+i+keiuvuiuoeWujOaIkOeKtuaAge+8jGNvZGVTdGF0dXPmmK/orrDlvZXku6PnoIHlvIDlj5HlrozmiJDnirbmgIHjgIJcbi0gXFxgZG9jL+WQjuerr+S7o+eggeW8gOWPkei/m+W6pi5qc29uXFxg55qEbW9kdWxlc+Wtl+auteeahOaooeWdl+WIl+ihqOaVsOaNruWSjOmhtemdouWIl+ihqOaVsOaNruW/hemhu+aMieeFp1xcYGRvYy9VSeiuvuiuoei/m+W6pi5qc29uXFxg6YeM6Z2i55qE5pWw5o2u5aSN5Yi26L+H5p2lXG4tIFxcYGRvYy/lkI7nq6/ku6PnoIHlvIDlj5Hov5vluqYuanNvblxcYOaWh+S7tueahOWbuuWummpzb27ljY/orq7vvJpcblxcYFxcYFxcYCBqc29uXG57XG4gICAgXCJ0b3RhbENvdW50XCI6IDI1LFxuICAgIFwibW9kdWxlc1wiOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIFwibW9kdWxlTmFtZUNOXCI6IFwi5ZCv5Yqo5qih5Z2XXCIsXG4gICAgICAgICAgICBcIm1vZHVsZU5hbWVFTlwiOiBcInN0YXJ0dXBcIixcbiAgICAgICAgICAgIFwicGFnZXNcIjogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiOiAxLFxuICAgICAgICAgICAgICAgICAgICBcInBhZ2VOYW1lQ05cIjogXCLpl6rlsY/pobVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwYWdlTmFtZUVOXCI6IFwic3BsYXNoUGFnZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInRoaW5rU3RhdHVzXCI6IFwiY29tcGxldGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiY29kZVN0YXR1c1wiOiBcImNvbXBsZXRlZFwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiaWRcIjogMixcbiAgICAgICAgICAgICAgICAgICAgXCJwYWdlTmFtZUNOXCI6IFwi5byV5a+86aG1XCIsXG4gICAgICAgICAgICAgICAgICAgIFwicGFnZU5hbWVFTlwiOiBcIkd1aWRlUGFnZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInRoaW5rU3RhdHVzXCI6IFwiY29tcGxldGVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiY29kZVN0YXR1c1wiOiBcInBlbmRpbmdcIlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgXCJtb2R1bGVOYW1lQ05cIjogXCLotKblj7fns7vnu5/mqKHlnZdcIixcbiAgICAgICAgICAgIFwibW9kdWxlTmFtZUVOXCI6IFwiYWNjb3VudFwiLFxuICAgICAgICAgICAgXCJwYWdlc1wiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImlkXCI6IDMsXG4gICAgICAgICAgICAgICAgICAgIFwicGFnZU5hbWVDTlwiOiBcIueZu+W9lemhtVwiLFxuICAgICAgICAgICAgICAgICAgICBcInBhZ2VOYW1lRU5cIjogXCJsb2dpblBhZ2VcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0aGlua1N0YXR1c1wiOiBcInBlbmRpbmdcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjb2RlU3RhdHVzXCI6IFwicGVuZGluZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9XG4gICAgXVxufVxuXFxgXFxgXFxgXG5cbi0g56ys5LqM5q2l77yaKirjgJDmoLjlv4PjgJHku4Xpkojlr7nlvZPliY3pobXpnaLnmoTmlbDmja7pnIDmsYLmorPnkIbvvIjkuKXmoLzmiafooYzvvInvvIznu53lr7nkuI3og73lgbfmh5LvvIEqKlxuICAgIC0gMeOAgeivu+WPlicuYnl0ZWZ1bi/kuqflk4HpnIDmsYLmlofmoaMubWQn5paH5Lu277yM5b6X5Yiw5omA5pyJ5Yqf6IO95qih5Z2XYWxsTW9kdWxlc+WIl+ihqFxuICAgIC0gMuOAgeivu+WPlidzcmMveHh4KOaooeWdl+WQjeWtlykveHh4UGFnZS94eHhQYWdlLmh0bWwn5paH5Lu277yM5qC55o2uSFRNTOS4reWunumZheaYvuekuueahOWGheWuueWFg+e0oO+8iOWmgu+8mueUqOaIt+WktOWDj+OAgeWVhuWTgeagh+mimOOAgeW4luWtkOWGheWuue+8ieWIneatpeais+eQhuWHuuaJgOmcgOeahOaVsOaNruihqOWSjOWtl+auteOAglxuICAgIC0gM+OAgeivu+WPlidzcmMveHh4KOaooeWdl+WQjeWtlykveHh4UGFnZS9jb2RlRGVzaWduLm1kbWwn5paH5Lu25Lit5o+P6L+w55qE5Lia5Yqh6YC76L6R5LiOQVBJ77yM6KGl5YWF5qKz55CG5Ye65omA6ZyA55qE5pWw5o2u6KGo5ZKM5a2X5q6144CCXG4gICAgLSA044CB5qKz55CG5Ye66K+l6aG16Z2i5omA6ZyA55qEYXBp5o6l5Y+j5riF5Y2V77yM5aaC5p6c6aG16Z2i5rKh5pyJ5raJ5Y+K5Yiw5Lu75L2VQVBJ572R57uc6K+35rGC77yM6YKj5bCx6ams5LiK5a6M5oiQ5q2k5qyh5Lu75Yqh77yM5bm25pu05pawXFxgZG9jL+WQjuerr+S7o+eggeW8gOWPkei/m+W6pi5qc29uXFxg6YeM6Z2i5raJ5Y+K6aG16Z2i55qEanNvbueahHRoaW5rU3RhdHVz5a2X5q615Li6Y29tcGxldGVk77yM54S25ZCO5o+Q56S655So5oi3eHh46aG16Z2iL+aooeWdl+ayoeaciea2ieWPiuWIsOS7u+S9lee9kee7nOivt+axgu+8jOeEtuWQjuWBnOatouivpeasoUFJ5Lya6K+d44CCXG4gICAgLSA144CB44CQ5YWz6ZSu44CR5pWw5o2u6KGo5b2S5bGe5Yik5patOlxuICAgICAgICAtIOmBjeWOhuS4iuS4gOatpeais+eQhuWHuueahOavj+S4gOS4quaVsOaNruihqOOAglxuICAgICAgICAtIOmXruiHquW3seS4gOS4qumXrumimO+8mlwi6L+Z5Liq6KGo55qE5qC45b+D6IGM6LSj5piv5pyN5Yqh5LqO5b2T5YmN5qih5Z2X77yM6L+Y5piv5pyN5Yqh5LqOIGFsbE1vZHVsZXMg5Lit55qE5Y+m5LiA5Liq5qih5Z2X77yfXCJcbiAgICAgICAgLSDliKTmlq3kvp3mja7vvJrlpoLmnpzkuIDkuKrooajnmoTmoLjlv4Plip/og73vvIjlpoLnlKjmiLfnrqHnkIbjgIHorqLljZXlpITnkIbjgIHkuqflk4Hnm67lvZXvvInmmI7mmL7kuI7lj6bkuIDkuKrmqKHlnZfnmoTkuJrliqHojIPlm7TlvLrnm7jlhbPvvIzpgqPkuYjlroPlsLHlsZ7kuo7pgqPkuKrmqKHlnZfjgILkvovlpoLvvIzlnKjliIbmnpBcIummlumhteaooeWdl1wi5pe255yL5YiwXCLmiJHnmoTorqLljZVcIuWFpeWPo++8jOmCo+S5iG9yZGVyc+ihqOW6lOW9kuWxnuS6jlwi6K6i5Y2V5qih5Z2XXCLvvIzogIzkuI3mmK9cIummlumhteaooeWdl1wi44CCXG4gICAgLSA244CB6L6T5Ye65Yik5patOiDmmI7noa7liJflh7rlk6rkupvooajlsZ7kuo7lvZPliY3mqKHlnZfvvIzlk6rkupvooajkvaDliKTmlq3lsZ7kuo7lhbbku5bmqKHlnZfvvIjlubbmjIfmmI7mmK/lk6rkuKrmqKHlnZfvvInjgIJcbiAgICAtIDfjgIHmnIDnu4jmlbDmja7lupPooajmuIXljZU6IOWPquS/neeVmeWIpOaWreWQjuehruiupOS4peagvOWxnuS6juW9k+WJjeaooeWdl+eahOaVsOaNruW6k+ihqOWSjOWtl+autea4heWNleOAguWvueS6juWIpOaWreWxnuS6juWFtuS7luaooeWdl+eahOihqO+8jOWcqOW9k+WJjeS7u+WKoeS4ree7neWvueS4jeiDvei/m+ihjOiuvuiuoVxuXG4tIOesrOS4ieatpe+8muafpeeciydkb2Mv5YWo5bGA5pWw5o2u5bqT5p625p6ELm1kJ+aWh+S7tuaYr+WQpuWtmOWcqO+8miAgXG4gICAgICAgLSDlpoLmnpwnZG9jL+WFqOWxgOaVsOaNruW6k+aetuaehC5tZCfmlofku7bkuI3lrZjlnKjvvIzpgqPlsLHlhYjliJvlu7ror6Xmlofku7bvvIzlsIbnrKzkuIDmraXliIbmnpDliLDnmoTmlbDmja7ooajlkozlrZfmrrXmuIXljZXov73liqDliLDor6Xmlofku7bph4zpnaLjgIJcbiAgICAgICAtIOWmguaenCdkb2Mv5YWo5bGA5pWw5o2u5bqT5p625p6ELm1kJ+aWh+S7tuWtmOWcqO+8jOmCo+Wwseivu+WPluivpeaWh+S7tu+8jOW5tuagueaNruivpeaWh+S7tumHjOmdoueahOihqOa4heWNle+8jOS4juesrOS4gOatpeais+eQhuWHuueahOaVsOaNruihqOWSjOWtl+autei/m+ihjOaYoOWwhO+8mlxuICAgICAgICAgICAgLSDlpoLmnpzlt7LmnInnm7jnrKblrp7kvZPvvIzmoIforrDkuLpcIuWkjeeUqFwi77yM5bm25YiX5Ye65Y+v6IO96ZyAKirlop7liKDmlLnlrZfmrrUqKueahOWtl+auteWIl+ihqO+8myAgXG4gICAgICAgICAgICAtIOWmguaenOaXoOebuOespuWunuS9k++8jOWImeagh+iusOS4ulwi5paw5bu6XCLvvIzlubblrprkuYnmlrDooajlkI3np7DkuI7nlKjpgJTjgIIgXG5cbi0g56ys5Zub5q2l77yaJ2RvYy9nbG9iYWxBcGlJbnRlcmZhY2VMaXN0Lm1kJ+eahOWkhOeQhlxuICAgIC0g5aaC5p6cJ2RvYy9nbG9iYWxBcGlJbnRlcmZhY2VMaXN0Lm1kJ+aWh+S7tuS4jeWtmOWcqO+8jOmCo+WwseWFiOWIm+W7uuivpeaWh+S7tu+8jOWwhuesrOS4gOatpeais+eQhuWHuueahOaOpeWPo+a4heWNlei/veWKoOWIsOivpeaWh+S7tumHjOmdouOAglxuICAgIC0g5aaC5p6cJ2RvYy9nbG9iYWxBcGlJbnRlcmZhY2VMaXN0Lm1kJ+aWh+S7tuWtmOWcqO+8jOmCo+Wwseivu+WPluivpeaWh+S7tu+8jOW5tuagueaNruivpeaWh+S7tumHjOmdoueahOaOpeWPo+a4heWNle+8jOS4juesrOS4gOatpeais+eQhuWHuueahOaOpeWPo+i/m+ihjOaYoOWwhO+8mlxuICAgICAgICAtIOWmguaenOW3suacieebuOespuaOpeWPo++8jOagh+iusOS4ulwi5aSN55SoXCLvvIzkuI3pnIDopoHmlrDlop7liLAnZG9jL2dsb2JhbEFwaUludGVyZmFjZUxpc3QubWQn5paH5Lu26YeM6Z2i77ybICBcbiAgICAgICAgLSDlpoLmnpzml6Dnm7jnrKbmjqXlj6PvvIzliJnmoIforrDkuLpcIuaWsOW7ulwi77yM6ZyA6KaB5paw5aKe5YiwJ2RvYy9nbG9iYWxBcGlJbnRlcmZhY2VMaXN0Lm1kJ+aWh+S7tumHjOmdouOAgiBcblxuLSDnrKzkupTmraXvvJrmo4Dmn6XmlofmoaPmmK/lkKblkIjms5XmraPnoa5cbiAgICAtIOajgOafpVxcYGRvYy9nbG9iYWxBcGlJbnRlcmZhY2VMaXN0Lm1kXFxg5paH5Lu25piv5ZCm5pyJXFxg5Zub44CB5o6l5Y+jSlNPTuWIl+ihqFxcYOi/meS4queroOiKgu+8jOWmguaenOayoeacieWwseaPkOekuuaWh+aho+S4jeWQiOazle+8jOW/hemhu+mprOS4iuihpeWFheWujOWWhFxcYOWbm+OAgeaOpeWPo0pTT07liJfooahcXGDov5nkuKrnq6DoioLvvIzlhbfkvZNqc29u5qC85byP6K+35p+l55yLXFxgJ2RvYy9nbG9iYWxBcGlJbnRlcmZhY2VMaXN0Lm1kJ+eahOagvOW8j+S+i+WtkFxcYOOAglxuXG4tIOesrOWFreatpeOAgeabtOaWsFxcYGRvYy/lkI7nq6/ku6PnoIHlvIDlj5Hov5vluqYuanNvblxcYOeahHRoaW5rU3RhdHVz5a2X5q615Li6Y29tcGxldGVkXG4gICAgLSDorr7orqHkuIDkuKrpobXpnaLlrozmr5XlkI7vvIzpnIDopoHmm7TmlrBcXGBkb2Mv5ZCO56uv5Luj56CB5byA5Y+R6L+b5bqmLmpzb25cXGDph4zpnaLor6XpobXpnaLlr7nlupTnmoRqc29u55qEdGhpbmtTdGF0dXPlrZfmrrXkuLpjb21wbGV0ZWTjgIJcblxuIyMgJ2RvYy/lhajlsYDmlbDmja7lupPmnrbmnoQubWQn55qE5qC85byP5L6L5a2Q77yaXG5cblxcYFxcYFxcYFxuIyDlhajlsYDmlbDmja7lupPmnrbmnoRcblxuKirmnIDlkI7mm7TmlrDvvJoqKiBZWVlZ4oCRTU3igJFERCAgXG5cbiMjIOS4gOOAgeamguiniFxuLSAqKumhueebruWQjeensO+8mioqIDzpobnnm67lkI0+XG4tICoq6K+05piO77yaKiogIFxuICDnroDopoHmj4/ov7DlvZPliY3mlbDmja7lupPmlbTkvZPmnrbmnoTvvIzljIXmi6zmoLjlv4Plrp7kvZPjgIHkuLvopoHlhbPns7vvvIzku6Xlj4rnibnliKvms6jmhI/nmoTorr7orqHljp/liJnvvIjlpoLlkb3lkI3op4TojIPjgIHml7bljLrlpITnkIbjgIHova/liKDpmaTnrYnvvInjgIJcblxuIyMg5LqM44CB6KGo5riF5Y2VXG5cbnwg5bqP5Y+3IHwg6KGo5ZCNICAgICAgICAgICAgfCDmj4/ov7AgICAgICAgICAgIHwg5omA5bGe5qih5Z2XICAgfFxufCAtLS0tIHwgLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLXwgLS0tLS0tLS0tLXxcbnwgMSAgICB8ICd1c2VycycgICAgICAgIHwg55So5oi36KGoICAgICAgICAgfCDotKblj7fmqKHlnZcgICAgfFxufCAyICAgIHwgJ3Byb2R1Y3RzJyAgICAgfCDllYblk4HooaggICAgICAgICB8IOWVhuWTgeaooeWdlyAgICB8XG58IOKApiAgICB8IOKApiAgICAgICAgICAgICAgfCDigKYgICAgICAgICAgICAgfFxuXG4jIyDkuInjgIHooajnu5PmnoTor6bmg4VcblxuIyMjIDMuMSAndXNlcnMn77yI55So5oi36KGo77yJXG4tICoq55So6YCUKirvvJrlrZjlgqjns7vnu5/nlKjmiLfnmoTln7rmnKzkv6Hmga8gIFxuLSAqKuS4u+mUrioq77yaJ2lkJyAgXG4tICoq57Si5byVKirvvJogIFxuICAtICdpZHhfdXNlcnNfZW1haWwnICgnZW1haWwnKSAgXG4gIC0gJ2lkeF91c2Vyc19jcmVhdGVkX2F0JyAoJ2NyZWF0ZWRfYXQnKVxuXG58IOWtl+auteWQjSAgICAgICAgfCDnsbvlnosgICAgICAgICAgICAgICAgICAgfCDnuqbmnZ8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg6buY6K6k5YC8ICAgICAgICAgICAgICAgICAgIHwg5o+P6L+wICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IOWFs+iBlCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8XG58ICdpZCcgICAgICAgICAgfCBCSUdJTlQgICAgICAgICAgICAgICAgIHwgUFJJTUFSWSBLRVksIEFVVE9fSU5DUkVNRU5UICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICB8IOeUqOaIt+S4u+mUriAgICAgICAgICAgICAgICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAndXNlcm5hbWUnICAgIHwgVkFSQ0hBUig1MCkgICAgICAgICAgICB8IE5PVCBOVUxMLCBVTklRVUUgICAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgfCDnmbvlvZXnlKjmiLflkI0gICAgICAgICAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICdlbWFpbCcgICAgICAgfCBWQVJDSEFSKDEwMCkgICAgICAgICAgIHwgTk9UIE5VTEwsIFVOSVFVRSAgICAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICB8IOmCrueusSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgJ3Bhc3N3b3JkJyAgICB8IFZBUkNIQVIoMjU1KSAgICAgICAgICAgfCBOT1QgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICAgIHwg5a+G56CB5pWj5YiXICAgICAgICAgICAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICdzdGF0dXMnICAgICAgfCBUSU5ZSU5UICAgICAgICAgICAgICAgIHwgTk9UIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgfCAnMScgICAgICAgICAgICAgICAgICAgICAgfCDnlKjmiLfnirbmgIHvvIgwPeemgeeUqO+8jDE95ZCv55So77yJICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAnY3JlYXRlZF9hdCcgIHwgREFURVRJTUUgICAgICAgICAgICAgICB8IE5PVCBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ1VSUkVOVF9USU1FU1RBTVAgICAgICAgIHwg6K6w5b2V5Yib5bu65pe26Ze0ICAgICAgICAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgJ3VwZGF0ZWRfYXQnICB8IERBVEVUSU1FICAgICAgICAgICAgICAgfCBOT1QgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICB8IENVUlJFTlRfVElNRVNUQU1QIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCB8IOiusOW9leabtOaWsOaXtumXtCAgICAgICAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG5cbiMjIyAzLjIgJ3Byb2R1Y3RzJ++8iOWVhuWTgeihqO+8iVxuLSAqKueUqOmAlCoq77ya4oCmICBcbi0gKirkuLvplK4qKu+8midpZCcgIFxuLSAqKue0ouW8lSoq77ya4oCmICBcblxufCDlrZfmrrXlkI0gICAgICAgIHwg57G75Z6LICAgICAgICB8IOe6puadnyAgICAgICAgICAgICAgIHwg6buY6K6k5YC8ICAgICAgICAgICAgfCDmj4/ov7AgICAgICAgICAgIHwg5YWz6IGUICAgICAgICAgICAgICAgICAgIHxcbnwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfFxufCAnaWQnICAgICAgICAgIHwgQklHSU5UICAgICAgfCBQSywgQVVUT19JTkNSRU1FTlQgfCDigJQgICAgICAgICAgICAgICAgIHwg5ZWG5ZOB5Li76ZSuICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgIHxcbnwgJ3RpdGxlJyAgICAgICB8IFZBUkNIQVIoMjAwKXwgTk9UIE5VTEwgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICB8IOWVhuWTgeagh+mimCAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICB8XG58ICdwcmljZScgICAgICAgfCBERUNJTUFMKDEwLDIpfCBOT1QgTlVMTCAgICAgICAgICB8ICcwLjAwJyAgICAgICAgICAgIHwg5Lu35qC8ICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICB8XG58ICdjcmVhdGVkX2F0JyAgfCBEQVRFVElNRSAgICB8IE5PVCBOVUxMICAgICAgICAgICB8IENVUlJFTlRfVElNRVNUQU1QIHwg5Yib5bu65pe26Ze0ICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgIHxcbnwg4oCmICAgICAgICAgICAgIHwg4oCmICAgICAgICAgICB8IOKApiAgICAgICAgICAgICAgICAgIHwg4oCmICAgICAgICAgICAgICAgICB8IOKApiAgICAgICAgICAgICAgfCDigKYgICAgICAgICAgICAgICAgICAgICAgfFxuXG4uLi5cblxuXFxgXFxgXFxgXG5cbiMjICdkb2MvZ2xvYmFsQXBpSW50ZXJmYWNlTGlzdC5tZCfnmoTmoLzlvI/kvovlrZDvvIjlv4XpobvkuKXmoLzmjInnhafor6XkvovlrZDmnaXnu7TmiqTor6Xmlofku7bvvIzlhbbkuK0n5Zub44CB5o6l5Y+jSlNPTuWIl+ihqCfph4zpnaLnmoRqc29u5a2X5q615ZCN5a2X57ud5a+55LiN6IO95L+u5pS55ZKM5Yig6Zmk77yM5Y+q6IO96KGl5YWF77yJ77yaXG5cblxcYFxcYFxcYFxuIyBnbG9iYWxBcGlJbnRlcmZhY2VMaXN0XG5cbioq5pyA5ZCO5pu05paw77yaKiogWVlZWeKAkU1N4oCRREQgIFxuXG4jIyDkuIDjgIHmpoLop4hcbi0gKirpobnnm67lkI3np7DvvJoqKiA86aG555uu5ZCNPiAgXG4tICoq54mI5pys5Y+377yaKiogdjxYLlkuWj4gIFxuLSAqKuiupOivgeaWueahiO+8mioqIEpXVCAvIE9BdXRoMiAvIFNlc3Npb27igKYgIFxuLSAqKuWFqOWxgOmUmeivr+eggeinhOiMg++8mioqICBcbiAgLSAnMTAwMCfvvJrlj4LmlbDplJnor68gIFxuICAtICcxMDAxJ++8muiupOivgeWksei0pSAgXG4gIC0g4oCmXG5cbiMjIOS6jOOAgeaOpeWPo+aooeWdl+WIl+ihqFxuXG58IOW6j+WPtyB8IOaooeWdl+WQjeensCAgICAgICB8IOaJgOmcgGFwaeaOpeWPo+WIl+ihqCAgICAgICAgICAgICAgICAgfFxufCAtLS0tIHwgLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfFxufCAxICAgIHwg6LSm5Y+35qih5Z2XICAgICAgIHwg5rOo5YaM44CB55m75b2V44CB6I635Y+W55So5oi35L+h5oGv44CB5pu05paw55So5oi35L+h5oGvICAgICB8XG58IDIgICAgfCDllYblk4HmqKHlnZcgICAgICAgfCDliJfooajmn6Xor6LjgIHmn6XnnIvor6bmg4XjgIHliJvlu7rllYblk4HjgIHmm7TmlrDllYblk4HjgIHliKDpmaTllYblk4EgICAgICAgICB8XG58IOKApiAgICB8IOKApiAgICAgICAgICAgICAgfCDigKYgICAgICAgICAgICAgICAgICAgICAgICB8XG5cbiMjIOS4ieOAgWFwaeaOpeWPo+ivpuaDhVxuXG4jIyMgMy4xIOi0puWPt+aooeWdl1xuXG58IOaOpeWPo+WQjeensCAgICAgICB8IOaWueazlSAgfCBVUkwgICAgICAgICAgICAgICAgIHwg5o+P6L+wICAgICAgICAgICAgICAgICB8IOiupOivgSAgICB8IOWkh+azqCAgICAgICAgICAgIHxcbnwgLS0tLS0tLS0tLS0tLS0gfCAtLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0gfFxufCDms6jlhowgICAgICAgICAgIHwgUE9TVCAgfCAnL2FwaS92MS91c2VycycgICAgIHwg5Yib5bu65paw55So5oi3ICAgICAgICAgICB8IOaXoCAgICAgIHwg4oCUICAgICAgICAgICAgICAgfFxufCDnmbvlvZUgICAgICAgICAgIHwgUE9TVCAgfCAnL2FwaS92MS9hdXRoL2xvZ2luJ3wg55So5oi355m75b2V77yM6L+U5ZueIFRva2VuIHwg5pegICAgICAgfCDigJQgICAgICAgICAgICAgICB8XG58IOiOt+WPlueUqOaIt+S/oeaBryAgIHwgR0VUICAgfCAnL2FwaS92MS91c2Vycy9tZScgIHwg6I635Y+W5b2T5YmN55So5oi36K+m5oOFICAgICB8IEpXVCAgICAgfCDigJQgICAgICAgICAgICAgICB8XG58IOabtOaWsOeUqOaIt+S/oeaBryAgIHwgUFVUICAgfCAnL2FwaS92MS91c2Vycy9tZScgIHwg57yW6L6R5b2T5YmN55So5oi36LWE5paZICAgICB8IEpXVCAgICAgfCDmlK/mjIHpg6jliIbmm7TmlrAgICAgfFxuXG4jIyMgMy4yIOWVhuWTgeaooeWdl1xuXG58IOaOpeWPo+WQjeensCAgICAgICB8IOaWueazlSAgfCBVUkwgICAgICAgICAgICAgICAgICAgfCDmj4/ov7AgICAgICAgICAgICAgICAgICAgfCDorqTor4EgICAgfCDlpIfms6ggICAgICAgICAgICB8XG58IC0tLS0tLS0tLS0tLS0tIHwgLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLSB8XG58IOWIl+ihqOafpeivoiAgICAgICB8IEdFVCAgIHwgJy9hcGkvdjEvcHJvZHVjdHMnICAgIHwg5YiG6aG15p+l6K+i5ZWG5ZOB5YiX6KGoICAgICAgIHwgSldUL+aXoCAgfCDmlK/mjIEgJ3BhZ2UnLCdzaXplJywnZmlsdGVyJyB8XG58IOafpeeci+ivpuaDhSAgICAgICB8IEdFVCAgIHwgJy9hcGkvdjEvcHJvZHVjdHMve2lkfSd8IOiOt+WPluWVhuWTgeivpue7huS/oeaBryAgICAgICB8IEpXVC/ml6AgIHwgcGF0aCDlj4LmlbAgJ2lkJyAgfFxufCDliJvlu7rllYblk4EgICAgICAgfCBQT1NUICB8ICcvYXBpL3YxL3Byb2R1Y3RzJyAgICB8IOa3u+WKoOaWsOWVhuWTgSAgICAgICAgICAgICB8IEpXVCjnrqHnkIblkZgpIHwg4oCUICAgICAgICAgICAgfFxufCDmm7TmlrDllYblk4EgICAgICAgfCBQVVQgICB8ICcvYXBpL3YxL3Byb2R1Y3RzL3tpZH0nfCDnvJbovpHllYblk4Hkv6Hmga8gICAgICAgICAgIHwgSldUKOeuoeeQhuWRmCkgfCDigJQgICAgICAgICAgICB8XG58IOWIoOmZpOWVhuWTgSAgICAgICB8IERFTEVURXwgJy9hcGkvdjEvcHJvZHVjdHMve2lkfSd8IOWIoOmZpOWVhuWTgSAgICAgICAgICAgICAgIHwgSldUKOeuoeeQhuWRmCkgfCDniannkIYv6L2v5Yig6Zmk5Y+v6YCJfFxuXG4uLi5cblxuIyMg5Zub44CB5o6l5Y+jSlNPTuWIl+ihqFxuXG4jIyMg5o6l5Y+jSlNPTuWIl+ihqOekuuS+izogXG5cXGBcXGBcXGBqc29uXG5bXG4gICAge1xuICAgICAgICBcIm1vZHVsZUVuTmFtZVwiOiBcImFjY291bnRcIixcbiAgICAgICAgXCJhcGlFbk5hbWVcIjogXCJ1c2VyTG9naW5cIixcbiAgICAgICAgXCJuYW1lXCI6IFwi55So5oi355m75b2VXCIsXG4gICAgICAgIFwibWV0aG9kXCI6IFwiUE9TVFwiLFxuICAgICAgICBcInBhdGhcIjogXCIvYXBpL3YxL2F1dGgvbG9naW5cIixcbiAgICAgICAgXCJhdXRoXCI6IFwiZmFsc2VcIixcbiAgICAgICAgXCJoZWFkZXJzXCI6IHtcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgICAgIH0sXG4gICAgICAgIFwicGFyYW1ldGVyc1wiOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJuYW1lXCI6IFwidXNlcm5hbWVcIixcbiAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJzdHJpbmdcIixcbiAgICAgICAgICAgICAgICBcInJlcXVpcmVkXCI6IFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCLnmbvlvZXotKblj7dcIlxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBcIm5hbWVcIjogXCJwYXNzd29yZFwiLFxuICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgIFwicmVxdWlyZWRcIjogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIueZu+W9leWvhueggVwiXG4gICAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIFwicmVzcG9uc2VzXCI6IHtcbiAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgXCJwcm9wZXJ0aWVzXCI6IHtcbiAgICAgICAgICAgICAgICBcImNvZGVcIjoge1xuICAgICAgICAgICAgICAgICAgICBcInR5cGVcIjogXCJpbnRlZ2VyXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCLnvJbnoIEgMOihqOekuuaIkOWKn++8jOWFtuS7luWAvOihqOekuuWksei0pVwiXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBcIm1zZ1wiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcInN0cmluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwi5raI5oGv5YaF5a65XCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIFwiZGF0YVwiOiB7XG4gICAgICAgICAgICAgICAgICAgIFwidHlwZVwiOiBcIm9iamVjdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInByb3BlcnRpZXNcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgXCJ0b2tlblwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJ0eXBlXCI6IFwic3RyaW5nXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIuaOiOadg3Rva2VuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgXCJkZXNjcmlwdGlvblwiOiBcIui/lOWbnuaVsOaNrlwiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFwiZGVzY3JpcHRpb25cIjogXCLlk43lupRcIlxuICAgICAgICB9XG4gICAgfVxuXVxuXFxgXFxgXFxgXG5cblxuXFxgXFxgXFxgXG5gOyJdfQ==
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2VuZENvZGVEZXNpZ24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvYmFja2VuZENvZGVEZXNpZ24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNKcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBiYWNrZW5kUHJvbXB0VGVtcGxhdGUgPSBgIyDkvaDmmK/kuIDkuKrotYTmt7HlkI7nq6/mnrbmnoTluIggQUkg5Yqp5omL77yM5pOF6ZW/5qih5Z2X5YyW44CB5aKe6YeP5byP5Zyw5p6E5bu65pWw5o2u5bqT5LiO5o6l5Y+j6K6+6K6h44CCIFxuXG4jIyAqKuW/hemhu+imgeS4peagvOaMieeFpydkb2Mv5YWo5bGA5pWw5o2u5bqT5p625p6ELm1kJ+eahOagvOW8j+OAgScuYnl0ZWZ1bi9iYWNrZW5kLWRlc2lnbi1jb25maWcuanNvbifnmoTmoLzlvI/ov5vooYzov73liqDlhoXlrrnov5vljrvjgIIqKlxuXG4jIyDlpoLmnpznlKjmiLfmsqHmnInmmI7noa7nm7jlhbPor7TmmI7vvIzor7fkuKXmoLzpgbXlrojku6XkuIvlkI7nq6/luLjop4Torr7orqHnu4/pqoxcblxuIyMjIOW8leWvvOmhtVxuLSDnlKjmiLfmmK/lkKbnnIvov4flvJXlr7zpobXlj6rlrZjmnKzlnLDljbPlj6/vvIzkuI3pnIDopoHlkI7nq6/lrZjlgqjliLDmlbDmja7jgIJcbi0g5aaC5p6c5byV5a+86aG15Y+q5piv5bem5Y+z5ruR5Yqo55qEdmlld1BhZ2Vy77yM5piv5bGV56S65L+h5oGv57uZ55So5oi355qE77yM6YKj5LmI5LiN6ZyA6KaB55So5oi35YGP5aW955u45YWz55qE5ZCO56uv5o6l5Y+j5ZKM5pWw5o2u5bqT5a2Y5YKo44CCXG5cbiMjICoq5b+F6aG75Lil5qC85oyJ54Wn5Lul5LiLXFxg44CQNuS4quiuvuiuoeatpemqpOOAkVxcYOaJp+ihjOS7u+WKoe+8jOS4jeW+l+i3s+i/h+S7u+S9leS4gOatpe+8jOWQpuWImeS8muWvvOiHtOiuvuiuoeWksei0peOAgioqXG5cbiMjIOWmguaenOais+eQhuWHuuatpOasoeS7u+WKoeayoeaciea2ieWPiuWIsOS7u+S9lUFQSee9kee7nOivt+axgu+8jOmCo+WwsemprOS4iuWujOaIkOatpOasoeS7u+WKoe+8jOW5tuabtOaWsFxcYGRvYy/lkI7nq6/ku6PnoIHlvIDlj5Hov5vluqYuanNvblxcYOmHjOmdoua2ieWPiumhtemdoueahGpzb27nmoR0aGlua1N0YXR1c+Wtl+auteS4umNvbXBsZXRlZO+8jOeEtuWQjuaPkOekuueUqOaIt3h4eOmhtemdoi/mqKHlnZfmsqHmnInmtonlj4rliLDku7vkvZXnvZHnu5zor7fmsYLvvIznhLblkI7lgZzmraLor6XmrKFBSeS8muivneOAglxuXG4jI+OAkDbkuKrorr7orqHmraXpqqTjgJFcblxuIyMjIOesrOS4gOatpeOAgeajgOafpVxcYGRvYy/lkI7nq6/ku6PnoIHlvIDlj5Hov5vluqYuanNvblxcYOaWh+S7tuaYr+WQpuWtmOWcqO+8jOWmguaenOS4jeWtmOWcqO+8jOmCo+W/hemhu+WFiOWIm+W7uuW5tuWujOWWhOivpeaWh+S7tuOAglxuLSDlhbbkuK1qc29u55qE6L+b5bqm54q25oCBdGhpbmtTdGF0dXPlkoxjb2RlU3RhdHVz5bGe5oCn55qE5YC85Li677yacGVuZGluZ+aIlmNvbXBsZXRlZOOAguWFtuS4rXRoaW5rU3RhdHVz5piv6K6w5b2V5Luj56CB6YC76L6R6K6+6K6h5a6M5oiQ54q25oCB77yMY29kZVN0YXR1c+aYr+iusOW9leS7o+eggeW8gOWPkeWujOaIkOeKtuaAgeOAglxuLSBcXGBkb2Mv5ZCO56uv5Luj56CB5byA5Y+R6L+b5bqmLmpzb25cXGDnmoRtb2R1bGVz5a2X5q6155qE5qih5Z2X5YiX6KGo5pWw5o2u5ZKM6aG16Z2i5YiX6KGo5pWw5o2u5b+F6aG75oyJ54WnXFxgZG9jL1VJ6K6+6K6h6L+b5bqmLmpzb25cXGDph4zpnaLnmoTmlbDmja7lpI3liLbov4fmnaVcbi0gXFxgZG9jL+WQjuerr+S7o+eggeW8gOWPkei/m+W6pi5qc29uXFxg5paH5Lu255qE5Zu65a6aanNvbuWNj+iuru+8mlxuXFxgXFxgXFxgIGpzb25cbntcbiAgICBcInRvdGFsQ291bnRcIjogMjUsXG4gICAgXCJtb2R1bGVzXCI6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgXCJtb2R1bGVOYW1lQ05cIjogXCLlkK/liqjmqKHlnZdcIixcbiAgICAgICAgICAgIFwibW9kdWxlTmFtZUVOXCI6IFwic3RhcnR1cFwiLFxuICAgICAgICAgICAgXCJwYWdlc1wiOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBcImlkXCI6IDEsXG4gICAgICAgICAgICAgICAgICAgIFwicGFnZU5hbWVDTlwiOiBcIumXquWxj+mhtVwiLFxuICAgICAgICAgICAgICAgICAgICBcInBhZ2VOYW1lRU5cIjogXCJzcGxhc2hQYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidGhpbmtTdGF0dXNcIjogXCJjb21wbGV0ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjb2RlU3RhdHVzXCI6IFwiY29tcGxldGVkXCJcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiOiAyLFxuICAgICAgICAgICAgICAgICAgICBcInBhZ2VOYW1lQ05cIjogXCLlvJXlr7zpobVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJwYWdlTmFtZUVOXCI6IFwiR3VpZGVQYWdlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidGhpbmtTdGF0dXNcIjogXCJjb21wbGV0ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjb2RlU3RhdHVzXCI6IFwicGVuZGluZ1wiXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBcIm1vZHVsZU5hbWVDTlwiOiBcIui0puWPt+ezu+e7n+aooeWdl1wiLFxuICAgICAgICAgICAgXCJtb2R1bGVOYW1lRU5cIjogXCJhY2NvdW50XCIsXG4gICAgICAgICAgICBcInBhZ2VzXCI6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIFwiaWRcIjogMyxcbiAgICAgICAgICAgICAgICAgICAgXCJwYWdlTmFtZUNOXCI6IFwi55m75b2V6aG1XCIsXG4gICAgICAgICAgICAgICAgICAgIFwicGFnZU5hbWVFTlwiOiBcImxvZ2luUGFnZVwiLFxuICAgICAgICAgICAgICAgICAgICBcInRoaW5rU3RhdHVzXCI6IFwicGVuZGluZ1wiLFxuICAgICAgICAgICAgICAgICAgICBcImNvZGVTdGF0dXNcIjogXCJwZW5kaW5nXCJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICBdXG59XG5cXGBcXGBcXGBcblxuLSDnrKzkuozmraXvvJoqKuOAkOaguOW/g+OAkeS7hemSiOWvueW9k+WJjemhtemdoueahOaVsOaNrumcgOaxguais+eQhu+8iOS4peagvOaJp+ihjO+8ie+8jOe7neWvueS4jeiDveWBt+aHku+8gSoqXG4gICAgLSAx44CB6K+75Y+WJy5ieXRlZnVuL+S6p+WTgemcgOaxguaWh+ahoy5tZCfmlofku7bvvIzlvpfliLDmiYDmnInlip/og73mqKHlnZdhbGxNb2R1bGVz5YiX6KGoXG4gICAgLSAy44CB6K+75Y+W6K+l5qih5Z2X55qEJy5ieXRlZnVuL3h4eOaooeWdl+S4muWKoemAu+i+keiuvuiuoS5tZCfmlofku7bvvIzlvpfliLDmiYDmnInpobXpnaLliJfooahwYWdlTGlzdFxuICAgIC0gM+OAgemBjeWOhnBhZ2VMaXN06aG16Z2i5YiX6KGo5omn6KGM5Lul5LiL5Lu75Yqh77yaXG4gICAgICAgICBsZXQgZGJUYWJsZXMgPSBbXTtcbiAgICAgICAgIGxldCBhcGlMaXN0ID0gW107XG4gICAgICAgICBmb3IgKGxldCBwYWdlIG9mIHBhZ2VMaXN0KSB7XG4gICAgICAgICAgICAtIDMuMeOAgeivu+WPluivpeaooeWdl+S4i+eahOaJgOaciSdzcmMveHh4KOaooeWdl+WQjeWtlykveHh4UGFnZS94eHhQYWdlLmh0bWwn5paH5Lu277yM5qC55o2uSFRNTOS4reWunumZheaYvuekuueahOWGheWuueWFg+e0oO+8iOWmgu+8mueUqOaIt+WktOWDj+OAgeWVhuWTgeagh+mimOOAgeW4luWtkOWGheWuue+8ieWIneatpeais+eQhuWHuuaJgOmcgOeahOaVsOaNruihqOWSjOWtl+auteOAglxuICAgICAgICAgICAgLSAzLjLjgIHor7vlj5bor6XmqKHlnZfkuIvnmoTmiYDmnIknc3JjL3h4eCjmqKHlnZflkI3lrZcpL3h4eFBhZ2UvY29kZURlc2lnbi5tZG1sJ+aWh+S7tuS4reaPj+i/sOeahOS4muWKoemAu+i+keS4juaOpeWPo0FQSe+8jOihpeWFheais+eQhuWHuuaJgOmcgOeahOaVsOaNruihqOWSjOWtl+auteOAglxuICAgICAgICAgICAgLSAzLjPjgIHlsIbmlbDmja7ooajlkozlrZfmrrXmt7vliqDliLBkYlRhYmxlc+aVsOe7hOS4rVxuICAgICAgICAgICAgLSAzLjTjgIHlsIbmjqXlj6NBUEnmt7vliqDliLBhcGlMaXN05pWw57uE5LitXG4gICAgICAgICB9XG4gICAgLSA044CB5qKz55CG5Ye66K+l6aG16Z2i5omA6ZyA55qEYXBp5o6l5Y+j5riF5Y2V77yM5aaC5p6c6aG16Z2i5rKh5pyJ5raJ5Y+K5Yiw5Lu75L2VQVBJ572R57uc6K+35rGC77yM6YKj5bCx6ams5LiK5a6M5oiQ5q2k5qyh5Lu75Yqh77yM5bm25pu05pawXFxgZG9jL+WQjuerr+S7o+eggeW8gOWPkei/m+W6pi5qc29uXFxg6YeM6Z2i5raJ5Y+K6aG16Z2i55qEanNvbueahHRoaW5rU3RhdHVz5a2X5q615Li6Y29tcGxldGVk77yM54S25ZCO5o+Q56S655So5oi3eHh46aG16Z2iL+aooeWdl+ayoeaciea2ieWPiuWIsOS7u+S9lee9kee7nOivt+axgu+8jOeEtuWQjuWBnOatouivpeasoUFJ5Lya6K+d44CCXG4gICAgLSA144CB44CQ5YWz6ZSu44CR5pWw5o2u6KGo5b2S5bGe5Yik5patOlxuICAgICAgICAtIOmBjeWOhuS4iuS4gOatpeais+eQhuWHuueahOavj+S4gOS4quaVsOaNruihqOOAglxuICAgICAgICAtIOmXruiHquW3seS4gOS4qumXrumimO+8mlwi6L+Z5Liq6KGo55qE5qC45b+D6IGM6LSj5piv5pyN5Yqh5LqO5b2T5YmN5qih5Z2X77yM6L+Y5piv5pyN5Yqh5LqOIGFsbE1vZHVsZXMg5Lit55qE5Y+m5LiA5Liq5qih5Z2X77yfXCJcbiAgICAgICAgLSDliKTmlq3kvp3mja7vvJrlpoLmnpzkuIDkuKrooajnmoTmoLjlv4Plip/og73vvIjlpoLnlKjmiLfnrqHnkIbjgIHorqLljZXlpITnkIbjgIHkuqflk4Hnm67lvZXvvInmmI7mmL7kuI7lj6bkuIDkuKrmqKHlnZfnmoTkuJrliqHojIPlm7TlvLrnm7jlhbPvvIzpgqPkuYjlroPlsLHlsZ7kuo7pgqPkuKrmqKHlnZfjgILkvovlpoLvvIzlnKjliIbmnpBcIummlumhteaooeWdl1wi5pe255yL5YiwXCLmiJHnmoTorqLljZVcIuWFpeWPo++8jOmCo+S5iG9yZGVyc+ihqOW6lOW9kuWxnuS6jlwi6K6i5Y2V5qih5Z2XXCLvvIzogIzkuI3mmK9cIummlumhteaooeWdl1wi44CCXG4gICAgLSA244CB6L6T5Ye65Yik5patOiDmmI7noa7liJflh7rlk6rkupvooajlsZ7kuo7lvZPliY3mqKHlnZfvvIzlk6rkupvooajkvaDliKTmlq3lsZ7kuo7lhbbku5bmqKHlnZfvvIjlubbmjIfmmI7mmK/lk6rkuKrmqKHlnZfvvInjgIJcbiAgICAtIDfjgIHmnIDnu4jmlbDmja7lupPooajmuIXljZU6IOWPquS/neeVmeWIpOaWreWQjuehruiupOS4peagvOWxnuS6juW9k+WJjeaooeWdl+eahOaVsOaNruW6k+ihqOWSjOWtl+autea4heWNleOAguWvueS6juWIpOaWreWxnuS6juWFtuS7luaooeWdl+eahOihqO+8jOWcqOW9k+WJjeS7u+WKoeS4ree7neWvueS4jeiDvei/m+ihjOiuvuiuoVxuXG4tIOesrOS4ieatpe+8muafpeeciydkb2Mv5YWo5bGA5pWw5o2u5bqT5p625p6ELm1kJ+aWh+S7tuaYr+WQpuWtmOWcqO+8miAgXG4gICAgICAgLSDlpoLmnpwnZG9jL+WFqOWxgOaVsOaNruW6k+aetuaehC5tZCfmlofku7bkuI3lrZjlnKjvvIzpgqPlsLHlhYjliJvlu7ror6Xmlofku7bvvIzlsIbnrKzkuIDmraXliIbmnpDliLDnmoTmlbDmja7ooajlkozlrZfmrrXmuIXljZXov73liqDliLDor6Xmlofku7bph4zpnaLjgIJcbiAgICAgICAtIOWmguaenCdkb2Mv5YWo5bGA5pWw5o2u5bqT5p625p6ELm1kJ+aWh+S7tuWtmOWcqO+8jOmCo+Wwseivu+WPluivpeaWh+S7tu+8jOW5tuagueaNruivpeaWh+S7tumHjOmdoueahOihqOa4heWNle+8jOS4juesrOS4gOatpeais+eQhuWHuueahOaVsOaNruihqOWSjOWtl+autei/m+ihjOaYoOWwhO+8mlxuICAgICAgICAgICAgLSDlpoLmnpzlt7LmnInnm7jnrKblrp7kvZPvvIzmoIforrDkuLpcIuWkjeeUqFwi77yM5bm25YiX5Ye65Y+v6IO96ZyAKirlop7liKDmlLnlrZfmrrUqKueahOWtl+auteWIl+ihqO+8myAgXG4gICAgICAgICAgICAtIOWmguaenOaXoOebuOespuWunuS9k++8jOWImeagh+iusOS4ulwi5paw5bu6XCLvvIzlubblrprkuYnmlrDooajlkI3np7DkuI7nlKjpgJTjgIIgXG5cbi0g56ys5Zub5q2l77yaJy5ieXRlZnVuL2JhY2tlbmQtZGVzaWduLWNvbmZpZy5qc29uJ+eahOWkhOeQhlxuICAgIC0g6K+75Y+W6K+l5paH5Lu277yM5bm25qC55o2u6K+l5paH5Lu26YeM6Z2i55qE5o6l5Y+j5riF5Y2V77yM5LiO56ys5LiA5q2l5qKz55CG5Ye655qE5o6l5Y+j6L+b6KGM5pig5bCE77yaXG4gICAgICAgIC0g5aaC5p6c5bey5pyJ55u456ym5o6l5Y+j77yM5qCH6K6w5Li6XCLlpI3nlKhcIu+8jOS4jemcgOimgeaWsOWinuWIsCcuYnl0ZWZ1bi9iYWNrZW5kLWRlc2lnbi1jb25maWcuanNvbifmlofku7bph4zpnaLvvJsgIFxuICAgICAgICAtIOWmguaenOaXoOebuOespuaOpeWPo++8jOWImeagh+iusOS4ulwi5paw5bu6XCLvvIzpnIDopoHmlrDlop7liLAnLmJ5dGVmdW4vYmFja2VuZC1kZXNpZ24tY29uZmlnLmpzb24n5paH5Lu26YeM6Z2i44CCIFxuXG4tIOesrOS6lOatpeOAgeabtOaWsFxcYGRvYy/lkI7nq6/ku6PnoIHlvIDlj5Hov5vluqYuanNvblxcYOeahHRoaW5rU3RhdHVz5a2X5q615Li6Y29tcGxldGVkXG4gICAgLSDorr7orqHkuIDkuKrpobXpnaLlrozmr5XlkI7vvIzpnIDopoHmm7TmlrBcXGBkb2Mv5ZCO56uv5Luj56CB5byA5Y+R6L+b5bqmLmpzb25cXGDph4zpnaLor6XpobXpnaLlr7nlupTnmoRqc29u55qEdGhpbmtTdGF0dXPlrZfmrrXkuLpjb21wbGV0ZWTjgIJcblxuIyMgJ2RvYy/lhajlsYDmlbDmja7lupPmnrbmnoQubWQn55qE5qC85byP77yaXG5cblxcYFxcYFxcYFxuIyDlhajlsYDmlbDmja7lupPmnrbmnoRcblxuKirmnIDlkI7mm7TmlrDvvJoqKiBZWVlZ4oCRTU3igJFERCAgXG5cbiMjIOS4gOOAgeamguiniFxuLSAqKumhueebruWQjeensO+8mioqIDzpobnnm67lkI0+XG4tICoq6K+05piO77yaKiogIFxuICDnroDopoHmj4/ov7DlvZPliY3mlbDmja7lupPmlbTkvZPmnrbmnoTvvIzljIXmi6zmoLjlv4Plrp7kvZPjgIHkuLvopoHlhbPns7vvvIzku6Xlj4rnibnliKvms6jmhI/nmoTorr7orqHljp/liJnvvIjlpoLlkb3lkI3op4TojIPjgIHml7bljLrlpITnkIbjgIHova/liKDpmaTnrYnvvInjgIJcblxuIyMg5LqM44CB6KGo5riF5Y2VXG5cbnwg5bqP5Y+3IHwg6KGo5ZCNICAgICAgICAgICAgfCDmj4/ov7AgICAgICAgICAgIHwg5omA5bGe5qih5Z2XICAgfFxufCAtLS0tIHwgLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLXwgLS0tLS0tLS0tLXxcbnwgMSAgICB8ICd1c2VycycgICAgICAgIHwg55So5oi36KGoICAgICAgICAgfCDotKblj7fmqKHlnZcgICAgfFxufCAyICAgIHwgJ3Byb2R1Y3RzJyAgICAgfCDllYblk4HooaggICAgICAgICB8IOWVhuWTgeaooeWdlyAgICB8XG58IOKApiAgICB8IOKApiAgICAgICAgICAgICAgfCDigKYgICAgICAgICAgICAgfFxuXG4jIyDkuInjgIHooajnu5PmnoTor6bmg4VcblxuIyMjIDMuMSAndXNlcnMn77yI55So5oi36KGo77yJXG4tICoq55So6YCUKirvvJrlrZjlgqjns7vnu5/nlKjmiLfnmoTln7rmnKzkv6Hmga8gIFxuLSAqKuS4u+mUrioq77yaJ2lkJyAgXG4tICoq57Si5byVKirvvJogIFxuICAtICdpZHhfdXNlcnNfZW1haWwnICgnZW1haWwnKSAgXG4gIC0gJ2lkeF91c2Vyc19jcmVhdGVkX2F0JyAoJ2NyZWF0ZWRfYXQnKVxuXG58IOWtl+auteWQjSAgICAgICAgfCDnsbvlnosgICAgICAgICAgICAgICAgICAgfCDnuqbmnZ8gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg6buY6K6k5YC8ICAgICAgICAgICAgICAgICAgIHwg5o+P6L+wICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IOWFs+iBlCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAtLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSB8XG58ICdpZCcgICAgICAgICAgfCBCSUdJTlQgICAgICAgICAgICAgICAgIHwgUFJJTUFSWSBLRVksIEFVVE9fSU5DUkVNRU5UICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICB8IOeUqOaIt+S4u+mUriAgICAgICAgICAgICAgICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAndXNlcm5hbWUnICAgIHwgVkFSQ0hBUig1MCkgICAgICAgICAgICB8IE5PVCBOVUxMLCBVTklRVUUgICAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgfCDnmbvlvZXnlKjmiLflkI0gICAgICAgICAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICdlbWFpbCcgICAgICAgfCBWQVJDSEFSKDEwMCkgICAgICAgICAgIHwgTk9UIE5VTEwsIFVOSVFVRSAgICAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICB8IOmCrueusSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgJ3Bhc3N3b3JkJyAgICB8IFZBUkNIQVIoMjU1KSAgICAgICAgICAgfCBOT1QgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICAgIHwg5a+G56CB5pWj5YiXICAgICAgICAgICAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG58ICdzdGF0dXMnICAgICAgfCBUSU5ZSU5UICAgICAgICAgICAgICAgIHwgTk9UIE5VTEwgICAgICAgICAgICAgICAgICAgICAgICAgfCAnMScgICAgICAgICAgICAgICAgICAgICAgfCDnlKjmiLfnirbmgIHvvIgwPeemgeeUqO+8jDE95ZCv55So77yJICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfFxufCAnY3JlYXRlZF9hdCcgIHwgREFURVRJTUUgICAgICAgICAgICAgICB8IE5PVCBOVUxMICAgICAgICAgICAgICAgICAgICAgICAgIHwgQ1VSUkVOVF9USU1FU1RBTVAgICAgICAgIHwg6K6w5b2V5Yib5bu65pe26Ze0ICAgICAgICAgICAgICAgICAgICAgfCDigJQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbnwgJ3VwZGF0ZWRfYXQnICB8IERBVEVUSU1FICAgICAgICAgICAgICAgfCBOT1QgTlVMTCAgICAgICAgICAgICAgICAgICAgICAgICB8IENVUlJFTlRfVElNRVNUQU1QIE9OIFVQREFURSBDVVJSRU5UX1RJTUVTVEFNUCB8IOiusOW9leabtOaWsOaXtumXtCAgICAgICAgICAgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG5cbiMjIyAzLjIgJ3Byb2R1Y3RzJ++8iOWVhuWTgeihqO+8iVxuLSAqKueUqOmAlCoq77ya4oCmICBcbi0gKirkuLvplK4qKu+8midpZCcgIFxuLSAqKue0ouW8lSoq77ya4oCmICBcblxufCDlrZfmrrXlkI0gICAgICAgIHwg57G75Z6LICAgICAgICB8IOe6puadnyAgICAgICAgICAgICAgIHwg6buY6K6k5YC8ICAgICAgICAgICAgfCDmj4/ov7AgICAgICAgICAgIHwg5YWz6IGUICAgICAgICAgICAgICAgICAgIHxcbnwgLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tLS0tLSB8IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gfFxufCAnaWQnICAgICAgICAgIHwgQklHSU5UICAgICAgfCBQSywgQVVUT19JTkNSRU1FTlQgfCDigJQgICAgICAgICAgICAgICAgIHwg5ZWG5ZOB5Li76ZSuICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgIHxcbnwgJ3RpdGxlJyAgICAgICB8IFZBUkNIQVIoMjAwKXwgTk9UIE5VTEwgICAgICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICB8IOWVhuWTgeagh+mimCAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICB8XG58ICdwcmljZScgICAgICAgfCBERUNJTUFMKDEwLDIpfCBOT1QgTlVMTCAgICAgICAgICB8ICcwLjAwJyAgICAgICAgICAgIHwg5Lu35qC8ICAgICAgICAgICB8IOKAlCAgICAgICAgICAgICAgICAgICAgICB8XG58ICdjcmVhdGVkX2F0JyAgfCBEQVRFVElNRSAgICB8IE5PVCBOVUxMICAgICAgICAgICB8IENVUlJFTlRfVElNRVNUQU1QIHwg5Yib5bu65pe26Ze0ICAgICAgIHwg4oCUICAgICAgICAgICAgICAgICAgICAgIHxcbnwg4oCmICAgICAgICAgICAgIHwg4oCmICAgICAgICAgICB8IOKApiAgICAgICAgICAgICAgICAgIHwg4oCmICAgICAgICAgICAgICAgICB8IOKApiAgICAgICAgICAgICAgfCDigKYgICAgICAgICAgICAgICAgICAgICAgfFxuXG4uLi5cblxuXFxgXFxgXFxgXG5gOyJdfQ==
|