From 1269e19026cff4564f76f7d82e976ca395941d0b Mon Sep 17 00:00:00 2001 From: Wen Zhou Date: Mon, 11 Dec 2023 09:14:59 +0100 Subject: [PATCH] update: rebranding for rhoai from rhods Signed-off-by: Wen Zhou --- README.md | 2 +- .../rhods-operator.clusterserviceversion.yaml | 32 +++++----- components/dashboard/dashboard.go | 2 +- .../rhods-operator.clusterserviceversion.yaml | 22 +++---- config/manifests/description-patch.yml | 22 ++++--- .../alertmanager/alertmanager-configs.yaml | 4 +- .../prometheus/apps/prometheus-configs.yaml | 64 +++++++++---------- .../datasciencecluster/kubebuilder_rbac.go | 2 +- .../dscinitialization_controller.go | 2 +- pkg/deploy/setup.go | 12 ++-- 10 files changed, 84 insertions(+), 80 deletions(-) diff --git a/README.md b/README.md index c59948363fc..7796337016b 100644 --- a/README.md +++ b/README.md @@ -252,7 +252,7 @@ following environment variables must be set when running locally: export KUBECONFIG=/path/to/kubeconfig ``` -Ensure when testing RHODS operator in dev mode, no ODH CSV exists +Ensure when testing RHOAI operator in dev mode, no ODH CSV exists Once the above variables are set, run the following: ```shell diff --git a/bundle/manifests/rhods-operator.clusterserviceversion.yaml b/bundle/manifests/rhods-operator.clusterserviceversion.yaml index 2d324e16fc9..20f94657f45 100644 --- a/bundle/manifests/rhods-operator.clusterserviceversion.yaml +++ b/bundle/manifests/rhods-operator.clusterserviceversion.yaml @@ -209,26 +209,28 @@ spec: name: featuretrackers.features.opendatahub.io version: v1 description: |- - Red Hat OpenShift Data Science (RHODS) is a complete platform for the entire lifecycle of your AI/ML projects. It is the flagship product of OpenShift AI. + Red Hat OpenShift AI is a complete platform for the entire lifecycle of your AI/ML projects. - When using RHODS, your users will find all the tools they would expect from a modern AI/ML platform in an interface that is intuitive, requires no local install, and is backed by the power of your OpenShift cluster. + When using Red Hat OpenShift AI, your users will find all the tools they would expect from a modern AI/ML platform in an interface that is intuitive, requires no local install, and is backed by the power of your OpenShift cluster. Your Data Scientists will feel right at home with quick and simple access to the Notebook interface they are used to. They can leverage the default Notebook Images (Including PyTorch, tensorflow, and CUDA), or add custom ones. Your MLOps engineers will be able to leverage Data Science Pipelines to easily parallelize and/or schedule the required workloads. They can then quickly serve, monitor, and update the created AI/ML models. They can do that by either using the provided out-of-the-box OpenVino Server Model Runtime or by adding their own custom serving runtime instead. These activities are tied together with the concept of Data Science Projects, simplifying both organization and collaboration. - But beyond the individual features, one of the key aspects of this platform is its flexibility. Not only can you augment it with your own Customer Workbench Image and Custom Model Serving Runtime Images, but you will also have a consistent experience across any infrastructure footprint. Be it in the public cloud, private cloud, on-premises, and even in disconnected clusters. RHODS can be installed on any supported OpenShift. It can scale out or in depending on the size of your team and its computing requirements. + But beyond the individual features, one of the key aspects of this platform is its flexibility. Not only can you augment it with your own Customer Workbench Image and Custom Model Serving Runtime Images, but you will also have a consistent experience across any infrastructure footprint. Be it in the public cloud, private cloud, on-premises, and even in disconnected clusters. Red Hat OpenShift AI can be installed on any supported OpenShift. It can scale out or in depending on the size of your team and its computing requirements. Finally, thanks to the operator-driven deployment and updates, the administrative load of the platform is very light, leaving everyone more time to focus on the work that makes a difference. ### Components - * RHODS dashboard - * Curated Notebook Images (incl CUDA, PyTorch, Tensorflow) + * Dashboard + * Curated Workbench Images (incl CUDA, PyTorch, Tensorflow, VScode) * Ability to add Custom Images * Ability to leverage accelerators (such as NVIDIA GPU) * Data Science Pipelines. (including Elyra notebook interface, and based on standard OpenShift Pipelines) - * Model Serving using ModelMesh (and Kserve) with a provided OpenVino Model Serving Runtime + * Model Serving using ModelMesh and Kserve. * Ability to use other runtimes for serving * Model Monitoring - displayName: Red Hat OpenShift Data Science + * Distributed workloads (KubeRay, CodeFlare) + * XAI explanations of predictive models (TrustyAI) + displayName: Red Hat OpenShift AI icon: - base64data: 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 mediatype: image/png @@ -1850,20 +1852,20 @@ spec: - supported: true type: AllNamespaces keywords: - - odh + - Operator + - OpenShift + - Open Data Hub + - opendatahub + - Red Hat OpenShift AI - notebooks - serving - training - - pipelines - - modelmesh - - workbenches - - dashboard - kserve - distributed-workloads + - trustyai links: - - name: Red Hat OpenShift Data Science - url: https://www.redhat.com/en/technologies/cloud-computing/openshift/openshift-data-science - maturity: alpha + - name: Red Hat OpenShift AI + url: https://www.redhat.com/en/technologies/cloud-computing/openshift/openshift-ai minKubeVersion: 1.22.0 provider: name: Red Hat diff --git a/components/dashboard/dashboard.go b/components/dashboard/dashboard.go index 527fbf90b85..3cd43128ac9 100644 --- a/components/dashboard/dashboard.go +++ b/components/dashboard/dashboard.go @@ -129,7 +129,7 @@ func (d *Dashboard) ReconcileComponent(ctx context.Context, if err := d.deployCRDsForPlatform(cli, owner, dscispec.ApplicationsNamespace, platform); err != nil { return fmt.Errorf("failed to deploy %s crds %s: %v", ComponentNameSupported, PathCRDs, err) } - // Apply RHODS specific configs + // Apply RHOAI specific configs if err := d.applyRhodsSpecificConfigs(cli, owner, dscispec.ApplicationsNamespace, platform); err != nil { return err } diff --git a/config/manifests/bases/rhods-operator.clusterserviceversion.yaml b/config/manifests/bases/rhods-operator.clusterserviceversion.yaml index 8d4b1e980cd..cb2a7af5148 100644 --- a/config/manifests/bases/rhods-operator.clusterserviceversion.yaml +++ b/config/manifests/bases/rhods-operator.clusterserviceversion.yaml @@ -108,14 +108,14 @@ spec: path: conditions version: v1 description: This will be replaced by Kustomize - displayName: Red Hat OpenShift Data Science + displayName: Red Hat OpenShift AI icon: - base64data: iVBORw0KGgoAAAANSUhEUgAAAzYAAAFeCAYAAABXd4pfAAAABHNCSVQICAgIfAhkiAAAIABJREFUeJzs3XecXFX9//HXndk2m0563WUh9F4DgSR0AZGiCIoINlRE8Gv76g+7iAioCIoCYvSLoKCiAooiHSIthEivYTcJIY307Gybub8/PruyJFvunTl37pT38/G4D0hy55zP7E65n3vO+RwQERERERERERERERGReHlxB1DJVqempYaR+IQPZwE7AZ3AYqAF+I+P/2AG/j003bIp1kBFRERERIqcEptuq1PTUmPSi9OF6q891TjbhxuByYOc2gU8Cdydxf9rykvO91oX+dFHKCIiIiJSOio2sWlPNc7y4X3AkUADUA+0AW96MB+4M+lxW1Vr81sR9H2+Dz8EqnJ4+DLgduCvtV7iHq91UYfb6ERERERESk/FJTZtqcbdfPwrPLwjgpwO3JKAq2rSzfPz7duvb/La/ex3gQvzbavbWg/+BNxU4yUe8FoXZR21KyIiIiJSUioqsWlPNZ7kww3A0Bwe/k8PLq5NNz+YS99+fVN1m5+51sM7O5fHB7DMg5s9+G1NunlBRH2IiIiIiBSlikls2lONp/jwByCRZ1PzgEtqvcTfg46QtKcaG3z4P2BWnn0H9bQHv0p63FjV2ry6QH2KiIiIiMSmIhKb1lTDAQm8+4GUw2ZfB67L4N86JN3yUl8ndNU3ju7y+TjwFWCkw76D6vDgdh/m1nqJf3itizIxxCAiIiIiErmyT2y6Syov9GGHCLtp8eCJLP4yD28FMBzYBStM4DKZykcLcG0n/vXD0i0r4g5GRERERMSlsk9s2lKN38dGTMR0ALd68IvadPMDcQcjIiIiIuJCWSc26VTDVA/vFaA27liK1Ese/Hwj2WsLuYePiIiIiIhrZZ3YtKUarwY+HXccxc7HX+nhzc3iX1Wfbnkj7nhERERERMIq28Rmc6phUhJvERqtCaMN+HUCLq1JN78edzAiIiIiIkHlW/q4aFXhfRQlNWHVAZ/KwqvtqcZbWlMNO8cdkIiIiIhIEGU5YuPXNyXa/exrQGPcsZS4LPD7JHyzOt38atzBiIiIiIj0pyxHbNr8zBEoqXEhAXwwA8+3pRp/vjnVMCnugERERERE+lKWiQ1wRtwBlJlq4FNJvFfbUo0XrUs11McdkIiIiIhIb2U3FW15alrdSBLLgRFxx1LG3vDxP5dKt/wx7kBERERERKAMR2xG4L0HJTVRm+zh/SGdavhTV33j6LiDEREREREpu8TGw/tg3DFUCg/vlC6fp9pSjTPjjkVEREREKltZTUXrSDWOysJyoCbuWCpMlwfn1Kab58YdiIiIiIhUprIascngvw8lNXGo8uH6tlTjeXEHIiIiIiKVqawSG01Di5UHXNmeajwp7kBEREREpPKUzVS0zamGSUm8xUAy7lgq3FoP9q5NN7fEHYiIiIiIVI6yGbFJ4p2BkppiMMqHS+MOQkREREQqS9kkNoCmoRWPU9tSjXvEHYSIiIiIVI6ySGzSqYZdgL3ijkP+ywPOjTsIEREREakcZZHYAB+IOwDZynv9+qbquIMQERERkcpQ8omNX9/keXhKbIrPmLSfmR13ECIiIiJSGUo+sUn7mQOA7eKOQ7aWwDsi7hhEREREpDKUfGKTxDst7hikbx4osRERERGRgijpfWz8+qZEu59dDEyOOxbpUyaDP2pIumVj3IGIiIiISHkr6RGbDj87CyU1xSxZjXdA3EGISFEq6e8fEREpPiX9xeKrGlrR82Fm3DGISOySwK7Ah4GfAPOBH8UakYiIlJ2quAPIlV/fVN3uZ98bdxwyMCU2IhVpArA/sG/3MRMYtcU5/y50UCIiUt5KNrFp97NHAaPjjkMGNcOvb0p6rYsycQciIpGoBvYADuHtRGZnSnwNp4iIlJ6STWzQNLRSMbzDz+4G/CfuQErAnsCBcQfRh1agHVgPvAW8DqyJNSKJ2x7AJ4AZ2Ou2mDfjPQuoddDOLcA6B+2EdRCwu4N2nuw+JDp1wD7AYmBpzLGIVKSSTGyWp6bVAe+JOw4Jpns6mhKbwb0LuCTuIAJaDzwFPAo8BNwLtMUakRTSbOC8uIMI6MdsPQ0uFw8ST2LzPuDzDtr5FkpsXJuO3YzqOfbCkvwTUGIjEouSTGxG4L0bGB53HBLYTODquIMQp0YAc7qPrwAbgTuBXwJ3A35cgYmIRGAk70xiDkTT4UWKTkkmNgm803XVVFJUQKD8DQPe3328hI083QBobZWIlJoqbLrlDOAALInZEa0bEyl6JVfueXOqYZgPx8Udh4TSkE41TIk7CCmYHYG5wELgsJhjEdHFqITxY2yq7ZPAz7A1Wjuh15FISSi5xKYK72QgFXccEtrBcQcgBbcbcA9wFVAfcywiIkFsjz6vREpWySU2bfinxh2D5ETT0QZXjncEPWyR+SNAQ8yxiIiISBkrtcRm4mK/y0XZSykwD0+JTWXbA0tudos7EBERESlPpZbYnDPBS46JOwjJyZ4bUg1D4g5CYjURm5q2S9yBSEUpx5FQERHpQyklNkng44uzXaviDkRyUlWHV4ybT0phjcPKQo+NOxAREREpL6WU2BwPTLmqa0NL3IFIbnwVEBAzDfgddrNCJGraHUBEpEKUUmLzSYCbM5t220B2U9zBSHi+CggMppKmzBxB6excL6Wtkt5XIiIVrVQSmwbgXQBpGP35jjXzY45HcnOQX99UKq+5OFTaneWLgKlxByEiIiLloVQuMj9Br1h/m9k044ls+8sxxiO5GdHuZ3eNO4giVml3locCF8YdhIiIiJSHUkhsqoCPbPF3de9pfzPRSrY1joAkL5qO1r9KG7EBe29PizsIERERKX1Fl9hsSjUMbUs1TmtPNe7Znmqcc3iy7jxg0pbnrYXtj0wvXxBDiJIfJTb9q7QRG4Aa4KNxByFlrRLfVyIiFamqkJ11phq38WFbHxqy+A1Ao4fXADT4+JM8vFFANbx963pRpqvf9TQL6Djk/R0r77+lZtycyIMXV5TYRO93wGcctFMFjAbGY7+344jm9/dh4NtU5oiVRE+vKxGRChFZYpOpbxzX5XOwDzOAPYE9Mr1GXrwtbqJt+WeAlX5mTTNdew3Uz22Z1jnnd771wJXVo2e7iVwitu3mVMOkIemWZXEHUsbagbWO2loFvAg8AFwMHAT8BNjfUfsA22KfEQsdtjmQIcB22J46Nd1/7gQ2AeuApcDyAsUSlyFAffd/12PPu1wTAI3YFF4V9v4ai23MOwx7vdX2Omc9sBlY1n2U+3tORArAWWLj1zfVtvmZOR7eCcCRnT475tvmHzObX8IupAZ0bdfGWeNIPvy16pGH5NunRC9h+9n8Me44JCePAIcC1wFnOmz3cKJJbDwsCZuNxb0fdqE1mA3AS8A84F4ssdsQQXxRGwPMwkbadgamA430/dm/CUvqnsJ+F08CD2OJskh/GrD32P7Ya2wH7GZFTch21gHPYa+7nvfcOkcxfpzgU+8bHPR3DH1MoQ9oPXCzgxhEKlJeiY1f35To9LNzsvDRdj97ooc31FVgAHdkWzsCnupd1LVu5goyD1ylkZtSMBMlNqWsHVsXMxlLSFyYCfzIUVtgF1hnAaeT24XKcN6+WPsc9pxvB34N/APIOIkyGpOx5/0BYB+Cj1gMBXbqPj7Q/Xfrsef9R+x5K8mRbbF9qI4ADsOmqrowEvscmAmcj42i3gXcCPwJCHo90JefU9ip9/ns0fUKSmxEcpbTG31dqqE+hXdOu589H/uQi8SiTFeYRMm7rmvj7EV+57w7asYf7OFp+kGRSuBpnU3p6wI+hd1hrXbQXt4jvN0OAb4MvBu3U5Bqgfd1H69ie/DciP0cisUM7LmfiLvCMCOAD3Ufy4HLgWsctS2lY0/gZOAUYPcC9VkNHN99LAV+CFxNfgmOiJS5UF9+fn1TbVuq8Uu18LoPPybCpAZgPV0jwj7mnkzbzEPTb87rxO+MIibJnw97rUs11Mcdh+TtFeAvjtranvwSkabuWB4CTsizrcFsj43cPIfdsY7b7sDd2DTBk4mu2uUELLF5HXh/RH1I8ZiEJcrPYVMTv0nhkpotTcGuOZ4BjowpBhEpAYG/ANtSjYe0+9kFwKUe3rgIY/qvDltsGNp8Og6Znl76wpt+10rXMYkT1Sm8A+IOQpz4m6N2asnt/Z4AvopdfJ3oKJagdgDuAa7HpnEV2lCskMMCbFpQoYzBRsak/HjA0dj0w8XAD4BdYo3onXbApqd9nwJXdRWR0jBoYuPXNyXbUo2XAQ9S4A+4BGRzfexyMnvs1rY0e282/bzLmMQNX2Wfy8XLDtsaFvL8ScC/sGptdQ7jCMPD1hs9hl10FcpewHxsLYIu8MSFU4DngX9iUzmT8YbTLw/4CrbupnaQc0WkwgyY2LSnGke2+9k7gC8SQ8nMWpKb8nn8ZphwXPuK7b7Tue4hVzGJM0pstlaK68JcVS0Kq+fC3lXxgnztAjwOzClAXx8GHsXduqRyV4rvqzh4WOGIUvEe4M8osReRXvpNbDanGob5Nm/7XQWM5x0mkXzLQTO1F3etO3RGetm8dWRLsVxruTrIr2+Kai2AFM5Yh22tCXjeYcD9BCvbXEgjsKl5R0XYx1ew9T26Uy2u/Rmb0llKjsVtNUURKXF9Xlj69U01Sbw/AvsWOJ53mFVV56yk6kI6Zk5PL954R6b1P67alLyMbPezxTR3W3Iz4Aa6IWwgWLWjQ7DkIXRhkQKpB24jmhHJ72BrCzQCIVHIYtM6S81nsdEbEZG+E5sOP/t9bAFhrM6tGrYdDnfD3giT39excvcTO1Y80I6v/RhittrPzIg7BsnbyY7aeTPAOXtgi5pTjvqMSh1wK7YRpisXAF932J5IX27G7bq5QvkZ8RTwEJEis9Xc1NZUw4G+fYnGrsmrnjye5DMryLgsMZn4ZyY9e9v00pd/Xzu2a1aiTqMGMWnxu1zd7Zd4zMHdmpLHB/n3bbCkZqSj/qI2Dis/fSD5b2p5AlbqVuI1HBgVQ7+FLIyRwUYF5xawTxemAJ/BqriJSAV7R2Lj1zd57X72WoqoGsoXqkds+nJn0Kn3wa0hs8PR7cv9/ah5/C9143cc4yWLdWpL2Vrod0S6D5JEagzwS4ftPTLAv3nYhdY0h/0Vwp7At7F1MblqwNbUaPpZ/B6LO4ACuRH4BhHvUxeBzwNXkP+NBBEpYe+YitbmZ47GpnsUjXOrhu0/Apojat6bT8cB09uWdPywa/08H9/ZtDcZ3BvZzDDsTpuUlgbgH8B2Dtt8eIB/+ySlO4f+i9ioTS4S2EXmNu7CERlUJ6U58jEOOD7uIEQkXu9IbDy88+IKpD9VeFXfrN4myPz7nKVh7IWda2dOTy9d+FS2/bUo+5K3rSSTRRv9lZKh2IX6AtwWFnmm++jLWKJZ0LwU+CPwU+wi7ipsXwzXnzVJbBpZLiMuH0Nl0V3QaFd4v8beI/nIAiuxvXGexNbuvJFnm4M5PeL2RaTI/XcqWqa+cWynz3FxBtOfT1cNm/HjzvVPLiETaZW2pWT2Pqj9zezu1Mz/Xd3YKdt71ROi7K/SLfMzYBduv485lHLTCJzqqK2h2EaYBwGziWaB7vUD/Nv3cbeuYSM2fe4a4KUBztsLOBc4EzfrGw7CNj/8U4jHbIM996gswzZifBVL5lZiJaS36T52B46g+EpqS2G0A5cCVwY8fz02Ve/R7v8uAFbQd/Gf4djMkHcDH8DtFNPDsUR2y34XEHyK/XQsxny8iv1McrEkz75FKtp/72S1pxpP8q2OfVF6ye9cvGfbG2OwcqqFkD4mmXr8V9Vj9hjtJeNYMFr29kq/8ciLdKaAveOOpUhcCFwUdxAFlgamAn3tWdWE3eV1sebvDuDThLsLvQNwHTDLQf/PYhdzQae7fgf3VdDasedzPfCfgLHsCpyBJXqu1yFeBZzvuM2+bEQVswC+ha35CioFLAL6u8G3BCuQ8WfgQazwQFjVWLGib+Puu3038tuP51/AkXnGcAL2mSMiBdZ7KlpRTwna0aue9tWqEU8WsMvUPzPp2U1tSxKf6Fh9fyvZ1gL2XfZ8fL+FzunYxZ4KN1SuH9F3UgM27c1FUvNDbI1O2Kk1L2N3gH/hIIbdsI1FgxgOuJ4W/BvsTvRngYUET7CeA/4ftq7qQmCT47ikeKWx905va7GE9EDsNXE+cB+5JTVg63kuB44DNufYxpZ2ddSOiJSg/yY2PuwTZyBBfLN61KG7UzOvkH22w4gbMpvmTE4vTp/dser+t/zM2kL2X64ez3a8krbKWgng4LjjkVi8CVzSz7+NAj7ioI+rsQQp18IgGWyk52oHsQRNVs7C3fS7NmytztnkN8VlPbbWaV9sWo9Uhp8Dq7ARmTOxaannY+XZXRbbeQD4gqO2XBY1EZES03vEZkxsUYTwQGrC3mNJPl/oftMw+veZzXOa2pbUHNex/IFFfueyQsdQTr7YvmZFz/83UnXs5lTDsDjjkVh8mf5HAE4l//Ut84H/ybONHhdgF1/5OJ5g+/B8OM9+erRi62R+5ag9sFGsgwm3XkhK12ZspG828FssUY7KdbjZHFTrwkQqWO/EZnRsUYRQT6L+0bqJo4fY4teCa4ch92baZu/S9sbYGell857Mtr8aRxylbInfteIJ2vfv+XMWDkzitbSlGi/K1DeOizM2KZjrsQul/pyRZ/s+lox05NlOjy7gE+S3R0YNtmB6ILsA++XRR48sdof93w7a2lI78EQE7UZFVdHyk+si+LCyuFnnOyTPx+v1IlLCeic2JbNAfrJXNf7xuskdQ/IvR5mP6oV0zJzZ/ub2DeklL32nc92jm8mmY4ynZBzXtmIRve7Gr6BrW+xO9oWdPs3pVMMVmfrGsbEFKFGbz8DTskaR/5q/O3F/Uf8K8LM82zhxkH8/Ns/2e1wC3OqoLZFCcbEJaqEKDIlIEeqd2JTURfl2XnXjw7WTuobA8rhjWUFmx4u71s2YlF7ccXTH8gcfy7a7GE4vS1/rXPvQK3Qe1Pvv2mHs637n4u4/pjy8Czp9XkunGr6lKWpl5wXs4n6gKS2HssUeWzlwOf2qt59id5ZzNViFtaAFBgaynGhLRYtEZcXgpwwq388OESlhVb3+fw0ltsP1zomaxgdrJzUf0r5sRRrGxx1PO4x4MNM2a3bmTcaRfO6sqqFrPlc1fDeVizZXd2145PKu9X0WCrg327b0Y8nqhl5/NczD+2YVfKo91fjlGi9xg9e6yOViVSm8p4BjsMXIAznUQV9nAqc5aKcvm8h9n4tx2OLmvjYC9nDz3L+NqpdJadoYdwAiUtp6Jzarge3jCiRXu1py8/qc9mXLNlvFlqKwksyul3Wt57Ku9V1TSS44vWro5nOrhu080asqiSINrn2tc+1Dl3etn0E/5XvvzqTTH0tuPTjjW8L6m3Y/+4m2VONn6tLNT0ccqkTjb8CHgHUBzt3dQX+DTfmK0wz6Tmymkv/GgO3ATXm2IRLUWKy88nRgCvb6Hdb935G8vV4ljRUiWNl9vIFN7XwBu6kqIuJE78TmaewLt+TsnqjZ9tm6KSsPbHvzuZVkiq2GfdUSMvt0JzmZSSQXnlI1ZMP5VcN3mOZV9bfxWdlYR3bDu9PLn55Px4B3ohdmOgZb8HkIMD+dari4zkt+z2td1OkuyqJRjotWW7EyrtcQvDxsyd1gCWmHkH8fxn3ABgftiPRlBDbqejwwEzellVdi5aMfZfDRXBGRAfXax8Z/PM5A8jXRqxr3SmrKdrtRE0UVIFeSy8js9dOuDbN2aFs6bmp6yQsnd6x44MbMpvkbybranKwoZPGzP+haN2/b9OK2+XQMuhB8OV0Ng50DVHt432z3s4+2pRp3cxCmRCcL3AzshW1wGTSpSWIb/5Wzbfv5+yYHbf/TQRsiW5oB3ICt37oZK0nuar+YcVi1wIuwGyAiIjn774iNh+eiGkmsavHqnkhNPOisjtX335LZPJvivgOeWEVm5zsz6Z3vzKQBusaTfObAZO1bpyeHjDguWb9THV4q7iDDasdvu6xz/fyfdq2bvM7u6AWShklr/czKUV4ySLnnfYAn0qmGz6bSLb/MPVqJyN+xPWqey+GxQ3jnSHI56i+xGeGg7cWDn1Jxivl7oNjtDlyGjdKIiBS9/15A1KWbn21LNb5KiU8D8fC8/6sZO2dmV+2jX+5cs1N7sA3xikHVCjK735Zp5bZMK0D7OJLPbkfV2oOq6vzDk3XbHJio3XYYiXxr9DvXgd9xe6b12Ss6Nmx+mvY92nMs1dvid60JmNgA1Hl416VTDTM34587Jr24pKr6lbm3yC2pgfz3oCgF/RVpGeqg7TcdtCF9+wqwNoZ+z2DwanquJYGvARcC1QXuO25KhEVK2JZ3Rm/GPshK3ierhs84Jpladnjb8uZlZPaKO54c1K4ks9tKMjzS1c6PutYDZEdA80Sql++TrG07OFmb2turGb1TonrikAImPEv8rhUPZNsW359p2/xIpq3+Nbp2xUZR8rLUz2wK+4vy8M4eirfH5lTDCUPSLbFs2ipbOQP4MVYFLaxK2IOiv/dqXT9/H0ahNlOsRDcBS2Lod28Km9gMx64F3lXAPkVEnHhHYuPj/87DK4vEBqDRq570amrKhE92vHX/DZlNMyn9O0+J9dC4ns7GFzOd3JR5u6JrClYPI7liJIlNY0m0T05WZRu9quRkL1k9xkvWjPeSqdEkUiO9xNBavCqAoV6ivgavBmyRf9b3s5vw29rwO1f6mU2v+Z2bmrNdba/5XZllma7EEjJDVtI1rbu0tvPy2vWel+sUpH2SeI+0pRqPr0s3P+s0qNL0IHBjDo87HniPg/4T2PSVI3N47ED725SL/hIbF899PPC8g3akMg3FKhjmu0GuiEgs3nEhmUq3PNeeavyXD0fFFZBrCbzEdTVj5nwoO/SF97cvr1vf//z2kpaGMWkyY1aS4WWATHvYJvItM5u3yV5VPqNO04CH21KN765LNz/sKqYS9TxwbQ6P+ztwNG5GDo4AjgXuDPm4StjHoqafv3eR2Ex00IZUrrkoqRGRErbVDr0Z/EvjCCRqsxN1O7+emjb+Pcn6+4GOuOORrXRN9pL5jgKNAO5sTzUWej56uViKVTBz5VL62bdoAJuAcizlHYSL/Tx2cdCGVKaPA++LOwgRkXxsldjUp1vu9uCJOIKJWj2J+ltqxs15snbS0qkk58cdj7xtNMmXhpJwMWo01Ie/t6caZztoqxJ9H3e71u8GnB3yMVn63ryyEixy0IaLqYRSeUYA34s7CBGRfG2V2HT7IsH3nSg5uyZqml5JTd3ve9Wj5qVsczCJ2c5UrXDY3BAf/tqWanSxg32lWQlc5bC97xC+IMBLDvsvJa86aGN33O0vUi5U5WpwH8P2kxERKWl9LtauTTc/2JZq/D3wgQLHU1BfqBox82NVwzZ8sGPlA/dm2mYAtXHHVKm+UjvSxR4evY0A7kynGg5KpVviqGSUi2K5ALsM+DRuSqVPAj6Pbb4X1NPAiXn2+xvgt3m2EZWufv6+BSsnPCrP9r8EfCrPNqSyfNJROwuAe4FnsZHXNLAO+zz2gLFYAjUZ21piJ2xkN/Y1niJSHvqtQuXjf9nDOwE3eysUrZEkhv+9ZsLsRX7nGx9uW/X6fDpmUP4bBBaVkfDykYlU3uWi+zDZw/vz8tS0QyakF1dCtS1X1gI/wkZbXPgycB0QdFTuPuDrefZ5FJacldL+RlngYeCEPNv5GHAlqo4mwUwHdsizjb9jW0UszOGxCWBn4LO4S7DyUSw3mEQkB/1NRSOVblkKfKGAscSqyaue/HBq0iFP1E5ashc187CLDCmAC6u3eZPovkz2HUXC5dSqSnEFsNpRW8OAb4Y4/99Aa559TgK+mmcbcXjQQRtVwM/pv/qaSG+H5vn4S4B3k1tSA/Zd+xzltbZXsz9EYtJvYgNQl26+FritQLEUhd0TNds+mpo08/7aCS83UfUEZbzWqBiMJ7nwvKph+X6xDsiHj7elGs+Iso8ytBG7YHHlE9i0kyDagbsc9Pn/KL3Stbfi5jNnFm4r3En5yqeS3uPY+0zfk+/kemq1iAQ0YGIDUO3xcWB5AWIpKjMSdTs9n5qy/xO1k145mNq7Ka0pLaVi019rx9V7eIO+Dh24cnOqQXt8hHM1sMxRW1VYxbWgfu2gzyTwJ2BXB231JYoNfxcBjzlq6yPA5YQvuT2Y3bFpflIeJufx2F+jpKYvu8UdgEilGvSCMtnavAp4PxW698vuiZod7k1NPLKlburGk5P199e62WtCwP9h9TYL9krU5ju3O6htkng/L1Bf5SKN2xKwJxF82svfcVOxcBxwN7Cvg7Z6JIGfdLeb70L/vvzGYVtfwH6Wox205WFrIB4BGhy0VyhaMzGwfNbRlkphljBcTEM/ngDXVyLiXqA3Xl26+SHg/IhjKWrjveS439WMm7Mi1ZD6YtWIh0ZW7l4bLvifrhp2z2eqhhd6I80T06mGYwrcZ6n7JdDssL3LCHah2Ymt83FhAjAPOI/8LzYagH9hn4ezgIeAqXm2uaXfAKsctnc0VqXqfKAuxzZmYT/DXwBDHMUlpW9C3AFEwMXsjB2wDU9FpMACf8nXpZuvwRakVrQ6vNRF1aMOXZ5q3O62mvHPzKD2oVrYEHdcJSR7XtXwe35cPfrIODr38C7z65tcT80pZx24q44GcCBwasBzfwq85ajfWmx/nieBYwmf4EzBkrIXgMN6/f2u2AjGHg5i7JHG7V5CYBegPwFewUpvH8zgU9SasGToCeAB4CDHMUlx2JjHY8txQ9h8fh69XQX8D8GnrNYBR5B/hTqRihaqrHGtlzi/3c9Opjw/zEI7Opna/ehUig789DVdG+f9rHNDVTNd+6Jy0X2qhbU/rxnzwgeTQ2NJarrt3u5nP0Dx7nFSjG4A/hfY0VF7FwN/YfDprRuxdTmXO+oXYC9salYL8DusvPJ83llxLxqsAAAgAElEQVSKegg2ha0BOABLhA6l/0RgMlbN7BRsDw8XfoztRTPJUXs9pmBleS/Eynq/jE35WwlksEpqU7CETWvSKkNLHo99N1ae/PY8Y6jF7c2BfLiaXleDlc3/KnAnVvntLexGaBW2d88EbMR3T2ztWi1wGva+FJEchLoA91oXdS1PTTttJIk7gTnRhFR6avBSn60aPvOzVcNZ4ne9+Z3OdS/9I5Mev4rMTmh+NwATSC74V92EkdO96oPjjgX4kl/fdKPXuqjYFr0W62ulC/gWlgi4sB1wLsGmmv0E+BCWkLjUAHxli79bj12MpHJobwR28fIR4Kb8QgNgE7b/T5QJ+ChsBE0q23N5PNYDbgEuwKathl2fMhH4cPfjiyWRdj3NfCz2HEWkAELPN5+QXtzm45+ITemQLUz1qiZeVzNmzpLU1J1frpuy4vNVIx5spGo+VsK24tTC2i9Vjbj39dSUvaZ71U1xx9NtjzY/c3TcQZSYW4CnHbb3NWBkgPO6gHO6/xu1EeSW1PSowRKRL7kJh5twU/ZaZCD35/n4OuAa4BksGd+d/vdQGgcciY0AzwOWYmXliyWpgfLaT0ek4uS0kDaVbtmQhKN9/PmuAyon07yqCRdXj5r1YmrKfitT0zp/VL3NI3tQM68SKqvVwrpTk0PuWZyaxnerRx1eoJLOgXl4Z8cdQ4nJAt9w2N5ogm+g+QRbj64UKw+4FBtpyvc17wNn4aY6nEh/lgJPOWhnF+AH2A2QTdgUt+e6jxZsRHQFVnzjEmydV1F9L3R7BpumKSIlKOcPlep08xoP70hsl3AZxHASQ8+tGn7Q46lJM9emGkY+VDvxlfOrhj+4C9X/Tr1zfn9JGwmvfrpq2L0tqWn+DTVjjxhBIopyuC68Z3OqYVjcQZSY27AN+Vw5n+Blg38E/MFh31E7HxvlyrUKWY/lwJkUZsSqXBXrFM9iMtdxe9XANCzZ2aX7/4c77iMqXdgaQBEpQXndLalLN6/vwj+G/IeyK0oCL7F/onb6pdXbzFqQmnzw2lTj+IV1k1q+XjXy4f2oeXikbdKXiTvOoFKw7NBk3X231oxbsDzVuN2Pq0cfPrJ4E5oe9QlQ6edwfODrDturwyp0Be37LKw6V6l4LzaVbJs827kLKyRQbGvCpHz8Co0M9nZ93AGISG7yrt41NN2yaXlq2rGjSNzgw/tcBFWJdvJqGi6srmm4sNqWHbTjtz2ZbX/lwWzb6kez7V0vZjqHrKJr8mb3VZJysamBqhcOTdZtPLNq6NhZidpdPbxiiCsUD+9w4I9xx1Fi7sKSi9mO2vsgVgFsQYBz01gFpn9ROoveD8X2ujkSeDOPdq7H1idc7CIokS1sBr6JtnToMQ973wbdUFhEioSTssQT0ovb/Pqm0zr87KW+7XQtearFqzs4UbfTwYl3zmRZ62fWPZHtWPyc37HxNb+rc5Hf6b2ZyVSvITt0E5nRm60CS38LN8PaNAreHEXVmunJ6tZZibqqOYm6sXsmararwtvfUR9xcnVxXmm+hn3pu5DA1qQELQG+ETgKm+b1LkcxRMnHqqW52HDz+9jahSsozrUJUtquAd7PO/dpqmQXYFNvtX2DSAlx9ob1WhdlgS+2pRqbsS9ebYIYgVFecuTRydTIo/sv3uSv8DMrl/hd69b62bY1ZDtW+ZnOlX6m0wevE79zjZ/97+9mmJfoqserqcHzJyaS1RNJ1k32kkMmeVUjxnnJ8cD0gjyxeOzg1zfVeK2LBttPRd7pYeAfuEssjgCOw/aXCWIjNnJzJfBpRzFEYQPwUeBPDtu8CpsydD22346IKz5wOlasY1rMsRSDp4BvA9+NOxARCc75nYi6dPNP06mGVzy8m8h/brmE5433kuPGe8lxcQdSAqra/Mz2wPNxB1KCvo6tUXK1MPsHwD8JvrasC9sL537gF9ieLMXkX8AnyG/zw/7cjFWeugXYLYL2pXKtxN7X91Ac057j9j1gJ+CMuAMRkWAimc6QSrf8E9gb7XUjRS6JV0z7J5RS9ab5uK0ctBtwdg6PuwXbtfuvDmPJx2rg49jFYRRJTY8XgAOwhLDQI46rsNEyKU8vArPIb+POXBVb0ZyeoiXXxh2IiAQT2TztunTz4g782djdRZGi5JdOCdJi9A3C7zQ+kO+Q2/SqJcBJ2Dqd/ziMJ4zNWIW37bBpYoWoYJbG9vfZE/hbAfrMANcBu1Ja5XBL6YZBsXgNmAH8ksJV47sNOL5AfYWRAT6JTStdF3MsIjKISBegDk+3bK5LN58OfAZoi7IvkVz4+e8zUsmeBX7vsL1JwOfzePw92Ejx8cC9TiIa3BvYtLym7v9uKFC/vb0IvBvYFxvBcr3nTSfwWyyBOgc3hRCk+G3CplMeBjwSYT8PAnOAE4l2lDNfc4EdgZ9hNxVEpAgVpLJOXbr5ah9/X2xHX5Gi4UFr3DGUuG/h9kL6S8D4PB7vY0UIjsA2Bvw2duHv0mrgN9goUSM2UlMMe4A8BZyGJYifxUrW5vO7+Q82IrQttkloHFOTJH4PAAdj76mbcXOTcjlwNXYjYjalsz/VSuA8rLjC57CEz8X0ubXYqOvX0KbnInkp6BD9hlTDkFq8K30b0hWJXQKOrEk33xN3HN2auo98LcX9xfxADsDtlL7ngWUO2wO7OD+0+9gT2J5gBQfWYXeRn8aqRT2OrS8qtrUA/RkKHILt+7MjVuVwfPffj8CexyZgBTal71lsbeR9DPw7GAbskGdsK7v7jNrhuLmJ9zDxzDzYCZjioJ1F3Ue+hmBJzmxgf2BnYMwA568HXgdewt4/87D3Ul/TWIcAB+UZ3woKexN1BPYe2wP7WUwERnb//Qhs+4V2rJrjW9h+Vot5+/32fPefRcSBWOYet6caTwSu8fO7MyuStwTsV5NuVpGLyjQa+wyqxy5EwBbib8ammizGLvpFZGD1wAQsMfGwZGYDNhIhIlIwsS2qbE81jvStss6ZccUgkoBtatLN+vIVERERKXGxV4tJpxpOA6708LTvihTamrp08+i4gxARERGR/BWkeMBAUumWm6vwdvbx51K4spIiAC/HHYCIiIiIuBF7YgNQnW5ek0q3fBRbjKhd4KUgPFvEKiIiIiJloCgSmx516eaHar3EPh58E5Xhleg9GHcAIiIiIuJG7Gts+tOWapwGXAa8P+5YpCxlEjBWhQNEREREykNRjdj0VpduXlyXbj7Ns+lp/4k7Hik7dyupERERESkfRZvY9KhNNz9Y6yX29fE/hm08KJI3D26KOwYRERERcadop6L1ZXVqWmooiQuAr2A7+orkYnMX/oSh6RZtvigiIiJSJop+xKa3MenF6bp08yVVHtt58GOgLe6YpPT4+L9UUiMiIiJSXkpqxGZLmfrGcZ0+nwfOB1JxxyMloS2Lv319uuWNuAMREREREXdKOrHp0SvBuQCoizseKWpX1aWbz487CBERERFxqywSmx7pVMNU4Ase3seBIXHHI0VndbXHLsnW5lVxByIiIiIibpVVYtOjq75xTKfvn+fhnQeMjjseKRpn1KWbVQ1NREREpAyVZWLTY1OqYWgSzvHwzgca4o5HYvW3unTzu+MOQkRERESiUdaJTQ+/vqmqzc+c5OF9DpgZdzxScIs78Q8Ylm5ZEXcgIiIiIhKNikhseutINe6XtSID7wdq4o5HIrfJg0Nr080L4w5ERERERKJTcYlNj+5Kah8BzgGa4o5HIpH14H216eY/xx2IiIiIiESrYhObHn59UyLtZw5P4p3jw0lAddwxiRMZH/+cVLrlV3EHIiIiIiLRq/jEprfNqYaJSbwPAWcDu8QcjuSuw4MP1Kabb407EBEREREpDCU2/WhNNRyQwDsL+AAwKu54JLCNPv6pqXTLP+MOREREREQKR4nNIPz6ptoOP3usD6cDJwD1ccck/VqYwT9tSLrl5bgDEREREZHCUmITwurUtNRQEkcCpwLvRUlOMbmhDf9TI9MtrXEHIiIiIiKFp8QmR22pxhHAcVjBgWOBYfFGVLGaPbigNt18W9yBiIiIiEh8lNg44Nc31bb72SOwJOcEYELMIVWCVg8u2Uj28jHpxem4gxERERGReCmxccyvb/I6/ezeWRvFORaYASRjDqucdAE3+/hfTaVblsQdjIiIiIgUByU2EetINY7K4B/l4R0JHAZsH3dMJWqTj399Au+K2nRzc9zBiIiIiEhxUWJTYOlUw9QE3mFZ/MM8vMOAhrhjKnLNwC88uKY23bwu7mBEREREpDgpsYlZ96ag+wEzgUOAfYG6eKOK3Rs+/p88vD/Ueol5XusiP+6AREREZEBTgcnY3n89hw9s7D7WAS8Cy+MKUMqfEpsi49c31bb5mX08vH082NuHvYHdgJq4Y4tQFnjWx78vgXdrjZd42GtdlI07KBEREenXOOB92Hrig4FtAj5uGbAAuAx4MJrQpFIpsSkBfn1TTaef3c2HPXzYGdil+2gEErEGl5sMsNCzD7QHEvBQdbp5TdxBiYiIyKB2Ab4BnAJU59HO54CfOIlIpFtV3AHI4LzWRR3Y3Y0Fvf9+dWpaahiJnbL40z28RmBbYFsPtvVt7U5toWPdQgZ4HXgWeAF4LgEvbCD7gko0i4hIBIYBBwBTgN/EHEu5SQEXARegaq9SpJTYlLDu5OCp7mMrG1MN46vxxvn4kxJ4432Y6MF4YAQwHBiZxR+ZwBvu21S3Eb0ePhIb0csAG7r/bh02X3Yz0AG0A6uB5T7+cg9vlQfLfFiRhJVVXmKx17qoPYKnLu6NAZqw18UIYAi21msT0Nr939XAa9hcaREpDwlsSlE99t7vmQWwDvuM39T9/8WqibfXp84E9sIuuhdQPonNSOBs4Ahsn7x1wPPY81vQ/8OcmgTchv2cRUREisY04EzgOuBR4C0sYQ16LAPux6YQnAyMLmj0IpKLBLAncC7wc2wq8BtAJ4O/5zcDzwF/A34GfAzYg3huju4NfAv4B7C2j1h7jidjiC0KJ2A3lfp7ntdiSWmUxmGzLsJ8TwQ5Log4bhERKVP7AVcAi3D/5ZQF/gN8E+3TJFJM6oCTgJuAVbh/728GHgC+iiU6hfDzgLGVQ2JzPLYp9WDP9TaiW29bDTwWIAYlNiIiEqlR2AXHi0TzpdTf8QhwDvGv8RKpVNOwilMDjWhEcSzGRnL3ivC5VUpiMwxYQfCf/bkRxfHtEDEosREREefGY1M1Cn1Rs+WxojuOUVE+WRH5r7HYVLEO4n3v+9jaj89i6/ZcqpTE5pOE+3m/hPtKt9OwNZZKbEREpODqsYo1bcR/UdP7eAv4NKqiIxKlj/B2gZdiOtYC38UKlLhQKYnN7wn/s57qOIbLc4jBx4pOPA7cgq3l/DXwZ+A+rABNoRIbD9gV2CfifkRExLGTgWbiv4gZ6FiAbeImIu4MBf5A/O/vwY5N2PS43tU3c1Epic19hP8Zz3TYfzXhC8ssBD6Are0ayHjsO+sAh/GC3TzbFZsKfQuwsjuuyxz3IyIiERkK3ED8Fy1Bjyw2Bz+fTd1ExEzCLuDjfl+HOVYAnyD3xe6Vktj8lfA/2+kO+z8iZN+/pPDrKquw8tMXYIlMf4mYEhsRkRKwK7b5adwXKrkcj2H7T4hIbsZS+MIgLo8nya3IQKUkNhcS7ue5Grc3jL4bou+7iGeq8b8CxqfEpoJEVR5QRKJ1MjAfS25K0QHYHOyD4g5EpATVAX8Hdow7kDzsg93g+F+0/q4vN2BrVYK6HtuTyJX9Ap7nA1/CNvMuNL1uZCtxbK4lIvn5FPBT3H+ot2MLO9dhlXA2YBWNhmObcDY67nM0cDdwOnC7w3ZFyt3lBL/w7MtqYB62JmIhsARY3310YXf+h2IVDZuA7YCdsRsRLqc71QCXAMcCR3b3LWYxVlXy+wHOfRH4nuP+twt43gJsHzMREZHQ/h/upoI8B1wJnAJsy+AjuDXYxc1ZWJWbJY7i6AQ+nNuPQ6TiHI6tVQv7PmvH3rfvIr+bmuOB07A1DZtyiKOv46IQ/VfKVDSwql7fZ+DnuZBopvUGLfN8RQR9B3XvAHFpKpqISJE7l/wvIJYDlwK7OYjHA2Zhi0bzvcDpBE50EJNIOUtiF7Jh3ltZLAmJ4uK3HquC9XDImHofjxAu0aqkxKbHwcCfsBG1niR1IbZofrAKZLmoIvjv73MR9B+UEhsRkRJ1GjaHOdeLh8XYZnmpiOIbg9117fnizeVIA7Mjik+kHLyXcO+pzcD7ChTb3ti6kDCfU+sJn3BVYmLT29AC9RH0d3h2AeLpjxIbEZESdAB2hy6XZKEdm3tdX6BYx2MXN7lMlfGxzfxULU2kb/cQ7r20fwwx7oqNLgT5DDgjh/YrPbEphOEEf53l8jt0RYmNiEiJGQW8Tm5JwjPEVzXtKODNADH2dcyn8PshiBS7SYS7YVCokZr+zASepv/4/i/HdpXYRE+JjYiIOOcBfya35OA3FG6Upj8TgfvJLf6fFT5ckaL2UYK/f34bU4xbqsZKAW/mnfG9CgzLsU0lNtFTYiMiIs6dRW5JwSVxBNuPGuD35PY8jo0hXpFi9SuCv3fimII2kB2xkVgf6MCm1+ZKiU30lNiIiIhTI7EKZmGTgS/HEewgktjmcWGfy0toSppIj0cJ9r55Nq4AB1ED/ID8P6OU2ERPiY2UrMH2rRCReHwPW4gfxuVYKedikwE+Adwa8nE7YNNYRAS2D3jeC5FGkbsO4H8pzs8oESkT+WzSJSLR2AH4ZMjH3IpdNBSrLHAm0ADsG+JxXwWuBVZGEVQePGwN0cRef9eGrSV4E6tGV44mYKVgR3T/OY3tYfQmthdRuRkDTMc2sB2KjTpksd/1aqAZWy/SWoBYRgx+CgAtkUZRvpqw3/M0bG1QCnt9p4EVwGvY7zsTU3wiEoASG5Hi87/Y9K2glmAjItlownGmFduPZwE21SGIeuB/sAQnrInACQHP/SUD//zGAO8GDgUOxC52a/o5N4NdXL4IzAPuA54AugLGUiwmAodhO93via2T6G/BdyewCKvEdz9wNzaVsFAagaMDnnsDdrHalyrgSGy/mFnYTYbBdGHVvx7Ayhw/gvv3Yh3Bv681EyOYkcDJ2MbABwNjAzxmE/AY8C/gD9hrPkpzCPYaXAH8dYB/3xarVBlUmE0/DwOGhDi/t3+z9dTJjxP8NTwp4Hl7AucEDaoPN2N7LomISEhTCbdnTQa72C4lZxNurc16rOx1WLND9NHXRWMVcApwF3bxGnaNUO9jJXAl4Uar4jAU+Ah2kZ7rXkQ9xzPYruSjCxD3ySHiGtfH48cA3yC3dW1bHq8B55P7xV5fwuwEf4PDfotRvmtsdgPmYqNu+f6u78VueHhun+J/zQ0Yx7xB2gm7sWuhjgv6iLWzCOLa8pg+yM9XRET6cTnhPnB/FU+YefGABwn3PHMZsZkdov3eiU0Sq0j3esgYgx73AUfk8HyiNAwbKXwL9893E/ATwq8ZCyPXxKYGe94b8nh+/R1vYNMvXV30pgP2+6Kj/opVronNRGzvnHwT9r6Oh4nmpsXcgP0rsYn2UGIjIpKDKsJtarmeaC8Wo7Q34UZBcrlYmx2i/Z7EZm9sqlwhviz/QfAF4VHxgA8Dq4j++a7DpoNEcXc7l8RmD+C5Ajzv27ARoXy9EqLPHR30V6xySWzOwD4vo/w9dwJfI9w04sHMDdi3EptoDyU2IiI5OJZwH7bfjydMZ24h3PMNu/fF7BBtVwMXUvgv1TRW+S2qqSwDmUb4kTMXx10EW88QRtjE5myCj4C4OF4n/2Tj7yH6+0OefRWzMIlNNXBdwPNdHX/BCg+4MDdgn0psoj2U2IiI5OBGgn/QthF84WSx2p9wXy5XhWx/Toi2/xoyFtfH7cA2IZ9fPt6FVfWK6/m2APs4fD5hEpsfEc10pMGOVcCueTzHb4Xs78N59FXMgiY2LxAuGXR5PICb5GZuwP6U2ER7KLEREQkpAawh+AftjfGE6dy/Cf6cXw/Z9pwQbRfD8QJWPCJqZ1IcFw+bcbfW6KQieD5BjiXAlByf4yEh++oifNn4UhA0sYn7+Av5V6ibG7AvJTbRHkpsSojKQooUh70IV/nrpqgCKbAwz6MRK1tarnbCFiFHue7mc8BvKI5S//XY+pPDHLQVx1S+XEwBfkdu6zD+jRUkCCoJ/AJby1XOa26K1YkU995iImWpGL7cRCTcxd0abB+FcvAH4AqCX+gdDlwfXTiBtWJTi9LYDaJ6rOpSvguHpwH/xPbVWJFnW1v6MDYNK9ckYBVWWGFl9+Fh61UmY9MKh+bQZj3wZ+AgbMQqV34ej+3LW9j+Gq9hIx8JrADAGCxJyGeN0CHYuqpLQj4uC1wNfC/k447BfrZ3YYnOXRRmQ9FS8TpWnGQp9jqqxX7P44DdCbeny5a+jU2H+0+eMYpIQEpsRIpDmL1o7gc6Ioqj0FZgF8v7Bzx/FoVPbHzsbvndwEPA81j1ui3VYJvpzcQuJo/DLpLCagLuwJ5rfxtJhnU4tglp2KRmJTb15w7s99TfxpO12NS/U7EEqjpEHyOwkZsDgLUh43NpBbbQ/M/AU/SfLCWwEdZ3AedhCW1YF2Klh5eFfNzPsQ1rw1ZZ87DX5DHY+rz7sdfzk9jvdUPI9krdU8C12Ot66QDnpbD34clYwYmw7+dqrNT5nNARuvUY8P4Q56ewkd0grsA+H3OxsI+/+wDBP6e+g410D+Z28tvfqa/PexERGcDL5DcvuZSF2bvn8RDtzgnRbl/HGuyLszHH5zUKm4qS66aPP8ux3y2NI1wZcR8bnfkcNqISVhN2ERF2gX4+68byWWOzDntP5XJnPoUlGpty6DdsMYweH8uhr4GOLFZK+q/AD7ANWg8ERuYYX9TyWWPzHHB0jv1OxfYNy6XfXPucG7D9wdbYhDU8YL8+cLrjvsN4aIC4eh+XxRWgiEglqsZGYIJ+kYQte1zswlS0Wh+i3Tkh2u19dAAXY1/uLgzFkrdcFsWe6KD/20P2+SA2vSxfJxN+75D35thXronNPcCEHPvsbU/Cb+i6idwr4f0xZF+5HmuwdV/XYEn6CVjiGuf63FwSmyw2hS/MSGJ/PoqNeoXp/64c+5obsH0lNgMfSmxERApoR8J9SY6IJ8zI7Ey45x/0QvSwkO36wEvYNKMozMIWf4eJZzEwJI8+TwnZ309xO0V5B2BRiP4Xk1uZ3FwSm2tw+1wnYFXPwsTwqRz7qif4RV0Ux3os4fkJNvUwnzLWYYVNbDqwKZIuHQ9kQsSQJbeKh3MDtq/EZuBDiY2ISAEdTfAvEdcLyotBLbZAO+jPYEbAdsMmNncTrjJdLqZiC7nDxHVRjn2lCJdU5LIGJ4jp2Os2aBxfyaGPsInN9UTzXGcA7SHiuCePvkZh+6WEed5RHkuxn+t7yS8ZH0yYxKYL90lNj2+EiMPHpnaGNTdg20psBj6U2IiIFFCYPQaeiCnGqPVUJApyBJ2vHiaxuQ93u4UPZgLhEo7NhF8sDvCZEH3cQf4V3QayL1YIIUgsawh/YRwmsXkEN1OS+nNJiFjayO91V0tx7uuyEVtn5aKU95bCPN9vRtB/jwTwTIhY7sihj7kB21ZiM/ChxKaCaB8bkfgNC3HupsiiiFeY55VLWeHBnIe7CmSDWY5VTAv6nOuBz4bsI4ktag9iHbaRYyZkH2E8iZW+DWIUtoloVM7B1jtF5UcEL6dcC+yXR1/twKextS+v59GOa0OBDwH3YhXITqPwew0tIvfRziB61u0EdTCls9+SSMlSYiMSvzAX6uWa2GwMcW6YRDCoKC/q+/Ii4ZKVz2DlpIN6N7BdwHMvINzGj7m6HCstHMR5Idv2Q5y7JmTbYa0EfhvifBfrU+4AdgG+QPgS0lHbC/g9NtocdBqpC+uI/n39BwYuF93bKNwU5ZC3hXnfS4VQYiMSvzBTgPrbR6TUhbkACbrgu9jvjv4a208kiNHYvilBfSjgeS8R7iI8H10EXz+zK+Eu+Ivtd/3PEOcGTUAH04aNFjVhe4H8BRvRKRb7YgUHLqV89tDLYGvzgmqKKhARMUpsROIXZhQml31FSkGYUaugozulcDfvSyHO/WDA84ZhVZuC+BGFTZbvxtYlBPG+KAOJ2L0ET9bHO+67HRshObm77bOx8tBBRxailMRe83eRe6nrYhOmAITr37WIbEGJjUj84l5fUgzCTC8LmtgU2138vswn+B3fown2mT2LYAvS15Lfbty58LGdyoMIM0JVbNYRfEpYlBXE1mM7yJ+KVeSbghUruRQbVVocYd8DOQx73ZdDchM0UYdof9cighIbkWIQJrFxsZlgsUkA40KcH2Y9Tim4PuB5o4A9Apw3K2B7d1O4ggm9/ZVgo0T7EnyEshhH51YFPK9Q1fjA1lLdim22+S6gAauAdSC28eRlwN94e7PRKO2NTZeLskJdIawOcW4hf9ciFalc5rmKlLI3Q5w7DaukVExz5/M1FagLcX6xLY7O1+1YghHkoucQYOEg5xwcsN97A57n2ltYEYHBqoFVA/tg6zJKUZgL3jhtBB7vPnqrxzbP3aX72ANLNl1OpzoUuJhwUzKLzSosCQwyQlwKo8giJU2JjUj8Xib4F2MCW2z8fKQRFdb0EOe2Ay1RBRKTzcBjwJwA5+4Y4JydAvY7jOg2LxxM0NGMnSndxGZz3AHkqRUr0/3kFn8/GUtKjwKOJf8F8f8D/I7gFfOKTQe2nkrXU4VXjCO1EjO9EUXitwkbhQhaCnR/yiuxCVMC9jUKX5q5EB4hWGKzwyD/Porgm3leGvC8OKmKVPF5o/v4a/efdwI+AnwMq94XVhLbD+ZYJ9GJSEXTGhuR4vBSiHODrqEoFWGeT5ifUyl5OeB5U/P891LTGHcAMqgXsTU7U4DzsYIFYR1DsPVjIiIDUmIjUhweCXHunKiCiEE9wdeEAPw7qkBitiTgeYNVj8p+osYAACAASURBVIti89I4jYg7AAmsDbgKW48TZh8fsGm4ZziPSEQqjhIbkeJwX4hzmxh84XWpOIFwJVDDLHgvpYW6QSvjDVbuu9zKyZZrefNytgx4D1Z9LYyTIohFRCqMEhuR4vBvwlU6+0BUgRTY6SHOXcvgFcFKVdB1Q6WUrLlQrhvSlrsO7DMqzFrA6YQr+y4ishUlNiLFIU246k9nUvp7IkwDjg9x/t0E2/+kFAWdQjbYHj5h9kQqBZWWyJWTDuDcEOd72N42IkGpKppsRYmNSPG4KcS5Y4GzI4qjUL5AuM35fhtVIEUg6N4ggyUu5bZ5qZS2B7DiAkE1RhSHiFQIlXsWKR5/BH5K8JGYL2K71ndEFlF0JmLlYYN6C/hHRLEUg+0Dnrc0z3/v7X+wvUqKWalscin9u53geytNiDIQESl/SmxEiscGbG+IoOtOmrCL0x9EFlF0fkC4he6/J3wCV0rTmIIWgxisLPRabPPLsQHaeoxw1fhEchFmxEZrqkQkL5qKJlJcfhLy/Aux/SNKySHAh0Kcn8HKyIZVKvOvk9jPJIgg+/i8ELCtctoPqVR+15VoRYhzdU0iInnRh4hIcXmUcKWfh2FrT5LRhOPcCOD/CDea8gdy25izVEZs5hB8x/YgBSbmBWzrPQHPk+JTBdTGHURAnSHO3RBZFCJSEZTYiBSf74U8fza283ex84BrgW1DPMYHLo4mnKJxZsDz1gP/CXDeAwHbOxg4IOC5Ulx+jq05K4UNTMOsm1kXWRQiUhGU2IgUn3u6jzC+C5wSQSwufQt4f8jH3AQ84z6UojGF4HsS/Ytg+908RPCyz58LeJ4Uj/8HfBwb6buf4l9wv0+IcwdbQybSm6agylaU2IgUp/MIt1g+gU1JOzSacPL2SeAbIR+zHqv8Vs6+A9QEPDdoOfBW4M8Bzz0V2xhRSsMHgYt6/XkvbOrhrvGEMyiPcFMen4sqEBGpDEpsRIrTi8APQz4mhU1PeZf7cPLyWeDqHB53IbDccSzF5CDgrIDnrgXuDNH2DQHPqwJ+Tems0apkhwK/Yuu1Y03AExTnvlbvIfjU0xbClSsXEdmKEhuR4nURwStc9ajHSkYHvWCOUhWWnF1J+M+ah4BfOI+oeIwEbiT4z+UXQFuI9u8m+BS+g4Evh2hbCm8n4C/0XzAgBczFqioWS1GBFOFK0d8RVSBS8YrlPSEFoMRGpHi1YlOFwm6iWIPdhf8/4tsXYhw2evT5HB67Clt3EmQ9iSufLmBfNcCfCH4nu43wZcB94JIQ538LOD5kH1IY44G/A9sEOPd8YAE2Ghi3nwE7hjj/D1EFImUr6BqbUiiyIY4osREpbs9hU7lycSZWResYd+EMygM+jMV9RA6Pz2Jxv+EyqADOx0aWop6SlcIu4A4P8ZirCLcXSI+bCT5q05NsHZtDPxKdeuA2wlUS3AUrC34FMDyKoAZRhVVt+0iIxzxN8Gp+Ij2C3vzaIdIoREQktJ9gd6dyPW4Gdos4xmOw3ezziTOXEZ7+HJlD//8iuipTU4B/h4xnGbZXUa4OwZLFoP2lCbd5ai4+BdxFfs9rS+8h+HOc7LDfgdwaMJ6/D9DGRwK20d+xGivAkXL6zPo3EhupDRtn0JLnYElTkDafzPvZBNcZMKZzQ7Y7N2C7QfeuCmp4wH594HTHfYdx8wBxbfm5FkeSLyIi/UhgVbHyucjJYBdbx+BuZGIIdiH8eJ6x+YSbOhXEUTnGsQar4lblKA4Pu3BblUMsYctj9+XaHPr9HXaR6tJ22EV874sxVxcbJxD8uZVSYgNW3jlMctrX8Qa2jmq8qye3hWqskmMur/FHCbeZrhKbrY9KTWx+NkBcWx5fiClGERHpRw1WGSufC5yeYxk2xekkYFTIOKZixQluBDY6iuc6wl3cBJFrYtNzvAqcQ+4X3x62buWRHPu/Psd+t1SPTUkL2/9S4AIsec3HNOy11tZHH4/iZv57OSc2YK/DroDtDXR0YFMhTwKG5v8UmQZ8BXglx3jaCbfPDSix6euo1MTm6wPEteXRCsyIJ0wREelPLcGH34MeGeA1LGm6Ettb5cvYlKH/Bb4HXAPciyVELvv2gctxn9RA/olN7y/Em7FNEacz8NrEFLZ+5vvA63n0+TT5JxS97Yzt6p5LLKuwDWBnEHykbzRwBnA7g1+QP0745HpL5Z7YgCUj6wO2GeToAO7DLg5PwRb6Vw/Qv4eNup2Kvb4fIv+RpAsCPvfelNhsfVRqYnP4AHH1dbRj1UanDtKuh1Ui/BTwxygCl+i4mmohIoXRjn2RLMbd5pUJbC+MJgq7B46P3e29tIB95iKFTQnrmRbWjo3mrAI2YT+/odjd62nkX5RlKXAcsDnPdnp7ATgRW/9QF/KxY4CvdR/rgAexHeKXYyN2dLc5AWgA9sYukoP+HPbHylMfhU0DlL79BdgXS7LDjnL0pRqY03306AQ2YAlUTxI1Eks8R+C24NBc7EaKSK7mYTeeglb/rMH2R7sQu/H0PPYZvh67kTQUu/ExnbdHkjc4jFdERAZwLrYo0tUd3EIeq7G77FFyNWJTyONNot1F/gT6nhJWDMdTWBKV6/MK2k+pjtj0qMM2vI3795XPcQu5r/PTiM3WR6WO2IAl/FG+VtcX7qmICyr3LFK6rsbu4D4bdyAhPYbdpb894n6imN4WpWZgFlYqOyq3Y8Uj1kXYR672orw3ZXWlDbtAPpzwG/gWg18CH6Sw+1RJ+boi7gCkuCixESltz2Ob8V1F8V8obAa+ipUgfr0A/fkF6MOV+7Df4ysF6OsBYCb22ikmc4Gz4w6ihNyHTfv7OjZyW+zSWOW0T2DrrkRcuB/4c9xBSPFQYiNS+jZhG0zui23MV4zuwKZYXULhLmrCjNhcgs3VLrQubDHrUdialUJ5Hhs1+2UB++zPYuBk4KPYa1mC61kMvQv2u+yIN5x+PYatC/pZ3IFIWfok9jkiosRGpIz8B5vKdCqwIOZYevwDOBRbA9EScywDuRqbCnVnAft8BNgPu+Mex2hbK3b3/DDimc64GbgYuyj/Swz9l5Nm7Hc5DfgB8STpfVmKXXQeDLwYcyxSvlYBR2NVO0VEpEwdg1WbylDYhcHtwO+xaTJxOprgMfcu/3kUVso2qp/PQiz5LKYbS1XAx4CXiP71sRZLaHItFNCXSioeEMRobNrXowFjcH08he11VRvBc1PxgK2PSi4e0NskbGqay9eyigeIiBSZydh+EQ8T3YVMprv9C4CxhXlag8o1selxEPArrNxnvj+fVuB3WDntYi5qkMCmhf3/9u47bq6qzuP450kDQnoiKEjvSDGiNKWKIAjWFRSsWFhkVRALimURRcWluKIsurt2AQugIiBIDUgVkCahhkAIAZIQSChpz/7xfWbz5Mkz55w7c8vceb7v1+u+KDPPPefeOXPn/u4553fOJ9/saUvROkjvR+mz8+bAprnNgRPQcLA8Fvlsts0ETgF2LPh4HNisujmwWaEHeB9wC/m06znlVt/a1ck/sGaWvw1ZsXbF7sBGLe5nGcrIdBWajH41Gg7QSfYF/pL43vWBR5u8tgY6X/uhRSq3J74WzIto6M01aJL3FdRvPYQJwP6saCubk97LtATN47kFuKxvK3KNmi1JTzxwEuV8Fu8nLXX3dHQDW4Zx6LPcixXrDa3Twn6WoPZ9B7qpvpLyhpq9A9gp4X2zUFKVMpxE2nfjAtSLlurdaO5kzCMo4MvLaigYTnE2GgbdiXZECwXvjIYaj0r4m6fRUO6b0XX7OjQKwWrCgY3Z0DYGLUa2GVqgcwJamGxNdPO+CE3oXoSeXD2MbsQepHMnKjfkFdgMNAI99V8P9U6NRNfShX3bI+jp9fIsla2B1VjRTiahRfHG9r32DArmZqN5FQ/1/bd1vrEowNkABT5j0XVhHOrhea7vn3PQZzsbfb5LqqisWYtWQw9AXoYWnJ2ArtuN37hH0bV7blUVNDMzC9mP9OEGgw1FMzMzsxrppMmrZmZmZmZmLXFgY2ZmZmZmtefAxszMzMzMas+BjZmZmZmZ1Z4DGzMzMzMzqz0HNmbWrZzO3szMbAhxYGNmZmZmZrXnwMbMzMzMzGrPgY2ZmZmZmdWeAxszMzMzM6s9BzZmZmZmZlZ7DmzMzMzMzKz2HNiYWbdyumczM7MhxIGNmZmZmZnVngMbMzMzMzOrPQc2ZmZmZmZWew5szMzMzMys9hzYmJmZmZlZ7TmwMTMzMzOz2nM6VDPrViOBMYnvXQAsL7AuZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZta5eqqugJmZma1kDWBtYBgwEVgKPAcsAl4EFlRXNTOzzuXAxqzzTAUmF7j/XuAZdIP0AjAX3yiZVWEUsHPfth2wDbAeMCnyd88DM4CH+/55O3AzcDcKgszMzMw6wkUo+Chzmw/8HfgtcCLwFuI3V2aW3RjgMOCPwELy/R4vAq4GjkOBkrWnB3gvcAXwBDALOA/YrcpKmZmZ1UkVgc1g23LgHuB76Id8WJEHbdblNkTfpeco7zv8CHAasG3xh9d1hgPn0Pza+PnqqmZmZlYfnRLYDNweB/4T2Kq4QzfrOpPQ92YJ1X5/bwaOBEYXe7hd4wTiD372q6x2ZmZmNdGpgU3/H/RLgP3xPD2zkLcDT1H9d7b/9iRwPDChwOOuu9GkDRO8uqoKmpmZ1UWnBzb9t5vweHOzgUYA36f672doWwB8DffgDGYP0s7hUvRZm5mZWRN1Cmx6UQ/Ob4D1izgZtpLxwFvR0KadK66LDW40cCGtf5+WAXOA6cCNwGXAX4Fb0Jy3BW3se7DtEeDgQs5EfR1A+vlzYGhmZhZQt8CmsS0APl7A+RjKRgA7AF9AN7gvseJ8H1hhvWxwI8n+/X0ROB84FvUUjE0o52UosD0S+AXwYMYyB9uuQAkODDYm7ZzNrKqCZmZmdRG7Mdo/hzLWQJOaNwbeAHwY+CZwKe1nbToX9SxYe3ZH65U0O88ObDrPj0n/ntwOfIL80qpvigLgG1EvaqsPJz6YU33q7mri5+ubldXOzMysJsoIbEJGADsB30HDVFq5QboLP/1t14GEz7EDm87yHtK+G08DR1Bs+vQtUGrpZxLrNHD7bIF1q4utCQ/7u4u03jUzM7MhrerApr8eYE/gD2jsf5aboyeAHUusa7dxYFMfE1HAEvtO/AmYXGK91gSORt/F1O/tTLw4b8N2wG2seo4uAKZUWC8zM7Pa6KTApr+tUJKALMHNQmDXKirbBRzY1McpxL8LP6a6RW5HA58D5kbquBRnORyoB/VgHwF8CPWGmZmZWaJODWwa9gLuJD24mQ9MraSm9ebAph4mEF/z5I9UF9T0NwX4b5r3vn61uqqZmZlZN+r0wAZgNeA00icpPwlsVklN68uBTT18ivDnNAcNVesku7Dqw4mrgOEV1snMzMy6UB0Cm4YDSJ+gfAde8yELBzb1cBXhz+lfK6tZ2OrAqejhxFPAutVWx8zMzLpRnQIbgFehCccpwc2vKqpjHTmw6XxjgcU0/4zmogCik+0DvLnqSpiZ5aETxvyaWb3dDbweeDjhvYcCHyi2Omal2Q4tytnMn9ECnJ3sr8AlVVfCzCwPDmzMLA+PAm8CZie891S0crpZ3W0def2GUmphZmaAAxszy8+DaM7N85H3TUaLf5rV3csjrz9USi3MzAxwYGNm+bodOCrhfR/Ci3da/Y2LvB4L8s3MLEcjqq6AmXWdn6K1bkJzaXqALwNvLaNCfcajxfU2BdYG1kIrs6/W9/oitB7Jk2ho3T2oF2p5iXWsu2HABug8rwusg85xI93xcmBB3zYLmIHSDs8vu6I5iaVHnlBKLbrPeqgNNdrPOLR46HOorTwC3E99201eJqM0+mNZ0dYWovN0P0o13g3WQUlqNkVtY3XULhaj452FrtW3AU9UVMd2Na6dmwOvQMc3Bh3jIuBpdL28H32+nW4SOpaBbXMhOobCPicHNmZWhGNQ9rbQXJoDgR2AvxdUhw37yti1b9ughX0sAq4DLgd+g35Y2rE/sEfiezeJvH4UcFAbdTmS9oO2kcCewN7oHL+W1lJ6PwRcgTICXgS81Ga9yvJC5PW1SqlF/W2DhrHuhRKRjE38u9nANOAalADhwZzrdSbNR7bcBXw/5/JiXo3mMu6NvmtTIu+fB9wCXIa+V/cUWruVvQ19ps18HQUkg+lB7eBQ4I3oBjnVA8CFwLl0/hy316LfhL2AnYE1Ev9uJmrz1wAXA48VUrtstgP2ZUXbjM2jnY9++y9Fx3BXobUzs0rVLd1zMx8mnv757JzL3Ao4Hl0wU9JPZ9mWozVLDkA/vK34dgH1anVr9cHW6qin7aconXHe9ZoH/Ad6StvpPk34WH5UXdU63hjgk+T7Xb0BfSbjc6rjkkBZF+VURsxE4Fh049fu+bkR+BjlpCA/MVKXbQf5mxFomPL0yN+mbrcA76b163URJgHHoSAzj2NcBlwJfJTy14kbDxyN1qjL47M6gvTgzsxqpFsCmx5WXd184PYi7a/KPhat/n53pKw8t2vRE6qs6hzYTEXBzHMl1e8F4N/p7HVgYmsNzaKzbqo6wRjgK2hoTVFt51kUHLe76GiVgc1E4Bto2Gbe52cm8HHiQynbkTWw2Z38ApqB2zTUK1ilRtKcZymu3T+FrpmTCz6WCX3lzC/gGB5Dowk8osysi3RLYAMaShC7kH2sxX1vhAKFeQllFLEtAb6Qsc51C2yGoeFul1VYz9uJD8urytrE639YZbXrPAeh+TFltZ1F6Ds3psX6VhXYvBvNjynjuzW1oGNIDWxGAKegnocij/V51CNQth403/TJjPVtZ5uPfptGFXA8B6E5qEUfwz/QUHUz6wLdFNgMR+PeQ8dzTcZ9jgR+hyYTl/VDEdpOJ/2pfJ0Cm32If3ZlbU9T3A1Yu+4lXPdZOInAWDTstKr28zDqEciq7MBmPHB+oMwitpeATxRwLCmBzTg0N6rM4z2Z8npRX0b5x9d/uxPYPqdjGYvmmZZZ/8VoNIaZ1Vw3BTYAXyN8PMvI3nX++8g+U7cl6Eleu/s5KbHedQpsNiV8Y5dlew7NUWpnH3NRBqhO83Xidb+F9odc1tVWFDfEKMu2FA3tyjLEpczAZhuULaqq83MW+Q7/iQU2O6GHWlUc63dzPM5mdkbDqqpu9y+iZD7tBHNbAv+s8Bj+Fz3QTOKxv2ad5yLCwcsBKItIXWyCfrBD15u3A3/IsM9XA7dG9tmwGA25uKlvuwvdJM9nRdrM1dDT0nVQRpedgDcDr0ysTy/wL8B5kfd9m+zD14oyEt3shfwceH/i/mYDN7PiPM9E53g+ukEEPaGdgG52d0SZ1PYh/Ybqrr6/i2UjK9P6KBNT7If3VuCDDK3sP69D16pWxvw/iSZYP4Xa0Cj0HX0lutFKzZw20MXAIaSlzF1C87Z5MeGsX1m8Dj3Zn5Thb+YB16Nz9Aj6TgxDw+42Rz2cryVbsPJbNHw4dl1IcSJK6d/MdJTSO+RulDXrH6hndBF6EDWlb1sL2AVl49owY/0+gbLeFWE/9PBtzRb+dhY61rnAM2iO4XiU5npLWk8Q8EuUYCBrxsmpwF+IZznr7xngb6htzkDBVQ86H422+Tqytc3zgfeg33Mzq5lu67EBPbEOHdPpLezzgsD+nkc/0u+i9SwrI4B3onTPKU+VZpPvkKPYxPR35FhWM1sSHvJ3H7qBeVUbZbwS9Xo8Eyin//aNNsoqylmk1X0x6t0bCmmgdybbROll6Cb2I6SlZt8C3ZxeRPZhqbeSdl0oo8dmR9ITBLyE2tobSFtgfQK6mY0lcem/nUM+D71jPTaha/cZ6NqTxdboQUxqW3iB1hLAxByIPqfU412Mfsveh9avCRmGhvAdgzJ0Zu0Fv5y0dtMwlfQEAYuB/0ZDPlPKGA8cjoLW1Pr/PmP9zaxDdGNgczLhY7qlhX3uwKoX9pvRD0SrT3MHMwz4HGk/Vt/KsdxOCGxg1bkRi4AfkP/Ezg1R9qLYOX6R9rNd5W0y2SZ7vwj8DK1fkTzEoka2QD0tKeeicbO+URvlrQucQPpN2DcT91t0YLMRWqgw5abx57SeRGMYSkiQOmfu6y2W018rgc25xG/uY7ZAN/Ap5V1PviOXdkbXx5SyF6GkCS9vo7xN+vaRWmaW+SrrkpYkYBmae7Npi8fQg9rmA4nH8O0WyzGzCnVjYLM/4WNaSGs/MBf2/f1f0MJgRdoH3WCEjuMZNNwqD2+JlFVWYLMN+vGai254sgxJyGo4aZOnTy6wDq16I63NSVqAnkQehW6Myl6LIm/jSb+BnoaGJeZlAmoboc/h16Rfa4oMbNYkLUX9w+T3EGEN4BcJZS5Hw4PbkSWwWYiG8uZlGEr3nVL2oTmVuS7pmc8uRENY87I2WjMr1INzWob9rUHa2jQz0bDtPKwO/CShzF4UCJlZjXRjYDOJ+MUqdT5Lf1tTbraslEVHP5BTWZ0S2IBWEW81ZW5Wo1HPW+jYZ1PsGhyt+hDtp61dim54z0GJNw5GQ2ZWK+8w2nIOaTfOJ1DcsJJXM/iClleT7TwWGdikDF/8M9nm3aQ6hngQPof2hkymBjZPAK9po5yQ2EiBXjQUqt1em+FokcxYWYvRorRF2Q3NaRlY7nlk+659f5B9DNwuRfOc8vZJ4m3zadrv2TOzEnVjYAPxBfn2rKxm2cTWdLkgp3I6KbAp21Ti48ffUFntwg4hn0x7A7elKAnHn9AN2+Goh2d8OYeV5DDSbu7eU0JdxqChTY1y7yV7kFBUYHNAYL+N7Y8Uu0jhYcS/Y+e0sf+UwGYBxT6YGoZ682P12KPNcj6XUMZC1OtftCms/Bt1A9nmme5DvF1cTLFDaA8h/oAolqjHzDpItwY2sUn4H6yuapnsQvg45pHPk+jYzU83BzYQT+n9peqqFjWVwXsMitiWowxTv0JP4nejvN61/sYBj0fquox8hxzF9KD5YHOAjVv4+yICm1HE01/fQGsZtbL6UqQevcDrW9x3LLBZTn5Z5ULWQ3PaQnX5YRv7Xxdl2Avt/wXaD56yGInmvTxItl63EcQTTdxEOdeXlGCx6OHnZpaTbg1sYot7/Vt1VcssNv641YmU/Q31wGY/wsd/fnVVS7IacDzpGa/y3JYC16KbgzzaYoqUNZqOKaku/fWQlmVtMEUENscE9tmL0v0WMfysmdicm2kt7jcW2JzVVq2zOTNSl0fb2PfPI/teTjk9lAMNJ/vw7qMIH8scip1jOdD/RupzY4l1MbM2dGtgE7tIfbG6qmV2OuFj2TeHMmIJF7o9sBlN+EnrHdVVLZMp6CYvNUtYEdudaE5Lqzf4MROJp3bOa4hmmfIObEYSzzRVZo8WKIiKTXrfpYX9xgKbIlItN7Mh8XkbrWTl2yhhv2e0V/XSjGDw+Tn9t8NKrtNE4tkm9xj4R84HbWZliS2IV8XwmVZdFXl9vTIq0eWeB/4eeL2VZBNVeBr4CmoT70QL5S0ouQ7bAF9FQ1N+jybX5+lIwinW5wMfy7nMOjqUcLv9M/C7kurSMA84LvKeowsot7eAfTYzAw3vC3ltC/s9lvA8qBnA51vYbxUOJvzg469ouGuZ5gOfjbxnlbbpwMbMyhJbzbrIibJ5eyzyehnj44eC0BCROgXCoN6n84H3o3Hvb0E9f9ehMfhlGI6Cq1vR+kR5ZBbqQYtAhpyAeqyGulhw94VSarGqn6A5Yc28nXwXH67ClZHXs64RtDpaMy3k8+gBTR3E2mZVAdovgdsCrx/IgOxsDmzMrCyxRTMXllKLfDwdeT2PtUjKfKLZqeYGXhtJfRe3XIyGMh2DsruNQwkHjkATmS9HE/GL0oPG/d9D++t47Ep4GM/jaI5Dt8maInh9dK6auQql+a5CL/BfgddHoZTvdRYLbLL2sh9EOCPhXZTf+9aqdVDSkWb+Rji4KFKsbY5gwLBsBzZmVpZYYBMbqtZJ5kde97U1H/Mir+e5aniVlgK3o0X2jkIpV9dFN047ofVxvo16fKajcf15mICGl5xG6202tljeD1EgN9S9i3B7Dd28leEXhB8u1T2weSDyeuz3aaBYuz+V+jyceifhdcGqfjDxa8LDd1dqm3Ua+mFm9RbLplKnHptlVVdgiBjq5/lZlF71pgH/fySwOerleU3fNhX1/LTiaDRR9yNkP+d7BV7rRUNJLLxO1yKqz/L3LErw0Gx41W4oMKvLzfpAefay9xBO3/w88NsM+6vanoHXXqT6nqeFaN2aDzd5/Q3owcxy8FNFMyvPZpHXZ5dSi/qo6w2EFW8JGrb0S+Az6MZkEpoAfRwr1ozK4oPANzP+zSSUmKCZG4BHMu6zG/UQXg/mBjqjVyuU2nkKsEVZFSnACyiAbCbL/fBWhNeHuZj6PKjrITwM7SYU3FQt1DbH0+865MDGzMqwBvEsVveXURF0IZ+IFux7BdmHIFiaNdD53Rid71HVVqfrLUNZ5L6DnmBuBXyfbBnYPo+SGqSaSvg+4ooM++pmGwCTA69fV1ZFImL12L6UWhQnr+HOO0Rej83n6STrEA7Satc2PRTNzMqwPeEboKXAwzmXuQWwO3qKvRW6uZhA8+E689E47DvRpOrb0KTJqp5W1aHHZjRa42I39MRsSzTkcAKDBzKLUc/cPWhy7d3oHJcV1A4l04FPodXlj0NBSyzZQg+aE7M14afbDbFe2FiK3aEitkjqaOJzNsowDH1Hmz2EKGux104Xa/fXl1KLfMQ+09XpjLbZg36LV2/y+v9ntXNgY2ZlCI3DBwU1eUyI3hw4HF2IN874txOB1/VtDYtQ/v6LgD8CT+RQx7obidK/Hgrsh3pmUo1CAeYGrLzQ7P3Aheg8X4nn1uRpIfBllN75F6iXqBbnpQAAEUxJREFUJWR94OMooUBM7KZoesI+hoJYKuHYWh2dopVFLLtRqN33Uq92H2ubx/Rtne7/f+89FM3MyhALbNp9srsd8Cfgn2gtiKxBTTNroowrZwEz0c1hKGVrNxuJMnY9BPwGBTdZgpqQzdCP52Wo1+xzaP6G5edu9D1M+a4dTdr9QWh4VS9aoNDC56lOJlZdgQ4R+jyfIq23s1N0Xdt0YGNmRZuIhoSFXNXivtcAvoeGjR1Isde0kWjtj+soZ9xxJw1F2xG4AziD+Fypdm0InIwW5zys4LKGmgWol+2eyPtia640hBZJXUR+aanrrlsW7K3borhFCZ2HZ0qrRT66rm06sDGzoh0MrBZ5z1Ut7HcjlLHlU5R/Lduu5PKq9CkUyG1Zcrmj8Zj+IjyL0jrHAucDEvbVbLw7KAuVSV49m1XrlpvgdnVTu++6tuk5NmZWtGbrIjQ8gIY3ZbElCobWzvA3C9EiiDPRU7VGhpwJKDPaOJTFa1s6I4NXJ/TYnAR8MePfzEC9O3PReW5MRh7Xt01Cc6GyrvRt+bkBuBwtBNpMKD1xQyixRuxhxlDSCamc89AtC+K2q5vafde1TQc2ZlaknVDq2ZBfZdznWsClpAU196MJ0+cB95I2KX0k8Co0yXp34CC6ZxxyFp8kLahZAlyCzvOVxBfCa5iCzvEOqHdgV8KrX1u+zicc2GydsI/QWh1r0m/RvCEullnxYTrjQUbM41VXoEOE2n3dlg/olrY5q+oKmFlzF6ELSbNt/+Z/2nEuJHwsvWRf9O3ihH0+AryTfJ4wjkAT5S9NKLexfSmHcveJlPGOHMpoZgfgpUj5vcA55DfnZh3gK+gHKvU8d0LPWl1tSPz8xm7STon8fd175ZbQ/NguzrCfTwX200vx89aqcCLhY962gjrNDtTnvAz7OTuwn6XU67p0JF3WNj3HxsyKsivxcfo3ki015ruAN0fecw5at+Y88nnStBS4ANgXrdlyTQ77TFHVU7IelCQg9OO8CHgrSqbwWE7lPo5uhjYFPoPWFbLiPILadkgsC9YDkddj630MFbGhtmXPX7P2hNr9cOIplDtJ17VNBzZmVoQRwA+I95icknG/J0RePwtl0no+435T3QDsCXysoP13gv2BnQOvP4eCvD8VVP4LaA2VrfDK9UXqRalpQ0ZHXo8trLpTenW62oOR10PfN+s8sXa/Yym1yEfXtU0HNmZWhKOBV0fe80/g9xn2uTua+9LMbWheSNFj+htDsLrVkZHXPwv8rYR6zEFzdqw4obkCEO/RuY1wz2IszftQcR9Ktd3M3mVVxHJxa+T1OrX7h4B5gddr1zYd2JhZ3l4HfCPhfd8iWxDytsjrR9Bd62ZUMRRtNOEJ5X8DflxSXax4EyKvh27GQZnv7g68vjdeaBWUtCS0MOruZMvwaNW6G3gy8PpbURKaOlhO+EFV7dqmAxszy9NEtCp9LOXlLcCvM+57z8Br/wBuzrg/W9XOhNdo+B/qkSGnbGuSPQlG1SaizHTNLCZtnlOoV20Umhdn8NfAa8PRfDWrh15gWuD1KWi4bl10Vdt0YGNmeVkD+APKthSyHPg30lIvNwwjPInx/Az7qosqAojQUD/ozvPcrtVRcolp1Gvh1p0Iz4GbTnwoGsDvIq9/JlJOXWU9pnMJf6c/jdOd10ms3R9dSi3y8RvCv8dHU6PlYRzYmFkeRgK/BXZLeO+ZKBtaFhMJT2TOusCnDW7dwGvzcaaygUaim4J9gJehRS9jc8s6xTsjr/8jcT/T0KK3zWyJ0qUPdY8C1wVe3wj4QEl1sfb9kRWLPA9mH+oz8X424WyfG1KjtunAxszaNQb11Lwl4b3Tyb6SfaOMkDkt7NNWtWbgNZ/jlQ0Hfo4WcG2YgoKb2KK0VZsMHBp5zyWJ++pFQxRDvkv9VmQvwg8ir59I/RZ4HKqeJz6c+nTq01uZ0jbHlVGRdjmwMbN2vBI9sU1ZNPQ59OQ29JSrmVhSgNBcgbqqYihaaOhRN57jVvWg1OKDjT2fhIKbw0utUTZfIRzELibbApRnEM6wtgm6MRrqfks4ve66wKkl1cXadzLhIVw7oSGGdXA+ylTazDrUpG06sDGzVr0NuJ20oTe9wEeAe1ss6xnCN/obtbjfOiviCXgo7edk4j1nQ8VpqD03Mwr1YpxK541N3x3NcQv5HeG2MNA8FOiFHEt8cd1utww4KfKej6K1uKzzPYSGooZ8G3htCXVp13KUqTTkI8D7SqiLmXWZi9BNfLMtpXekSJOBH6ELYaie/bdP5lDuzMD+b8lh/1mMCdSlF/hSDmXsESnjiBzKGOg9kTLL/lH7cqQ+o0quDyhZwLRIvfpvNwNbV1DPwWwMPEG8zq0sMDg+Yd8LgO3bOoLsDgd+RmsPcpfQ/FhSh+oNNAzNMQydpxeo11oogzmR8DFuW0GdZgfqc16L+1wP9VaGjnU28aQ6efsi2RfA7kHzwGJtc4/8qmlmQ0GnBjYjgaPQ2hWpN3W96OY0D7+LlFPmas87R+qSR2CzQ6SM/8ihjIE2jpQ5jfLGjPcAZ0fqU0VgAwpsr4nUbeDNwLFUm/VqC8IPBxpb7Al0yIcS9v8k8Jo2ykg1jJVvrr/fwj6KCGxAa32F9t2LhuzW+QZyqAQ2oOt9rN0/jIZkFm0U8F/9ys36WzQVDUWNtc0986mumQ0FnRbYjAWOIe2mqP+2HDg+x3p8NFLeHZQzQXk/dGEvOrDZIFLG9TmUMZjpkXKL6CkaaBTwy0g9qgxsQMHN1U3q1Wy7i5WTDZTlrSijXax+z6F2147fJ5TzTF+divJytDbHwHK/lnE/RQU2kHYz/CLw4TbLSTEZuJD4EMUshlJgMwK4NrDvxjabYnviNkE9xAN/hz+ecT+fI34sL1HOPMIi2qaZlawTApvhKLPTWWj4SJabt8YPct7DlsYT7/L/OcXNaRgO/DuaYB87/jwCmzUTyikitfAXI2UW/SR5M1b9cW62VRnYgD6jWE/iYNs1wJsovvdrPeBXGeqVx3d2IjAjoazlKGtUnvO2hgFHEg7ijsqwvyIDm2HApYH9999+jW7winAo8HhfOcuA9+e036EU2ACsT9pohiUowM7zIdxI4DhgUZMylwL/kmF/w4A/N9nXwO1s6tc2zaxkZQc2w9H43zehHpZLgGcjdQhtjwGvz7mODacmlH8BCoLytAtwU0LZjS2PwAb0hD9Uzt/Rwqh5msyKZA3NtueBd+dc7uooqIr1hvXfqg5sQMHJ8eiHN+t35T40RC3vjHM7o4cSL2SoSyzdaxavQgkFUsqdiSYlj2yjvOHAIcDdCeUtA96buN8iAxvQder2hDr3ovP5GcLZ7FINB96F5iYOLGcJ+aw7NNQCG9A6bqnfuXtRm20nidco9N15KKG8F9HaOqnGot+XbmybZlayWGBzK3BZm9v1aAG+h1CXctYbsmbbOSjdbVEmA08l1GM2evrc7pyG3VGglCVRQi/5BTanJZR1C9lWvN+EeLf+ZxPK7UXnpt1x42PRytYzEsvsv3VCYNPwFtKGew22LQX+htIw70j2p7ljUFv9Emk39wO3s8k/S+ruNH+CPNg2E90Mvypx/8PRufoWepiS5Xh/lFhG0YENwCuABzLUfS6aX5c109YI9JmczIqn4M22F4E3tnFMMDQDG9DCt7H5U/23+9ADndTr6AgUQJ1O2m9h/+2EjMeyNvGhyQPb5iloDlkWubbNuiwcZDaUXET1mc+ymoOe2MQWLMvD29GPUMr16zHgp2gB0X8QXw9nHLpZ2gc9Ndq0xToeTzyta4rdCK8I3d/1aHL/PajH7Tl08zcZrTe0FepJ2wxlr3pFYF/DgStIGw++HM1n+BmaczIr4W82A3ZF8032B0Yn/M1gVkMTXTvFusAPaX/+yDL00OEudMP/bL9tLBruNQF9ttugz7bVIP4naN5U7LvRitcDf0L1zeJxFOjdh46/0ZanoOF126AEBK0MgTkRDQXqTXjvEpoPbf0L+aWvfjm67k/N+HdzUBaru9D6OPNRj8EI1D5egRKCbN+37yzD/hai6+CNGevUcCLhxDHbAXe2uO9WzUbnejDno6AkDwcB55K9N/1hNDJgOrqOPoce3kxGSxpsjQLarAtlLkMPj87I+HcAa6FhaVkD6TnoO3wnndc2zaxksR6bTtqeR3n6y16ROJYGeLDtBXQhvADdzJ2Bhuv8Et3EP0j6cKLBusn7b3n12IB62PL+3GYnlPsy4P4W9j0LBTrnAmeiIU4/QjcON5OeVW8pcFvkPZ3UY9PfIeiHvervZ+z8Hk/xDzi3JVuPRFHbM8DBGeteRo9Nwzg0Sbrq89TYHkBDGls1VHtsGt4QKa+s7Qk0zLwdY9HvZtXHklfbNLOS1SGweRb4T/T0tCpfHaReZWxnEp/Yn2dgM5VscyVStpTABvT5tjK0qd3tCWBv4AuR93VqYAMakvkd4gkvqtgeQPPGyjIe3ThWdbzX0toivmUGNqAg81ji6XaL3JahdMFj2zyWoR7YgHqHrgiUWfR2ERpOloce4NPkO3S9lbZ5Jl4o2qx2OjmweQD98OY9Ob9VhxCf6J7XNoMVQ09GRN6bZ2ADmqjfyuT0ZltqYAMaNpCSwjev7ResmExf58CmYQrq1cwy36SobRHK7Jd3wolUB5E9bXw729PoZqzV+UNlBzYN2wBXBsouarsWrZ+VBwc20gN8gOzzYdrZHu0rswhbA5eXeCxFtE0zK1mnBTYPAd9DXeudOC9vfbSoYFHHPw8FKv0zvpQd2ICSIbSTra7/liWwaXgv+sEs6jxPY9U5Pd0Q2DSshdaHuIfyv8Pz0CT7ZvMLyjQe3fQW+UDiCTQhu90hslUFNqBr7cFobmDR7eNKYN+c6+/AZmVroQn/RT7gmAF8knIeXLyL+FDhvNpmu0PpzKxiVQY2C9Dkxe+h3pAqh5plNRWt2ZHXsK170YTLwXqnqghsQJMtLyF7lraBWyuBDSgl8xHE01CnbotRULpnk/K6KbDpbxc03KfI3oulaH7Wh+jMoRvjUaCX11DHZegm6HDyu7GrMrBp6EEZ9/5AvsOA5qCsi0UFGA5sBrcWSl7xYKAuWbYlaHL/e2kvZXorelDylwtQtrKOaJud+PTVbKj7MLBFwWU8iy5EC9GT0xmoZ+bpgsstwwSUlWpflJVpw8S/W4RSaV+OMjk1nkYNZhjhrGd/QTdZRdkK+Ff0JGsL0obaLATuAK5CN2XT2qzDa9DQojeSLavNDJTB7aK+bV7gvXsQzhDYWD+mzrZAn+M+KEPQBrT227wUBePXozZ8BRr+UgevAQ4E9kKTgldP/LvZqD1fhdrSYznX6ySaf7fuB/4n5/JiJqFr216od3PDDH87F13TpqHr083oAUlR9kXz5Jo5HfWslem7NO/Fux3N3yhLD8oMuT/6PHckfXHpR1AGyiuAi4Eni6hgRhNZuW1mmdM2F/32Xot+m26hjbbpwMbMut0ElLZ5HfS0bDi6cXoB9RjMQk/OH6CeN8nj0Y3hWujHpdHD9BIKGh5HP4QPUtyNzDD0Q/bKvm1N9NS88RRvPrrpvA/9iFlzo4EtUcCzHprEPRYFjuNYMYTrafRk81H0+d6NPvO6G4Fu2LdA6bPHo2N/CfUoP4uCivsIB8VDQePatnHfv49GKdCXolTBC9D37hHyD/osX6PQ57glK67lY9ADt2fR977R7hdUVMcsmrXNJax4oDoLPehKWSLAzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzLrd/wEiF4TGho1ZoQAAAABJRU5ErkJggg== mediatype: image/png install: spec: deployments: null - strategy: "" + strategy: deployment installModes: - supported: false type: OwnNamespace @@ -126,21 +126,21 @@ spec: - supported: true type: AllNamespaces keywords: - - odh + - Operator + - OpenShift + - Open Data Hub + - opendatahub + - Red Hat OpenShift AI - notebooks - serving - training - - pipelines - - modelmesh - - workbenches - - dashboard - kserve - distributed-workloads + - trustyai links: - - name: Red Hat OpenShift Data Science - url: https://www.redhat.com/en/technologies/cloud-computing/openshift/openshift-data-science - maturity: alpha + - name: Red Hat OpenShift AI + url: https://www.redhat.com/en/technologies/cloud-computing/openshift/openshift-ai minKubeVersion: 1.22.0 provider: name: Red Hat - version: 2.4.0 + version: 2.6.0 diff --git a/config/manifests/description-patch.yml b/config/manifests/description-patch.yml index 382b1505f04..6246bdc2a19 100644 --- a/config/manifests/description-patch.yml +++ b/config/manifests/description-patch.yml @@ -4,22 +4,24 @@ metadata: name: replace-description-patch spec: description: |- - Red Hat OpenShift Data Science (RHODS) is a complete platform for the entire lifecycle of your AI/ML projects. It is the flagship product of OpenShift AI. - - When using RHODS, your users will find all the tools they would expect from a modern AI/ML platform in an interface that is intuitive, requires no local install, and is backed by the power of your OpenShift cluster. - + Red Hat OpenShift AI is a complete platform for the entire lifecycle of your AI/ML projects. + + When using Red Hat OpenShift AI, your users will find all the tools they would expect from a modern AI/ML platform in an interface that is intuitive, requires no local install, and is backed by the power of your OpenShift cluster. + Your Data Scientists will feel right at home with quick and simple access to the Notebook interface they are used to. They can leverage the default Notebook Images (Including PyTorch, tensorflow, and CUDA), or add custom ones. Your MLOps engineers will be able to leverage Data Science Pipelines to easily parallelize and/or schedule the required workloads. They can then quickly serve, monitor, and update the created AI/ML models. They can do that by either using the provided out-of-the-box OpenVino Server Model Runtime or by adding their own custom serving runtime instead. These activities are tied together with the concept of Data Science Projects, simplifying both organization and collaboration. - - But beyond the individual features, one of the key aspects of this platform is its flexibility. Not only can you augment it with your own Customer Workbench Image and Custom Model Serving Runtime Images, but you will also have a consistent experience across any infrastructure footprint. Be it in the public cloud, private cloud, on-premises, and even in disconnected clusters. RHODS can be installed on any supported OpenShift. It can scale out or in depending on the size of your team and its computing requirements. - + + But beyond the individual features, one of the key aspects of this platform is its flexibility. Not only can you augment it with your own Customer Workbench Image and Custom Model Serving Runtime Images, but you will also have a consistent experience across any infrastructure footprint. Be it in the public cloud, private cloud, on-premises, and even in disconnected clusters. Red Hat OpenShift AI can be installed on any supported OpenShift. It can scale out or in depending on the size of your team and its computing requirements. + Finally, thanks to the operator-driven deployment and updates, the administrative load of the platform is very light, leaving everyone more time to focus on the work that makes a difference. ### Components - * RHODS dashboard - * Curated Notebook Images (incl CUDA, PyTorch, Tensorflow) + * Dashboard + * Curated Workbench Images (incl CUDA, PyTorch, Tensorflow, VScode) * Ability to add Custom Images * Ability to leverage accelerators (such as NVIDIA GPU) * Data Science Pipelines. (including Elyra notebook interface, and based on standard OpenShift Pipelines) - * Model Serving using ModelMesh (and Kserve) with a provided OpenVino Model Serving Runtime + * Model Serving using ModelMesh and Kserve. * Ability to use other runtimes for serving * Model Monitoring + * Distributed workloads (KubeRay, CodeFlare) + * XAI explanations of predictive models (TrustyAI) diff --git a/config/monitoring/alertmanager/alertmanager-configs.yaml b/config/monitoring/alertmanager/alertmanager-configs.yaml index 545f2d51555..c800406071f 100644 --- a/config/monitoring/alertmanager/alertmanager-configs.yaml +++ b/config/monitoring/alertmanager/alertmanager-configs.yaml @@ -7,7 +7,7 @@ data: default.tmpl: | {{ define "email.rhods.subject" }} {{ if gt (len .Alerts.Firing) 1 }} - Red Hat OpenShift Data Science Notifications + Red Hat OpenShift AI Notifications {{ else }} {{ (index .Alerts.Firing 0).Annotations.summary }} {{ end }} @@ -550,7 +550,7 @@ data: - + diff --git a/config/monitoring/prometheus/apps/prometheus-configs.yaml b/config/monitoring/prometheus/apps/prometheus-configs.yaml index 0fa1b2d0292..2ab55c82ceb 100644 --- a/config/monitoring/prometheus/apps/prometheus-configs.yaml +++ b/config/monitoring/prometheus/apps/prometheus-configs.yaml @@ -306,7 +306,7 @@ data: target_label: __address__ replacement: ${1}:8080 - - job_name: 'RHODS Metrics' + - job_name: 'RHOAI Metrics' honor_labels: true scheme: http kubernetes_sd_configs: @@ -333,16 +333,16 @@ data: operator-recording.rules: | groups: - - name: SLOs - RHODS Operator v2 + - name: SLOs - RHOAI Operator v2 interval: 15m rules: - expr: | - rate(controller_runtime_reconcile_total{controller="dscinitialization-controller", job="RHODS Metrics", result!="success"}[15m]) + rate(controller_runtime_reconcile_total{controller="dscinitialization-controller", job="RHOAI Metrics", result!="success"}[15m]) labels: instance: dscinitialization-controller record: controller_runtime_reconcile_total:rate15m - expr: | - rate(controller_runtime_reconcile_total{controller="datasciencecluster-controller", job="RHODS Metrics", result!="success"}[15m]) + rate(controller_runtime_reconcile_total{controller="datasciencecluster-controller", job="RHOAI Metrics", result!="success"}[15m]) labels: instance: datasciencecluster-controller record: controller_runtime_reconcile_total:rate15m @@ -358,7 +358,7 @@ data: severity: critical namespace: redhat-ods-monitoring annotations: - description: This is a DeadManSnitch to ensure RHODS monitoring and alerting pipeline is online. + description: This is a DeadManSnitch to ensure RHOAI monitoring and alerting pipeline is online. summary: Alerting DeadManSnitch codeflare-recording.rules: | @@ -598,11 +598,11 @@ data: groups: - name: SLOs-haproxy_backend_http_responses_dashboard rules: - - alert: RHODS Dashboard Route Error Burn Rate + - alert: RHOAI Dashboard Route Error Burn Rate annotations: message: 'High error budget burn for {{ $labels.route }} (current value: {{ $value }}).' triage: 'https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/RHODS-Dashboard/rhods-error-burn-rate.md' - summary: RHODS Dashboard Route Error Burn Rate + summary: RHOAI Dashboard Route Error Burn Rate expr: | sum(haproxy_backend_http_responses_total:burnrate5m{route=~"rhods-dashboard"}) by (route) > (14.40 * (1-0.99950)) and @@ -611,11 +611,11 @@ data: labels: severity: critical namespace: redhat-ods-applications - - alert: RHODS Dashboard Route Error Burn Rate + - alert: RHOAI Dashboard Route Error Burn Rate annotations: message: 'High error budget burn for {{ $labels.route }} (current value: {{ $value }}).' triage: 'https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/RHODS-Dashboard/rhods-error-burn-rate.md' - summary: RHODS Dashboard Route Error Burn Rate + summary: RHOAI Dashboard Route Error Burn Rate expr: | sum(haproxy_backend_http_responses_total:burnrate30m{route=~"rhods-dashboard"}) by (route) > (6.00 * (1-0.99950)) and @@ -624,11 +624,11 @@ data: labels: severity: critical namespace: redhat-ods-applications - - alert: RHODS Dashboard Route Error Burn Rate + - alert: RHOAI Dashboard Route Error Burn Rate annotations: message: 'High error budget burn for {{ $labels.route }} (current value: {{ $value }}).' triage: 'https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/RHODS-Dashboard/rhods-error-burn-rate.md' - summary: RHODS Dashboard Route Error Burn Rate + summary: RHOAI Dashboard Route Error Burn Rate expr: | sum(haproxy_backend_http_responses_total:burnrate2h{route=~"rhods-dashboard"}) by (route) > (3.00 * (1-0.99950)) and @@ -637,11 +637,11 @@ data: labels: severity: warning namespace: redhat-ods-applications - - alert: RHODS Dashboard Route Error Burn Rate + - alert: RHOAI Dashboard Route Error Burn Rate annotations: message: 'High error budget burn for {{ $labels.route }} (current value: {{ $value }}).' triage: 'https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/RHODS-Dashboard/rhods-error-burn-rate.md' - summary: RHODS Dashboard Route Error Burn Rate + summary: RHOAI Dashboard Route Error Burn Rate expr: | sum(haproxy_backend_http_responses_total:burnrate6h{route=~"rhods-dashboard"}) by (route) > (1.00 * (1-0.99950)) and @@ -652,11 +652,11 @@ data: namespace: redhat-ods-applications - name: SLOs-probe_success_dashboard rules: - - alert: RHODS Dashboard Probe Success Burn Rate + - alert: RHOAI Dashboard Probe Success Burn Rate annotations: message: 'High error budget burn for {{ $labels.instance }} (current value: {{ $value }}).' triage: "https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/RHODS-Dashboard/rhods-dashboard-probe-success-burn-rate.md" - summary: RHODS Dashboard Probe Success Burn Rate + summary: RHOAI Dashboard Probe Success Burn Rate expr: | sum(probe_success:burnrate5m{name=~"rhods-dashboard"}) by (name) > (14.40 * (1-0.99950)) and @@ -665,11 +665,11 @@ data: labels: severity: critical namespace: redhat-ods-applications - - alert: RHODS Dashboard Probe Success Burn Rate + - alert: RHOAI Dashboard Probe Success Burn Rate annotations: message: 'High error budget burn for {{ $labels.instance }} (current value: {{ $value }}).' triage: "https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/RHODS-Dashboard/rhods-dashboard-probe-success-burn-rate.md" - summary: RHODS Dashboard Probe Success Burn Rate + summary: RHOAI Dashboard Probe Success Burn Rate expr: | sum(probe_success:burnrate30m{name=~"rhods-dashboard"}) by (name) > (6.00 * (1-0.99950)) and @@ -678,11 +678,11 @@ data: labels: severity: critical namespace: redhat-ods-applications - - alert: RHODS Dashboard Probe Success Burn Rate + - alert: RHOAI Dashboard Probe Success Burn Rate annotations: message: 'High error budget burn for {{ $labels.instance }} (current value: {{ $value }}).' triage: "https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/RHODS-Dashboard/rhods-dashboard-probe-success-burn-rate.md" - summary: RHODS Dashboard Probe Success Burn Rate + summary: RHOAI Dashboard Probe Success Burn Rate expr: | sum(probe_success:burnrate2h{name=~"rhods-dashboard"}) by (name) > (3.00 * (1-0.99950)) and @@ -691,11 +691,11 @@ data: labels: severity: warning namespace: redhat-ods-applications - - alert: RHODS Dashboard Probe Success Burn Rate + - alert: RHOAI Dashboard Probe Success Burn Rate annotations: message: 'High error budget burn for {{ $labels.instance }} (current value: {{ $value }}).' triage: "https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/RHODS-Dashboard/rhods-dashboard-probe-success-burn-rate.md" - summary: RHODS Dashboard Probe Success Burn Rate + summary: RHOAI Dashboard Probe Success Burn Rate expr: | sum(probe_success:burnrate6h{name=~"rhods-dashboard"}) by (name) > (1.00 * (1-0.99950)) and @@ -894,7 +894,7 @@ data: labels: severity: warning namespace: redhat-ods-applications - - name: RHODS Data Science Pipelines + - name: RHOAI Data Science Pipelines rules: - alert: Data Science Pipeline Application Unavailable annotations: @@ -1295,7 +1295,7 @@ data: workbenches-alerting.rules: | groups: - - name: RHODS-PVC-Usage + - name: RHOAI-PVC-Usage rules: - alert: User notebook pvc usage above 90% annotations: @@ -1318,7 +1318,7 @@ data: severity: warning route: user-notifications - - name: RHODS Notebook controllers + - name: RHOAI Notebook controllers rules: - alert: Kubeflow notebook controller pod is not running annotations: @@ -1343,11 +1343,11 @@ data: - name: SLOs-probe_success_workbench rules: - - alert: RHODS Jupyter Probe Success Burn Rate + - alert: RHOAI Jupyter Probe Success Burn Rate annotations: message: 'High error budget burn for {{ $labels.instance }} (current value: {{ $value }}).' triage: "https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/Jupyter/rhods-jupyter-probe-success-burn-rate.md" - summary: RHODS Jupyter Probe Success Burn Rate + summary: RHOAI Jupyter Probe Success Burn Rate expr: | sum(probe_success:burnrate5m{instance=~"notebook-spawner"}) by (instance) > (14.40 * (1-0.98000)) and @@ -1356,11 +1356,11 @@ data: labels: severity: critical instance: notebook-spawner - - alert: RHODS Jupyter Probe Success Burn Rate + - alert: RHOAI Jupyter Probe Success Burn Rate annotations: message: 'High error budget burn for {{ $labels.instance }} (current value: {{ $value }}).' triage: "https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/Jupyter/rhods-jupyter-probe-success-burn-rate.md" - summary: RHODS Jupyter Probe Success Burn Rate + summary: RHOAI Jupyter Probe Success Burn Rate expr: | sum(probe_success:burnrate30m{instance=~"notebook-spawner"}) by (instance) > (6.00 * (1-0.98000)) and @@ -1369,11 +1369,11 @@ data: labels: severity: critical instance: notebook-spawner - - alert: RHODS Jupyter Probe Success Burn Rate + - alert: RHOAI Jupyter Probe Success Burn Rate annotations: message: 'High error budget burn for {{ $labels.instance }} (current value: {{ $value }}).' triage: "https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/Jupyter/rhods-jupyter-probe-success-burn-rate.md" - summary: RHODS Jupyter Probe Success Burn Rate + summary: RHOAI Jupyter Probe Success Burn Rate expr: | sum(probe_success:burnrate2h{instance=~"notebook-spawner"}) by (instance) > (3.00 * (1-0.98000)) and @@ -1382,11 +1382,11 @@ data: labels: severity: warning instance: notebook-spawner - - alert: RHODS Jupyter Probe Success Burn Rate + - alert: RHOAI Jupyter Probe Success Burn Rate annotations: message: 'High error budget burn for {{ $labels.instance }} (current value: {{ $value }}).' triage: "https://gitlab.cee.redhat.com/service/managed-tenants-sops/-/blob/main/RHODS/Jupyter/rhods-jupyter-probe-success-burn-rate.md" - summary: RHODS Jupyter Probe Success Burn Rate + summary: RHOAI Jupyter Probe Success Burn Rate expr: | sum(probe_success:burnrate6h{instance=~"notebook-spawner"}) by (instance) > (1.00 * (1-0.98000)) and diff --git a/controllers/datasciencecluster/kubebuilder_rbac.go b/controllers/datasciencecluster/kubebuilder_rbac.go index 6dbfaba89fe..61b8779dbdc 100644 --- a/controllers/datasciencecluster/kubebuilder_rbac.go +++ b/controllers/datasciencecluster/kubebuilder_rbac.go @@ -252,6 +252,6 @@ package datasciencecluster // +kubebuilder:rbac:groups="maistra.io",resources=servicemeshmembers,verbs=create;get;list;patch;update;use;watch // +kubebuilder:rbac:groups="maistra.io",resources=servicemeshmembers/finalizers,verbs=create;get;list;patch;update;use;watch -/* Only for RHODS */ +/* Only for RHOAI */ // +kubebuilder:rbac:groups="user.openshift.io",resources=groups,verbs=get;create;list;watch;patch;delete // +kubebuilder:rbac:groups="console.openshift.io",resources=consolelinks,verbs=create;get;patch;delete diff --git a/controllers/dscinitialization/dscinitialization_controller.go b/controllers/dscinitialization/dscinitialization_controller.go index 7000fe2656a..c67e74a1bf8 100644 --- a/controllers/dscinitialization/dscinitialization_controller.go +++ b/controllers/dscinitialization/dscinitialization_controller.go @@ -215,7 +215,7 @@ func (r *DSCInitializationReconciler) Reconcile(ctx context.Context, req ctrl.Re return reconcile.Result{}, err } if instance.Spec.Monitoring.ManagementState == operatorv1.Managed { - r.Log.Info("Monitoring enabled, won't apply changes", "cluster", "Self-Managed RHODS Mode") + r.Log.Info("Monitoring enabled, won't apply changes", "cluster", "Self-Managed RHOAI Mode") err = r.configureCommonMonitoring(instance) if err != nil { return reconcile.Result{}, err diff --git a/pkg/deploy/setup.go b/pkg/deploy/setup.go index 109f428e267..231bbf808ea 100644 --- a/pkg/deploy/setup.go +++ b/pkg/deploy/setup.go @@ -13,8 +13,8 @@ import ( const ( // ManagedRhods defines expected addon catalogsource. ManagedRhods Platform = "addon-managed-odh-catalog" - // SelfManagedRhods defines display name in csv. - SelfManagedRhods Platform = "Red Hat OpenShift Data Science" + // SelfManagedRhods defines display name in csv + SelfManagedRhods Platform = "Red Hat OpenShift AI" // OpenDataHub defines display name in csv. OpenDataHub Platform = "Open Data Hub Operator" // Unknown indicates that operator is not deployed using OLM @@ -46,8 +46,8 @@ func isSelfManaged(cli client.Client) (Platform, error) { return Unknown, nil } -// isManagedRHODS checks if CRD add-on exists and contains string ManagedRhods. -func isManagedRHODS(cli client.Client) (Platform, error) { +// isManagedRHOAI checks if CRD add-on exists and contains string ManagedRhods. +func isManagedRHOAI(cli client.Client) (Platform, error) { catalogSourceCRD := &apiextv1.CustomResourceDefinition{} err := cli.Get(context.TODO(), client.ObjectKey{Name: "catalogsources.operators.coreos.com"}, catalogSourceCRD) @@ -79,8 +79,8 @@ func isManagedRHODS(cli client.Client) (Platform, error) { func GetPlatform(cli client.Client) (Platform, error) { // First check if its addon installation to return 'ManagedRhods, nil' - if platform, err := isManagedRHODS(cli); err != nil { - return Unknown, err + if platform, err := isManagedRHOAI(cli); err != nil { + return "", err } else if platform == ManagedRhods { return ManagedRhods, nil }