From e6b98d35c9aa17afcb01ad86077e84eecf3826d2 Mon Sep 17 00:00:00 2001 From: liu2592603532 <2592603532@qq.com> Date: Fri, 19 Apr 2024 09:27:04 +0800 Subject: [PATCH 1/4] merge --- react-ui/config/proxy.ts | 4 +- react-ui/src/pages/Dataset/index.less | 40 ++++++++++++------ react-ui/src/pages/Dataset/personalData.jsx | 5 ++- .../src/pages/Pipeline/editPipeline/index.jsx | 42 ++++++++++++------- .../src/pages/Pipeline/editPipeline/props.jsx | 20 +++++++++ 5 files changed, 78 insertions(+), 33 deletions(-) diff --git a/react-ui/config/proxy.ts b/react-ui/config/proxy.ts index 2b02d8f0..527bff75 100644 --- a/react-ui/config/proxy.ts +++ b/react-ui/config/proxy.ts @@ -16,8 +16,8 @@ export default { '/api/': { // 要代理的地址 // target: 'http://172.20.32.181:31205', - // target: 'http://172.20.32.98:8082', - target: 'http://172.20.32.150:8082', + target: 'http://172.20.32.98:8082', + // target: 'http://172.20.32.150:8082', // 配置了这个可以从 http 代理到 https // 依赖 origin 的功能可能需要这个,比如 cookie changeOrigin: true, diff --git a/react-ui/src/pages/Dataset/index.less b/react-ui/src/pages/Dataset/index.less index 8be59a9d..9ab21750 100644 --- a/react-ui/src/pages/Dataset/index.less +++ b/react-ui/src/pages/Dataset/index.less @@ -223,36 +223,50 @@ flex: 1; flex-wrap: wrap; align-content: flex-start; - width: 100%; + width: 103%; .dataItem { position: relative; - width: 32%; - height: 66px; - margin: 0 15px 18px 0; - background: rgba(128, 128, 128, 0.05); - border-radius: 8px; - box-shadow: 0px 0px 12px rgba(75, 84, 137, 0.05); + width: 23%; + height:164px; + background:#ffffff; + border:1px solid; + border-color:#eaeaea; + border-radius:4px; + margin: 0 20px 25px 0; cursor: pointer; .itemText { position: absolute; - top: 10px; + top: 20px; left: 20px; color: #1d1d20; - font-size: 15px; + font-size: 16px; + } + .itemDescripition{ + position: absolute; + top: 57px; + left: 20px; + padding-right: 28px; + color:#575757; + font-size:14px; + word-break: break-all; + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; } .itemTime { position: absolute; - bottom: 10px; + bottom: 22px; left: 20px; color: #808080; - font-size: 14px; + font-size: 13px; } .itemIcon { position: absolute; right: 20px; - bottom: 10px; + bottom: 22px; color: #808080; - font-size: 14px; + font-size: 13px; } } } diff --git a/react-ui/src/pages/Dataset/personalData.jsx b/react-ui/src/pages/Dataset/personalData.jsx index cbebbd0a..f5632d0d 100644 --- a/react-ui/src/pages/Dataset/personalData.jsx +++ b/react-ui/src/pages/Dataset/personalData.jsx @@ -269,8 +269,9 @@ const PublicData = (React.FC = () => { return (
cv^Wj0 z4K46X7$&=*rjGl4e0;U?^=tYfZ7#pDYr0q72|G-7z*HPwf=p>$FcrZAsmJQw|3K1J zW5VJ-L9U;x1ieZ`!{Qs^8NxF-O({kb0p%wE6x9*Y+b;tK|2W|bP);QFYBi3C;(4`A z>mdtG&%ZvT1bDH9L>&Uw)5kGDE|7xXd=yB#aGHvBhvAkDg&Jy zsTHVR^>G&d=O|@k2;fT&QP>&V^oKP#^DdRMkYT7Sko$BQa0OOtn&oQ_KSLf^It3mk z-@*vVXGKtV&%2=uvj0iN?_%OM707=dlSd@tu~R05Rq+jeT6T WE^3oFi&F{-J3Vn_yx?B0x|!Z_-$LXtWMg zKW;3Yqy~0X1G@PkHNRr{^(KPxx ;oJTLro6 z^iaxcVAh;w@+m2L7 %mVZM3Uk z*C RlA$;2?VTU><;KIx))v ucwWm_&*9ENjIw+Ve;r$uCKQG bjo%8rExlEsP!NEdpE)1(Z7p1DAfVHyb0&ERjkp6y73nDAKBZS;$)A-XAi6J#%(E z7>fC>gBO54XzmZh4lDHLHo6`$dLev7;@k=G%ZcOBdgxvDR%V+L^!5Hd{HVONfS4vC z{{-7!<`L$AXKX?Oi?{BmG>j;l+bo)Oyyr{gK!pN3(78g6I4PdnK%}UDHWWOd*^r2e zAPCaiQ@(1*M&6ybzuV0uMC1UEfr2RU0>jYX>p+MM@2Hsg(H9qe-ICWnhCvVU>3}H_ z^#^kzg1x%FzC7*nIN6>eF=7r8DiF9<;c(%St=Q$$^7DLU vm!qK6ONO?8@4Rx< zu$JzE$*Z2FY`V&8AqT01-jb#4Ht>6S C8O3;G}az09^PKdkJtQZN--C&`%qDiD_Fl5uEQik=xh9QAz5nZDFAdf z)SA!S%aWQ)3@5dPZ{ue)r;9mAm>g3KPUPEba*JNQglgNlXvL7DGMQq;d_eA+^D zuDkv}u@A{k@*;Ni8O2?ZG-tLmW+Q%RMeUo0ukzZ|OPkzqsaEzF18}hUk-bru3wXd4 zEeaVsZw(hW{itbgztlgNEmT5QedkR9VeIXdm%R^vC%scl*cK%W@vrLk5y0<+jSj+` zn0VQ6_$$8t$7PsgZ=e|J*j?SgJN2Mo8@Bk^KvN!n- zudQlR*74)~f1vNos`6uXRMNe8$wGx)Boy-(w6!pB)7v0geqR~W#@eqqZV}q7r%)Cx zRl9q+&w6$}^6l(v% JQ~iIGMHxnC{hh9n ~DuMs}0Uo2t ze1Q}6n;J4quiM+06JJ4tZm*?a)yRseJ9d9N8g1jWoIgU2zqO)&G%=>D9(>@_n?N4+ z4xX^zwQqfA;i$J?sGdzykIplv%P^0kv+ph+*h=x^ghXbd_V_6rBvh|hA)Upj5h#Y9 z;ABQ)*Z|>dlIgRa*swR@OPcqNN3-UqB^~E2tzunsF5hZz`4YyAK9sv0M1dDJk5{I4 z((h5vEiNr_N`9F6|BaY1p$m&n_F-&aQvZ*Sve^b>ZfG8s8WTag0py_+yLwv 4YfkUf)Y_z85o18dPg0}s1G752$jLv~mrEHu1M_OmS_z%$uQsXS zK3WsUjd&bh!gBLw1cpJKNE+irX4FI0Jv1&^1SN-T Ms1GcYS!4%M%F=acyupbpYn3Al&k6uyrIH7EO^n33vQVIq;@Wq74?fv z@_szBf@XLFBtQE?x6cHp9XF|NKyx!yoQY2hlXG;OXy0WA*633A)}IJyYz{J( fg)znIhv zTDyvQ2Fmg3b#TJzRBJfi4TZ9Ca40J3O~4U|k{NJ{@Q%C%7g+M0Fg!XrZyzspf5028 z3r?RUC x> ~Ge%PM6}#Q8v5< O4rr #1jL%qCTbv&fbl^} zF9JrYhDH-prShPpUJ41pl$KU~u!Y1LeGn2cme?jFcuUk+6Qj}+b+=dw#+K6V`2A;l z* 4B(J2Rt@4B4SGmdwKjXspw~N~N)ke+!|oY+QXGpIy`n z7ZvaupLd0>qZ6%aIOy=yXD2yjdU=Y%R;93sO4ie;3}2cwh6$)sYn;~CapKau>Y}gy z ~`_X9(Ab*d}RM$|$S$mG1GW`r< z+Lj=$az)>a5J>-Vb=9Pw5rDj%dbLWyhirU@iPFGrG=8|I@X%nB`o&9^CxF~?U7P}Z zz?sSNQkLZ3` 9#J~he4nW@tlVZ#c7cyGE6(*jshsdsS( zj+%`$%dHf4hmNVY-9~W*K;w%TP@nV1d9!Sqk$TpY>&$u^-Q4L0067)9FiqntrpSCF z?Q_*gBRs0G_OB+@7dvDe0A`y-%r Y1N2@Brj=gtb$AR# zu@yWHz>*5RpF_MHWSDJ5z`lop6?r#m>FNQhTLJ^A3pFXR(~(I4G`@ho*24$cwg3*7 z0Rmtqk=5ApI`Dn3-6&jz%cH5dd7x1Z#sSDL*9}aU)plxust17s+st|kh~ii5SArl8 zhMUz3lK^D)nKFO%O~}UW%~}AQe~nAG& Ej$N8Pw-~h<4(5LuilOF?O+nV^kn{J7PZU(lEFkVlGn^cLC)Jb07AA}lr z)Br`R{F@O309}40l!{D6zO$VG-uFNJR1dcmkenZz_wQm&kXVV8Kme$S!Cb16mHQK8 zprA6|*qTS8^ *5$dtnU~_T zRO6>WZF`VWofUXTF@S}%Z3w0+TEG%l;X;4Zjn=J>*DkYv&+~x%4I&KWPFaB;xdI78 z*r}C5CIxLK5u-QP+gIXP-CThlS%J$z=tH8hLgEf=kGf5wNb#!w$i4z6>f;IwCLO@U zAi_k&b)-6fcYz;rpP+2i9YB&?NCLTpvo9=EjCZ3I0^$lQ@F%3!wq(xDg#rh$q{zx* ze_TicT(XpHB^DsjAg<7Di~&O)8NY}!>r#cKNZE=II*AP%A%J$tLe@0emO>;NYYT!| z=#Vv)uwkIn&9X4ld&%zo)`f`1V=Cuyot2h>uwODK{NF8A+PH%Bk*X}!*;q*C^nB!6 z(P_ytpOG3QQ@VfRt0oJasZ7#o>EQQ;ril5yW1s0zX6<~x;KaVr );PJfG6}#5<^`Z9qQFE= zBEL83GhG{*{RirdsYZzB2e(a}AH?s>Rp@89mHw8gF~U4c*Vw&I${50pgkIFP85@rX z@N9pRYM8JwesA=CotA$q&d|Tsn}V3jcJ%!(!arjpx1C4b0q|*Nna*FBiu3%sVlIvI z8jHsF4yR)6)kZ}YH6^aw>!cTJn2*l=SGLz_?hw!Bio(YfLp@&p7Y7_Vf^FgB>V(@W zc^)w_s1N(48D8#S{JYQvg+1KBYM!o-=OJItPJLgR!p8*R@{(w5itmP`3cp9ju;o&V zIyX~iPXN;SrgFWKXH6Z Oa@C+=BpvmGN7aC*)m~}TM1gbJ zBL$B-mpwE$#%wNo0B4=c9;0ZVv&$Z?;M}g;M6cQuI_-JYhD+Ty8`o|A1%A#9 tr > th { background-color: #fff; @@ -56,27 +51,34 @@ a { } .ant-menu-light .ant-menu-item-selected { background: rgba(197, 232, 255, 0.8) !important; + +} +.ant-menu-light .ant-menu-item-selected .ant-pro-base-menu-inline-item-text{ + color:#1664ff; } .ant-pro-layout .ant-pro-sider .ant-layout-sider-children { background: #f2f5f7; } -.ant-pro-base-menu-inline-item-title .ant-pro-base-menu-inline-item-text { - color: #1d1d20; - font-size: 16px; +.ant-pro-base-menu-inline-item-title .ant-pro-base-menu-inline-item-text{ + color:#1d1d20; +font-size:16px; } -.ant-pro-layout .ant-pro-sider-menu { +// .ant-menu-light .ant-menu-item-selected{ +// color:#1664ff; +// } +.ant-pro-layout .ant-pro-sider-menu{ padding-top: 40px; } -.ant-pro-global-header-logo-mix { - width: 257px; +.ant-pro-global-header-logo-mix{ height: 75px; - margin-left: -16px; - padding-left: 28px; - background: #f2f5f7; border-bottom: 1px solid rgba(233, 237, 240, 1); + margin-left: -16px; + width: 257px; + background:#f2f5f7; border-top-right-radius: 20px; + padding-left: 28px; } -.ant-pro-layout .ant-pro-sider .ant-layout-sider-children { +.ant-pro-layout .ant-pro-sider .ant-layout-sider-children{ border-right: unset; border-bottom-right-radius: 20px; } @@ -85,16 +87,21 @@ a { background: #f2f5f7; border-radius: 0px 20px 20px 0px; } - -.ant-drawer .ant-drawer-body { +.ant-pro-layout .ant-pro-layout-content { + background-color: transparent; +} +.ant-drawer .ant-drawer-body{ padding: 0; } -.ant-drawer .ant-drawer-body .ant-row { +.ant-drawer .ant-drawer-body .ant-row{ padding: 0 24px; } -.ant-drawer .ant-drawer-body .ant-form-item { +.ant-drawer .ant-drawer-body .ant-form-item{ margin-bottom: 20px; } +.ant-menu .ant-menu-submenu-title .anticon { + font-size: 16px; +} .ant-table-wrapper .ant-table-pagination.ant-pagination { margin: 0; padding: 21px 16px; @@ -110,10 +117,9 @@ a { height: 94vh; } .ant-pro-layout .ant-pro-layout-container { - height: 100vh; - overflow-y: hidden; + height: 98vh; } -.ant-modal-confirm .ant-modal-confirm-paragraph { +.ant-modal-confirm .ant-modal-confirm-paragraph{ margin: 54px 0 auto; text-align: center; } @@ -124,35 +130,36 @@ a { margin-top: 30px; text-align: center; } -.ant-modal-confirm-btns .ant-btn-default { - width: 110px; - height: 40px; - margin-right: 10px; - color: #1d1d20; - font-size: 18px; - background: rgba(22, 100, 255, 0.06); - border-color: transparent; - border-radius: 10px; +.ant-modal-confirm-btns .ant-btn-default{ + width:110px; +height:40px; +background:rgba(22, 100, 255, 0.06); +border-radius:10px; +color:#1d1d20; +font-size:18px; +margin-right: 10px; +border-color: transparent; } .ant-modal-confirm-btns .ant-btn-default:hover { background: rgba(22, 100, 255, 0.06); border-color: transparent; } -.ant-modal-confirm-btns .ant-btn-primary { - width: 110px; - height: 40px; +.ant-modal-confirm-btns .ant-btn-primary{ + width:110px; + height:40px; + background:#1664ff; + border-radius:10px; font-size: 18px; - background: #1664ff; - border-radius: 10px; } -.ant-modal .ant-input-affix-wrapper { +.ant-modal .ant-input-affix-wrapper{ height: 46px; padding: 1px 11px; } -.ant-modal .ant-select-single { +.ant-modal .ant-select-single{ height: 46px; + } -.ant-modal .ant-select-single .ant-select-selector .ant-select-selection-placeholder { +.ant-modal .ant-select-single .ant-select-selector .ant-select-selection-placeholder{ line-height: 46px; } .ant-modal .ant-modal-close-x { @@ -169,14 +176,13 @@ a { .ant-modal .ant-modal-content { padding: 0; } -.ant-modal-confirm-body-wrapper { - height: 303px; - background-image: url(/assets/images/modal-back.png); - background-repeat: no-repeat; - background-position: top center; - background-size: 100%; - border-radius: 21px; - border-radius: 0; +.ant-modal-confirm-body-wrapper{ +height:303px; +background-image: url(/assets/images/modal-back.png); +background-repeat:no-repeat; +background-size:100%; +background-position: top center; +border-radius: 0; } .ant-modal .ant-modal-content { border-radius: 20px; @@ -204,6 +210,17 @@ a { border-radius: 6px; } +.ant-tabs { + .ant-tabs-nav::before, + div > .ant-tabs-nav::before { + border: none; + } + + .ant-tabs-nav { + margin-bottom: 0; + } +} + // ::-webkit-scrollbar-button { // background: #97a1bd; // } diff --git a/react-ui/src/pages/Dataset/index.less b/react-ui/src/pages/Dataset/index.less index 9ab21750..d22c8dbe 100644 --- a/react-ui/src/pages/Dataset/index.less +++ b/react-ui/src/pages/Dataset/index.less @@ -7,6 +7,7 @@ padding-right: 30px; background-image: url(/assets/images/pipeline-back.png); background-size: 100% 100%; + font-family: 'Alibaba'; } .datasetIntroTopBox { display: flex; @@ -38,6 +39,7 @@ background: #ffffff; border-radius: 10px; box-shadow: 0px 2px 12px rgba(180, 182, 191, 0.09); + font-family: alibaba; .dataButtonList { display: flex; align-items: center; @@ -68,6 +70,7 @@ .datasetBox { font-family: 'Alibaba'; background: #f9fafb; + :global { .ant-tabs-top > .ant-tabs-nav { margin: 0; @@ -117,6 +120,7 @@ margin-right: 10px; padding-top: 15px; background: #ffffff; + font-family: 'Alibaba'; box-shadow: 0px 3px 6px rgba(146, 146, 146, 0.09); .custTab { display: flex; @@ -136,6 +140,7 @@ padding: 15px 20px; overflow-x: hidden; overflow-y: auto; + font-family: 'Alibaba'; .itemTitle { margin-bottom: 15px; color: #1d1d20; @@ -205,6 +210,7 @@ display: flex; flex: 1; flex-direction: column; + font-family: 'Alibaba'; height: 100%; padding: 22px 30px 26px 30px; background: #ffffff; @@ -223,6 +229,7 @@ flex: 1; flex-wrap: wrap; align-content: flex-start; + font-family: 'Alibaba'; width: 103%; .dataItem { position: relative; @@ -238,8 +245,12 @@ position: absolute; top: 20px; left: 20px; - color: #1d1d20; - font-size: 16px; + background: linear-gradient(to right ,rgba(22, 100, 255,0.6) 0,rgba(22, 100, 255,0) 100%); + height: 6px; + line-height: 0px; + color:#1d1d20; + font-size:16px; + } .itemDescripition{ position: absolute; @@ -256,6 +267,8 @@ } .itemTime { position: absolute; + display: flex; + align-items: center; bottom: 22px; left: 20px; color: #808080; @@ -263,12 +276,22 @@ } .itemIcon { position: absolute; + display: flex; + align-items: center; right: 20px; bottom: 22px; color: #808080; font-size: 13px; } } + .dataItem:hover{ + border-color: #1664FF; + box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.2) + + } + .dataItem:hover .itemText{ + color: #1664FF; + } } } } diff --git a/react-ui/src/pages/Dataset/personalData.jsx b/react-ui/src/pages/Dataset/personalData.jsx index f5632d0d..3d183016 100644 --- a/react-ui/src/pages/Dataset/personalData.jsx +++ b/react-ui/src/pages/Dataset/personalData.jsx @@ -1,4 +1,6 @@ import { getAccessToken } from '@/access'; +import clock from '@/assets/img/clock.png'; +import creatByImg from '@/assets/img/creatBy.png'; import { addDatesetAndVesion, getAssetIcon, getDatasetList } from '@/services/dataset/index.js'; import { getDictSelectOption } from '@/services/system/dict'; import { PlusCircleOutlined, UploadOutlined } from '@ant-design/icons'; @@ -40,7 +42,7 @@ const PublicData = (React.FC = () => { }; const [queryFlow, setQueryFlow] = useState({ page: 0, - size: 10, + size: 20, name: null, available_range: 0, }); @@ -149,6 +151,11 @@ const PublicData = (React.FC = () => { const onFinishFailed = (errorInfo) => { console.log('Failed:', errorInfo); }; + const onPageChange = (pageNum, pageSize) => { + console.log(pageNum, pageSize); + setQueryFlow({ ...queryFlow, page: pageNum - 1, size: pageSize }); + getDatasetlist({ ...queryFlow, page: pageNum - 1, size: pageSize }); + }; useEffect(() => { getDictSelectOption('available_cluster').then((data) => { setClusterOptions(data); @@ -268,17 +275,18 @@ const PublicData = (React.FC = () => { ? datasetList.map((item) => { return ( routeToIntro(e, item)}> -@@ -287,7 +295,14 @@ const PublicData = (React.FC = () => { : ''} {/*{item.name}+ {item.name}{item.description}- {item.create_by} --++ {item.create_by} +
+最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
Demo */} -+ { const onFinishFailed = (errorInfo) => { console.log('Failed:', errorInfo); }; + const onPageChange = (pageNum, pageSize) => { + console.log(pageNum, pageSize); + setQueryFlow({ ...queryFlow, page: pageNum - 1, size: pageSize }); + getDatasetlist({ ...queryFlow, page: pageNum - 1, size: pageSize }); + }; useEffect(() => { getAssetIconList(iconParams); getDatasetlist(queryFlow); @@ -217,17 +224,19 @@ const PublicData = (React.FC = () => { ? datasetList.map((item) => { return ( routeToIntro(e, item)}> -); @@ -235,7 +244,14 @@ const PublicData = (React.FC = () => { : ''} {/*{item.name}+ {item.name} +{item.description}- 最近更新: {moment(item.update_time).format('YYYY-MM-DD')} --+- 1582 + {item.create_by} +
++ 最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
Demo */} -+ > diff --git a/react-ui/src/pages/Model/index.less b/react-ui/src/pages/Model/index.less index 81a18b11..5bf1cc1b 100644 --- a/react-ui/src/pages/Model/index.less +++ b/react-ui/src/pages/Model/index.less @@ -222,35 +222,65 @@ width: 100%; .dataItem { position: relative; - width: 32%; - height: 66px; - margin: 0 15px 18px 0; - background: rgba(128, 128, 128, 0.05); - border-radius: 8px; - box-shadow: 0px 0px 12px rgba(75, 84, 137, 0.05); + width: 23%; + height:164px; + background:#ffffff; + border:1px solid; + border-color:#eaeaea; + border-radius:4px; + margin: 0 20px 25px 0; cursor: pointer; .itemText { position: absolute; - top: 10px; + top: 20px; left: 20px; - color: #1d1d20; - font-size: 15px; + background: linear-gradient(to right ,rgba(22, 100, 255,0.6) 0,rgba(22, 100, 255,0) 100%); + height: 6px; + line-height: 0px; + color:#1d1d20; + font-size:16px; + + } + .itemDescripition{ + position: absolute; + top: 57px; + left: 20px; + padding-right: 28px; + color:#575757; + font-size:14px; + word-break: break-all; + overflow: hidden; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; } .itemTime { position: absolute; - bottom: 10px; + display: flex; + align-items: center; + bottom: 22px; left: 20px; color: #808080; - font-size: 14px; + font-size: 13px; } .itemIcon { position: absolute; + display: flex; + align-items: center; right: 20px; - bottom: 10px; + bottom: 22px; color: #808080; - font-size: 14px; + font-size: 13px; } } + .dataItem:hover{ + border-color: #1664FF; + box-shadow: 0px 0px 6px 1px rgba(0, 0, 0, 0.2) + + } + .dataItem:hover .itemText{ + color: #1664FF; + } } } } diff --git a/react-ui/src/pages/Model/personalData.jsx b/react-ui/src/pages/Model/personalData.jsx index a52420c8..152b3450 100644 --- a/react-ui/src/pages/Model/personalData.jsx +++ b/react-ui/src/pages/Model/personalData.jsx @@ -1,4 +1,6 @@ import { getAccessToken } from '@/access'; +import clock from '@/assets/img/clock.png'; +import creatByImg from '@/assets/img/creatBy.png'; import { addModel, getAssetIcon, getModelList } from '@/services/dataset/index.js'; import { PlusCircleOutlined, UploadOutlined } from '@ant-design/icons'; import { Button, Form, Input, Modal, Pagination, Radio, Select, Upload } from 'antd'; @@ -148,6 +150,11 @@ const PublicData = () => { const onFinishFailed = (errorInfo) => { console.log('Failed:', errorInfo); }; + const onPageChange = (pageNum, pageSize) => { + console.log(pageNum, pageSize); + setQueryFlow({ ...queryFlow, page: pageNum - 1, size: pageSize }); + getModelLists({ ...queryFlow, page: pageNum - 1, size: pageSize }); + }; useEffect(() => { getAssetIconList(iconParams); getModelLists(queryFlow); @@ -271,17 +278,19 @@ const PublicData = () => { ? datasetList.map((item) => { return ( routeToIntro(e, item)}> -); @@ -289,7 +298,14 @@ const PublicData = () => { : ''} {/*{item.name}+ {item.name} +{item.description}- 最近更新: {moment(item.update_time).format('YYYY-MM-DD')} --+- 1582 + {item.create_by} +
++ 最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
Demo */} -+ { const onFinishFailed = (errorInfo) => { console.log('Failed:', errorInfo); }; + const onPageChange = (pageNum, pageSize) => { + console.log(pageNum, pageSize); + setQueryFlow({ ...queryFlow, page: pageNum - 1, size: pageSize }); + getModelLists({ ...queryFlow, page: pageNum - 1, size: pageSize }); + }; useEffect(() => { getAssetIconList(iconParams); getModelLists(queryFlow); @@ -218,17 +225,19 @@ const PublicData = () => { ? datasetList.map((item) => { return ( routeToIntro(e, item)}> -); @@ -236,7 +245,14 @@ const PublicData = () => { : ''} {/*{item.name}+ {item.name} +{item.description}- 最近更新: {moment(item.update_time).format('YYYY-MM-DD')} --+- 1582 + {item.create_by} +
++ 最近更新: {moment(item.update_time).format('YYYY-MM-DD')}
Demo */} -+ Date: Mon, 22 Apr 2024 09:15:28 +0800 Subject: [PATCH 3/4] =?UTF-8?q?feat:=20=E7=BB=9F=E4=B8=80icon=E7=9A=84?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- react-ui/config/config.ts | 13 +- react-ui/config/proxy.ts | 9 +- react-ui/jsconfig.json | 11 -- .../images/backup/component-icon-7-Failed.png | Bin 0 -> 3217 bytes .../backup/component-icon-7-Omitted.png | Bin 0 -> 3115 bytes .../backup/component-icon-7-Pending.png | Bin 0 -> 3239 bytes .../backup/component-icon-7-Running.png | Bin 0 -> 3084 bytes .../backup/component-icon-7-Skipped.png | Bin 0 -> 3115 bytes .../backup/component-icon-7-Succeeded.png | Bin 0 -> 3322 bytes .../assets/images/backup/component-icon-7.png | Bin 0 -> 1435 bytes .../assets/images/component-icon-7-Failed.png | Bin 3217 -> 6512 bytes .../images/component-icon-7-Omitted.png | Bin 3115 -> 6488 bytes .../images/component-icon-7-Pending.png | Bin 3239 -> 6663 bytes .../images/component-icon-7-Running.png | Bin 3084 -> 6422 bytes .../images/component-icon-7-Skipped.png | Bin 3115 -> 6488 bytes .../images/component-icon-7-Succeeded.png | Bin 3322 -> 6817 bytes .../public/assets/images/component-icon-7.png | Bin 1435 -> 3772 bytes .../assets/images/component-icon-8-Failed.png | Bin 0 -> 3322 bytes .../images/component-icon-8-Omitted.png | Bin 0 -> 3266 bytes .../images/component-icon-8-Pending.png | Bin 0 -> 3496 bytes .../images/component-icon-8-Running.png | Bin 0 -> 3257 bytes .../images/component-icon-8-Skipped.png | Bin 0 -> 3266 bytes .../images/component-icon-8-Succeeded.png | Bin 0 -> 3600 bytes .../public/assets/images/component-icon-8.png | Bin 0 -> 1314 bytes react-ui/src/app.tsx | 38 ++++- .../src/assets/img/modal-select-mirror.png | Bin 0 -> 1372 bytes react-ui/src/assets/svg/modal-close.svg | 1 - react-ui/src/assets/svg/parameter.svg | 1 - react-ui/src/assets/svg/save--return.svg | 1 - react-ui/src/assets/svg/view-param.svg | 1 - react-ui/src/components/KFRadio/index.less | 8 +- react-ui/src/components/ModalTitle/index.less | 2 +- react-ui/src/enums/index.ts | 7 + react-ui/src/global.less | 20 +-- react-ui/src/hooks/index.ts | 60 ++++--- react-ui/src/iconfont/iconfont.js | 2 +- react-ui/src/icons/add.svg | 1 - react-ui/src/icons/doc-not-inventory.svg | 1 - react-ui/src/icons/modal-close.svg | 1 - react-ui/src/icons/parameter.svg | 1 - react-ui/src/icons/private-mirror-tab.svg | 1 - react-ui/src/icons/public-mirror-tab.svg | 1 - react-ui/src/icons/refresh.svg | 1 - react-ui/src/icons/remove.svg | 1 - react-ui/src/icons/view-detail.svg | 1 - react-ui/src/icons/view-param.svg | 1 - react-ui/src/icons/下载.svg | 1 - react-ui/src/icons/查看详情.svg | 1 - react-ui/src/overrides.less | 10 ++ .../pages/Experiment/experimentText/index.jsx | 7 +- react-ui/src/pages/Experiment/index.jsx | 153 ++++++++---------- react-ui/src/pages/Experiment/status.ts | 5 +- .../components/MirrorStatusCell/index.less | 13 ++ .../components/MirrorStatusCell/index.tsx | 40 +++++ react-ui/src/pages/Mirror/create.tsx | 5 +- react-ui/src/pages/Mirror/info.less | 2 +- react-ui/src/pages/Mirror/info.tsx | 76 +++++---- react-ui/src/pages/Mirror/list.less | 2 - react-ui/src/pages/Mirror/list.tsx | 72 +++++---- .../ResourceSelectorModal/index.less | 10 +- .../ResourceSelectorModal/index.tsx | 148 ++++++++++++----- .../editPipeline/globalParamsDrawer.tsx | 33 ++-- .../src/pages/Pipeline/editPipeline/index.jsx | 10 +- .../src/pages/Pipeline/editPipeline/props.jsx | 108 +++++++++---- react-ui/src/pages/Pipeline/index.jsx | 99 ++++++------ react-ui/src/services/pipeline/index.js | 13 ++ react-ui/src/styles/theme.less | 27 +++- react-ui/src/utils/modal.tsx | 33 +++- react-ui/src/utils/ui.tsx | 28 ++++ 69 files changed, 676 insertions(+), 404 deletions(-) delete mode 100644 react-ui/jsconfig.json create mode 100644 react-ui/public/assets/images/backup/component-icon-7-Failed.png create mode 100644 react-ui/public/assets/images/backup/component-icon-7-Omitted.png create mode 100644 react-ui/public/assets/images/backup/component-icon-7-Pending.png create mode 100644 react-ui/public/assets/images/backup/component-icon-7-Running.png create mode 100644 react-ui/public/assets/images/backup/component-icon-7-Skipped.png create mode 100644 react-ui/public/assets/images/backup/component-icon-7-Succeeded.png create mode 100644 react-ui/public/assets/images/backup/component-icon-7.png create mode 100644 react-ui/public/assets/images/component-icon-8-Failed.png create mode 100644 react-ui/public/assets/images/component-icon-8-Omitted.png create mode 100644 react-ui/public/assets/images/component-icon-8-Pending.png create mode 100644 react-ui/public/assets/images/component-icon-8-Running.png create mode 100644 react-ui/public/assets/images/component-icon-8-Skipped.png create mode 100644 react-ui/public/assets/images/component-icon-8-Succeeded.png create mode 100644 react-ui/public/assets/images/component-icon-8.png create mode 100644 react-ui/src/assets/img/modal-select-mirror.png delete mode 100644 react-ui/src/assets/svg/modal-close.svg delete mode 100644 react-ui/src/assets/svg/parameter.svg delete mode 100644 react-ui/src/assets/svg/save--return.svg delete mode 100644 react-ui/src/assets/svg/view-param.svg delete mode 100644 react-ui/src/icons/add.svg delete mode 100644 react-ui/src/icons/doc-not-inventory.svg delete mode 100644 react-ui/src/icons/modal-close.svg delete mode 100644 react-ui/src/icons/parameter.svg delete mode 100644 react-ui/src/icons/private-mirror-tab.svg delete mode 100644 react-ui/src/icons/public-mirror-tab.svg delete mode 100644 react-ui/src/icons/refresh.svg delete mode 100644 react-ui/src/icons/remove.svg delete mode 100644 react-ui/src/icons/view-detail.svg delete mode 100644 react-ui/src/icons/view-param.svg delete mode 100644 react-ui/src/icons/下载.svg delete mode 100644 react-ui/src/icons/查看详情.svg create mode 100644 react-ui/src/pages/Mirror/components/MirrorStatusCell/index.less create mode 100644 react-ui/src/pages/Mirror/components/MirrorStatusCell/index.tsx create mode 100644 react-ui/src/utils/ui.tsx diff --git a/react-ui/config/config.ts b/react-ui/config/config.ts index 4ecf3ebd..d0830923 100644 --- a/react-ui/config/config.ts +++ b/react-ui/config/config.ts @@ -1,12 +1,14 @@ // https://umijs.org/config/ import { defineConfig } from '@umijs/max'; -import { join } from 'path'; +import { join, resolve } from 'path'; import defaultSettings from './defaultSettings'; import proxy from './proxy'; import routes from './routes'; const { REACT_APP_ENV = 'dev' } = process.env; +console.log('zzz', resolve(__dirname, '../src/styles/theme.less')); + export default defineConfig({ /** * @name 开启 hash 模式 @@ -39,7 +41,8 @@ export default defineConfig({ theme: { // 如果不想要 configProvide 动态设置主题需要把这个设置为 default // 只有设置为 variable, 才能使用 configProvide 动态设置主色调 - 'root-entry-name': 'variable', + // 'root-entry-name': 'variable', + 'kf-success-color': '#ff0000', }, /** * @name moment 的国际化配置 @@ -157,4 +160,10 @@ export default defineConfig({ }, requestRecord: {}, icons: {}, + lessLoader: { + modifyVars: { + hack: 'true; @import "@/styles/theme.less";', + }, + javascriptEnabled: true, + }, }); diff --git a/react-ui/config/proxy.ts b/react-ui/config/proxy.ts index 2b02d8f0..0fdf89e3 100644 --- a/react-ui/config/proxy.ts +++ b/react-ui/config/proxy.ts @@ -1,3 +1,8 @@ +/* + * @Author: 赵伟 + * @Date: 2024-04-17 08:48:09 + * @Description: + */ /** * @name 代理的配置 * @see 在生产环境 代理是无法生效的,所以这里没有生产环境的配置 @@ -16,8 +21,8 @@ export default { '/api/': { // 要代理的地址 // target: 'http://172.20.32.181:31205', - // target: 'http://172.20.32.98:8082', - target: 'http://172.20.32.150:8082', + target: 'http://172.20.32.98:8082', + // target: 'http://172.20.32.150:8082', // 配置了这个可以从 http 代理到 https // 依赖 origin 的功能可能需要这个,比如 cookie changeOrigin: true, diff --git a/react-ui/jsconfig.json b/react-ui/jsconfig.json deleted file mode 100644 index 197bee5d..00000000 --- a/react-ui/jsconfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "compilerOptions": { - "jsx": "react-jsx", - "emitDecoratorMetadata": true, - "experimentalDecorators": true, - "baseUrl": ".", - "paths": { - "@/*": ["./src/*"] - } - } -} diff --git a/react-ui/public/assets/images/backup/component-icon-7-Failed.png b/react-ui/public/assets/images/backup/component-icon-7-Failed.png new file mode 100644 index 0000000000000000000000000000000000000000..2427996b7f47222d2e3408932666352306e6a857 GIT binary patch literal 3217 zcmV;C3~uv@P) iNr%5upL#(13xavjz9toB~aObDcJnj z-nl(zGK0qBnYnjncE-Ejd!@zp&i$M7&AIo?x#wOKkg1>~pcGVZWoJPGE3k(^0+YZB zOacYgU8!LbSb<5Pz`83nOadz~2^3g&rG~ixV~nlGOAYv`W#i*DN@?jTYgYVj0KYqr z-}T|ATTzsrIM_>I7AYg76#n^VV5|ugWg%U %Wp`@Y$ zl2ujXbDw>-RR5B(|6!R!_}eE4Z!ju&5|}P)9aJlR(j@3x-Q6&PpF1Z`z{6|TJY`?D zY#A(Aw+^Zr8sIVf7^wq)?u`Om(E~$Rt)OW;K~)zFfAbAo{_sN}Z3>b|>z41@1=X*- z0$ArAtaBei+Z&`Vw=zWw3_(>wHroY>MEyu_uQvF>2P#jSL jga`UtLn{&_BBIjxSRufGn<-+mjk2M^AvbLRXp z7ei#x0VB;~ns!CIf4}^~o;~WV 3;K3|vSwBKs9|l^n0VA_JeW9%lhL0YNn$wi}t2b>Zl7hmX>;7la4AeX-O8a2Hcp>+o7Ls0-T=B+am!^2OU zdg&!Kh@f&+X6> @8Vi`vNGfh8lP1}#%e^kS`#k$zH9 z0MjNWuHHR!X4ya{lNa~9s=b|6tXXqSO(vi81B>$J#SQrFw4eOu+?5a7W%k>mWxnUK zVgN>y`^F#Et`+7?uBEc2OMwiO?C7XxIr1Tv*VF*HwH{u-F5Jd%Po1K?T{tX~F(jO3 zJuq!@^3KTj-&dU9xl>3e^HBI}zWPefOWyhZmKIlN1a`&VpIwFIC?43hO{fjZRI_g% zRK4)RUA3fSfpDSOJ|yCBSc~^~+RuBJ6_^(^D=f-K-u-ie4+Z77yqDFXmeHD;P@2^m zX3k&q @CGXJW7ng zzi}?h$;xUdNf?FywiT8){~l5&)~^q|?C+*wJd>Z-e+nm9*P{no#WN&20n-2)Z?r4j zyw1jT9j(MPwspv_m1y?Q$r?<|pZ}=)VW3&8#3nTBJ49s?*ytz_U=1jU<3Zd~Zl*ge zMp~`JpwKMtsYV1Q{E*LTVD!|YmN9Z0U1*&$dV4<5y!R~Ldzy&0nDZjS^2NYcW@|?Z zLBkASos*-Z8&1^M3*D>T)8S?fhV^u;>+NMF^XDIp&6ij}z =8Qe3|oR{jmdE+``tYOy3m}TY6#< z%=zIxw&TIszT`lrc}8P8R=2ljD{5=+VYu7Vezhz1A+b8cPU90oOCGVOZGQlG?^OUl zOD(zXq-9BE2g2GPr2g16EFWB1M|K1Jt_I-j)~yg%5UB};=EPrr`6d0?gRlaRFhvDy z;XHtoe`ipZy$AhUUiH1?5=0}Y40-t1eEoG6!?nk74_T;i?bv`B-hJGu2)_w> ax@Q#s-WU*P*Gf3BCNOTnImC z9e=8W#}Blyv^su2d2!EQBij&RY=p=r=FKC`qL_N&Pyn}kixpT<0Y_0zkN04#3kCV~ z)dL6MzZfAEbR(a=f8>dO97D37eCsXpja|VuXn$B}Sg~7)Q3yUvo%(JT+?;@)joGm= zeN!L#9m6Dg>88zmiSlxKedxkZI*9o$HOzwof@?rcI853$J~T9O^SkeoH!$8p)RLrm zYB9!*EPC<9iP9xYl7?2j;l~Rv`j8aukmw{JWBn|R*XYOxAgvqw@kiBMSvI%SnsFTq zo_`+ZuKXn=E6UC4Xho8?6Oq FKAN8l3%)3je~> zAa0Dp)_-J_pCeEsOcIz6;p#&trX?-VhJw?z&`fcywo70>fSFm*#nvr>1rXd!6_LPl zEO~rEPn9HLIYx0+Cg`jv2Dh22p9uvwJ_~;)RM7y_9l(kn)}3-=M8d`E9mDO)4nG_T zQnCcki9$ocYej(S$Lrk;JygR7mBW78D5@b*kHKefT2w$xgQnqs^37u%R03M@K}d_% z{U{%UK?K+47hF+j7{=jm$5;Q4eF$~$P`mdYVA5FB#*f2>izBqYiAiX@-63|oP*DIQ zO(-paOQOKC3^w09=zcUpbu&8@NUK~rpby0=G!B2p_xTkCFp|@vX0}OHU^@>Q%`X^1 z?7AY$g~i}9) 7hBvD_oqG zcu>=~W4`SOPd~)cnn=?ovha-8@F; ^ zj)T@OJV(beF4LfUDizfH_uB`N{DDnlQ4?6C6C!!=sis(rDa#?bj0ME{k7NA}wijnd z*O$~V0b)+`3pr@Vvrre-J>}+DcAF<9Facn$AqEUOaoE}{P=#X_x8NWz*B6d1`oYgr zv{7KCI%prQ ^&4{FSMWje7aTCUQJQy9=(HhWS`bZ8 zK{#rfU@&Vg+vL?%kiZ^kS^|S;B0iNM-!!dYff>;BkTv{W{4hlOBa8+E&V6Y-%01 -h{#0&^jluh1kg50&$RmP^O8h}N5VBruM&JfLy+ zulWHXnm4Dw(DK@D?j;uOz)a_xoPf)`m1`$xvqHmWTKGZR#|Nzg14f&?%Ik}$0Q=Ez zScy;he%|iTpnc($3#?&&_bl@|GSk dcoHW8S@n0_L?T zj@NKLUC;H#iYV_b6fm=6MgU6#{#}bVpSS-3oRc6?0Nof0(7`i2qJ-e5?wkPg)1b^7 zP685GIQhk1S^|q* >>}>pad39ezBL9z+xA9xCSM#aPo`2v;-Er z$ip=#frXP_?4>2J*hL<$K?y9J{9-RHfyFNJa1H(+oYW%LgCHkc00000NkvXXu0mjf DGP4ez literal 0 HcmV?d00001 diff --git a/react-ui/public/assets/images/backup/component-icon-7-Omitted.png b/react-ui/public/assets/images/backup/component-icon-7-Omitted.png new file mode 100644 index 0000000000000000000000000000000000000000..33a4445eb39e6cc0c934948254aa8b2662edb227 GIT binary patch literal 3115 zcmbVOXFD4T15IK@f~!`E)q$q8X3W}qlr#jPrKvPVtuEtQjZKZ{trBgCrb<<8s%oVK zCA7wkQG3*=+Eiopb^pS9p68tN;e0#i%SpawXTb}BK>z>%ua%{#{fYbiM=KBme+9Yh`ML4s~D6web_~5>7zgG%%zQETmq*>C-bR#z5I%EQfu? z*%UxGwmj7DLpraA*;Sz-4eJ6^<8EatKiele84o8CJQ^;5C9-#e*sZWKoa|C+cJwxG zQevER-8R{-Zm@aH!m%Y{tj_vJ B_{|)9inpf@2|= zZkdd#1$kZvn!Q|frn<8a36!PET|lk3Zo5HP{@Bc22fNEmBN88>U0wJ6!<`OSp@*wB zhpQT8`nH4nPqF2M(E=XJ+TV-FyS3A<^tyz^M2o5B$m_>z6Ia5v=98a }}Q@C!!Eif7hPK%T*|M}*pipQF{XNV0y~Q|9eaCX-p?^)-*% zd&dnhCdBDl3B*-j311$N^ SMNjxVRC>L>TM;nlW0H?X(DL1EGx}IBGy`E-(^qBQ zpBXN_-sz~x<{FrxA;h8lV0{1JB+GiKb?=;@={1zzgK1jy_#taMQ8lM0B<5jSJBTU> zT3=dSRhOfy<&1!R?s(ue<%Y%;i_t V~#Yr3$#Md} WS+m+O z%@HhxhbhoVaZiSFN%X5L)V7Ane{w=LZzO*j6+~8u{r>zpDb-JJ` 8anTwL+&tvMP2 OAI9v+t5FA0J*^9j|}7k^$>9W-IwtH0-1O zgTOk+JPox`GVN%S7CicCVR`|Xx8pY4U7ny$;N^E$trResvkDP%7x=ZbKGi}_$x>Z6 z0UqSr2GTAe@=)6B@D&u4l=Nu^EqMUA6@!fKV2#8yMjeGMi9AoRP^HONg_*f<>kS~@ zfhV>|5HK|LMLVpcPc%<2-tFgnl>mp+E>5ompDLOVV~YY*=esC${mTBnnc7*KFLIkg zdpEXYhsc{dBlomya7sDLtf~su?!3X6sG$a_F{KQmbSti{t|kqL-s;s0-N4?*kpwFw zP;=W3t~Z5R( 5izn%(s2x zsi$&SdA)i}Ft$~iMdj=O $iqG~mhunJjd(m*OjF zrbkCsAg40>)7;J`zma{0*eh?zH$fin2Du==u6rR0aeHeMf*AiOXs@e$iCc0=vZMe0 z<%qM5^G`y*{b8e!+q4z$2+{iu$0XMHv64`G3lEqRxQx1unV;A=g$fA?xy_KF7<+9$ zTAyrs*(6;7+EX^;@axy5yl6Qm&oo~SX<7Zp{r;)=r(|Nbebwks_SV{|INo799@6qe zr=8h;K;LQNY<;b|X;WfQnBG?4K7;&6w4t!l(|@Y@NK)fCZOcw9hlwxRv*i(W4lra~ z6Kp)JMS%^x#m0Uti(mM4YdcThDR_C7>@miFD &f@P`d4!#TGJLA?yibT zO7^-nM`)j)b=rFO^zx_6*Wb_QJL*PG|8-8B9^njIIEyFXN=jeUt};uU|Eo};A$+fF z<9Em0zt7cuy?1{waZr& S>4Gq(ncur84~y)gY@@1fJL 9e*feXoEOpi!xJD|atqf$W+NL^$@8 zjg;Wdw*ghx1bEqF0j(FC+wplSU*af> |r7Q?XZ*4y+^D3$_QI!z0 zcPYMShmIY749F%PMC$0GzuNiwb=wqC0G{;em4`NHov?J*yrT|-Lk7UnSn@Z26$Ou6 z81w;5>)<~Lb12hi>To~)B*$GN>gs)O;v%VweEV%Ra`&ELgPw+6n$kyl`e}IxmdgG8 z&5oteNSs}7ThRp3{Ouj)SM~w =j`$|?gacyWyO%?W#x5g;G=yk4AZvrb?pnjcM3$ipITDi~6HqzN_ z11*|^X$NFtR~BZlLvG2Wd<_K@JR7g;e$a24CR8Gi^DoN`%SEJjA~40f0loG#_GoR6 zO~VgLw?YxWgK%Z7fy^1I?D-Lo$Ay1miXkL`a@`pzgE`ZD@B1J_WfnPaNdIA&J5Vs= z-Rt1xor??Cn$1&hZhG!%Wf&CJ2USBzMAO_t_Hkj4HMD|G$X4uvP*}Q`B34n$zq$#u zaNhO;gMa9TW{tuMm+?-skKXZxDGyW0^~LO01ePV!$`F<6W@H4%0tv55AdOjzPPt3z z5*$5Tn4pql_*5JDOoa){{WM3 ^_j67KiRJJ`|rmZ z5GvY6qgN&T&PUULrj%HbMM0DjqSVZ3Fg1fiLMls|j?>9n8K?I7z?M~q%z*HgR5WmV zJUC@dr3jVs+2?-Y>uj9pmE1V_S&W9hl;o=**o3)+rB@#Z+U0FAs6)w%Gj%ffap&}b zpWdv2TN2|#M)}!i{`-91Xg26KC4`;EyrI*E(RLA^XbYTpg
wE K85$>Ksx9r>!BG2J$Y@MJkR z)MjI9fNHsc5vk2v*Xx60G!zhih4IogQ4!v5U{U|gut|)mtPW?(Eso|bTvUTe?ECih zdKyfw!E3bqtXiZ&I_+Pr$&1R$0jYx@uSuj`rSur*h#oZg!m;izW)I~R3l30$)THeR zV_-GRld}RbJrxwniaC;|X>$vJmQ3J=+2om17ua*E&I9EfUUiGxfgl(ymh5p2DC@)L sHpjPw_@_5#kqX%46x|!~|6lZngLs?K2|`czoV @SjjXk3;}~#o18rj%BFx@BAnq0Ryg{#jS-~UXkAnf0>Sz1n6+3m%aI O0J8guWz zGo ~4YXQH5QXK0#{5`O>bvlq2cCa=WpAPpFr?R%jPo{{2 za06;F^kp%bIkbJaCi_mMYK08#9Az8tY nt|#HRzVYM6iT=uZnrhQG zT$dh4CB`IIp8QY-2PL3g$eHuUKcq;Ta@-mq zx+NaMKCG2LUTZKUt4_z z!(*N^25B-P=g?Mb&XsO4RF Wp zHn-Z|ov>JzgH&N%_fo)SG-)oQ{c))qKVKw5@aig6&vh QZ?8AZHu+g{UIuqUDo3UhQZXg?*7G}@1;1W SACIvfsacjk5BdJlyt{E^e^trJHnt zgv#H~sl)P=vv5_BjIohQl|rtt2$&3$`#rUk2t-3>EBV2N-{XC{9<>akaUN5Y6_5NG zXK(mVM%bv5)DuqSm3+y86Y?=9`TLZKY6iLgZ=^eoIW{a-lz-FHgb=*~*IH1!pbs zu~raTYzI+EcnYK@x7ig@wJo-pwm3w8xL1` v(Vt2+?Lf}nFkowLd`!S%ZYx(P z5tMyAE@oSX_!>McI7#Fu{1H#mkgvxyxS_Vc@3zH#n=x`LQR41rk~40@OJmyh0cOP< zf$76-)@#p;0TLP~d)yy5q;igmqUUG&_^X+2^WH7*lF6el^LUaNCW;m@(+KI?O{BLq z;i$soJ!7BpH<5oKROSbg(G9P6Suz V1i2~7V}d$-7S&*XB&r(=Rg^gtX7f&B 4Uer zQ&2fy@-0NtOY9hoo7E9x&a@R_YV+&{zCqL&w-a%Q@9mCRcbYy~vn0 zBQmo6xR$k=It|7}hYM#Pbtzm@!Z?YaN*+o1Hqnm8Lu}oof21$ka~7hwn5#^eXVa;S z!j1yW(=~b5mOHVZpWmRCY7m_`-)B?+qnb8yB|7Td3&T&;@&Y#5*6 f2*JCCT>}W C>j`fXOpxHkurt057)Vub@HmPjy%(J#KWOu>fF) zn0Oqj=()9@xLfJbNLR1cXji@L@)9ck^w?N6Z!ho_|B!moMn~=PBBPZ&Nq_+s*wMV% z%FDRC5 0K?Edp)_8D0Kn(wPsAw7F0u>9`lA%yq`U zq?ujTdktl1S#_4PgplGSEW7TV05ZG01|9Mjs_vHiF1OHlWg4Uf#Jj~p84CU$QLJcT zA|G;OQT1QS2Osp4&(J`(VL>|=+qdu{a82fTT2Z~$XZ7eE@)@>1vd@?Kk>w5p-YuFE z^SY_PA4&I0Q(p21GY^l0#>gL)Rc{)Nb#ZKtA=191m_ms+02#+~?yst+NqCo(`2W}% z>?)r#`H%dTUb=qaqa8F`4Av+t1UwRDNuzIf9k4i-6&SMb!0Zc{^t+cnMzE7w(V=I_ z9GJ>p5a7$I)?)8kOXf65tmIdv)7yd$Xy0_=-bYPkjl=aJFXv7i{n}NtM)4S4rkdc& z3@3HUoj~T>2021FIs?ImX%edB=R>}Z+z9aO pMS)<}eD(m4+N-!-1{{5n_4GTiZD8USl z1mWru^zg1ktb WiwTrgM$>#kZ2^L{*raNUn-Sy5cjBjFoYB|ixJnT!*>&Y%? znHndd#AF*hjqjckr|xNj?X5xysh&RLq}x_J6K6KQvBnpqvKkzt%s4PdV`Ea3`>MBk z$*Y>^@=M`g{$K4>TbkSI;tkmX^IYO$gTEG^RBubk^$@2uDq;))2Q2bS6Dh9VDSBK4 zyH<4Uep4H)Sye7_XzVT~|JOU;0T~+=-C|^2LM(TJemQ^c6t2<>{*~HU2+L2-cq${e zN7OO!D(P{w0ctk|z2T~E?eUY>m`%?0T#(3m`X`CE8+@~ Ea>7dzb%QC3C6&;p@2(%eqx6Hb zLrvv(v^Q3?JIaM~-=UvOD)l0!bQZ>|2t- 5})F`slLIl ekt@M;K3j*c9b8quP(gz~A(~j>s8XX046$(a~l$ z*zDV?)>_Q{I-1B%=%0PT$Pc=)4P8}^2$03?+O6qVHEqtxqzN|-3k0HA-tSbW3+cfb zgzf8?*|F25>JPa#w9{Ss?DGhNbP~m SwnO|GH=gB=ljC8okcV&$4MXJNL8)yO$U zjt-xza*lH5>-!hJ_j%s;{o(!L{po$4H{H(GT!2@a7XSbVAS~ea|2*h_ F$Z|sbHu{NnWa-hZXuGlOhFAI@Jc2bM<(-RHNXxD@y8-n#L46?+c9`{)OL2u zDYC}tWe`3pIrTf;_Q*dnwHCV=w)T8-V_<+X!ZktpGw_^U5Wf0$u}JTNMIIbMvtR~n zBM~603DaU+AoAD~qps8{ZEKJfkyBLXR*jdmbJr sH2K@`3A%?+n_C^0;kEHbTZ@f7 z3?Ws8eC&zgq-fa2uo>(=)wJMTKsX>_1|0QrEU6sl($!+LJ@@3cvD{_byHYQ{9OW!c zzo9Nkwu;96FeK5Tims2c+&6c^-Lz??P$}fLr1hRtZ*eqrM|OBTFRj+7z=0t<)V6XB zVz3*ixD_oP_g8qRrE+V2>~u2?K=%Fos)P&gBy-s~MeY3c(-sAA@Stn!T%by|hwbrO zbK19VtI^ygg4b@I&!J6l{>3H NIK(&hYZW9DfH%ILcpP zevOJ7GjrNf@tm<79cpL=1p7(_1cG`oSj-%hl;>HcQ}*mIAq;$QC@_wV2K=8WC>vu%u(au`jJDC2N zyD`mq=u2#N8osxo)W?0CLv7ALyTpEtR^7~k42m1*Pbva`MQpVT9`;GhK8~JusmfvM zOGrDT>n1T`^?5#or)s$r |fPaH^lUh#MGAK zpMK6&u&ixZIgb)`v{o;NbUaE!1ceh%)C2qfro{Dzigjg@gx+jl-U=`7rNDgxjz z=W{k+)`>M%0jwV29Og%GO2*wmNPOC#8kaU>b^G%qFY*A_pThyDW_HFND(LllPL3Nz z^bS}CsMF%%4PL~B>c?m9GY@)#M~l4*qqKhioP*^pYCikUmBDfg@^F-33^YfB*zCS# z>B#4jeXF`G1C1$F!LNhyE+NAly`hEf{y9b=%ck}ucY6`R@~jEm%p|(DpEzDgm|&2= zcl%CE1&*duZ$KiSr-bWDpQtt!OxExHz>puAfx29klb>0Ex~x2yIo0x;sJxN9o@@Tg zx7$BEW#1<(=E|zr#YI1>76%=U+*dgD-=YPnV76%W;ruqfeP%tdbtlF;8x|L%b;w;+Yq$LQHAmyi{Y#Y=FYMkf zSA5p5m(t50YI@B!V><`i-2Sxpk+sx2(jEw8kMlm8@okOC6p-?qPRcE@h3`(0fW;$& zlDbQ^GnA(VL{eEuhcg8v^4pllyzx@G$0c#v&rWY}nc_66`CF_I@v4v7uz?KUf5b33 zX`NF$6I*vIe=jJjvh`BY>$~+s_1+P>WThRA!#lheKQC^$?Ej5W(cjl%B)j{E#jd~g zuh978gx=LizGmAK$C6$!mH65)l#H(qKI(u!p~gPRmnvL3=w*xH?;VKbAFRis8k$iQ zYcY?lcUCosyAT2;A-6l^fWhruvp;&qw=m-zy~?L9i_ctbm0MK@7kS+4QO@KSQSdx- zly>WsAJs9jk=BrAs(v5K{iUIyBSyqEO7QI6@^tlEFUuqUNS*Hk5^Cyj2#X9G<(r-p zRv_WR(iGctbgMh)31Gp&EG^g>bVGPLNPC#3n5!?b6#U4hiF4MK54hSf+ZN Og9VI;HO;swhKP~zDTbDS8uKR&@k$pzgSrWb5fRu z)u(=PzLF!<4XZfG rfexbyFPWo-=(WYJl! z(*j*VHISvQ<_9 jQ-I$CauAoftq5 zs8iAV+uXTRl#U_ZM_a_7B!I)LIVo`$+MW`vD#cXV)VZuT)OR@pgfS66rs^h?mCn?~ z+bRh87)5{_B~YZqjZc%uUY1X9Uf99T&e9V$KlDkdun1s-1=j$FT(Im@Y2|`D^5>$) z_R>MU7a459 q>t6tJ+vz7;K26EKmiL<<)+&)l+CCpUw^7!Y4x`? zEf3!lTTcgeWCcMBoiZNtvkTjTbFN9b0m#g+D+hZV@z~CaXHB!$f<^{L4&tb-+f3f3 zHh>fPLQB=`@~; y8=!j;)n$<+aGt(?aGrtYUN(v^>Z?1F* zQ)AE?GaQF#z*qAiwe^F1exBjBY#@GdY_U*DLY5Z9D#(A;XspM=4E-?a_H)}Iv*`F- z^R9qA&lof$CqVgos#+8S%k^B)QP#>%&sX4yL8A `^A~7`gbO?pl z>%ua%{#{fYbiM=KBme+9Yh`ML4s~D6web_~5>7zgG%%zQETmq*>C-bR#z5I%EQfu? z*%UxGwmj7DLpraA*;Sz-4eJ6^<8EatKiele84o8CJQ^;5C9-#e*sZWKoa|C+cJwxG zQevER-8R{-Zm@aH!m%Y{tj_vJ B_{|)9inpf@2|= zZkdd#1$kZvn!Q|frn<8a36!PET|lk3Zo5HP{@Bc22fNEmBN88>U0wJ6!<`OSp@*wB zhpQT8`nH4nPqF2M(E=XJ+TV-FyS3A<^tyz^M2o5B$m_>z6Ia5v=98a }}Q@C!!Eif7hPK%T*|M}*pipQF{XNV0y~Q|9eaCX-p?^)-*% zd&dnhCdBDl3B*-j311$N^ SMNjxVRC>L>TM;nlW0H?X(DL1EGx}IBGy`E-(^qBQ zpBXN_-sz~x<{FrxA;h8lV0{1JB+GiKb?=;@={1zzgK1jy_#taMQ8lM0B<5jSJBTU> zT3=dSRhOfy<&1!R?s(ue<%Y%;i_t V~#Yr3$#Md} WS+m+O z%@HhxhbhoVaZiSFN%X5L)V7Ane{w=LZzO*j6+~8u{r>zpDb-JJ` 8anTwL+&tvMP2 OAI9v+t5FA0J*^9j|}7k^$>9W-IwtH0-1O zgTOk+JPox`GVN%S7CicCVR`|Xx8pY4U7ny$;N^E$trResvkDP%7x=ZbKGi}_$x>Z6 z0UqSr2GTAe@=)6B@D&u4l=Nu^EqMUA6@!fKV2#8yMjeGMi9AoRP^HONg_*f<>kS~@ zfhV>|5HK|LMLVpcPc%<2-tFgnl>mp+E>5ompDLOVV~YY*=esC${mTBnnc7*KFLIkg zdpEXYhsc{dBlomya7sDLtf~su?!3X6sG$a_F{KQmbSti{t|kqL-s;s0-N4?*kpwFw zP;=W3t~Z5R( 5izn%(s2x zsi$&SdA)i}Ft$~iMdj=O $iqG~mhunJjd(m*OjF zrbkCsAg40>)7;J`zma{0*eh?zH$fin2Du==u6rR0aeHeMf*AiOXs@e$iCc0=vZMe0 z<%qM5^G`y*{b8e!+q4z$2+{iu$0XMHv64`G3lEqRxQx1unV;A=g$fA?xy_KF7<+9$ zTAyrs*(6;7+EX^;@axy5yl6Qm&oo~SX<7Zp{r;)=r(|Nbebwks_SV{|INo799@6qe zr=8h;K;LQNY<;b|X;WfQnBG?4K7;&6w4t!l(|@Y@NK)fCZOcw9hlwxRv*i(W4lra~ z6Kp)JMS%^x#m0Uti(mM4YdcThDR_C7>@miFD &f@P`d4!#TGJLA?yibT zO7^-nM`)j)b=rFO^zx_6*Wb_QJL*PG|8-8B9^njIIEyFXN=jeUt};uU|Eo};A$+fF z<9Em0zt7cuy?1{waZr& S>4Gq(ncur84~y)gY@@1fJL 9e*feXoEOpi!xJD|atqf$W+NL^$@8 zjg;Wdw*ghx1bEqF0j(FC+wplSU*af> |r7Q?XZ*4y+^D3$_QI!z0 zcPYMShmIY749F%PMC$0GzuNiwb=wqC0G{;em4`NHov?J*yrT|-Lk7UnSn@Z26$Ou6 z81w;5>)<~Lb12hi>To~)B*$GN>gs)O;v%VweEV%Ra`&ELgPw+6n$kyl`e}IxmdgG8 z&5oteNSs}7ThRp3{Ouj)SM~w =j`$|?gacyWyO%?W#x5g;G=yk4AZvrb?pnjcM3$ipITDi~6HqzN_ z11*|^X$NFtR~BZlLvG2Wd<_K@JR7g;e$a24CR8Gi^DoN`%SEJjA~40f0loG#_GoR6 zO~VgLw?YxWgK%Z7fy^1I?D-Lo$Ay1miXkL`a@`pzgE`ZD@B1J_WfnPaNdIA&J5Vs= z-Rt1xor??Cn$1&hZhG!%Wf&CJ2USBzMAO_t_Hkj4HMD|G$X4uvP*}Q`B34n$zq$#u zaNhO;gMa9TW{tuMm+?-skKXZxDGyW0^~LO01ePV!$`F<6W@H4%0tv55AdOjzPPt3z z5*$5Tn4pql_*5JDOoa){{WM3 ^_j67KiRJJ`|rmZ z5GvY6qgN&T&PUULrj%HbMM0DjqSVZ3Fg1fiLMls|j?>9n8K?I7z?M~q%z*HgR5WmV zJUC@dr3jVs+2?-Y>uj9pmE1V_S&W9hl;o=**o3)+rB@#Z+U0FAs6)w%Gj%ffap&}b zpWdv2TN2|#M)}!i{`-91Xg26KC4`;EyrI*E(RLA^XbYTpg
wE K85$>Ksx9r>!BG2J$Y@MJkR z)MjI9fNHsc5vk2v*Xx60G!zhih4IogQ4!v5U{U|gut|)mtPW?(Eso|bTvUTe?ECih zdKyfw!E3bqtXiZ&I_+Pr$&1R$0jYx@uSuj`rSur*h#oZg!m;izW)I~R3l30$)THeR zV_-GRld}RbJrxwniaC;|X>$vJmQ3J=+2om17ua*E&I9EfUUiGxfgl(ymh5p2DC@)L sHpjPw_@_5#kqX%46x|!~|6lZngLs?K2|`czoV }01 z$aI{(kifJR3RLPJ3K9gZe{@<<2N?l*%;-q#XcCmtsw06;b+oNefsVy82@z7hLPN+G zN#47jv+QQxd)a+^@9w_ky}Y|Kk0fvJ*Ph>=d(S=R?4p1?GD-qUMvYbu79_9?y9p#P z2`s}TkYU4>8YY2dm;^FxxKhI;undzxh7DJ0m<2G#*kU|Yg`fFD?Dni2C2w|YQT*;h z{O%lncM3nvilQ9%gS`Y6BV~kCiGQvKU^M{B1UhwP;M_oWq$9U4dK21jpV3N}<;{hB zbpnhH6c0?vot1m133e0f9Kc_8A-vX9!IQv9)OSE_#ZQO?eWvG4INN&^&iDNdZVdh} zsqF6wPJ@~G3t>*d<1n}IF{5l4f7zA_a9IxwVQpm)eL(?r{Cl@vho iC#T1!!z(}*AEYdc}`U-z@b)9;q=V(e`8I8^@d>mGm{4|=Y7IfnjS>aaGvI^Lp zX)t;mVa@s3rRsoT^`(@UZdI-=Z;Aw!{Idvcu^VXF28_(^&}-M$!@FItrJ7S*`wx#_ z0V^i&qVK{847Ux=j;sNO+O-Tt)bMuaUTEsr;!IjDYgHF-hc6bbrdF0Cv_>b*Wd$&O z-THS| i8X0zA$p{IR z(#))FtZ7_AM^*qszu(0Reeaj;ZeN}j*ZW*q1FOjYd^`FgrwY-+!f9~ (LZ z)~*~S7bfJ~3mt bfEf7FhYswBmfjSY6bZm$J^#0Yh zsh4M7rZP=9Es` Q&OLCr!`_yN z*_SOqEu)wk*D>0GX?w4qw|`v=m3VoKQO6^!reV#Zwoi8-frD3Sxw@f{%(G>`r?Nup zm}_8@SF`y_6k|yW2+hS@SLL$Mi%S7EJpu5ewuf!wT1HpsI-<}>(w+&{+VaDwS@#c@ zJKggJPKB$uM@%05?@oW0$_ttIu7FLdV^z2dJ;pssp9>nmcnyyHz&LoSWDi`z$nwz} zFPV-uPaO;E%KzvJmeH_oc=!XXD8!0_0ccSaDDs&DcXuMda+DyfD*YAADxg#j0F05r zfy+ WAPaN*jF0?V!_0u;QoZE*KBd_UVSCXA zn)M-U=YWWnXg2NL7;J-kg41I(%N;CgD8@>xL9;&0d%cd0jtl`-g@QOH>XtGyEDV8? z#vS-1er@9wc5JyA_tX*u#(k5IYG5QF)G|idP=~HQFC E@PM!q SR=s`)TAZyvPt{lhC(j@K_5fbd;sj5>pWQQ}P-PG{% =V_u*=TQ$#pBC%!=T;GG(Q8OXdok9bkcY#l?>n$btJz{qhb8OHx1+om#{7K; z+jwd4pTXVj)ps?g1HJo^$}wN)MW5w#QSI`5N}OEBPU0OxArIe=HID#nUjdro;CG6f zaj`KWm5m5%rxPLgreW#e%4&EKVBsu)S1vv>{OFJqp*g8Tk0`w`^)FQQIKpx~!( qX*en&S4`3ILz`e8Ir9Y@=TCj5k)nD0` v6*8QLRs$TfO0|f<2Y%oNPLSIlu=FsGm)77RsqTaL(Pjmh+YY_Ek_;~Z$#lt zn+oq>;P`qstlU$l91;Z}T3!MZkQhy!RJ>$0)T7|;Wb5dMU(t36OaPcs6kTl15|{(Q z-K{DTn8%XG4SHox5GpW>t0;iZX8hU7RPCKmaDA`)cS2 zpR!SeBS8x0(0ihwDp^E;+Q;+F3_VoW_A3WP`pBv&QOm(+aFSO*EDAN(erccnrGW~- zR=g2HyloGcW6+A=>P5k2g@$1s{s!FozbYWqZCCdte+HN|7PawJx9Q>t?bP59Ea?pM zy 8nYCBEkkE5j7XMGb^}OY9KfuSc g1f+HTbm%wbKX=WLsHFprTOWeC*(U)#Lewt`8VjmL|t4Lrrz{~{X#oFZ*gaqaQ z7*17=V|iBH@jj6wf!P2nsbwvR9)2HzZA|pKNMLrr>TtzMI8p)3V(T!%2`z!8_mn6# z%+AE-F$M;PG=E>KXj{q3qf>c=*TXEiMrxRyhM5a;#GUUJp4nQ7H^#)oy`BVSBWViD z1Qck9+auXHXhq?fI+ig^gYKzH9*vi2ZV6JtyP9$_;=& kBv7+KZp#w2>oH z?R1Q>^&EQ(c)bE%4AN-B!a H)O(^3}j =7H2Z4WNob%_v}WaeBh& zDYJYGI#1z!{3ncg8BK{AQe4OAB^^~HXuH%n(Ub#G!8 #pKff<6=^Xu#B-TA!Jr1pMd20LT(_mjP?CtaY83ShAsqnql>jQAPl9crm? zXpG?Ro#-8*jNoP~t1jK4jXGdL)1gJ-bcQB@Wf(LGEQv}c(=;y~&myye1ZE?xB+zW1 zUlRerTh>!xXnAcgo+aiTz}+r4Gzb^$BG+cnMumpmZQ(oZA8)iUCXCi3tFHx70d}I_ zun6z+opw)$IvtB$J;xd*`pmN3K<@VWR3xUR;+h--qrsTPg;Fs{KiW)}jj`Rex&oH$ zp*Xva)9Jj|4_2h|+FSuM2Bs&lRN>$F(#Z7v58%uMi2`WGRDiIZ;gL!RB5ivDOr%3u z)|~_-Fn99vy|x7AyU5*jD1o_?pYOFLFyBS)u0sjTo&0>SErIzia(5j{VD9ASdu<8K zcagj6Py%x&Ki_LhV7`moU565wJNfxuTLSZ4 n@^l=hUiI1B= z0_0Ih0+ayNb0SU!-9OgPG*J(Q4(dH7&f2i;9JY- SUs zmgmn`zpHawtF0+${} hb5d4pt(+Dd1uCgWTsHo{ry+b{lA8Kuit;4o9+Dw3A zTISmr@ur`V6qFQHPg6-jNkK_L^$5hKpnH$?QhvACzu7fiOowV(#bR!EM^m;N)|xuV z8c*{7Pp)t19oo%)4*j&|gT6h|y&a;L==h$ildizgthd+Kov-d>$4)(OyExM#O($1p z>QxA&)&PYZ5lKn$qEP^|2QV)Hr5|E!Ru+Nj4bjuT&eW((-Sz+->2nzLeVI LS+6KM)P#q^9=~fj<08Q=<<85 z0pgM3sj<6jzu+*N(ZuFVSvgA6duhZuT>(`MuaPY aePc#MB8cF`&(k*=F>BxWmGZ7wMnXu%HYuYwE;uiAsw8qq`@~ z*~mMJUYh{0?4Mxc__Pd|Y`Xq?1?RPSk;}Ee$_@s0v$uV+Oem(f81-*t6)PGpMfF*S zkzU0=4l>6!P`N|q^u|Ce ww?^6tfh7N|1c1SD#9w0F?U=PIfJ27k!;C`};bOq5$MtqRT?a{m4ar^170rt_mqC zKx|}wsyYZ#6W>SFG+12uwfeP^XJ*Agi4M@Ba|{YcNqnr`#dne-F7W+19PCI+(>4Vu zT0qj&VrU@={U#u76`&A*v?yB_(ya%SZ6k#9x6G+KUR8){A5=vdp>-^Wl;Z9=*h%wc zfY@K^&9eb-Tt3Q#ROTE`el0xUN=xWSuCqKtq8<9tm3ZT19d_Vd?8L{mH-XA1Xn;c7 z`iBJ?eM8&+rzy5nMOD)!Hf37@aRp8)LAHEPu+$B*bxxl$ZQD{7W$IP}RHxzFQrD@V p+hSxLI}#udy#y!$sx!fe{sEie=yqg*pWFZd002ovPDHLkV1jW{tpWf5 literal 0 HcmV?d00001 diff --git a/react-ui/public/assets/images/component-icon-7-Failed.png b/react-ui/public/assets/images/component-icon-7-Failed.png index 2427996b7f47222d2e3408932666352306e6a857..9854dc3865757a74d104bb4f2ae82741dbcbe4cc 100644 GIT binary patch literal 6512 zcmb7})mIdb+r*dd?glA=MLMKAm+oGW6p-#(Kzb?ZUT`I)8&+7lyOb^^1Zin}zrR1> zea@L@?&fB0=A2K0uC^)xE-fwq03c9TQ_}y>-To(R%>RC>qsi2NhVG-FZixNgg<{*s z0{}Ff>Pqs4f!3#1IJxA?+2LkJVOtgR{mf+@cx6!|+pVI-pV1N}u%p0CxQxGpBU7$w z@j^@X!eHU7iL)E)l{L|*yW(}bD3z>j^HK2-Y;29KTcfPTe-jcCHC@$0&D=Hl4`1(k zPO9sm(7=nAKt5|kAPJWqP?-V?URfrp0vrM)HE9#00WnQ8y_m;GlhsY}8(#0pWv0_* zG*E-}h9h6IigDNqAj_a=dMY14{dN##8my-@o{yu0GZi}$n|@V3rvtK~VXW% Csm3@oo-@K3!=2+?HUnpq0G255)mQU(dswv-Hw<5NTd(#`4 z-#@;DG>M7vY`MF*WQJajjo*IlR~YZSp8s=)K!{UmP~2IfZWj{8ay>hu_^2;7Z~sPD zwJ6v-Z*o{ZZgs7?nq^V^s*M7{--Ng<&@b=X^DsJY|G~-WdeTD0Y~V;EreIU2>HTWX zPS|t(X+QgwqH~pC^EE-Sw8efh9cSr@N~Sam{rukoG< (iqm~>hA zlWV@ZF4kCPbdAEXt`9CaYwur~1XL&FVDbX0RqnN5M69{i;8a|CEi}Dt!woQRH1ngE zhEOC7l9z!BVB|G1DUGJiZ1Hr!c+8!JNK8CndvQwd9S%-noGkjwNLW%5%cmwbo`ny2 zm1a%4h_ot{fc6NfxHoh%X&mR`tyo~?R|G|3sh7j42i2gAmT)wnYuP9y)BeX-VN8%L zQ?djJ{xqh%6W63~e^e>6@Upjn2~y3*8;eA9xh~|4pjIwghsdTy4W7z4RZHzUoJ;vi z5~^3?9WBlw6FCjJewuqVrzSO(vEVBN!BHB6S(XtoeNva`$noFQrxg{Ut_(L$9iZa# zXDjhk;4uS6E4DHY5Sktfr!!HhI+ Pj+Id8V27}H=K5gC8Ch0Ca}(tL)Ax)96q^@+JW;?`aeL{ zF &%f-|;OP#$` z{CJZUfgM!*rJW(HYFLj>^n5><0S?`;k!L4EA FPXSZ>hX;D>`P+6p+%Q=Msl4r|3KOy=mMGK$MdO_w1CGf#n`W_ft@2ZoGTo#nI z73ih$VC5Lxx_a(Pyd6EmE8KBK%L7k!)gCZfbDq|t>QOlkfGE?CGeHS|GXsOMxqkci zoUB2e!b_&Zbv)%Wp13p(Cw2n###{QPVdKC#F#+va7n{nq4HjDvv@J2IkohF~SV zysBZV$>OyiP&avpN-ASU&Q>vt1(-PMH)h9pT~-hKMd>Fp>pB&Y^Pa$fY9H;*$e&bM z>1SaE>qZ3=t`npK@j4f=GyZbCiM1Z&=VFT=&uPa`N-ICl^1f!rIS7}*ovSfFNBAt{ z%M@`Z4q-48_~w|a31&r|@oQzgrEr|>U{wh{!*y(bfI-MncOl2-xH@lXEnYb(9t8(I zpU<>VN0T;;M@RMwMBC%Z@{c~Vm6{FQpKqYx;K`zO#%>gq9Wd(aq1kCzn`B@+ijMqM z_WiAq*t%S;>CAk=1L_ohLoOi&SiZ9+3KjTS&63vR%WWtp(jQCO%H)mhuZ7+*g6~eB zRp~eenVe0-OHm9ef)~O3pMG+DlxA`Yzb5%7NyMElnO#aw4(|M7hhbP+7QdmM?P8{t zx6kes`&vN2=QTut=0(mR!^x1~LDYTH#73Ez{|?P3!{ys5_s6l#`BNAkEjPSgYd>UG zIR@9%1{Q-$nZuxm6x197f1NavXONg;V*?ofSkk5vtIIr&{?(K~l#i0zE0ClPl|Tw= z4B~i^o<@GWsZ<1T1nAms;NlP_zUX{FLbdZZGO m_R4j(wtr?+Px_2w@1-#%2RZpM&-}Z+&`;j}M`{ z!Yza~i61wi?pk<>F%|Ec7?%2Zxpt4cc!2)o5BTmKH~5XZYgBM3AbfC%|B96{ Fb!UAi3a6FOkcKB*T;KQEcG=E zz`q264^~A=7F D($U-!a%!fIM3^f`ht2Ev~o2v ;;A0#QN=tIe^70jn!}7}~!KLp*-Ih^=L}11|RMU14nHyynV~kbIy;(Ko z)y57A;K8RmW>dLgTJ@Cjy|b3W>;ayB#qyQPA0Cb#poi;PGbc?_9{m}~9Q _o%zzLyztYs8UB4%vVzkIP5>9;u6?*nzcK!LdE9YY_v?Cl*neW&M_Oyu) zm;6U6U6|kt>!!3%T%^A+C$-d
di(GzTLE?49I5eGxfU1Iz{ll?%Qqo<+1hn-^5pl$*%>*PXx$K-JzN8+r z{1iatkV6-^gbp9ll<%#xhE^wh@Re(M!YeM;WK86qET+aOD%7W9JC95*!Onq}L# &<{# zLZgySe_dX&Ta*J$lSYQvXPtA&Pu^*w<+29S@A99?*{+UX^{}iTZx!B}^JA^Yc&}cZ z>FDmPU4)%IN5BUHk}FgjE ?sn` zMd>UZ1+CD7y=S*0`IWrC)BDwOzlQgHugYStj^VY&Vm-D3bhMQh!Zur_c+%a?z5@&l z;R^y!%?-1|ZzQF$9G{4*M4Aw!UKsEH@li85bwcK)opeQUP~|Fbxqry>EgGwNs8D7j zTVwF4#R#h%P>{LAqXa*_{|ZttvHl~3+zD{36&z mKUy8Wpao1Fe#pyOheh eHgQ5$)R{D!0ca#UpVRS zebbJuYP0!B&>oMdg&Y;WG$eJ&Q3+XQ*!W*Z35cX2nfT9E^?P%TdFm_~xO$boe#E6? zat^{m(klt{!cvHIW$Gbk!=^@PQ)yGa{n#|Pj?lhaGPL=rRi# Dl0`NLl^iG6-44mD7S^PxAZ%0UiSW%xB7fLbsQz&M(3CZ&RyH& zojBObGGk`U^UQfD-fa@+6J>1HoHI>$yIUh`o_wwsWUbjB%A@{<1VcS^Uy+zGgdaik z+m@A%Qd1VgP8b (icokUWUbT`N69>3_I2L4-y-5xW4vLxX^J|p u3;&3ceo6<6%PR9h`* kBBfb{!`Q^KM#N#et)w=RD=|O)@{%U9@`oGxkNk9BZ zP8_J)83#IUAVj7{*q9GQ-^hH_CKb=!ppo?91{QCgmH7;=G=_Sa9h@E(ztJ)%+kiSY z6H)i^X!zey6+aM&EH%vcdv3<^ZGeS!C}f62;HoW^n9|R*{HF%ePY}2iVdpmj7*ELh z`H4AHSpyC=-hKDxD=DEv+v{JwLO9g}rWTbWxJ%qNzk9eKTzkp*R@RQ8Gj)`a-vB(6 zx29hgePp8LV|l 1hsHF_tf8K|v)CVgC z)qt--fAcf8VcL^ZqAqi!<6#CU1~-d};;6epg?oLRc)4vnLiK9vF?&zHYVy$ehTYHs zH(X0^8a^ytdeNo}tNkYD_lQ{|+r6xoifiPrbXN+N$HxP|-)8okfN{UP8JU}Yh>;JZ zH{^|!2*tqfGW!xsDBk5_`K<3^0mD4l#2+Kw$DoA5B{DNk{a+L`Zo!t ZtKBOtm_JQy&% zTpGtx`S{o-+STBf_3sok`VZT=Q?VBF?O$|XH^ApJAGBEQn^)8V_|_Sk2 ^*q~~Kcd}7$pL%Kw2rWn} z^<0sdfY4conJO>Au<(6;OUrP`OpiLbh5L8&QggC*4ez^-+z_FAEQ`+&+J;rZBf`q* zh=(YSHJ5O$7~fP`7o_(zW##~5_zFbhv76pEf3p+Zt4>`Xx8wY6;Cl-{jWi5B#~a#W ze5qFQaY1=U0C_nY{?w-2vasyW!{BUkk9tr3!J -(@B9*TV2{IOy0m*E}p6+t>tg z{FMy@NT+==9L1%Bct#n%50xMAVcG^hd0lrc{#j%6g?T^4QY%qepWJxP4n>BRm_N<> z*bv!#8=t#euAodppeNMDB?6Z|iASJUXB)Tm!|u+yaF48}b7b`FIpK3yfYK3o&XEC> zhU$(7tC4=s_S#U+u1P?}y{@iYbA#-$2Vfw_L*Xj-Zz
B zLv_>1flc(&jJ}fq|B1ce`jXc1n-_ItoRl6>Ip*wuIIYy0H9a7gH@(z2^5JVwgYl)9 zdi{D#o6`jG&N)C-r)bpc; 3DEfN8=&tTN_>Q(T2lMr__jlA7@|{UtyH*YM(2n!bs%aR? zbrXWYVy}u8bM`NOFj3RZL{h!$)ieq!dKGu^6HwSrWn!Wx>nv!R)rXI~lX@8xH^<8Q z9h!kbDltnrInc25Ds+q=oPa$HYMo7GUevNjKHEl)QMN7Gjcc^%QOb3qD?$52(3yWV zqjN_J1P0({-&DMlo@{m%=vG?C(-~Rd#=Kb3=dYT?PMQP&drd6~v+gm64cP@JDCTda zh8Me`vv$JuUdV=SL0;=0C}nO-U n&53Zy#E`>z@!D*?_aRQiuML(!7M+BS)Ur zdL5lZcEZre+cZv9jMZR(=(O5~BOq2V8vvZSPpk9n)tv2nnZf2&xuV4c`b3SkIP8HP z@pdq1rqL_T_Hsv_emMV(y_$*HX=ExIQlNjmmwj$EMc9R4m7|XAl~BL{?Z{J3OSb); z#EE9mNxnq#|2MdTA2OJieGGxABDGe+J?@=w`c|6hOcNkuB+3=6ixBF7Cvaq}eZG>R zfPue*6EU2*qi0lM8!$ts8~5#1`}OQQHXU7vgPh0^>y!B@C +-&+xe|e$$g!|?aH9`W@mzzUN zB #7r`RJ*=-tTjaqkLcZ3@`nxN#7juE;7tVa+%+BonaABCsU2R4Z7x# z>$bF_q20okw67hI*ZJr=Cgs#6K22KDQI&FQR|w)^<~mte1eu8?TrpP}Z1Y%RdHlni z!b(E{KT}xIhvbB$%oz2f5jTw-WFB&{E=u*G4U5bWd%fLgVbp8Nc_1xw6N_3^0#Amz za-Ir42AWm2uECZA_2zvp36I@S(Q=G)Gy`JCskaUqL09CV=O?lHah)XeTRL_bgU^mD zRF#NXfMS)IkW%cBb`s3`Wq-!t%= HxSG9J8CfrdZuKfEI*@<*}I1!XRlV2IE6->EB}b^8K2R(7O#}GOBt? z8so6|v}Id-Q@5c}KpRnR4opQ4>kxVh%Bo!WZFF6yenJ^|RT4wRc6iSMuO@bQB4P{r z%J+}_EJ6f9PZCdVu;NY#t|Ps#4HZ4{QYl3w4f=q(dZ%~I=?tv@#3q~*hJL_`&uYr* zaYeSVB0T7skK;F$oyK@ze7acOT?kS`wi4QN_VMCqUWDW|!WzBXLokSf#>r6{a&dh7 zTBts!i|RW^%pF1PO}D37UKOMhXHf6RsUNqSMj`^SS;SL(ZY{5c|LWx*zABd#v~$CD zDpped9TA$x?(Zy1q*tCKSgQwv`8d74v^(Rtp$v8s6g$Xf3oORYH#1K~alQ|i%m-}+ zv@G0D)j;1Cimbte6iop>D@Ew8Z{DVqD;jB|XQ vPvVLr*^YfoSEdM$GK@pT6zvA$P6;n^8BMQUS zOZ?MjLlUyn>kLnA(;QlU#d={ZFYONH2XlYokDF*UU>r^{U?F*jGVKDMCf?U=qvv`* zA)iY7qjI*UFYTmIiCbwT_v58%8OXY)ucpH)q`*j8Ss?1%(L&}1up)N%VqOp}<5HUz zJ~uF`_VY*<8EO%4u&J;A8g0!jHQEp~kcX^a<`wZ;ks)N6Xe8~e7oz%p{v)}HUj>M$ zi@W%W0sAlvuO%!_E!u$w<5GP8jMboPaY+{>^B-qGVfcUIhBD~-Kdf@P0kk@rQ_KGl O3P4?1Td7U~9QA)dX*4JR delta 3197 zcmV-@41)9UGLadOGk*+7Nkl iNr%5upL#(13xavjz9to zB~aObDcJnj-nl(zGK0qBnYnjncE-Ejd!@zp&i$M7&AIo?xqs(g6p*Q)B%l;jZ)Ime z0xPhGKmwD%3QPh8)?KM#5?FyrpuoB-HB164FbNb`ccq580Aq};$4d?Psb%BiHA-pe zDr;8!ZUDbKkKgs-r(02!o;cV`U=}GOq!j-7XJD)e6lEb@x_|NF_{7La>EzwJaPQnX zJ@>qoE1{&K0)LWKRpWD?eYRBplCl3`nM3&7CkSsaDtHo@E^8fBD}K@>=v&?0FoK^u zCr-e_Yu7wwU$$%+ELgV=su~*LG5i>*1Ap#~0$kApLs+e#X*)qx7Yu*%4P5^4Lm+Jm zl1S^8@7e{`ue<_S=N+tbA41z3q%OBIMGFi;RYEq~1%HV|{YY=GHu%8@Do>k41y5R+ zdgmRjs=i*uHhQs*jR@|xXnC)EMG1_CK<(kfV`^F1bC*B*2(Ewrc`jr*t&XLyzYfda zejBt056-D`=KL`iLuAnbBh6x(c162?zx=|UJ?gFF$0LDdR{B_DBdmD$T`e(p?kEnC z%fo6~QGWr`he1v2!6$xoe{*wU%&__*C5DxkqgA>3;K3|vSwBKs9|l^n0VA_JeW9%l zhL0YNn$wi}t2b >Zl7hmX>;7la4AeX-O8a2Hcp>+o7 zLs0-T=B+am!^2OUdg&!Kh@f&+X6> -Q2^5>Ca&H+b7t8 JJ+GY0JqGi74vSI*6ll#UW)~*%iOs=J}rAvVfl @WNfSq-23`q1iqp;&51t_juaRdzTfM7c?s@%17S)bAk^A z<+r?-)uEQrnwn6W)f#5bU-aaY28bp*41c?(*{{>E*`LY4z4Nr5DVAtSX4R*kQf6QC zSZH9?Ev#12a4kszUt_V@ZH3FVdjr5OT @CGXJW7ngzi}?h$;xUdNf?FywiT8){~l5&)~^q|?C+*wJd>Z-e+nm9 z*P{no#WN&20n-2)Z?r4jyw1jT9e=IFG`4lfua#)_&&e80%%A_L`(dD2ti&cX>pMhc z64>Y{5MT``h~q)rQf{U@Ek;_c#GueD?x{uuCj5}kYGCx#qLwjo8(nCfGJ1PH(7g97 z-g}yewwUuG!t%wyS7vKR3PHmRV4ahrqZ>}t*9+aN-P7S_4Tkk}tn2M%C4ckhAC1kI zSU|vh&0|(zJk#9@jl3LZwrmkmE Gdr_QMt1q6%&Z?4?x>8YT(Oe7Hq znyV=Mjpu ihumX=TMFni(Jb;sbXHb^C2mM=K^}Xa0L?fsSd4KrVeEoG6!?nk7 z4_T;i?bv`B-hJGu2)_w> ax@Q#s-WU*P*Gf3BCNOTnImC9e=8W#}Blyv^su2d2!EQBij&RY=p=r=FKC`qL_N& zPyn}kixpT<0Y_0zkAL@ItP2JC^wk3g;J+9l6?7w?y?^A1e;h-ypM2{r@{L`=HfVoX zXjrjZiBSkXOr82}7TlbGpN-kEF?~}X`5nU~dg-Rke2MaMdVT1^PdbSCE;Y=90)lHm zO*l;2Ha;{oar3+Hk~c8kLe!F^d1^7njVyZc#fj1-OOl3Gy?^1y3orVR6z!1cBp_q` zEREOb$Oj;;8~gD`)m&LNx73<(9Sfd+9_Ft6B_u1#&FW}HlC~3()<%*fFbA<3rwULM zSOfYY*P>SfZOiHDr<)p_{f`R&!qXsbjKbD`WR#yHP$Ntdm=EFVLno#sEzpL7)3wk{ zajmvXU_OAES%1;R)-8br5Zp`^k-%~+d3-@nl_X&~MsZap=&UFPx0$M+2?aMk3x6h5 z(E!sOz=|H$opNJD!o}+y!|lorKO6~CvINhGLPNo8MS$wZ>)i}JRKo|A!+zQ*sv%L2 z!Dnz 6}C?A7C1lQ&lTz^q$7{=jm$5;Q4eF$~$P`mdY zVA5FB#*f2>izBqYiAiX@-63|oP*DIQO(-paOQOKC3^w09=zcUpbu&8@NUK~rpby0= zG!B2p_xTkCFp|@vX0}OHU^@>Q%`X^1?7AY$g~i}9) s~`E0_mYS$tzr(mUvLpw`0ET2v0x6(wa!qCbIC1*YGHTiIBoP zUi;BRjTEyfeQmA;I-N9*<}|cY>)g5}fe8Y03gSWG;?b?pz#GO~h2PB3SqpDW(=-n& zRRR+L<`%@mGfo7m1}6Z3CjZbu a(pnXnr8)hXi zjzpba31}$9cc+x-yAuzZQ|LLC>B4uxX`AgOFpe~xEJL*B4x@IZc_2iu8`k59-D1Qx zs_b=0U>vDB2`CqHS5OcVSO8!+R0Uqkb8Aj?M~(!>0k))>U9x-lV+6Lt?sbvCc)&6^ zV}IFF6u?|w9i}; SflXsk z6Ii4ZB6;wsrdW(A%OSap1;qM~WBm=b7k_6**O$~V0b)+`3pr@Vvrre-J>}+DcAF<9 zFacn$AqEUOaoE}{P=#X_x8NWz*B6d1`oYgrv{7KCI%prQ 1^UQ0TNFVOkJPP(e6qnqV+%F5BeQRgl0QX<7n wxhlZISEw z3{3)aA(*ewBrp$^^MaO3$Fqpmn|UNKj x-xW`_XS$iBI`{-tN$#ec_c0tYLolEb}@t z)7PU2OpW560t2JYIIRms(aAXK%$FBq-o1tb=Cvt~*Kj^v&-KQNDDN#4FtcMu080b@ zU5huLxBmg0lORz5-53hc!FDq|qJ-e5?wkPg)1b^7P685GIQhk1S^|q* >>}>pad39ezBL9z+xA9xCSM#aPo`2v;-Er$ip=#frXP_?4>2J*hL<$K?y9J j{9-RHfyFNJa1H(+oYW%LgCHkc00000NkvXXu0mjf>mL-! diff --git a/react-ui/public/assets/images/component-icon-7-Omitted.png b/react-ui/public/assets/images/component-icon-7-Omitted.png index 33a4445eb39e6cc0c934948254aa8b2662edb227..59b8102698bcf400cde8cf502dbcb8d58309b492 100644 GIT binary patch literal 6488 zcmb7}1y>Xdw}odI7`kgnNdf5&=^9#;?g5mP?vkNFh7ReJZs`;mLb@C2kP?Qj7eDV$ zxM!_>_Al7yti7HXZ7nE14mAz{0KivOQGEB$KmMPv!2foFjluXoL-&wZ)y4WZfmrXO z0RSpORYf^nU-MHl> zxZphm#k^Hz+7=D-{Mrd5pCT5HhNJ*>DOi~tK(841H%Sh2%?~U6eV#oYySMec^cDl^ z%+nTZf1Op;9#wYc1Uv^!NZqb^oawNqC4UB~y?dL@l>QFRy3C*gOh@Ay7E64;Tgt+P zVVLa3F#J Nx89y*iRZ2m!f>3GsY1J@g# z@>^f}oGdZ6d|WR2{q8+Bw}MT2kK4{*%oZ|A@D0^<3@WkZj1~rno! *<`^I?TUmPOf !HrbrrjykCstqms+wZ=Gm-I0lUugR zwKC3y5Vpr8m|fn>%)WYBB*#M;2XJG fP)*Ni|_Q=2U-@tetI^&6B{JfT| zXa8MouC$Hatb8ui!sokqey!LJdRCj`B9HO+Pu)6C$E|r)wH==en8XvTlW*dH`eH`A z3Tik~&eRyC76`3eFqkr=ASoHQyFQVGIl^>Yk8kG7FSY*U>+M+Hm*`yGNfkO}I4ab) zR@I~)#)y;ph1(N*D{X&pF5%&Ql6oOA`*`fEBpW uV@g^aBv9;&sEpe)BCXe zzI8?`*l(FAQ#f{U*F9ICUcK85R9)~c=TzT5e!FxOFm>on6WXzRUumF3%{l#iu(7x3 zPp=twF-b|tY<%g#lyTbRb-ZABN9JLK45UbLXc`@greklHqlF$Cijimz<#={2=Q-$5 zfM&r&H=tcDL(=?)Bp_(p>}jL8e0S#o77`f$#zLFA!rU<2$Vdq71CDkS&AlHgE3PH# zJ5XU~?w!kUGHa~0xozetG`JE~n(e$jaLt)0V2-(>Mu7Ixlr>EVpZUK}d_IOvp93@{ zA4tyfxBp}4^)tCE@w#nTk%Pt)c}-_}rqTm6L`XDzZ!rG|ahm!0`OV a~dI179r0HNSXX&K-XR7)l95--v&tCn* z1mU8@4tnklJ+=R@gOY(fXNSsQbIZ-`tfx=GX4cj_na$13Zy$da=Rv>c8TRSd7_ ZLqt)ztC>V(~`(tR-SuUHwe@j*aR*&0b!Q@gjyu*MYjd}c}Mnz2P@{f)Z99@ zjqv@Y{~ib9Xbyk*Y{VJIzU@O~`h|?+I*l}$y3#@NYX>ZxKG;`+TAWO=r} zJ^U}r5J`TQ`>aHKcOZ4}lti%}mhjS_>seOr=8;E&i(lS)T7bd0# xwDTuog>X zWCkKB98I6kBquz#U7{Rm+D!`hX#0lJY~`VP=419K0fi?H-^-W-!MsI80qWLdM}K9vPtEoq6*@k_SR284sDSd)uC0Be6#{}FFp0Gt z^)P(qa&zc_K0Kgd ZEMDv_f>-PvD;l2kA)(g;L)!5}JQ5MkhGGt4s#b}Dec_9h| zZ}(BRqrKhOPr!JH6xBH&(MX;p-_2y2z9a98Z3%7)=gmO^2Ne}YdQL88$xla9f9XSr z>bfc`=_~8%WJ0J8J*}+6HG{3K=A*Hy%Qb)4a;T}Pc_W1fXxh?Km|wkhA@^9Ow;=pA z^G)6lDZolVIhFf8mV#SA_@YMSg#&`i=o?EVQcOlBe}60!sVNmNyfj(eGJH>mp^?(W ztetS%ciezu^Qq5z((C2#RZi47=8@BRm-i10N|oEiLWQWJi@!9><}qJM;^rJoI9>zS zlIcae=TNB^UUTdHjG(#g?C2x9%iWYW9b;p>ZVZgttYNrsx z zvN-Vqo^bcu46?{p 0Nt8r9uAXM*YLa`*m^Ip47_u`K-gx*!lq-ncV2Gc-D?d^t zo*S#>@Mb$LPs?mPiU{7F=MQ7U*!Jr4$ODB~YG{@so`gm;M!#0a5zbsA-xNSesjjPL zZO)(Gpcw|HbCvE!tIYvtIXH3{wXVKSbHi3Oy5bvWREVgnm1DdM0x^&7@d`T5*G y|Ad?J?Fg;g`W AhAn@4{=O!Koq&o>pr)qI_rG8MT zQQS9Vhxs!v?`;Ph;%J6$xG|YihJ>`I(;)hc=wO1^Je9vOxYv^@+^^X8H{UYjj$H{x zf7k*jpwFF`K1 jILRVlKv+iI?RN>?Cj0ze3K|typC*4lK?mA`^stSOhcwJ z`4Rf8%48^NCgAKeF+`%lIPrmr8rMG9*qE9I(kdP#GDZ>H$DL!zBKfOcH`6l7r+e8p z`h+PB$C8^qKV9zN$5+@36P{kllmkYB%XqR&- zr-)k&;%TpEnwU9L4V*$KjLS8Aad6m&QWT7&2|x4}{nRxRBHP3Zk=RR#<5>#j`JxsE z>|@AadL&NuM?a%w#lytB2dL$~DfCZJgIXGUw?3Aq=x;7rsLaGqezSPv|H4r3f_CVP zR)gAKJ_We_^VJROH&R2wrNg7b*2bAbX|{N>>mdawU yQh EbMu#Kl*xm9?fg@ zGa+}){78rk>3Ct&za$Kflr#}btxl`H@vM1QbSBjwqaLwm6+Q&|lBu>M`-Wd45DhQM zN(9<$hOsPw$W_)WR9@QF f _%G_Qk zWXr3AdU zz02G5czGtUhx|DUDl_tL9>!`Z*gWtF|6P+n-wJ^ZE-BPc+t9g9o8o&C{)YT8acdr3 zoPZO|Y^%tYsSi+I$SeSREy`=LWxu3Jt;1dOYe?F*QF%RfQi~5@?4W!<-_9CzbU=6h zUq%&m0oCUWEeK;-C{^+KeN(h&qX_X8iTn&(CIbhL5iO=hSu%6Do9al7-KIaEb$wc- zXB1CH7epO>4Kx+p7kDlC^@^>qT}X8$!q1LhJGiP{zam!Oz^(nxV3+F9dp0;U9`_Ni z&3wvRgth>8r~95dUY|2Cb+1^}(2g1OYG9MA=i*1?5Ivp?^3zguddY|k6F)Vq251 IU75Fol0en=IxLU|=Jx1%%-hR=Q Bix zp(%%NzLVcnPJ}$b(JV-KGJk(xy0NQobF*cs0Ec#ZSLe0eg i_VyX0t*pM;*7h^c4!oWkjejwu8KKZl{ zm??yuh%BX-atlY%N5l!8uI%UoaLHL^MG4a6*1g}y-}}|! QF0)hsVl@p+b4lNsoOXuH_#3#mL3L0;5d2nU1hH*oB~EH)2t4&Y@-?gEYw zQFC$q)UEo7Zj|v1H45irm~q#x7qzVvP{Q6N2|PY@r{I}oRhi$0RL^3h7c%I^&cc;) z@lrs#;~&2}y?Xh|pD__)bml3ep>}63T4Bcyusq#KN^0=$sB86meg@R)l_xr1j&eIq z@hO<-lXLL8AClng3+x@8#3OiY>$`u~RT^iQak1tS0M6SX>Ft=Kc1HV*!&A%GOF2$L z?o1f354q`wRD*fV46~GPi%$dM;KKTxt@2*atYkv-P+S^^wAV;gycUm^Li(F?N77ex zC#czFo5fJ?uT#XmzA|_Q$3YPaxH@kwS ++3# PvVPW& }pQl>N6kIsiv-M^g1Fa z7_K^H6Z=K>?|ih~pFUVuXS=cyZ7n|B1f%|w1K?zqUe2IjFmcGO_bML6U6R;#Y>Kux zLPFbRH|$^?cv7x2wY1I}>Y6rD>Jz#qAKLQ5duQVDRljMJD&Ul)>At(vbM2D@mQpkr zVh|D3K$UohG&Fb?Pkt}k*Akj%ZNk-t(>kht(9E5%@hef^&(2Q ZN!C85FfD~dQt4Pd#_>CnmyR0$APau7f01wv=H@sH>7MPouOEv zB;lBl!IUY!Ol|yvM>bd}ZOH<9F9$NpBx!O4g0+}uzF)EV1>R!r55{f|B(~~C`j7H| zrwzTlnRzh&V4(}95fB4HHiq&umFr~pZls6Nut9b-3zkEFikjt9hr7~&ql$bs@v+YY z@?K2Ld4#bVVduNL+LonJIKYt)3|3_33czjIbXh7$m~9!%B>3eG60M9P_SJydx#!b* zFT=AKjYg%&vPI@Nb}v{znzK;AqBrLib7NCtk5Y!tS-pJheAfaHc{sA>>4&D6_rXTq za>RVmxJuHc8CCGq#g+~{6PNrg9U{p6sq)9EtK8c**QY#8>rJm+4iR_@0X(jCriBz< z82 P;;*Sp%c U?%@ZD04TJlu&6$R8TcUWQIZDD`!P2Osaltcc>qbwkJRCLZP z8U85!um36tmoPuA{MLxTex80SV>YW_75K5m?e)DF9)1``0upOw<&Ku_o?o}PqF8Hy zd|TQsItr~vQ7#y;>62XurEh!l#e}mA{eroNIG=5BRcG>a84ZDJl`4gJOVOms`vSRD zmVe#q&5umA^Mi3e6MGo-VvpVP!$hn={CCOgSmY?U0$?g%dkCfdA=g(kWaw|2-RZ?y z;>6zwwH^_bK8$Wei**OzfW|66P?@wJzWvS^G*v4k5;@V@M__b(J6nue5#Y_^i1#T` z6`dbutVB_%;5-Tym-ZQ1;jws01V+^LuDTp01p$slA=_e|fhP~9RP^vfsh% F z_1u= &Q* ?}lBI-?KWqR}R|4ISPv%~R6A%9~x|fBM}2<|zM?AAULKNU+}8 z`?D2B+cj4_11vKYg`g(oq%{A`il;q$wq@0Z3?A6p4(4nMnj(74Ua%OIldrrN+#j#+ z8OxxF)0P{95Bs|jLQ${|T*pHTYG`0|W$It6hT-&GsG)85zQ=6(0&h9-Dsv03Po#_s z+X|jPS$9kHFR;tA^?B%$`3w2V5$&NmhGA=kd$#Vs*XQmm4DZI4S_I+t!WTOCl43gu zwR 6I780O<)9G7r@tb#@9u;bye*VYeR=IpEH@PbgOb6ti|v>TyQ6?2s(a%u zXa)9boQp9*mY295sP|K2GZI(@7&36BDsr!&nO{njtu;;iuJJ3FDOB5N8SCB@)$Krg zA<{~Bfeg>u`9TIZljGIHs3l1uuZOQ!$_-c^dmrKa3?KhCyMn>w>WN`LW1)UKu#N&! zB#^FX=DyIg&T;}r;862ox#8o#J6N^#bXY{xa9&KL%!i5pNoHnxMY KLM)tSU;?7PEDNr(^MW>aniUk|OqNpvR+1rxN8@rDbU0;=m z4<>|Sy%6my)|z;I(e!QOT^ZYsn~`6%oGx+gW}i8&+;;U%)9vQEx5~QlSSc @%W zsA&aX&?{>+OxQFgL5<%h2O|c8>pB7Uh%Bm?bZ41Q&;R7OS0JAs$+$d_sT&!>k8zzK zo7)u>26c0^&BkX|qL%ah#=YSWU&Oq7GA+wrKPuOIwy#x)8NMC|Qmn|VU8Lt~-iz4; zNPe{f|3NqZ)wK3Q=dmrkdP(!CYk~xZ^by_fh4*4Cx=TA^mYX!#IffqW?D#564d5KN uV%8f5T+ngk{{sndt^X%aP*wi(7vx`F4f6l-VDt}_092K<6l>*Sq5lJQQ%OYt delta 3095 zcmbW3=_3=4