From e7b6f6fc35424313d1d8994ea0a50248ddcb13c9 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Mon, 17 Jan 2022 16:47:34 +0800 Subject: [PATCH] merge codes --- README.md | 2 +- add.txt | 34 - config/webpack.config.prod.js | 6 +- package-lock.json | 30 +- package.json | 1 - readme.txt | 172 ---- src/App.js | 2 +- src/home/FifthEdition.jsx | 161 ---- src/home/Footnav.jsx | 47 - src/home/Headnav.jsx | 31 - src/home/Img/2-1bg.png | Bin 548068 -> 0 bytes src/home/Img/2-2-1.png | Bin 26336 -> 0 bytes src/home/Img/2-2-2.png | Bin 50181 -> 0 bytes src/home/Img/2-2-3.png | Bin 33170 -> 0 bytes src/home/Img/2-2-head.png | Bin 96884 -> 0 bytes src/home/Img/2-2-ring.png | Bin 4599 -> 0 bytes src/home/Img/2-3-1.png | Bin 89569 -> 0 bytes src/home/Img/2-3-1big.png | Bin 89569 -> 0 bytes src/home/Img/2-3-2.png | Bin 37443 -> 0 bytes src/home/Img/2-3-2的副本.png | Bin 19937 -> 0 bytes src/home/Img/2-3-3.png | Bin 25852 -> 0 bytes src/home/Img/2-3-4.png | Bin 24987 -> 0 bytes src/home/Img/2-3bg.png | Bin 136595 -> 0 bytes src/home/Img/2-4-1.png | Bin 99988 -> 0 bytes src/home/Img/2-4bg.png | Bin 480837 -> 0 bytes src/home/Img/2-5-1.png | Bin 84358 -> 0 bytes src/home/Img/2-5-2.png | Bin 124431 -> 0 bytes src/home/Img/2-5bg.png | Bin 42354 -> 0 bytes src/home/Img/2-6-1.png | Bin 68224 -> 0 bytes src/home/Img/2-6-2.png | Bin 35311 -> 0 bytes src/home/Img/3-1-1.png | Bin 4105 -> 0 bytes src/home/Img/3-1-2.png | Bin 3839 -> 0 bytes src/home/Img/3-1.png | Bin 46579 -> 0 bytes src/home/Img/3-2-1.png | Bin 3058 -> 0 bytes src/home/Img/3-2-2.png | Bin 3394 -> 0 bytes src/home/Img/3-2.png | Bin 54308 -> 0 bytes src/home/Img/3-3-1.png | Bin 3039 -> 0 bytes src/home/Img/3-3-2.png | Bin 2791 -> 0 bytes src/home/Img/3-3.png | Bin 45678 -> 0 bytes src/home/Img/3-4-1.png | Bin 3354 -> 0 bytes src/home/Img/3-4-2.png | Bin 3142 -> 0 bytes src/home/Img/3-4.png | Bin 41782 -> 0 bytes src/home/Img/3-bg.png | Bin 646700 -> 0 bytes src/home/Img/4-1.png | Bin 31749 -> 0 bytes src/home/Img/4-2.png | Bin 40899 -> 0 bytes src/home/Img/4-3.png | Bin 34777 -> 0 bytes src/home/Img/4-4.png | Bin 27967 -> 0 bytes src/home/Img/4-bg.png | Bin 350209 -> 0 bytes src/home/Img/banner1.png | Bin 747128 -> 0 bytes src/home/Img/banner2.png | Bin 424047 -> 0 bytes src/home/Img/banner3.png | Bin 472043 -> 0 bytes src/home/Img/banner4.png | Bin 898196 -> 0 bytes src/home/Img/codeafter.png | Bin 117078 -> 0 bytes src/home/Img/gitlink.png | Bin 2420 -> 0 bytes src/home/Img/left.png | Bin 1018 -> 0 bytes src/home/Img/qq.png | Bin 9293 -> 0 bytes src/home/Img/right.png | Bin 1018 -> 0 bytes src/home/Img/top-1.png | Bin 30448 -> 0 bytes src/home/Img/top-2.png | Bin 31175 -> 0 bytes src/home/Img/top-3.png | Bin 35628 -> 0 bytes src/home/Img/top-bg.png | Bin 85558 -> 0 bytes src/home/Img/unit/BJHKHT.png | Bin 26293 -> 0 bytes src/home/Img/unit/CEC.png | Bin 18016 -> 0 bytes src/home/Img/unit/DD.png | Bin 5747 -> 0 bytes src/home/Img/unit/GFKJ.png | Bin 29319 -> 0 bytes src/home/Img/unit/HSKY.png | Bin 10098 -> 0 bytes src/home/Img/unit/HW.png | Bin 9127 -> 0 bytes src/home/Img/unit/ISCAS.png | Bin 23951 -> 0 bytes src/home/Img/unit/KYRJLM.png | Bin 12432 -> 0 bytes src/home/Img/unit/LC.png | Bin 17211 -> 0 bytes src/home/Img/unit/LSLM.png | Bin 15930 -> 0 bytes src/home/Img/unit/ML.png | Bin 14795 -> 0 bytes src/home/Img/unit/NJDX.png | Bin 30331 -> 0 bytes src/home/Img/unit/QH.png | Bin 23597 -> 0 bytes src/home/Img/unit/QZ.png | Bin 6542 -> 0 bytes src/home/Img/unit/SHJT.png | Bin 18996 -> 0 bytes src/home/Img/unit/TG.png | Bin 7665 -> 0 bytes src/home/Img/unit/TX.png | Bin 10085 -> 0 bytes src/home/Img/unit/WXYJY.png | Bin 11254 -> 0 bytes src/home/Img/unit/XH.png | Bin 13138 -> 0 bytes src/home/Img/unit/XJY.png | Bin 10572 -> 0 bytes src/home/Img/unit/YKD.png | Bin 14726 -> 0 bytes src/home/Img/unit/ZC.png | Bin 17116 -> 0 bytes src/home/Img/unit/beijing.png | Bin 44088 -> 0 bytes src/home/Img/多层次bg@2x.png | Bin 1412635 -> 0 bytes src/home/SecondEdition.jsx | 216 ----- src/home/ThirdEdition.jsx | 219 ----- src/home/TopEdition.jsx | 68 -- src/home/code.scss | 79 -- src/home/index.jsx | 276 +++--- src/home/index.scss | 1414 +++++++------------------------ 91 files changed, 471 insertions(+), 2287 deletions(-) delete mode 100644 add.txt delete mode 100644 readme.txt delete mode 100644 src/home/FifthEdition.jsx delete mode 100644 src/home/Footnav.jsx delete mode 100644 src/home/Headnav.jsx delete mode 100644 src/home/Img/2-1bg.png delete mode 100644 src/home/Img/2-2-1.png delete mode 100644 src/home/Img/2-2-2.png delete mode 100644 src/home/Img/2-2-3.png delete mode 100644 src/home/Img/2-2-head.png delete mode 100644 src/home/Img/2-2-ring.png delete mode 100644 src/home/Img/2-3-1.png delete mode 100644 src/home/Img/2-3-1big.png delete mode 100755 src/home/Img/2-3-2.png delete mode 100644 src/home/Img/2-3-2的副本.png delete mode 100644 src/home/Img/2-3-3.png delete mode 100644 src/home/Img/2-3-4.png delete mode 100644 src/home/Img/2-3bg.png delete mode 100644 src/home/Img/2-4-1.png delete mode 100644 src/home/Img/2-4bg.png delete mode 100644 src/home/Img/2-5-1.png delete mode 100644 src/home/Img/2-5-2.png delete mode 100644 src/home/Img/2-5bg.png delete mode 100644 src/home/Img/2-6-1.png delete mode 100644 src/home/Img/2-6-2.png delete mode 100644 src/home/Img/3-1-1.png delete mode 100644 src/home/Img/3-1-2.png delete mode 100644 src/home/Img/3-1.png delete mode 100644 src/home/Img/3-2-1.png delete mode 100644 src/home/Img/3-2-2.png delete mode 100644 src/home/Img/3-2.png delete mode 100644 src/home/Img/3-3-1.png delete mode 100644 src/home/Img/3-3-2.png delete mode 100644 src/home/Img/3-3.png delete mode 100644 src/home/Img/3-4-1.png delete mode 100644 src/home/Img/3-4-2.png delete mode 100644 src/home/Img/3-4.png delete mode 100644 src/home/Img/3-bg.png delete mode 100644 src/home/Img/4-1.png delete mode 100644 src/home/Img/4-2.png delete mode 100644 src/home/Img/4-3.png delete mode 100644 src/home/Img/4-4.png delete mode 100644 src/home/Img/4-bg.png delete mode 100644 src/home/Img/banner1.png delete mode 100644 src/home/Img/banner2.png delete mode 100644 src/home/Img/banner3.png delete mode 100644 src/home/Img/banner4.png delete mode 100644 src/home/Img/codeafter.png delete mode 100644 src/home/Img/gitlink.png delete mode 100644 src/home/Img/left.png delete mode 100644 src/home/Img/qq.png delete mode 100644 src/home/Img/right.png delete mode 100644 src/home/Img/top-1.png delete mode 100644 src/home/Img/top-2.png delete mode 100644 src/home/Img/top-3.png delete mode 100644 src/home/Img/top-bg.png delete mode 100644 src/home/Img/unit/BJHKHT.png delete mode 100644 src/home/Img/unit/CEC.png delete mode 100644 src/home/Img/unit/DD.png delete mode 100644 src/home/Img/unit/GFKJ.png delete mode 100644 src/home/Img/unit/HSKY.png delete mode 100644 src/home/Img/unit/HW.png delete mode 100644 src/home/Img/unit/ISCAS.png delete mode 100644 src/home/Img/unit/KYRJLM.png delete mode 100644 src/home/Img/unit/LC.png delete mode 100644 src/home/Img/unit/LSLM.png delete mode 100644 src/home/Img/unit/ML.png delete mode 100644 src/home/Img/unit/NJDX.png delete mode 100644 src/home/Img/unit/QH.png delete mode 100644 src/home/Img/unit/QZ.png delete mode 100644 src/home/Img/unit/SHJT.png delete mode 100644 src/home/Img/unit/TG.png delete mode 100644 src/home/Img/unit/TX.png delete mode 100644 src/home/Img/unit/WXYJY.png delete mode 100644 src/home/Img/unit/XH.png delete mode 100644 src/home/Img/unit/XJY.png delete mode 100644 src/home/Img/unit/YKD.png delete mode 100644 src/home/Img/unit/ZC.png delete mode 100644 src/home/Img/unit/beijing.png delete mode 100644 src/home/Img/多层次bg@2x.png delete mode 100644 src/home/SecondEdition.jsx delete mode 100644 src/home/ThirdEdition.jsx delete mode 100644 src/home/TopEdition.jsx delete mode 100644 src/home/code.scss diff --git a/README.md b/README.md index cc5d75f8..58e72b1a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@
1、 安装node v6.9.x;此安装包含了node和npm。
+1、 安装node v12.10.x;此安装包含了node和npm。
2、 安装cnpm(命令行): npm install -g cnpm --registry=https://registry.npm.taobao.org
3、 安装依赖的js库(public/react目录下<即项目package.json所在目录>,开启命令行): cnpm install
4、 如果你的ruby服务使用的是3000端口,则需要在package.json中修改"port"参数的值
diff --git a/add.txt b/add.txt deleted file mode 100644 index 8bd5bb1d..00000000 --- a/add.txt +++ /dev/null @@ -1,34 +0,0 @@ - -新版tpi改动的文件: -Index.js -contex/TPIContextProvider.js -page/main/LeftViewContainer.js -taskList/TaskList.js -TPMIndexHOC.js -App.js -CodeRepositoryViewContainer.js - -Index.js - choose={context.chooses} - - -TPIContextProvider.js - -LeftViewContainer.js - -TaskList.js - -TPMIndexHOC.js - -MainContentContainer - 新:rep_content返回值多了一层 {content: '...'} - - - - -TODO - 待同步 - 1、timer图标样式更换 - index.html - WebSSHTimer.css - WebSSHTimer.js \ No newline at end of file diff --git a/config/webpack.config.prod.js b/config/webpack.config.prod.js index c0ba2bc7..467771a5 100644 --- a/config/webpack.config.prod.js +++ b/config/webpack.config.prod.js @@ -19,8 +19,7 @@ const getClientEnvironment = require("./env"); let publicPath = "/react/build/"; const publicUrl = publicPath.slice(0, -1); -// const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false"; -const shouldUseSourceMap = process.env.NODE_ENV !== "production"; +const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false"; const env = getClientEnvironment(publicPath); // This is the production configuration. @@ -55,8 +54,7 @@ module.exports = { }, bail: true, mode: "production", - // devtool: false, //测试版 - devtool: shouldUseSourceMap?'source-map':false, + devtool: false, //测试版 entry: [require.resolve("./polyfills"), paths.appIndexJs], output: { path: paths.appBuild, diff --git a/package-lock.json b/package-lock.json index 8ed419ba..da6baa38 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4071,16 +4071,18 @@ }, "cross-env": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz", - "integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==", + "resolved": "https://registry.nlark.com/cross-env/download/cross-env-7.0.3.tgz", + "integrity": "sha1-hlJkspZ33AFbqEGJGJZd0jL8VM8=", + "dev": true, "requires": { "cross-spawn": "^7.0.1" }, "dependencies": { "cross-spawn": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "resolved": "https://registry.nlark.com/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, "requires": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", @@ -4089,26 +4091,30 @@ }, "path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + "resolved": "https://registry.nlark.com/path-key/download/path-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true }, "shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "resolved": "https://registry.nlark.com/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, "requires": { "shebang-regex": "^3.0.0" } }, "shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + "resolved": "https://registry.nlark.com/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true }, "which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "resolved": "https://registry.nlark.com/which/download/which-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, "requires": { "isexe": "^2.0.0" } diff --git a/package.json b/package.json index e5d24473..2d378ad2 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,6 @@ "code-prettify": "^0.1.0", "codemirror": "^5.64.0", "connected-react-router": "4.4.1", - "cross-env": "^7.0.3", "css-loader": "^3.5.2", "dompurify": "^2.3.3", "dotenv": "4.0.0", diff --git a/readme.txt b/readme.txt deleted file mode 100644 index e813d22a..00000000 --- a/readme.txt +++ /dev/null @@ -1,172 +0,0 @@ -其他的文档位置: -/educoder/public/react/public/js/readme.txt 关于js_min_all -/educoder/educoder/public/react/scripts/readme-cdn.txt 关于CDN -/educoder/public/react/src/modules/page/readme.txt 关于TPI -/educoder/public/editormd/lib/readme-marked.txt 关于md编辑器 marked.js - -1、 安装node v6.9.x;此安装包含了node和npm。 - -2、 安装cnpm(命令行): npm install -g cnpm --registry=https://registry.npm.taobao.org - -3、 安装依赖的js库(public/react目录下<即项目package.json所在目录>,开启命令行): cnpm install - -4、 如果你的ruby服务使用的是3000端口,则需要在package.json中修改"port"参数的值 - -5、 启动服务(命令行-目录同3): npm start - -6、 build初始化 npm run build - -注意: -1、cnpm install 之前先需要修改下ruby mine的一个settings,防止ruby mine对node_modules目录里的内容建索引(详情见线上文档-react开发环境搭建) - - -线上文档-react开发环境搭建 地址: https://www.trustie.net/boards/6862/topics/46425 - -2、package.json中配置: -"proxy": "http://localhost:3000", -"port": "3007" - -目前暂时必须写为和上面的一样,ruby服务端口为3000,node服务端口为3007;当当前端口为3007时,程序会将axios发出的请求转到localhost:3000上,进行跨域请求。 - -3、静态js加载问题: - editormd源码改动,注释掉了564行 加载codemirror/codemirror.min的js代码。因为codemirror 已经加载了,codemirror对象会带有插件,重复加载会覆盖全局codemirror对象,使得之前加载的插件失效 - ----------------------------------------------------------------------------------------------- - -React开发相关知识点 - 需要了解的ES6的知识 https://www.trustie.net/boards/6862/topics/46427 - ----------------------------------------------------------------------------------------------- - -新加入的lib有: axios、material-ui、lodash、classnames、moment、immutability-helper - rc-tree、rc-form 、rc-rate、rc-pagination、rc-select 、showdown -考虑替代删除确认弹出框的组件http://react-component.github.io/tooltip/examples/onVisibleChange.html - - ----------------------------------------------------------------------------------------------- -TPI State整理 START ----------------------------------------------------------------------------------------------- -TPIContextProvider 详情接口的所有state - - Index.js - taskListLoading - challenges - challengesDrawerOpen - - MainContentContainer.js - repositoryCode: '', - currentPath: '', // 当前所选的path,可能是一个只读的path(只读path的话,challenge.athIndex为-1) - isEditablePath // 是否是可以编辑的path() - - open: false, // 繁忙等级等提示用Dialog, TODO 考虑重构封装到根组件 - gameBuilding: false, // 评测中标志 - codeStatus: 2, // 0 已修改 1 保存中 2 已保存 3 保存失败 - - codeLoading: false, // code加载中 - resetCodeDialogOpen: false, // TODO考虑重构封装到根组件 - resetPassedCodeDialogOpen: false, // TODO考虑重构封装到根组件 - - - LeftViewContainer.js - tabIndex: 0, 页签index - dialogOpen: false, - gameAnswer: '', 答案 - snackbarOpen: false, - comments: [], 评论 - comment_count_without_reply: 0, 评论数量 TODO 和详情接口字段重复 - // 默认pageSize为10 - currentPage: 1, 评论分页 - loadingComments: true, 评论加载中 - gotNewReply: false, 新的回复 - - CodeRepositoryViewContainer.js - drawerOpen: false, - loadingFirstRepoFiles: false, drawer里的loading状态 - fileTreeData: "", 文件树 - codeRepositoryViewExpanded: false, 展开状态 - - - CodeEvaluateView.js - testSetsInitedArray: testSetsExpandedArrayInitVal.slice(0), 测试集是否初始化标志 - evaluateViewExpanded: false, - tabIndex: 1, 页签index ----------------------------------------------------------------------------------------------- -TPI State整理 END ----------------------------------------------------------------------------------------------- - ----------------------------------------------------------------------------------------------- -重要:TPI实现时修改的js库的记录 START ----------------------------------------------------------------------------------------------- - ----------------------------------------------------------------------------------------------- -重要:TPI实现时修改的js库的记录 END ----------------------------------------------------------------------------------------------- -create_kindeditor.js __isR 表示是react环境,react环境下采用事件通知react组件来处理 - if (window['__isR'] === true) { - $(document).trigger("onReply", { commentContent:tContents, id:id, editor:params.editor } ); - } else { - params.form.submit(); - } - -editormd.min.js 直接注释掉了codemirror.min的加载,应该改成有codeMirror了则不加载 - // codemirror 已经加载了,codemirror会有插件,重复加载会使得之前加载的插件失效 - // editormd.loadScript(loadPath + "codemirror/codemirror.min", function() { -对应提交项 -Revision: 73d95ce266d5d7e55a3a88d08d1247b3a08c7caf -Date: 2018/4/2 16:12:21 -Message: 切下一题时更新左侧editormd里的内容,更新右侧codemirror内容。 - -js_min_all.js 最后面手动加入了若干js代码,还没做分离、再合并处理 date:180507 - is_cdn_link tpi_html_show方法 - - - - ----------------------------------------------------------------------------------------------- -TPM使用react实现的利弊 START ----------------------------------------------------------------------------------------------- -1、全部使用react重写 - 做法:第一屏使用新接口,之前的js脚本还是继续使用,有必要的话(需要局部刷新的),将部分jquery实现改为react实现 -利: - tpi中评论组件、文件树组件方便复用 - js、css库管理方便 - - 暂时不依赖于react的状态管理 - 之前的ajax请求还是可以暂时复用 - - -弊: - 接口评估? - rails模板要改成jsx语法 - 头部功能区域、底部静态链接区域会存在重复代码 : react版和非react版 - codemirror等组件的使用会不会有问题? - - 学习成本 - - !!目前决定,新页面或者评论组件所在页面使用react实现 ----------------------------------------------------------------------------------------------- -TPM使用react实现的利弊 END ----------------------------------------------------------------------------------------------- - - -其他方式:comments组件build到新入口后,将代码copy到rails页面 ----------------------------------------------------------------------------------------------- -不错的库 START ----------------------------------------------------------------------------------------------- -https://livicons.com/icons-original -- 收费 动画icon -https://github.com/maxwellito/vivus -- 让SVG标签动起来 -http://ianlunn.github.io/Hover/ -- hover 动画 -https://github.com/legomushroom/mojs -https://github.com/juliangarnier/anime --js动画 -https://codepen.io/juliangarnier/pen/gmOwJX -https://github.com/daneden/animate.css - - -A responsive tour snippet, with a step-by-step guide(onboarding) to help users understand how to use your website. - -https://github.com/sorich87/bootstrap-tour -https://github.com/linkedin/hopscotch -https://github.com/Robophil/Product-Tour - -code editor -https://microsoft.github.io/monaco-editor/ \ No newline at end of file diff --git a/src/App.js b/src/App.js index 17527094..d3bca0ba 100644 --- a/src/App.js +++ b/src/App.js @@ -104,7 +104,7 @@ const ProjectIndex = Loadable({ }); const Home = Loadable({ - loader: () => import('./home/Index'), + loader: () => import('./home/index'), loading: Loading, }) diff --git a/src/home/FifthEdition.jsx b/src/home/FifthEdition.jsx deleted file mode 100644 index 09096de2..00000000 --- a/src/home/FifthEdition.jsx +++ /dev/null @@ -1,161 +0,0 @@ -import React , { useEffect } from 'react'; -import Slider from 'react-slick'; -import Beijing from './Img/unit/beijing.png'; -import SHJT from './Img/unit/SHJT.png'; -import DD from './Img/unit/DD.png'; -import HW from './Img/unit/HW.png'; -import ML from './Img/unit/ML.png'; -import QH from './Img/unit/QH.png'; -import QZ from './Img/unit/QZ.png'; -import TX from './Img/unit/TX.png'; -import XH from './Img/unit/XH.png'; -import XJY from './Img/unit/XJY.png'; -import ZC from './Img/unit/ZC.png'; -import GFKJ from './Img/unit/GFKJ.png'; -import BJHKHT from './Img/unit/BJHKHT.png'; -import ISCAS from './Img/unit/ISCAS.png'; -import NJDX from './Img/unit/NJDX.png'; -import CEC from './Img/unit/CEC.png'; -import KYRJLM from './Img/unit/KYRJLM.png'; -import WXYJY from './Img/unit/WXYJY.png'; -import HSKY from './Img/unit/HSKY.png'; -import LSLM from './Img/unit/LSLM.png'; -import TG from './Img/unit/TG.png'; -import LC from './Img/unit/LC.png'; -import YKD from './Img/unit/YKD.png'; -import Axios from 'axios'; -import { useState } from 'react'; -import { getImageUrl } from 'educoder'; - -const list = [ - {image_url:GFKJ, name:"国防科技大学",src:"https://www.nudt.edu.cn/"}, - {image_url:TG, name:"头歌",src:"https://www.educoder.net/"}, - {image_url:XJY, name:"长沙先进技术研究院",src:"https://www.hnjmrh.gov.cn/newweb/service/detail/305/"}, - {image_url:Beijing, name:"北京大学",src:"https://www.pku.edu.cn/"}, - {image_url:BJHKHT, name:"北京航空航天",src:"https://www.buaa.edu.cn/"}, - {image_url:ISCAS, name:"ISCAS",src:"http://www.iscas.ac.cn/"}, - {image_url:NJDX, name:"南京大学",src:"https://www.nju.edu.cn/"}, - {image_url:DD, name:"滴滴",src:"https://www.didiglobal.com/"}, - {image_url:CEC, name:"CEC",src:"https://www.cec.com.cn/"}, - {image_url:HW, name:"华为",src:"https://www.huawei.com/"}, - {image_url:ML, name:"木兰开源社区",src:"https://www.mulanos.cn/"}, - {image_url:TX, name:"腾讯",src:"https://www.tencent.com/zh-cn"}, - {image_url:KYRJLM, name:"中国开源软件推进联盟",src:"http://www.copu.org.cn/"}, - {image_url:XH, name:"中国计算机学会",src:"https://www.ccf.org.cn/"}, - {image_url:QZ, name:"openi启智",src:"https://www.openi.org.cn/"}, - {image_url:HSKY, name:"红山开源",src:"https://osredm.com/"}, - {image_url:LSLM, name:"绿色产业联盟",src:"https://www.opengcc.org/"}, - {image_url:ZC, name:"中创软件",src:"http://www.cvicse.com/"}, - {image_url:LC, name:"浪潮",src:"https://cloud.inspur.com/"}, - {image_url:YKD, name:"ucloud",src:"https://www.ucloud.cn/"} -] - -const settings = { - dots: false, - infinite: true, - slidesToShow: 1, - slidesToScroll: 1, - vertical: true, - verticalSwiping: true, - autoplay:true, - arrows:false -}; -function FifthEdition() { - const [ topics ,setTopics ] = useState(undefined); - - useEffect(()=>{ - // if(list.length>10){ - // Init(); - // } - getUnit(); - },[]) - - function getUnit(){ - const url =`/topics.json`; - Axios.get(url,{params:{ - topic_type:"cooperator", - limit:20, - group_size:5 - }}).then(result=>{ - if(result){ - setTopics(result.data.topics); - } - }).catch(error=>{}) - } - - function Init() { - let box = document.getElementById('scrollBox1'); - scrollUp(); - var myTimer = setInterval(scrollUp, 10); - // 鼠标移入container 元素上 清除定时器 停止滚动 - box.onmouseover = () => { - clearInterval(myTimer); - } - // 鼠标移出container 元素上 继续滚动 - // 60表示每隔60毫秒向上滚动一次 - box.onmouseout = () => { - myTimer = setInterval(scrollUp, 10); - } - } - - function scrollUp() { - let box = document.getElementById('scrollBox1'); - if(box){ - let con1 = document.getElementById('box1'); - if (box.scrollLeft >= con1.clientWidth) { - box.scrollLeft = 0; - } else { - box.scrollLeft++; - } - } - } - - return( -(确实开源)
-©Copyright 2007~2021 国防科技大学GitLink团队 & IntelliDE
湘ICP备 17009477号
Esnv-%IOkPC9mNiTuo1%Pq?~#T|q36j-+Zz z*tFJs_1oPDkgT0N-G|znaqnGMo95_9{xWXZ}c+abS zeyNB{05+4f!ZmKYSc~J6%jDc)z+>^G ~oPNON$5a*m1;e9%*5Wg}GWbTZyGGAp9m{g!XtNd4kxG z6t%~MN=kP B^a?!Vf%SHNa~>bC`R{`we_GmxD*ml5;Il=Th#THdprBuz{}gDc+mQwYQ)%th zW{-< X )v-K=S}N9iiKHqCrRoi&0xVtKZ1NensEFTMXqimvjwPq@PYzf9COH}T z6m+xOW_~pH<4!qgvttw-9yUGh+yd^vV7@!}TMZ H7q=O0kJ+X2Rv?5 zeX!I8QM6gSadRUR+^JpZ1II1o{Js5Z^0<2
DKiIFv5ERC-5W+CkQrhZ7}lN`L-abWEg4wlrqqXgLp<>*!E>ctm?;k!vGbE z@>}P{55!D$_#R0)&7mY3{ T~S&hHf?v^|BCP@(!{{fE15zTSb!>e#4X+pS~uHfON6-Q?(;eY=%l2~`) z1kNXgeS{fgDwN&hRTA+pFga|}oK$8IHLza(17-*Tl!YYZj;1F)YN}>&lY9nY=fJOf z<;uKt0M6HNU8Mw6Jt0emXKQu;eq5xo`f#U+^y}4DvuONt!@u*g>qlQI^DMrw1=TlE zyOe1o!Km*r7{=p aA{Y zy-I)&PjHctz3=g{u o4aOP&v#`$)@KO@FUQ*I0{=i%DK89Kyr5*cMP}> zpCORkGWBbMPR95TXao^jV+Hc=QcLYgnE!_{GYzL<(T`yMBKeB%(9sCG^~;`V$sA>o z3rg=~JP{3glJg0#j(j0pI^{t}vjFK06Tffy^Zr8&Ikb11PFZ+^J8=OXBg 6UiSo{)eYP#hL0@R} z==&s@p)yJAH4`e%qyxr^{Jfjh->L`WjQ4zyB#GJY(5zVyWC80ZZOo>eE!yLFpxxGO zdgityWvCsAk}vSrSJ^+HB{&8oy-*X6MGpx}%aA-yvzsO!K6W*~xn*^zvsY5*>b)dJ znIzjJ;iy}q(L3v#%%7F;`tWYTEwtQy10GAgUDDNz1i@w_4;1$ 7X- zTu?B|qyhf0F}R@{1$bm6;^#p$ZcQ$?(G|9lS?Xjrd2aG=wF6Jd*!(SZN&c?BofgQn zDv*?{peuP0!@L?KQlQ+kOnh_r5vL$Z)@$xHVB?BkYdCTrAjv$m>29Vor+YH>Y^Mz=j}J^PgPuyUUvA$y09vhecQy z(vi|4e)rnU14)aoL6*WJd!KLB#3Pr#xYQn}g6EonNwLPZ$rRHyeWlPOIG0RFar7P7`#CqihsEDgtCWMSGmk z? SJZS^)e*T+PYuI35TCi; zjFJ`nn*Tw1G p@R{-kHQ&Q#D3^F=3vZymfA6RndvVS1@UGJ(XNXMr hy2Pjsm;tU)`(mHMma;fzkt$ z{p%YpHTg9+YC9^2eqTP=skegm;O%^4#vSMe1M^;HkT)4iAV}ex75tO<>Vk{*lrw(X zrXHo;ER46=x2*pJDndJ$@g!sgEqom;1n;qc{o!f#76Cd6{^|+CDs4u}#Q$|ieEk5D z>`?YDM^0i3VA<0vSX#?nQwRO3->p@Q(6~+WEzQb1=ea{p+Y`U|uj)sn>VPRGCI!*N zv49v}XT?)r?(awGx~Pr)+nd_$2lb7h$yTEN86JZsphN-%44}z*`MVb?VMZ$4Gz3K7 z@%pvh5-XWCt=h8IF*MKDRP^H!92TQI>c~Y?{i-?*uJE1*M$O|>HlQ|D#!R@`MctG6 z&;OHbU0m%$DHbEg6(s*2?Q4Dx{A%hSxYobxY#voBeA*>45YgN7a+4!HjOr%UBBQ^R z2L{-(nVF<?dxB9A=Yh)xyAQ*5eq;SM>FEu9Ke9nZrgli;F0balD?(N^8rOm-ynJ z{RdsKp;ojg3IFh~IWUgqApu7R8)E>pGfq(RE~xqJxil_r`SUazwRwB-N50gDDDBC= zNsRKg9f2u&$0}LmxspFHbjW@wbto z3>z@tn(fHd<`sMGCa&(-$DtL76)18drIb~A%@w3vT^Z=kH5i^#%Jn39wyRK5hh9|} z+4?g>pcBY(Jk~pgycuJ~^dmyppPP|HK|EsU_s#u;399h`2U-&U46pi9odxQC MvwrOSUr =;lYs`g)CoD$lb!_On$WxxHck#6-%rzn z)Es-BN+ev2y WA}Q5#(@A@IQ(U5=cTvtxJUH zBw w$>(7%5$Yfi#xxegXoD zx-*1H!g9crB%BqM9DLuTRR#)>fbXK6g;o}LT({kb1y F z!Ef&SdET%7I{P{k*EtjC+Iy|_TW2TPv&KE5XFlx+%>K&IvWeBk!UN7NsATtuX8Ynm zb>;MUu?V}n_fP34*6*;JW+1scHRq6ObobxRlaD~?4gd`Y{k5(U0U}z7+*sxkrF+y! z-?W+1dVbuny*)~M02<2b2x0a{WMj59x8z)|C-w@Gz|s!Fm@}0Hg(`V$O)P)c<6XNk z2j&GnVc|EDtOZBxWbsp3M_GMz)(*G*jG&tXQV7@{%e{6lwPXI%r+-iI^(I9SQjXRC zfN7c*HROm2>{419ZD<(~RQHn(K5$;-ZQfr>rgyU}>d%icl$lfKPi`?EC?!1bF|Q|* z>wm i2T5N76`lFm=ou(N^k}dVMYhLei41)9sJL5 zR#CKMA7vH6!oRgN#!e1NauX!Wq{f2sDuQxcq&~5^gbv1urf?(Wa?q>vUQ}(Tga5EJ z8$S+~UqaS;Yj1>(eWFDJYjK`C{RD>-1q@!lLiS^cg#5pIK4M86=8@naHTggN12tgy z*YwESaq1U Q>n)kR2khSH-zZ4cehb~F4a4+J~)h&bfu`{TQO z^_6uUTVx->1(`A8=|+{^rdML84qXZmhTjb}Kv=oPE}TZN4z5Jey?Lm+3EU7hZ_%A2 zOoDJl3}={Z*o9E}YVvyyjV!M?A9{KWWHCvsaahEtz8BDr6??ZY#`L9gZWS&*R5b^A zHtuo@pIKEXYiR855kVMPTf3VKWR<{yf?AWT2f-#e4K4<-JlAYhC$~o3oZd%)-GUbk zq97T=SVRrNV1@+Db>y$R2Y>`i!FZG59oTxTJX|rIHGF1?*gH`?>icO@nM fZFw>}hxpFt zm8RKj<&^j8 }vs<=}MQ&XM~&h1sodz2;u{!IOB9G>hN+^J%&&W%r6I z$Jb)fFJTv}i3>$`s^cScHq#ux8PMlIP$VB>7<`C~+BL9}cGLxl{)A0#nHw7_bYkn{ zEm+8PtZ0eUY&ETAC-W%3>~ek|u1&D7qdgF?`fVtpCwi2gyLD8=8^)K$|9B_kbE8kt z3Hi&+lh!|F+A|sOxtQ}Q22f>mxtDOQ!pfNuLx|Z8hX=wA{#0Rnv73ziOaPL{9*)Rd ze^JZ?G~z0*pn=IQef@ers+3G-I)_NadR(TT&F{@(hBG*+;ZC_E%_--v@0sA={$HX4 zAv+B?2W(bmSq)i7n#OAMwrGjZsIly>{k>hktdyQxwX;b%VDYv!Bx2O=oU6W=>x}!9 z;+gjZKE(+8@^u!FiDY0!O zlN|Lv5Iky<805u^cs$y1pUjGRR! }4bOn?#i&%8o>8_ARZ$ zESMJ&3PE%S&>Z7<1R3%(1o2KLyy9)luxcARIFaaEef{Ou6#f|#5)qS9cQrdlH64-C z;i$k_ijjq6moXj`CL;(VJ``?n@anzM3bI^-4wkYUh<<>7#vYCK5kD(>8+;@~tGBHC z&bz-T1EvB`%z$HJp;Mg5E?|^q &3qGeDdBQKUf9V6hw_LttJ*1{vQg46stXt)% zRQGFMDhoweRC|P7HT%TDW5+Yza{5U6GUctu54XlPBM4rs?S-|A3ycbko(esidJ|=1 z ;tUE7a-rsJ!bU7j-aYs z(ZER-N++saNPMAa{uC9B821i?7fL(IX^kR!G2SljZR1#7? &W>v9(*JjK92T4* zD&sGQ%-mDac&LzR!AVKiPl~>)I;+o`hiE68dxj>zTV)iWh?^&QKKOdqhi2mn`7W>| z9kBkYx{G!6jamR%M&FX*lgiKy0{`D9wX8QiRyN~W*3Ah99tHt0b4)Wg&cMoe^lkGa zGkO*CpkHfGgn%SisP?(5>eTSQFJ+^cRRD`8v%Gw?nVM^8$%)PH&fbz}D1qL6#`w1A zLg~+m&?Z({fw1QZMoNzyw}j}xnFI$C07#~_ImS>T8wJO33!`(tsPHXN1~~rU7(m;5 zhtQ#-s<31SSOf#c(7dms9JS+w=_96TYzGQ7CO^}_F>cCNrv9wGgIT`*2UmDoB1%z{ zQhxfzKlZm31OuICm~Jf}R^&!cp*D@`%4%(Rnu@_ny$ieP< CkqB7tI-*eM;;eLD7O2JO0| zcanj8v5|4LRUS}**x6jCOhR%&02*dZP=6S{cLz?TsnLrh8ezT1r)v~25-qNl^*u(= z!9cLxN+&DqGGmVOz6bGG%qUNplI>?Nf~>)WRNi-QrzA(aqWMpG;KEJuC8be0e}?;Y zNLz0{CW)8&XI$|%5)HpT5dRY2)sf#<^I9)UO6(P{NGc`Ec48n|WlFP{n?pop=#nV! zeTYaM4WbUKZ;s{ZgFuSn;~FK;HgrjCkf?kSuL#-PO^ZCa9E9yi<1NjhJns{Dj)HzF z#*coDAY^r2$2EZLpe~gT^%9@eCXNM7qBo%%-=walApLu={}E4v_`&m61Sp8YYQM0G z S5(=b$|` Lu^9$k% c=kamo&x+pk6V$ zG$Kx2H4h-~I%pNc^6YGEnwZan=Dr&wbu8{vK1TOI3!OjL2TQc@(vGpap?l|s(<#k< zeTMsQtD9pTGOi;3-blC(R@5#zszig`HB+5b8^_=YQn6Uo6p=tZFt4BX_oVbknKIjl zhwh{4=6ygX^}dRQOd!G?chy`P_+2Y5^Q200p sLL5ad6zs^AjwY@{0Pfo?9SK|BZgpaRfJgsQD!|AIG}0q-&u zvZ-iC2w;xfMQ1$Pf@Uf}X$S&fN+2XO^Q4ZnAg-`R3!-dL^|`f~Aso>g{3q2EdC5YE znT4BUIzAOhlu-pM@RrBN6?})288wmVeRqaTlm1iJ!9VyBL-Np2j(Ca;!D%~Tw`?kT z-`;!Z#SjvT$^C%IT&=+`V~c#0q `_luv7kfZ|^Dopz`CP85OKZHsd{Y9l5d!il(QaQnXrJ zQuEK4S+F$P#DafZS(*vXPNPN`nBAZu?qJ01Z36h feRecAD$ipF-!ukN-84l(Z3mJT<3`^^ n^H=dJZruOz69dR2jE2D&7sk0&w >5VDUd@S;G7q z3KDAfd)gc=zA!+FP6-rka Uza%jblIMvIW+eZ*Kj>&5!|l8yNnTtp E*CDShjX_xghE@5jUS14Yuc8`8#e)TF2=lhL0A?vbs0 zZUP OM6q*jlLWN_ca3FfG`K*`|LNaXIg#Mli*(WaeU! zAVrf`$SXjqt-?5ov11|68YY5R&)!{nb>4L^DG}73-phd*VB{2=Wr#e*nn;x*ArRIB zMD5-d W&7=hleRT^?odUzJWp?M}`GS>DL=6DVO){>gt+@WbeDOl)RpWwTef2b{R$izVSq2 z9Pv=OntcL`&K`*6C2q`gSb@oVx>2$c4OBT}4(HacGn#94Ma-$B(HOTB_WF`I_wY(` z^OkezWC3V-@$^7?;47)fHngu6j^}zRLh5iXINxACQDYcnNJ@q?cN;&-wDO`#WqD$a z%_{ewEUMWTl%fqytla7}F52k#)?8k q#`2$=AE8Z2^0RnDh zY*mFMvW9pHu67C~f&4>HAc>Dy_<>BiAM7LF#!fCBD-z58ainV1WMzKI<(c8hcEkGe zWkqmdTGY>ckZau9FWY5cr8kyY!-o933?2C{vxmic^Xer7+X42-3%m0`{G=vp_#s)S z+u(_SL#?nQh&J*|+_Bhmha~O47!Ag+A96|=O@>Dh1Vc&1WBefH7RJh$<$d27UesQA zF8ls)Y5KfiwDI8SM^oC=qI*L)`#*L iKnfsKzpbdZDQb{ zz81rRmma=B9!umk#YFtfYtKGlez^vTeClQn$9duS>EV6kv5e-c$(lq%+p{DcgrUj3 z&zJZbLcSy2cE`X GM3 yWVVZMaQRXnTHh3m6C|j_YC_W_(*8hsq^Vz~d4fLB{Rv z`=F^~#qBMYPHRFl?mfDv$@{3`-8&jFq&hTr3-xKq7;sTXtE47{vHWiNLNBxH-_43V zHGLfV8vE}!&cXrpYVVIouJm`r%LNOv I;$U)$Hd5~hCa-NewG?Os_x&MU2 zQ5N*FaKTv0klnfcv2#*4VQqrL=H8Iyom)C?dU;$*cCdP10~Zqw9`0x`L w7#Y}+@ib^`WV@i* zDsz%75^l^)s0Wwrb3Or4y$?ytUN;5;7IWvY(K`iZ0!iBkO|w*6Cici!x=9?XP&Bsk zWR1QC9{n;P{|z}o?f&D F {v6N^o)T)M;7sdy;;%_+$_dKjRdT?~!3>D9zMB{9nR%?=<`xz4b?v zYqW?IUlSjZd*UVzi=&_dl~~{8wP-$w1U~!;|Q4T_O7M z+n8_t!~_Re4*C#E@H~<~w;H^U@ZrJwT(XqV;nrGs)5>VhB (WTx7$F2KR$$X8} R)8zP>Xc8raKtJw^=w}!FBfnWVO=)XSnVg-Rdx2}cE z2b YQHJY#;78=8F5Ef1FU$PLm@LpEl(^ZTklD zwKAO tt*#TeBn+>Qlg`Z-PT4{d$mo)ANQMQE2uR*bM3G2B9-5z%N8i92 z7G{VJ()w$asbi*HPrgfKqOw16UHxlFiRvF@i+!@m^sB+1LhUiFn$kp+DTsk
nCDN@u)Q+_PlxrX!(^Ue7%JL^pRfz-9_$?>5!b! z*bIhwHd}%1NMkziZX1b@741PFJH1+ LpuqN&ya28W6>Qt z_?_s0Sr`&+_>{Yj9mnu|;P}lJUtbUDePW6-RUNK9co)hl7-tTzXe07F;Y~4^N8d%0 zl+3CJ#i?53zf?}Ay*cKP* 0s4d_^{*ad#5PZ#aq)F@f7tw zcVdP4xzFA~XSuo7Ou|E|8|C1Ky)kbe kskv7pr >bONZG7 BXU&$?*$(t}dCHP=>rHcyUK;ik@_? M973I%3VxG*7p> z`E(A3BA&mn;ua7a>NQVQDW%>UfTgo0A&9+X_nT_TQ^(hK`yW4|dgzvE%P0IONaCW` z1hb %L#)7*^5 zl&@;Y^(K<}U3-Yrfg%pKQFX=5unmTj9ako}q>Nr^Qs~3eMC0}+Fmr4ns9u4=+9OXG z^Szdyb=`F=MwOtmL6S~RIPJSdByZx6;`_F5-R6gCu@^OcXF -;n=@*)Hr@!z8o-vuX2CU%2^D1u8~8g-o>$5l;W{8TV^VkPYqWFQX< zp891?>pjmBZ1FA4ax%9yp~()bXO&Z01q44o8~av}kCj*OiTVyq*`V$7aUpApeUTOp z7&K1zeI)`ij6|xJG^WA@WVo?v_s@0WHvMO2ftR89`TscQq#7 JAvWPc^y&K`CC z`S*N %($FI6EyRjTEi{Qyp8Q$ggl z`Hc>s=IFH@_*Gwy7=aP&jPlwSH}!=OSg8?!*7OKb_`cb4(Aws9mXs+ZIdbgGIRN>e ztsk}jg3#of z+t%vKHQM=YKj-6PG^B4579@*n5`A tygpaJR%dwLq +w0V^@ol zOX^o#X8pSQo`~;vKBhGS(%eNa@-kAqrU`ESU>J>J!E{?<8iYL0Z&qm8YahQ}pXI&l z$I 4ks1BDesc4iR>8)_e20-@=e-Wh*>c zT{2rKX%;v;m^{n5C*EU_?iI9FmS-vw&~68_V5C`Kh7?KUv!)b#zyXpAp$e-v#ji9` z-bV&E?;U>8vzQwa8GT*p3 !z8#bKg!x&YuG1*-5J@ z5KF#qa9Jgyp8tbD^Eadu#hMdAs&<$Nz|M?nH3VvVqjGQh!%|-55ZUxKp1)@N)!bRD zbjO}^^Q`4b?~8d>*nV}P<%I2k9%P8|NNsxysJ%uKx#{@+pg5{o&3XRv&oiQ)ulSN? zX3G%L1k7n#)5QEiu)o5jhlT9wqLxER{Wbr j}SJ5tPU=pn$N-&zP-@*_%4 sFIZON_T yFQ0k$bGw0lGNvZTwjjFdOE8W1ae14OA( zow8fR*@d}2v#@Wuj`sb>lxlM%E*Clr`yru71)}|O8R#1kUL_5>N*+ (^WXP7r@9!|rTHDz$Rb1~-aBILeW&zN{h28^Y99PT8 z!P|^s4-{4p-p+y%HP*qDdH{6q-Te2oJIBt*^OPc8Z g`*7l;6sq-o;*R4~Jg&OHRf61MoX`v5Y2C6$;O1 zh~*XtAJ_S;&2fZ&8yf2p>;`$lu<3>B`~itsG42OOt9Gk1ui>C&Vdi`Dp>HsxT4~O< zT8eXs*s_rc4XwAVwLOQaF-^6r{#R3!$Da@w_wszxoqUg{Y0eQ6qy4ux;VQX&tdJb0 zu|*Q;=Q%fuqy5Y#?vT=2H}tQrjJ;e|&j?$c=T#%u+e FM-PpZcdCZcmLdJdHn-zO)A$sZbtZ2L4lcwUSLS0G zXhLzwEkZR(Waz&;I % zu(M*(GdR+X=)dqA`rM#3yBTql_x5FeMm6PUobE+g4mI>DCQFf{%w4Q4oi9N23rFHF z@4FY$$?pxyx1`{jI^rWI2p(oHUdE%~Y
6ZTU!V2undt`K zJ I{Na43St@%p4r^vQ#{@;oap#5Z&6IvSILX@$%OXiFhmh zvX!c0AMwNFN0m)T@t>PpJao{+ESi*{e+|CfS~Ec4Y-UA$-(vx^%&AuZb->OU3+c5z zP5jaXiTCid3Q1f*SdLni^nxu(%rk(W^L8Jdad3DfP2*0Kee+r@0E>KY@CKu@6KUTN zquTag2>Pu68o0fJcjcRp5y9IcoszaRhvE%!ve#g71MbCl>@OS%Jj0?+tl#>5W7lnC z_x N4$x}CR#%vM8{ z2aU?&kr@M7BU$x8q02NhE4C{>uG2{xtsp^uz-9OH?^4gLJ`4GfuY(XoWB!xSlY$9$ zBky&cG-qi@f0JI4sD##sWYI*Koa(AsX*W?nHT*_Jy6K~(*NepbNE! vN3h|qp$UeJ>#ZOu{Sbq7f!Q!u7MDG zm#Ps}vC9;?@rmKpMvXiAm?7kMmB01%1ia^4Wvs88tom5ByBN5gpS78hjRw(EMo&KR zdcYL%KgO^=AnoVTw-fNN7dG#pCUNAcO2XUZ6woA5X?~LC2a&_C;&PdK;8t;ZIE#pj zzj0y(=_#SwujDpeIe~O*Q1Cxalm8IUav@(`8>rM$PHP6=j?*jzKS&H?7hnE=z-Y|> z4MxlS4;W3@wgdfNFxu%7$_YphJ|S^={gpm;TOeB3K5i!P`2yYa2lSMbF5lgPFuMQD zbAzX@QAvX9ArRt~fiC;^Z@gTv*Uo+|nb8))UEQqaORE+$G$9FtH$* ~oRIRXp<7 z+-F-fG+YAhq{_7vS0VLww?CUMe*8$ ScX`jSR{g zI`MTw 6H9;G>k$`F1O?Qh?K6V_ gPHT>t9x z_-UqQfAw>ujE1Bx`cp^*hhphE8^dxS(~YV5hv3K;>K4$gjtK&}95Y8Yr5Y7`F9q5h z8}l#xohuJmwesdCfM&(3ACnW6_}JDc+j#Qr?hP@B6YJ@jrj#Hi0L|G}<_#YcdwsEX z_Tz;iUi-SRV_M~k)nq!<)H+YO3zQz)!AO2nOIF7|D?VsQ+(exstDP2qqx1sT8Z#FM zP;;1zJinCqYxui;F{ns2(7vC{y_&ubVtI>`V5_niK?5R?KoKEx)Zd*G&dq|rcgWJ@ zI4L?kurGCH_I@NO;ho|}FnhmED5rGXg4)8D4|?~V(q>X_gQq2D#H_q&3{K+}85r4` zs~kNk$9A8_ZgL$&h +qTB2=p)Qo|avV?3a&@;@Xsnuzv>&mqa!T$-4i-MCK|Fdw`xA|p{H z3F=}%NMvprW%1UtgoOw$CT7_1K=p&KRvF*2wgU&kQcAs~d&HOMysT_}FBp8!Wk?_M z4+i0TzU+w_&a=-lb$Un=0`B?s)-_tPoH5 Y?}<0|UUAFc`93ms?e} zZ73 6(({f=HS6YyR*fZQ3%w`v6Z z2z}aY*v#lRsIc0iDBJ#T@Ft4+)3YsBJ%NEjy+&ghHERn>-K-I1f&u_I@lCAUCNRvh zMKBLU_joilZ$0gS@`R~a{fqB;wq)6^npep;bmlo%UCp3JTUq=1F19nL)=E#a4)e-} zk<3 jG5#h7D?vzD%S zgTn{jTI9T8k67cSu0yx+-q5g3+PS8*W6} ^!-7|V>M39R$e zSF&Gdl`!7XVQ7-bSa6=v1TY2x8(9uMJHGxCh*ra4+%2e!
7nXihxAY4aBQA# 2H9!|4aA5|>$IJW@IA?Md(09gw^!tuH?5DTZs$e66;pD}b4g z_Ep#h#qJ29&hh37UuTfE$2zGmy-bTZXb``>16^PFB+i7LhtZ1$;GwpXUuclkkXe_O z?`(NipcwTeq>|C$q84%4w$`59*u6o=afOiQ3SVERw@Oq&WMZ!jX^;aVImy6NaTNy9 zBS_f*d=Q(4DWR^lTCr%1=)cd3m6;o^(e#N8m<%<3HdeC tcZZjL3Mk`v1mVT3?4 z=K
Y38FkHyE6`IchT)Bom(P%H9|-n^RKBV!_vSc58=zCW(ImFhd-y&j^!g z>XX(vzISnMx5IUBIXre~Z#@NATF4n(L8?SfR>R?#H}`q*X6S0?870UG+o*c-m-lOV zbuAR0(rrCKt6H^mWMNIME7&IB{G}qUmA^(O 2 zUlpDOh-!*QWMK{v|AD0Y{tqO*QX&{DBrFm6#p!2qn&!fNifiSzz+ppw+Tr-{alCZO zU|c(dwf@7-R%wUKRK8LgZQ?A?D0WHz`|=#44{7|?%Rl`M` 8kERm3q< z13)e}T pDh+Ar zfOmMqaLgk5c`#{TTkFXD2N8H}5bM_+?D;>X4DS3P#;Ik(&R+g{`>^RyZGB1%t~$mW z@%i0f^10#`ZR?f>W%Tc~NA)mFh!^29kkAet7!(W3!E~f*QaD`V!o23pK!ofRp_-~x zn!6k7)5wZCek?Q*%x)eIA1|Qh3Nb`|3e1dU5&p9Gtmywh(laBe#1zpyYJUwT;LP|v zu?rbaoZ18@vw;Z;IIY)fs{7NX2oAZxNL(0_)Z!S6*;NEsmz=LJVRoR{DUAhS(dg)u z_u5{nJ%~P2Af@nQgyvDrKx9yLW&>5kQ!866M(wX?gm0!`M4zX#+D$R4mj)-{2VT(=dKkNY)+FwgC=p+HAZ`tJb1L0S|66bTU z(BGMoV>^v;59ND*gJ=AMTsaUle|ltl9+PSUQcmXyyAG9>F&XBPncK*PvRSxw+I_ld zI`HyJXY>wG&z7EbZwM#0-u&_`piqY4=Fx!3&djerxbJ~#sP$sI=sZ_TVxf#^JCmX1 zYWtF>iR?OJ4WgO=@b`Al`wsGZ9~C}l>Oh~C_QW{@Qg){_#K}bV)9=Q>h_wjk(P(4E z=xh;gO!i>g-%>7STZU93>YSHsmquvE%Ugq~f1%=dGh>`}gfszQ*>m&w+}C9xSkf ~ zUp}aZN8_e2RUgP$*e>PoY*Ok@qX57+_&Pu2JbNViB+p5mlfTwT)t#5X_eEqcaR8}X zkH0<e{sTB-1Ti)F#JG4TxqC zq{OHt${`r)BfAJx$~r0ikE1A$@zYqPWeSj$(P Ei+e*x6_h&^3+9|7pL z6qZsQ)%cyz!XIao;Hr+wI{j{dXe?#?3x b)&%@X|DzYy4}O77hvQBY#S6=cYF--CR=3wz5m@XgTua_=|KfWYC& zGL&~72c;&2{%4aZzd~PEFYl2Q_uz)6X>8sPSpdI%to(kg?9AhlVdWO1YVR>q8MF8h z9eilH{8q6!hK+iNV3f&<1F)EaM|8#(OI13sj`(s&72lu~gB|B+e2ic&lxA$Q7xL@+ z0T$Hie9*_?-4cHm5tEVo(=LcAY5p6FSo7XcG94&IJQ@CFkJAE*DMw?X;SJm<&)U7v z%KLh$&DSX{9la!Kwowd-jk#ist%k=w@Vc6duIF9W`3-SV=*T0Nxp>Wl&J(Hwj`Dd0 zp1QuthfrKkPah6{*4?yrylRWrBekgDK58pXt`E{+s@;d{2>LxoD#hPzruC!wzMQd( zTb2T7^rg#GEyCip UtMwO@Y5kcC&frdGYC$IY) z1+%eQN#|D}i`C_|#$;^~Gcxid0F6a`;~Je^L&(C(uiXr2?x*VvVs9w+US3CgcX-q% z)zDYQsGqPG5I?%5Fe$q{=U>T`Cw29GVUVg&q`IQQcZ|s{RpSh74GC^NbRmhYt0{JV zaKrmBqkWwQ>PX>88GInpIQXW4*J!_VzT_JVHz?vojJT@QLpy_~G@QE#8q4JBsWjDH zVlqe{O?*g@v4>kBBxGVunK?Fb8!r_dZDY^)NBQ66dnUvN3TQnjVQ=91EXUy^1<~T^ z*$gLdl~&ZwH88#V(^uPR0Eku$uu!y$wX&}(0_o~G8-eyk3`rT&XZdjzlHlxlfNgm$ zGKWJH<9Jl{Gom2F5TX`2;ulrH3+hO|h0}^lX!fyePRlvyp@r Z`M=>Vd-HxXXy=k{nr?=bMUQ$>SxBW`arqfFW}k_XcQ 1&EUd zQL&WT184(m@89B+H>j@H#i+c +eKbOZQXvyc=x z`m(u)4$x!v3DeA|i36LI(QZSh0vEGzOZ*?g!nHvxi7oL=qF5AHIEZtRrG$$X7ddb@ zjag8*!@i|g2SeiS&%s&aq2UNJAYzK6yEz&P!!R^fInFs(yqWm>Np3X;Fg|?Y+cl}H zN8>;F6wjQ#L)diyyda5~-*2>KPcugiH(}6+r#>(Dk);Sh~-(+p}gEIQB`qG0Y2J(EA)P zv&*NJyTeT#0N5lbdd0eM((THgYVjtt%ZOR(ceBx+RnfS=+Kar0=o{c@BOdb%5G69a%4(F_Q#Lr&U(w=`O0U_;Vy3e?8!5tRtS4NN;{+)n`Q@AyUl z2C*Jw>0#Pya6Qrb4{YMQLcV*${ ` zq&EunGmdR9h*`nW@;pT9O$zu9f9zX`m+z+han0(qnBt1Rygyq1kSYk8dWDAKu;Q-W zdx%L Gu;yQr3Dx9= zpdye~IX=0O_LRE!t1397{apz6yJ*JI*k4F?VF*1O$EFdB58ti^CCFT;+TUhx%^UG! zx8tZwBhQ(=hXtI-rUpLVLm&3<8wM4txNIfg-xa!dU(v{6crtcwk;+$D2&f&Nk|Im+ zXLT=KGC&hA?+mAx>hN<-scbyZO%U+*If>wzISDiGBR#z+$ wuD?3P_ zoHS*xntGm{wp(SrL%$m&`cs4e+0?iC{p-}ti*N_se+dZA E#_DAg+z>k@X&$Jsw$F^S2z!`Pho5CF0+fYpDhoL(gTT z1tRsiE2{IuK=hj1&kc>@(c84d7rRikPWJ|SwWGiOGnaa8%DRbbTOw@-75u*%!s26E zC3i4;>G{h)!E(O}*mrRDBd#5@r1cPCEQjiS d=)x+|-j zZtf~V`eKN${<*?wfc5-Y^1+q5ctHE$HVFS)$9;`QpgH+F _uOXl!K-I~|N0j&B_}QngBDn8 zXGo%U`I}FceCp3s6Tu2LN7K2{#>NU`DVmqUMKjb%mR=UhsZW{4N+v$J1Vg2s|K|vh z`va}g3#0Kgl10H{4}KDELur-I77&f!+#qLp7ZRH_Ba&PWo@gfyx@ntZaXAxD$SHLk zLbiaKI8=Nvpc}4k#+Z1Ys 7x5!a;6ak#rvZYr0)zchSE=8Y%h#PP>Ic&>eTGG7OHOJ$^2%E)p+y}1$eHU zSml?*SR4xo{W0;1 FQ@=GAK=r0unkqM;H$n6$$6=so6Rx zF1_4sfA86Ur6?XqiR>-vKM8B&Yk7a12*G?ta5|fz^do)CTBF&XNWvmPkYc<#M!HD? zw%zHY8I?i1Gy8~In!Zn8W4ZG&_T)?k2;&*fTXq3oX>-hy-V^z golpYpvWS z(dlXr;jFI3t}v96k3(UJ?G-ooE1Zhb9lO>nQhn7;qUd-{RoR}Nur4F^HEl&RV7`?N z(?a3t13SrL9V8t OG)lb gvnt#(Z*5@p}Z*SwG O_|(gerB{oJC=E!I= X52o=dtqvtvO>*V=H{6Yif!Ou)M4{(QkzS0u9Hn#Sqx1t+C}muwX8!%wRPKdD-k zWJy|v+ zRIR(+!cj5SJ>x{(AF^1__&{i{W0x2A9-N;_U4^n1H=(F@ z^}TWOg)RBP`h~N1=AeRQT*|`uiR*L@?D_|OScvzCk})L}N#r{+ia26&wE|(Stb_X% z<5MWz25wlqP ?Y9K#6J9KZcr7QZ2~|DyAl zioayuo&)zdD>9{!6NIm$Xk#H)95km356-hvaq`3&gifT_8x5?y5MSi-zbCZuT+2C_ z_1@Mv^8KedENk 2ZnCmUg%J}&{%beR3~ScM{BA{= z?an?Y$TplpIDKmZ|9(_KOw+{am&9QDhV1E^fQTHL!N1{#<1+DLbV`pJ22r@nwO z8#aU@^mj588}?ZIeun*LX>6v6bNcOO2(mYSOJjE?3Ub@7vZ|g__r~q`3#B^otg~o% z !OI<&&S+{>$ |ue3jhauD`%?}~ls^N5AL2CUQ5 zcz@(!`! a{SGG*}&nUamyaBz9s9#zuNBYJuz>uQ)nIT?jRX6S66%BVYi>K zT7F$h`vd@g_t|G_I*I#b`67PUL~``=vcpVGnIT#766W3Y)oS2EiWVK(68BYBT}y_t zXrIVw7KlkaPXEnaHZ!NkH76ti_iyX=_7 bUV{8sQHvhHs06x3 sMbxhdXvf*u8nsH19IXl+KO4aK!45~Sbfak|x*m(|?c_$cSbTK?ef`)FQ)CMExT zDO@t0Pj?P Crcpx2 zY+gr#GJn*k_c4L^$e*C;1QhtnS#_jHQdkcH{)39|st7`~1}G%!<|XTsh6#mxg+GYJ zoaW|g9z_#kaJuz0;NOt|dDo@Mt_#^c9yW5q#2Tlh(6tgQ9a~i)sZ#}?JuKwo$}op_ zImV*YOkfL3hGY@Rt!;~zohFZIG9e|>e ~7I z2F;OqID56sT>{W8bALdX?n!ctgu{E`W+{K9?shvNWbLC@Q?vGw1IbY0URz`hNg8G{ zRi5U_9<(=z-9?Ks@G6D czda`k zrh3xo$V}jhH?+FT(nQXJ7UF=Zhav#5EhO#R*_^2b1=lP;+g;AH`a<$4f|3Ix@PXlg zG92<8c5%zq(X5ZJF>SzBFnh;TfxHq(lesGn;=oJfkOvb#tm2!swT}PYmh%Dzs5HqI zs7I)~f{Ou!$@G;Qa!HhL|8v5}fD+NKckLe6Btt2cego`ze#Z#xMZ1!3*VS^-?9N0d zl13 $7k(Ch9U*xP6vND_RS+m1`S>pPY0yUQ!>u@(-t7<{AirRsy-3K*(71Ei zEa2<@cZ4608y&voVtf55g@%DZtnlmp4_{SSu}Sa|#0i|L03?9+Rmvbd00!BnSeR;c z3N%cgJy6y~yW6Fa1kKMLA( xz^lYJX6)KjK1tlTH1zYrr#G6!3_mzQ7t*cT{d7IoIS z>1NXN-s)N`neMSf^l)~~W%cVtEY%-s?>#9yoB*&1cE}(MqKqT@HmkN7KQs-s(C!XO zpH{cE3p I*NfG}9b4{UTKGUIkc+Q%sQ)h* z{*_hOMP1K$l!vJ6pLb**4wdMufE%3&Xu7Ha{CZ&_*JOZ^TPoNUD1|n%FtL&q2LA%K zP^XyhlBC*$1UB+IJ{5hg$Ce&dGJeLp*ymvc`|132VkNBPMImG1h@d>g^*(ZvM}&$1 zDGg6hSEK=F<`qQKFrmv}LoIS>aU9lNFCNId$Q>g)3{hv`r%C;$Kp@wG;&B;wNzhwq zsId{H)>+(t;IM(_ok@;(EP}W^c1n_fc`6Obiv<1=2#>^)!2pySxl5Nb0iTp_UfpSh zcF8AYSTG@$ZW$Vrdp{nkX~6zcL%d05hRIm6-{WzFQv8kYxzwY=3?vzID}Fy1g`E-C zV-(JD#_OFVUy7cyTUmZsn@BFTFZe$3fj`sK^RAwylhISip JRuMBNzjd8AHEsZ9@~&t~IwBHRfzk26W{jRUe^ENApyRXOwKt;jdms9=3(>0m7p) zN%1fQv{~I!K8y59bxn*giuE_8fsmNOdSX4Ls+m@HVPbqDze h1^o4Sq)|=VVw5Zy-tTM{it!=Qs59u%H_~9?-`}zzN-&Y}Ogk2wkj^epSv*^1t5} z%pS9^o~@$8R%)&PcJ&s2+82K{;$_i $;@WZICWiQvs?h>{bgp?J zqxxq64e1pbNM(ZBysY7-Ai|K*O?nfkA0;;n{FX|^{-%pF2k7}OX4YGFb}@w$^uVol zJE-xu>B8rXCi~|^`E=y3k`cmJDi4x`oSCR|9f*b!+$rX~b%$3}|8c@hQSWgRZz$|$ zMJcyBDQ^>TU-ht2QP1bs!(e-Tw*101ge^#<_vG%N(Q`2NdwW9ieEX##3*k(}`P`|U zqV4)paXmXEpk;U)wCz0lW6`O(fNS#RBgM<5OaM&T_E+Ozra@b{Pp(yUoOdpku*? F G& 41>M*@yCFHJy}TRZm-+(@H&r)$Q>agc+9K zF &bb<(XPCx5G<88jzdAe%X^`S=%3k$S47jPQz|>YTPz3wTq+1*QSv(#RL^G z`gLTDEP}B?iAH6@sI*c`oKlZa<2L~6F;^cIM#_$kIW--Z)c9i7o8dnHB{sX6fo8CJ zs; YwFS|De|fnZznw{Ky5O!ktE2$`!9zev>Kdv)Zk`d$gd zaY}q5!Dz*+62>>EZ@Z>%_paa)Kv6LmLj2+Tgk_veqcz9JZ~H*Vtsn3RDOV%aj1C13 z9oe`}yy&)PcVkh|#c>x(DIi#$3i5Z%Z!8Gz_+xMTrdGzDS0IZ3HX)CKl*~x)75kOc zi3O{wRJ4?N);d?-HhIqMiwEHQX0*}q5~Qggdljg2f{Vm=;QU}i_MC?njJy%=-y_+| zr`xfd#f@QMU7=rhjTj$E;Yl_=yVkakEg|fd8Xu`E9)eXLy|A^<`juGn;;=z!dLWJ> zrrloFYVk{~2p 0Onu`!@YV#bv6oyni`A@}wE(ZB#9TQ{#j!u5?IH!p@5^Z7!W5jDB?*!ZORpeNp$hBD+d1sRm` zw=|90eY*KPlUv!Y{+Ne$ZJ%nPj0-+BygX%VTKp4dE!5iCuDqJ `WoGAjQ0S#B{} zK#?K8=Gaud-cQWWE0C>}Mq?BsqFWL|IoAZ#7w*R-P);LO*PeGP<@9F{hahdk0@PhZ z*zaGi*iyu|9xb?-p#*+c=A@d=Q{Bj&a|!QvW072 z-kc76m2ulN;N7MK_^NS{bGwqb&)V
&VoKdQx`PsAnzPi}*ILO*1z% z7zRPwJxq*D@+KU$hNjGoEc7t1%w5#nL~t+ZKbcP{l@iC`#&8T}Y#kSRSg~WLUEpl3 z(Y@tGsUasC10_0DGd0ALt>GxXF AU>~dwR_J${=`VwMy?|^aOjNcNV+8=p-X1eevVSY ze&Ks*_zR E9G-TSsJhN}ksR=nx(GQI3VkBgREN{YYX@*;1t(E>?ls_wKGxBKRHXf>mmU(Oq| zr|SyxkkX`5o*JuP$6prv|8y3QgmU RKnB|uPgWE$w0RhdhhEOHl&QK9I6YBK<4 zXKO!=%6xRKy#`2d==JO>kBfJ45=CWtF_u@ej(7xfp=clV7gJjQXmr4V&I0?*z73Z8 z^&MaL9;PhH*hVIM!wsA~X%!eYe$6_lIht)60dY}VI$1FGmfJaH$9<0|aS$7M>FY3s zB&Q>ZpznY6XXN=o=K3{So=F%#GT1Y(H^GR{2lO#!%8v= I)~{~!!4Fy*0Srpd$ZjnB*$O}`L=dbMEdxY>f4k@b%F1i% zG!Vs*P&blY`QWfRqYS67BZbuHD$kg4ooB3f^=>eI`=}(IktqJcdbYRZPpvsJ_uDG< z)T9nEO(j`O6R|Z@+{cV7f V5GFaY0hi>TDZpS5wB;0 z2P9eyXWFff1P-(HHT~&ZY;Up11{$~hO({Po;Y$KY3YO=on~{kZwg6IGEkP!MtE!YJ ztqV@qhdJv#YRgitg|hR$SHG1%u}zM>d$iKIDep04!<6;n%xp4*Nm1t5CLHmQ^v~Y5 z8y%VQMA7w);GgzteM2Q@i%W@JXjaQ9e FMPkv2 _q9=a}TrA-oq5fM$gci{eTE09>q&xHH&Pwg?Dn>vwi zT?b`nvQwxiO=qXWtsc3oGEse#VZ8)5jN bRG?x1^?FMO zHAI*0{xvD#yhEUdhvO@E2uv _q=&dQw1fnSf;G>l zZ_ia5!>QwdG}~(=GPS}iwce@STEYSi9dYrqBn|!jw42$TApvy+y*}E-2-R5%Ld@bC zGBuY<`~t>&sbs4FbCrI-KWJEqX~kDzI+Q#^Ge|R>h#58f*6R8^{YCvbKk%6Q(V;Uh zu8NHt@wgQ)v%>1Q&m9t zalj7&geMQ`=9IukFb+Ezn!qKT#uvlBx zG(ZSn(%*5N5(9iWQiu?c(KnuJpkg%ghT#lM#4$qZ1lGsF`i|f}S*Ve`0Ab*&)-(Uh zO!_WS^P7&w7-dERF? Ba}^2H*SQ1#A;WxngrYLwpPjnI9KZ8_ z6w_N~SWZRT!Pu&DfQP5*= zeSNK`Nj_?UC6WLiHUsy!d+@GLDZABeh#&f&shrhV_fijbT-}5SfDt36NV<|ydBlWF zE>P0kJA!mE9E7Q~r )G1rE<#d2h_4#_YECWsUE%l7 z3r_QQQF%##7xxz~M|vFu8X2v`^F05)mC)g-^PDA@%%Ild=D?%3l4%<)-|WQd6U^5J zNd?B6U_VX!-{D5ra7Irv#NP6&Kt|CxdlL0_3Z2A;Cb`YoKl2~%=QY@W*x$zqKw+^g z__8nI7-YEf@G$jbwE(-~xm7}KS&@V$=yNV*mx1Mr?K&29CF0RLxt-)IM=MYEr#!2# zelKigI}n=5qyIIN%Ub$L3;+kjWvs+B?iaEx?V>;aFJPGOKVaDDe}Q4e|7j+RG)j>X zvdhZ}P )wV&7jRe9 cf%WlE ziKtFLjGOUNF@9cJs3GkoP{JR_F9Bakr&gW bL1`JG3d{mufCr3VBW3nVp%!8#t^%DI$qR;<~lbZ}YI6Lw&va zh)Mom$Z+!zK)lG%^sl~0twAxrIqG&ePHIX&^QLP7^+~|0Y91e?fiLS=#{24Yys}^j zFa%nC9v(S!y#Jv*$m#xA_d%Yum!znr02&co+gs&nD=Kz3RiME?hCIAfNrp7o?otSq zDJ3_-Pl*dGW*|pxOrv?+kN&Dg8Vp(AZEsFv4JGPWey0lhe)SkNizCak=uR*4JWI ?gkOigspEN6A0R8{mf^8)F(Y0P!&7_IeDYidwo~&EV!zey|}$O z3y6B-rCvMvkNNZ&{XKIhJ4|PZJZmsv3Sl+Q=|OkQVU5L8--`)&d~+*sra>kPH*EP3 zH(rz;;WtG>+_4e$VT#aA4l5`yqKqN*li5t*%a4H#u>p^;RYDjLK7JQKKjW1mC2{b}Q z+VRm=> KPSA*iF7(h+X^)&h)5Qzb;r_F(m3|3iDGgC?lkMsl?dh zYU+q0qKyYH<57$c5zOZFn}>n$RVTcig+?l7h|a59-TuR~_*Wq_K**Q`0)EGiy1aXc zveYG9i^&7p3s8C^&GNFJ`3SVexALBuuuOe#cX$MVlB ~pwLa4WPUb@uSeiCq`cm!yM?C%Kki?UhTp6qa(K^md|Gnsoc`{s%Ue#_ z2jI6ov6OCgeg4mGRftrCAZu=5E1n
SvM z>-()tknv#aeQD(()-$TGKe@N~ORC$N!TFhI%KXwol&Gi)CiquRysxP0)k8uzx%DXv zNNv-b{OW(dn%^@2t`cg>epBUjB>WjYRuzP=M3tL(pSGo@PPO5oJU>2=-qkm lnM$mxiqeXE!*E z9|KTKqaAL$#eCx2CuB^%BM5DXLkZ`KkqFuhVcnY@TR~3aJ67(l+x)(WOR^D}cF$Hw zm}I9druhR;JNZMGIIh0Nu+(uYczdjNW#O@|Kj7Bb@~G)BSSITMxC%DUY!0dTE-~g0 zYzJax9{qu(pw$D=3`vQ{#e}YkX78`ut&KlK0<^ki%LHC{!jWpXlS5O5f&Gcktexq< ziZWx^$|3k)iJ5k_Innmt>z#>8xFevp!BSn@hiIkCf)i)P;B>d3l%{z!Qfo>6r-xBq zJAmsIsroiA-H($Kt9X1*EA6pkbJ~FS1*;j!lA3KR_VM6fg0mcv){ED!?24I*jSm`; zgHV>SXp2!hr_^07 y!l$*>f*MJTdi%Vq0~ z9JFi~*~!DGMBYx=UOr4qT^^4xb%_XG)&OZ >{YIMS(szOQ!} zGjpV3k%2w!Lae!#%fsG5U7tJ0XzvA)%0fw6N;`tD%@4v~ tZ!7Zq%cOE6^7%h8m8H@ReY}X0 zw5Z-eVtrR_2fpVl(YiZ5g?X=Fm?DGJnme6wdUOqds)i9u^%zJk}4+9u9Oo-9GgA z$YfXYYZief%JKpQOm6Wdh!`PcP~k~8vwk29LWX>Qx{67VEd6=ot8SI-^YK#&-Ns`@ z&N~|RZWXxBW#uDlzMG3q5D`z ZUJ%EM_qrV%EW7kn6$}y5z9AxJl5ic zUjDu2xa$@;IU<94dxkkP?BMf|au`>&DIyUZJ>_qXK$lh6r{28-g1IGQ3fJlX&3nhO z?8=wllHBNFoLm(43lGAY9!p}B_*Sofh`q{R-%oz#=K>Zl8fbW=%;MA>x(x|PMrVx7 zlY-8|b! >WXk_i^dTx{r^be}A13I2TXco+v_3ZiK;J^pi|pObf${^P z>Ak*Ub|qyP=CXfD<(Q=FHLRxCf6%b6p_k&^h`a2myLjCh}e1yX-$It>_sKG;UbSdWp#16#rCXg+J}A5a|cyww?{D})u~_%#JitqeCP zwnju6$ 6Ud4nZ#5PJGo*_m|c=T#vt_p#}5U zUv=ruFeLHT2E2GFtJ%QfT`KXw?n_`x!WYT9>a9pGOLHhfG?}cp@vs0J+HJyqqpb-K z)c|=I!JaUJEt*P$%8ax{XoRT5mb?OVoO|Ok);#1lQUr(H_SqdT3M?`WBoP_rR P{KJ^19u2AtizvhJOCx(_I#bbqEa*LpZvqr?+O%hP{W`a}N(QMv z<#9GQ`Px6(3_=k(SdP?b5D;N#aQ{~6B%z|r`L-ze|APTf{4WN);#V% y?rU|H-Alp z2{-qx$&t~l=9W5fM`B#hQSMn#!k{!WTT2nOkC4>&puF$pPwpZ97VxSb(V=}Lk+c!& zqe*p{ 0p{^ObgvR*l9m zt2)(~q{&iV%MSM-MAK5FNl=SDxXsMSXwy(Ouf@r9Qk;&h%x?GM$