@@ -142,12 +147,17 @@ export const OcdTabularRow = ({ocdDocument, ociResources, index, resource, resou
const isElementId = (name: string) => name ? name.endsWith('Id') : false
const isElementIdList = (name: string) => name ? name.endsWith('Ids') : false
console.debug('OcdTabularRow: Selected', selected)
+ const cellData = (element: string): string => {
+ if (isElementId(element)) return getReferenceDisplayName(resource[element])
+ else if (isElementIdList(element)) return getReferenceListDisplayNames(resource[element])
+ else return String(resource[element])
+ }
return (
{index + 1}
{resource.displayName}
{getReferenceDisplayName(resource.compartmentId)}
{/*
{ocdDocument.getResource(r.compartmentId) ? ocdDocument.getResource(r.compartmentId).displayName : ''}
*/}
- {resourceElements.map((element) => {return
{isElementId(element) ? getReferenceDisplayName(resource[element]) : isElementIdList(element) ? getReferenceListDisplayNames(resource[element]) : String(resource[element])}
})}
+ {resourceElements.map((element) => {return
{cellData(element)}
})}
)
diff --git a/ocd/packages/desktop/src/css/azure-theme.css b/ocd/packages/desktop/src/css/azure-theme.css
index 81406d8cf..2632846cd 100644
--- a/ocd/packages/desktop/src/css/azure-theme.css
+++ b/ocd/packages/desktop/src/css/azure-theme.css
@@ -67,15 +67,15 @@
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSIyLjU5IiB5MT0iMTAuMTYiIHgyPSIxNS40MSIgeTI9IjEwLjE2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMDA1YmExIi8+PHN0b3Agb2Zmc2V0PSIuMDciIHN0b3AtY29sb3I9IiMwMDYwYTkiLz48c3RvcCBvZmZzZXQ9Ii4zNiIgc3RvcC1jb2xvcj0iIzAwNzFjOCIvPjxzdG9wIG9mZnNldD0iLjUyIiBzdG9wLWNvbG9yPSIjMDA3OGQ0Ii8+PHN0b3Agb2Zmc2V0PSIuNjQiIHN0b3AtY29sb3I9IiMwMDc0Y2QiLz48c3RvcCBvZmZzZXQ9Ii44MiIgc3RvcC1jb2xvcj0iIzAwNmFiYiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwNWJhMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik05IDUuMTRjLTMuNTQgMC02LjQxLTEtNi40MS0yLjMydjEyLjM2YzAgMS4yNyAyLjgyIDIuMyA2LjMyIDIuMzJIOWMzLjU0IDAgNi40MS0xIDYuNDEtMi4zMlYyLjgyYzAgMS4yOS0yLjg3IDIuMzItNi40MSAyLjMyeiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIi8+PHBhdGggZD0iTTE1LjQxIDIuODJjMCAxLjI5LTIuODcgMi4zMi02LjQxIDIuMzJzLTYuNDEtMS02LjQxLTIuMzJTNS40Ni41IDkgLjVzNi40MSAxIDYuNDEgMi4zMiIgZmlsbD0iI2U4ZThlOCIvPjxwYXRoIGQ9Ik0xMy45MiAyLjYzYzAgLjgyLTIuMjEgMS40OC00LjkyIDEuNDhzLTQuOTItLjY2LTQuOTItMS40OFM2LjI5IDEuMTYgOSAxLjE2czQuOTIuNjYgNC45MiAxLjQ3IiBmaWxsPSIjNTBlNmZmIi8+PHBhdGggZD0iTTkgM2ExMS41NSAxMS41NSAwIDAwLTMuODkuNTdBMTEuNDIgMTEuNDIgMCAwMDkgNC4xMWExMS4xNSAxMS4xNSAwIDAwMy44OS0uNThBMTEuODQgMTEuODQgMCAwMDkgM3oiIGZpbGw9IiMxOThhYjMiLz48cGF0aCBkPSJNMTIuNjQgOXYxLjYzaC0xYS4zOS4zOSAwIDAxLS4yOS0uMTRWOUgxMHYxLjc4YS45Mi45MiAwIDAwMSAuODloMS40OWwuMjYtLjEzcy0uMTEuNDEtLjI2LjQzaC0yLjM4djFoMi42NkExLjIxIDEuMjEgMCAwMDE0IDExLjdWOXpNOS41MyA5di0uNDlhLjcuNyAwIDAwLS40OC0uNzcgMS43NCAxLjc0IDAgMDAtLjUtLjA4Ljk0Ljk0IDAgMDAtLjkxLjU4bC0uNzggMS45LTEtMS45QS45My45MyAwIDAwNSA3LjY2YTEuNDQgMS40NCAwIDAwLS41MS4wOWMtLjM1LjExLS40My4zNC0uNDMuNzN2My4zMWgxLjE3VjkuNTZsLjYzIDEuNTdhMS4wOCAxLjA4IDAgMDAxIC42NmMuNDQgMCAuNjItLjI2LjgtLjY2bC42Ny0xLjUxdjIuMTVoMS4xOFY5eiIgZmlsbD0iI2YyZjJmMiIvPjwvc3ZnPg==");
}
-.azure-oracle-autonomous-database, .azure-oracledatabase-autonomous-database-regular {
+.azure-oracle-autonomous-database {
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjEiIGhlaWdodD0iNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwLjUgMjUuNTQ3Yy45MjMgMCAyLjY5My4wNiAyLjY5My4wNnMtMS4xOC0xLjk0LTEuNTctMy45NzdsLTEuNzI2LTEuNzI3YTIuNzY4IDIuNzY4IDAgMDEwLTMuOTEzbC4wMi0uMDJhMi43NDUgMi43NDUgMCAwMTEuOTU2LS44MWMuMDU3IDAgLjExNy4wMDcuMTc0LjAxYTEyLjk3IDEyLjk3IDAgMDExLjI1LTIuNjc3IDguNDYyIDguNDYyIDAgMDAtMi4xMi0uNTY2Yy0uMjU0LTUuOS01LjIwNy0xMC41LTExLjExNC0xMC4zMTdBMTEuMDcgMTEuMDcgMCAwMDkuNDg3IDguODIzQzQuNDY3IDkuNDIzLjY1IDEzLjYwNy41IDE4LjY1N2MuMjIzIDUuNzA2IDUuMDIzIDEwLjE1NiAxMC43MzMgOS45NS4zMiAwIC42NDQtLjAxNC45NDQtLjA0aDMuNjAzYzEuMzM3LTEuODk3IDcuNDEtMy4wMiAxNC43MjMtMy4wMkgzMC41eiIgZmlsbD0idXJsKCNwcmVmaXhfX3BhaW50MF9saW5lYXJfOTg1OV83MjM3KSIvPjxwYXRoIGQ9Ik0zNi40MzMgMjIuMzQ3bDMuNTEtMy41MWExLjI2NyAxLjI2NyAwIDAwMC0xLjc5bC0uMDItLjAyYTEuMjY4IDEuMjY4IDAgMDAtMS43OSAwbC0xLjM2IDEuMzZjLjQ0Ny00LjcwNyA0LjQyNy04LjM4IDkuMjMtOC4zOCAzLjkyNCAwIDUuOTk3IDEuODUgNy4zNzQgMy42NDMuNDczLjYxNyAxLjM3LjcgMS45Mi4xNWwuMDEtLjAxYy40NDMtLjQ0My41MDYtMS4xNS4xMjYtMS42NDdhMTEuODczIDExLjg3MyAwIDAwLTkuNDMtNC42ODNjLTYuMjUtLjAyNy0xMS4zOSA0Ljg0My0xMS44MDYgMTAuOTk3bC0xLjQzLTEuNDNhMS4yNjggMS4yNjggMCAwMC0xLjc5IDBsLS4wMi4wMmExLjI2NyAxLjI2NyAwIDAwMCAxLjc5bDMuNTEgMy41MWExLjM5IDEuMzkgMCAwMDEuOTY2IDB6bTcuMDg3LTguMjQ0bC0zLjE4IDguNzM3YTEuMzY1IDEuMzY1IDAgMTAyLjU4My44NzdsLjU1LTEuNzM0aDQuMjk3bC41NTMgMS43MjdhMS4zOCAxLjM4IDAgMTAyLjYxNy0uODgzbC0zLjA5Ny04LjcxYTIuMjk2IDIuMjk2IDAgMDAtNC4zMi0uMDE3bC0uMDAzLjAwM3ptMy42MjMgNS43OTRoLTMuMDlsMS4zMTQtNC4wOTRjLjExMy0uMzQ2LjE4My0uNy4yMS0xLjA1M2guMDY2Yy4wNC40Mi4xMDcuNzgzLjIwNCAxLjA4N2wxLjI5NiA0LjA2ek02MC4xMyAxOS43bC0zLjUwMy0zLjUwM2ExLjM5IDEuMzkgMCAwMC0xLjk2NyAwbC0zLjUxIDMuNTFhMS4yNjggMS4yNjggMCAwMDAgMS43OWwuMDIuMDJhMS4yNjcgMS4yNjcgMCAwMDEuNzkgMGwxLjM2LTEuMzZjLS40NDcgNC43MDYtNC40MjcgOC4zOC05LjIzIDguMzhhOS4yOTkgOS4yOTkgMCAwMS03LjM3My0zLjY0NGMtLjQ3NC0uNjE2LTEuMzctLjctMS45Mi0uMTVsLS4wMS4wMWMtLjQ0NC40NDQtLjUwNyAxLjE1LS4xMjcgMS42NDdhMTEuODczIDExLjg3MyAwIDAwOS40MyA0LjY4M2M2LjI1IDAgMTEuMzktNC44NzMgMTEuODA3LTExLjAyNmwxLjQzNiAxLjQzNmMuNDk0LjQ5NCAxLjI5LjQ5NCAxLjc4NC4wMDdsLjAwNi0uMDA3Yy41LS40OTMuNTA0LTEuMjk2LjAwNy0xLjc5M3oiIGZpbGw9IiMwMDc4RDQiLz48cGF0aCBkPSJNMzAuNSA0MS4wOWMtOC4yOSAwLTE1LjAxLTEuNDU3LTE1LjAxLTMuMjUzdjcuOThjMCAxLjc5NiA2LjcyIDMuMjUzIDE1LjAxIDMuMjUzczE1LjAxLTEuNDU3IDE1LjAxLTMuMjUzdi03Ljk4YzAgMS43OTYtNi43MiAzLjI1My0xNS4wMSAzLjI1M3ptMTIuNjMgMS44MDdhMjMuODkzIDIzLjg5MyAwIDAxLTcuNzczIDEuMzA2LjYyNi42MjYgMCAxMTAtMS4yNTNjMS4zNTYgMCAyLjcyMy0uMTI3IDQuMDU2LS4zNyAxLjEyLS4yMDcgMi4yMy0uNDk3IDMuMzA3LS44N2EuNjI2LjYyNiAwIDAxLjQxIDEuMTgzdi4wMDR6TTMwLjUgNTAuODMzYy04LjI5IDAtMTUuMDEtMS40NTYtMTUuMDEtMy4yNTN2Ny41NzdjMCAxLjc5NiA2LjcyIDMuMjUzIDE1LjAxIDMuMjUzczE1LjAxLTEuNDU3IDE1LjAxLTMuMjUzVjQ3LjU4YzAgMS43OTctNi43MiAzLjI1My0xNS4wMSAzLjI1M3ptMTIuNjMgMS41NDRhMjMuNzggMjMuNzggMCAwMS03Ljc3MyAxLjMwNi42MjYuNjI2IDAgMTEwLTEuMjUzYzEuMzU2IDAgMi43MjMtLjEyNyA0LjA1Ni0uMzcgMS4xMi0uMjA3IDIuMjMtLjQ5NyAzLjMwNy0uODdhLjYyNi42MjYgMCAwMS40MSAxLjE4M3YuMDA0em0yLjM4LTE5LjUzNGMtLjc2NyAwLTEuNTAzLS4xMS0yLjIzMy0uMjI2LjEuMDczLjIuMTQ2LjI0My4yNzNhLjYyNi42MjYgMCAwMS0uMzg3Ljc5NyAyMy45NDMgMjMuOTQzIDAgMDEtNy43NzMgMS4zMDcuNjI1LjYyNSAwIDExMC0xLjI1YzEuMzU3IDAgMi43MjMtLjEyNyA0LjA1Ny0uMzdhMjIuNTUzIDIyLjU1MyAwIDAwMy4xOC0uODM3Yy0xLjQ2NC0uMzA3LTIuODEtLjg4NC00LjA3LTEuNi0yLjI1LjMxMy01LjAwNy41MzMtOC4wMjQuNTMzLTcuNDY2IDAtMTMuNTItMS4zNi0xMy41Mi0yLjE2NyAwLS45OSA2LjA1NC0yLjUxNiAxMy41Mi0yLjUxNiAxLjIyIDAgMi4zOC4wNTMgMy41MDQuMTMtLjMwNC0uNDE3LS41NTQtLjg2NC0uODEtMS4zMTQtLjg3Ny0uMDM2LTEuNzctLjA2LTIuNjk0LS4wNi04LjI5IDAtMTUuMDEgMS40NC0xNS4wMSAzLjgyNHY2LjcwM2MwIDEuNzk3IDYuNzIgMy4yNTMgMTUuMDEgMy4yNTNzMTUuMDEtMS40NTYgMTUuMDEtMy4yNTNsLS4wMDMtMy4yMjd6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQxX2xpbmVhcl85ODU5XzcyMzcpIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX3BhaW50MF9saW5lYXJfOTg1OV83MjM3IiB4MT0iMTYuODk3IiB5MT0iMjguNjEzIiB4Mj0iMTYuODk3IiB5Mj0iMS42IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzMyQkVERCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzUwRTZGRiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX3BhaW50MV9saW5lYXJfOTg1OV83MjM3IiB4MT0iMTUuNDkiIHkxPSI0MS45OCIgeDI9IjQ1LjUxIiB5Mj0iNDEuOTgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjQzc0NjM0Ii8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0RCODk3RCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0M3NDYzNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==");
}
-.azure-oracle-exadata-database, .azure-oracledatabase-exadata-infrastructure {
+.azure-oracle-exadata-infrastructure {
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIwLjU0NyAyNS41N2M1LjU2MyAwIDEwLjM2Ni42NjMgMTIuOTYzIDEuODgzIDIuNjczLTEuNCA0LjU0LTQuMTMgNC42NTctNy4zNDNhOC41NzIgOC41NzIgMCAwMC03LjQ0NC04LjI0Yy0uMjU2LTUuOTEtNS4yMTYtMTAuNTE3LTExLjEzLTEwLjMzN0ExMS4wODQgMTEuMDg0IDAgMDA5IDguNzU3Yy01LjAyNy42MS04Ljg1IDQuOC05IDkuODU2LjE2NyA0LjI1NyAyLjg4MyA3LjggNi42MTcgOS4yNTQgMi4yMTYtMS40NTQgNy42MDYtMi4yOTcgMTMuOTMtMi4yOTd6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQwX2xpbmVhcl85ODU5Xzc3MDUpIi8+PHBhdGggZD0iTTU4LjI3IDIuMzlIMzEuNzQzYTEuNjUzIDEuNjUzIDAgMDAtMS43MyAxLjU2N3YyMy43NTZjMi41MDcuNTE3IDQuMDY0IDEuMTU3IDQuMDY0IDEuNjI3IDAgLjA2MyAxLjQ5My4yMjMgMS40OTMuMjIzdjE5LjAxaDIyLjdBMS42NTMgMS42NTMgMCAwMDYwIDQ3LjAwN1YzLjk1N2ExLjY1MyAxLjY1MyAwIDAwLTEuNzMtMS41Njd6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQxX2xpbmVhcl85ODU5Xzc3MDUpIi8+PHBhdGggZD0iTTM0LjQyMyAyMi4xNDdhMy40MzggMy40MzggMCAwMTMuMjYtMy41OTRoMTQuOTI0YTMuNDQgMy40NCAwIDAxMy4yNiAzLjU5NCAzLjQ0IDMuNDQgMCAwMS0zLjI2IDMuNTkzSDM3LjY4M2EzLjQzOCAzLjQzOCAwIDAxLTMuMjYtMy41OTN6TTM0LjQyMyAxMS40NjdhMy40MzggMy40MzggMCAwMTMuMjYtMy41OTRoMTQuOTI0YTMuNDQgMy40NCAwIDAxMy4yNiAzLjU5NCAzLjQ0IDMuNDQgMCAwMS0zLjI2IDMuNTkzSDM3LjY4M2EzLjQzOCAzLjQzOCAwIDAxLTMuMjYtMy41OTN6IiBmaWxsPSIjMDAzMDY3Ii8+PHBhdGggZD0iTTM4LjYxNyAxMy44NzdhMi40MSAyLjQxIDAgMTAwLTQuODIgMi40MSAyLjQxIDAgMDAwIDQuODJ6TTM4LjYxNyAyNC41NDdhMi40MSAyLjQxIDAgMTAwLTQuODIgMi40MSAyLjQxIDAgMDAwIDQuODJ6IiBmaWxsPSIjNTBFNkZGIi8+PHBhdGggZD0iTTQ5Ljk2NyA0Mi42NzNMNDYuNjYgMzcuN2wzLjI4LTQuOTNhMS4zNjQgMS4zNjQgMCAwMC0yLjI3LTEuNTFsLTIuNjQzIDMuOTc3LTIuNjQ0LTMuOTc3YTEuMzY0IDEuMzY0IDAgMDAtMi4yNyAxLjUxbDMuMjggNC45My0zLjMwNiA0Ljk3M2ExLjM2NCAxLjM2NCAwIDEwMi4yNyAxLjUwN2wyLjY3My00LjAyIDIuNjczIDQuMDJhMS4zNjEgMS4zNjEgMCAxMDIuMjctMS41MDdoLS4wMDZ6IiBmaWxsPSIjMDAzMDY3Ii8+PHBhdGggZD0iTTIwLjU0NyA1MC44ODdjLTguMyAwLTE1LjAyNy0xLjQ1Ny0xNS4wMjctMy4yNTd2Ny41ODNjMCAxLjggNi43MjcgMy4yNTcgMTUuMDI3IDMuMjU3IDguMyAwIDE1LjAyNi0xLjQ1NyAxNS4wMjYtMy4yNTdWNDcuNjNjMCAxLjgtNi43MjYgMy4yNTctMTUuMDI2IDMuMjU3em0xMi42NDMgMS41NDZhMjMuODIyIDIzLjgyMiAwIDAxLTcuNzggMS4zMS42MjYuNjI2IDAgMTEwLTEuMjUzYzEuMzYgMCAyLjcyNy0uMTI3IDQuMDYtLjM3IDEuMTItLjIwNyAyLjIzMy0uNSAzLjMxLS44N2EuNjI2LjYyNiAwIDExLjQxMyAxLjE4M2gtLjAwM3ptLTEyLjY0My0xMS4zYy04LjMgMC0xNS4wMjctMS40NTYtMTUuMDI3LTMuMjU2djcuOTg2YzAgMS44IDYuNzI3IDMuMjU3IDE1LjAyNyAzLjI1NyA4LjMgMCAxNS4wMjYtMS40NTcgMTUuMDI2LTMuMjU3di03Ljk4NmMwIDEuOC02LjcyNiAzLjI1Ni0xNS4wMjYgMy4yNTZ6bTEyLjY0MyAxLjgxYTIzLjgyMiAyMy44MjIgMCAwMS03Ljc4IDEuMzEuNjI2LjYyNiAwIDExMC0xLjI1MyAyMi42ODUgMjIuNjg1IDAgMDA3LjM3LTEuMjQuNjI2LjYyNiAwIDExLjQxMyAxLjE4M2gtLjAwM3ptLTEyLjY0My0xNy4zN2MtOC4zIDAtMTUuMDI3IDEuNDQ0LTE1LjAyNyAzLjgyN3Y2LjcxYzAgMS44IDYuNzI3IDMuMjU3IDE1LjAyNyAzLjI1NyA4LjMgMCAxNS4wMjYtMS40NTcgMTUuMDI2LTMuMjU3di02LjQ2M2MwLTIuNjMtNi43MjYtNC4wNzQtMTUuMDI2LTQuMDc0em0xMi42NDMgOC4xNTRhMjMuNzA3IDIzLjcwNyAwIDAxLTcuNzggMS4zMS42MjYuNjI2IDAgMTEwLTEuMjU0IDIyLjY3NiAyMi42NzYgMCAwMDcuMzctMS4yNC42MjYuNjI2IDAgMTEuNDEzIDEuMTgzaC0uMDAzek0yMC41NDcgMzEuNTFjLTcuNDc0IDAtMTMuNTM0LTEuMzYzLTEzLjUzNC0yLjE2NyAwLS45OSA2LjA2LTIuNTIgMTMuNTM0LTIuNTIgNy40NzMgMCAxMy41MzMgMS41OSAxMy41MzMgMi41MiAwIC44NDQtNi4wNiAyLjE2Ny0xMy41MzMgMi4xNjd6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQyX2xpbmVhcl85ODU5Xzc3MDUpIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX3BhaW50MF9saW5lYXJfOTg1OV83NzA1IiB4MT0iMTkuMDgzIiB5MT0iMjcuODY3IiB4Mj0iMTkuMDgzIiB5Mj0iMS41MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMzMkJFREQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1MEU2RkYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icHJlZml4X19wYWludDFfbGluZWFyXzk4NTlfNzcwNSIgeDE9IjQ1LjAwNyIgeTE9IjQ4LjU3NyIgeDI9IjQ1LjAwNyIgeTI9IjIuMzkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjOTc5Nzk3Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQjNCMkIzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQyX2xpbmVhcl85ODU5Xzc3MDUiIHgxPSI1LjUyIiB5MT0iNDIuMDIiIHgyPSIzNS41NyIgeTI9IjQyLjAyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0M3NDYzNCIvPjxzdG9wIG9mZnNldD0iLjUiIHN0b3AtY29sb3I9IiNEQjg5N0QiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNDNzQ2MzQiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=");
}
-.azure-oracledatabase-cloud-vm-cluster {
+.azure-oracle-cloud-vm-cluster {
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM5LjM3IDQ5LjcyOGMtMTEuMjM4IDAtMjAuMzQ4LTEuOTc1LTIwLjM0OC00LjQxMnYxMC4yNzJjMCAyLjQzNyA5LjExIDQuNDEyIDIwLjM0OCA0LjQxMnMyMC4zNDctMS45NzUgMjAuMzQ3LTQuNDEyVjQ1LjMxNmMwIDIuNDM3LTkuMTEgNC40MTItMjAuMzQ3IDQuNDEyem0xNy4xMiAyLjA5MmMtMS41MzcuNTMtMy4xMy45NS00LjczIDEuMjQ1YTMyLjM5OCAzMi4zOTggMCAwMS01LjgwNy41MjguODQ3Ljg0NyAwIDExMC0xLjY5MyAzMC41NDcgMzAuNTQ3IDAgMDA5Ljk4My0xLjY4Ljg1Ljg1IDAgMDExLjA4Mi41MjQuODQ3Ljg0NyAwIDAxLS41MjQgMS4wNzlsLS4wMDQtLjAwM3pNMzkuMzcgMzYuNTE4Yy0xMS4yMzggMC0yMC4zNDgtMS45NzUtMjAuMzQ4LTQuNDEydjEwLjgxNmMwIDIuNDM3IDkuMTEgNC40MSAyMC4zNDggNC40MXMyMC4zNDctMS45NzYgMjAuMzQ3LTQuNDEzVjMyLjEwM2MwIDIuNDM3LTkuMTEgNC40MTItMjAuMzQ3IDQuNDEydi4wMDN6bTE3LjEyIDIuNDVjLTEuNTQuNTMyLTMuMTMuOTUtNC43MyAxLjI0NWEzMi40MjYgMzIuNDI2IDAgMDEtNS44MDcuNTI4Ljg0Ny44NDcgMCAxMTAtMS42OTMgMzAuNTQ3IDMwLjU0NyAwIDAwOS45ODMtMS42OC44NS44NSAwIDAxMS4wODIuNTI1Ljg0My44NDMgMCAwMS0uNTI0IDEuMDc5bC0uMDA0LS4wMDR6bS0xNy4xMi0yMy41MmMtMTEuMjM4IDAtMjAuMzQ4IDEuOTUxLTIwLjM0OCA1LjE4MXY5LjA4N2MwIDIuNDM3IDkuMTEgNC40MDkgMjAuMzQ4IDQuNDA5czIwLjM0Ny0xLjk3NiAyMC4zNDctNC40MTJ2LTguNzU1YzAtMy41NjItOS4xMS01LjUxLTIwLjM0Ny01LjUxem0xNy4xMiAxMS4wMzhjLTEuNTQuNTMtMy4xMy45NS00LjczIDEuMjQ1YTMyLjM5OCAzMi4zOTggMCAwMS01LjgwNy41MjcuODQ3Ljg0NyAwIDExMC0xLjY5MyAzMC41NDcgMzAuNTQ3IDAgMDA5Ljk4My0xLjY4Ljg1Ljg1IDAgMDExLjA4Mi41MjUuODQ3Ljg0NyAwIDAxLS41MjQgMS4wOGwtLjAwNC0uMDA0ek0zOS4zNyAyMy40OGMtMTAuMTIzIDAtMTguMzI2LTEuODQyLTE4LjMyNi0yLjkzNCAwLTEuMzQyIDguMjAzLTMuNDEzIDE4LjMyNi0zLjQxMyAxMC4xMjIgMCAxOC4zMjUgMi4xNTQgMTguMzI1IDMuNDEzIDAgMS4xNDItOC4yMDMgMi45MzQtMTguMzI1IDIuOTM0eiIgZmlsbD0idXJsKCNwcmVmaXhfX3BhaW50MF9saW5lYXJfOTg1OV84NTExKSIvPjxwYXRoIGQ9Ik0xOS4wMjIgMjAuNTQzdi0uMTU2YzAtMy4wMSA3LjkyOC00LjkxIDE4LjExNy01LjE1Mi0xLjE3Mi0yLjYzLTMuNjI1LTQuNTc4LTYuNjI3LTQuOTc3QzMwLjI1NyA0LjM5MiAyNS4zMzctLjE3NiAxOS40NzEuMDA3QTExLjAwMSAxMS4wMDEgMCAwMDguOTYzIDcuMTcgMTAuMTQzIDEwLjE0MyAwIDAwLjA0IDE2Ljk0NWMuMjIzIDUuNjcgNC45OSAxMC4wODkgMTAuNjYgOS44ODYuMzE2IDAgLjYzOC0uMDEzLjkzNy0uMDRoNy4zODNsLjAwMy02LjI0OHoiIGZpbGw9InVybCgjcHJlZml4X19wYWludDFfbGluZWFyXzk4NTlfODUxMSkiLz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQwX2xpbmVhcl85ODU5Xzg1MTEiIHgxPSIxOS4wMjIiIHkxPSIzNy43MjQiIHgyPSI1OS43MTciIHkyPSIzNy43MjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjQzc0NjM0Ii8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0RCODk3RCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0M3NDYzNCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX3BhaW50MV9saW5lYXJfOTg1OV84NTExIiB4MT0iMTguNTg3IiB5MT0iMjYuODM4IiB4Mj0iMTguNTg3IiB5Mj0iMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMzMkJFREQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1MEU2RkYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=");
}
diff --git a/ocd/packages/desktop/src/css/google-theme.css b/ocd/packages/desktop/src/css/google-theme.css
index 14eaaeb61..9700d35e0 100644
--- a/ocd/packages/desktop/src/css/google-theme.css
+++ b/ocd/packages/desktop/src/css/google-theme.css
@@ -47,14 +47,14 @@
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PGRlZnM+PHN0eWxlPi5wcmVmaXhfX2Nscy0xe2ZpbGw6I2FlY2JmYX0ucHJlZml4X19jbHMtMntmaWxsOiM2NjlkZjZ9LnByZWZpeF9fY2xzLTN7ZmlsbDojNDI4NWY0fTwvc3R5bGU+PC9kZWZzPjxnIGRhdGEtbmFtZT0iUHJvZHVjdCBJY29ucyI+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTEiIGQ9Ik0xNiAyaDZ2NmgtNnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMiIgZD0iTTE5IDJoM3Y2aC0zeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMTYgMTZoNnY2aC02eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0yIiBkPSJNMTkgMTZoM3Y2aC0zeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMiAyaDZ2NkgyeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0yIiBkPSJNNSAyaDN2Nkg1eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMiAxNmg2djZIMnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMiIgZD0iTTUgMTZoM3Y2SDV6TTggNGg4djJIOHpNOCAxOGg4djJIOHpNMTggOGgydjhoLTJ6TTQgOGgydjhINHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMyIgZD0iTTQgOGgydjJINHpNMTggOGgydjJoLTJ6TTggNGgydjJIOHpNOCAxOGgydjJIOHoiLz48L2c+PC9zdmc+");
}
-.google-oracle-autonomous-database, .google-oracledatabase-autonomous-database-regular {
+.google-oracle-database-autonomous-database {
background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLWljb24tbmFtZT0iZGF0YXNldHNJY29uIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMiAyaDE0djE0SDJWMnptMiAyaDEwdjEwSDRWNHptMiA2aDJ2Mkg2di0yem0wLTRoMnYySDZWNnptNCA0aDJ2MmgtMnYtMnptMC00aDJ2MmgtMlY2eiIvPjwvc3ZnPg==");
}
-.google-oracle-exadata-database, .google-oracledatabase-exadata-infrastructure {
+.google-oracle-database-cloud-exadata-infrastructure {
background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLWljb24tbmFtZT0iaW5zdGFuY2VUZW1wbGF0ZUljb24iIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy45OTggMTZBMS4wMSAxLjAxIDAgMDAxNSAxNC45OTNWNC4wMDdDMTUgMyAxMy45OTggMiAxMi45OTggMkg1LjAwMkM0LjAwMiAyIDMgMyAzIDQuMDA3djEwLjk4NkMzIDE1LjU1IDMuNDUgMTYgNC4wMDIgMTZINS41bC41LTFoNmwuNSAxaDEuNDk4ek01IDRoOHY5SDVWNHptMSA1LjVhLjUuNSAwIDAxLjQ5LS41aDUuMDJhLjUuNSAwIDAxMCAxSDYuNDlBLjUuNSAwIDAxNiA5LjV6TTggNWgydjJIOFY1em0tMiA2LjVhLjUuNSAwIDAxLjQ5LS41aDUuMDJhLjUuNSAwIDAxMCAxSDYuNDlhLjUuNSAwIDAxLS40OS0uNXoiLz48L3N2Zz4=");
}
-.google-oracledatabase-cloud-vm-cluster {
+.google-oracle-database-cloud-vm-cluster {
background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjYxIDI5Yy02LjE3IDAtMTEtMi44Ni0xMS02LjVWMTZoMnY2LjVjMCAyLjE3IDMuNjIgNC41IDkgNC41djJ6bTAgMHYtMmM1LjM4IDAgOS0yLjMzIDktNC41VjE2aDJ2Ni41YzAgMy42NC00LjgzIDYuNS0xMSA2LjV6IiBmaWxsPSIjNWY2MzY4Ii8+PHBhdGggZD0iTTE1LjYxIDIyLjVjLTYuMTcgMC0xMS0yLjg2LTExLTYuNVY5LjVoMlYxNmMwIDIuMTcgMy42MiA0LjUgOSA0LjV2MnptMCAwdi0yYzUuMzggMCA5LTIuMzMgOS00LjVWOS41aDJWMTZjMCAzLjY0LTQuODMgNi41LTExIDYuNXoiIGZpbGw9IiM4MDg2OGIiLz48cGF0aCBkPSJNMTUuNjEgMTZjLTYuMTcgMC0xMS0yLjg2LTExLTYuNVM5LjQ0IDMgMTUuNjEgM3YyYy01LjM4IDAtOSAyLjMzLTkgNC41czMuNjIgNC41IDkgNC41djJ6bTAgMHYtMmM1LjM4IDAgOS0yLjMzIDktNC41cy0zLjYyLTQuNS05LTQuNVYzYzYuMTcgMCAxMSAyLjg2IDExIDYuNXMtNC44MyA2LjUtMTEgNi41eiIgZmlsbD0iIzlhYTBhNiIvPjwvc3ZnPg==");
}
diff --git a/ocd/packages/desktop/src/css/ocd-svg.css b/ocd/packages/desktop/src/css/ocd-svg.css
index e663c4788..b5116a7b8 100644
--- a/ocd/packages/desktop/src/css/ocd-svg.css
+++ b/ocd/packages/desktop/src/css/ocd-svg.css
@@ -85,8 +85,6 @@ svg {
}
.ocd-svg-simple {
- width: var(--svg-icon-width);
- height: var(--svg-icon-height);
stroke: var(--svg-simple-resource-stroke);
stroke-width: var(--svg-simple-resource-stroke-width);
stroke-dasharray: var(--svg-simple-resource-stroke-dasharray);
@@ -102,10 +100,12 @@ svg {
.ocd-svg-resource-simple {
width: var(--svg-resource-simple-width);
+ height: var(--svg-icon-height);
}
.ocd-svg-resource-detailed {
width: var(--svg-resource-detailed-width);
+ height: var(--svg-icon-height);
}
.ocd-svg-resource-container {
diff --git a/ocd/packages/desktop/src/css/ocd.css b/ocd/packages/desktop/src/css/ocd.css
index d3dc7af1e..cf796ed5d 100644
--- a/ocd/packages/desktop/src/css/ocd.css
+++ b/ocd/packages/desktop/src/css/ocd.css
@@ -106,7 +106,7 @@ summary {
/*
** Style Tables
- */
+*/
/* Classes for formatting divs as tables */
.table {display: table; margin: 0 auto;}
@@ -208,8 +208,6 @@ summary {
.ocd-console {
display: grid;
grid-template-rows: [console-header] var(--console-header-height) [console-toolbar] var(--console-toolbar-height) [console-body] auto [console-footer] var(--console-footer-height);
- /* display: flex;
- flex-direction: column; */
box-sizing: border-box;
margin: 0;
padding: 0;
@@ -553,7 +551,10 @@ summary {
text-align: left;
}
-.ocd-menu-item>a:hover {}
+.ocd-menu-item>a:hover {
+ background-color: #f2f7f7;
+ border-radius: 0.5rem;
+}
.ocd-submenu-item {
position: relative;
@@ -779,7 +780,6 @@ summary {
.ocd-designer {
display: grid;
grid-template-columns: var(--console-palette-width) calc(100% - var(--console-palette-width) - var(--console-properties-width)) var(--console-properties-width);
- /* flex-direction: row; */
box-sizing: border-box;
width: 100%;
height: 100%;
@@ -819,10 +819,8 @@ summary {
overflow-x: hidden;
overflow-y: scroll;
box-sizing: border-box;
- /* width: var(--console-palette-width); */
width: 100%;
min-height: 100%;
- /* border-right: #555555 1px solid; */
padding-bottom: 30px;
}
@@ -888,9 +886,7 @@ summary {
.simple-list-element > div > label,
.simple-list-element > div > span {
clear: both;
- /* margin-left: 2.5em; */
margin-left: 5px;
- /* margin: auto; */
text-wrap: none;
white-space: nowrap;
padding-right: 1em;
@@ -959,7 +955,6 @@ summary {
background-position-y: center;
height: 100%;
width: fit-content;
- /* padding-left: 24px; */
text-overflow: ellipsis;
}
@@ -1063,7 +1058,6 @@ summary {
font-size: small;
margin: 5px;
padding-top: 30px;
- /* width: 80px; */
text-align: center;
border: 1px solid white;
justify-self: center;
@@ -1215,7 +1209,6 @@ summary {
max-height: var(--console-pages-bar-height);
width: 100%;
max-width: 100%;
- /* border-top: #312D2A solid 1px; */
border-left: #312D2A solid 1px;
border-right: #312D2A solid 1px;
overflow-x: auto;
@@ -1259,7 +1252,6 @@ summary {
.ocd-designer-canvas {
display: block;
box-sizing: border-box;
- /* min-height: 100%; */
flex-grow: 1;
position: relative;
overflow: auto;
@@ -1317,7 +1309,6 @@ summary {
}
.ocd-svg-context-menu > div {
- /* border: 1px solid black; */
border-radius: 5px;
padding: 0;
margin: 0;
@@ -1332,160 +1323,6 @@ summary {
-/* .ocd-svg-icon {
- width: var(--canvas-icon-width);
- height: var(--canvas-icon-height);
- background-repeat: no-repeat;
- background-position-x: center;
- background-position-y: center;
- background-size: 30px 30px;
-}
-
-.ocd-svg-parent-connector {
- stroke: var(--svg-resource-parent-connector-stroke);
- stroke-width: var(--svg-resource-parent-connector-stroke-width);
- stroke-dasharray: var(--svg-resource-parent-connector-stroke-dasharray);
- stroke-opacity: var(--svg-resource-parent-connector-stroke-opacitiy);
- fill-opacity: 0;
-}
-
-.ocd-svg-association-connector {
- stroke: var(--svg-resource-association-connector-stroke);
- stroke-width: var(--svg-resource-association-connector-stroke-width);
- stroke-dasharray: var(--svg-resource-association-connector-stroke-dasharray);
- stroke-opacity: var(--svg-resource-association-connector-stroke-opacitiy);
- fill-opacity: 0;
-}
-
-.ocd-svg-container {
- stroke: var(--svg-container-resource-stroke);
- stroke-width: var(--svg-container-resource-stroke-width);
- stroke-dasharray: var(--svg-container-resource-stroke-dasharray);
- stroke-opacity: var(--svg-container-resource-stroke-opacitiy);
- rx: var(--svg-container-resource-stroke-corner-rx);
-}
-
-.ocd-svg-simple {
- width: var(--canvas-icon-width);
- height: var(--canvas-icon-height);
- stroke: var(--svg-simple-resource-stroke);
- stroke-width: var(--svg-simple-resource-stroke-width);
- stroke-dasharray: var(--svg-simple-resource-stroke-dasharray);
- stroke-opacity: var(--svg-simple-resource-stroke-opacitiy);
- rx: var(--svg-simple-resource-stroke-corner-rx);
-}
-
-.ocd-svg-resource-selected {
- stroke-width: var(--svg-selected-resource-stroke-width);
- stroke-dasharray: var(--svg-selected-resource-stroke-dasharray);
- stroke-opacity: var(--svg-selected-resource-stroke-opacitiy);
-}
-
-.ocd-svg-resource-simple {
- width: var(--canvas-resource-simple-width);
-}
-
-.ocd-svg-resource-detailed {
- width: var(--canvas-resource-detailed-width);
-}
-
-.ocd-svg-resource-container {
- width: var(--canvas-resource-container-width);
-}
-
-.ocd-svg-resize {
- opacity: 0.1;
-}
-
-.ocd-svg-resize-point {
- fill: purple;
-}
-
-.ocd-svg-container-ew-resize {
- stroke-width: 3px;
- stroke: red;
- stroke-opacity: 1;
- fill: none;
- pointer-events: all;
-}
-
-.ocd-svg-container-ew-resize:hover {
- cursor: ew-resize;
-}
-
-.ocd-svg-container-ns-resize {
- stroke-width: 3px;
- stroke: black;
- stroke-opacity: 0.01;
- fill: none;
- pointer-events: all;
-}
-
-.ocd-svg-container-ns-resize:hover {
- cursor: ns-resize;
-}
-
-.ocd-svg-foreign-object {
- height: var(--canvas-icon-height);
-}
-
-.ocd-svg-foreign-object > div {
- display: grid;
- grid-template-columns: var(--canvas-icon-width) auto;
- width: 100%;
-}
-
-.ocd-svg-foreign-object-display-name {
- display: block;
- padding: 0 0 0 5px;
- margin: auto;
-}
-
-.ocd-svg-foreign-object-display-name > span {
- display: block;
- width: 100%;
- opacity: 0.8;
- margin: 0;
- padding: 0;
- border: none;
- box-sizing: border-box;
- font-size: smaller;
- overflow-x: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- user-select: none;
-}
-
-.ocd-svg-foreign-object-display-name > input {
- display: block;
- width: 100%;
- text-overflow: ellipsis;
- margin: 0;
- padding: 0;
- border: none;
- box-sizing: border-box;
- font-weight: bolder;
- background: transparent;
-}
-
-.ocd-svg-drag-ghost {
- opacity: 0.4;
- pointer-events: none;
-}
-
-.ocd-svg-context-menu {
- height: 18em;
- width: 12em;
-}
-
-.ocd-svg-context-menu > div {
- border-radius: 5px;
- padding: 0;
- margin: 0;
- box-sizing: border-box;
- vertical-align: top;
-} */
-
.ocd-context-menu-div {
position: relative;
}
@@ -1632,7 +1469,6 @@ table {
.ocd-terraform-view {
display: flex;
flex-direction: column;
- /* grid-template-rows: var(--console-layers-bar-height), calc(100% - var(--console-layers-bar-height)); */
max-height: 100%;
}
@@ -1640,8 +1476,6 @@ table {
display: block;
overflow: auto;
width: 100%;
- /* height: 100%;
- max-height: 100%; */
flex-grow: 1;
}
@@ -1663,7 +1497,6 @@ table {
.ocd-tabular-view {
display: flex;
flex-direction: column;
- /* grid-template-rows: var(--console-layers-bar-height), calc(100% - var(--console-layers-bar-height)); */
height: 100%;
max-height: 100%;
}
@@ -1672,8 +1505,6 @@ table {
display: block;
overflow: auto;
width: 100%;
- /* height: 100%;
- max-height: 100%; */
flex-grow: 1;
}
@@ -1766,7 +1597,6 @@ table {
border: 1px solid black;
border-radius: 5px;
margin: 15px;
- /* padding-left: var(--library-design-background-size); */
height: var(--library-design-height);
width: var(--library-design-width);
max-height: var(--library-design-height);
@@ -1800,7 +1630,6 @@ table {
.ocd-variables-view {
display: flex;
flex-direction: column;
- /* grid-template-rows: var(--console-layers-bar-height), calc(100% - var(--console-layers-bar-height)); */
height: 100%;
max-height: 100%;
}
@@ -1808,8 +1637,6 @@ table {
.ocd-variables-table {
overflow: auto;
width: 100%;
- /* height: 100%;
- max-height: 100%; */
flex-grow: 1;
}
@@ -1875,7 +1702,6 @@ table {
.ocd-common-tags-view {
display: flex;
flex-direction: column;
- /* grid-template-rows: var(--console-layers-bar-height), calc(100% - var(--console-layers-bar-height)); */
height: 100%;
max-height: 100%;
}
@@ -1883,8 +1709,6 @@ table {
.ocd-tags-table {
overflow: auto;
width: 100%;
- /* height: 100%;
- max-height: 100%; */
flex-grow: 1;
}
@@ -2188,7 +2012,6 @@ table {
.ocd-style-stroke-dasharray-1-1 {
background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAwaDM1IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS1kYXNoYXJyYXk9IjEgMSIvPjwvc3ZnPg==");
- /* content: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAwaDM1IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS1kYXNoYXJyYXk9IjEgMSIvPjwvc3ZnPg=="); */
}
.ocd-style-stroke-dasharray-2-2 {
@@ -2315,7 +2138,6 @@ table {
border-radius: 5px;
border: grey 1px solid;
width: 100%;
- /* margin: 5px; */
margin: 5px 25px 5px 5px;
box-sizing: border-box;
}
@@ -2388,8 +2210,6 @@ table {
width: 100%;
height: 100%;
overflow: hidden;
- /* opacity: 0.6;
- background-color: white; */
background: rgba(0, 0, 0, 0.05);
}
@@ -2419,8 +2239,6 @@ table {
width: 100%;
height: 100%;
overflow: hidden;
- /* opacity: 0.6;
- background-color: white; */
background: rgba(0, 0, 0, 0.05);
}
@@ -2509,7 +2327,6 @@ table {
.ocd-compartment-picker li > label:hover,
.ocd-compartment-picker li > span:hover {
- /* background-color: var(--dialog-highlight-colour); */
font-weight: bolder;
}
@@ -2523,9 +2340,6 @@ table {
.ocd-compartment-hierarchy {
display: inline-block;
- /* border: 1px solid var(--dialog-input-border-colour);
- padding: 2px;
- box-sizing: border-box; */
font-family: var(--dialog-input-font-family);
font-size: var(--dialog-input-font-size);
}
@@ -2534,83 +2348,13 @@ table {
-/*
-** Properties
-*/
-
-/*
-.ocd-empty-relative {
- position: relative;
- z-index: 100;
-}
-
-.ocd-properties-panel-old {
- display: block;
- position: absolute;
- top: 0px;
- right: 0px;
- z-index: 100;
- height: calc(100vh - var(--console-header-height) - var(--console-toolbar-height) - var(--console-footer-height));
- width: 300px;
- border-left: #555555 1px solid;
- background-color: #fff;
- transition: all 0.25s;
-}
-
-.ocd-properties-panel-button-bar {
- display: inline-block;
- margin: 1px 2px 0 2px;
- min-width: 100%;
- border-bottom: #555555 1px solid;
-}
-
-.ocd-properties-panel-button-bar>button {
- border-width: 1px 1px 0 0;
- border-color: #555555;
- border-style: solid;
- background-color: #fff;
-}
-
-.ocd-properties-panel-button-bar>button:hover {
- background-color: #d1d1d4;
-}
-
-.ocd-properties-panel-button-bar>button:first-child {
- border-width: 1px 1px 0 1px;
-}
-
-.ocd-properties-sheet {
- padding: 2px;
-}
-
-.ocd-property {
- margin-top: 5px;
- display: grid;
- font-family: Arial, Helvetica, sans-serif;
- color: #000;
-}
-
-.ocd-property>label {
- font-size: smaller;
- font-weight: bolder;
-}
-
-.ocd-property>input {
- margin: 2px;
-}
-*/
-
-
-
-
-
/*
** Slide Positioning
*/
.ocd-slide-left {
transform: translateX(-100%);
- /* transition: all 0.25s; */
+ transition: all 0.25s;
}
.ocd-slide-right {
diff --git a/ocd/packages/desktop/src/data/OcdPalette.ts b/ocd/packages/desktop/src/data/OcdPalette.ts
index cddfff24f..3a71d1661 100644
--- a/ocd/packages/desktop/src/data/OcdPalette.ts
+++ b/ocd/packages/desktop/src/data/OcdPalette.ts
@@ -680,17 +680,17 @@ export const palette = {
{
"container": false,
"title": "Oracle Exadata Database@Azure",
- "class": "azure-oracledatabase-exadata-infrastructure"
+ "class": "azure-oracle-exadata-infrastructure"
},
{
"container": false,
"title": "Oracle Autonomous Database@Azure",
- "class": "azure-oracledatabase-autonomous-database-regular"
+ "class": "azure-oracle-autonomous-database"
},
{
"container": false,
"title": "Oracle VM Cluster Database@Azure",
- "class": "azure-oracledatabase-cloud-vm-cluster"
+ "class": "azure-oracle-cloud-vm-cluster"
},
]
},
@@ -750,17 +750,17 @@ export const palette = {
{
"container": false,
"title": "Oracle Exadata Database@Google",
- "class": "google-oracledatabase-exadata-infrastructure"
+ "class": "google-oracle-database-cloud-exadata-infrastructure"
},
{
"container": false,
"title": "Oracle Autonomous Database@Google",
- "class": "google-oracledatabase-autonomous-database-regular"
+ "class": "google-oracle-database-autonomous-database"
},
{
"container": false,
"title": "Oracle VM Cluster Database@Google",
- "class": "google-oracledatabase-cloud-vm-cluster"
+ "class": "google-oracle-database-cloud-vm-cluster"
},
]
},
diff --git a/ocd/packages/desktop/src/data/OcdReleaseNotes.ts b/ocd/packages/desktop/src/data/OcdReleaseNotes.ts
index b8d6db8a1..cb38a0c45 100644
--- a/ocd/packages/desktop/src/data/OcdReleaseNotes.ts
+++ b/ocd/packages/desktop/src/data/OcdReleaseNotes.ts
@@ -4,9 +4,9 @@
*/
export const releaseNotes = `[![License: UPL](https://img.shields.io/badge/license-UPL-green)](https://img.shields.io/badge/license-UPL-green) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=oracle_oci-designer-toolkit&metric=alert_status)](https://sonarcloud.io/summary/new_code?id=oracle_oci-designer-toolkit)
-# September 2024 Release (Version 0.64.0)
+# September 2024 Release (Version 0.65.0)
____
-**Update 0.64.0**: This update addresses the following issues.
+**Update 0.65.0**: This update addresses the following issues.
1. OKIT-Web: Resolve issue where save dialog did not display existing content (#717)
2. OKIT-Web: Fix for underlying AuthLib api change.
____
diff --git a/ocd/packages/desktop/src/data/OcdSvgCssData.ts b/ocd/packages/desktop/src/data/OcdSvgCssData.ts
new file mode 100644
index 000000000..d28699016
--- /dev/null
+++ b/ocd/packages/desktop/src/data/OcdSvgCssData.ts
@@ -0,0 +1,3263 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+/*
+**
+** ======================================================================
+** === Auto Generated Code All Edits Will Be Lost During Regeneration ===
+** ======================================================================
+**
+*/
+
+export const svgCssData: Record
= {
+ 'azure-theme.css': String.raw`/* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. */
+/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. */
+
+/*
+** Groups
+*/
+.azure-cloud {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCA3NCA1NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2MS4yOTUiIHkxPSIxMC45OTgiIHgyPSIuOTkzIiB5Mj0iNTMuNzY3Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM2ODk5ZDEiLz48c3RvcCBvZmZzZXQ9Ii43MjIiIHN0b3AtY29sb3I9IiNiN2Q1NTMiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icHJlZml4X19iIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjYyLjYyNiIgeTE9IjEyLjg3NSIgeDI9IjU5LjU2MiIgeTI9IjE1LjA0azure+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNjg5OWQxIi8+PHN0b3Agb2Zmc2V0PSIuNzIyIiBzdG9wLWNvbG9yPSIjYjdkNTUzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2Mi44OTgiIHkxPSIxMy4yNTgiIHgyPSIyLjU5NiIgeTI9IjU2LjAyNiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNjg5OWQxIi8+PHN0b3Agb2Zmc2V0PSIuNzIyIiBzdG9wLWNvbG9yPSIjYjdkNTUzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fZCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMC44MzIiIHkxPSIyMy40MjEiIHgyPSIxMC4yNTgiIHkyPSIyMy44MjgiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzY4OTlkMSIvPjxzdG9wIG9mZnNldD0iLjcyMiIgc3RvcC1jb2xvcj0iI2I3ZDU1MyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik00NC4zOCAyOC42NWwuMDQuMTJjLjAxLjAzLjAyLjA3LjA0LjExbC4xNy4zLS4xMy4yNi4xOS0uMTcuMjQuMTljLjA1LjAyLjA2LjAzLjA3LjAzbC4wNi4wMi40LjAzaC4xNmMuMDYgMCAuMTItLjAxLjE3LS4wMi4wNy0uMDEuMTMtLjAzLjE5LS4wNi4xMi0uMDUuMi0uMTIuMjgtLjIyTDYzLjEzIDcuNDFsLjQ3IDIuNDgtLjI0LjE0LjI1LS4wNSAyLjA0IDEzLjVjLjAyLjAzLjAzLjA1LjA1LjA3bC4wNi4wNi4wNi4wNi4xLjA0Yy4wMy4wMS4wNi4wMi4xLjAzLjA3LjAyLjEuMDMuMTIuMDNoLjRsLjEzLS4wNGMuMDgtLjAyLjE1LS4wMy4yMi0uMDYuMjgtLjExLjQ3LS4yOS41My0uNTIuMDItLjA2LjAzLS4xMS4wMy0uMTZsLjAyLS4wOS0uMDEtLjI3LS4wOC0xLjIuMjUtLjEtLjI2LjAzLTIuMTYtMTcuNTdjLS4wMi0uMDMtLjAzLS4wNS0uMDUtLjA3YS40MzUuNDM1IDAgMDEtLjA2LS4wN2wtLjEtLjFhLjU3Mi41NzIgMCAwMC0uMDgtLjA3bC4xMS0uMjUtLjE2LjItLjI0LS4xNmMtLjA0LS4wMi0uMDctLjA0LS4xMS0uMDUtLjA0LS4wMi0uMDctLjAzLS4xMS0uMDUtLjA0LS4wMS0uMDctLjAzLS4xLS4wM0w0OC40MyA1LjIxbC0uMS0uMjUuMDMuMjYtMy4xNy41OGMtLjI3LjA2LS4zOS4zMS0uNDQuNDYtLjAzLjA4LS4wNS4xNC0uMDYuMjF2LjE2YzAgLjA5LS4wMS4xMiAwIC4xNnYuMDdsLjAxLjA1Yy4wMS4wNy4wMi4xMi4wMy4xNi4wMS4wNC4wMi4wOC4wNC4xMi4wMS4wMy4wMi4wNy4wNC4xcy4wMy4wNy4wNS4xYy4wMi4wMy4wNC4wNS4wNi4wOC4wMi4wMy4wNC4wNS4wNi4wNy4wMi4wMi4wNS4wNC4wNy4wNS4wMy4wMi4wNi4wMy4wOS4wNC4wNC4wMi4wNy4wMy4xLjAzLjA0LjAxLjA4LjAxLjEzLjAxbC4wMi4yNi4wNS0uMjUgMS41My0uMDkuMDguMjUuMDEtLjI2IDcuNTktLjg5LjEzLjI1LS4wMy0uMjYgNi42NC0uNjUtMTYuNyAyMS41OWMtLjA4LjExLS4xNS4yMi0uMjEuMzQtLjA0LjA4LS4wNy4xNi0uMDguMjNhLjg4Ljg4IDAgMDAtLjAxLjMxYy0uMDIuMDctLjAxLjExLS4wMS4xNXoiIGZpbGw9InVybCgjcHJlZml4X19hKSIvPjxwYXRoIGQ9Ik03MS4xNCAzOC4xbC0uMDEtLjE3YzAtLjEzLS4wMS0uMjYtLjAxLS4zOXYtLjE3YzAtLjA3IDAtLjE0LS4wMS0uMjIgMC0uMDctLjAxLS4xNC0uMDItLjIxbC0uMDItLjE2LS4wMy0uMjktLjAyLS4yYy0uMDEtLjA4LS4wMS0uMTYtLjAyLS4yNGwtLjA1LS4zNWMtLjAxLS4xLS4wMy0uMTktLjA1LS4yOWwtLjAzLS4xOS0uMDMtLjJjLS4wMi0uMDctLjAzLS4xNC0uMDUtLjJsLS4wMy0uMTJjLS4wMy0uMS0uMDUtLjIxLS4wOC0uMzFsLS4wNC0uMTRjLS4wMS0uMDYtLjAzLS4xMi0uMDUtLjE4bC0uMDYtLjE1LS4wNS0uMTRjLS4wMy0uMS0uMDctLjE5LS4xLS4yOWwtLjA0LS4xMmEuODY1Ljg2NSAwIDAwLS4wNy0uMTdjLS4wMi0uMDUtLjA1LS4xMS0uMDgtLjE2bC0uMDUtLjFjLS4wNC0uMDktLjA4LS4xOC0uMTMtLjI3bC0uMDYtLjEyYy0uMDItLjA1LS4wNS0uMS0uMDctLjE1LS4wMy0uMDUtLjA1LS4xLS4wOC0uMTVsLS4wNi0uMTFjLS4wNS0uMDgtLjA5LS4xNy0uMTQtLjI1bC0uMDctLjEyYy0uMDMtLjA1LS4wNS0uMDktLjA4LS4xNGwtLjE2LS4yNGMtLjA1LS4wOC0uMS0uMTYtLjE2LS4yNGwtLjA3LS4xMWMtLjAzLS4wNC0uMDYtLjA5LS4wOS0uMTNsLS43LS44OWMtLjA1LS4wNi0uMS0uMTItLjE1LS4xN2wtLjM0LS4zOS4xMi0uMjUtLjE5LjE3Yy0uMDUtLjA2LS4xMS0uMTItLjE3LS4xN2wtLjQzLS40MmMtLjA0LS4wNC0uMDgtLjA3LS4xMi0uMTFsLS4wOS0uMDhjLS4wNy0uMDYtLjE0LS4xMy0uMjEtLjE5bC0uMDgtLjA3Yy0uMDQtLjA0LS4wOS0uMDgtLjEzLS4xMmwtLjExLS4xYy0uMDMtLjAzLS4wNy0uMDYtLjEtLjA5LS4wNC0uMDItLjEyLS4wNC0uMjEtLjA3LS4xLS4wMy0uMTktLjA2LS4yOS0uMDdsLS4wNy0uMDJjLS4wMi0uMDEtLjA0LS4wMS0uMDYtLjAxLS4wNi0uMDEtLjA5IDAtLjEzIDAtLjIyLjAxLS4zNi4wNC0uNDguMDlhLjg0OC44NDggMCAwMC0uNDcuNDdjLS4wNS4xMS0uMDcuMjQtLjA3LjQgMCAuMTEuMDEuMjEuMDQuMzEuMDIuMDkuMDUuMTcuMDkuMjYuMDMuMDguMDguMTYuMTIuMjQuMDQuMDcuMDkuMTQuMTUuMjFhMy4zMiAzLjMyIDAgMDAuMzYuMzdjLjA2LjA1LjEuMDkuMTMuMTNsLjU4LjU3Yy4wNS4wNC4wOS4wOS4xMy4xMy4wNC4wNC4wOC4wOS4xMi4xNGwuMDcuMDljLjA3LjA3LjEzLjE1LjE5LjIzbC4wNy4wOWMuMDQuMDUuMDguMDkuMTIuMTRsLjA0LjA1Yy4wNS4wNi4xLjEyLjE0LjE4LjA0LjA1LjA3LjEuMTEuMTVsLjA2LjA5Yy4wNi4wOC4xMi4xNi4xNy4yNWwuMDcuMWMuMDQuMDUuMDcuMS4xLjE1LjAzLjA2LjA3LjExLjEuMTdsLjA1LjA5Yy4wNC4wNy4wNy4xMy4xMS4ybC4wNy4xM2MuMDQuMDcuMDguMTQuMTEuMjFsLjA1LjA5Yy4wMy4wNi4wNy4xMy4wOS4xOS4wMy4wNi4wNS4xMi4wOC4xOGwuMDUuMTEuMTIuMy4wNS4xMWMuMDMuMDYuMDUuMTIuMDcuMThsLjA2LjIuMDQuMTNjLjAzLjA5LjA1LjE5LjA4LjI4bC4wNS4xNy4wNi4yYy4wMi4wNy4wMy4xNS4wNC4yMmwuMDIuMTNjLjAyLjA5LjAzLjE4LjA1LjI3bC4wNC4yMmMuMDEuMDcuMDMuMTUuMDMuMjMuMDEuMDkuMDIuMTkuMDIuMjlsLjAxLjFjLjAxLjEuMDEuMi4wMi4zMWwuMDEuMjNjLjAxLjA4LjAxLjE3LjAxLjI2di4wOGMwIC4wNyAwIC4xNC0uMDEuMjJsLS4wMS4xMmMtLjAxLjE4LS4wMS4zMS0uMDIuNDNsLS4wMy4zNi0uMDIuMTlhNS44NTIgNS44NTIgMCAwMS0uMTEuNzhsLS4wMi4wOWMtLjA0LjIxLS4wNi4zNi0uMS41Mi0uMDUuMTktLjEuMzktLjE2LjU4LS4wNy4yMi0uMTQuNDMtLjIyLjY0LS4xLjI2LS4yMS41MS0uMzQuNzYtLjIuMzktLjQuNzQtLjYzIDEuMDUtLjIyLjMxLS40NC41OC0uNjcuODItLjM1LjM4LS43Ni43NC0xLjI1IDEuMWExMC4xNCAxMC4xNCAwIDAxLTIuMDMgMS4yYy0uMjMuMTEtLjQ4LjIxLS43Mi4zLS4yNS4xLS40Ni4xOC0uNjcuMjVsLS4wOS4wM2MtLjA0LjAyLS4wOC4wMy0uMTIuMDUtLjA4LjAzLS4xNi4wNC0uMjMuMDYtLjA1LjAxLS4xLjAyLS4xNS4wNC0uMTkuMDUtLjM3LjEtLjU2LjE0LS4wNy4wMi0uMTQuMDMtLjIxLjA1YTMuNTg5IDMuNTg5IDAgMDEtLjY2LjEybC0uMTguMDJjLS4xNi4wMi0uMzIuMDUtLjQ4LjA3bC0uMTkuMDNjLS4xLjAxLS4xOS4wMy0uMjkuMDQtLjA5LjAxLS4xNy4wMS0uMjYuMDJsLS44LjA1Yy0uMDguMDEtLjE3LjAxLS4yNS4wMS0uMTQuMDEtLjI4LjAxLS40Mi4wMWwtMjAuNTMuMDF2LjEzbC0yMS4zMi0uMTRjLS4xMiAwLS4yMy0uMDEtLjM1LS4wMWwtLjE0LS4wMmMtLjA4IDAtLjE3IDAtLjI1LS4wMWwtLjIzLS4wMy0uMTQtLjAyYy0uMTMtLjAyLS4yNS0uMDMtLjM3LS4wNS0uMTItLjAyLS4yNC0uMDMtLjM2LS4wNi0uMDgtLjAyLS4xNy0uMDMtLjI1LS4wNWwtLjIyLS4wNWMtLjA3LS4wMS0uMTUtLjAzLS4yMi0uMDUtLjEtLjAzLS4yLS4wNi0uMy0uMDhsLS4zMy0uMS0uMTEtLjAzYy0uMDctLjAyLS4xNS0uMDQtLjIyLS4wNy0uMDYtLjAyLS4xMy0uMDUtLjE5LS4wN2wtLjExLS4wMy0uMy0uMTItLjEyLS4wNWMtLjA2LS4wMi0uMTItLjA0LS4xOC0uMDdzLS4xMS0uMDUtLjE3LS4wOGwtLjQ5LS4yNC0uMTgtLjA5Yy0uMDYtLjAzLS4xMS0uMDYtLjE3LS4wOWwtLjEtLjA2Yy0uMDktLjA1LS4xOC0uMS0uMjYtLjE1bC0uMDktLjA1Yy0uMDYtLjAzLS4xMi0uMDYtLjE3LS4xbC0uMjUtLjE2Yy0uMDgtLjA1LS4xNy0uMTEtLjI1LS4xNmwtLjA5LS4wNmMtLjA1LS4wMy0uMTEtLjA3LS4xNi0uMWwtLjA4LS4wNmMtLjAzLS4wMi0uMDYtLjA1LS4xLS4wOGwtLjA2LS4wNS0uMTUtLjEyLS4wOS0uMDdhMi44IDIuOCAwIDAxLS4yLS4xNmwtLjEyLS4xYy0uMDUtLjA0LS4xLS4wNy0uMTQtLjExbC0uMDgtLjA1Yy0uMDUtLjA0LS4xLS4wNy0uMTQtLjEyLS4wNC0uMDQtLjA4LS4wOC0uMTMtLjEybC0uMDgtLjA4Yy0uMDUtLjA0LS4wOS0uMDktLjEzLS4xM2wtLjA4LS4wOC0uMjEtLjIxLS4wOC0uMDhjLS4wNC0uMDQtLjA4LS4wOC0uMTItLjEzbC0uMDgtLjA4Yy0uMDQtLjA0LS4wOC0uMDktLjEyLS4xMy0uMDQtLjA1LS4wOC0uMDktLjExLS4xNGwtLjA3LS4wOWMtLjA1LS4wNi0uMDktLjExLS4xMy0uMTdsLS4zLS4zOS0uMTEtLjE0Yy0uMDQtLjA1LS4wNy0uMTEtLjEtLjE2bC0uMDYtLjA5Yy0uMDQtLjA1LS4wNy0uMTEtLjEtLjE2bC0uMDYtLjFjLS4wNS0uMDgtLjEtLjE3LS4xNi0uMjZsLS4wNi0uMWMtLjAzLS4wNS0uMDYtLjEtLjA5LS4xNmwtLjA0LS4wOGMtLjAzLS4wNi0uMDctLjEzLS4xLS4xOXMtLjA1LS4xMS0uMDgtLjE3bC0uMjMtLjUxYy0uMDMtLjA2LS4wNi0uMTItLjA4LS4xOGwtLjA1LS4xMmMtLjAzLS4wNi0uMDUtLjEyLS4wNy0uMTgtLjAyLS4wNi0uMDQtLjEzLS4wNi0uMTlMNCA0MC4xNmMtLjAzLS4wOC0uMDUtLjE2LS4wOC0uMjRsLS4wNi0uMTdjLS4wMi0uMDctLjA1LS4xNC0uMDctLjJsLS4wNC0uMTJjLS4wMi0uMDYtLjA0LS4xMy0uMDYtLjE5LS4wMi0uMDctLjAzLS4xNC0uMDUtLjIxbC0uMDMtLjEzYy0uMDItLjA5LS4wNC0uMTktLjA3LS4yOGwtLjA0LS4xN2MtLjAyLS4wNy0uMDMtLjE0LS4wNS0uMjJsLS4wMy0uMTNjLS4wMi0uMDctLjAzLS4xNC0uMDQtLjIybC0uMDMtLjIyLS4wMi0uMTVjLS4wMi0uMTItLjAzLS4yMy0uMDUtLjM1bC0uMDItLjE1LS4wMy0uMjMtLjAxLS4wOGMtLjAxLS4wNC0uMDEtLjA5LS4wMi0uMTMgMC0uMDMgMC0uMDctLjAxLS4xMS0uMDEtLjE0LS4wMS0uMjItLjAxLS4zTDMuMTcgMzZjLS4wMS0uMTMtLjAxLS4yNi0uMDItLjRsLS4wMS0uMTVjLS4wMS0uMDgtLjAxLS4xNi0uMDEtLjI0di0uNDFjMC0uMDkuMDEtLjE4LjAyLS4yN2wuMDEtLjE3LjAzLS40NC4wMS0uMTdjLjAxLS4wOS4wMS0uMTguMDItLjI3LjAxLS4xMS4wMy0uMjMuMDUtLjM0bC4wMy0uMTVjLjAyLS4xMy4wNS0uMjUuMDctLjM4bC4wNi0uMzJjLjAyLS4xMS4wNC0uMjIuMDctLjMzLjA0LS4xNy4wOS0uMzMuMTQtLjVsLjAyLS4wOGMuMDYtLjIuMTMtLjQuMi0uNjEuMDMtLjA5LjA1LS4xNi4wOC0uMjMuMDYtLjEyLjA5LS4yNC4xNC0uMzVsLjAzLS4wNmMuMTEtLjI3LjI0LS41Mi4zNi0uNzcuMTUtLjMuMzEtLjYuNS0uOTIuMy0uNS41OS0uOTIuODgtMS4yOS42LS43NiAxLjMyLTEuNDggMi4xNC0yLjE0LjUxLS40MS45OS0uNzYgMS40Ni0xLjA1LjMxLS4yLjY0LS4zOC45Ny0uNTZsLjA5LS4wNWMuMTUtLjA4LjMxLS4xNS40Ny0uMjJsLjQ0LS4yYy4xOC0uMDguMzUtLjE3LjUzLS4yNC4xNS0uMDYuMzEtLjEyLjQ2LS4xN2wuNDItLjE1Yy4xNC0uMDUuMjktLjExLjQzLS4xNmwuMTYuMjItLjA5LS4yNGMuNTYtLjIuODYtLjUxIDEuMDEtMS4wNWwuMDMtLjA5Yy4wMi0uMDYuMDQtLjEzLjA1LS4ybC4yOS0yLjA5LjA2LS4zMy4wNi0uMzNjLjAyLS4xMi4wNC0uMjMuMDYtLjM0LjAzLS4xMy4wNy0uMjcuMS0uNGwuMDgtLjMyYy4wMi0uMS4wNS0uMi4wOC0uMjlsLjAzLS4wOWMuMDctLjIuMTItLjMzLjE3LS40N2wuMTUtLjRjLjA2LS4xNy4xMi0uMzQuMTktLjUuMS0uMjUuMjEtLjUuMzMtLjc0LjEzLS4yOC4yNy0uNTYuNDItLjgzLjE3LS4zMi4zNi0uNjQuNjEtMS4wMi4zOS0uNjEuODQtMS4xOSAxLjMxLTEuNzMuMzEtLjM1LjY1LS42OSAxLTEgLjUxLS40NiAxLjA3LS44OCAxLjY3LTEuMjUuMzYtLjIyLjY2LS40MS45OS0uNTcuMjMtLjEyLjQ3LS4yMi43MS0uMzJsLjI3LS4xMmE0Ljk0IDQuOTQgMCAwMS44Ny0uMzJjLjA4LS4wMi4xNS0uMDQuMjMtLjA3LjE5LS4wNi4zOS0uMTIuNTktLjE4LjA4LS4wMi4xNS0uMDUuMjMtLjA3YTQuNTcgNC41NyAwIDAxLjcyLS4xN2wuMzEtLjA2Yy4xMi0uMDIuMjQtLjA1LjM2LS4wNy4xMS0uMDIuMjItLjAzLjMzLS4wNWwuMjktLjA0Yy4xMS0uMDIuMjMtLjAzLjM0LS4wNWwuMzEtLjAzLjI4LS4wMi4zMi0uMDNjLjExLS4wMS4yMS0uMDEuMzItLjAxaC4xMWMuMTgtLjAxLjM3LS4wMS41NS0uMDFoLjI4Yy4xMyAwIC4yNy4wMS40LjAybC4xNC4wMWMuMDggMCAuMTcuMDEuMjUuMDEuMDguMDEuMTYuMDIuMjQuMDJsLjIyLjAyLjI5LjAzYy4xMi4wMS4yNC4wMy4zNi4wNS4wOS4wMS4xOS4wMy4yOC4wNWwuMi4wM2MuMDcuMDEuMTUuMDIuMjIuMDQuMDcuMDEuMTQuMDMuMjEuMDVsLjEyLjAzYy4xMS4wMy4yMi4wNS4zMy4wOGwuMTEuMDMuMjIuMDYuMi4wNi4xMS4wNGMuMTQuMDQuMjMuMDcuMzEuMS4xMy4wNC4yMi4wNy4zMS4xMS4wNi4wMi4xMi4wNS4xOS4wN2wuMTguMDdjLjA3LjAzLjE1LjA2LjIyLjA5LjEzLjA1LjIxLjA5LjI5LjEzLjA2LjAzLjEzLjA2LjE5LjA5bC4wOS4wNGMuMTMuMDYuMi4xLjI4LjE0bC4yNy4xNGMuMDUuMDMuMTEuMDYuMTYuMDlsLjQ2LjI3Yy4wNS4wMy4xMS4wNi4xNi4xLjA1LjAzLjEuMDYuMTUuMWwuNDQuM2MuMDUuMDMuMS4wNy4xNS4xbC45My43MmMuMDUuMDQuMDkuMDguMTQuMTJsLjA4LjA3LjIyLjE5LjA4LjA3Yy4wNS4wNC4wOS4wOC4xNC4xMmwuMTIuMTIuNS41LjEzLS4xMi4xMS4zNGMuMDUuMDkuMS4xNS4xNS4yMmExLjI4OCAxLjI4OCAwIDAwLjM3LjI5Yy4wOS4wNC4xNi4wNy4yNC4wOS4xLjAyLjE4LjA0LjI3LjA0LjE4LS4wMS4zMi0uMDQuNDUtLjA5LjI5LS4xMi41My0uMzYuNjUtLjY1LjA1LS4xMy4wOC0uMjcuMDktLjQyIDAtLjExLS4wMS0uMi0uMDMtLjI5LS4wMi0uMDktLjA2LS4xNy0uMDktLjI1bC0uMDctLjEzYy0uMDItLjAyLS4wNS0uMDQtLjA2LS4wNy0uMDQtLjA2LS4xLS4xMS0uMTYtLjE3bC0uMDgtLjA4LS41NS0uNTMtLjUxLS40OWMtLjA0LS4wMy0uMDctLjA3LS4xMS0uMWwuMTEtLjI1LS4xNy4xOS0xLjk0LTEuNTMtLjEyLS4wOWMtLjA0LS4wMy0uMDgtLjA1LS4xMS0uMDgtLjA0LS4wMy0uMDgtLjA1LS4xMy0uMDhsLS43NS0uNDRjLS4wNC0uMDMtLjA5LS4wNS0uMTMtLjA4bC0uMjYtLjE0Yy0uMDUtLjAyLS4wOS0uMDUtLjE0LS4wN2wtLjgtLjM5Yy0uMDQtLjAyLS4wOS0uMDUtLjE0LS4wN2wtLjE1LS4wNi0uMTQtLjA1YTEuMjIgMS4yMiAwIDAxLS4xNy0uMDdsLS41My0uMTljLS4wNS0uMDItLjEtLjA0LS4xNi0uMDZsLS4yNS0uMDhjLS4xLS4wMy0uMTYtLjA1LS4yMi0uMDZsLS4xNC0uMDQtLjMxLS4wOS0uMTQtLjA0Yy0uMDYtLjAyLS4xMS0uMDMtLjE3LS4wNWwtLjA3LS4wMmMtLjA5LS4wMi0uMTctLjA1LS4yNS0uMDYtLjA2LS4wMS0uMTItLjAyLS4xOS0uMDRsLS4xNS0uMDNjLS4xMS0uMDItLjIyLS4wNC0uMzQtLjA2bC0uMTQtLjAzYy0uMDYtLjAxLS4xMy0uMDMtLjE5LS4wNGwtLjEtLjAyYy0uMDgtLjAxLS4xNy0uMDMtLjI1LS4wNC0uMDctLjAxLS4xMy0uMDEtLjItLjAybC0uMTYtLjAxYy0uMTItLjAxLS4yNC0uMDMtLjM2LS4wNGwtLjE2LS4wMmMtLjA3LS4wMS0uMTMtLjAyLS4yLS4wMmwtMS44OC0uMTVoLS43NGwtMS40Ni4yMy0uMzMuMDYtLjMyLjA2LS4zMi4wNi0uMTMtLjI0LjA2LjI1Yy0uMS4wMi0uMTkuMDUtLjI4LjA3bC0uMTkuMDVjLS4xOS4wNS0uMzcuMDktLjU1LjE1LS4yLjA2LS4zOS4xMi0uNTguMTgtLjIxLjA3LS40Mi4xNS0uNjIuMjItLjIzLjA5LS40NS4xOC0uNjguMjgtLjI2LjExLS41LjIyLS43My4zMy0uMy4xNS0uNTkuMzItLjg4LjQ4LS4zNy4yMS0uNzQuNDUtMS4xLjctMS4xNy44MS0yLjI2IDEuNzgtMy4yMyAyLjg4LS40LjQ1LS43OC45NC0xLjIgMS41NS0uMjUuMzctLjUuNzQtLjcyIDEuMTItLjE3LjI5LS4zNC41OS0uNDkuODlsLS4wMy4wNmMtLjEyLjI0LS4yNC40OC0uMzUuNzItLjA3LjE2LS4xNC4zMy0uMi40OWwtLjEzLjM0Yy0uMDcuMTctLjEzLjMzLS4xOS41LS4wNS4xNC0uMDkuMjgtLjE0LjQybC0uMTIuMzYtLjEyLjM5Yy0uMDMuMS0uMDUuMjEtLjA4LjMybC0uMDkuMzctLjA5LjM4Yy0uMDMuMTMtLjA2LjI3LS4wOC40MWwtLjAyLjA5LS4wOS40OS0uMDQuMjFjLS4wMi4wOS0uMDQuMTgtLjA1LjI4LS4xLjY4LS41Mi45My0uOTEgMS4wOWwtLjI0LjFjLS4yNC4xLS40Ny4yLS43LjMtLjI2LjEyLS41Mi4yNC0uNzcuMzctLjI5LjE1LS41OC4zLS44Ni40NmExNi43OTIgMTYuNzkyIDAgMDAtMi44NCAyLjA0bC0xLjI1IDEuMjVjLS41Mi41OC0uOTggMS4xNC0xLjM3IDEuNy0uMDIuMDItLjAzLjA1LS4wNC4wNy0uMDIuMDMtLjA0LjA3LS4wNi4xLS4xOS4yOC0uMzguNi0uNiAxLS4xNC4yNi0uMjcuNTMtLjQuOC0uMTEuMjMtLjIxLjQ3LS4zMS43LS4wOS4yMy0uMTcuNDMtLjI0LjY0LS4wNC4xMi0uMDguMjQtLjExLjM3bC0uMTIuNDFjLS4wNC4xMi0uMDcuMjQtLjExLjM2bC0uMTIuNTJjLS4wMi4xLS4wNC4xOS0uMDUuMjlsLS4wNi4zNC0uMDYuMzRjLS4wMS4wNy0uMDMuMTUtLjA0LjIyLS4wMy4wOS0uMDQuMTctLjA1LjI1bC0uMTUgMS4wOC4xMiAzLjA5LjA5LjYtLjI0LjE1LjI2LS4wNC4wNS4yM2MuMDEuMDcuMDMuMTQuMDQuMmwuMDMuMTNjLjAzLjEzLjA0LjIzLjA3LjMzbC4wMy4xNmMuMDEuMDYuMDIuMTIuMDQuMTguMDEuMDYuMDMuMTIuMDUuMThsLjEzLjQ0Yy4wNC4xNC4wNi4yMy4wOS4zMWwuMDQuMTVjLjAxLjA1LjAzLjExLjA1LjE2LjAyLjA1LjA0LjExLjA2LjE2bC4zMi44M2MuMDIuMDUuMDQuMTEuMDYuMTZsLjEzLjI3Yy4wMi4wNS4wNS4xLjA3LjE1bC4wNi4xMmMuMDQuMDkuMDkuMTguMTMuMjdsLjA2LjEzYy4wMi4wNS4wNS4xLjA3LjE0bC4xNC4yNmMuMDMuMDUuMDUuMDkuMDguMTNsLjQ0LjcyYy4wMy4wNS4wNi4wOS4wOS4xNC4wMy4wNC4wNS4wOC4wOC4xMWwuNTEuNjkuMDkuMTIuMTguMjFjLjAzLjA0LjA3LjA4LjExLjEybC4wOC4wOWMuMDYuMDcuMTIuMTQuMTkuMjFsLjM4LjQyYy4wMy4wMy4wNy4wNi4xLjA5bC42Mi41OGMuMDMuMDMuMDcuMDcuMTEuMWwuNzYuNjJjLjA0LjAzLjA4LjA3LjEyLjFsLjIzLjE2Yy4wNi4wNS4xMy4wOS4xOS4xM2wuNzcuNWMuMDguMDUuMTcuMS4yNS4xNWwxLjU5LjgxIDMuNTkgMS4yOGMuMDUuMDIuMTUuMDEuMjUuMDFoMS4wNGwxNy42Ni4wMWguNjFsMjQuODEtLjA2Yy4wOCAwIC4xNSAwIC4yMy0uMDEuMDggMCAuMTYtLjAxLjI0LS4wMmwuMTktLjAyLjI5LS4wMy4yMi0uMDJjLjEyLS4wMS4yNS0uMDIuMzctLjA0LjA3LS4wMS4xMy0uMDEuMi0uMDIuMDgtLjAxLjE2LS4wMS4yNC0uMDIuMDktLjAxLjE4LS4wMy4yNy0uMDUuMDctLjAyLjE1LS4wMy4yMi0uMDQuMTctLjAzLjMzLS4wNi40OS0uMDlsLjIxLS4wNGMuMDktLjAyLjE5LS4wMy4yOC0uMDUuMTItLjAzLjIzLS4wNi4zNS0uMWwuMi0uMDYuNTEtLjE1LjA3LS4wMmMuMDgtLjAzLjE2LS4wNS4yNS0uMDcuMTEtLjAzLjIyLS4wNi4zMy0uMS4yMS0uMDguNC0uMTUuNTktLjIzbC4wOC0uMDNjLjI0LS4xLjQ4LS4yMS43Mi0uMzIuMjctLjEzLjU0LS4yNi44LS40LjM2LS4xOS42OC0uMzguOTctLjU3IDEuMTEtLjcxIDIuMDItMS41MyAyLjgxLTIuNS4yNy0uMzQuNTMtLjcuNzctMS4wNy4xNy0uMjguMzItLjU3LjQ2LS44Ni4xMS0uMjMuMjEtLjQ3LjMxLS43bC4wNy0uMThjLjA2LS4xNi4xMy0uMzEuMTgtLjQ3LjA0LS4xMS4wNi0uMjMuMDktLjM0bC4wOS0uMzRjLjA0LS4xMy4wNy0uMjYuMS0uNGwuMDYtLjM1LjAyLS4xM2MuMDMtLjE1LjA1LS4zMS4wNy0uNDdsLjAzLS4xOGMuMDEtLjA5LjAzLS4xOS4wNC0uMjguMDEtLjA4LjAxLS4xNi4wMS0uMjRsLjAxLS4yNWMuMDEtLjEyLjAyLS4yMy4wMi0uMzVsLjAxLS4xN2MwLS4wOC4wMS0uMTYuMDEtLjI0LS4wNC0uMDYtLjA0LS4xNC0uMDUtLjIxeiIgZmlsbD0idXJsKCNwcmVmaXhfX2MpIi8+PC9zdmc+");
+}
+
+.azure-compute {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTMxLjMzMyAxMC42NjdhLjY2Ny42NjcgMCAwMDAtMS4zMzRoLTJWNi42NjdoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtLjY2NmMwLTEuMTAzLS44OTctMi0yLTJoLS42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0yLjY2NnYtMmEuNjY3LjY2NyAwIDAwLTEuMzM0IDB2MmgtMi42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYySDYuNjY3di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0uNjY2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2LjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYyLjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYuNjY2YzAgMS4xMDMuODk3IDIgMiAyaC42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoMi42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoLjY2NmMxLjEwMyAwIDItLjg5NyAyLTJ2LS42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMnpNMjggMjcuMzMzYzAgLjM2OC0uMy42NjctLjY2Ny42NjdINC42NjdBLjY2OC42NjggMCAwMTQgMjcuMzMzVjQuNjY3QzQgNC4yOTkgNC4zIDQgNC42NjcgNGgyMi42NjZjLjM2NyAwIC42NjcuMjk5LjY2Ny42Njd2MjIuNjY2ek05LjMzMyA4YTEuMzM0IDEuMzM0IDAgMTAtMi42NjcuMDAxQTEuMzM0IDEuMzM0IDAgMDA5LjMzMyA4em0xMS4zMzQgMi42NjdoLTkuMzM0YS42NjcuNjY3IDAgMDAtLjY2Ni42NjZ2OS4zMzRjMCAuMzY4LjI5OC42NjYuNjY2LjY2Nmg5LjMzNGEuNjY3LjY2NyAwIDAwLjY2Ni0uNjY2di05LjMzNGEuNjY3LjY2NyAwIDAwLS42NjYtLjY2NnpNMjAgMjBoLTh2LThoOHY4eiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
+}
+
+.azure-container {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTMxLjMzMyAxMC42NjdhLjY2Ny42NjcgMCAwMDAtMS4zMzRoLTJWNi42NjdoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtLjY2NmMwLTEuMTAzLS44OTctMi0yLTJoLS42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0yLjY2NnYtMmEuNjY3LjY2NyAwIDAwLTEuMzM0IDB2MmgtMi42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYySDYuNjY3di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0uNjY2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2LjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYyLjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYuNjY2YzAgMS4xMDMuODk3IDIgMiAyaC42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoMi42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoLjY2NmMxLjEwMyAwIDItLjg5NyAyLTJ2LS42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMnpNMjggMjcuMzMzYzAgLjM2OC0uMy42NjctLjY2Ny42NjdINC42NjdBLjY2OC42NjggMCAwMTQgMjcuMzMzVjQuNjY3QzQgNC4yOTkgNC4zIDQgNC42NjcgNGgyMi42NjZjLjM2NyAwIC42NjcuMjk5LjY2Ny42Njd2MjIuNjY2ek05LjMzMyA4YTEuMzM0IDEuMzM0IDAgMTAtMi42NjcuMDAxQTEuMzM0IDEuMzM0IDAgMDA5LjMzMyA4em0xMS4zMzQgMi42NjdoLTkuMzM0YS42NjcuNjY3IDAgMDAtLjY2Ni42NjZ2OS4zMzRjMCAuMzY4LjI5OC42NjYuNjY2LjY2Nmg5LjMzNGEuNjY3LjY2NyAwIDAwLjY2Ni0uNjY2di05LjMzNGEuNjY3LjY2NyAwIDAwLS42NjYtLjY2NnpNMjAgMjBoLTh2LThoOHY4eiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
+}
+
+.azure-database {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zODklIiB5MT0iNC4zMDglIiB4Mj0iMjUuNSUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTE2LjUgMUMxMS40MSAxIDYgMi4zMTUgNiA0Ljc1djIyLjVDNiAyOS42ODUgMTEuNDEgMzEgMTYuNSAzMVMyNyAyOS42ODUgMjcgMjcuMjVWNC43NUMyNyAyLjMxNSAyMS41OSAxIDE2LjUgMXptOS41ODcgMTguODk3YzAgMS4xMTMtMy42NDcgMi42NjYtOS41ODcgMi42NjYtNS45NCAwLTkuNTg3LTEuNTUzLTkuNTg3LTIuNjY2di01Ljc3MmMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyem0wLTcuNWMwIDEuMTEzLTMuNjQ3IDIuNjY1LTkuNTg3IDIuNjY1LTUuOTQgMC05LjU4Ny0xLjU1Mi05LjU4Ny0yLjY2NVY2LjYyNWMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyek0xNi41IDEuOTM3YzUuOTQgMCA5LjU4NyAxLjYzOCA5LjU4NyAyLjgxMyAwIDEuMTc1LTMuNjQ3IDIuODEzLTkuNTg3IDIuODEzLTUuOTQgMC05LjU4Ny0xLjYzOC05LjU4Ny0yLjgxMyAwLTEuMTc1IDMuNjQ3LTIuODEzIDkuNTg3LTIuODEzem0wIDI4LjEyNWMtNS45NCAwLTkuNTg3LTEuNTUyLTkuNTg3LTIuNjY1di01Ljc3MmMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyYzAgMS4xMTMtMy42NDcgMi42NjYtOS41ODcgMi42NjZ6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+.azure-hamburger {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGQ9Ik0yMS41IDZoLTE5YS41LjUgMCAwMTAtMWgxOWEuNS41IDAgMDEwIDF6bTAgMTNoLTE5YS41LjUgMCAwMTAtMWgxOWEuNS41IDAgMDEwIDF6bTAtNi41aC0xOWEuNS41IDAgMDEwLTFoMTlhLjUuNSAwIDAxMCAxeiIgaWQ9InByZWZpeF9fYSIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxtYXNrIGlkPSJwcmVmaXhfX2IiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI3ByZWZpeF9fYSIvPjwvbWFzaz48dXNlIGZpbGw9IiMwMDAiIGZpbGwtcnVsZT0ibm9uemVybyIgeGxpbms6aHJlZj0iI3ByZWZpeF9fYSIvPjxnIG1hc2s9InVybCgjcHJlZml4X19iKSIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6Ii8+PC9nPjwvZz48L3N2Zz4=");
+}
+
+.azure-network {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzUiIGhlaWdodD0iMzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4MT0iOTUuNjkyJSIgeTE9IjQuMzA4JSIgeDI9IjAlIiB5Mj0iMTAwJSIgaWQ9InByZWZpeF9fYSI+PHN0b3Agc3RvcC1jb2xvcj0iIzUzQTBGRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCNEVDNTEiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik0xNy45MjUgN3YxLjkzQTEwLjIzNCAxMC4yMzQgMCAwMTIyLjIxMiA4YzUuMzU5IDAgOS43MDMgNC4wNTUgOS43MDMgOS4wNTggMCAuNzU3LS4xIDEuNDkzLS4yODcgMi4xOTYgMS45NDQuNTAxIDMuMzcyIDIuMTY0IDMuMzcyIDQuMTM5di4zMTRDMzUgMjYuMDc3IDMyLjk0IDI4IDMwLjQgMjhIN3YyLjA1YTIuNSAyLjUgMCAxMS0xIDBWMjhINC42QzIuMDYgMjggMCAyNi4wNzggMCAyMy43MDd2LS4zMTRjMC0yLjI3IDEuODg4LTQuMTMgNC4yNzgtNC4yODNhNi40NDMgNi40NDMgMCAwMS0uMTgzLTEuNTI5YzAtMy43ODggMy4yOS02Ljg1OCA3LjM0Ny02Ljg1OCAxLjE0MyAwIDIuMjI2LjI0MyAzLjE5LjY3OGE5LjU3IDkuNTcgMCAwMTIuNDQyLTIuMDI5TDE3LjA3NSA3aC44NXpNNi41IDMxYTEuNSAxLjUgMCAxMDAgMyAxLjUgMS41IDAgMDAwLTN6bTguODctMTguOTZsLS40NjYuNTM4LS42NjItLjI5NmE2Ljc5MiA2Ljc5MiAwIDAwLTIuNzgtLjU4N2MtMy41MyAwLTYuMzggMi42NDMtNi4zOCA1Ljg5IDAgLjQ0NS4wNTIuODgzLjE1NyAxLjMwOGwuMjUzIDEuMDMzLTEuMTA4LjA3QzIuNDc5IDIwLjEyIDEgMjEuNTgzIDEgMjMuMzR2LjMxQzEgMjUuNDk1IDIuNjI0IDI3IDQuNjQxIDI3SDZ2LTVhMSAxIDAgMDEuODgzLS45OTNMNyAyMWg0di0zLjVhLjUuNSAwIDExMSAwVjIxaDUuMDc1bC0uMDAxLTEwLjQ2NmE4LjUyNCA4LjUyNCAwIDAwLTEuNzA1IDEuNTA1ek0yMi4xOTUgOWMtMS41MyAwLTIuOTkyLjM2NS00LjI3MiAxLjAzTDE3LjkyNSAyMUgyNHYxaC0ydjMuNWEuNS41IDAgMTEtMSAwVjIySDd2NWgyMy4zNTlDMzIuMzc2IDI3IDM0IDI1LjQ5NCAzNCAyMy42NXYtLjMxMWMwLTEuNTEtMS4wOTctMi44MjgtMi42NjMtMy4yMjhsLS45LS4yMy4yMzEtLjg2M2MuMTctLjYzMy4yNTctMS4yODYuMjU3LTEuOTUxIDAtNC40NS0zLjkwMi04LjA2Ny04LjcyOS04LjA2N3pNMjYuNSAxOWEyLjUgMi41IDAgMTEwIDUgMi41IDIuNSAwIDAxMC01em0wIDFhMS41IDEuNSAwIDEwMCAzIDEuNSAxLjUgMCAwMDAtM3ptLTktMjBhMy41IDMuNSAwIDExMCA3IDMuNSAzLjUgMCAwMTAtN3ptMCAxYTIuNSAyLjUgMCAxMDAgNSAyLjUgMi41IDAgMDAwLTV6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+.azure-refresh {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NzMuNjc3IDQ3My42NzciPjxnIGZpbGw9IiMzMTJEMkEiPjxwYXRoIGQ9Ik0zNzAuNDU3IDEzOC44OTNjLTMzLjk3LTQ4LjYzMy04OS43NS03Ni40NzgtMTQ5LjM2Ni02OS42NUMxNjMuNzMgNzUuODEgMTE3LjQzIDExMi45IDk0LjQ1IDE2NC40MmwtMjkuNTEzLS4wNzVjLTUuMTg3LS4wMTEtOS4wMTYgNS45OTEtNi4wOTkgMTAuNTY0bDUxLjczMyA4MS4xNmMyLjkwOSA0LjU3IDkuMjE4IDQuNDU4IDEyLjEyLS4wNDUgMTcuMzc4LTI2Ljk2NiAzNC43NTktNTMuOTM2IDUyLjE0MS04MC45MDIgMS44NzctMi45MTMgMS4yNDUtNS43MjktLjUxMi03LjY3NC0xLjA5Ni0xLjY1Ny0yLjkxMy0yLjgzOC01LjUxMi0yLjg0NmwtMjcuNDUyLS4wNjdjNDIuMjE2LTY3LjA4OCAxNDQuNjk1LTczLjIxIDE5Mi44MDEtNC4zMzggMTUuNDE1IDIyLjA1NyA1MS44NzIuOTkyIDM2LjMtMjEuMzA0ek00MTQuNDQ5IDI5Ny41NDVjLTE3LjI0My0yNy4wNTItMzQuNDk0LTU0LjEwOC01MS43NDEtODEuMTYtMi45MDktNC41Ny05LjIxOC00LjQ1OC0xMi4xMi4wNDUtMTcuMzc0IDI2Ljk2Ni0zNC43NTYgNTMuOTM2LTUyLjEzMyA4MC45MDItMS44ODEgMi45MTctMS4yNDUgNS43MzMuNTIgNy42ODEgMS4wOTIgMS42NTMgMi45MDkgMi44MzEgNS41MDUgMi44MzhsMjcuNDQ4LjA2N2MtNDIuMjIgNjcuMDgtMTQ0LjY5NSA3My4yMjgtMTkyLjc5NyA0LjM0Mi0xNS40MDctMjIuMDYtNTEuODYtLjk5NS0zNi4yOTMgMjEuMzA0IDMzLjk2MyA0OC42MzMgODkuNzQ2IDc2LjQ3NCAxNDkuMzU5IDY5LjY1IDU3LjM2MS02LjU3IDEwMy42NTctNDMuNjYzIDEyNi42NDQtOTUuMTggOS44MzUuMDI2IDE5LjY3NC4wNDkgMjkuNTEzLjA3NSA1LjE4My4wMTUgOS4wMTItNS45OTEgNi4wOTUtMTAuNTY0eiIvPjwvZz48L3N2Zz4=");
+}
+
+.azure-storage {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTI5LjY5NSA3Ljk5M0wxNi44NjIgMS4wN2EuNTkuNTkgMCAwMC0uNTQtLjAwOWwtMTQgNi45MjNBLjU3Ny41NzcgMCAwMDIgOC41djE1YzAgLjIxMS4xMTcuNDA2LjMwNC41MDdsMTIuODM0IDYuOTIzYy4wMDcuMDAzLjAxNS4wMDIuMDIzLjAwNWEuNTczLjU3MyAwIDAwLjI1Ni4wNjVjLjA4OCAwIC4xNy0uMDIzLjI0NS0uMDU3LjAwNC0uMDAyLjAxIDAgLjAxNi0uMDAzbDE0LTYuOTIzQS41OC41OCAwIDAwMzAgMjMuNXYtMTVhLjU3NS41NzUgMCAwMC0uMzA1LS41MDd6bS0xNC4yNjcgNi43OGwtNS4xNjgtMi43OUwyMi45ODggNS42OWw1LjE2OSAyLjc5LTEyLjcyOSA2LjI5M3ptMS4xNDQtMTIuNTQ1bDUuMTY4IDIuNzg5TDkuMDEyIDExLjMxIDMuODQzIDguNTIzbDEyLjcyOS02LjI5NXpNMy4xNjcgOS40NzJsMTEuNjY2IDYuMjk0djEzLjY4NkwzLjE2NyAyMy4xNTdWOS40NzJ6TTE2IDI5LjQ5VjE1Ljc4bDEyLjgzMy02LjM0N3YxMy43MUwxNiAyOS40OXptLTQuOTcxLTEyLjQ3NmEuNTcyLjU3MiAwIDAxLjIzLjc4My41NzguNTc4IDAgMDEtLjUxLjMuNTc4LjU3OCAwIDAxLS4yNzktLjA3bC0zLjUtMS44ODlhLjU3My41NzMgMCAwMS0uMjMyLS43ODIuNTg3LjU4NyAwIDAxLjc5LS4yM2wzLjUgMS44ODh6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+/*
+** Resources
+*/
+.azure-container-registry {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSI4LjYzNyIgeTE9Ii0xLjk5MSIgeDI9IjguNjM3IiB5Mj0iMTYuNzM5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNWVhMGVmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMDA3OGQ0Ii8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYiIgeDE9IjEyLjk2IiB5MT0iOC41NjEiIHgyPSIxMi45NiIgeTI9IjYuMTQxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgMjApIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMzMzMTMyIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNWI1YTVjIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTcuNDMgOC4xNzhsMi41ODktMS41NzMgNy4yNTUgMi43MzFBMy42NjQgMy42NjQgMCAwMDE2LjIzIDcuNDlsLS4wMS0uMDVBNC4xOTQgNC4xOTQgMCAwMDE0IDYuMzJhNC45MSA0LjkxIDAgMDAtNS4xLTQuNyA1LjA3MSA1LjA3MSAwIDAwLTQuODQgMy4yOUE0LjYyMSA0LjYyMSAwIDAwMCA5LjM5YTQuNzMgNC43MyAwIDAwNC44OSA0LjU0aDIuNTR6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiLz48cGF0aCBmaWxsPSIjNzY3Njc2IiBkPSJNMTAuMDcgNy4xNTlsLjAxIDQuMjggNy45MSAxLjY4di0yLjk4bC03LjkyLTIuOTh6Ii8+PHBhdGggZmlsbD0iIzk5OSIgZD0iTTEwLjA3IDcuMTU5bC0yLjE0IDEuM3YzLjk4bDIuMTUtMSIvPjxwYXRoIGZpbGw9IiNhM2EzYTMiIGQ9Ik0xMy42OCAxMS40OTlsLjcyLjJ2LTIuMzNsLS43Mi0uMjV2Mi4zOHpNMTIuOTYgOC44ODlsLS43Mi0uMjZ2Mi40OWwuNzIuMnYtMi40M3pNMTUuMTIgMTEuODg5bC43LjE5LjAyLTIuMjItLjcyLS4yNHYyLjI3ek0xMC44MSAxMC43NDlsLjcyLjE4di0yLjUzbC0uNzItLjI0djIuNTl6TTE3LjI3IDEwLjM0OWwtLjcyLS4yNXYyLjE3bC43Mi4ydi0yLjEyeiIvPjxwYXRoIGQ9Ik04LjY2IDExLjM2OWwtLjM2LjIxdi0yLjgzbC4zNi0uMTl6bS43MS0zLjIybC0uMzcuMjR2Mi43NWwuMzctLjJ6IiBmaWxsPSIjYjNiM2IzIi8+PHBhdGggZmlsbD0idXJsKCNwcmVmaXhfX2IpIiBkPSJNMTcuOTkgMTMuMTE5bC0yLjE2Ljc0LTcuOS0xLjQyIDIuMTUtMSA3LjkxIDEuNjh6Ii8+PHBhdGggZmlsbD0iIzc2NzY3NiIgZD0iTTE3Ljk5IDE2LjE2OWwtNy45NSAxLjUxLjA0LTUuNTkgNy45MSAxLjQ3djIuNjF6Ii8+PHBhdGggZmlsbD0iI2EzYTNhMyIgZD0iTTEwLjgxIDE2Ljc1OXYtMy41NWwuNzIuMDl2My4zNGwtLjcyLjEyek0xMi45NiAxNi4zOTlsLS43Mi4xM3YtMy4xNGwuNzIuMTF2Mi45ek0xMy42OCAxNi4yODl2LTIuNzJsLjcyLjA5djIuNWwtLjcyLjEzek0xNS44MyAxNS45MDlsLS43MS4xM3YtMi4yOWwuNzEuMTF2Mi4wNXpNMTcuMjkgMTUuNjc5bC0uNzQuMTN2LTEuODhsLjY5LjA5LjA1IDEuNjZ6Ii8+PHBhdGggZD0iTTcuOTMgMTYuNHYtMy4yNmwyLjE2LTF2NS42eiIgZmlsbD0iIzk5OSIvPjxwYXRoIGQ9Ik04LjYxIDE2LjM4OWwtLjMyLS4xNnYtMi43NmwuMzItLjE1em0uNzctMy40NWwtLjM4LjE5djMuNDhsLjM3LjE5di0zLjg2eiIgZmlsbD0iI2IzYjNiMyIvPjwvc3ZnPg==");
+}
+
+.azure-dns-zone {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIGN4PSItNjgxMS40IiBjeT0iNjcyOS42OSIgcj0iMTciIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLjUgMCAwIC0uNSAzNDE0LjkxIDMzNzQuMDUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIuMTgiIHN0b3AtY29sb3I9IiM1ZWEwZWYiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDc4ZDQiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48cGF0aCBkPSJNMTQuMjEgMTUuNzJBOC41IDguNSAwIDAxMy43OSAyLjI4bC4wOS0uMDZhOC41IDguNSAwIDAxMTAuMzMgMTMuNSIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIi8+PHBhdGggZD0iTTkgMS4zMUE3LjY5IDcuNjkgMCAxMDE2LjY5IDkgNy43IDcuNyAwIDAwOSAxLjMxem01LjE1IDIuNTlhNy4zNyA3LjM3IDAgMDEtMi4xNS44QTguODMgOC44MyAwIDAwMTAuNzUgMmE3LjIgNy4yIDAgMDEzLjQgMS45ek05IDEuNzRhNi41OSA2LjU5IDAgMDExLjA5LjA5IDcuNDggNy40OCAwIDAxMS41MyAzIDE1LjEyIDE1LjEyIDAgMDEtNS40NSAwIDcuMzggNy4zOCAwIDAxMS41MS0yLjk0QTcuMzQgNy4zNCAwIDAxOSAxLjc0ek03IDJhOC43MiA4LjcyIDAgMDAtMS4yNyAyLjY4IDUuNTggNS41OCAwIDAxLTEuOS0uNzdBNy4zNSA3LjM1IDAgMDE3IDJ6TTMuNzIgMTRhNS4yNyA1LjI3IDAgMDExLjc4LS43NiA3LjA4IDcuMDggMCAwMDEuMzUgMi43MkE3LjI1IDcuMjUgMCAwMTMuNzIgMTR6bTYuNDEgMi4yYTcuMDggNy4wOCAwIDAxLTEuMTMuMDYgNi44MyA2LjgzIDAgMDEtMS40NC0uMTUgNiA2IDAgMDEtMS42Ny0zIDE0LjczIDE0LjczIDAgMDE1Ljg4IDAgNiA2IDAgMDEtMS42OSAzem0uNzMtLjE2YTcuMTMgNy4xMyAwIDAwMS4zOC0yLjggNi42OCA2LjY4IDAgMDEyIC44M0E3LjEzIDcuMTMgMCAwMTEwLjg2IDE2em0xLjQ4LTMuMjJjLjA4LS4zNi4xNS0uNzMuMi0xLjEybC0uNDYuMTFjLS4wNS4zMS0uMS42Mi0uMTcuOTFhMTUuMjMgMTUuMjMgMCAwMC02LjA5IDBjLS4wNy0uMjctLjEyLS41Ni0uMTctLjg2YS4yOC4yOCAwIDAxMC0uMDlsLS40Ni0uMTNhMi4zNiAyLjM2IDAgMDAwIC4yOGMwIC4zMi4xMS42Mi4xNy45MWE1LjkgNS45IDAgMDAtMiAuODUgNy4yNCA3LjI0IDAgMDEuMTEtOS40IDYuMjkgNi4yOSAwIDAwMi4wOC44NmMtLjA3LjI0LS4xMy41LS4xOC43NnMwIC4yNS0uMDguMzdsLjQ3LS4xMXYtLjE3Yy4wNi0uMjYuMTItLjUxLjE5LS43NUExNC44OSAxNC44OSAwIDAwOSA1LjQ4YTE1IDE1IDAgMDAyLjc4LS4yNmMuMDcuMjcuMTQuNTYuMi44NWwuNDYuMTFxLS4xMS0uNTQtLjI0LTFhNy43MyA3LjczIDAgMDAyLjMtLjkxIDcuMjIgNy4yMiAwIDAxLjA2IDkuNDkgNy4yOCA3LjI4IDAgMDAtMi4yMi0uOTd6IiBmaWxsPSIjNWVhMGVmIi8+PHBhdGggZD0iTTMuNjkgN2E3LjkyIDcuOTIgMCAwMTEuMTYtLjA4IDIuNDQgMi40NCAwIDAxMS43MS41MiAyIDIgMCAwMS41OSAxLjQ2IDIuMjEgMi4yMSAwIDAxLS42MSAxLjY0IDIuNiAyLjYgMCAwMS0xLjg2LjYxIDkuMTcgOS4xNyAwIDAxLTEtLjA1em0uNTUgMy43M2E0IDQgMCAwMC41NSAwIDEuNjIgMS42MiAwIDAwMS43OS0xLjgxQTEuNSAxLjUgMCAwMDQuODcgNy4zYTMuMTcgMy4xNyAwIDAwLS42MyAwek03Ljg2IDExLjExVjYuOWguNTlMOS44IDlhMTIuMTggMTIuMTggMCAwMS43NiAxLjM3Yy0uMDUtLjU2LS4wNi0xLjA3LS4wNi0xLjczVjYuOWguNXY0LjIxaC0uNTVMOS4xMyA5Yy0uMjktLjQ3LS41Ny0xLS43OS0xLjR2My41NHpNMTEuODkgMTAuNDVhMiAyIDAgMDAxIC4yN2MuNTYgMCAuODgtLjI5Ljg4LS43MnMtLjIyLS42Mi0uNzktLjgzLTEuMTItLjYtMS4xMi0xLjJhMS4yMiAxLjIyIDAgMDExLjM3LTEuMTQgMiAyIDAgMDEuOTMuMmwtLjE2LjQ1YTEuNjMgMS42MyAwIDAwLS44LS4yYy0uNTggMC0uOC4zNC0uOC42M3MuMjYuNTkuODQuODEgMS4wOC42MiAxLjA4IDEuMjQtLjQ4IDEuMjEtMS40OCAxLjIxYTIuMTYgMi4xNiAwIDAxLTEuMDctLjI3eiIgZmlsbD0iI2ZmZiIvPjwvc3ZnPg==");
+}
+
+.azure-instance, .azure-virtual-machine {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSI5IiB5MT0iNzc4LjgzMSIgeDI9IjkiIHkyPSI3OTAuODMxIiBncmFkaWVudFRyYW5zZm9ybT0ibWF0cml4KDEgMCAwIC0xIDAgNzkxLjUxNikiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiMwMDc4ZDQiLz48c3RvcCBvZmZzZXQ9Ii44IiBzdG9wLWNvbG9yPSIjNWVhMGVmIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYiIgeDE9IjkiIHkxPSI3NzQuMjAxIiB4Mj0iOSIgeTI9Ijc3OC44MzEiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoMSAwIDAgLTEgMCA3OTEuNTE2KSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2NjYyIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzcwNzA3MCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxyZWN0IHk9Ii42ODUiIHdpZHRoPSIxOCIgaGVpZ2h0PSIxMiIgcng9Ii42IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiLz48cGF0aCBkPSJNMTIuNjEgMTYuMzE1Yy0xLjc4LS4yOC0xLjg1LTEuNTYtMS44NS0zLjYzSDcuMjNjMCAyLjA3LS4wNiAzLjM1LTEuODQgMy42M2ExIDEgMCAwMC0uODkgMWg5YTEgMSAwIDAwLS44OS0xeiIgZmlsbD0idXJsKCNwcmVmaXhfX2IpIi8+PHBhdGggZD0iTTEwLjEwOSAyLjE3OWEuMjc3LjI3NyAwIDAwLS4xMzUuNTM4IDQuMTA3IDQuMTA3IDAgMTEtNC40ODYgMS44MzdsLjExMS4wNzcuNzc5LjU0M2EuMDQ4LjA0OCAwIDAwLjA1LS4wNTZsLS4xODMtMi4xMjRhLjA0OC4wNDggMCAwMC0uMDU1LS4wMzlMNC4yIDMuNmEuMDQ4LjA0OCAwIDAwLS4wMzQuMDY3bC44MjEuNTQxLjA0Ni4wMzFhNC42NDcgNC42NDcgMCAxMDUuMDc5LTIuMDZ6IiBmaWxsPSIjZmZmIiBvcGFjaXR5PSIuOCIvPjxwYXRoIGQ9Ik0xMS4xODMgNS44bC0uMzM0LS41NzkuMTgxLTEuMDU2LS44NDktLjQ5LS44MjQuNjg1aC0uNjY4bC0uODI0LS42ODUtLjg0OS40OS4xODQgMS4wNi0uMzM3LjU3NS0xLjAwNS4zNzF2Ljk4MWwxLjAwNS4zNzEuMzM0LjU3OC0uMTgxIDEuMDYxLjg0OS40OS44MjQtLjY4NWguNjY4bC44MjQuNjg1Ljg0OS0uNDktLjE4MS0xLjA1Ny4zMzQtLjU3OCAxLjAwNS0uMzcxdi0uOTgxem0tMi4xNiAyLjM0NkExLjQ4MSAxLjQ4MSAwIDExMTAuNSA2LjY2NWExLjQ4MSAxLjQ4MSAwIDAxLTEuNDc3IDEuNDgxeiIgZmlsbD0iI2ZmZiIvPuKAizwvc3ZnPg==");
+}
+
+.azure-kubernetes-cluster {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSIyLjk0IiB5MT0iMy43NCIgeDI9IjguNjciIHkyPSIzLjc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYjc3YWY0Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzczYWRjIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYiIgeDE9IjkuMTMiIHkxPSIzLjc5IiB4Mj0iMTQuODUiIHkyPSIzLjc5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYjc3YWY0Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzczYWRjIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYyIgeDE9Ii4wMSIgeTE9IjkuMTIiIHgyPSI1LjczIiB5Mj0iOS4xMiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2I3N2FmNCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzc3M2FkYyIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2QiIHgxPSI2LjE4IiB5MT0iOS4wOCIgeDI9IjExLjkiIHkyPSI5LjA4IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjYjc3YWY0Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNzczYWRjIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fZSIgeDE9IjEyLjM1IiB5MT0iOS4xMyIgeDI9IjE4LjA4IiB5Mj0iOS4xMyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2I3N2FmNCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzc3M2FkYyIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2YiIHgxPSIyLjg3IiB5MT0iMTQuNTYiIHgyPSI4LjYiIHkyPSIxNC41NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2I3N2FmNCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzc3M2FkYyIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2ciIHgxPSI5LjA1IiB5MT0iMTQuNiIgeDI9IjE0Ljc4IiB5Mj0iMTQuNiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2I3N2FmNCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzc3M2FkYyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGZpbGw9InVybCgjcHJlZml4X19hKSIgZD0iTTUuOCAxLjIybC0yLjg2LjUzdjMuOWwyLjg2LjYxIDIuODctMS4xNVYyLjJMNS44IDEuMjJ6Ii8+PHBhdGggZD0iTTUuOTEgNi4ybDIuNjItMS4wNkEuMi4yIDAgMDA4LjY1IDVWMi4zNmEuMjEuMjEgMCAwMC0uMTMtLjE4bC0yLjY1LS45aC0uMTJsLTIuNi40OGEuMi4yIDAgMDAtLjE1LjE4djMuNTNhLjE5LjE5IDAgMDAuMTUuMTlsMi42My41NWEuMzIuMzIgMCAwMC4xMy0uMDF6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTIuOTQgMS43NXYzLjlsMi44OS42MXYtNXptMS4yMiAzLjZsLS44MS0uMTZ2LTNsLjgxLS4xM3ptMS4yNi4yM2wtLjkzLS4xNVYybC45My0uMTZ6IiBmaWxsPSIjMzQxYTZlIi8+PHBhdGggZmlsbD0idXJsKCNwcmVmaXhfX2IpIiBkPSJNMTEuOTkgMS4yN2wtMi44Ni41M3YzLjlsMi44Ni42MSAyLjg2LTEuMTZ2LTIuOWwtMi44Ni0uOTh6Ii8+PHBhdGggZD0iTTkuMTMgMS44djMuOWwyLjg3LjYxdi01em0xLjIxIDMuNmwtLjgxLS4xNnYtM2wuODEtLjEzem0xLjI2LjIzbC0uOTMtLjE1VjIuMDVsLjkzLS4xN3oiIGZpbGw9IiMzNDFhNmUiLz48cGF0aCBmaWxsPSJ1cmwoI3ByZWZpeF9fYykiIGQ9Ik0yLjg3IDYuNmwtMi44Ni41M3YzLjlsMi44Ni42MSAyLjg3LTEuMTVWNy41OEwyLjg3IDYuNnoiLz48cGF0aCBkPSJNMCA3LjEzVjExbDIuODkuNjF2LTV6bTEuMjEgMy42MWwtLjgxLS4xN3YtM2wuODEtLjE0em0xLjI3LjI2bC0uOTMtLjE1VjcuMzhsLjkzLS4xNnoiIGZpbGw9IiMzNDFhNmUiLz48cGF0aCBmaWxsPSJ1cmwoI3ByZWZpeF9fZCkiIGQ9Ik05LjA0IDYuNTZsLTIuODYuNTN2My45bDIuODYuNjIgMi44Ni0xLjE2VjcuNTRsLTIuODYtLjk4eiIvPjxwYXRoIGQ9Ik02LjE4IDcuMDlWMTFsMi44OC42MXYtNXptMS4yMSAzLjYxbC0uODEtLjE3di0zbC44MS0uMTR6bTEuMjYuMjJsLS45My0uMTVWNy4zNGwuOTMtLjE2eiIgZmlsbD0iIzM0MWE2ZSIvPjxwYXRoIGZpbGw9InVybCgjcHJlZml4X19lKSIgZD0iTTE1LjIxIDYuNjFsLTIuODYuNTN2My45bDIuODYuNjEgMi44Ny0xLjE1VjcuNTlsLTIuODctLjk4eiIvPjxwYXRoIGQ9Ik0xMi4zNSA3LjE0VjExbDIuODkuNjF2LTV6bTEuMjIgMy42MWwtLjgxLS4xN3YtM2wuODEtLjE0em0xLjI2LjIybC0uOTMtLjE1VjcuMzlsLjkzLS4xNnoiIGZpbGw9IiMzNDFhNmUiLz48cGF0aCBmaWxsPSJ1cmwoI3ByZWZpeF9fZikiIGQ9Ik01LjczIDEyLjA0bC0yLjg2LjUydjMuOWwyLjg2LjYyIDIuODctMS4xNnYtMi45bC0yLjg3LS45OHoiLz48cGF0aCBkPSJNNS44NCAxN2wyLjYxLTFhLjE4LjE4IDAgMDAuMTItLjE4di0yLjZhLjIuMiAwIDAwLS4xMy0uMjJsLTIuNjQtLjlhLjE3LjE3IDAgMDAtLjEyIDBsLTIuNi40N2EuMTkuMTkgMCAwMC0uMTYuMTl2My41NGEuMTkuMTkgMCAwMC4xNS4xOUw1LjcgMTdhLjIzLjIzIDAgMDAuMTQgMHoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMi44NyAxMi41NnYzLjlsMi44OS42MlYxMnptMS4yMiAzLjYxTDMuMjggMTZ2LTNsLjgxLS4xNHptMS4yNi4yM2wtLjkzLS4xNXYtMy40NGwuOTMtLjE2eiIgZmlsbD0iIzM0MWE2ZSIvPjxwYXRoIGZpbGw9InVybCgjcHJlZml4X19nKSIgZD0iTTExLjkxIDEyLjA4bC0yLjg2LjUzdjMuOWwyLjg2LjYxIDIuODctMS4xNXYtMi45MWwtMi44Ny0uOTh6Ii8+PHBhdGggZD0iTTkuMDUgMTIuNjF2My45bDIuODkuNjF2LTV6bTEuMjIgMy42MWwtLjgxLS4xN3YtM2wuODEtLjE0em0xLjI2LjIybC0uOTMtLjE1di0zLjQzbC45My0uMTZ6IiBmaWxsPSIjMzQxYTZlIi8+PC9zdmc+");
+}
+
+.azure-load-balancer {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSI5IiB5MT0iMTkuODUiIHgyPSI5IiB5Mj0iLTEuMDIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM1ZTk2MjQiLz48c3RvcCBvZmZzZXQ9Ii4wMiIgc3RvcC1jb2xvcj0iIzVmOTcyNCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzc2YmMyZCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik0uMTggOC41N0w4LjU3LjE4YS42LjYgMCAwMS44NiAwbDguMzkgOC4zOWEuNi42IDAgMDEwIC44NmwtOC40IDguNGEuNi42IDAgMDEtLjg0IDBsLTguNC04LjRhLjYuNiAwIDAxMC0uODZ6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiLz48cGF0aCBkPSJNMTEuMiA0TDkuMDggMS44OWEuMTIuMTIgMCAwMC0uMTYgMEw2LjggNGEuMS4xIDAgMDAuMDguMThoMS4yNGEuMTEuMTEgMCAwMS4xMS4xMXYyYS4xMS4xMSAwIDAwLjExLjExaDEuMzJhLjExLjExIDAgMDAuMTEtLjExdi0yYS4xMS4xMSAwIDAxLjExLS4xMWgxLjI0QS4xLjEgMCAwMDExLjIgNHpNNCA2LjYxTDEuOSA4Ljc0YS4xMS4xMSAwIDAwMCAuMTVMNCAxMWEuMTEuMTEgMCAwMC4xOS0uMDhWOS42OWEuMTEuMTEgMCAwMS4xMS0uMTFoMmEuMS4xIDAgMDAuMS0uMTFWOC4xNUEuMS4xIDAgMDA2LjMzIDhoLTJhLjEuMSAwIDAxLS4xMS0uMVY2LjY5QS4xMS4xMSAwIDAwNCA2LjYxek0xNC4wOCAxMWwyLjEzLTIuMTJhLjExLjExIDAgMDAwLS4xNWwtMi4xMy0yLjEyYS4xMS4xMSAwIDAwLS4xOC4wOHYxLjI1YS4xLjEgMCAwMS0uMTEuMWgtMmEuMS4xIDAgMDAtLjEuMTF2MS4zMmEuMS4xIDAgMDAuMS4xMWgyYS4xMS4xMSAwIDAxLjExLjExdjEuMjRhLjExLjExIDAgMDAuMTguMDd6IiBmaWxsPSIjYjRlYzM2Ii8+PHBhdGggZD0iTTExLjc5IDlhMi43OSAyLjc5IDAgMTAtMy41NCAyLjY3di45NWExLjcxIDEuNzEgMCAxMDEuNTcgMHYtMUEyLjc3IDIuNzcgMCAwMDExLjc5IDl6IiBmaWxsPSIjZmZmIi8+PGNpcmNsZSBjeD0iOS4wMSIgY3k9IjguOTkiIHI9IjEuNjIiIGZpbGw9IiM1ZWEwZWYiLz48L3N2Zz4=");
+}
+
+.azure-mssql-server {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSIuNSIgeTE9IjEwLjA0IiB4Mj0iMTMuMTgiIHkyPSIxMC4wNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzAwNWJhMSIvPjxzdG9wIG9mZnNldD0iLjA3IiBzdG9wLWNvbG9yPSIjMDA2MGE5Ii8+PHN0b3Agb2Zmc2V0PSIuMzYiIHN0b3AtY29sb3I9IiMwMDcxYzgiLz48c3RvcCBvZmZzZXQ9Ii41MiIgc3RvcC1jb2xvcj0iIzAwNzhkNCIvPjxzdG9wIG9mZnNldD0iLjY0IiBzdG9wLWNvbG9yPSIjMDA3NGNkIi8+PHN0b3Agb2Zmc2V0PSIuODIiIHN0b3AtY29sb3I9IiMwMDZhYmIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMwMDViYTEiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBkPSJNNi44NCA1LjA5Yy0zLjUgMC02LjM0LTEtNi4zNC0yLjNWMTVjMCAxLjI2IDIuNzkgMi4yOCA2LjI1IDIuM2guMDljMy41IDAgNi4zNC0xIDYuMzQtMi4zVjIuNzljMCAxLjI3LTIuODQgMi4zLTYuMzQgMi4zeiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIi8+PHBhdGggZD0iTTEzLjE4IDIuNzljMCAxLjI3LTIuODQgMi4zLTYuMzQgMi4zUy41IDQuMDYuNSAyLjc5IDMuMzQuNDkgNi44NC40OXM2LjM0IDEgNi4zNCAyLjMiIGZpbGw9IiNlOGU4ZTgiLz48cGF0aCBkPSJNMTEuNyAyLjZjMCAuODEtMi4xOCAxLjQ2LTQuODYgMS40NlMyIDMuNDEgMiAyLjZzMi4xNi0xLjQ2IDQuODQtMS40NiA0Ljg2LjY2IDQuODYgMS40NiIgZmlsbD0iIzUwZTZmZiIvPjxwYXRoIGQ9Ik02Ljg0IDIuOTRBMTIgMTIgMCAwMDMgMy40OWExMS4yNSAxMS4yNSAwIDAwMy44NS41NyAxMS4yNSAxMS4yNSAwIDAwMy44NS0uNTcgMTIgMTIgMCAwMC0zLjg2LS41NXoiIGZpbGw9IiMxOThhYjMiLz48cGF0aCBkPSJNMTAuNzQgMTEuMVY3LjcyaC0uOTN2NC4xNGgyLjQ2di0uNzZ6TTMuNTkgOS40M2ExLjkyIDEuOTIgMCAwMS0uNTEtLjMxQS40NC40NCAwIDAxMyA4LjhhLjM4LjM4IDAgMDEuMTYtLjMxLjcyLjcyIDAgMDEuNDItLjExIDEuNjcgMS42NyAwIDAxMSAuMjl2LS44NmEyLjY3IDIuNjcgMCAwMC0xLS4xNiAxLjc0IDEuNzQgMCAwMC0xLjIuMzUgMS4xMyAxLjEzIDAgMDAtLjQxLjljMCAuNTEuMzIuOTEgMSAxLjIxYTIuOSAyLjkgMCAwMS42MS4zNi40LjQgMCAwMS4xNi4zMi4zOC4zOCAwIDAxLS4xNi4zMS43NS43NSAwIDAxLS40NS4xMkExLjYgMS42IDAgMDEyIDEwLjc3di45M2EyLjI5IDIuMjkgMCAwMDEuMDcuMjMgMiAyIDAgMDAxLjE4LS4zMiAxLjEgMS4xIDAgMDAuNDMtLjkyIDEgMSAwIDAwLS4yNS0uNyAyLjQyIDIuNDIgMCAwMC0uODQtLjU2ek04Ljc5IDExYTIuNCAyLjQgMCAwMC4zMy0xLjI3IDIuMzIgMi4zMiAwIDAwLS4yNS0xLjEgMS44MSAxLjgxIDAgMDAtLjctLjc1IDIgMiAwIDAwLTEtLjI2IDIuMTggMi4xOCAwIDAwLTEuMDkuMjcgMS44NyAxLjg3IDAgMDAtLjczLjc3IDIuNDEgMi40MSAwIDAwLS4yNiAxLjE1IDIuMjYgMi4yNiAwIDAwLjI0IDEuMDUgMS44MyAxLjgzIDAgMDAuNjguNzUgMiAyIDAgMDAxIC4yOWwuODUgMWgxLjE5bC0xLjItMS4xMWExLjgxIDEuODEgMCAwMC45NC0uNzl6bS0uOTMtLjI2YTEgMSAwIDAxLTEuNTMgMCAxLjUxIDEuNTEgMCAwMS0uMjgtMSAxLjQ4IDEuNDggMCAwMS4yOS0xIC45Mi45MiAwIDAxLjc4LS4zNy44OS44OSAwIDAxLjc1LjM3IDEuNjIgMS42MiAwIDAxLjI3IDEgMS40NiAxLjQ2IDAgMDEtLjI4IDEuMDN6IiBmaWxsPSIjZjJmMmYyIi8+PHBhdGggZD0iTTE0LjgxIDE3LjQ5bC4yNC0uNzkuNDctLjI3LjgxLjM2LjUyLS41M3YtLjA2bC0uMzctLjcxLjIyLS41LjgxLS4yOWguMDl2LS43M2gtLjFsLS44LS4yNC0uMjYtLjQ2LjM1LS44Mi0uNTMtLjUxaC0uMDZsLS43MS4zNkwxNSAxMmwtLjMyLS44OWgtLjc0di4xMWwtLjI0Ljc5LS41MS4yMi0uODctLjQtLjUxLjUzLjA1LjEuMzguNzQtLjIuNTEtLjk0LjI5di43NGguMTFsLjc5LjI0LjIyLjUxLS4zOS44Ni41My41Mi4wOS0uMDUuNzQtLjM4LjUxLjIuMzQuODloLjczem0tMS4yLTIuMzZhMS4wNiAxLjA2IDAgMTExLjQ5LTEuNTIgMS4wNiAxLjA2IDAgMDEtMS40OSAxLjUyeiIgZmlsbD0iIzk0OTQ5NCIvPjwvc3ZnPg==");
+}
+
+.azure-mysql-database {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSIyLjU5IiB5MT0iMTAuMTYiIHgyPSIxNS40MSIgeTI9IjEwLjE2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMDA1YmExIi8+PHN0b3Agb2Zmc2V0PSIuMDciIHN0b3AtY29sb3I9IiMwMDYwYTkiLz48c3RvcCBvZmZzZXQ9Ii4zNiIgc3RvcC1jb2xvcj0iIzAwNzFjOCIvPjxzdG9wIG9mZnNldD0iLjUyIiBzdG9wLWNvbG9yPSIjMDA3OGQ0Ii8+PHN0b3Agb2Zmc2V0PSIuNjQiIHN0b3AtY29sb3I9IiMwMDc0Y2QiLz48c3RvcCBvZmZzZXQ9Ii44MiIgc3RvcC1jb2xvcj0iIzAwNmFiYiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwNWJhMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik05IDUuMTRjLTMuNTQgMC02LjQxLTEtNi40MS0yLjMydjEyLjM2YzAgMS4yNyAyLjgyIDIuMyA2LjMyIDIuMzJIOWMzLjU0IDAgNi40MS0xIDYuNDEtMi4zMlYyLjgyYzAgMS4yOS0yLjg3IDIuMzItNi40MSAyLjMyeiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIi8+PHBhdGggZD0iTTE1LjQxIDIuODJjMCAxLjI5LTIuODcgMi4zMi02LjQxIDIuMzJzLTYuNDEtMS02LjQxLTIuMzJTNS40Ni41IDkgLjVzNi40MSAxIDYuNDEgMi4zMiIgZmlsbD0iI2U4ZThlOCIvPjxwYXRoIGQ9Ik0xMy45MiAyLjYzYzAgLjgyLTIuMjEgMS40OC00LjkyIDEuNDhzLTQuOTItLjY2LTQuOTItMS40OFM2LjI5IDEuMTYgOSAxLjE2czQuOTIuNjYgNC45MiAxLjQ3IiBmaWxsPSIjNTBlNmZmIi8+PHBhdGggZD0iTTkgM2ExMS41NSAxMS41NSAwIDAwLTMuODkuNTdBMTEuNDIgMTEuNDIgMCAwMDkgNC4xMWExMS4xNSAxMS4xNSAwIDAwMy44OS0uNThBMTEuODQgMTEuODQgMCAwMDkgM3oiIGZpbGw9IiMxOThhYjMiLz48cGF0aCBkPSJNMTIuNjQgOXYxLjYzaC0xYS4zOS4zOSAwIDAxLS4yOS0uMTRWOUgxMHYxLjc4YS45Mi45MiAwIDAwMSAuODloMS40OWwuMjYtLjEzcy0uMTEuNDEtLjI2LjQzaC0yLjM4djFoMi42NkExLjIxIDEuMjEgMCAwMDE0IDExLjdWOXpNOS41MyA5di0uNDlhLjcuNyAwIDAwLS40OC0uNzcgMS43NCAxLjc0IDAgMDAtLjUtLjA4Ljk0Ljk0IDAgMDAtLjkxLjU4bC0uNzggMS45LTEtMS45QS45My45MyAwIDAwNSA3LjY2YTEuNDQgMS40NCAwIDAwLS41MS4wOWMtLjM1LjExLS40My4zNC0uNDMuNzN2My4zMWgxLjE3VjkuNTZsLjYzIDEuNTdhMS4wOCAxLjA4IDAgMDAxIC42NmMuNDQgMCAuNjItLjI2LjgtLjY2bC42Ny0xLjUxdjIuMTVoMS4xOFY5eiIgZmlsbD0iI2YyZjJmMiIvPjwvc3ZnPg==");
+}
+
+.azure-oracle-autonomous-database, .azure-oracledatabase-autonomous-database-regular {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjEiIGhlaWdodD0iNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwLjUgMjUuNTQ3Yy45MjMgMCAyLjY5My4wNiAyLjY5My4wNnMtMS4xOC0xLjk0LTEuNTctMy45NzdsLTEuNzI2LTEuNzI3YTIuNzY4IDIuNzY4IDAgMDEwLTMuOTEzbC4wMi0uMDJhMi43NDUgMi43NDUgMCAwMTEuOTU2LS44MWMuMDU3IDAgLjExNy4wMDcuMTc0LjAxYTEyLjk3IDEyLjk3IDAgMDExLjI1LTIuNjc3IDguNDYyIDguNDYyIDAgMDAtMi4xMi0uNTY2Yy0uMjU0LTUuOS01LjIwNy0xMC41LTExLjExNC0xMC4zMTdBMTEuMDcgMTEuMDcgMCAwMDkuNDg3IDguODIzQzQuNDY3IDkuNDIzLjY1IDEzLjYwNy41IDE4LjY1N2MuMjIzIDUuNzA2IDUuMDIzIDEwLjE1NiAxMC43MzMgOS45NS4zMiAwIC42NDQtLjAxNC45NDQtLjA0aDMuNjAzYzEuMzM3LTEuODk3IDcuNDEtMy4wMiAxNC43MjMtMy4wMkgzMC41eiIgZmlsbD0idXJsKCNwcmVmaXhfX3BhaW50MF9saW5lYXJfOTg1OV83MjM3KSIvPjxwYXRoIGQ9Ik0zNi40MzMgMjIuMzQ3bDMuNTEtMy41MWExLjI2NyAxLjI2NyAwIDAwMC0xLjc5bC0uMDItLjAyYTEuMjY4IDEuMjY4IDAgMDAtMS43OSAwbC0xLjM2IDEuMzZjLjQ0Ny00LjcwNyA0LjQyNy04LjM4IDkuMjMtOC4zOCAzLjkyNCAwIDUuOTk3IDEuODUgNy4zNzQgMy42NDMuNDczLjYxNyAxLjM3LjcgMS45Mi4xNWwuMDEtLjAxYy40NDMtLjQ0My41MDYtMS4xNS4xMjYtMS42NDdhMTEuODczIDExLjg3MyAwIDAwLTkuNDMtNC42ODNjLTYuMjUtLjAyNy0xMS4zOSA0Ljg0My0xMS44MDYgMTAuOTk3bC0xLjQzLTEuNDNhMS4yNjggMS4yNjggMCAwMC0xLjc5IDBsLS4wMi4wMmExLjI2NyAxLjI2NyAwIDAwMCAxLjc5bDMuNTEgMy41MWExLjM5IDEuMzkgMCAwMDEuOTY2IDB6bTcuMDg3LTguMjQ0bC0zLjE4IDguNzM3YTEuMzY1IDEuMzY1IDAgMTAyLjU4My44NzdsLjU1LTEuNzM0aDQuMjk3bC41NTMgMS43MjdhMS4zOCAxLjM4IDAgMTAyLjYxNy0uODgzbC0zLjA5Ny04LjcxYTIuMjk2IDIuMjk2IDAgMDAtNC4zMi0uMDE3bC0uMDAzLjAwM3ptMy42MjMgNS43OTRoLTMuMDlsMS4zMTQtNC4wOTRjLjExMy0uMzQ2LjE4My0uNy4yMS0xLjA1M2guMDY2Yy4wNC40Mi4xMDcuNzgzLjIwNCAxLjA4N2wxLjI5NiA0LjA2ek02MC4xMyAxOS43bC0zLjUwMy0zLjUwM2ExLjM5IDEuMzkgMCAwMC0xLjk2NyAwbC0zLjUxIDMuNTFhMS4yNjggMS4yNjggMCAwMDAgMS43OWwuMDIuMDJhMS4yNjcgMS4yNjcgMCAwMDEuNzkgMGwxLjM2LTEuMzZjLS40NDcgNC43MDYtNC40MjcgOC4zOC05LjIzIDguMzhhOS4yOTkgOS4yOTkgMCAwMS03LjM3My0zLjY0NGMtLjQ3NC0uNjE2LTEuMzctLjctMS45Mi0uMTVsLS4wMS4wMWMtLjQ0NC40NDQtLjUwNyAxLjE1LS4xMjcgMS42NDdhMTEuODczIDExLjg3MyAwIDAwOS40MyA0LjY4M2M2LjI1IDAgMTEuMzktNC44NzMgMTEuODA3LTExLjAyNmwxLjQzNiAxLjQzNmMuNDk0LjQ5NCAxLjI5LjQ5NCAxLjc4NC4wMDdsLjAwNi0uMDA3Yy41LS40OTMuNTA0LTEuMjk2LjAwNy0xLjc5M3oiIGZpbGw9IiMwMDc4RDQiLz48cGF0aCBkPSJNMzAuNSA0MS4wOWMtOC4yOSAwLTE1LjAxLTEuNDU3LTE1LjAxLTMuMjUzdjcuOThjMCAxLjc5NiA2LjcyIDMuMjUzIDE1LjAxIDMuMjUzczE1LjAxLTEuNDU3IDE1LjAxLTMuMjUzdi03Ljk4YzAgMS43OTYtNi43MiAzLjI1My0xNS4wMSAzLjI1M3ptMTIuNjMgMS44MDdhMjMuODkzIDIzLjg5MyAwIDAxLTcuNzczIDEuMzA2LjYyNi42MjYgMCAxMTAtMS4yNTNjMS4zNTYgMCAyLjcyMy0uMTI3IDQuMDU2LS4zNyAxLjEyLS4yMDcgMi4yMy0uNDk3IDMuMzA3LS44N2EuNjI2LjYyNiAwIDAxLjQxIDEuMTgzdi4wMDR6TTMwLjUgNTAuODMzYy04LjI5IDAtMTUuMDEtMS40NTYtMTUuMDEtMy4yNTN2Ny41NzdjMCAxLjc5NiA2LjcyIDMuMjUzIDE1LjAxIDMuMjUzczE1LjAxLTEuNDU3IDE1LjAxLTMuMjUzVjQ3LjU4YzAgMS43OTctNi43MiAzLjI1My0xNS4wMSAzLjI1M3ptMTIuNjMgMS41NDRhMjMuNzggMjMuNzggMCAwMS03Ljc3MyAxLjMwNi42MjYuNjI2IDAgMTEwLTEuMjUzYzEuMzU2IDAgMi43MjMtLjEyNyA0LjA1Ni0uMzcgMS4xMi0uMjA3IDIuMjMtLjQ5NyAzLjMwNy0uODdhLjYyNi42MjYgMCAwMS40MSAxLjE4M3YuMDA0em0yLjM4LTE5LjUzNGMtLjc2NyAwLTEuNTAzLS4xMS0yLjIzMy0uMjI2LjEuMDczLjIuMTQ2LjI0My4yNzNhLjYyNi42MjYgMCAwMS0uMzg3Ljc5NyAyMy45NDMgMjMuOTQzIDAgMDEtNy43NzMgMS4zMDcuNjI1LjYyNSAwIDExMC0xLjI1YzEuMzU3IDAgMi43MjMtLjEyNyA0LjA1Ny0uMzdhMjIuNTUzIDIyLjU1MyAwIDAwMy4xOC0uODM3Yy0xLjQ2NC0uMzA3LTIuODEtLjg4NC00LjA3LTEuNi0yLjI1LjMxMy01LjAwNy41MzMtOC4wMjQuNTMzLTcuNDY2IDAtMTMuNTItMS4zNi0xMy41Mi0yLjE2NyAwLS45OSA2LjA1NC0yLjUxNiAxMy41Mi0yLjUxNiAxLjIyIDAgMi4zOC4wNTMgMy41MDQuMTMtLjMwNC0uNDE3LS41NTQtLjg2NC0uODEtMS4zMTQtLjg3Ny0uMDM2LTEuNzctLjA2LTIuNjk0LS4wNi04LjI5IDAtMTUuMDEgMS40NC0xNS4wMSAzLjgyNHY2LjcwM2MwIDEuNzk3IDYuNzIgMy4yNTMgMTUuMDEgMy4yNTNzMTUuMDEtMS40NTYgMTUuMDEtMy4yNTNsLS4wMDMtMy4yMjd6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQxX2xpbmVhcl85ODU5XzcyMzcpIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX3BhaW50MF9saW5lYXJfOTg1OV83MjM3IiB4MT0iMTYuODk3IiB5MT0iMjguNjEzIiB4Mj0iMTYuODk3IiB5Mj0iMS42IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzMyQkVERCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzUwRTZGRiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX3BhaW50MV9saW5lYXJfOTg1OV83MjM3IiB4MT0iMTUuNDkiIHkxPSI0MS45OCIgeDI9IjQ1LjUxIiB5Mj0iNDEuOTgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjQzc0NjM0Ii8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0RCODk3RCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0M3NDYzNCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjwvc3ZnPg==");
+}
+
+.azure-oracle-exadata-database, .azure-oracledatabase-exadata-infrastructure {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIwLjU0NyAyNS41N2M1LjU2MyAwIDEwLjM2Ni42NjMgMTIuOTYzIDEuODgzIDIuNjczLTEuNCA0LjU0LTQuMTMgNC42NTctNy4zNDNhOC41NzIgOC41NzIgMCAwMC03LjQ0NC04LjI0Yy0uMjU2LTUuOTEtNS4yMTYtMTAuNTE3LTExLjEzLTEwLjMzN0ExMS4wODQgMTEuMDg0IDAgMDA5IDguNzU3Yy01LjAyNy42MS04Ljg1IDQuOC05IDkuODU2LjE2NyA0LjI1NyAyLjg4MyA3LjggNi42MTcgOS4yNTQgMi4yMTYtMS40NTQgNy42MDYtMi4yOTcgMTMuOTMtMi4yOTd6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQwX2xpbmVhcl85ODU5Xzc3MDUpIi8+PHBhdGggZD0iTTU4LjI3IDIuMzlIMzEuNzQzYTEuNjUzIDEuNjUzIDAgMDAtMS43MyAxLjU2N3YyMy43NTZjMi41MDcuNTE3IDQuMDY0IDEuMTU3IDQuMDY0IDEuNjI3IDAgLjA2MyAxLjQ5My4yMjMgMS40OTMuMjIzdjE5LjAxaDIyLjdBMS42NTMgMS42NTMgMCAwMDYwIDQ3LjAwN1YzLjk1N2ExLjY1MyAxLjY1MyAwIDAwLTEuNzMtMS41Njd6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQxX2xpbmVhcl85ODU5Xzc3MDUpIi8+PHBhdGggZD0iTTM0LjQyMyAyMi4xNDdhMy40MzggMy40MzggMCAwMTMuMjYtMy41OTRoMTQuOTI0YTMuNDQgMy40NCAwIDAxMy4yNiAzLjU5NCAzLjQ0IDMuNDQgMCAwMS0zLjI2IDMuNTkzSDM3LjY4M2EzLjQzOCAzLjQzOCAwIDAxLTMuMjYtMy41OTN6TTM0LjQyMyAxMS40NjdhMy40MzggMy40MzggMCAwMTMuMjYtMy41OTRoMTQuOTI0YTMuNDQgMy40NCAwIDAxMy4yNiAzLjU5NCAzLjQ0IDMuNDQgMCAwMS0zLjI2IDMuNTkzSDM3LjY4M2EzLjQzOCAzLjQzOCAwIDAxLTMuMjYtMy41OTN6IiBmaWxsPSIjMDAzMDY3Ii8+PHBhdGggZD0iTTM4LjYxNyAxMy44NzdhMi40MSAyLjQxIDAgMTAwLTQuODIgMi40MSAyLjQxIDAgMDAwIDQuODJ6TTM4LjYxNyAyNC41NDdhMi40MSAyLjQxIDAgMTAwLTQuODIgMi40MSAyLjQxIDAgMDAwIDQuODJ6IiBmaWxsPSIjNTBFNkZGIi8+PHBhdGggZD0iTTQ5Ljk2NyA0Mi42NzNMNDYuNjYgMzcuN2wzLjI4LTQuOTNhMS4zNjQgMS4zNjQgMCAwMC0yLjI3LTEuNTFsLTIuNjQzIDMuOTc3LTIuNjQ0LTMuOTc3YTEuMzY0IDEuMzY0IDAgMDAtMi4yNyAxLjUxbDMuMjggNC45My0zLjMwNiA0Ljk3M2ExLjM2NCAxLjM2NCAwIDEwMi4yNyAxLjUwN2wyLjY3My00LjAyIDIuNjczIDQuMDJhMS4zNjEgMS4zNjEgMCAxMDIuMjctMS41MDdoLS4wMDZ6IiBmaWxsPSIjMDAzMDY3Ii8+PHBhdGggZD0iTTIwLjU0NyA1MC44ODdjLTguMyAwLTE1LjAyNy0xLjQ1Ny0xNS4wMjctMy4yNTd2Ny41ODNjMCAxLjggNi43MjcgMy4yNTcgMTUuMDI3IDMuMjU3IDguMyAwIDE1LjAyNi0xLjQ1NyAxNS4wMjYtMy4yNTdWNDcuNjNjMCAxLjgtNi43MjYgMy4yNTctMTUuMDI2IDMuMjU3em0xMi42NDMgMS41NDZhMjMuODIyIDIzLjgyMiAwIDAxLTcuNzggMS4zMS42MjYuNjI2IDAgMTEwLTEuMjUzYzEuMzYgMCAyLjcyNy0uMTI3IDQuMDYtLjM3IDEuMTItLjIwNyAyLjIzMy0uNSAzLjMxLS44N2EuNjI2LjYyNiAwIDExLjQxMyAxLjE4M2gtLjAwM3ptLTEyLjY0My0xMS4zYy04LjMgMC0xNS4wMjctMS40NTYtMTUuMDI3LTMuMjU2djcuOTg2YzAgMS44IDYuNzI3IDMuMjU3IDE1LjAyNyAzLjI1NyA4LjMgMCAxNS4wMjYtMS40NTcgMTUuMDI2LTMuMjU3di03Ljk4NmMwIDEuOC02LjcyNiAzLjI1Ni0xNS4wMjYgMy4yNTZ6bTEyLjY0MyAxLjgxYTIzLjgyMiAyMy44MjIgMCAwMS03Ljc4IDEuMzEuNjI2LjYyNiAwIDExMC0xLjI1MyAyMi42ODUgMjIuNjg1IDAgMDA3LjM3LTEuMjQuNjI2LjYyNiAwIDExLjQxMyAxLjE4M2gtLjAwM3ptLTEyLjY0My0xNy4zN2MtOC4zIDAtMTUuMDI3IDEuNDQ0LTE1LjAyNyAzLjgyN3Y2LjcxYzAgMS44IDYuNzI3IDMuMjU3IDE1LjAyNyAzLjI1NyA4LjMgMCAxNS4wMjYtMS40NTcgMTUuMDI2LTMuMjU3di02LjQ2M2MwLTIuNjMtNi43MjYtNC4wNzQtMTUuMDI2LTQuMDc0em0xMi42NDMgOC4xNTRhMjMuNzA3IDIzLjcwNyAwIDAxLTcuNzggMS4zMS42MjYuNjI2IDAgMTEwLTEuMjU0IDIyLjY3NiAyMi42NzYgMCAwMDcuMzctMS4yNC42MjYuNjI2IDAgMTEuNDEzIDEuMTgzaC0uMDAzek0yMC41NDcgMzEuNTFjLTcuNDc0IDAtMTMuNTM0LTEuMzYzLTEzLjUzNC0yLjE2NyAwLS45OSA2LjA2LTIuNTIgMTMuNTM0LTIuNTIgNy40NzMgMCAxMy41MzMgMS41OSAxMy41MzMgMi41MiAwIC44NDQtNi4wNiAyLjE2Ny0xMy41MzMgMi4xNjd6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fcGFpbnQyX2xpbmVhcl85ODU5Xzc3MDUpIi8+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX3BhaW50MF9saW5lYXJfOTg1OV83NzA1IiB4MT0iMTkuMDgzIiB5MT0iMjcuODY3IiB4Mj0iMTkuMDgzIiB5Mj0iMS41MyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMzMkJFREQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1MEU2RkYiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icHJlZml4X19wYWludDFfbGluZWFyXzk4NTlfNzcwNSIgeDE9IjQ1LjAwNyIgeTE9IjQ4LjU3NyIgeDI9IjQ1LjAwNyIgeTI9IjIuMzkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjOTc5Nzk3Ii8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjQjNCMkIzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQyX2xpbmVhcl85ODU5Xzc3MDUiIHgxPSI1LjUyIiB5MT0iNDIuMDIiIHgyPSIzNS41NyIgeTI9IjQyLjAyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0M3NDYzNCIvPjxzdG9wIG9mZnNldD0iLjUiIHN0b3AtY29sb3I9IiNEQjg5N0QiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNDNzQ2MzQiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=");
+}
+
+.azure-oracledatabase-cloud-vm-cluster {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjAiIGhlaWdodD0iNjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM5LjM3IDQ5LjcyOGMtMTEuMjM4IDAtMjAuMzQ4LTEuOTc1LTIwLjM0OC00LjQxMnYxMC4yNzJjMCAyLjQzNyA5LjExIDQuNDEyIDIwLjM0OCA0LjQxMnMyMC4zNDctMS45NzUgMjAuMzQ3LTQuNDEyVjQ1LjMxNmMwIDIuNDM3LTkuMTEgNC40MTItMjAuMzQ3IDQuNDEyem0xNy4xMiAyLjA5MmMtMS41MzcuNTMtMy4xMy45NS00LjczIDEuMjQ1YTMyLjM5OCAzMi4zOTggMCAwMS01LjgwNy41MjguODQ3Ljg0NyAwIDExMC0xLjY5MyAzMC41NDcgMzAuNTQ3IDAgMDA5Ljk4My0xLjY4Ljg1Ljg1IDAgMDExLjA4Mi41MjQuODQ3Ljg0NyAwIDAxLS41MjQgMS4wNzlsLS4wMDQtLjAwM3pNMzkuMzcgMzYuNTE4Yy0xMS4yMzggMC0yMC4zNDgtMS45NzUtMjAuMzQ4LTQuNDEydjEwLjgxNmMwIDIuNDM3IDkuMTEgNC40MSAyMC4zNDggNC40MXMyMC4zNDctMS45NzYgMjAuMzQ3LTQuNDEzVjMyLjEwM2MwIDIuNDM3LTkuMTEgNC40MTItMjAuMzQ3IDQuNDEydi4wMDN6bTE3LjEyIDIuNDVjLTEuNTQuNTMyLTMuMTMuOTUtNC43MyAxLjI0NWEzMi40MjYgMzIuNDI2IDAgMDEtNS44MDcuNTI4Ljg0Ny44NDcgMCAxMTAtMS42OTMgMzAuNTQ3IDMwLjU0NyAwIDAwOS45ODMtMS42OC44NS44NSAwIDAxMS4wODIuNTI1Ljg0My44NDMgMCAwMS0uNTI0IDEuMDc5bC0uMDA0LS4wMDR6bS0xNy4xMi0yMy41MmMtMTEuMjM4IDAtMjAuMzQ4IDEuOTUxLTIwLjM0OCA1LjE4MXY5LjA4N2MwIDIuNDM3IDkuMTEgNC40MDkgMjAuMzQ4IDQuNDA5czIwLjM0Ny0xLjk3NiAyMC4zNDctNC40MTJ2LTguNzU1YzAtMy41NjItOS4xMS01LjUxLTIwLjM0Ny01LjUxem0xNy4xMiAxMS4wMzhjLTEuNTQuNTMtMy4xMy45NS00LjczIDEuMjQ1YTMyLjM5OCAzMi4zOTggMCAwMS01LjgwNy41MjcuODQ3Ljg0NyAwIDExMC0xLjY5MyAzMC41NDcgMzAuNTQ3IDAgMDA5Ljk4My0xLjY4Ljg1Ljg1IDAgMDExLjA4Mi41MjUuODQ3Ljg0NyAwIDAxLS41MjQgMS4wOGwtLjAwNC0uMDA0ek0zOS4zNyAyMy40OGMtMTAuMTIzIDAtMTguMzI2LTEuODQyLTE4LjMyNi0yLjkzNCAwLTEuMzQyIDguMjAzLTMuNDEzIDE4LjMyNi0zLjQxMyAxMC4xMjIgMCAxOC4zMjUgMi4xNTQgMTguMzI1IDMuNDEzIDAgMS4xNDItOC4yMDMgMi45MzQtMTguMzI1IDIuOTM0eiIgZmlsbD0idXJsKCNwcmVmaXhfX3BhaW50MF9saW5lYXJfOTg1OV84NTExKSIvPjxwYXRoIGQ9Ik0xOS4wMjIgMjAuNTQzdi0uMTU2YzAtMy4wMSA3LjkyOC00LjkxIDE4LjExNy01LjE1Mi0xLjE3Mi0yLjYzLTMuNjI1LTQuNTc4LTYuNjI3LTQuOTc3QzMwLjI1NyA0LjM5MiAyNS4zMzctLjE3NiAxOS40NzEuMDA3QTExLjAwMSAxMS4wMDEgMCAwMDguOTYzIDcuMTcgMTAuMTQzIDEwLjE0MyAwIDAwLjA0IDE2Ljk0NWMuMjIzIDUuNjcgNC45OSAxMC4wODkgMTAuNjYgOS44ODYuMzE2IDAgLjYzOC0uMDEzLjkzNy0uMDRoNy4zODNsLjAwMy02LjI0OHoiIGZpbGw9InVybCgjcHJlZml4X19wYWludDFfbGluZWFyXzk4NTlfODUxMSkiLz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fcGFpbnQwX2xpbmVhcl85ODU5Xzg1MTEiIHgxPSIxOS4wMjIiIHkxPSIzNy43MjQiIHgyPSI1OS43MTciIHkyPSIzNy43MjQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBzdG9wLWNvbG9yPSIjQzc0NjM0Ii8+PHN0b3Agb2Zmc2V0PSIuNSIgc3RvcC1jb2xvcj0iI0RCODk3RCIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI0M3NDYzNCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX3BhaW50MV9saW5lYXJfOTg1OV84NTExIiB4MT0iMTguNTg3IiB5MT0iMjYuODM4IiB4Mj0iMTguNTg3IiB5Mj0iMCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiMzMkJFREQiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1MEU2RkYiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=");
+}
+
+.azure-resource-group {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PHBhdGggZD0iTS41IDE1LjA4YS4xNi4xNiAwIDAwLjA4LjE0bDEuMTYuNjVMMy43IDE3YS4xNy4xNyAwIDAwLjIzLS4wNmwuNjYtMS4xMmEuMTYuMTYgMCAwMC0uMDYtLjIxbC0yLjMtMS4zYS4xNy4xNyAwIDAxLS4wOC0uMTRWMy44NWEuMTYuMTYgMCAwMS4wOC0uMTRsMi4zLTEuM2EuMTYuMTYgMCAwMC4wNi0uMjFsLS42Ni0xLjEyQS4xNy4xNyAwIDAwMy43IDFMMS43OCAyLjExbC0xLjIuNjdhLjE2LjE2IDAgMDAtLjA4LjE0djEyLjE2eiIgZmlsbD0iIzk0OTQ5NCIvPjxwYXRoIGQ9Ik0yLjE0IDMuNzdsLjA2LS4wNiAyLjMtMS4zYS4xNC4xNCAwIDAwLjA2LS4yMUwzLjkgMS4wOEEuMTUuMTUgMCAwMDMuNjggMUwxLjc1IDIuMTFsLTEuMTkuNjdzLS4wNSAwLS4wNi4wNmwuOS41MXpNNC41IDE1LjU5bC0yLjMtMS4zYS4yMi4yMiAwIDAxLS4wNy0uMDlsLTEuNjIgMWguMDVsMS4xNS42NSAyIDEuMTFhLjE1LjE1IDAgMDAuMjItLjA2bC42Ni0xLjEyYS4xNC4xNCAwIDAwLS4wOS0uMTl6IiBmaWxsPSIjYTNhM2EzIi8+PHBhdGggZD0iTTE3LjUgMTUuMDhhLjE2LjE2IDAgMDEtLjA4LjE0bC0xLjE2LjY1TDE0LjMgMTdhLjE3LjE3IDAgMDEtLjIzLS4wNmwtLjY2LTEuMTJhLjE2LjE2IDAgMDEuMDYtLjIxbDIuMy0xLjNhLjE3LjE3IDAgMDAuMDgtLjE0VjMuODVhLjE2LjE2IDAgMDAtLjA4LS4xNGwtMi4zLTEuM2EuMTYuMTYgMCAwMS0uMDYtLjIxbC42Ni0xLjEyQS4xNy4xNyAwIDAxMTQuMyAxbDEuOTIgMS4wOSAxLjIuNjdhLjE2LjE2IDAgMDEuMDguMTR2MTIuMTh6IiBmaWxsPSIjOTQ5NDk0Ii8+PHBhdGggZD0iTTE1Ljg2IDMuNzdsLS4wNi0uMDYtMi4zLTEuM2EuMTQuMTQgMCAwMS0uMDYtLjIxbC42Ni0xLjEyYS4xNS4xNSAwIDAxLjIyLS4wOGwxLjkzIDEuMDkgMS4xOS42Ny4wNi4wNi0uOS41MXpNMTMuNSAxNS41OWwyLjMtMS4zYS4yMi4yMiAwIDAwLjA3LS4wOWwxLjYyIDEtMS4xNS42NS0yIDEuMTFhLjE1LjE1IDAgMDEtLjIyLS4wNmwtLjY2LTEuMTJhLjE0LjE0IDAgMDEuMDQtLjE5eiIgZmlsbD0iI2EzYTNhMyIvPjxwYXRoIGZpbGw9IiMzMmJlZGQiIGQ9Ik0xNC4zMSA1LjkzdjYuMTRsLTUuMzIgMy4wOVY5LjAxbDUuMzItMy4wOHoiLz48cGF0aCBmaWxsPSIjOWNlYmZmIiBkPSJNMTQuMzEgNS45M0w5IDkuMDIgMy42OCA1LjkzIDkgMi44NGw1LjMxIDMuMDl6Ii8+PHBhdGggZmlsbD0iIzUwZTZmZiIgZD0iTTguOTkgOS4wMnY2LjE0bC01LjMxLTMuMDlWNS45M2w1LjMxIDMuMDl6Ii8+PHBhdGggZmlsbD0iIzljZWJmZiIgZD0iTTMuNjggMTIuMDdsNS4zMS0zLjA2djYuMTVsLTUuMzEtMy4wOXoiLz48cGF0aCBmaWxsPSIjNTBlNmZmIiBkPSJNMTQuMzEgMTIuMDdMOC45OSA5LjAxdjYuMTVsNS4zMi0zLjA5eiIvPjwvc3ZnPg==");
+}
+
+.azure-subnet {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSI5LjAzMyIgeTE9IjEwLjMwNSIgeDI9IjkuMDMzIiB5Mj0iNy42OTUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM1ZTk2MjQiLz48c3RvcCBvZmZzZXQ9Ii4yNDEiIHN0b3AtY29sb3I9IiM2ZmIwMmEiLz48c3RvcCBvZmZzZXQ9Ii41MDEiIHN0b3AtY29sb3I9IiM3Y2M1MmYiLz48c3RvcCBvZmZzZXQ9Ii43NTYiIHN0b3AtY29sb3I9IiM4M2QyMzIiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4NmQ2MzMiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48cGF0aCBkPSJNOS4wMzEgNy43QTEuMzA1IDEuMzA1IDAgMTAxMC4zMzggOWExLjMwNSAxLjMwNSAwIDAwLTEuMzA3LTEuM3oiIGZpbGw9InVybCgjcHJlZml4X19hKSIvPjxwYXRoIGQ9Ik02LjM0IDEzLjM3NWwtLjYyNi42MjlhLjI4NC4yODQgMCAwMS0uNDAyIDBMLjY3MyA5LjM4YS41NjguNTY4IDAgMDEwLS44MDRsLjYyNi0uNjI5IDUuMDQgNS4wMjdhLjI4NC4yODQgMCAwMS4wMDIuNDAyeiIgZmlsbD0iIzUwZTZmZiIvPjxwYXRoIGQ9Ik01LjYyIDMuOTk2bC42MjcuNjI2YS4yODQuMjg0IDAgMDEwIC40MDJMMS4yOTUgOS45OWwtLjYyNi0uNjI0YS41NjguNTY4IDAgMDEwLS44MDNMNS4yMiAzLjk5OWEuMjg0LjI4NCAwIDAxLjQwMSAweiIgZmlsbD0iIzE0OTBkZiIvPjxwYXRoIGQ9Ik0xNi43MDIgNy45NDdsLjYyNy42MjlhLjU2OC41NjggMCAwMS0uMDAxLjgwM2wtNC42MzkgNC42MjZhLjI4NC4yODQgMCAwMS0uNDAyIDBsLS42MjctLjYzYS4yODQuMjg0IDAgMDEuMDAxLS40MDFsNS4wNDEtNS4wMjd6IiBmaWxsPSIjNTBlNmZmIi8+PHBhdGggZD0iTTE3LjMzMyA5LjM2NGwtLjYyOS42MjctNC45NTMtNC45NjdhLjI4NC4yODQgMCAwMTAtLjQwMmwuNjI4LS42MjZhLjI4NC4yODQgMCAwMS40MDIgMGw0LjU1MiA0LjU2NmEuNTY4LjU2OCAwIDAxMCAuODAzeiIgZmlsbD0iIzE0OTBkZiIvPjwvc3ZnPg==");
+}
+
+.azure-sql-database {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJwcmVmaXhfX2IiIGN4PSI5LjM2IiBjeT0iMTAuNTciIHI9IjcuMDciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNmMmYyZjIiLz48c3RvcCBvZmZzZXQ9Ii41OCIgc3RvcC1jb2xvcj0iI2VlZSIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2U2ZTZlNiIvPjwvcmFkaWFsR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSIyLjU5IiB5MT0iMTAuMTYiIHgyPSIxNS40MSIgeTI9IjEwLjE2IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMDA1YmExIi8+PHN0b3Agb2Zmc2V0PSIuMDciIHN0b3AtY29sb3I9IiMwMDYwYTkiLz48c3RvcCBvZmZzZXQ9Ii4zNiIgc3RvcC1jb2xvcj0iIzAwNzFjOCIvPjxzdG9wIG9mZnNldD0iLjUyIiBzdG9wLWNvbG9yPSIjMDA3OGQ0Ii8+PHN0b3Agb2Zmc2V0PSIuNjQiIHN0b3AtY29sb3I9IiMwMDc0Y2QiLz48c3RvcCBvZmZzZXQ9Ii44MiIgc3RvcC1jb2xvcj0iIzAwNmFiYiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzAwNWJhMSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik05IDUuMTRjLTMuNTQgMC02LjQxLTEtNi40MS0yLjMydjEyLjM2YzAgMS4yNyAyLjgyIDIuMyA2LjMyIDIuMzJIOWMzLjU0IDAgNi40MS0xIDYuNDEtMi4zMlYyLjgyYzAgMS4yOS0yLjg3IDIuMzItNi40MSAyLjMyeiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIi8+PHBhdGggZD0iTTE1LjQxIDIuODJjMCAxLjI5LTIuODcgMi4zMi02LjQxIDIuMzJzLTYuNDEtMS02LjQxLTIuMzJTNS40Ni41IDkgLjVzNi40MSAxIDYuNDEgMi4zMiIgZmlsbD0iI2U4ZThlOCIvPjxwYXRoIGQ9Ik0xMy45MiAyLjYzYzAgLjgyLTIuMjEgMS40OC00LjkyIDEuNDhzLTQuOTItLjY2LTQuOTItMS40OFM2LjI5IDEuMTYgOSAxLjE2czQuOTIuNjYgNC45MiAxLjQ3IiBmaWxsPSIjNTBlNmZmIi8+PHBhdGggZD0iTTkgM2ExMS41NSAxMS41NSAwIDAwLTMuODkuNTdBMTEuNDIgMTEuNDIgMCAwMDkgNC4xMWExMS4xNSAxMS4xNSAwIDAwMy44OS0uNThBMTEuODQgMTEuODQgMCAwMDkgM3oiIGZpbGw9IiMxOThhYjMiLz48cGF0aCBkPSJNMTIuOSAxMS40VjhIMTJ2NC4xM2gyLjQ2di0uNzN6TTUuNzYgOS43M2ExLjgzIDEuODMgMCAwMS0uNTEtLjMxLjQ0LjQ0IDAgMDEtLjEyLS4zMi4zNC4zNCAwIDAxLjE1LS4zLjY4LjY4IDAgMDEuNDItLjEyIDEuNjIgMS42MiAwIDAxMSAuMjl2LS44NmEyLjU4IDIuNTggMCAwMC0xLS4xNiAxLjY0IDEuNjQgMCAwMC0xLjA5LjM0IDEuMDggMS4wOCAwIDAwLS40Mi44OWMwIC41MS4zMi45MSAxIDEuMjFhMi44OCAyLjg4IDAgMDEuNjIuMzYuNDIuNDIgMCAwMS4xNS4zMi4zOC4zOCAwIDAxLS4xNi4zMS44MS44MSAwIDAxLS40NS4xMSAxLjY2IDEuNjYgMCAwMS0xLjA5LS40MlYxMmEyLjE3IDIuMTcgMCAwMDEuMDcuMjQgMS44OCAxLjg4IDAgMDAxLjE4LS4zMyAxLjA4IDEuMDggMCAwMC4zMy0uOTEgMS4wNSAxLjA1IDAgMDAtLjI1LS43IDIuNDIgMi40MiAwIDAwLS44My0uNTd6TTExIDExLjMyYTIuMzQgMi4zNCAwIDAwLjMzLTEuMjZBMi4zMiAyLjMyIDAgMDAxMSA5YTEuODEgMS44MSAwIDAwLS43LS43NSAyIDIgMCAwMC0xLS4yNiAyLjExIDIuMTEgMCAwMC0xLjA4LjI3IDEuODYgMS44NiAwIDAwLS43My43NCAyLjQ2IDIuNDYgMCAwMC0uMjYgMS4xNCAyLjI2IDIuMjYgMCAwMC4yNCAxIDEuNzYgMS43NiAwIDAwLjY5Ljc0IDIuMDYgMi4wNiAwIDAwMSAuM2wuODYgMWgxLjIxTDEwIDEyLjA4YTEuNzkgMS43OSAwIDAwMS0uNzZ6bS0xLS4yNWEuOTQuOTQgMCAwMS0uNzYuMzUuOTIuOTIgMCAwMS0uNzYtLjM2IDEuNTIgMS41MiAwIDAxLS4yOS0xIDEuNTMgMS41MyAwIDAxLjI5LTEgMSAxIDAgMDEuNzgtLjM3Ljg3Ljg3IDAgMDEuNzUuMzcgMS42MiAxLjYyIDAgMDEuMjcgMSAxLjQ2IDEuNDYgMCAwMS0uMjggMS4wMXoiIGZpbGw9InVybCgjcHJlZml4X19iKSIvPjwvc3ZnPg==");
+}
+
+.azure-subscriptions {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PHJhZGlhbEdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIGN4PSItMzYuNjMiIGN5PSIxNy4xMiIgcj0iMTEuMTgiIGdyYWRpZW50VHJhbnNmb3JtPSJtYXRyaXgoLjk0IDAgMCAuOTQgNDEuODggLTcuNCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9Ii4yNyIgc3RvcC1jb2xvcj0iI2ZmZDcwZiIvPjxzdG9wIG9mZnNldD0iLjQ5IiBzdG9wLWNvbG9yPSIjZmZjYjEyIi8+PHN0b3Agb2Zmc2V0PSIuODgiIHN0b3AtY29sb3I9IiNmZWFjMTkiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZWExMWIiLz48L3JhZGlhbEdyYWRpZW50PjwvZGVmcz48cGF0aCBkPSJNMTMuNTYgNy4xOWEyLjA3IDIuMDcgMCAwMDAtMi45M0wxMCAuNjlhMi4wNiAyLjA2IDAgMDAtMi45MiAwTDMuNTIgNC4yNmEyLjA5IDIuMDkgMCAwMDAgMi45M2wzIDNhLjYxLjYxIDAgMDEuMTcuNDF2NS41MmEuNy43IDAgMDAuMi41bDEuMzUgMS4zNWEuNDUuNDUgMCAwMC42NiAwbDEuMzEtMS4zMS43Ny0uNzdhLjI2LjI2IDAgMDAwLS4zOGwtLjU1LS41NmEuMjkuMjkgMCAwMTAtLjQybC41NS0uNTZhLjI2LjI2IDAgMDAwLS4zOEwxMC40IDEzYS4yOC4yOCAwIDAxMC0uNDFMMTEgMTJhLjI2LjI2IDAgMDAwLS4zOGwtLjc3LS43OHYtLjI4em0tNS01LjY0YTEuMTggMS4xOCAwIDExLTEuMTkgMS4xOCAxLjE3IDEuMTcgMCAwMTEuMTctMS4xOHoiIGZpbGw9InVybCgjcHJlZml4X19hKSIvPjxwYXRoIGQ9Ik03LjYyIDE2LjIxQS4yNS4yNSAwIDAwOCAxNnYtNC40NWEuMjcuMjcgMCAwMC0uMTEtLjIyLjI1LjI1IDAgMDAtLjM5LjIyVjE2YS4yNy4yNyAwIDAwLjEyLjIxeiIgZmlsbD0iI2ZmOTMwMCIgb3BhY2l0eT0iLjc1Ii8+PHJlY3QgeD0iNS42OSIgeT0iNS40NSIgd2lkdGg9IjUuODYiIGhlaWdodD0iLjY5IiByeD0iLjMyIiBmaWxsPSIjZmY5MzAwIiBvcGFjaXR5PSIuNzUiLz48cmVjdCB4PSI1LjY5IiB5PSI2LjU3IiB3aWR0aD0iNS44NiIgaGVpZ2h0PSIuNjkiIHJ4PSIuMzIiIGZpbGw9IiNmZjkzMDAiIG9wYWNpdHk9Ii43NSIvPjwvc3ZnPg==");
+}
+
+.azure-virtual-network, .azure-vcn {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCI+PGRlZnM+PGxpbmVhckdyYWRpZW50IGlkPSJwcmVmaXhfX2EiIHgxPSI5Ljg4IiB5MT0iOC41OSIgeDI9IjExLjUyIiB5Mj0iMTAuMjMiIGdyYWRpZW50VHJhbnNmb3JtPSJyb3RhdGUoLS4wOCAtMjg1LjQ2NCAtMTQ1NC4wOCkiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM4NmQ2MzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1ZTk2MjQiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icHJlZml4X19iIiB4MT0iNi4xOCIgeTE9IjguNTkiIHgyPSI3LjgxIiB5Mj0iMTAuMjMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM4NmQ2MzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1ZTk2MjQiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icHJlZml4X19jIiB4MT0iMi40OCIgeTE9IjguNTkiIHgyPSI0LjExIiB5Mj0iMTAuMjMiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM4NmQ2MzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM1ZTk2MjQiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48Y2lyY2xlIGN4PSIxMi43NCIgY3k9IjguOTkiIHI9IjEuMTYiIGZpbGw9InVybCgjcHJlZml4X19hKSIvPjxjaXJjbGUgY3g9IjkuMDQiIGN5PSI5IiByPSIxLjE2IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYikiLz48Y2lyY2xlIGN4PSI1LjM0IiBjeT0iOSIgcj0iMS4xNiIgZmlsbD0idXJsKCNwcmVmaXhfX2MpIi8+PHBhdGggZD0iTTYuMTgyIDEzLjYzOGwtLjY2NC42NjVhLjMuMyAwIDAxLS40MjQgMEwuMTggOS40MDRhLjYuNiAwIDAxLS4wMDEtLjg0OGwuNjYzLS42NjYgNS4zNCA1LjMyNGEuMy4zIDAgMDEwIC40MjV6IiBmaWxsPSIjNTBlNmZmIi8+PHBhdGggZD0iTTUuNDE4IDMuNzA4bC42NjYuNjY0YS4zLjMgMCAwMTAgLjQyNEwuODM4IDEwLjA1N2wtLjY2Ni0uNjYzYS42LjYgMCAwMS0uMDAxLS44NDlMNC45OTQgMy43MWEuMy4zIDAgMDEuNDI0IDB6IiBmaWxsPSIjMTQ5MGRmIi8+PHBhdGggZD0iTTE3LjE1NyA3Ljg4bC42NjMuNjY2YS42LjYgMCAwMTAgLjg0OGwtNC45MTUgNC45YS4zLjMgMCAwMS0uNDI0IDBsLS42NjQtLjY2NmEuMy4zIDAgMDEwLS40MjRsNS4zNC01LjMyNHoiIGZpbGw9IiM1MGU2ZmYiLz48cGF0aCBkPSJNMTcuODE4IDkuMzg3bC0uNjY1LjY2NC01LjI0Ny01LjI2MWEuMy4zIDAgMDEwLS40MjVsLjY3NC0uNjdhLjMuMyAwIDAxLjQyNCAwbDQuODIzIDQuODM2YS42LjYgMCAwMS0uMDAyLjg0OXoiIGZpbGw9IiMxNDkwZGYiLz48L3N2Zz4=");
+}
+`,
+
+ 'general-theme.css': String.raw`/* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. */
+/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. */
+
+/*
+** Resources
+*/
+.general-rectangle {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjAgMCA0MCAzMCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgZD0iTTIgNWgzNnYyMEgyeiIvPjwvc3ZnPg==");
+}
+
+`,
+
+ 'google-theme.css': String.raw`/* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. */
+/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. */
+
+/*
+** Groups
+*/
+.google-cloud {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCA3NCA1NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2MS4yOTUiIHkxPSIxMC45OTgiIHgyPSIuOTkzIiB5Mj0iNTMuNzY3Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM2ODk5ZDEiLz48c3RvcCBvZmZzZXQ9Ii43MjIiIHN0b3AtY29sb3I9IiNiN2Q1NTMiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icHJlZml4X19iIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjYyLjYyNiIgeTE9IjEyLjg3NSIgeDI9IjU5LjU2MiIgeTI9IjE1LjA0google+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNjg5OWQxIi8+PHN0b3Agb2Zmc2V0PSIuNzIyIiBzdG9wLWNvbG9yPSIjYjdkNTUzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2Mi44OTgiIHkxPSIxMy4yNTgiIHgyPSIyLjU5NiIgeTI9IjU2LjAyNiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNjg5OWQxIi8+PHN0b3Agb2Zmc2V0PSIuNzIyIiBzdG9wLWNvbG9yPSIjYjdkNTUzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fZCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMC44MzIiIHkxPSIyMy40MjEiIHgyPSIxMC4yNTgiIHkyPSIyMy44MjgiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzY4OTlkMSIvPjxzdG9wIG9mZnNldD0iLjcyMiIgc3RvcC1jb2xvcj0iI2I3ZDU1MyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik00NC4zOCAyOC42NWwuMDQuMTJjLjAxLjAzLjAyLjA3LjA0LjExbC4xNy4zLS4xMy4yNi4xOS0uMTcuMjQuMTljLjA1LjAyLjA2LjAzLjA3LjAzbC4wNi4wMi40LjAzaC4xNmMuMDYgMCAuMTItLjAxLjE3LS4wMi4wNy0uMDEuMTMtLjAzLjE5LS4wNi4xMi0uMDUuMi0uMTIuMjgtLjIyTDYzLjEzIDcuNDFsLjQ3IDIuNDgtLjI0LjE0LjI1LS4wNSAyLjA0IDEzLjVjLjAyLjAzLjAzLjA1LjA1LjA3bC4wNi4wNi4wNi4wNi4xLjA0Yy4wMy4wMS4wNi4wMi4xLjAzLjA3LjAyLjEuMDMuMTIuMDNoLjRsLjEzLS4wNGMuMDgtLjAyLjE1LS4wMy4yMi0uMDYuMjgtLjExLjQ3LS4yOS41My0uNTIuMDItLjA2LjAzLS4xMS4wMy0uMTZsLjAyLS4wOS0uMDEtLjI3LS4wOC0xLjIuMjUtLjEtLjI2LjAzLTIuMTYtMTcuNTdjLS4wMi0uMDMtLjAzLS4wNS0uMDUtLjA3YS40MzUuNDM1IDAgMDEtLjA2LS4wN2wtLjEtLjFhLjU3Mi41NzIgMCAwMC0uMDgtLjA3bC4xMS0uMjUtLjE2LjItLjI0LS4xNmMtLjA0LS4wMi0uMDctLjA0LS4xMS0uMDUtLjA0LS4wMi0uMDctLjAzLS4xMS0uMDUtLjA0LS4wMS0uMDctLjAzLS4xLS4wM0w0OC40MyA1LjIxbC0uMS0uMjUuMDMuMjYtMy4xNy41OGMtLjI3LjA2LS4zOS4zMS0uNDQuNDYtLjAzLjA4LS4wNS4xNC0uMDYuMjF2LjE2YzAgLjA5LS4wMS4xMiAwIC4xNnYuMDdsLjAxLjA1Yy4wMS4wNy4wMi4xMi4wMy4xNi4wMS4wNC4wMi4wOC4wNC4xMi4wMS4wMy4wMi4wNy4wNC4xcy4wMy4wNy4wNS4xYy4wMi4wMy4wNC4wNS4wNi4wOC4wMi4wMy4wNC4wNS4wNi4wNy4wMi4wMi4wNS4wNC4wNy4wNS4wMy4wMi4wNi4wMy4wOS4wNC4wNC4wMi4wNy4wMy4xLjAzLjA0LjAxLjA4LjAxLjEzLjAxbC4wMi4yNi4wNS0uMjUgMS41My0uMDkuMDguMjUuMDEtLjI2IDcuNTktLjg5LjEzLjI1LS4wMy0uMjYgNi42NC0uNjUtMTYuNyAyMS41OWMtLjA4LjExLS4xNS4yMi0uMjEuMzQtLjA0LjA4LS4wNy4xNi0uMDguMjNhLjg4Ljg4IDAgMDAtLjAxLjMxYy0uMDIuMDctLjAxLjExLS4wMS4xNXoiIGZpbGw9InVybCgjcHJlZml4X19hKSIvPjxwYXRoIGQ9Ik03MS4xNCAzOC4xbC0uMDEtLjE3YzAtLjEzLS4wMS0uMjYtLjAxLS4zOXYtLjE3YzAtLjA3IDAtLjE0LS4wMS0uMjIgMC0uMDctLjAxLS4xNC0uMDItLjIxbC0uMDItLjE2LS4wMy0uMjktLjAyLS4yYy0uMDEtLjA4LS4wMS0uMTYtLjAyLS4yNGwtLjA1LS4zNWMtLjAxLS4xLS4wMy0uMTktLjA1LS4yOWwtLjAzLS4xOS0uMDMtLjJjLS4wMi0uMDctLjAzLS4xNC0uMDUtLjJsLS4wMy0uMTJjLS4wMy0uMS0uMDUtLjIxLS4wOC0uMzFsLS4wNC0uMTRjLS4wMS0uMDYtLjAzLS4xMi0uMDUtLjE4bC0uMDYtLjE1LS4wNS0uMTRjLS4wMy0uMS0uMDctLjE5LS4xLS4yOWwtLjA0LS4xMmEuODY1Ljg2NSAwIDAwLS4wNy0uMTdjLS4wMi0uMDUtLjA1LS4xMS0uMDgtLjE2bC0uMDUtLjFjLS4wNC0uMDktLjA4LS4xOC0uMTMtLjI3bC0uMDYtLjEyYy0uMDItLjA1LS4wNS0uMS0uMDctLjE1LS4wMy0uMDUtLjA1LS4xLS4wOC0uMTVsLS4wNi0uMTFjLS4wNS0uMDgtLjA5LS4xNy0uMTQtLjI1bC0uMDctLjEyYy0uMDMtLjA1LS4wNS0uMDktLjA4LS4xNGwtLjE2LS4yNGMtLjA1LS4wOC0uMS0uMTYtLjE2LS4yNGwtLjA3LS4xMWMtLjAzLS4wNC0uMDYtLjA5LS4wOS0uMTNsLS43LS44OWMtLjA1LS4wNi0uMS0uMTItLjE1LS4xN2wtLjM0LS4zOS4xMi0uMjUtLjE5LjE3Yy0uMDUtLjA2LS4xMS0uMTItLjE3LS4xN2wtLjQzLS40MmMtLjA0LS4wNC0uMDgtLjA3LS4xMi0uMTFsLS4wOS0uMDhjLS4wNy0uMDYtLjE0LS4xMy0uMjEtLjE5bC0uMDgtLjA3Yy0uMDQtLjA0LS4wOS0uMDgtLjEzLS4xMmwtLjExLS4xYy0uMDMtLjAzLS4wNy0uMDYtLjEtLjA5LS4wNC0uMDItLjEyLS4wNC0uMjEtLjA3LS4xLS4wMy0uMTktLjA2LS4yOS0uMDdsLS4wNy0uMDJjLS4wMi0uMDEtLjA0LS4wMS0uMDYtLjAxLS4wNi0uMDEtLjA5IDAtLjEzIDAtLjIyLjAxLS4zNi4wNC0uNDguMDlhLjg0OC44NDggMCAwMC0uNDcuNDdjLS4wNS4xMS0uMDcuMjQtLjA3LjQgMCAuMTEuMDEuMjEuMDQuMzEuMDIuMDkuMDUuMTcuMDkuMjYuMDMuMDguMDguMTYuMTIuMjQuMDQuMDcuMDkuMTQuMTUuMjFhMy4zMiAzLjMyIDAgMDAuMzYuMzdjLjA2LjA1LjEuMDkuMTMuMTNsLjU4LjU3Yy4wNS4wNC4wOS4wOS4xMy4xMy4wNC4wNC4wOC4wOS4xMi4xNGwuMDcuMDljLjA3LjA3LjEzLjE1LjE5LjIzbC4wNy4wOWMuMDQuMDUuMDguMDkuMTIuMTRsLjA0LjA1Yy4wNS4wNi4xLjEyLjE0LjE4LjA0LjA1LjA3LjEuMTEuMTVsLjA2LjA5Yy4wNi4wOC4xMi4xNi4xNy4yNWwuMDcuMWMuMDQuMDUuMDcuMS4xLjE1LjAzLjA2LjA3LjExLjEuMTdsLjA1LjA5Yy4wNC4wNy4wNy4xMy4xMS4ybC4wNy4xM2MuMDQuMDcuMDguMTQuMTEuMjFsLjA1LjA5Yy4wMy4wNi4wNy4xMy4wOS4xOS4wMy4wNi4wNS4xMi4wOC4xOGwuMDUuMTEuMTIuMy4wNS4xMWMuMDMuMDYuMDUuMTIuMDcuMThsLjA2LjIuMDQuMTNjLjAzLjA5LjA1LjE5LjA4LjI4bC4wNS4xNy4wNi4yYy4wMi4wNy4wMy4xNS4wNC4yMmwuMDIuMTNjLjAyLjA5LjAzLjE4LjA1LjI3bC4wNC4yMmMuMDEuMDcuMDMuMTUuMDMuMjMuMDEuMDkuMDIuMTkuMDIuMjlsLjAxLjFjLjAxLjEuMDEuMi4wMi4zMWwuMDEuMjNjLjAxLjA4LjAxLjE3LjAxLjI2di4wOGMwIC4wNyAwIC4xNC0uMDEuMjJsLS4wMS4xMmMtLjAxLjE4LS4wMS4zMS0uMDIuNDNsLS4wMy4zNi0uMDIuMTlhNS44NTIgNS44NTIgMCAwMS0uMTEuNzhsLS4wMi4wOWMtLjA0LjIxLS4wNi4zNi0uMS41Mi0uMDUuMTktLjEuMzktLjE2LjU4LS4wNy4yMi0uMTQuNDMtLjIyLjY0LS4xLjI2LS4yMS41MS0uMzQuNzYtLjIuMzktLjQuNzQtLjYzIDEuMDUtLjIyLjMxLS40NC41OC0uNjcuODItLjM1LjM4LS43Ni43NC0xLjI1IDEuMWExMC4xNCAxMC4xNCAwIDAxLTIuMDMgMS4yYy0uMjMuMTEtLjQ4LjIxLS43Mi4zLS4yNS4xLS40Ni4xOC0uNjcuMjVsLS4wOS4wM2MtLjA0LjAyLS4wOC4wMy0uMTIuMDUtLjA4LjAzLS4xNi4wNC0uMjMuMDYtLjA1LjAxLS4xLjAyLS4xNS4wNC0uMTkuMDUtLjM3LjEtLjU2LjE0LS4wNy4wMi0uMTQuMDMtLjIxLjA1YTMuNTg5IDMuNTg5IDAgMDEtLjY2LjEybC0uMTguMDJjLS4xNi4wMi0uMzIuMDUtLjQ4LjA3bC0uMTkuMDNjLS4xLjAxLS4xOS4wMy0uMjkuMDQtLjA5LjAxLS4xNy4wMS0uMjYuMDJsLS44LjA1Yy0uMDguMDEtLjE3LjAxLS4yNS4wMS0uMTQuMDEtLjI4LjAxLS40Mi4wMWwtMjAuNTMuMDF2LjEzbC0yMS4zMi0uMTRjLS4xMiAwLS4yMy0uMDEtLjM1LS4wMWwtLjE0LS4wMmMtLjA4IDAtLjE3IDAtLjI1LS4wMWwtLjIzLS4wMy0uMTQtLjAyYy0uMTMtLjAyLS4yNS0uMDMtLjM3LS4wNS0uMTItLjAyLS4yNC0uMDMtLjM2LS4wNi0uMDgtLjAyLS4xNy0uMDMtLjI1LS4wNWwtLjIyLS4wNWMtLjA3LS4wMS0uMTUtLjAzLS4yMi0uMDUtLjEtLjAzLS4yLS4wNi0uMy0uMDhsLS4zMy0uMS0uMTEtLjAzYy0uMDctLjAyLS4xNS0uMDQtLjIyLS4wNy0uMDYtLjAyLS4xMy0uMDUtLjE5LS4wN2wtLjExLS4wMy0uMy0uMTItLjEyLS4wNWMtLjA2LS4wMi0uMTItLjA0LS4xOC0uMDdzLS4xMS0uMDUtLjE3LS4wOGwtLjQ5LS4yNC0uMTgtLjA5Yy0uMDYtLjAzLS4xMS0uMDYtLjE3LS4wOWwtLjEtLjA2Yy0uMDktLjA1LS4xOC0uMS0uMjYtLjE1bC0uMDktLjA1Yy0uMDYtLjAzLS4xMi0uMDYtLjE3LS4xbC0uMjUtLjE2Yy0uMDgtLjA1LS4xNy0uMTEtLjI1LS4xNmwtLjA5LS4wNmMtLjA1LS4wMy0uMTEtLjA3LS4xNi0uMWwtLjA4LS4wNmMtLjAzLS4wMi0uMDYtLjA1LS4xLS4wOGwtLjA2LS4wNS0uMTUtLjEyLS4wOS0uMDdhMi44IDIuOCAwIDAxLS4yLS4xNmwtLjEyLS4xYy0uMDUtLjA0LS4xLS4wNy0uMTQtLjExbC0uMDgtLjA1Yy0uMDUtLjA0LS4xLS4wNy0uMTQtLjEyLS4wNC0uMDQtLjA4LS4wOC0uMTMtLjEybC0uMDgtLjA4Yy0uMDUtLjA0LS4wOS0uMDktLjEzLS4xM2wtLjA4LS4wOC0uMjEtLjIxLS4wOC0uMDhjLS4wNC0uMDQtLjA4LS4wOC0uMTItLjEzbC0uMDgtLjA4Yy0uMDQtLjA0LS4wOC0uMDktLjEyLS4xMy0uMDQtLjA1LS4wOC0uMDktLjExLS4xNGwtLjA3LS4wOWMtLjA1LS4wNi0uMDktLjExLS4xMy0uMTdsLS4zLS4zOS0uMTEtLjE0Yy0uMDQtLjA1LS4wNy0uMTEtLjEtLjE2bC0uMDYtLjA5Yy0uMDQtLjA1LS4wNy0uMTEtLjEtLjE2bC0uMDYtLjFjLS4wNS0uMDgtLjEtLjE3LS4xNi0uMjZsLS4wNi0uMWMtLjAzLS4wNS0uMDYtLjEtLjA5LS4xNmwtLjA0LS4wOGMtLjAzLS4wNi0uMDctLjEzLS4xLS4xOXMtLjA1LS4xMS0uMDgtLjE3bC0uMjMtLjUxYy0uMDMtLjA2LS4wNi0uMTItLjA4LS4xOGwtLjA1LS4xMmMtLjAzLS4wNi0uMDUtLjEyLS4wNy0uMTgtLjAyLS4wNi0uMDQtLjEzLS4wNi0uMTlMNCA0MC4xNmMtLjAzLS4wOC0uMDUtLjE2LS4wOC0uMjRsLS4wNi0uMTdjLS4wMi0uMDctLjA1LS4xNC0uMDctLjJsLS4wNC0uMTJjLS4wMi0uMDYtLjA0LS4xMy0uMDYtLjE5LS4wMi0uMDctLjAzLS4xNC0uMDUtLjIxbC0uMDMtLjEzYy0uMDItLjA5LS4wNC0uMTktLjA3LS4yOGwtLjA0LS4xN2MtLjAyLS4wNy0uMDMtLjE0LS4wNS0uMjJsLS4wMy0uMTNjLS4wMi0uMDctLjAzLS4xNC0uMDQtLjIybC0uMDMtLjIyLS4wMi0uMTVjLS4wMi0uMTItLjAzLS4yMy0uMDUtLjM1bC0uMDItLjE1LS4wMy0uMjMtLjAxLS4wOGMtLjAxLS4wNC0uMDEtLjA5LS4wMi0uMTMgMC0uMDMgMC0uMDctLjAxLS4xMS0uMDEtLjE0LS4wMS0uMjItLjAxLS4zTDMuMTcgMzZjLS4wMS0uMTMtLjAxLS4yNi0uMDItLjRsLS4wMS0uMTVjLS4wMS0uMDgtLjAxLS4xNi0uMDEtLjI0di0uNDFjMC0uMDkuMDEtLjE4LjAyLS4yN2wuMDEtLjE3LjAzLS40NC4wMS0uMTdjLjAxLS4wOS4wMS0uMTguMDItLjI3LjAxLS4xMS4wMy0uMjMuMDUtLjM0bC4wMy0uMTVjLjAyLS4xMy4wNS0uMjUuMDctLjM4bC4wNi0uMzJjLjAyLS4xMS4wNC0uMjIuMDctLjMzLjA0LS4xNy4wOS0uMzMuMTQtLjVsLjAyLS4wOGMuMDYtLjIuMTMtLjQuMi0uNjEuMDMtLjA5LjA1LS4xNi4wOC0uMjMuMDYtLjEyLjA5LS4yNC4xNC0uMzVsLjAzLS4wNmMuMTEtLjI3LjI0LS41Mi4zNi0uNzcuMTUtLjMuMzEtLjYuNS0uOTIuMy0uNS41OS0uOTIuODgtMS4yOS42LS43NiAxLjMyLTEuNDggMi4xNC0yLjE0LjUxLS40MS45OS0uNzYgMS40Ni0xLjA1LjMxLS4yLjY0LS4zOC45Ny0uNTZsLjA5LS4wNWMuMTUtLjA4LjMxLS4xNS40Ny0uMjJsLjQ0LS4yYy4xOC0uMDguMzUtLjE3LjUzLS4yNC4xNS0uMDYuMzEtLjEyLjQ2LS4xN2wuNDItLjE1Yy4xNC0uMDUuMjktLjExLjQzLS4xNmwuMTYuMjItLjA5LS4yNGMuNTYtLjIuODYtLjUxIDEuMDEtMS4wNWwuMDMtLjA5Yy4wMi0uMDYuMDQtLjEzLjA1LS4ybC4yOS0yLjA5LjA2LS4zMy4wNi0uMzNjLjAyLS4xMi4wNC0uMjMuMDYtLjM0LjAzLS4xMy4wNy0uMjcuMS0uNGwuMDgtLjMyYy4wMi0uMS4wNS0uMi4wOC0uMjlsLjAzLS4wOWMuMDctLjIuMTItLjMzLjE3LS40N2wuMTUtLjRjLjA2LS4xNy4xMi0uMzQuMTktLjUuMS0uMjUuMjEtLjUuMzMtLjc0LjEzLS4yOC4yNy0uNTYuNDItLjgzLjE3LS4zMi4zNi0uNjQuNjEtMS4wMi4zOS0uNjEuODQtMS4xOSAxLjMxLTEuNzMuMzEtLjM1LjY1LS42OSAxLTEgLjUxLS40NiAxLjA3LS44OCAxLjY3LTEuMjUuMzYtLjIyLjY2LS40MS45OS0uNTcuMjMtLjEyLjQ3LS4yMi43MS0uMzJsLjI3LS4xMmE0Ljk0IDQuOTQgMCAwMS44Ny0uMzJjLjA4LS4wMi4xNS0uMDQuMjMtLjA3LjE5LS4wNi4zOS0uMTIuNTktLjE4LjA4LS4wMi4xNS0uMDUuMjMtLjA3YTQuNTcgNC41NyAwIDAxLjcyLS4xN2wuMzEtLjA2Yy4xMi0uMDIuMjQtLjA1LjM2LS4wNy4xMS0uMDIuMjItLjAzLjMzLS4wNWwuMjktLjA0Yy4xMS0uMDIuMjMtLjAzLjM0LS4wNWwuMzEtLjAzLjI4LS4wMi4zMi0uMDNjLjExLS4wMS4yMS0uMDEuMzItLjAxaC4xMWMuMTgtLjAxLjM3LS4wMS41NS0uMDFoLjI4Yy4xMyAwIC4yNy4wMS40LjAybC4xNC4wMWMuMDggMCAuMTcuMDEuMjUuMDEuMDguMDEuMTYuMDIuMjQuMDJsLjIyLjAyLjI5LjAzYy4xMi4wMS4yNC4wMy4zNi4wNS4wOS4wMS4xOS4wMy4yOC4wNWwuMi4wM2MuMDcuMDEuMTUuMDIuMjIuMDQuMDcuMDEuMTQuMDMuMjEuMDVsLjEyLjAzYy4xMS4wMy4yMi4wNS4zMy4wOGwuMTEuMDMuMjIuMDYuMi4wNi4xMS4wNGMuMTQuMDQuMjMuMDcuMzEuMS4xMy4wNC4yMi4wNy4zMS4xMS4wNi4wMi4xMi4wNS4xOS4wN2wuMTguMDdjLjA3LjAzLjE1LjA2LjIyLjA5LjEzLjA1LjIxLjA5LjI5LjEzLjA2LjAzLjEzLjA2LjE5LjA5bC4wOS4wNGMuMTMuMDYuMi4xLjI4LjE0bC4yNy4xNGMuMDUuMDMuMTEuMDYuMTYuMDlsLjQ2LjI3Yy4wNS4wMy4xMS4wNi4xNi4xLjA1LjAzLjEuMDYuMTUuMWwuNDQuM2MuMDUuMDMuMS4wNy4xNS4xbC45My43MmMuMDUuMDQuMDkuMDguMTQuMTJsLjA4LjA3LjIyLjE5LjA4LjA3Yy4wNS4wNC4wOS4wOC4xNC4xMmwuMTIuMTIuNS41LjEzLS4xMi4xMS4zNGMuMDUuMDkuMS4xNS4xNS4yMmExLjI4OCAxLjI4OCAwIDAwLjM3LjI5Yy4wOS4wNC4xNi4wNy4yNC4wOS4xLjAyLjE4LjA0LjI3LjA0LjE4LS4wMS4zMi0uMDQuNDUtLjA5LjI5LS4xMi41My0uMzYuNjUtLjY1LjA1LS4xMy4wOC0uMjcuMDktLjQyIDAtLjExLS4wMS0uMi0uMDMtLjI5LS4wMi0uMDktLjA2LS4xNy0uMDktLjI1bC0uMDctLjEzYy0uMDItLjAyLS4wNS0uMDQtLjA2LS4wNy0uMDQtLjA2LS4xLS4xMS0uMTYtLjE3bC0uMDgtLjA4LS41NS0uNTMtLjUxLS40OWMtLjA0LS4wMy0uMDctLjA3LS4xMS0uMWwuMTEtLjI1LS4xNy4xOS0xLjk0LTEuNTMtLjEyLS4wOWMtLjA0LS4wMy0uMDgtLjA1LS4xMS0uMDgtLjA0LS4wMy0uMDgtLjA1LS4xMy0uMDhsLS43NS0uNDRjLS4wNC0uMDMtLjA5LS4wNS0uMTMtLjA4bC0uMjYtLjE0Yy0uMDUtLjAyLS4wOS0uMDUtLjE0LS4wN2wtLjgtLjM5Yy0uMDQtLjAyLS4wOS0uMDUtLjE0LS4wN2wtLjE1LS4wNi0uMTQtLjA1YTEuMjIgMS4yMiAwIDAxLS4xNy0uMDdsLS41My0uMTljLS4wNS0uMDItLjEtLjA0LS4xNi0uMDZsLS4yNS0uMDhjLS4xLS4wMy0uMTYtLjA1LS4yMi0uMDZsLS4xNC0uMDQtLjMxLS4wOS0uMTQtLjA0Yy0uMDYtLjAyLS4xMS0uMDMtLjE3LS4wNWwtLjA3LS4wMmMtLjA5LS4wMi0uMTctLjA1LS4yNS0uMDYtLjA2LS4wMS0uMTItLjAyLS4xOS0uMDRsLS4xNS0uMDNjLS4xMS0uMDItLjIyLS4wNC0uMzQtLjA2bC0uMTQtLjAzYy0uMDYtLjAxLS4xMy0uMDMtLjE5LS4wNGwtLjEtLjAyYy0uMDgtLjAxLS4xNy0uMDMtLjI1LS4wNC0uMDctLjAxLS4xMy0uMDEtLjItLjAybC0uMTYtLjAxYy0uMTItLjAxLS4yNC0uMDMtLjM2LS4wNGwtLjE2LS4wMmMtLjA3LS4wMS0uMTMtLjAyLS4yLS4wMmwtMS44OC0uMTVoLS43NGwtMS40Ni4yMy0uMzMuMDYtLjMyLjA2LS4zMi4wNi0uMTMtLjI0LjA2LjI1Yy0uMS4wMi0uMTkuMDUtLjI4LjA3bC0uMTkuMDVjLS4xOS4wNS0uMzcuMDktLjU1LjE1LS4yLjA2LS4zOS4xMi0uNTguMTgtLjIxLjA3LS40Mi4xNS0uNjIuMjItLjIzLjA5LS40NS4xOC0uNjguMjgtLjI2LjExLS41LjIyLS43My4zMy0uMy4xNS0uNTkuMzItLjg4LjQ4LS4zNy4yMS0uNzQuNDUtMS4xLjctMS4xNy44MS0yLjI2IDEuNzgtMy4yMyAyLjg4LS40LjQ1LS43OC45NC0xLjIgMS41NS0uMjUuMzctLjUuNzQtLjcyIDEuMTItLjE3LjI5LS4zNC41OS0uNDkuODlsLS4wMy4wNmMtLjEyLjI0LS4yNC40OC0uMzUuNzItLjA3LjE2LS4xNC4zMy0uMi40OWwtLjEzLjM0Yy0uMDcuMTctLjEzLjMzLS4xOS41LS4wNS4xNC0uMDkuMjgtLjE0LjQybC0uMTIuMzYtLjEyLjM5Yy0uMDMuMS0uMDUuMjEtLjA4LjMybC0uMDkuMzctLjA5LjM4Yy0uMDMuMTMtLjA2LjI3LS4wOC40MWwtLjAyLjA5LS4wOS40OS0uMDQuMjFjLS4wMi4wOS0uMDQuMTgtLjA1LjI4LS4xLjY4LS41Mi45My0uOTEgMS4wOWwtLjI0LjFjLS4yNC4xLS40Ny4yLS43LjMtLjI2LjEyLS41Mi4yNC0uNzcuMzctLjI5LjE1LS41OC4zLS44Ni40NmExNi43OTIgMTYuNzkyIDAgMDAtMi44NCAyLjA0bC0xLjI1IDEuMjVjLS41Mi41OC0uOTggMS4xNC0xLjM3IDEuNy0uMDIuMDItLjAzLjA1LS4wNC4wNy0uMDIuMDMtLjA0LjA3LS4wNi4xLS4xOS4yOC0uMzguNi0uNiAxLS4xNC4yNi0uMjcuNTMtLjQuOC0uMTEuMjMtLjIxLjQ3LS4zMS43LS4wOS4yMy0uMTcuNDMtLjI0LjY0LS4wNC4xMi0uMDguMjQtLjExLjM3bC0uMTIuNDFjLS4wNC4xMi0uMDcuMjQtLjExLjM2bC0uMTIuNTJjLS4wMi4xLS4wNC4xOS0uMDUuMjlsLS4wNi4zNC0uMDYuMzRjLS4wMS4wNy0uMDMuMTUtLjA0LjIyLS4wMy4wOS0uMDQuMTctLjA1LjI1bC0uMTUgMS4wOC4xMiAzLjA5LjA5LjYtLjI0LjE1LjI2LS4wNC4wNS4yM2MuMDEuMDcuMDMuMTQuMDQuMmwuMDMuMTNjLjAzLjEzLjA0LjIzLjA3LjMzbC4wMy4xNmMuMDEuMDYuMDIuMTIuMDQuMTguMDEuMDYuMDMuMTIuMDUuMThsLjEzLjQ0Yy4wNC4xNC4wNi4yMy4wOS4zMWwuMDQuMTVjLjAxLjA1LjAzLjExLjA1LjE2LjAyLjA1LjA0LjExLjA2LjE2bC4zMi44M2MuMDIuMDUuMDQuMTEuMDYuMTZsLjEzLjI3Yy4wMi4wNS4wNS4xLjA3LjE1bC4wNi4xMmMuMDQuMDkuMDkuMTguMTMuMjdsLjA2LjEzYy4wMi4wNS4wNS4xLjA3LjE0bC4xNC4yNmMuMDMuMDUuMDUuMDkuMDguMTNsLjQ0LjcyYy4wMy4wNS4wNi4wOS4wOS4xNC4wMy4wNC4wNS4wOC4wOC4xMWwuNTEuNjkuMDkuMTIuMTguMjFjLjAzLjA0LjA3LjA4LjExLjEybC4wOC4wOWMuMDYuMDcuMTIuMTQuMTkuMjFsLjM4LjQyYy4wMy4wMy4wNy4wNi4xLjA5bC42Mi41OGMuMDMuMDMuMDcuMDcuMTEuMWwuNzYuNjJjLjA0LjAzLjA4LjA3LjEyLjFsLjIzLjE2Yy4wNi4wNS4xMy4wOS4xOS4xM2wuNzcuNWMuMDguMDUuMTcuMS4yNS4xNWwxLjU5LjgxIDMuNTkgMS4yOGMuMDUuMDIuMTUuMDEuMjUuMDFoMS4wNGwxNy42Ni4wMWguNjFsMjQuODEtLjA2Yy4wOCAwIC4xNSAwIC4yMy0uMDEuMDggMCAuMTYtLjAxLjI0LS4wMmwuMTktLjAyLjI5LS4wMy4yMi0uMDJjLjEyLS4wMS4yNS0uMDIuMzctLjA0LjA3LS4wMS4xMy0uMDEuMi0uMDIuMDgtLjAxLjE2LS4wMS4yNC0uMDIuMDktLjAxLjE4LS4wMy4yNy0uMDUuMDctLjAyLjE1LS4wMy4yMi0uMDQuMTctLjAzLjMzLS4wNi40OS0uMDlsLjIxLS4wNGMuMDktLjAyLjE5LS4wMy4yOC0uMDUuMTItLjAzLjIzLS4wNi4zNS0uMWwuMi0uMDYuNTEtLjE1LjA3LS4wMmMuMDgtLjAzLjE2LS4wNS4yNS0uMDcuMTEtLjAzLjIyLS4wNi4zMy0uMS4yMS0uMDguNC0uMTUuNTktLjIzbC4wOC0uMDNjLjI0LS4xLjQ4LS4yMS43Mi0uMzIuMjctLjEzLjU0LS4yNi44LS40LjM2LS4xOS42OC0uMzguOTctLjU3IDEuMTEtLjcxIDIuMDItMS41MyAyLjgxLTIuNS4yNy0uMzQuNTMtLjcuNzctMS4wNy4xNy0uMjguMzItLjU3LjQ2LS44Ni4xMS0uMjMuMjEtLjQ3LjMxLS43bC4wNy0uMThjLjA2LS4xNi4xMy0uMzEuMTgtLjQ3LjA0LS4xMS4wNi0uMjMuMDktLjM0bC4wOS0uMzRjLjA0LS4xMy4wNy0uMjYuMS0uNGwuMDYtLjM1LjAyLS4xM2MuMDMtLjE1LjA1LS4zMS4wNy0uNDdsLjAzLS4xOGMuMDEtLjA5LjAzLS4xOS4wNC0uMjguMDEtLjA4LjAxLS4xNi4wMS0uMjRsLjAxLS4yNWMuMDEtLjEyLjAyLS4yMy4wMi0uMzVsLjAxLS4xN2MwLS4wOC4wMS0uMTYuMDEtLjI0LS4wNC0uMDYtLjA0LS4xNC0uMDUtLjIxeiIgZmlsbD0idXJsKCNwcmVmaXhfX2MpIi8+PC9zdmc+");
+}
+
+.google-compute {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTMxLjMzMyAxMC42NjdhLjY2Ny42NjcgMCAwMDAtMS4zMzRoLTJWNi42NjdoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtLjY2NmMwLTEuMTAzLS44OTctMi0yLTJoLS42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0yLjY2NnYtMmEuNjY3LjY2NyAwIDAwLTEuMzM0IDB2MmgtMi42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYySDYuNjY3di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0uNjY2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2LjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYyLjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYuNjY2YzAgMS4xMDMuODk3IDIgMiAyaC42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoMi42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoLjY2NmMxLjEwMyAwIDItLjg5NyAyLTJ2LS42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMnpNMjggMjcuMzMzYzAgLjM2OC0uMy42NjctLjY2Ny42NjdINC42NjdBLjY2OC42NjggMCAwMTQgMjcuMzMzVjQuNjY3QzQgNC4yOTkgNC4zIDQgNC42NjcgNGgyMi42NjZjLjM2NyAwIC42NjcuMjk5LjY2Ny42Njd2MjIuNjY2ek05LjMzMyA4YTEuMzM0IDEuMzM0IDAgMTAtMi42NjcuMDAxQTEuMzM0IDEuMzM0IDAgMDA5LjMzMyA4em0xMS4zMzQgMi42NjdoLTkuMzM0YS42NjcuNjY3IDAgMDAtLjY2Ni42NjZ2OS4zMzRjMCAuMzY4LjI5OC42NjYuNjY2LjY2Nmg5LjMzNGEuNjY3LjY2NyAwIDAwLjY2Ni0uNjY2di05LjMzNGEuNjY3LjY2NyAwIDAwLS42NjYtLjY2NnpNMjAgMjBoLTh2LThoOHY4eiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
+}
+
+.google-container {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTMxLjMzMyAxMC42NjdhLjY2Ny42NjcgMCAwMDAtMS4zMzRoLTJWNi42NjdoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtLjY2NmMwLTEuMTAzLS44OTctMi0yLTJoLS42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0yLjY2NnYtMmEuNjY3LjY2NyAwIDAwLTEuMzM0IDB2MmgtMi42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYySDYuNjY3di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0uNjY2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2LjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYyLjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYuNjY2YzAgMS4xMDMuODk3IDIgMiAyaC42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoMi42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoLjY2NmMxLjEwMyAwIDItLjg5NyAyLTJ2LS42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMnpNMjggMjcuMzMzYzAgLjM2OC0uMy42NjctLjY2Ny42NjdINC42NjdBLjY2OC42NjggMCAwMTQgMjcuMzMzVjQuNjY3QzQgNC4yOTkgNC4zIDQgNC42NjcgNGgyMi42NjZjLjM2NyAwIC42NjcuMjk5LjY2Ny42Njd2MjIuNjY2ek05LjMzMyA4YTEuMzM0IDEuMzM0IDAgMTAtMi42NjcuMDAxQTEuMzM0IDEuMzM0IDAgMDA5LjMzMyA4em0xMS4zMzQgMi42NjdoLTkuMzM0YS42NjcuNjY3IDAgMDAtLjY2Ni42NjZ2OS4zMzRjMCAuMzY4LjI5OC42NjYuNjY2LjY2Nmg5LjMzNGEuNjY3LjY2NyAwIDAwLjY2Ni0uNjY2di05LjMzNGEuNjY3LjY2NyAwIDAwLS42NjYtLjY2NnpNMjAgMjBoLTh2LThoOHY4eiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
+}
+
+.google-database {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zODklIiB5MT0iNC4zMDglIiB4Mj0iMjUuNSUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTE2LjUgMUMxMS40MSAxIDYgMi4zMTUgNiA0Ljc1djIyLjVDNiAyOS42ODUgMTEuNDEgMzEgMTYuNSAzMVMyNyAyOS42ODUgMjcgMjcuMjVWNC43NUMyNyAyLjMxNSAyMS41OSAxIDE2LjUgMXptOS41ODcgMTguODk3YzAgMS4xMTMtMy42NDcgMi42NjYtOS41ODcgMi42NjYtNS45NCAwLTkuNTg3LTEuNTUzLTkuNTg3LTIuNjY2di01Ljc3MmMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyem0wLTcuNWMwIDEuMTEzLTMuNjQ3IDIuNjY1LTkuNTg3IDIuNjY1LTUuOTQgMC05LjU4Ny0xLjU1Mi05LjU4Ny0yLjY2NVY2LjYyNWMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyek0xNi41IDEuOTM3YzUuOTQgMCA5LjU4NyAxLjYzOCA5LjU4NyAyLjgxMyAwIDEuMTc1LTMuNjQ3IDIuODEzLTkuNTg3IDIuODEzLTUuOTQgMC05LjU4Ny0xLjYzOC05LjU4Ny0yLjgxMyAwLTEuMTc1IDMuNjQ3LTIuODEzIDkuNTg3LTIuODEzem0wIDI4LjEyNWMtNS45NCAwLTkuNTg3LTEuNTUyLTkuNTg3LTIuNjY1di01Ljc3MmMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyYzAgMS4xMTMtMy42NDcgMi42NjYtOS41ODcgMi42NjZ6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+.google-hamburger {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGQ9Ik0yMS41IDZoLTE5YS41LjUgMCAwMTAtMWgxOWEuNS41IDAgMDEwIDF6bTAgMTNoLTE5YS41LjUgMCAwMTAtMWgxOWEuNS41IDAgMDEwIDF6bTAtNi41aC0xOWEuNS41IDAgMDEwLTFoMTlhLjUuNSAwIDAxMCAxeiIgaWQ9InByZWZpeF9fYSIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxtYXNrIGlkPSJwcmVmaXhfX2IiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI3ByZWZpeF9fYSIvPjwvbWFzaz48dXNlIGZpbGw9IiMwMDAiIGZpbGwtcnVsZT0ibm9uemVybyIgeGxpbms6aHJlZj0iI3ByZWZpeF9fYSIvPjxnIG1hc2s9InVybCgjcHJlZml4X19iKSIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6Ii8+PC9nPjwvZz48L3N2Zz4=");
+}
+
+.google-network {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzUiIGhlaWdodD0iMzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4MT0iOTUuNjkyJSIgeTE9IjQuMzA4JSIgeDI9IjAlIiB5Mj0iMTAwJSIgaWQ9InByZWZpeF9fYSI+PHN0b3Agc3RvcC1jb2xvcj0iIzUzQTBGRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCNEVDNTEiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik0xNy45MjUgN3YxLjkzQTEwLjIzNCAxMC4yMzQgMCAwMTIyLjIxMiA4YzUuMzU5IDAgOS43MDMgNC4wNTUgOS43MDMgOS4wNTggMCAuNzU3LS4xIDEuNDkzLS4yODcgMi4xOTYgMS45NDQuNTAxIDMuMzcyIDIuMTY0IDMuMzcyIDQuMTM5di4zMTRDMzUgMjYuMDc3IDMyLjk0IDI4IDMwLjQgMjhIN3YyLjA1YTIuNSAyLjUgMCAxMS0xIDBWMjhINC42QzIuMDYgMjggMCAyNi4wNzggMCAyMy43MDd2LS4zMTRjMC0yLjI3IDEuODg4LTQuMTMgNC4yNzgtNC4yODNhNi40NDMgNi40NDMgMCAwMS0uMTgzLTEuNTI5YzAtMy43ODggMy4yOS02Ljg1OCA3LjM0Ny02Ljg1OCAxLjE0MyAwIDIuMjI2LjI0MyAzLjE5LjY3OGE5LjU3IDkuNTcgMCAwMTIuNDQyLTIuMDI5TDE3LjA3NSA3aC44NXpNNi41IDMxYTEuNSAxLjUgMCAxMDAgMyAxLjUgMS41IDAgMDAwLTN6bTguODctMTguOTZsLS40NjYuNTM4LS42NjItLjI5NmE2Ljc5MiA2Ljc5MiAwIDAwLTIuNzgtLjU4N2MtMy41MyAwLTYuMzggMi42NDMtNi4zOCA1Ljg5IDAgLjQ0NS4wNTIuODgzLjE1NyAxLjMwOGwuMjUzIDEuMDMzLTEuMTA4LjA3QzIuNDc5IDIwLjEyIDEgMjEuNTgzIDEgMjMuMzR2LjMxQzEgMjUuNDk1IDIuNjI0IDI3IDQuNjQxIDI3SDZ2LTVhMSAxIDAgMDEuODgzLS45OTNMNyAyMWg0di0zLjVhLjUuNSAwIDExMSAwVjIxaDUuMDc1bC0uMDAxLTEwLjQ2NmE4LjUyNCA4LjUyNCAwIDAwLTEuNzA1IDEuNTA1ek0yMi4xOTUgOWMtMS41MyAwLTIuOTkyLjM2NS00LjI3MiAxLjAzTDE3LjkyNSAyMUgyNHYxaC0ydjMuNWEuNS41IDAgMTEtMSAwVjIySDd2NWgyMy4zNTlDMzIuMzc2IDI3IDM0IDI1LjQ5NCAzNCAyMy42NXYtLjMxMWMwLTEuNTEtMS4wOTctMi44MjgtMi42NjMtMy4yMjhsLS45LS4yMy4yMzEtLjg2M2MuMTctLjYzMy4yNTctMS4yODYuMjU3LTEuOTUxIDAtNC40NS0zLjkwMi04LjA2Ny04LjcyOS04LjA2N3pNMjYuNSAxOWEyLjUgMi41IDAgMTEwIDUgMi41IDIuNSAwIDAxMC01em0wIDFhMS41IDEuNSAwIDEwMCAzIDEuNSAxLjUgMCAwMDAtM3ptLTktMjBhMy41IDMuNSAwIDExMCA3IDMuNSAzLjUgMCAwMTAtN3ptMCAxYTIuNSAyLjUgMCAxMDAgNSAyLjUgMi41IDAgMDAwLTV6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+.google-refresh {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NzMuNjc3IDQ3My42NzciPjxnIGZpbGw9IiMzMTJEMkEiPjxwYXRoIGQ9Ik0zNzAuNDU3IDEzOC44OTNjLTMzLjk3LTQ4LjYzMy04OS43NS03Ni40NzgtMTQ5LjM2Ni02OS42NUMxNjMuNzMgNzUuODEgMTE3LjQzIDExMi45IDk0LjQ1IDE2NC40MmwtMjkuNTEzLS4wNzVjLTUuMTg3LS4wMTEtOS4wMTYgNS45OTEtNi4wOTkgMTAuNTY0bDUxLjczMyA4MS4xNmMyLjkwOSA0LjU3IDkuMjE4IDQuNDU4IDEyLjEyLS4wNDUgMTcuMzc4LTI2Ljk2NiAzNC43NTktNTMuOTM2IDUyLjE0MS04MC45MDIgMS44NzctMi45MTMgMS4yNDUtNS43MjktLjUxMi03LjY3NC0xLjA5Ni0xLjY1Ny0yLjkxMy0yLjgzOC01LjUxMi0yLjg0NmwtMjcuNDUyLS4wNjdjNDIuMjE2LTY3LjA4OCAxNDQuNjk1LTczLjIxIDE5Mi44MDEtNC4zMzggMTUuNDE1IDIyLjA1NyA1MS44NzIuOTkyIDM2LjMtMjEuMzA0ek00MTQuNDQ5IDI5Ny41NDVjLTE3LjI0My0yNy4wNTItMzQuNDk0LTU0LjEwOC01MS43NDEtODEuMTYtMi45MDktNC41Ny05LjIxOC00LjQ1OC0xMi4xMi4wNDUtMTcuMzc0IDI2Ljk2Ni0zNC43NTYgNTMuOTM2LTUyLjEzMyA4MC45MDItMS44ODEgMi45MTctMS4yNDUgNS43MzMuNTIgNy42ODEgMS4wOTIgMS42NTMgMi45MDkgMi44MzEgNS41MDUgMi44MzhsMjcuNDQ4LjA2N2MtNDIuMjIgNjcuMDgtMTQ0LjY5NSA3My4yMjgtMTkyLjc5NyA0LjM0Mi0xNS40MDctMjIuMDYtNTEuODYtLjk5NS0zNi4yOTMgMjEuMzA0IDMzLjk2MyA0OC42MzMgODkuNzQ2IDc2LjQ3NCAxNDkuMzU5IDY5LjY1IDU3LjM2MS02LjU3IDEwMy42NTctNDMuNjYzIDEyNi42NDQtOTUuMTggOS44MzUuMDI2IDE5LjY3NC4wNDkgMjkuNTEzLjA3NSA1LjE4My4wMTUgOS4wMTItNS45OTEgNi4wOTUtMTAuNTY0eiIvPjwvZz48L3N2Zz4=");
+}
+
+.google-storage {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTI5LjY5NSA3Ljk5M0wxNi44NjIgMS4wN2EuNTkuNTkgMCAwMC0uNTQtLjAwOWwtMTQgNi45MjNBLjU3Ny41NzcgMCAwMDIgOC41djE1YzAgLjIxMS4xMTcuNDA2LjMwNC41MDdsMTIuODM0IDYuOTIzYy4wMDcuMDAzLjAxNS4wMDIuMDIzLjAwNWEuNTczLjU3MyAwIDAwLjI1Ni4wNjVjLjA4OCAwIC4xNy0uMDIzLjI0NS0uMDU3LjAwNC0uMDAyLjAxIDAgLjAxNi0uMDAzbDE0LTYuOTIzQS41OC41OCAwIDAwMzAgMjMuNXYtMTVhLjU3NS41NzUgMCAwMC0uMzA1LS41MDd6bS0xNC4yNjcgNi43OGwtNS4xNjgtMi43OUwyMi45ODggNS42OWw1LjE2OSAyLjc5LTEyLjcyOSA2LjI5M3ptMS4xNDQtMTIuNTQ1bDUuMTY4IDIuNzg5TDkuMDEyIDExLjMxIDMuODQzIDguNTIzbDEyLjcyOS02LjI5NXpNMy4xNjcgOS40NzJsMTEuNjY2IDYuMjk0djEzLjY4NkwzLjE2NyAyMy4xNTdWOS40NzJ6TTE2IDI5LjQ5VjE1Ljc4bDEyLjgzMy02LjM0N3YxMy43MUwxNiAyOS40OXptLTQuOTcxLTEyLjQ3NmEuNTcyLjU3MiAwIDAxLjIzLjc4My41NzguNTc4IDAgMDEtLjUxLjMuNTc4LjU3OCAwIDAxLS4yNzktLjA3bC0zLjUtMS44ODlhLjU3My41NzMgMCAwMS0uMjMyLS43ODIuNTg3LjU4NyAwIDAxLjc5LS4yM2wzLjUgMS44ODh6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+/*
+** Resources
+*/
+.google-compute-network {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PGRlZnM+PHN0eWxlPi5wcmVmaXhfX2Nscy0xe2ZpbGw6I2FlY2JmYX0ucHJlZml4X19jbHMtMntmaWxsOiM2NjlkZjZ9LnByZWZpeF9fY2xzLTN7ZmlsbDojNDI4NWY0fTwvc3R5bGU+PC9kZWZzPjxnIGRhdGEtbmFtZT0iUHJvZHVjdCBJY29ucyI+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTEiIGQ9Ik0xNiAyaDZ2NmgtNnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMiIgZD0iTTE5IDJoM3Y2aC0zeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMTYgMTZoNnY2aC02eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0yIiBkPSJNMTkgMTZoM3Y2aC0zeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMiAyaDZ2NkgyeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0yIiBkPSJNNSAyaDN2Nkg1eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMiAxNmg2djZIMnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMiIgZD0iTTUgMTZoM3Y2SDV6TTggNGg4djJIOHpNOCAxOGg4djJIOHpNMTggOGgydjhoLTJ6TTQgOGgydjhINHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMyIgZD0iTTQgOGgydjJINHpNMTggOGgydjJoLTJ6TTggNGgydjJIOHpNOCAxOGgydjJIOHoiLz48L2c+PC9zdmc+");
+}
+
+.google-virtual-private-cloud {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PGRlZnM+PHN0eWxlPi5wcmVmaXhfX2Nscy0xe2ZpbGw6I2FlY2JmYX0ucHJlZml4X19jbHMtMntmaWxsOiM2NjlkZjZ9LnByZWZpeF9fY2xzLTN7ZmlsbDojNDI4NWY0fTwvc3R5bGU+PC9kZWZzPjxnIGRhdGEtbmFtZT0iUHJvZHVjdCBJY29ucyI+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTEiIGQ9Ik0xNiAyaDZ2NmgtNnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMiIgZD0iTTE5IDJoM3Y2aC0zeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMTYgMTZoNnY2aC02eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0yIiBkPSJNMTkgMTZoM3Y2aC0zeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMiAyaDZ2NkgyeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0yIiBkPSJNNSAyaDN2Nkg1eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0xIiBkPSJNMiAxNmg2djZIMnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMiIgZD0iTTUgMTZoM3Y2SDV6TTggNGg4djJIOHpNOCAxOGg4djJIOHpNMTggOGgydjhoLTJ6TTQgOGgydjhINHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMyIgZD0iTTQgOGgydjJINHpNMTggOGgydjJoLTJ6TTggNGgydjJIOHpNOCAxOGgydjJIOHoiLz48L2c+PC9zdmc+");
+}
+
+.google-oracle-autonomous-database, .google-oracledatabase-autonomous-database-regular {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLWljb24tbmFtZT0iZGF0YXNldHNJY29uIiB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNMiAyaDE0djE0SDJWMnptMiAyaDEwdjEwSDRWNHptMiA2aDJ2Mkg2di0yem0wLTRoMnYySDZWNnptNCA0aDJ2MmgtMnYtMnptMC00aDJ2MmgtMlY2eiIvPjwvc3ZnPg==");
+}
+
+.google-oracle-exadata-database, .google-oracledatabase-exadata-infrastructure {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLWljb24tbmFtZT0iaW5zdGFuY2VUZW1wbGF0ZUljb24iIHdpZHRoPSIxOCIgaGVpZ2h0PSIxOCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMy45OTggMTZBMS4wMSAxLjAxIDAgMDAxNSAxNC45OTNWNC4wMDdDMTUgMyAxMy45OTggMiAxMi45OTggMkg1LjAwMkM0LjAwMiAyIDMgMyAzIDQuMDA3djEwLjk4NkMzIDE1LjU1IDMuNDUgMTYgNC4wMDIgMTZINS41bC41LTFoNmwuNSAxaDEuNDk4ek01IDRoOHY5SDVWNHptMSA1LjVhLjUuNSAwIDAxLjQ5LS41aDUuMDJhLjUuNSAwIDAxMCAxSDYuNDlBLjUuNSAwIDAxNiA5LjV6TTggNWgydjJIOFY1em0tMiA2LjVhLjUuNSAwIDAxLjQ5LS41aDUuMDJhLjUuNSAwIDAxMCAxSDYuNDlhLjUuNSAwIDAxLS40OS0uNXoiLz48L3N2Zz4=");
+}
+
+.google-oracledatabase-cloud-vm-cluster {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMzIgMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE1LjYxIDI5Yy02LjE3IDAtMTEtMi44Ni0xMS02LjVWMTZoMnY2LjVjMCAyLjE3IDMuNjIgNC41IDkgNC41djJ6bTAgMHYtMmM1LjM4IDAgOS0yLjMzIDktNC41VjE2aDJ2Ni41YzAgMy42NC00LjgzIDYuNS0xMSA2LjV6IiBmaWxsPSIjNWY2MzY4Ii8+PHBhdGggZD0iTTE1LjYxIDIyLjVjLTYuMTcgMC0xMS0yLjg2LTExLTYuNVY5LjVoMlYxNmMwIDIuMTcgMy42MiA0LjUgOSA0LjV2MnptMCAwdi0yYzUuMzggMCA5LTIuMzMgOS00LjVWOS41aDJWMTZjMCAzLjY0LTQuODMgNi41LTExIDYuNXoiIGZpbGw9IiM4MDg2OGIiLz48cGF0aCBkPSJNMTUuNjEgMTZjLTYuMTcgMC0xMS0yLjg2LTExLTYuNVM5LjQ0IDMgMTUuNjEgM3YyYy01LjM4IDAtOSAyLjMzLTkgNC41czMuNjIgNC41IDkgNC41djJ6bTAgMHYtMmM1LjM4IDAgOS0yLjMzIDktNC41cy0zLjYyLTQuNS05LTQuNVYzYzYuMTcgMCAxMSAyLjg2IDExIDYuNXMtNC44MyA2LjUtMTEgNi41eiIgZmlsbD0iIzlhYTBhNiIvPjwvc3ZnPg==");
+}
+`,
+
+ 'ocd-light-theme.css': String.raw`/* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. */
+/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. */
+.ocd-console-header-colour {
+ background-color: white;
+}
+
+.ocd-console-menubar-colour {
+ background-color: white;
+}
+
+.ocd-console-toolbar-colour {
+ background-color: white;
+}
+
+.ocd-console-footer-colour {
+ background-color: white;
+}
+`,
+
+ 'ocd-svg.css': String.raw`/* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. */
+/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. */
+:root {
+
+ --svg-icon-height: 40px;
+ --svg-icon-width: 40px;
+ --svg-resource-simple-width: 40px;
+ --svg-resource-detailed-width: 170px;
+ --svg-resource-container-width: 200px;
+
+ --svg-container-resource-stroke: #312D2A;
+ --svg-container-resource-stroke-width: 1;
+ --svg-container-resource-stroke-dasharray: 3, 2;
+ --svg-container-resource-stroke-opacitiy: 1;
+ --svg-container-resource-stroke-corner-rx: 5;
+
+ --svg-simple-resource-stroke: #161513;
+ --svg-simple-resource-stroke-width: 0.5;
+ --svg-simple-resource-stroke-dasharray: none;
+ --svg-simple-resource-stroke-opacitiy: 0.5;
+ --svg-simple-resource-stroke-corner-rx: 5;
+
+ --svg-selected-resource-stroke: #161513;
+ --svg-selected-resource-stroke-width: 1.5;
+ --svg-selected-resource-stroke-dasharray: none;
+ --svg-selected-resource-stroke-opacitiy: 1;
+ --svg-selected-resource-stroke-corner-rx: 5;
+
+ --svg-resource-parent-connector-stroke: #161513;
+ --svg-resource-parent-connector-stroke-width: 1.5;
+ --svg-resource-parent-connector-stroke-dasharray: none;
+ --svg-resource-parent-connector-stroke-opacitiy: 1;
+
+ --svg-resource-association-connector-stroke: #161513;
+ --svg-resource-association-connector-stroke-width: 1.5;
+ --svg-resource-association-connector-stroke-dasharray: 3, 2;
+ --svg-resource-association-connector-stroke-opacitiy: 1;
+
+ --svg-analytics-resources-background-colour: rgba(59, 112, 135, 0.9);
+ --svg-database-resources-background-colour: rgba(59, 112, 135, 0.9);
+ --svg-gateway-resources-background-colour: rgba(59, 112, 135, 0.9);
+ --svg-identity-resources-background-colour: rgba(199, 59, 89, 0.9);
+ --svg-infrastructure-resources-background-colour: rgba(59, 112, 135, 0.9);
+ --svg-network-resources-background-colour: rgba(121, 96, 135, 0.9);
+ --svg-storage-resources-background-colour: rgba(146, 88, 101, 0.9);
+ --svg-tenancy-resources-background-colour: rgba(240, 193, 84, 0.9);
+
+}
+
+svg {
+ font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
+}
+
+.ocd-svg-icon {
+ width: var(--svg-icon-width);
+ height: var(--svg-icon-height);
+ background-repeat: no-repeat;
+ background-position-x: center;
+ background-position-y: center;
+ background-size: 30px 30px;
+}
+
+.ocd-svg-parent-connector {
+ stroke: var(--svg-resource-parent-connector-stroke);
+ stroke-width: var(--svg-resource-parent-connector-stroke-width);
+ stroke-dasharray: var(--svg-resource-parent-connector-stroke-dasharray);
+ stroke-opacity: var(--svg-resource-parent-connector-stroke-opacitiy);
+ fill-opacity: 0;
+}
+
+.ocd-svg-association-connector {
+ stroke: var(--svg-resource-association-connector-stroke);
+ stroke-width: var(--svg-resource-association-connector-stroke-width);
+ stroke-dasharray: var(--svg-resource-association-connector-stroke-dasharray);
+ stroke-opacity: var(--svg-resource-association-connector-stroke-opacitiy);
+ fill-opacity: 0;
+}
+
+.ocd-svg-container {
+ stroke: var(--svg-container-resource-stroke);
+ stroke-width: var(--svg-container-resource-stroke-width);
+ stroke-dasharray: var(--svg-container-resource-stroke-dasharray);
+ stroke-opacity: var(--svg-container-resource-stroke-opacitiy);
+ rx: var(--svg-container-resource-stroke-corner-rx);
+}
+
+.ocd-svg-simple {
+ stroke: var(--svg-simple-resource-stroke);
+ stroke-width: var(--svg-simple-resource-stroke-width);
+ stroke-dasharray: var(--svg-simple-resource-stroke-dasharray);
+ stroke-opacity: var(--svg-simple-resource-stroke-opacitiy);
+ rx: var(--svg-simple-resource-stroke-corner-rx);
+}
+
+.ocd-svg-resource-selected {
+ stroke-width: var(--svg-selected-resource-stroke-width);
+ stroke-dasharray: var(--svg-selected-resource-stroke-dasharray);
+ stroke-opacity: var(--svg-selected-resource-stroke-opacitiy);
+}
+
+.ocd-svg-resource-simple {
+ width: var(--svg-resource-simple-width);
+ height: var(--svg-icon-height);
+}
+
+.ocd-svg-resource-detailed {
+ width: var(--svg-resource-detailed-width);
+ height: var(--svg-icon-height);
+}
+
+.ocd-svg-resource-container {
+ width: var(--svg-resource-container-width);
+}
+
+.ocd-svg-foreign-object {
+ height: var(--svg-icon-height);
+}
+
+.ocd-svg-foreign-object > div {
+ display: grid;
+ grid-template-columns: var(--svg-icon-width) auto;
+ width: 100%;
+}
+
+.ocd-svg-foreign-object-display-name {
+ display: block;
+ padding: 0 0 0 5px;
+ margin-top: auto;
+ margin-bottom: auto;
+}
+
+.ocd-svg-foreign-object-display-name > span {
+ display: block;
+ width: 100%;
+ opacity: 0.8;
+ margin: 0;
+ padding: 0;
+ border: none;
+ box-sizing: border-box;
+ font-size: smaller;
+ overflow-x: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ user-select: none;
+}
+
+.ocd-svg-foreign-object-display-name > input {
+ display: block;
+ width: 100%;
+ text-overflow: ellipsis;
+ margin: 0;
+ padding: 0;
+ border: none;
+ box-sizing: border-box;
+ font-weight: bolder;
+ background: transparent;
+}
+
+.ocd-svg-foreign-object-name {
+ font-weight: bolder;
+}
+
+.ocd-svg-container-icon-background {
+ border-color: var(--svg-simple-resource-stroke);
+ border-width: var(--svg-simple-resource-stroke-width);
+ border-top-left-radius: 5px 5px;
+ border-bottom-right-radius: 5px 5px;
+}
+
+.ocd-svg-detailed-icon-background {
+ border-color: var(--svg-simple-resource-stroke);
+ border-width: var(--svg-simple-resource-stroke-width);
+ border-top-left-radius: 5px 5px;
+ border-bottom-left-radius: 5px 5px;
+}
+
+.ocd-svg-simple-icon-background {
+ border-color: var(--svg-simple-resource-stroke);
+ border-width: var(--svg-simple-resource-stroke-width);
+ border-radius: 5px 5px;
+}
+
+`,
+
+ 'ocd.css': String.raw`/* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. */
+/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. */
+:root {
+ --console-titlebar-height: 25px;
+ --console-menubar-height: 25px;
+ --console-header-height: 50px;
+ --console-toolbar-height: 25px;
+ --console-toolbar-icon-height: 25px;
+ --console-toolbar-icon-width: 25px;
+ --console-footer-height: 30px;
+ --console-logo-height: 50px;
+ --console-logo-width: 50px;
+ --console-tab-bar-height: 25px;
+ --console-layers-bar-height: 25px;
+ --console-pages-bar-height: 25px;
+ --console-palette-width: 200px;
+ --console-properties-width: 500px;
+
+ --tabular-row-number-column-width: 40px;
+ --tabular-line-colour: #312D2A;
+ --tabular-header-background-colour: #8ebaaa;
+ --tabular-body-odd-background-colour: #ffffff;
+ --tabular-body-even-background-colour: #9ec2c9;
+
+ --variables-line-colour: #312D2A;
+ --variables-header-background-colour: #d3e4de;
+ --variables-body-odd-background-colour: #ffffff;
+ --variables-body-even-background-colour: #9ec2c9;
+
+ --library-design-height: 200px;
+ --library-design-width: 300px;
+ --library-design-background-size: 100px;
+ --library-design-background-colour: #8ebaaa;
+}
+
+body {
+ display: block;
+ margin: 0;
+ padding: 0;
+ font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
+ overflow: hidden;
+}
+
+details {
+ display: block;
+ box-sizing: border-box;
+ margin-top: 1em;
+ width: 100%;
+ max-width: 100%;
+}
+
+details:not([open]) {
+ transition: all 2.5s ease-in-out;
+}
+
+details[open] {
+ transition: all 2.5s ease-in-out;
+}
+
+details > summary::-webkit-details-marker {
+ display:none;
+}
+
+details:focus {
+ outline: none;
+}
+
+summary {
+ width: 100%;
+ max-width: 100%;
+ box-sizing: border-box;
+ font-weight: bold;
+ min-height: 20px;
+ display: inline-block;
+ vertical-align: middle;
+ text-align: left;
+ margin-bottom: 5px;
+}
+
+.summary-background {
+ background-position: left center;
+ background-repeat: no-repeat;
+ background-size: 20px;
+ padding-left: 25px;
+ margin-right: 1em;
+}
+
+[contenteditable="true"] {
+ padding-left: 0.25em;
+ padding-right: 0.25em;
+}
+
+[contenteditable="true"]:empty {
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+}
+
+[contenteditable="true"]:empty::before {
+ content: 0;
+ color: red;
+}
+
+[contenteditable="true"] br {
+ display: none;
+}
+
+/*
+** Style Tables
+*/
+
+/* Classes for formatting divs as tables */
+.table {display: table; margin: 0 auto;}
+.thead {display: table-header-group; min-width: 100%;}
+.tbody {display: table-row-group;}
+.tr {display: table-row;}
+.th {display: table-cell; color: black; overflow: hidden;}
+.td {display: table-cell; color: black; overflow: hidden;}
+.th-menu {display: table-cell; color: black; overflow: visible}
+
+.hidden {
+ display: none !important;
+ visibility: hidden !important;
+}
+
+.ocd-image {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0Mi4xIDIyIj48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNLjUgMjEuNUwuNiAyMGMuMy0zLjQgMi4yLTYuNSA1LjMtOC4xLjctLjMgMS4xLTEgMS4zLTEuNy41LTIuNCAyLjEtNC41IDQuNC01LjUgMS0uNCAyLS42IDMuMS0uNkgxNS42Yy43IDAgMS4zLS4zIDEuNy0uNyAxLjgtMS45IDQuMi0zIDYuOC0zIDMuNSAwIDYuNyAyIDguMyA1LjIuMy43LjkgMS4xIDEuNyAxLjMgMS4xLjIgMi4xLjcgMyAxLjIgNC4yIDIuNyA1LjcgOC4yIDMuMyAxMi42bC0uNC43SC41eiIvPjxwYXRoIGQ9Ik0yNC4xIDFjMy40IDAgNi40IDEuOSA3LjkgNC45LjQuOCAxLjEgMS40IDIgMS42IDEgLjIgMiAuNiAyLjkgMS4yIDQgMi41IDUuNCA3LjggMy4xIDExLjlsLS4yLjRIMS4xbC4xLS45Yy4yLTMuMyAyLjEtNi4xIDUtNy43LjgtLjQgMS4zLTEuMiAxLjUtMiAuNC0yLjMgMi00LjIgNC4xLTUuMS45LS40IDEuOS0uNiAyLjktLjZoMWMuOCAwIDEuNS0uMyAyLS45QzE5LjMgMiAyMS43IDEgMjQuMSAxbTAtMWMtMi43IDAtNS4zIDEuMS03LjIgMy4xLS4zLjQtLjguNi0xLjMuNmgtMWMtMS4xIDAtMi4yLjItMy4zLjctMi4zIDEtNC4xIDMuMi00LjYgNS44LS4xLjYtLjUgMS0xIDEuM0MyLjUgMTMuMi40IDE2LjQuMSAyMGwtLjEuOVYyMmg0MC40bC4zLS41LjItLjVjMi41LTQuNiAxLTEwLjQtMy41LTEzLjItMS0uNi0yLTEuMS0zLjItMS4zLS42LS4xLTEuMS0uNS0xLjMtMUMzMS4yIDIuMSAyNy44IDAgMjQuMSAweiIvPjwvZz48cGF0aCBkPSJNNDAgMjAuNWwtLjIuNWgtMThjLTE1LjEgMC0xNS4xLTEuNyAwLTEuN2gxN2MxLjQtMy4zLjItNy4zLTIuOC05LjItLjctLjUtMS41LS44LTIuMy0xLTEuNC0uMy0yLjYtMS4yLTMuMi0yLjUtMS4yLTIuNC0zLjYtMy45LTYuMy0zLjktMiAwLTMuOS44LTUuMiAyLjMtMSAxLTIuMyAxLjUtMy44IDEuNC0uOS0uMS0xLjguMS0yLjcuNC0xLjYuNy0yLjggMi4yLTMuMSAzLjktLjMgMS40LTEuMSAyLjUtMi40IDMuMkM0LjkgMTUgMy40IDE3IDMgMTkuM2gxOC44Yy41LjctLjcgMS4yIDAgMS43SDEuMWwuMS0uOWMuMi0zLjMgMi4xLTYuMSA1LTcuNy44LS40IDEuMy0xLjIgMS41LTIgLjQtMi4zIDItNC4yIDQuMS01LjEgMS4xLS41IDIuMy0uNyAzLjUtLjYuOS4xIDEuNy0uMiAyLjMtLjlDMTkuMyAyIDIxLjcgMSAyNC4xIDFjMy40IDAgNi40IDEuOSA3LjkgNC45LjQuOCAxLjEgMS40IDIgMS42IDEgLjIgMiAuNiAyLjkgMS4yIDQgMi40IDUuMyA3LjcgMy4xIDExLjh6IiBmaWxsPSIjMmM1OTY3Ii8+PGcgZmlsbD0iIzJjNTk2NyI+PHBhdGggZD0iTTguNDUgMTYuNDd2LS4yNTRxMC0uMTg2LS4wMTQtLjQtLjAxNC0uMjI2LS4wMTQtLjQxM3YtLjI2N3EwLS40NC4wOC0xLjAyNi4wOTQtLjU4Ny4zMi0xLjEyLjIyNy0uNTQ3LjY0LS45Mi40MTQtLjM3NCAxLjA4LS4zNzRoNi4yOTRxLjU3MyAwIDEuMDI2LjM0Ny40NjcuMzQ3Ljc4Ny44NTMuMzMzLjUwNy41MDcgMS4wOTQuMTczLjU3My4xNzMgMS4wNTMgMCAuMzg3LS4xMzMuOTYtLjEzNC41NzMtLjQgMS4xMDctLjI2Ny41Mi0uNjY3Ljg5My0uMzg3LjM3My0uOTIuMzczaC02Ljg1M3EtLjMyIDAtLjYyNy0uMnQtLjU3My0uNDhxLS4yNTQtLjI5My0uNDU0LS42MjYtLjE4Ni0uMzM0LS4yNTMtLjZ6bTEuMTItMS4zMzRxMCAuMzM0LjA4LjcwNy4wOC4zNi4yNjYuNjguMTg2LjMwNy40OC41MDcuMjkzLjIuNzIuMmg1LjMzM3EuNDQgMCAuNzMzLS4yMTQuMjk0LS4yMjYuNDY3LS41Ni4xODctLjMzMy4yNjctLjcyLjA4LS4zODYuMDgtLjczMyAwLS4yNC0uMDY3LS41NzMtLjA2Ny0uMzM0LS4yMTMtLjY0LS4xMzQtLjMwNy0uMzYtLjUyLS4yMTQtLjIyNy0uNTItLjIyN2gtNi4xMDdxLS4zODcgMC0uNjEzLjI0LS4yMjcuMjQtLjM0Ny41NzMtLjEyLjMyLS4xNi42OC0uMDQuMzYtLjA0LjZ6TTIwLjAzNyAxNC45NXEwIC40NC4wOTMgMS4wMjYuMTA3LjU4Ny4zNDcgMS4xMi4yNC41MzQuNjQuOTA3LjQxMy4zNzMgMS4wNC4zNzNoNS41MzNxLjA5NCAwIC4yLS4xMi4xMi0uMTIuMjE0LS4yOTMuMDkzLS4xNzMuMTQ2LS4zNDcuMDY3LS4xNzMuMDY3LS4yOEgyMi43M3EtLjI2NiAwLS40OTMtLjE3My0uMjEzLS4xNzMtLjM4Ny0uNDEzLS4xNi0uMjQtLjI2Ni0uNDk0LS4xMDctLjI2Ni0uMTQ3LS40NTNWMTQuNDdxMC0uMTg3LjA4LS40NC4wOTMtLjI2Ny4yNC0uNTA3dC4zNDctLjRxLjItLjE3My40NC0uMTczaDUuMTQ2bC4wNC0uMDU0cS4wNTQtLjA1My4xMDctLjEzMy4wNjctLjA4LjEyLS4xNi4wNjctLjA4LjEwNy0uMTMzLjAxMy0uMDU0LjA1My0uMTYuMDUzLS4xMDcuMTA3LS4yMjcuMDY2LS4xMi4xMi0uMjI3LjA2Ni0uMTA2LjEwNi0uMTZoLTYuMTA2cS0uNTc0IDAtMS4wMTQuMzQ3LS40MjYuMzQ3LS43Mi44NTMtLjI4LjQ5NC0uNDI2IDEuMDU0LS4xNDcuNTYtLjE0NyAxek0zNy42MDQgMTQuOTVxMC0uNDQtLjE0Ni0xLS4xNDctLjU2LS40NC0xLjA1NC0uMjk0LS41MDYtLjczNC0uODUzLS40MjYtLjM0Ny0xLS4zNDdoLTYuMTA2djYuNjhoNi4yOTNxLjYxMyAwIDEuMDI3LS4zNzMuNDEzLS4zNzMuNjUzLS45MDcuMjUzLS41MzMuMzQ3LTEuMTIuMTA2LS41ODYuMTA2LTEuMDI2em0tNy4xMi0xLjk4N2g0LjY0cS4yMTQgMCAuNDE0LjE2LjIuMTYuMzQ2LjQuMTQ3LjIyNy4yMjcuNDkzLjA5My4yNTQuMDkzLjQ1NHYxLjMzM3EtLjA0LjE4Ny0uMTQ2LjQ1My0uMTA3LjI1NC0uMjguNDk0LS4xNzQuMjQtLjQuNDEzLS4yMTQuMTczLS40NjcuMTczaC00LjQyN3oiLz48L2c+PC9zdmc+");
+}
+
+.ocd-logo {
+ height: var(--console-logo-height);
+ width: var(--console-logo-width);
+ background-repeat: no-repeat;
+ background-position: center;
+}
+
+.ocd-background {
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 100%;
+}
+
+.ocd-busy-cursor {
+ cursor: progress;
+}
+
+.draggable {
+ cursor: move;
+ cursor: -webkit-grab;
+ cursor: -moz-grab;
+ cursor: grab;
+}
+
+.draggable:active {
+ cursor: -webkit-grabbing;
+ cursor: -moz-grabbing;
+ cursor: grabbing;
+}
+
+.ocd-designer-tab-bar {
+ display: flex;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+ height: var(--console-tab-bar-height);
+ min-height: var(--console-tab-bar-height);
+ max-height: var(--console-tab-bar-height);
+ width: 100%;
+ border-bottom: #312D2A solid 1px;
+}
+
+.ocd-designer-tab {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ border-right: #555555 solid 1px;
+ padding-right: 5px;
+ font-size: smaller;
+}
+
+.ocd-designer-tab:hover {
+ box-shadow: 0 0 5px #1d2733;
+}
+
+.ocd-designer-tab > span {
+ margin: 0 5px 0 5px;
+}
+
+.ocd-sort-background-icon {
+ background-repeat: no-repeat;
+ background-position: right;
+ background-size: 15px;
+}
+
+.ocd-sortable-column {
+ cursor: default;
+}
+
+
+
+
+
+
+
+/*
+** Top Level Layout
+*/
+
+.ocd-console {
+ display: grid;
+ grid-template-rows: [console-header] var(--console-header-height) [console-toolbar] var(--console-toolbar-height) [console-body] auto [console-footer] var(--console-footer-height);
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+
+ width: 100%;
+ height: 100vh;
+ background-color: var(--console-background-colour);
+}
+
+.ocd-console-title-bar {
+ display: grid;
+ grid-auto-flow: column;
+ margin: 0;
+ padding: 0 20px 0 5px;
+ box-sizing: border-box;
+ min-height: var(--console-titlebar-height);
+ max-height: var(--console-titlebar-height);
+ height: var(--console-titlebar-height);
+ width: 100%;
+ align-items: center;
+ vertical-align: middle;
+}
+
+.ocd-console-title-bar input {
+ width: 100%;
+ border: none;
+}
+
+.ocd-console-menu-bar {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ min-height: var(--console-menubar-height);
+ max-height: var(--console-menubar-height);
+ height: var(--console-menubar-height);
+ width: 100%;
+ border-bottom: #555555 1px solid;
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-console-header {
+ display: grid;
+ grid-template-columns: var(--console-logo-width) auto;
+ margin: 0;
+ padding: 0 0 0 5px;
+ box-sizing: border-box;
+ min-height: var(--console-header-height);
+ max-height: var(--console-header-height);
+ height: var(--console-header-height);
+ width: 100%;
+ border-bottom: #555555 1px solid;
+ align-items: center;
+}
+
+.ocd-title-and-menu {
+ padding-left: 10px;
+ margin: auto;
+ display: block;
+ height: var(--console-logo-height);
+ width: 100%;
+}
+
+.ocd-console-toolbar {
+ margin: 0;
+ padding: 0 3px 0 3px;
+ box-sizing: border-box;
+ min-height: var(--console-toolbar-height);
+ max-height: var(--console-toolbar-height);
+ height: var(--console-toolbar-height);
+ width: 100%;
+ border-bottom: #555555 1px solid;
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-toolbar-separator-right {
+ padding-right: 2px !important;
+ margin-right: 2px !important;
+ border-right: #d0d7de solid 1px !important;
+}
+
+.ocd-toolbar-left {
+ display: inline-block;
+ margin-right: auto;
+ align-items: left;
+}
+
+.ocd-toolbar-left > div {
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-toolbar-centre {
+ display: inline-block;
+ margin-left: auto;
+ margin-right: auto;
+ align-items: center;
+}
+
+.ocd-toolbar-centre > div {
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-toolbar-right {
+ display: inline-block;
+ margin-left: auto;
+ align-items: right;
+}
+
+.ocd-toolbar-right > div {
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-console-toolbar-icon, .ocd-console-three-dot-menu-icon {
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 15px;
+ width: 25px;
+ height: 25px;
+}
+
+.ocd-console-toolbar-icon:hover::before {
+ transform: scale(1.1);
+ box-shadow: 0 0 15px #1d2733;
+}
+
+.ocd-console-toolbar-icon:hover {
+ color: #1d2733;
+ box-shadow: 0 0 5px #1d2733;
+ text-shadow: 0 0 5px #1d2733;
+}
+
+.ocd-console-toolbar-dropdown {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+}
+
+.ocd-console-toolbar-dropdown > ul {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ list-style: none;
+ text-decoration: none;
+}
+
+.ocd-console-toolbar-dropdown-item {
+ position: relative;
+ font-size: 14px;
+}
+
+.ocd-console-toolbar-dropdown-item > ul {
+ position: absolute;
+ box-shadow: 0 10px 15px -3px rgba(46, 41, 51, 0.08),
+ 0 4px 6px -2px rgba(71, 63, 79, 0.16);
+ font-size: 0.875rem;
+ z-index: 99999;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ list-style: none;
+ background-color: #f2f7f7;
+ border-radius: 0.5rem;
+ border: 1px solid #d1d1d4;
+ display: none;
+}
+
+.ocd-console-toolbar-dropdown-item > ul.show {
+ display: block;
+ cursor: pointer;
+}
+
+.ocd-console-toolbar-dropdown-item > ul.slide-down {
+ top: var(--console-layers-bar-height);
+}
+
+.ocd-console-toolbar-dropdown-item > ul.slide-right {
+ right: 0
+}
+
+.ocd-console-toolbar-dropdown-item > ul.slide-up {
+ bottom: var(--console-pages-bar-height);
+}
+
+.ocd-mouseover-highlight:hover {
+ color: #1d2733;
+ box-shadow: 0 0 5px #1d2733;
+}
+
+.ocd-dropdown-menu-item {
+ display: block;
+ padding: 0 10px 0 10px;
+}
+
+.ocd-dropdown-menu-item > div {
+ margin: 2px 0 2px 0;
+ white-space: nowrap;
+}
+
+.ocd-console-body {
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+ overflow: hidden;
+}
+
+.ocd-console-footer {
+ display: flex;
+ grid-auto-flow: column;
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ min-height: var(--console-footer-height);
+ max-height: var(--console-footer-height);
+ height: var(--console-footer-height);
+
+ border-top: #aeaeae 1px solid;
+ color: #aeaeae;
+ font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
+ font-size: small;
+ align-items: center;
+}
+
+.ocd-footer-left {
+ display: inline-block;
+ margin-right: auto;
+ align-items: left;
+ height: 100%;
+}
+
+.ocd-footer-left > div {
+ display: grid;
+ grid-auto-flow: column;
+ height: 100%;
+}
+
+.ocd-footer-left > div > div {
+ display: flex;
+ min-height: 100%;
+ margin-left: 5px;
+}
+
+.ocd-footer-left > div > div > label,
+.ocd-footer-left > div > div > span {
+ margin: auto;
+}
+
+.ocd-active-file-modified-icon {
+ background-repeat: no-repeat;
+ background-position: left;
+ background-size: 25px;
+ width: 25px;
+ height: 25px;
+ padding-left: 30px;
+}
+
+.ocd-footer-centre {
+ display: inline-block;
+ margin-left: auto;
+ margin-right: auto;
+ align-items: center;
+}
+
+.ocd-footer-centre > div {
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-footer-right {
+ display: inline-block;
+ margin-left: auto;
+ margin-right: 10px;
+ align-items: right;
+ height: 100%;
+}
+
+.ocd-footer-right > div {
+ display: grid;
+ grid-auto-flow: column;
+ height: 100%;
+}
+
+.ocd-footer-right > div > label,
+.ocd-footer-right > div > span {
+ margin: auto;
+}
+
+.ocd-cache-picker {
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-cache-picker > div {
+ margin: auto;
+}
+
+.ocd-cache-picker > div > span {
+ padding-right: 5px;
+}
+
+
+
+
+
+/*
+** Menu Items
+*/
+
+.ocd-console-main-menu {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ display: flex;
+ align-items: center;
+ flex-wrap: wrap;
+ list-style: none;
+}
+
+.ocd-menu-item {
+ position: relative;
+ font-size: 14px;
+}
+
+.ocd-menu-item-icon {
+ background-position: center left 3px;
+ background-repeat: no-repeat;
+ background-size: 13px;
+}
+
+.ocd-menu-item>a {
+ display: block;
+ padding: 0 10px 0 10px;
+ font-size: inherit;
+ color: inherit;
+ text-decoration: none;
+ text-align: left;
+}
+
+.ocd-menu-item>a:hover {}
+
+.ocd-submenu-item {
+ position: relative;
+ font-size: 14px;
+}
+
+.ocd-submenu-item>a {
+ display: block;
+ padding: 0 5px 0 20px;
+ font-size: inherit;
+ color: inherit;
+ text-decoration: none;
+ margin: 0 0 10px 0;
+ text-align: left;
+}
+
+.ocd-submenu-item-has-submenu {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0wIDBsMTIgMTJMMCAyNFYweiIgZmlsbD0iIzE2MTUxMyIvPjwvc3ZnPg==");
+ background-position: right 10px center;
+ background-repeat: no-repeat;
+ background-size: 4px;
+}
+
+.ocd-submenu-item a:hover {
+ background-color: #f2f2f2;
+ box-shadow: 0 0 5px #1d2733;
+}
+
+.ocd-dropdown-menu {
+ position: absolute;
+ box-shadow: 0 10px 15px -3px rgba(46, 41, 51, 0.08),
+ 0 4px 6px -2px rgba(71, 63, 79, 0.16);
+ font-size: 0.875rem;
+ z-index: 9999;
+ min-width: 10rem;
+ padding: 0.5rem 0 0 0;
+ list-style: none;
+ background-color: #f2f7f7;
+ border-radius: 0.5rem;
+ border: 1px solid #d1d1d4;
+ display: none;
+}
+
+.ocd-dropdown-menu.show {
+ display: block;
+}
+
+.ocd-dropdown-menu .ocd-dropdown-submenu {
+ position: absolute;
+ left: 98%;
+ top: -10px;
+}
+
+
+
+
+
+/*
+** Palettes
+*/
+
+.ocd-palettes-view {
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ width: var(--console-palette-width)
+}
+
+.ocd-palettes {
+ display: flex;
+ flex-direction: row;
+ box-sizing: border-box;
+ overflow-y: auto;
+ overflow-x: hidden;
+ width: var(--console-palette-width)
+}
+
+.ocd-palette-select {
+ display: flex;
+ flex-direction: row;
+ margin: 0;
+ padding: 0;
+ height: var(--console-layers-bar-height);
+ min-height: var(--console-layers-bar-height);
+ max-height: var(--console-layers-bar-height);
+ width: 100%;
+ border-bottom: #312D2A solid 1px;
+ border-right: #312D2A solid 1px;
+ font-size: smaller;
+}
+
+.ocd-palette-select > div {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ vertical-align: middle;
+}
+
+.ocd-palette-select > div > input {
+ height: 100%;
+ display: block;
+ box-sizing: border-box;
+}
+
+.ocd-palette-select > div > label,
+.ocd-palette-select > div > span {
+ margin: auto;
+}
+
+
+
+
+
+
+/*
+** Loading
+*/
+
+.ocd-query-wrapper {
+ display: block;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 100;
+ padding: 100px 100px;
+ width: 100%;
+ height: 100%;
+ opacity: 0.8;
+}
+
+@keyframes animate-icing {
+ 0% {
+ background-position: -140px 0
+ }
+ 10% {
+ background-position: -70px 0
+ }
+ 15% {
+ background-position: -46.66667px 0
+ }
+ 30% {
+ background-position: 0 0
+ }
+ 70% {
+ background-position: 0 0
+ }
+ 85% {
+ background-position: 46.66667px 0
+ }
+ 90% {
+ background-position: 70px 0
+ }
+ to {
+ background-position: 140px 0
+ }
+}
+
+#misshapen-doughnut {
+ animation: animate-icing 2.2s linear infinite;
+ background: linear-gradient(#eee, #eee) no-repeat;
+ border: 1px solid #fff;
+ border-radius: 80px;
+ height: 80px;
+ width: 140px;
+ margin: auto;
+ position: relative;
+ opacity: 1;
+}
+
+#misshapen-doughnut:before {
+ background: linear-gradient(90deg, #a3f022, #3e9fff);
+ border-radius: 80px;
+ content: "";
+ display: block;
+ height: 100%;
+ position: absolute;
+ width: 100%;
+ z-index: -1
+}
+
+#misshapen-doughnut:after {
+ background-color: #fff;
+ border-radius: 80px;
+ content: "";
+ display: block;
+ height: 50px;
+ left: 15px;
+ position: relative;
+ top: 15px;
+ width: 110px
+}
+
+
+
+
+
+
+/*
+** Designer View
+*/
+
+.ocd-designer-toolbar {
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-designer-toolbar-zoom-controls {
+ margin-left: 2px;
+ display: grid;
+ grid-auto-flow: column;
+}
+
+.ocd-designer-toolbar-zoom-controls > div {
+ margin: auto;
+}
+
+.ocd-designer-toolbar-zoom-controls select {
+ border: none;
+}
+
+.ocd-designer {
+ display: grid;
+ grid-template-columns: var(--console-palette-width) calc(100% - var(--console-palette-width) - var(--console-properties-width)) var(--console-properties-width);
+ box-sizing: border-box;
+ width: 100%;
+ height: 100%;
+}
+
+.ocd-designer-left-panel-only {
+ grid-template-columns: var(--console-palette-width) calc(100% - var(--console-palette-width));
+}
+
+.ocd-designer-right-panel-only {
+ grid-template-columns: calc(100% - var(--console-properties-width)) var(--console-properties-width);
+}
+
+.ocd-designer-no-side-panels {
+ grid-template-columns: 100%;
+}
+
+.ocd-designer-palette-and-properties {
+ grid-template-columns: var(--console-palette-width) calc(100% - var(--console-palette-width) - var(--console-properties-width)) var(--console-properties-width);
+}
+
+.ocd-designer-left-panel {
+ display: flex;
+ flex-direction: column;
+ overflow-x: hidden;
+ overflow-y: hidden;
+ box-sizing: border-box;
+ width: var(--console-palette-width);
+ min-width: var(--console-palette-width);
+ min-height: 100%;
+ border-right: #555555 1px solid;
+}
+
+.ocd-designer-palette {
+ display: block;
+ direction: rtl;
+ overflow-x: hidden;
+ overflow-y: scroll;
+ box-sizing: border-box;
+ width: 100%;
+ min-height: 100%;
+ padding-bottom: 30px;
+}
+
+.ocd-model-palette {
+ overflow: scroll;
+ white-space: nowrap;
+}
+
+.ocd-model-palette ul {
+ list-style: none;
+ display: block;
+ padding: 0;
+ margin: 0;
+}
+
+.ocd-model-palette li {
+ padding-left: 0.5em;
+ margin-top: 2px;
+}
+
+.ocd-model-palette li > div {
+ display: inline-block;
+ margin-left: 0;
+ padding-left: 0;
+ background-repeat: no-repeat;
+ background-position: left;
+ background-position-x: 0.75em;
+ background-size: 1.25em 1.25em;
+ white-space: nowrap;
+}
+
+.ocd-model-palette li > div.tree-collapsed::before {
+ content: "+";
+ color: #336600;
+ display: inline-block;
+}
+
+.simple-list-element > div {
+ display: flex !important;
+ flex-direction: row;
+ flex-wrap: nowrap;
+ justify-content: flex-start;
+ align-items: center;
+}
+
+.simple-list-element div > div.draggable {
+ display: block;
+ background-repeat: no-repeat;
+ background-position: center;
+ background-size: 15px 15px;
+ width: 20px;
+ height: 20px;
+ flex: none;
+}
+
+.simple-list-element div > div.draggable:active {
+ width: 35px;
+ height: 35px;
+ background-size: 30px 30px;
+ border: 1px dashed red;
+}
+
+.simple-list-element > div > label,
+.simple-list-element > div > span {
+ clear: both;
+ margin-left: 5px;
+ text-wrap: none;
+ white-space: nowrap;
+ padding-right: 1em;
+ flex: auto;
+ font-size: small;
+}
+
+.collapsible-list-element > div > label,
+.collapsible-list-element > div > span {
+ clear: both;
+ margin-left: 0.5em;
+ text-wrap: none;
+ white-space: nowrap;
+ padding-right: 1em;
+ font-size: smaller;
+}
+
+.collapsible-list-element > div::before {
+ content: "-";
+ color: #336600;
+ display: inline-block;
+}
+
+.ocd-designer-palette-provider {
+ display: block;
+ direction: ltr;
+ width: 100%;
+ padding: 0 0 10px 0;
+ background-color: white;
+}
+
+.ocd-designer-palette-provider>details {
+ display: block;
+ margin: 0;
+ padding: 0;
+ width: 100%;
+}
+
+.ocd-designer-palette-provider>details>summary {
+ display: flex;
+ font-size: smaller;
+ font-weight: bolder;
+ color: #1d2733;
+ width: 100%;
+ height: var(--console-layers-bar-height);
+ min-height: var(--console-layers-bar-height);
+ max-height: var(--console-layers-bar-height);
+ border-bottom: solid black 1px;
+}
+
+.ocd-designer-palette-provider>details>summary::marker,
+.ocd-designer-palette-provider>details>summary::-webkit-details-marker {
+ display: none;
+}
+
+.ocd-designer-palette-provider>details>summary:hover {
+ background-color: #f0f2f5;
+}
+
+.ocd-designer-palette-provider>details>summary>div {
+ display: flex;
+ align-items: left;
+ background-repeat: no-repeat;
+ background-size: 20px;
+ background-position-x: 2px;
+ background-position-y: center;
+ height: 100%;
+ width: fit-content;
+ text-overflow: ellipsis;
+}
+
+.ocd-designer-palette-provider>details>summary>div>label,
+.ocd-designer-palette-provider>details>summary>div>span {
+ margin: auto;
+ text-overflow: ellipsis;
+ text-wrap: nowrap;
+}
+
+.ocd-designer-palette-provider>details>summary:before {
+ border-radius: 5px;
+ content: '\25B9';
+ color: #1d2733;
+ float: left;
+ margin: 2px;
+ padding: 0 0 0 0;
+ text-align: center;
+ width: 10px;
+}
+
+.ocd-designer-palette-provider>details[open]>summary:before {
+ content: '\25BF';
+}
+
+.ocd-designer-palette-group {
+ display: block;
+ direction: ltr;
+ width: 100%;
+ padding: 5px 0 10px 0;
+ background-color: white;
+}
+
+.ocd-designer-palette-group>details {
+ display: block;
+ width: 100%;
+ padding-left: 15px;
+}
+
+.ocd-designer-palette-group>details>summary {
+ display: inline-block;
+ font-size: small;
+ width: 100%;
+ height: 24px;
+ border-bottom: solid black 1px;
+ padding-bottom: 2px;
+}
+
+.ocd-designer-palette-group>details>summary::marker,
+.ocd-designer-palette-group>details>summary::-webkit-details-marker {
+ display: none;
+}
+
+.ocd-designer-palette-group>details>summary>div {
+ display: flex;
+ align-items: left;
+ background-repeat: no-repeat;
+ background-size: 20px;
+ background-position-x: 2px;
+ background-position-y: center;
+ height: 100%;
+ width: fit-content;
+ padding-left: 24px;
+}
+
+.ocd-designer-palette-group>details>summary>div>label,
+.ocd-designer-palette-group>details>summary>div>span {
+ margin: auto;
+}
+
+.ocd-designer-palette-group>details>summary:before {
+ border-radius: 5px;
+ content: '\25B9';
+ color: #1d2733;
+ float: left;
+ margin: 2px;
+ padding: 0 0 0 0;
+ text-align: center;
+ width: 10px;
+}
+
+.ocd-designer-palette-group>details[open]>summary:before {
+ content: '\25BF';
+}
+
+.ocd-designer-palette-group-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(45px, 45px));
+}
+
+.ocd-designer-palette-group-verbose-grid {
+ display: grid;
+ grid-template-columns: repeat(auto-fit, minmax(80px, 80px));
+}
+
+.ocd-designer-palette-resource {
+ display: block;
+ background-repeat: no-repeat;
+ background-position-x: center;
+ background-size: 30px 30px;
+ font-size: small;
+ margin: 5px;
+ padding-top: 30px;
+ text-align: center;
+ border: 1px solid white;
+ justify-self: center;
+}
+
+.ocd-designer-palette-group-grid .ocd-designer-palette-resource {
+ width: 35px;
+}
+
+.ocd-designer-palette-group-verbose-grid .ocd-designer-palette-resource {
+ width: 80px;
+}
+
+.ocd-designer-palette-resource:hover {
+ border: 1px dashed red;
+}
+
+.ocd-designer-view {
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ min-height: 100%;
+ flex-grow: 1;
+}
+
+.ocd-designer-canvas-layers-bar {
+ display: grid;
+ grid-template-columns: var(--console-toolbar-icon-width) auto var(--console-toolbar-icon-width);
+ height: var(--console-layers-bar-height);
+ min-height: var(--console-layers-bar-height);
+ max-height: var(--console-layers-bar-height);
+ width: 100%;
+ border-bottom: #312D2A solid 1px;
+ padding: 0;
+ margin: 0;
+ box-sizing: border-box;
+}
+
+.ocd-designer-canvas-layers {
+ display: flex;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+ height: var(--console-layers-bar-height);
+ min-height: var(--console-layers-bar-height);
+ max-height: var(--console-layers-bar-height);
+ width: 100%;
+ max-width: 100%;
+ border-bottom: #312D2A solid 1px;
+ border-left: #312D2A solid 1px;
+ border-right: #312D2A solid 1px;
+ overflow-x: auto;
+ overflow-y: hidden;
+ scrollbar-width: none; /* Firefox */
+}
+
+.ocd-designer-canvas-layers::-webkit-scrollbar {
+ display: none; /* Safari and Chrome */
+}
+
+.ocd-designer-canvas-layer {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ border-right: #555555 solid 1px;
+ padding-right: 5px;
+ font-size: smaller;
+ box-sizing: border-box;
+ height: var(--console-layers-bar-height);
+ max-height: var(--console-layers-bar-height);
+}
+
+.ocd-designer-canvas-layer > label,
+.ocd-designer-canvas-layer > span {
+ padding: 0 5px;
+ font-weight: bolder;
+ text-wrap: nowrap;
+}
+
+.ocd-designer-canvas-layer:hover {
+ box-shadow: 0 0 5px #1d2733;
+}
+
+.ocd-layer-selected {
+ background-color: #d1d1d4;
+}
+
+.ocd-layer-selected input {
+ font-weight: bolder;
+}
+
+.ocd-layer-visiblity-icon {
+ display: block;
+ height: var(--console-layers-bar-height);
+ width: var(--console-layers-bar-height);
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 13px;
+}
+
+.ocd-layer-icon {
+ display: block;
+ height: var(--console-layers-bar-height);
+ width: var(--console-layers-bar-height);
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 15px;
+}
+
+.ocd-canvas-layer-name {
+ display: block;
+ margin: auto;
+ padding-left: var(--console-layers-bar-height);
+ max-height: var(--console-layers-bar-height);
+ background-repeat: no-repeat;
+ background-position-x: left;
+ background-position-y: center;
+ background-size: 20px;
+ flex-grow: 1;
+}
+
+.ocd-canvas-layer-name > input, .ocd-canvas-page-name > input {
+ display: block;
+ text-overflow: ellipsis;
+ margin: 0;
+ padding: 0;
+ border: none;
+ box-sizing: border-box;
+ background-color: inherit;
+}
+
+.ocd-designer-canvas-pages-bar {
+ display: grid;
+ grid-template-columns: var(--console-toolbar-icon-width) auto var(--console-toolbar-icon-width);
+ width: 100%;
+ border-top: #312D2A solid 1px;
+ padding: 0;
+ margin: 0;
+ box-sizing: border-box;
+}
+
+.ocd-designer-canvas-pages {
+ display: flex;
+ box-sizing: border-box;
+ margin: 0;
+ padding: 0;
+ height: var(--console-pages-bar-height);
+ min-height: var(--console-pages-bar-height);
+ max-height: var(--console-pages-bar-height);
+ width: 100%;
+ max-width: 100%;
+ border-left: #312D2A solid 1px;
+ border-right: #312D2A solid 1px;
+ overflow-x: auto;
+ scrollbar-width: none; /* Firefox */
+}
+
+.ocd-designer-canvas-pages::-webkit-scrollbar {
+ display: none; /* Safari and Chrome */
+}
+
+.ocd-designer-canvas-page {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ border-right: #555555 solid 1px;
+ padding-left: 5px;
+ padding-right: 5px;
+ font-size: smaller;
+ white-space: nowrap;
+}
+
+.ocd-designer-canvas-page:hover {
+ box-shadow: 0 0 5px #1d2733;
+}
+
+.ocd-canvas-page-name {
+ display: block;
+ margin: auto;
+ max-height: var(--console-pages-bar-height);
+ flex-grow: 1;
+}
+
+.ocd-page-selected {
+ background-color: #d1d1d4;
+}
+
+.ocd-page-selected span {
+ font-weight: bolder;
+}
+
+.ocd-designer-canvas {
+ display: block;
+ box-sizing: border-box;
+ flex-grow: 1;
+ position: relative;
+ overflow: auto;
+}
+
+.ocd-designer-canvas-svg {
+ fill: white;
+}
+
+/*
+** SVG Designer Canvas
+*/
+
+.ocd-svg-resize {
+ fill: purple;
+ opacity: 0.1;
+}
+
+.ocd-svg-resize-point {
+ fill: purple;
+}
+
+.ocd-svg-container-ew-resize {
+ stroke-width: 3px;
+ stroke: red;
+ stroke-opacity: 1;
+ fill: none;
+ pointer-events: all;
+}
+
+.ocd-svg-container-ew-resize:hover {
+ cursor: ew-resize;
+}
+
+.ocd-svg-container-ns-resize {
+ stroke-width: 3px;
+ stroke: black;
+ stroke-opacity: 0.01;
+ fill: none;
+ pointer-events: all;
+}
+
+.ocd-svg-container-ns-resize:hover {
+ cursor: ns-resize;
+}
+
+.ocd-svg-drag-ghost {
+ opacity: 0.4;
+ pointer-events: none;
+}
+
+.ocd-svg-context-menu {
+ height: 18em;
+ width: 12em;
+}
+
+.ocd-svg-context-menu > div {
+ border-radius: 5px;
+ padding: 0;
+ margin: 0;
+ box-sizing: border-box;
+ vertical-align: top;
+}
+
+.ocd-svg-context-menu-item a:hover {
+ background-color: #f2f2f2;
+ box-shadow: 0 0 5px #1d2733;
+}
+
+
+
+.ocd-context-menu-div {
+ position: relative;
+}
+
+.ocd-context-menu {
+ list-style: none;
+ list-style-type: none;
+ box-shadow: 0 10px 15px -3px rgba(46, 41, 51, 0.08),
+ 0 4px 6px -2px rgba(71, 63, 79, 0.16);
+ font-size: 0.875rem;
+ z-index: 9999;
+ min-width: 10rem;
+ padding: 0.5rem 0;
+ margin: 0;
+ background-color: #f2f7f7;
+ border-radius: 0.5rem;
+ border: 1px solid #d1d1d4;
+}
+
+.ocd-svg-context-menu-item > a {
+ display: block;
+ padding: 0 10px 0 10px;
+ font-size: inherit;
+ color: inherit;
+ text-decoration: none;
+ text-align: left;
+}
+
+
+
+
+/*
+** Documentation View
+*/
+
+.ocd-documentation-view {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ max-height: 100%;
+}
+
+.ocd-documentation-entry {
+ display: block;
+ width: 100%;
+ height: 100%;
+ overflow-y: scroll;
+ margin: 2px;
+}
+
+.ocd-documentation-entry > textarea {
+ font-family: 'Courier New', Courier, monospace;
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+ height: 100%;
+ min-height: 100%;
+ resize: none;
+ border: none;
+ padding: 5px;
+}
+
+.ocd-documentation-preview {
+ display: block;
+ width: 100%;
+ height: 100%;
+ overflow-y: scroll;
+ padding: 5px;
+}
+
+
+
+
+
+/*
+** Validation View
+*/
+
+.ocd-validation-view {
+ display: block;
+ width: 100%;
+ max-width: 100%;
+ height: 100%;
+ max-height: 100%;
+ padding-right: 1em;
+ box-sizing: border-box;
+ overflow-y: scroll;
+ overflow-x: hidden;
+}
+
+
+
+
+
+/*
+** Markdown View
+*/
+
+.ocd-markdown-view {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ max-height: 100%;
+}
+
+table {
+ border-spacing: 0;
+ border-collapse: collapse;
+ display: block;
+ margin-top: 0;
+ margin-bottom: 16px;
+ width: max-content;
+ max-width: 100%;
+ overflow: auto;
+ }
+
+ tr {
+ background-color: #ffffff;
+ border-top: 1px solid hsla(210, 18%, 87%, 1);
+ }
+
+ tr:nth-child(2n) {
+ background-color: #f6f8fa;
+ }
+
+ td,
+ th {
+ padding: 6px 13px;
+ border: 1px solid #d0d7de;
+ }
+
+ th {
+ font-weight: 600;
+ }
+
+
+
+
+
+/*
+** Terraform View
+*/
+
+.ocd-terraform-view {
+ display: flex;
+ flex-direction: column;
+ max-height: 100%;
+}
+
+.ocd-selected-terraform-content {
+ display: block;
+ overflow: auto;
+ width: 100%;
+ flex-grow: 1;
+}
+
+.ocd-selected-terraform-content > pre {
+ max-height: 100%;
+ max-width: 100%;
+ margin: 5px;
+ word-wrap: normal;
+ text-wrap: pretty;
+}
+
+
+
+
+/*
+** Tabular View
+*/
+
+.ocd-tabular-view {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ max-height: 100%;
+}
+
+.ocd-selected-tabular-content {
+ display: block;
+ overflow: auto;
+ width: 100%;
+ flex-grow: 1;
+}
+
+.ocd-tabular-content {
+ width: 100%;
+ min-width: 100%;
+}
+
+.ocd-tabular-list-header {
+ font-weight: bolder;
+ font-size: smaller;
+}
+
+.ocd-tabular-list-header > .tr {
+ background-color: var(--tabular-header-background-colour);
+}
+
+.ocd-tabular-list-header .th {
+ border-bottom: var(--tabular-line-colour) solid 1px;
+ border-right: var(--tabular-line-colour) solid 1px;
+ padding: 2px;
+ text-align: center;
+ vertical-align: middle;
+}
+
+.ocd-tabular-list-header .th:first-child {
+ text-align: center;
+ padding-left: 0;
+ border-left: var(--tabular-line-colour) solid 1px;
+ width: 40px;
+}
+
+.ocd-tabular-list-body {
+ font-size: smaller;
+}
+
+.ocd-tabular-list-body > .tr:nth-child(odd) {
+ background-color: var(--tabular-body-odd-background-colour);
+}
+
+.ocd-tabular-list-body > .tr:nth-child(even) {
+ background-color: var(--tabular-body-even-background-colour);
+}
+
+.ocd-tabular-list-body .td {
+ border-bottom: var(--tabular-line-colour) solid 1px;
+ border-right: var(--tabular-line-colour) solid 1px;
+ padding: 2px;
+}
+
+.ocd-tabular-list-body .td:first-child {
+ text-align: center;
+ padding-left: 0;
+ border-left: var(--tabular-line-colour) solid 1px;
+}
+
+
+
+
+/*
+** Library View
+*/
+
+.ocd-library-view {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ max-height: 100%;
+}
+
+.ocd-selected-library-content {
+ display: block;
+ overflow: auto;
+ width: 100%;
+ flex-grow: 1;
+ background-color: #5c85d6;
+}
+
+.ocd-library-content {
+ display: block;
+ width: 100%;
+ min-width: 100%;
+ height: 100%;
+ padding: 5px;
+ overflow-y: scroll;
+}
+
+.ocd-library-design {
+ float: left;
+ border: 1px solid black;
+ border-radius: 5px;
+ margin: 15px;
+ height: var(--library-design-height);
+ width: var(--library-design-width);
+ max-height: var(--library-design-height);
+ max-width: var(--library-design-width);
+ background-origin: padding-box;
+ background-repeat: no-repeat;
+ background-clip: padding-box;
+ background-size: var(--library-design-background-size);
+ background-color: var(--library-design-background-colour);
+}
+
+.ocd-library-design-title {
+ font-weight: bolder;
+ margin: 2px;
+ padding-left: var(--library-design-background-size);
+ height: var(--library-design-background-size);
+}
+
+.ocd-library-design-description {
+ font-style: italic;
+ margin: 2px;
+}
+
+
+
+
+/*
+** Variables View
+*/
+
+.ocd-variables-view {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ max-height: 100%;
+}
+
+.ocd-variables-table {
+ overflow: auto;
+ width: 100%;
+ flex-grow: 1;
+}
+
+.ocd-variables-list-header {
+ min-width: 100%;
+ font-weight: bolder;
+ font-size: smaller;
+}
+
+.ocd-variables-list-header > .tr {
+ background-color: var(--variables-header-background-colour);
+}
+
+.ocd-variables-list-header .th {
+ border-top: var(--variables-line-colour) solid 1px;
+ border-bottom: var(--variables-line-colour) solid 1px;
+ border-right: var(--variables-line-colour) solid 1px;
+ padding: 2px;
+ text-align: center;
+}
+
+.ocd-variables-list-header .th:first-child {
+ padding-left: 0;
+ border-left: var(--tabular-line-colour) solid 1px;
+ width: 20rem;
+}
+
+.ocd-variables-list-body {
+ font-size: smaller;
+}
+
+.ocd-variables-list-body > .tr:nth-child(odd) {
+ background-color: var(--tabular-body-odd-background-colour);
+}
+
+.ocd-variables-list-body > .tr:nth-child(even) {
+ background-color: var(--tabular-body-even-background-colour);
+}
+
+.ocd-variables-list-body .td {
+ border-bottom: var(--tabular-line-colour) solid 1px;
+ border-right: var(--tabular-line-colour) solid 1px;
+ padding: 2px;
+}
+
+.ocd-variables-list-body .td:first-child {
+ padding-left: 0;
+ border-left: var(--tabular-line-colour) solid 1px;
+}
+
+.ocd-variables-list-body input {
+ min-width: 100%;
+ box-sizing: border-box;
+}
+
+
+
+
+/*
+** Tags View
+*/
+
+.ocd-common-tags-view {
+ display: flex;
+ flex-direction: column;
+ height: 100%;
+ max-height: 100%;
+}
+
+.ocd-tags-table {
+ overflow: auto;
+ width: 100%;
+ flex-grow: 1;
+}
+
+.ocd-tags-list-header {
+ min-width: 100%;
+ font-weight: bolder;
+ font-size: smaller;
+}
+
+.ocd-tags-list-header > .tr {
+ background-color: var(--variables-header-background-colour);
+}
+
+.ocd-tags-list-header .th {
+ border-top: var(--variables-line-colour) solid 1px;
+ border-bottom: var(--variables-line-colour) solid 1px;
+ border-right: var(--variables-line-colour) solid 1px;
+ padding: 2px;
+ text-align: center;
+}
+
+.ocd-tags-list-header .th:first-child {
+ padding-left: 0;
+ border-left: var(--tabular-line-colour) solid 1px;
+ width: 10rem;
+}
+
+.ocd-tags-list-body {
+ font-size: smaller;
+}
+
+.ocd-tags-list-body > .tr:nth-child(odd) {
+ background-color: var(--tabular-body-odd-background-colour);
+}
+
+.ocd-tags-list-body > .tr:nth-child(even) {
+ background-color: var(--tabular-body-even-background-colour);
+}
+
+.ocd-tags-list-body .td {
+ border-bottom: var(--tabular-line-colour) solid 1px;
+ border-right: var(--tabular-line-colour) solid 1px;
+ padding: 2px;
+}
+
+.ocd-tags-list-body .td:first-child {
+ padding-left: 0;
+ border-left: var(--tabular-line-colour) solid 1px;
+}
+
+.ocd-tags-list-body input {
+ min-width: 100%;
+ box-sizing: border-box;
+}
+
+
+
+
+
+
+/*
+** Properties
+*/
+
+.ocd-radio-buttons-vertical {
+ display: grid;
+ grid-auto-flow: row;
+}
+
+.action-button-background {
+ background-position: center;
+ background-repeat: no-repeat;
+ background-size: 1em;
+ width: 2em;
+ height: 1em;
+}
+
+.ocd-summary-row {
+ display: grid;
+ grid-template-columns: auto 2em;
+ border: none;
+}
+
+.ocd-designer-properties, .ocd-designer-right-panel {
+ display: flex;
+ flex-direction: column;
+ overflow-x: hidden;
+ overflow-y: hidden;
+ box-sizing: border-box;
+ width: var(--console-properties-width);
+ min-width: var(--console-properties-width);
+ min-height: 100%;
+ border-left: #555555 1px solid;
+}
+
+.ocd-properties-header {
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+ padding: 10px 5px;
+ border-bottom: 1px solid #d1d1d4;
+}
+
+.property-editor-title {
+ display: block;
+ box-sizing: border-box;
+ padding-left: 25px;
+ width: 100%;
+ vertical-align: middle;
+ background-position-x: left;
+ background-position-y: center;
+ background-repeat: no-repeat;
+ background-size: 20px 20px;
+ font-weight: bolder;
+}
+
+.heading-background {
+ background-position: right center;
+ background-repeat: no-repeat;
+ background-size: 20px;
+ margin-right: 1em;
+}
+
+.ocd-properties-panel {
+ display: block;
+ box-sizing: border-box;
+ flex-grow: 1;
+ width: 100%;
+ overflow-y: scroll;
+ overflow-x: hidden;
+}
+
+.ocd-properties-documentation-panel {
+ display: grid;
+ grid-template-rows: var(--console-layers-bar-height) auto;
+}
+
+.ocd-properties-documentation-panel > textarea {
+ font-family: 'Courier New', Courier, monospace;
+ display: block;
+ box-sizing: border-box;
+ width: 100%;
+ height: 100%;
+ resize: none;
+ border: none;
+ padding: 5px;
+}
+
+.ocd-properties-documentation-preview-bar {
+ border-bottom: #312D2A solid 1px;
+ font-size: smaller;
+ margin-top: auto;
+ margin-bottom: auto;
+ padding-bottom: 2px;
+}
+
+.ocd-properties-documentation-preview {
+ display: block;
+ width: 100%;
+ height: 100%;
+ overflow-y: scroll;
+ padding-left: 5px;
+}
+
+/* Properties Arragement Panel */
+.ocd-properties-arrangement-panel {
+ display: flex;
+ flex-direction: column;
+ font-size: smaller;
+}
+
+.ocd-arrangement-z-positioning {
+ display: grid;
+ grid-template-columns: auto auto;
+ border-bottom: 1px solid #d1d1d4;
+ margin: 5px 0 5px 0;
+ padding: 5px;
+}
+
+.ocd-arrangement-z-positioning > div {
+ display: flex;
+ flex-direction: row;
+ align-items: center;
+ border: 1px solid #d1d1d4;
+ border-radius: 0.5rem;
+ margin: 2px;
+ padding: 2px;
+}
+
+.ocd-arrangement-z-positioning > div:hover {
+ background-color: #d1d1d4;
+}
+
+.ocd-arrangement-z-positioning > div > span {
+ margin: auto;
+}
+
+.ocd-arrangement-size {
+ display: grid;
+ grid-template-columns: 10em auto auto;
+ border-bottom: 1px solid #d1d1d4;
+ margin: 5px 0 5px 0;
+ padding: 5px;
+}
+
+.ocd-arrangement-size > div {
+ display: block;
+ margin: 2px;
+ padding: 2px;
+}
+
+.ocd-arrangement-size > div > span {
+ opacity: 0.5;
+}
+
+.ocd-arrangement-xy-positioning {
+ display: grid;
+ grid-template-columns: 10em auto auto;
+ border-bottom: 1px solid #d1d1d4;
+ margin: 5px 0 5px 0;
+ padding: 5px;
+}
+
+.ocd-arrangement-xy-positioning > div {
+ display: block;
+ margin: 2px;
+ padding: 2px;
+}
+
+.ocd-arrangement-xy-positioning > div > span {
+ opacity: 0.5;
+}
+
+/* Properties Style Panel */
+.ocd-properties-style-panel {
+ display: flex;
+ flex-direction: column;
+ font-size: smaller;
+}
+
+.ocd-style-fill {
+ display: grid;
+ grid-template-columns: auto auto;
+ column-gap: 15px;
+ row-gap: 5px;
+ min-height: 40px;
+ border-bottom: 1px solid #d1d1d4;
+ margin: 5px 0 5px 0;
+ padding: 5px;
+}
+
+.ocd-style-fill > div {
+ margin-top: auto;
+ margin-bottom: auto;
+}
+
+.ocd-style-stroke {
+ display: grid;
+ grid-template-columns: auto auto;
+ column-gap: 15px;
+ row-gap: 5px;
+ min-height: 40px;
+ border-bottom: 1px solid #d1d1d4;
+ margin: 5px 0 5px 0;
+ padding: 5px;
+}
+
+.ocd-style-stroke input[type='number'] {
+ text-align: right;
+}
+
+.ocd-style-stroke > div {
+ margin-top: auto;
+ margin-bottom: auto;
+}
+
+.ocd-stroke-dasharray-radio {
+ border: solid 1px #161513;
+ border-radius: 5px;
+ width: 110px;
+ padding: 2px;
+}
+
+.ocd-style-stroke-dasharray {
+ display: inline-flex;
+ align-items: center;
+ background-repeat: no-repeat;
+ background-position-x: 10px;
+ background-position-y: center;
+ background-size: 100px 2px;
+ width: 110px;
+ height: 20px;
+ padding: 0;
+ margin-top: auto;
+ margin-bottom: auto;
+}
+
+.ocd-style-stroke-dasharray > input[type='radio'] {
+ margin: 0 5px 0 0;
+}
+
+.ocd-style-stroke-dasharray-1-1 {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAwaDM1IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS1kYXNoYXJyYXk9IjEgMSIvPjwvc3ZnPg==");
+}
+
+.ocd-style-stroke-dasharray-2-2 {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAwaDM1IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS1kYXNoYXJyYXk9IjIgMiIvPjwvc3ZnPg==");
+}
+
+.ocd-style-stroke-dasharray-3-3 {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAwaDM1IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMyIvPjwvc3ZnPg==");
+}
+
+.ocd-style-stroke-dasharray-3-2 {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMyIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAxaDM1IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiIvPjwvc3ZnPg==");
+}
+
+.ocd-style-stroke-dasharray-3-2-1 {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAwaDM1IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMiAxIi8+PC9zdmc+");
+}
+
+.ocd-style-stroke-dasharray-3-1-2-1 {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAwaDM1IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS1kYXNoYXJyYXk9IjMgMSAyIDIiLz48L3N2Zz4=");
+}
+
+.ocd-style-stroke-dasharray-none {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNSAwaDM1IiBzdHJva2U9IiMxNjE1MTMiLz48L3N2Zz4=");
+}
+
+.ocd-style-stroke-width {
+ display: block;
+ vertical-align: top;
+ height: 100%;
+ padding-right: 10px;
+}
+
+.ocd-style-stroke-width > input[type='number'] {
+ margin-left: auto;
+ width: 5em;
+}
+
+.ocd-style-stroke-width > span {
+ margin-top: auto;
+ margin-bottom: auto;
+ margin-left: 2px;
+}
+
+.ocd-colour-picker {
+ position: relative;
+ height: 100%
+}
+
+.ocd-colour-picker-swatch {
+ width: 28px;
+ height: 28px;
+ border-radius: 8px;
+ border: 3px solid #fff;
+ box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1), inset 0 0 0 1px rgba(0, 0, 0, 0.1);
+ cursor: pointer;
+}
+
+.ocd-colour-picker-popup {
+ position: absolute;
+ top: calc(100% + 2px);
+ left: 0;
+ border-radius: 9px;
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.15);
+ z-index: 1000;
+}
+
+.ocd-property-row {
+ box-sizing: border-box;
+ margin: 1px 3px 1px 2px;
+ padding: 1px 3px 1px 2px;
+ width: 100%;
+}
+
+.ocd-simple-property-row {
+ display: grid;
+ grid-template-columns: 150px auto;
+ border: 1px solid lightgray;
+}
+
+.ocd-property-row label,
+.ocd-property-row span {
+ font-size: smaller;
+}
+
+.ocd-property-row div > input[type="text"], input[type="email"], input[type="password"], input[type="range"], input[type="number"], select {
+ box-sizing: border-box;
+ width: 100%;
+ margin: 1px;
+}
+
+.ocd-property-row > div {
+ box-sizing: content-box;
+ padding: 0 5px 0 5px;
+}
+
+.ocd-property-row > div:first-child {
+ border-right: 1px solid lightgray;
+ text-overflow: ellipsis;
+}
+
+.ocd-property-row > div:first-child > label,
+.ocd-property-row > div:first-child > span {
+ font-weight: bolder;
+}
+
+/* Properties Validation */
+.ocd-validation-tab {
+ background-position: right;
+ background-repeat: no-repeat;
+ background-size: 20px;
+ padding-right: 20px;
+}
+
+.ocd-validation-results {
+ margin-right: 1em;
+}
+
+.ocd-validation-results .ocd-details-body {
+ padding-right: 1em;
+}
+
+.ocd-validation-result {
+ border-radius: 5px;
+ border: grey 1px solid;
+ width: 100%;
+ margin: 5px 25px 5px 5px;
+ box-sizing: border-box;
+}
+
+.ocd-validation-error-result {
+ border-left-color: #cc0000;
+ border-left-width: 5px;
+ border-left-style: solid;
+ padding: 10px;
+ width: 100%;
+}
+
+.ocd-validation-error-highlight {
+ fill: #cc0000;
+}
+
+.ocd-validation-warning-result {
+ border-left-color: #ffcc00;
+ border-left-width: 5px;
+ border-left-style: solid;
+ padding: 10px;
+ width: 100%;
+}
+
+.ocd-validation-warning-highlight {
+ fill: #ffcc00;
+}
+
+.ocd-validation-information-result {
+ border-left-color: #5c85d6;
+ border-left-width: 5px;
+ border-left-style: solid;
+ padding: 10px;
+ width: 100%;
+}
+
+.ocd-validation-result-title {
+ padding-left: 25px;
+ width: 100%;
+ height: 20px;
+ vertical-align: middle;
+ background-position-x: left;
+ background-position-y: center;
+ background-repeat: no-repeat;
+ background-size: 20px 20px;
+ color: darkgray;
+}
+
+.ocd-validation-message {
+ word-wrap: normal;
+ width: 100%;
+ margin-top: 5px;
+}
+
+
+
+
+
+/*
+** Dialogs
+*/
+
+.ocd-query-dialog {
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ background: rgba(0, 0, 0, 0.05);
+}
+
+.ocd-query-dialog > div {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ border: solid 2px var(--dialog-border-colour);
+ border-radius: 10px;
+ background-color: var(--dialog-background-colour);
+ padding: 5px;
+ height: 610px;
+ width: 600px;
+}
+
+.ocd-reference-data-query-dialog {
+ position: absolute;
+ left: 0;
+ top: 0;
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+ background: rgba(0, 0, 0, 0.05);
+}
+
+.ocd-reference-data-query-dialog > div {
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
+ border: solid 2px var(--dialog-border-colour);
+ border-radius: 10px;
+ background-color: var(--dialog-background-colour);
+ padding: 5px;
+ height: 150px;
+ width: 600px;
+}
+
+.ocd-dialog-title {
+ background-color: var(--dialog-title-background-colour);
+ color: var(--dialog-title-colour);
+ border-bottom: 1px solid #161513;
+ height: var(--console-titlebar-height);
+ text-align: center;
+}
+
+.ocd-dialog-body {
+ flex-grow: 1;
+ background-color: var(--dialog-body-background-colour);
+ color: var(--dialog-body-colour);
+ padding: 10px;
+}
+
+.ocd-dialog-body > div {
+ display: grid;
+ grid-template-columns: 150px 410px;
+ column-gap: 5px;
+ row-gap: 5px;
+}
+
+.ocd-dialog-footer {
+ background-color: var(--dialog-footer-background-colour);
+ color: var(--dialog-footer-colour);
+ border-top: 1px solid #161513;
+ height: var(--console-titlebar-height);
+ padding: 2px;
+}
+
+.ocd-dialog-footer > div {
+ display: grid;
+ grid-template-columns: auto auto;
+ column-gap: 15px;
+ row-gap: 5px;
+}
+
+.ocd-compartment-picker {
+ display: inline-block;
+ border: 1px solid var(--dialog-input-border-colour);
+ padding: 2px;
+ box-sizing: border-box;
+ height: 410px;
+ width: 410px;
+ overflow-y: scroll;
+ overflow-x: hidden;
+}
+
+.ocd-compartment-picker ul {
+ margin: 0;
+ padding: 0;
+ box-sizing: border-box;
+ align-items: center;
+ list-style: none;
+ text-decoration: none;
+}
+
+.ocd-compartment-picker li > ul {
+ padding-left: 1em;
+}
+
+.ocd-compartment-picker li > label,
+.ocd-compartment-picker li > span {
+ font-family: var(--dialog-input-font-family);
+ font-size: var(--dialog-input-font-size);
+}
+
+.ocd-compartment-picker li > label:hover,
+.ocd-compartment-picker li > span:hover {
+ font-weight: bolder;
+}
+
+.ocd-compartment-search {
+ margin-right: 5px;
+}
+
+.ocd-compartment-search > input {
+ width: 100%;
+}
+
+.ocd-compartment-hierarchy {
+ display: inline-block;
+ font-family: var(--dialog-input-font-family);
+ font-size: var(--dialog-input-font-size);
+}
+
+
+
+
+
+/*
+** Slide Positioning
+*/
+
+.ocd-slide-left {
+ transform: translateX(-100%);
+ transition: all 0.25s;
+}
+
+.ocd-slide-right {
+ transform: translateX(100%);
+ transition: all 0.25s;
+}`,
+
+ 'oci-theme.css': String.raw`/* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. */
+/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. */
+/*
+** Groups
+*/
+.oci-cloud {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHZpZXdCb3g9IjAgMCA3NCA1NCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2MS4yOTUiIHkxPSIxMC45OTgiIHgyPSIuOTkzIiB5Mj0iNTMuNzY3Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM2ODk5ZDEiLz48c3RvcCBvZmZzZXQ9Ii43MjIiIHN0b3AtY29sb3I9IiNiN2Q1NTMiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icHJlZml4X19iIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjYyLjYyNiIgeTE9IjEyLjg3NSIgeDI9IjU5LjU2MiIgeTI9IjE1LjA0OCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNjg5OWQxIi8+PHN0b3Agb2Zmc2V0PSIuNzIyIiBzdG9wLWNvbG9yPSIjYjdkNTUzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fYyIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSI2Mi44OTgiIHkxPSIxMy4yNTgiIHgyPSIyLjU5NiIgeTI9IjU2LjAyNiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNjg5OWQxIi8+PHN0b3Agb2Zmc2V0PSIuNzIyIiBzdG9wLWNvbG9yPSIjYjdkNTUzIi8+PC9saW5lYXJHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9InByZWZpeF9fZCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIxMC44MzIiIHkxPSIyMy40MjEiIHgyPSIxMC4yNTgiIHkyPSIyMy44MjgiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzY4OTlkMSIvPjxzdG9wIG9mZnNldD0iLjcyMiIgc3RvcC1jb2xvcj0iI2I3ZDU1MyIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik00NC4zOCAyOC42NWwuMDQuMTJjLjAxLjAzLjAyLjA3LjA0LjExbC4xNy4zLS4xMy4yNi4xOS0uMTcuMjQuMTljLjA1LjAyLjA2LjAzLjA3LjAzbC4wNi4wMi40LjAzaC4xNmMuMDYgMCAuMTItLjAxLjE3LS4wMi4wNy0uMDEuMTMtLjAzLjE5LS4wNi4xMi0uMDUuMi0uMTIuMjgtLjIyTDYzLjEzIDcuNDFsLjQ3IDIuNDgtLjI0LjE0LjI1LS4wNSAyLjA0IDEzLjVjLjAyLjAzLjAzLjA1LjA1LjA3bC4wNi4wNi4wNi4wNi4xLjA0Yy4wMy4wMS4wNi4wMi4xLjAzLjA3LjAyLjEuMDMuMTIuMDNoLjRsLjEzLS4wNGMuMDgtLjAyLjE1LS4wMy4yMi0uMDYuMjgtLjExLjQ3LS4yOS41My0uNTIuMDItLjA2LjAzLS4xMS4wMy0uMTZsLjAyLS4wOS0uMDEtLjI3LS4wOC0xLjIuMjUtLjEtLjI2LjAzLTIuMTYtMTcuNTdjLS4wMi0uMDMtLjAzLS4wNS0uMDUtLjA3YS40MzUuNDM1IDAgMDEtLjA2LS4wN2wtLjEtLjFhLjU3Mi41NzIgMCAwMC0uMDgtLjA3bC4xMS0uMjUtLjE2LjItLjI0LS4xNmMtLjA0LS4wMi0uMDctLjA0LS4xMS0uMDUtLjA0LS4wMi0uMDctLjAzLS4xMS0uMDUtLjA0LS4wMS0uMDctLjAzLS4xLS4wM0w0OC40MyA1LjIxbC0uMS0uMjUuMDMuMjYtMy4xNy41OGMtLjI3LjA2LS4zOS4zMS0uNDQuNDYtLjAzLjA4LS4wNS4xNC0uMDYuMjF2LjE2YzAgLjA5LS4wMS4xMiAwIC4xNnYuMDdsLjAxLjA1Yy4wMS4wNy4wMi4xMi4wMy4xNi4wMS4wNC4wMi4wOC4wNC4xMi4wMS4wMy4wMi4wNy4wNC4xcy4wMy4wNy4wNS4xYy4wMi4wMy4wNC4wNS4wNi4wOC4wMi4wMy4wNC4wNS4wNi4wNy4wMi4wMi4wNS4wNC4wNy4wNS4wMy4wMi4wNi4wMy4wOS4wNC4wNC4wMi4wNy4wMy4xLjAzLjA0LjAxLjA4LjAxLjEzLjAxbC4wMi4yNi4wNS0uMjUgMS41My0uMDkuMDguMjUuMDEtLjI2IDcuNTktLjg5LjEzLjI1LS4wMy0uMjYgNi42NC0uNjUtMTYuNyAyMS41OWMtLjA4LjExLS4xNS4yMi0uMjEuMzQtLjA0LjA4LS4wNy4xNi0uMDguMjNhLjg4Ljg4IDAgMDAtLjAxLjMxYy0uMDIuMDctLjAxLjExLS4wMS4xNXoiIGZpbGw9InVybCgjcHJlZml4X19hKSIvPjxwYXRoIGQ9Ik03MS4xNCAzOC4xbC0uMDEtLjE3YzAtLjEzLS4wMS0uMjYtLjAxLS4zOXYtLjE3YzAtLjA3IDAtLjE0LS4wMS0uMjIgMC0uMDctLjAxLS4xNC0uMDItLjIxbC0uMDItLjE2LS4wMy0uMjktLjAyLS4yYy0uMDEtLjA4LS4wMS0uMTYtLjAyLS4yNGwtLjA1LS4zNWMtLjAxLS4xLS4wMy0uMTktLjA1LS4yOWwtLjAzLS4xOS0uMDMtLjJjLS4wMi0uMDctLjAzLS4xNC0uMDUtLjJsLS4wMy0uMTJjLS4wMy0uMS0uMDUtLjIxLS4wOC0uMzFsLS4wNC0uMTRjLS4wMS0uMDYtLjAzLS4xMi0uMDUtLjE4bC0uMDYtLjE1LS4wNS0uMTRjLS4wMy0uMS0uMDctLjE5LS4xLS4yOWwtLjA0LS4xMmEuODY1Ljg2NSAwIDAwLS4wNy0uMTdjLS4wMi0uMDUtLjA1LS4xMS0uMDgtLjE2bC0uMDUtLjFjLS4wNC0uMDktLjA4LS4xOC0uMTMtLjI3bC0uMDYtLjEyYy0uMDItLjA1LS4wNS0uMS0uMDctLjE1LS4wMy0uMDUtLjA1LS4xLS4wOC0uMTVsLS4wNi0uMTFjLS4wNS0uMDgtLjA5LS4xNy0uMTQtLjI1bC0uMDctLjEyYy0uMDMtLjA1LS4wNS0uMDktLjA4LS4xNGwtLjE2LS4yNGMtLjA1LS4wOC0uMS0uMTYtLjE2LS4yNGwtLjA3LS4xMWMtLjAzLS4wNC0uMDYtLjA5LS4wOS0uMTNsLS43LS44OWMtLjA1LS4wNi0uMS0uMTItLjE1LS4xN2wtLjM0LS4zOS4xMi0uMjUtLjE5LjE3Yy0uMDUtLjA2LS4xMS0uMTItLjE3LS4xN2wtLjQzLS40MmMtLjA0LS4wNC0uMDgtLjA3LS4xMi0uMTFsLS4wOS0uMDhjLS4wNy0uMDYtLjE0LS4xMy0uMjEtLjE5bC0uMDgtLjA3Yy0uMDQtLjA0LS4wOS0uMDgtLjEzLS4xMmwtLjExLS4xYy0uMDMtLjAzLS4wNy0uMDYtLjEtLjA5LS4wNC0uMDItLjEyLS4wNC0uMjEtLjA3LS4xLS4wMy0uMTktLjA2LS4yOS0uMDdsLS4wNy0uMDJjLS4wMi0uMDEtLjA0LS4wMS0uMDYtLjAxLS4wNi0uMDEtLjA5IDAtLjEzIDAtLjIyLjAxLS4zNi4wNC0uNDguMDlhLjg0OC44NDggMCAwMC0uNDcuNDdjLS4wNS4xMS0uMDcuMjQtLjA3LjQgMCAuMTEuMDEuMjEuMDQuMzEuMDIuMDkuMDUuMTcuMDkuMjYuMDMuMDguMDguMTYuMTIuMjQuMDQuMDcuMDkuMTQuMTUuMjFhMy4zMiAzLjMyIDAgMDAuMzYuMzdjLjA2LjA1LjEuMDkuMTMuMTNsLjU4LjU3Yy4wNS4wNC4wOS4wOS4xMy4xMy4wNC4wNC4wOC4wOS4xMi4xNGwuMDcuMDljLjA3LjA3LjEzLjE1LjE5LjIzbC4wNy4wOWMuMDQuMDUuMDguMDkuMTIuMTRsLjA0LjA1Yy4wNS4wNi4xLjEyLjE0LjE4LjA0LjA1LjA3LjEuMTEuMTVsLjA2LjA5Yy4wNi4wOC4xMi4xNi4xNy4yNWwuMDcuMWMuMDQuMDUuMDcuMS4xLjE1LjAzLjA2LjA3LjExLjEuMTdsLjA1LjA5Yy4wNC4wNy4wNy4xMy4xMS4ybC4wNy4xM2MuMDQuMDcuMDguMTQuMTEuMjFsLjA1LjA5Yy4wMy4wNi4wNy4xMy4wOS4xOS4wMy4wNi4wNS4xMi4wOC4xOGwuMDUuMTEuMTIuMy4wNS4xMWMuMDMuMDYuMDUuMTIuMDcuMThsLjA2LjIuMDQuMTNjLjAzLjA5LjA1LjE5LjA4LjI4bC4wNS4xNy4wNi4yYy4wMi4wNy4wMy4xNS4wNC4yMmwuMDIuMTNjLjAyLjA5LjAzLjE4LjA1LjI3bC4wNC4yMmMuMDEuMDcuMDMuMTUuMDMuMjMuMDEuMDkuMDIuMTkuMDIuMjlsLjAxLjFjLjAxLjEuMDEuMi4wMi4zMWwuMDEuMjNjLjAxLjA4LjAxLjE3LjAxLjI2di4wOGMwIC4wNyAwIC4xNC0uMDEuMjJsLS4wMS4xMmMtLjAxLjE4LS4wMS4zMS0uMDIuNDNsLS4wMy4zNi0uMDIuMTlhNS44NTIgNS44NTIgMCAwMS0uMTEuNzhsLS4wMi4wOWMtLjA0LjIxLS4wNi4zNi0uMS41Mi0uMDUuMTktLjEuMzktLjE2LjU4LS4wNy4yMi0uMTQuNDMtLjIyLjY0LS4xLjI2LS4yMS41MS0uMzQuNzYtLjIuMzktLjQuNzQtLjYzIDEuMDUtLjIyLjMxLS40NC41OC0uNjcuODItLjM1LjM4LS43Ni43NC0xLjI1IDEuMWExMC4xNCAxMC4xNCAwIDAxLTIuMDMgMS4yYy0uMjMuMTEtLjQ4LjIxLS43Mi4zLS4yNS4xLS40Ni4xOC0uNjcuMjVsLS4wOS4wM2MtLjA0LjAyLS4wOC4wMy0uMTIuMDUtLjA4LjAzLS4xNi4wNC0uMjMuMDYtLjA1LjAxLS4xLjAyLS4xNS4wNC0uMTkuMDUtLjM3LjEtLjU2LjE0LS4wNy4wMi0uMTQuMDMtLjIxLjA1YTMuNTg5IDMuNTg5IDAgMDEtLjY2LjEybC0uMTguMDJjLS4xNi4wMi0uMzIuMDUtLjQ4LjA3bC0uMTkuMDNjLS4xLjAxLS4xOS4wMy0uMjkuMDQtLjA5LjAxLS4xNy4wMS0uMjYuMDJsLS44LjA1Yy0uMDguMDEtLjE3LjAxLS4yNS4wMS0uMTQuMDEtLjI4LjAxLS40Mi4wMWwtMjAuNTMuMDF2LjEzbC0yMS4zMi0uMTRjLS4xMiAwLS4yMy0uMDEtLjM1LS4wMWwtLjE0LS4wMmMtLjA4IDAtLjE3IDAtLjI1LS4wMWwtLjIzLS4wMy0uMTQtLjAyYy0uMTMtLjAyLS4yNS0uMDMtLjM3LS4wNS0uMTItLjAyLS4yNC0uMDMtLjM2LS4wNi0uMDgtLjAyLS4xNy0uMDMtLjI1LS4wNWwtLjIyLS4wNWMtLjA3LS4wMS0uMTUtLjAzLS4yMi0uMDUtLjEtLjAzLS4yLS4wNi0uMy0uMDhsLS4zMy0uMS0uMTEtLjAzYy0uMDctLjAyLS4xNS0uMDQtLjIyLS4wNy0uMDYtLjAyLS4xMy0uMDUtLjE5LS4wN2wtLjExLS4wMy0uMy0uMTItLjEyLS4wNWMtLjA2LS4wMi0uMTItLjA0LS4xOC0uMDdzLS4xMS0uMDUtLjE3LS4wOGwtLjQ5LS4yNC0uMTgtLjA5Yy0uMDYtLjAzLS4xMS0uMDYtLjE3LS4wOWwtLjEtLjA2Yy0uMDktLjA1LS4xOC0uMS0uMjYtLjE1bC0uMDktLjA1Yy0uMDYtLjAzLS4xMi0uMDYtLjE3LS4xbC0uMjUtLjE2Yy0uMDgtLjA1LS4xNy0uMTEtLjI1LS4xNmwtLjA5LS4wNmMtLjA1LS4wMy0uMTEtLjA3LS4xNi0uMWwtLjA4LS4wNmMtLjAzLS4wMi0uMDYtLjA1LS4xLS4wOGwtLjA2LS4wNS0uMTUtLjEyLS4wOS0uMDdhMi44IDIuOCAwIDAxLS4yLS4xNmwtLjEyLS4xYy0uMDUtLjA0LS4xLS4wNy0uMTQtLjExbC0uMDgtLjA1Yy0uMDUtLjA0LS4xLS4wNy0uMTQtLjEyLS4wNC0uMDQtLjA4LS4wOC0uMTMtLjEybC0uMDgtLjA4Yy0uMDUtLjA0LS4wOS0uMDktLjEzLS4xM2wtLjA4LS4wOC0uMjEtLjIxLS4wOC0uMDhjLS4wNC0uMDQtLjA4LS4wOC0uMTItLjEzbC0uMDgtLjA4Yy0uMDQtLjA0LS4wOC0uMDktLjEyLS4xMy0uMDQtLjA1LS4wOC0uMDktLjExLS4xNGwtLjA3LS4wOWMtLjA1LS4wNi0uMDktLjExLS4xMy0uMTdsLS4zLS4zOS0uMTEtLjE0Yy0uMDQtLjA1LS4wNy0uMTEtLjEtLjE2bC0uMDYtLjA5Yy0uMDQtLjA1LS4wNy0uMTEtLjEtLjE2bC0uMDYtLjFjLS4wNS0uMDgtLjEtLjE3LS4xNi0uMjZsLS4wNi0uMWMtLjAzLS4wNS0uMDYtLjEtLjA5LS4xNmwtLjA0LS4wOGMtLjAzLS4wNi0uMDctLjEzLS4xLS4xOXMtLjA1LS4xMS0uMDgtLjE3bC0uMjMtLjUxYy0uMDMtLjA2LS4wNi0uMTItLjA4LS4xOGwtLjA1LS4xMmMtLjAzLS4wNi0uMDUtLjEyLS4wNy0uMTgtLjAyLS4wNi0uMDQtLjEzLS4wNi0uMTlMNCA0MC4xNmMtLjAzLS4wOC0uMDUtLjE2LS4wOC0uMjRsLS4wNi0uMTdjLS4wMi0uMDctLjA1LS4xNC0uMDctLjJsLS4wNC0uMTJjLS4wMi0uMDYtLjA0LS4xMy0uMDYtLjE5LS4wMi0uMDctLjAzLS4xNC0uMDUtLjIxbC0uMDMtLjEzYy0uMDItLjA5LS4wNC0uMTktLjA3LS4yOGwtLjA0LS4xN2MtLjAyLS4wNy0uMDMtLjE0LS4wNS0uMjJsLS4wMy0uMTNjLS4wMi0uMDctLjAzLS4xNC0uMDQtLjIybC0uMDMtLjIyLS4wMi0uMTVjLS4wMi0uMTItLjAzLS4yMy0uMDUtLjM1bC0uMDItLjE1LS4wMy0uMjMtLjAxLS4wOGMtLjAxLS4wNC0uMDEtLjA5LS4wMi0uMTMgMC0uMDMgMC0uMDctLjAxLS4xMS0uMDEtLjE0LS4wMS0uMjItLjAxLS4zTDMuMTcgMzZjLS4wMS0uMTMtLjAxLS4yNi0uMDItLjRsLS4wMS0uMTVjLS4wMS0uMDgtLjAxLS4xNi0uMDEtLjI0di0uNDFjMC0uMDkuMDEtLjE4LjAyLS4yN2wuMDEtLjE3LjAzLS40NC4wMS0uMTdjLjAxLS4wOS4wMS0uMTguMDItLjI3LjAxLS4xMS4wMy0uMjMuMDUtLjM0bC4wMy0uMTVjLjAyLS4xMy4wNS0uMjUuMDctLjM4bC4wNi0uMzJjLjAyLS4xMS4wNC0uMjIuMDctLjMzLjA0LS4xNy4wOS0uMzMuMTQtLjVsLjAyLS4wOGMuMDYtLjIuMTMtLjQuMi0uNjEuMDMtLjA5LjA1LS4xNi4wOC0uMjMuMDYtLjEyLjA5LS4yNC4xNC0uMzVsLjAzLS4wNmMuMTEtLjI3LjI0LS41Mi4zNi0uNzcuMTUtLjMuMzEtLjYuNS0uOTIuMy0uNS41OS0uOTIuODgtMS4yOS42LS43NiAxLjMyLTEuNDggMi4xNC0yLjE0LjUxLS40MS45OS0uNzYgMS40Ni0xLjA1LjMxLS4yLjY0LS4zOC45Ny0uNTZsLjA5LS4wNWMuMTUtLjA4LjMxLS4xNS40Ny0uMjJsLjQ0LS4yYy4xOC0uMDguMzUtLjE3LjUzLS4yNC4xNS0uMDYuMzEtLjEyLjQ2LS4xN2wuNDItLjE1Yy4xNC0uMDUuMjktLjExLjQzLS4xNmwuMTYuMjItLjA5LS4yNGMuNTYtLjIuODYtLjUxIDEuMDEtMS4wNWwuMDMtLjA5Yy4wMi0uMDYuMDQtLjEzLjA1LS4ybC4yOS0yLjA5LjA2LS4zMy4wNi0uMzNjLjAyLS4xMi4wNC0uMjMuMDYtLjM0LjAzLS4xMy4wNy0uMjcuMS0uNGwuMDgtLjMyYy4wMi0uMS4wNS0uMi4wOC0uMjlsLjAzLS4wOWMuMDctLjIuMTItLjMzLjE3LS40N2wuMTUtLjRjLjA2LS4xNy4xMi0uMzQuMTktLjUuMS0uMjUuMjEtLjUuMzMtLjc0LjEzLS4yOC4yNy0uNTYuNDItLjgzLjE3LS4zMi4zNi0uNjQuNjEtMS4wMi4zOS0uNjEuODQtMS4xOSAxLjMxLTEuNzMuMzEtLjM1LjY1LS42OSAxLTEgLjUxLS40NiAxLjA3LS44OCAxLjY3LTEuMjUuMzYtLjIyLjY2LS40MS45OS0uNTcuMjMtLjEyLjQ3LS4yMi43MS0uMzJsLjI3LS4xMmE0Ljk0IDQuOTQgMCAwMS44Ny0uMzJjLjA4LS4wMi4xNS0uMDQuMjMtLjA3LjE5LS4wNi4zOS0uMTIuNTktLjE4LjA4LS4wMi4xNS0uMDUuMjMtLjA3YTQuNTcgNC41NyAwIDAxLjcyLS4xN2wuMzEtLjA2Yy4xMi0uMDIuMjQtLjA1LjM2LS4wNy4xMS0uMDIuMjItLjAzLjMzLS4wNWwuMjktLjA0Yy4xMS0uMDIuMjMtLjAzLjM0LS4wNWwuMzEtLjAzLjI4LS4wMi4zMi0uMDNjLjExLS4wMS4yMS0uMDEuMzItLjAxaC4xMWMuMTgtLjAxLjM3LS4wMS41NS0uMDFoLjI4Yy4xMyAwIC4yNy4wMS40LjAybC4xNC4wMWMuMDggMCAuMTcuMDEuMjUuMDEuMDguMDEuMTYuMDIuMjQuMDJsLjIyLjAyLjI5LjAzYy4xMi4wMS4yNC4wMy4zNi4wNS4wOS4wMS4xOS4wMy4yOC4wNWwuMi4wM2MuMDcuMDEuMTUuMDIuMjIuMDQuMDcuMDEuMTQuMDMuMjEuMDVsLjEyLjAzYy4xMS4wMy4yMi4wNS4zMy4wOGwuMTEuMDMuMjIuMDYuMi4wNi4xMS4wNGMuMTQuMDQuMjMuMDcuMzEuMS4xMy4wNC4yMi4wNy4zMS4xMS4wNi4wMi4xMi4wNS4xOS4wN2wuMTguMDdjLjA3LjAzLjE1LjA2LjIyLjA5LjEzLjA1LjIxLjA5LjI5LjEzLjA2LjAzLjEzLjA2LjE5LjA5bC4wOS4wNGMuMTMuMDYuMi4xLjI4LjE0bC4yNy4xNGMuMDUuMDMuMTEuMDYuMTYuMDlsLjQ2LjI3Yy4wNS4wMy4xMS4wNi4xNi4xLjA1LjAzLjEuMDYuMTUuMWwuNDQuM2MuMDUuMDMuMS4wNy4xNS4xbC45My43MmMuMDUuMDQuMDkuMDguMTQuMTJsLjA4LjA3LjIyLjE5LjA4LjA3Yy4wNS4wNC4wOS4wOC4xNC4xMmwuMTIuMTIuNS41LjEzLS4xMi4xMS4zNGMuMDUuMDkuMS4xNS4xNS4yMmExLjI4OCAxLjI4OCAwIDAwLjM3LjI5Yy4wOS4wNC4xNi4wNy4yNC4wOS4xLjAyLjE4LjA0LjI3LjA0LjE4LS4wMS4zMi0uMDQuNDUtLjA5LjI5LS4xMi41My0uMzYuNjUtLjY1LjA1LS4xMy4wOC0uMjcuMDktLjQyIDAtLjExLS4wMS0uMi0uMDMtLjI5LS4wMi0uMDktLjA2LS4xNy0uMDktLjI1bC0uMDctLjEzYy0uMDItLjAyLS4wNS0uMDQtLjA2LS4wNy0uMDQtLjA2LS4xLS4xMS0uMTYtLjE3bC0uMDgtLjA4LS41NS0uNTMtLjUxLS40OWMtLjA0LS4wMy0uMDctLjA3LS4xMS0uMWwuMTEtLjI1LS4xNy4xOS0xLjk0LTEuNTMtLjEyLS4wOWMtLjA0LS4wMy0uMDgtLjA1LS4xMS0uMDgtLjA0LS4wMy0uMDgtLjA1LS4xMy0uMDhsLS43NS0uNDRjLS4wNC0uMDMtLjA5LS4wNS0uMTMtLjA4bC0uMjYtLjE0Yy0uMDUtLjAyLS4wOS0uMDUtLjE0LS4wN2wtLjgtLjM5Yy0uMDQtLjAyLS4wOS0uMDUtLjE0LS4wN2wtLjE1LS4wNi0uMTQtLjA1YTEuMjIgMS4yMiAwIDAxLS4xNy0uMDdsLS41My0uMTljLS4wNS0uMDItLjEtLjA0LS4xNi0uMDZsLS4yNS0uMDhjLS4xLS4wMy0uMTYtLjA1LS4yMi0uMDZsLS4xNC0uMDQtLjMxLS4wOS0uMTQtLjA0Yy0uMDYtLjAyLS4xMS0uMDMtLjE3LS4wNWwtLjA3LS4wMmMtLjA5LS4wMi0uMTctLjA1LS4yNS0uMDYtLjA2LS4wMS0uMTItLjAyLS4xOS0uMDRsLS4xNS0uMDNjLS4xMS0uMDItLjIyLS4wNC0uMzQtLjA2bC0uMTQtLjAzYy0uMDYtLjAxLS4xMy0uMDMtLjE5LS4wNGwtLjEtLjAyYy0uMDgtLjAxLS4xNy0uMDMtLjI1LS4wNC0uMDctLjAxLS4xMy0uMDEtLjItLjAybC0uMTYtLjAxYy0uMTItLjAxLS4yNC0uMDMtLjM2LS4wNGwtLjE2LS4wMmMtLjA3LS4wMS0uMTMtLjAyLS4yLS4wMmwtMS44OC0uMTVoLS43NGwtMS40Ni4yMy0uMzMuMDYtLjMyLjA2LS4zMi4wNi0uMTMtLjI0LjA2LjI1Yy0uMS4wMi0uMTkuMDUtLjI4LjA3bC0uMTkuMDVjLS4xOS4wNS0uMzcuMDktLjU1LjE1LS4yLjA2LS4zOS4xMi0uNTguMTgtLjIxLjA3LS40Mi4xNS0uNjIuMjItLjIzLjA5LS40NS4xOC0uNjguMjgtLjI2LjExLS41LjIyLS43My4zMy0uMy4xNS0uNTkuMzItLjg4LjQ4LS4zNy4yMS0uNzQuNDUtMS4xLjctMS4xNy44MS0yLjI2IDEuNzgtMy4yMyAyLjg4LS40LjQ1LS43OC45NC0xLjIgMS41NS0uMjUuMzctLjUuNzQtLjcyIDEuMTItLjE3LjI5LS4zNC41OS0uNDkuODlsLS4wMy4wNmMtLjEyLjI0LS4yNC40OC0uMzUuNzItLjA3LjE2LS4xNC4zMy0uMi40OWwtLjEzLjM0Yy0uMDcuMTctLjEzLjMzLS4xOS41LS4wNS4xNC0uMDkuMjgtLjE0LjQybC0uMTIuMzYtLjEyLjM5Yy0uMDMuMS0uMDUuMjEtLjA4LjMybC0uMDkuMzctLjA5LjM4Yy0uMDMuMTMtLjA2LjI3LS4wOC40MWwtLjAyLjA5LS4wOS40OS0uMDQuMjFjLS4wMi4wOS0uMDQuMTgtLjA1LjI4LS4xLjY4LS41Mi45My0uOTEgMS4wOWwtLjI0LjFjLS4yNC4xLS40Ny4yLS43LjMtLjI2LjEyLS41Mi4yNC0uNzcuMzctLjI5LjE1LS41OC4zLS44Ni40NmExNi43OTIgMTYuNzkyIDAgMDAtMi44NCAyLjA0bC0xLjI1IDEuMjVjLS41Mi41OC0uOTggMS4xNC0xLjM3IDEuNy0uMDIuMDItLjAzLjA1LS4wNC4wNy0uMDIuMDMtLjA0LjA3LS4wNi4xLS4xOS4yOC0uMzguNi0uNiAxLS4xNC4yNi0uMjcuNTMtLjQuOC0uMTEuMjMtLjIxLjQ3LS4zMS43LS4wOS4yMy0uMTcuNDMtLjI0LjY0LS4wNC4xMi0uMDguMjQtLjExLjM3bC0uMTIuNDFjLS4wNC4xMi0uMDcuMjQtLjExLjM2bC0uMTIuNTJjLS4wMi4xLS4wNC4xOS0uMDUuMjlsLS4wNi4zNC0uMDYuMzRjLS4wMS4wNy0uMDMuMTUtLjA0LjIyLS4wMy4wOS0uMDQuMTctLjA1LjI1bC0uMTUgMS4wOC4xMiAzLjA5LjA5LjYtLjI0LjE1LjI2LS4wNC4wNS4yM2MuMDEuMDcuMDMuMTQuMDQuMmwuMDMuMTNjLjAzLjEzLjA0LjIzLjA3LjMzbC4wMy4xNmMuMDEuMDYuMDIuMTIuMDQuMTguMDEuMDYuMDMuMTIuMDUuMThsLjEzLjQ0Yy4wNC4xNC4wNi4yMy4wOS4zMWwuMDQuMTVjLjAxLjA1LjAzLjExLjA1LjE2LjAyLjA1LjA0LjExLjA2LjE2bC4zMi44M2MuMDIuMDUuMDQuMTEuMDYuMTZsLjEzLjI3Yy4wMi4wNS4wNS4xLjA3LjE1bC4wNi4xMmMuMDQuMDkuMDkuMTguMTMuMjdsLjA2LjEzYy4wMi4wNS4wNS4xLjA3LjE0bC4xNC4yNmMuMDMuMDUuMDUuMDkuMDguMTNsLjQ0LjcyYy4wMy4wNS4wNi4wOS4wOS4xNC4wMy4wNC4wNS4wOC4wOC4xMWwuNTEuNjkuMDkuMTIuMTguMjFjLjAzLjA0LjA3LjA4LjExLjEybC4wOC4wOWMuMDYuMDcuMTIuMTQuMTkuMjFsLjM4LjQyYy4wMy4wMy4wNy4wNi4xLjA5bC42Mi41OGMuMDMuMDMuMDcuMDcuMTEuMWwuNzYuNjJjLjA0LjAzLjA4LjA3LjEyLjFsLjIzLjE2Yy4wNi4wNS4xMy4wOS4xOS4xM2wuNzcuNWMuMDguMDUuMTcuMS4yNS4xNWwxLjU5LjgxIDMuNTkgMS4yOGMuMDUuMDIuMTUuMDEuMjUuMDFoMS4wNGwxNy42Ni4wMWguNjFsMjQuODEtLjA2Yy4wOCAwIC4xNSAwIC4yMy0uMDEuMDggMCAuMTYtLjAxLjI0LS4wMmwuMTktLjAyLjI5LS4wMy4yMi0uMDJjLjEyLS4wMS4yNS0uMDIuMzctLjA0LjA3LS4wMS4xMy0uMDEuMi0uMDIuMDgtLjAxLjE2LS4wMS4yNC0uMDIuMDktLjAxLjE4LS4wMy4yNy0uMDUuMDctLjAyLjE1LS4wMy4yMi0uMDQuMTctLjAzLjMzLS4wNi40OS0uMDlsLjIxLS4wNGMuMDktLjAyLjE5LS4wMy4yOC0uMDUuMTItLjAzLjIzLS4wNi4zNS0uMWwuMi0uMDYuNTEtLjE1LjA3LS4wMmMuMDgtLjAzLjE2LS4wNS4yNS0uMDcuMTEtLjAzLjIyLS4wNi4zMy0uMS4yMS0uMDguNC0uMTUuNTktLjIzbC4wOC0uMDNjLjI0LS4xLjQ4LS4yMS43Mi0uMzIuMjctLjEzLjU0LS4yNi44LS40LjM2LS4xOS42OC0uMzguOTctLjU3IDEuMTEtLjcxIDIuMDItMS41MyAyLjgxLTIuNS4yNy0uMzQuNTMtLjcuNzctMS4wNy4xNy0uMjguMzItLjU3LjQ2LS44Ni4xMS0uMjMuMjEtLjQ3LjMxLS43bC4wNy0uMThjLjA2LS4xNi4xMy0uMzEuMTgtLjQ3LjA0LS4xMS4wNi0uMjMuMDktLjM0bC4wOS0uMzRjLjA0LS4xMy4wNy0uMjYuMS0uNGwuMDYtLjM1LjAyLS4xM2MuMDMtLjE1LjA1LS4zMS4wNy0uNDdsLjAzLS4xOGMuMDEtLjA5LjAzLS4xOS4wNC0uMjguMDEtLjA4LjAxLS4xNi4wMS0uMjRsLjAxLS4yNWMuMDEtLjEyLjAyLS4yMy4wMi0uMzVsLjAxLS4xN2MwLS4wOC4wMS0uMTYuMDEtLjI0LS4wNC0uMDYtLjA0LS4xNC0uMDUtLjIxeiIgZmlsbD0idXJsKCNwcmVmaXhfX2MpIi8+PC9zdmc+");
+}
+
+.oci-compute {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTMxLjMzMyAxMC42NjdhLjY2Ny42NjcgMCAwMDAtMS4zMzRoLTJWNi42NjdoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtLjY2NmMwLTEuMTAzLS44OTctMi0yLTJoLS42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0yLjY2NnYtMmEuNjY3LjY2NyAwIDAwLTEuMzM0IDB2MmgtMi42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYySDYuNjY3di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0uNjY2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2LjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYyLjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYuNjY2YzAgMS4xMDMuODk3IDIgMiAyaC42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoMi42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoLjY2NmMxLjEwMyAwIDItLjg5NyAyLTJ2LS42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMnpNMjggMjcuMzMzYzAgLjM2OC0uMy42NjctLjY2Ny42NjdINC42NjdBLjY2OC42NjggMCAwMTQgMjcuMzMzVjQuNjY3QzQgNC4yOTkgNC4zIDQgNC42NjcgNGgyMi42NjZjLjM2NyAwIC42NjcuMjk5LjY2Ny42Njd2MjIuNjY2ek05LjMzMyA4YTEuMzM0IDEuMzM0IDAgMTAtMi42NjcuMDAxQTEuMzM0IDEuMzM0IDAgMDA5LjMzMyA4em0xMS4zMzQgMi42NjdoLTkuMzM0YS42NjcuNjY3IDAgMDAtLjY2Ni42NjZ2OS4zMzRjMCAuMzY4LjI5OC42NjYuNjY2LjY2Nmg5LjMzNGEuNjY3LjY2NyAwIDAwLjY2Ni0uNjY2di05LjMzNGEuNjY3LjY2NyAwIDAwLS42NjYtLjY2NnpNMjAgMjBoLTh2LThoOHY4eiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
+}
+
+.oci-container {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTMxLjMzMyAxMC42NjdhLjY2Ny42NjcgMCAwMDAtMS4zMzRoLTJWNi42NjdoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtLjY2NmMwLTEuMTAzLS44OTctMi0yLTJoLS42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0yLjY2NnYtMmEuNjY3LjY2NyAwIDAwLTEuMzM0IDB2MmgtMi42NjZ2LTJhLjY2Ny42NjcgMCAwMC0xLjMzNCAwdjJoLTIuNjY2di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYySDYuNjY3di0yYS42NjcuNjY3IDAgMDAtMS4zMzQgMHYyaC0uNjY2Yy0xLjEwMyAwLTIgLjg5Ny0yIDJ2LjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYyLjY2NmgtMmEuNjY3LjY2NyAwIDAwMCAxLjMzNGgydjIuNjY2aC0yYS42NjcuNjY3IDAgMDAwIDEuMzM0aDJ2Mi42NjZoLTJhLjY2Ny42NjcgMCAwMDAgMS4zMzRoMnYuNjY2YzAgMS4xMDMuODk3IDIgMiAyaC42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoMi42NjZ2MmEuNjY3LjY2NyAwIDAwMS4zMzQgMHYtMmgyLjY2NnYyYS42NjcuNjY3IDAgMDAxLjMzNCAwdi0yaDIuNjY2djJhLjY2Ny42NjcgMCAwMDEuMzM0IDB2LTJoLjY2NmMxLjEwMyAwIDItLjg5NyAyLTJ2LS42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMmEuNjY3LjY2NyAwIDAwMC0xLjMzNGgtMnYtMi42NjZoMnpNMjggMjcuMzMzYzAgLjM2OC0uMy42NjctLjY2Ny42NjdINC42NjdBLjY2OC42NjggMCAwMTQgMjcuMzMzVjQuNjY3QzQgNC4yOTkgNC4zIDQgNC42NjcgNGgyMi42NjZjLjM2NyAwIC42NjcuMjk5LjY2Ny42Njd2MjIuNjY2ek05LjMzMyA4YTEuMzM0IDEuMzM0IDAgMTAtMi42NjcuMDAxQTEuMzM0IDEuMzM0IDAgMDA5LjMzMyA4em0xMS4zMzQgMi42NjdoLTkuMzM0YS42NjcuNjY3IDAgMDAtLjY2Ni42NjZ2OS4zMzRjMCAuMzY4LjI5OC42NjYuNjY2LjY2Nmg5LjMzNGEuNjY3LjY2NyAwIDAwLjY2Ni0uNjY2di05LjMzNGEuNjY3LjY2NyAwIDAwLS42NjYtLjY2NnpNMjAgMjBoLTh2LThoOHY4eiIgZmlsbD0idXJsKCNwcmVmaXhfX2EpIiBmaWxsLXJ1bGU9Im5vbnplcm8iLz48L3N2Zz4=");
+}
+
+.oci-database {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI3Mi4zODklIiB5MT0iNC4zMDglIiB4Mj0iMjUuNSUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTE2LjUgMUMxMS40MSAxIDYgMi4zMTUgNiA0Ljc1djIyLjVDNiAyOS42ODUgMTEuNDEgMzEgMTYuNSAzMVMyNyAyOS42ODUgMjcgMjcuMjVWNC43NUMyNyAyLjMxNSAyMS41OSAxIDE2LjUgMXptOS41ODcgMTguODk3YzAgMS4xMTMtMy42NDcgMi42NjYtOS41ODcgMi42NjYtNS45NCAwLTkuNTg3LTEuNTUzLTkuNTg3LTIuNjY2di01Ljc3MmMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyem0wLTcuNWMwIDEuMTEzLTMuNjQ3IDIuNjY1LTkuNTg3IDIuNjY1LTUuOTQgMC05LjU4Ny0xLjU1Mi05LjU4Ny0yLjY2NVY2LjYyNWMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyek0xNi41IDEuOTM3YzUuOTQgMCA5LjU4NyAxLjYzOCA5LjU4NyAyLjgxMyAwIDEuMTc1LTMuNjQ3IDIuODEzLTkuNTg3IDIuODEzLTUuOTQgMC05LjU4Ny0xLjYzOC05LjU4Ny0yLjgxMyAwLTEuMTc1IDMuNjQ3LTIuODEzIDkuNTg3LTIuODEzem0wIDI4LjEyNWMtNS45NCAwLTkuNTg3LTEuNTUyLTkuNTg3LTIuNjY1di01Ljc3MmMxLjg0MiAxLjMzMyA1Ljc5NyAyLjA0IDkuNTg3IDIuMDRzNy43NDUtLjcwNyA5LjU4Ny0yLjA0djUuNzcyYzAgMS4xMTMtMy42NDcgMi42NjYtOS41ODcgMi42NjZ6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+.oci-hamburger {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxkZWZzPjxwYXRoIGQ9Ik0yMS41IDZoLTE5YS41LjUgMCAwMTAtMWgxOWEuNS41IDAgMDEwIDF6bTAgMTNoLTE5YS41LjUgMCAwMTAtMWgxOWEuNS41IDAgMDEwIDF6bTAtNi41aC0xOWEuNS41IDAgMDEwLTFoMTlhLjUuNSAwIDAxMCAxeiIgaWQ9InByZWZpeF9fYSIvPjwvZGVmcz48ZyBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxtYXNrIGlkPSJwcmVmaXhfX2IiIGZpbGw9IiNmZmYiPjx1c2UgeGxpbms6aHJlZj0iI3ByZWZpeF9fYSIvPjwvbWFzaz48dXNlIGZpbGw9IiMwMDAiIGZpbGwtcnVsZT0ibm9uemVybyIgeGxpbms6aHJlZj0iI3ByZWZpeF9fYSIvPjxnIG1hc2s9InVybCgjcHJlZml4X19iKSIgZmlsbD0iI0ZGRiIgZmlsbC1ydWxlPSJub256ZXJvIj48cGF0aCBkPSJNMCAwaDI0djI0SDB6Ii8+PC9nPjwvZz48L3N2Zz4=");
+}
+
+.oci-identity {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PGRlZnM+PGZpbHRlciBpZD0icHJlZml4X19hIj48ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlR3JhcGhpYyIgdmFsdWVzPSIwIDAgMCAwIDAuMjIzNTI5IDAgMCAwIDAgMC43NzI1NDkgMCAwIDAgMCAwLjY1MDk4MCAwIDAgMCAxLjAwMDAwMCAwIi8+PC9maWx0ZXI+PC9kZWZzPjxnIGZpbHRlcj0idXJsKCNwcmVmaXhfX2EpIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIHN0cm9rZT0iIzM5QzVBNiIgc3Ryb2tlLXdpZHRoPSIyIiBkPSJNOSAxMmwyIDIgNS01TTUgNmw3LTMgNyAzYy41IDMuNjY3LS4yIDExLjgtNyAxNS0yLjY2Ny0uODMzLTcuOC01LTctMTV6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-network {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzUiIGhlaWdodD0iMzUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgYXJpYS1oaWRkZW49InRydWUiPjxkZWZzPjxsaW5lYXJHcmFkaWVudCB4MT0iOTUuNjkyJSIgeTE9IjQuMzA4JSIgeDI9IjAlIiB5Mj0iMTAwJSIgaWQ9InByZWZpeF9fYSI+PHN0b3Agc3RvcC1jb2xvcj0iIzUzQTBGRCIgb2Zmc2V0PSIwJSIvPjxzdG9wIHN0b3AtY29sb3I9IiNCNEVDNTEiIG9mZnNldD0iMTAwJSIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxwYXRoIGQ9Ik0xNy45MjUgN3YxLjkzQTEwLjIzNCAxMC4yMzQgMCAwMTIyLjIxMiA4YzUuMzU5IDAgOS43MDMgNC4wNTUgOS43MDMgOS4wNTggMCAuNzU3LS4xIDEuNDkzLS4yODcgMi4xOTYgMS45NDQuNTAxIDMuMzcyIDIuMTY0IDMuMzcyIDQuMTM5di4zMTRDMzUgMjYuMDc3IDMyLjk0IDI4IDMwLjQgMjhIN3YyLjA1YTIuNSAyLjUgMCAxMS0xIDBWMjhINC42QzIuMDYgMjggMCAyNi4wNzggMCAyMy43MDd2LS4zMTRjMC0yLjI3IDEuODg4LTQuMTMgNC4yNzgtNC4yODNhNi40NDMgNi40NDMgMCAwMS0uMTgzLTEuNTI5YzAtMy43ODggMy4yOS02Ljg1OCA3LjM0Ny02Ljg1OCAxLjE0MyAwIDIuMjI2LjI0MyAzLjE5LjY3OGE5LjU3IDkuNTcgMCAwMTIuNDQyLTIuMDI5TDE3LjA3NSA3aC44NXpNNi41IDMxYTEuNSAxLjUgMCAxMDAgMyAxLjUgMS41IDAgMDAwLTN6bTguODctMTguOTZsLS40NjYuNTM4LS42NjItLjI5NmE2Ljc5MiA2Ljc5MiAwIDAwLTIuNzgtLjU4N2MtMy41MyAwLTYuMzggMi42NDMtNi4zOCA1Ljg5IDAgLjQ0NS4wNTIuODgzLjE1NyAxLjMwOGwuMjUzIDEuMDMzLTEuMTA4LjA3QzIuNDc5IDIwLjEyIDEgMjEuNTgzIDEgMjMuMzR2LjMxQzEgMjUuNDk1IDIuNjI0IDI3IDQuNjQxIDI3SDZ2LTVhMSAxIDAgMDEuODgzLS45OTNMNyAyMWg0di0zLjVhLjUuNSAwIDExMSAwVjIxaDUuMDc1bC0uMDAxLTEwLjQ2NmE4LjUyNCA4LjUyNCAwIDAwLTEuNzA1IDEuNTA1ek0yMi4xOTUgOWMtMS41MyAwLTIuOTkyLjM2NS00LjI3MiAxLjAzTDE3LjkyNSAyMUgyNHYxaC0ydjMuNWEuNS41IDAgMTEtMSAwVjIySDd2NWgyMy4zNTlDMzIuMzc2IDI3IDM0IDI1LjQ5NCAzNCAyMy42NXYtLjMxMWMwLTEuNTEtMS4wOTctMi44MjgtMi42NjMtMy4yMjhsLS45LS4yMy4yMzEtLjg2M2MuMTctLjYzMy4yNTctMS4yODYuMjU3LTEuOTUxIDAtNC40NS0zLjkwMi04LjA2Ny04LjcyOS04LjA2N3pNMjYuNSAxOWEyLjUgMi41IDAgMTEwIDUgMi41IDIuNSAwIDAxMC01em0wIDFhMS41IDEuNSAwIDEwMCAzIDEuNSAxLjUgMCAwMDAtM3ptLTktMjBhMy41IDMuNSAwIDExMCA3IDMuNSAzLjUgMCAwMTAtN3ptMCAxYTIuNSAyLjUgMCAxMDAgNSAyLjUgMi41IDAgMDAwLTV6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+.oci-refresh {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0NzMuNjc3IDQ3My42NzciPjxnIGZpbGw9IiMzMTJEMkEiPjxwYXRoIGQ9Ik0zNzAuNDU3IDEzOC44OTNjLTMzLjk3LTQ4LjYzMy04OS43NS03Ni40NzgtMTQ5LjM2Ni02OS42NUMxNjMuNzMgNzUuODEgMTE3LjQzIDExMi45IDk0LjQ1IDE2NC40MmwtMjkuNTEzLS4wNzVjLTUuMTg3LS4wMTEtOS4wMTYgNS45OTEtNi4wOTkgMTAuNTY0bDUxLjczMyA4MS4xNmMyLjkwOSA0LjU3IDkuMjE4IDQuNDU4IDEyLjEyLS4wNDUgMTcuMzc4LTI2Ljk2NiAzNC43NTktNTMuOTM2IDUyLjE0MS04MC45MDIgMS44NzctMi45MTMgMS4yNDUtNS43MjktLjUxMi03LjY3NC0xLjA5Ni0xLjY1Ny0yLjkxMy0yLjgzOC01LjUxMi0yLjg0NmwtMjcuNDUyLS4wNjdjNDIuMjE2LTY3LjA4OCAxNDQuNjk1LTczLjIxIDE5Mi44MDEtNC4zMzggMTUuNDE1IDIyLjA1NyA1MS44NzIuOTkyIDM2LjMtMjEuMzA0ek00MTQuNDQ5IDI5Ny41NDVjLTE3LjI0My0yNy4wNTItMzQuNDk0LTU0LjEwOC01MS43NDEtODEuMTYtMi45MDktNC41Ny05LjIxOC00LjQ1OC0xMi4xMi4wNDUtMTcuMzc0IDI2Ljk2Ni0zNC43NTYgNTMuOTM2LTUyLjEzMyA4MC45MDItMS44ODEgMi45MTctMS4yNDUgNS43MzMuNTIgNy42ODEgMS4wOTIgMS42NTMgMi45MDkgMi44MzEgNS41MDUgMi44MzhsMjcuNDQ4LjA2N2MtNDIuMjIgNjcuMDgtMTQ0LjY5NSA3My4yMjgtMTkyLjc5NyA0LjM0Mi0xNS40MDctMjIuMDYtNTEuODYtLjk5NS0zNi4yOTMgMjEuMzA0IDMzLjk2MyA0OC42MzMgODkuNzQ2IDc2LjQ3NCAxNDkuMzU5IDY5LjY1IDU3LjM2MS02LjU3IDEwMy42NTctNDMuNjYzIDEyNi42NDQtOTUuMTggOS44MzUuMDI2IDE5LjY3NC4wNDkgMjkuNTEzLjA3NSA1LjE4My4wMTUgOS4wMTItNS45OTEgNi4wOTUtMTAuNTY0eiIvPjwvZz48L3N2Zz4=");
+}
+
+.oci-storage {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzIiIGhlaWdodD0iMzIiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGRlZnM+PGxpbmVhckdyYWRpZW50IHgxPSI5NS42OTIlIiB5MT0iNC4zMDglIiB4Mj0iMCUiIHkyPSIxMDAlIiBpZD0icHJlZml4X19hIj48c3RvcCBzdG9wLWNvbG9yPSIjNTNBMEZEIiBvZmZzZXQ9IjAlIi8+PHN0b3Agc3RvcC1jb2xvcj0iI0I0RUM1MSIgb2Zmc2V0PSIxMDAlIi8+PC9saW5lYXJHcmFkaWVudD48L2RlZnM+PHBhdGggZD0iTTI5LjY5NSA3Ljk5M0wxNi44NjIgMS4wN2EuNTkuNTkgMCAwMC0uNTQtLjAwOWwtMTQgNi45MjNBLjU3Ny41NzcgMCAwMDIgOC41djE1YzAgLjIxMS4xMTcuNDA2LjMwNC41MDdsMTIuODM0IDYuOTIzYy4wMDcuMDAzLjAxNS4wMDIuMDIzLjAwNWEuNTczLjU3MyAwIDAwLjI1Ni4wNjVjLjA4OCAwIC4xNy0uMDIzLjI0NS0uMDU3LjAwNC0uMDAyLjAxIDAgLjAxNi0uMDAzbDE0LTYuOTIzQS41OC41OCAwIDAwMzAgMjMuNXYtMTVhLjU3NS41NzUgMCAwMC0uMzA1LS41MDd6bS0xNC4yNjcgNi43OGwtNS4xNjgtMi43OUwyMi45ODggNS42OWw1LjE2OSAyLjc5LTEyLjcyOSA2LjI5M3ptMS4xNDQtMTIuNTQ1bDUuMTY4IDIuNzg5TDkuMDEyIDExLjMxIDMuODQzIDguNTIzbDEyLjcyOS02LjI5NXpNMy4xNjcgOS40NzJsMTEuNjY2IDYuMjk0djEzLjY4NkwzLjE2NyAyMy4xNTdWOS40NzJ6TTE2IDI5LjQ5VjE1Ljc4bDEyLjgzMy02LjM0N3YxMy43MUwxNiAyOS40OXptLTQuOTcxLTEyLjQ3NmEuNTcyLjU3MiAwIDAxLjIzLjc4My41NzguNTc4IDAgMDEtLjUxLjMuNTc4LjU3OCAwIDAxLS4yNzktLjA3bC0zLjUtMS44ODlhLjU3My41NzMgMCAwMS0uMjMyLS43ODIuNTg3LjU4NyAwIDAxLjc5LS4yM2wzLjUgMS44ODh6IiBmaWxsPSJ1cmwoI3ByZWZpeF9fYSkiIGZpbGwtcnVsZT0ibm9uemVybyIvPjwvc3ZnPg==");
+}
+
+/*
+** Resources
+*/
+.oci-analytics-instance {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0OS4yIDQyIj48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTcuMyA0MS41di0xLjhsMi40LTEuMmguM2wuMS0uNWgtOC44VjI1SC41bC4xLTEuNmMuMy00IDIuNi03LjYgNi4yLTkuNC44LS40IDEuNC0xLjIgMS41LTIgLjYtMi44IDIuNS01LjIgNS4xLTYuNCAxLjEtLjUgMi4zLS43IDMuNi0uN2gxLjFjLjggMCAxLjUtLjMgMi0uOSAyLjEtMi4yIDUtMy41IDgtMy41IDQuMSAwIDcuOSAyLjMgOS43IDYgLjQuOCAxLjEgMS40IDIgMS42IDEuMi4zIDIuNC44IDMuNSAxLjUgNC45IDMuMSA2LjYgOS42IDMuOSAxNC43bC0uMi43aC04Ljl2MTNoLTguOGwuMS41aC41bDIuNCAxLjJ2MS44aC0xNXoiLz48cGF0aCBkPSJNMjguMiAxYzQgMCA3LjUgMi4yIDkuMyA1LjcuNS45IDEuMyAxLjYgMi40IDEuOCAxLjIuMyAyLjMuNyAzLjQgMS40IDQuNyAzIDYuMyA5LjEgMy43IDE0bC0uMy41aC05LjF2MTIuOWgtOC45bC4yIDEuNWguOWwyIDF2MUgxNy45di0xbDItMWguNmwuMi0xLjVoLTguOVYyNC41SDEuMWwuMS0xLjFjLjMtMy45IDIuNS03LjIgNS45LTlDOCAxMy45IDguNyAxMyA4LjkgMTJjLjUtMi43IDIuMy00LjkgNC44LTYgMS4xLS41IDIuMi0uNyAzLjQtLjdoMS4xYy45IDAgMS44LS40IDIuNC0xIDItMi4xIDQuNy0zLjMgNy42LTMuM20wLTFDMjUgMCAyMiAxLjMgMTkuOSAzLjZjLS40LjUtMSAuNy0xLjcuN2gtMS4xYy0xLjMgMC0yLjYuMy0zLjguOC0yLjggMS4yLTQuOCAzLjgtNS40IDYuOC0uMS43LS42IDEuMy0xLjMgMS43LTMuNyAyLTYuMiA1LjYtNi41IDkuOEwwIDI0LjV2MUgxMC44djEyLjloNy45bC0xLjMuNi0uNi4zVjQyaDE1Ljl2LTIuNmwtLjYtLjMtMS4zLS42aDcuNnYtMTNoOC43bC4zLS41LjMtLjVjMi45LTUuNCAxLjEtMTIuMS00LTE1LjQtMS4xLS43LTIuNC0xLjItMy43LTEuNS0uNy0uMi0xLjQtLjYtMS43LTEuM0MzNi41IDIuNCAzMi42IDAgMjguMiAweiIvPjwvZz48ZyBmaWxsPSIjMmM1OTY3Ij48cGF0aCBkPSJNMTEuOCAzNy41aDguOWwtLjIgMS41aC0uNmwtMiAxdjFoMTMuOXYtMWwtMi0xaC0uOWwtLjItMS41aDguOXYtMjBIMTEuOHYyMHpNMjIuNSAzOWwuMi0xLjVoNGwuMiAxLjVoLTQuNHptLTguNy0xOS41aDIxLjh2MTIuNGgtMy4zdjFoLTJ2LTFoLTIuNHYxaC0ydi0xaC0yLjR2MWgtMnYtMWgtMi40djFoLTJ2LTFoLTNWMTkuNXptMCAxNC40aDIxLjh2MS41SDEzLjh2LTEuNXoiLz48cGF0aCBkPSJNNDMuMiAxMGMtMS0uNy0yLjItMS4xLTMuNC0xLjQtMS0uMi0xLjktLjktMi40LTEuOEMzNS43IDMuMiAzMi4yIDEgMjguMiAxYy0yLjkgMC01LjcgMS4yLTcuNiAzLjMtLjcuNy0xLjcgMS4xLTIuNyAxLTEuNS0uMS0yLjkuMS00LjIuNy0yLjUgMS4xLTQuMyAzLjQtNC44IDYtLjIgMS0uOSAxLjktMS44IDIuNC0zLjQgMS44LTUuNiA1LjItNS45IDlsLS4xIDEuMWg5LjJ2LTJoLTdjLjUtMi43IDIuMi01IDQuNy02LjMgMS41LS44IDIuNS0yLjIgMi44LTMuOC40LTIgMS44LTMuNyAzLjctNC42IDEtLjQgMi4xLS42IDMuMS0uNSAxLjcuMiAzLjMtLjQgNC40LTEuN0MyMy43IDQgMjUuOSAzIDI4LjIgM2MzLjIgMCA2LjEgMS44IDcuNSA0LjYuNyAxLjUgMi4xIDIuNiAzLjggMi45IDEgLjIgMS45LjYgMi43IDEuMSAzLjYgMi4zIDUgNyAzLjMgMTAuOGgtNi4zdjJoNy42bC4zLS41YzIuNS00LjguOS0xMS0zLjktMTMuOXpNMTYuOCAyOC4zdjQuNmgydi00LjZ6TTIxLjMgMjYuM3Y2LjZoMnYtNi42eiIvPjxwYXRoIGQ9Ik0yNS44IDIzLjV2OS40aDJ2LTkuNHpNMzAuMiAyMXYxMS45aDIuMVYyMXoiLz48L2c+PC9zdmc+");
+}
+
+.oci-autonomous-database {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQ4LjQ3IDQyLjAyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTIyLjUgNDEuNTJjLTMuMTIgMC02LjA3LS4yOS04LjI5LS44My0yLjk1LS43MS00LjM5LTEuNzgtNC4zOS0zLjI5VjIyLjlILjU0bC4xMS0xLjUyYy4yNy0zLjY3IDIuMzktNi44OSA1LjY1LTguNjEuNzEtLjM4IDEuMjEtMS4wNCAxLjM2LTEuODEuNTEtMi42IDIuMjYtNC43OCA0LjY4LTUuODUgMS4wMi0uNDUgMi4xNS0uNjggMy4yNi0uNjguMjUgMCAuNS4wMS43NS4wMy4wOS4wMS4xNy4wMS4yNi4wMS43MSAwIDEuMzYtLjI4IDEuODItLjc4QTkuODUgOS44NSAwIDAxMjQuOTQuNTRsMS0uMDJ2LjAxYzMuNjkuMDggNi45OSAyLjE3IDguNjUgNS40OS4xMi4yNC4yOS40Ny40OC42Ny4yNC4zNS41Ni44Ljg0IDEuMiAzIC4xIDUuNzMgMS42NyA3LjMzIDQuMjRsLjA0LjA3LjM1IDEuNTMgNC4xMiA0LjEyLTIuMDEgMi4wMS0xLjMtMS4zYy0uNzkgNC4xOS00LjQ5IDcuMzQtOC44NSA3LjM0LS4xNCAwLS4yOCAwLS40Mi0uMDF2MTEuNTNjMCAxLjUtMS40NCAyLjU4LTQuMzkgMy4yOS0yLjIxLjUyLTUuMTYuODEtOC4yOC44MXoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0yNS43MiAxLjAyYzMuNTkgMCA2LjgzIDIgOC40MyA1LjIyLjE1LjMuMzUuNTcuNTguOC4yMi4zNC42Mi45LjkzIDEuMzQgMi45OC4wMiA1LjY2IDEuNTkgNy4xNiA0LjAxbC4zNyAxLjU4IDMuODcgMy44Ny0xLjMgMS4zLTEuNjctMS42N2MtLjMgNC40Mi0zLjk5IDcuOTItOC40OCA3LjkyLS4zMSAwLS42Mi0uMDMtLjkyLS4wNnYxMi4wOGMwIDEuMjQtMS4zMSAyLjE2LTQgMi44LTIuMi41My01LjEuODEtOC4xOC44MXMtNS45OC0uMjktOC4xOC0uODFjLTIuNjktLjY0LTQtMS41Ni00LTIuOFYyMi40SDEuMDhsLjA3LS45OWMuMjYtMy41IDIuMjctNi41NiA1LjM5LTguMi44NS0uNDUgMS40NC0xLjIzIDEuNjItMi4xNmE3LjYgNy42IDAgMDE0LjM5LTUuNDkgNy43IDcuNyAwIDAxMy43Ni0uNjFjLjEuMDEuMi4wMS4zMS4wMS44NCAwIDEuNjMtLjMzIDIuMTktLjk0YTkuMzY4IDkuMzY4IDAgMDE2LjY1LTMuMDFsLjAyLjkyLS4wMi0uOTJjLjA5LjAxLjE3LjAxLjI2LjAxTTI2LjQ0IDBsLTEgLjAzaC0uMDJsLS45OC4wM3YuMDVhMTAuMjUgMTAuMjUgMCAwMC02LjM2IDMuMjVjLS4zNy40LS44OS42Mi0xLjQ2LjYyLS4wNyAwLS4xNCAwLS4yMS0uMDEtLjI3LS4wMi0uNTMtLjA0LS44LS4wNC0xLjE4IDAtMi4zOC4yNS0zLjQ2LjczYTguNTg4IDguNTg4IDAgMDAtNC45NyA2LjIxYy0uMTIuNjMtLjUzIDEuMTYtMS4xMSAxLjQ2YTExLjA3IDExLjA3IDAgMDAtNS45MiA5LjAxbC0uMDcuOTlMMCAyMy40aDkuMzJ2MTQuMDFjMCAyLjYzIDMuNTkgMy40OSA0Ljc3IDMuNzcgMi4yNy41NCA1LjI2Ljg0IDguNDEuODQgMy4xNiAwIDYuMTQtLjMgOC40MS0uODQgMS4xOC0uMjggNC43Ny0xLjE0IDQuNzctMy43N1YyNi4zOWM0LjI1LS4wNCA3LjktMi45MSA5LjA1LTYuODZsLjMyLjMyLjcxLjcxLjcxLS43MSAxLjMtMS4zLjcxLS43MS0uNzEtLjcxLTMuNjctMy42Ny0uMy0xLjMxLS4wNC0uMTUtLjA5LS4xNGE5LjQ3IDkuNDcgMCAwMC03LjQ4LTQuNDZjLS4yMy0uMzMtLjQ3LS42OC0uNjMtLjkxbC0uMDUtLjA4LS4wNy0uMDdjLS4xNi0uMTctLjMtLjM1LS4zOS0uNTUtMS42Ny0zLjM0LTQuOTItNS41LTguNjEtNS43NVYweiIvPjxwYXRoIGQ9Ik0zLjEyIDIwLjU2aDUuODJ2MS44NEgxLjA4bC4wNy0uOTljLjI2LTMuNSAyLjI3LTYuNTYgNS4zOS04LjIuODUtLjQ1IDEuNDQtMS4yMyAxLjYyLTIuMTZhNy41ODggNy41ODggMCAwMTguMTUtNi4xYy45Ni4wOSAxLjg3LS4yNSAyLjUtLjkzYTkuMzY4IDkuMzY4IDAgMDE2LjY1LTMuMDFoLjI1YzMuNTkgMCA2LjgzIDIgOC40MyA1LjIyLjE1LjMuMzUuNTcuNTguOC0uNjkuMDYtMS4zNy4xOS0yLjAxLjM5LS4wNy0uMTItLjE0LS4yNC0uMjEtLjM3YTcuNTUgNy41NSAwIDAwLTYuNzktNC4yaC0uMjFjLTIuMDUuMDUtMy45Ni45Mi01LjM2IDIuNDItMS4wMiAxLjEtMi40OSAxLjY1LTQuMDIgMS41MS0uOTctLjA5LTEuOTUuMDctMi44NS40NmE1Ljc4IDUuNzggMCAwMC0zLjMzIDQuMTYgNC45NjggNC45NjggMCAwMS0yLjU3IDMuNDMgOC4yNjUgOC4yNjUgMCAwMC00LjI1IDUuNzNNMzQuNjkgMTJoMS44MmwyLjU1IDguODZIMzcuMUwzNi42NiAxOWgtMi4yMWwtLjQzIDEuODZoLTEuOUwzNC42OSAxMnptLjExIDUuNDloMS41MmwtLjc2LTMuMzEtLjc2IDMuMzF6bS03LjY4LTEuMTlsLTEuNjctMS42Ny0xLjMgMS4zIDMuODcgMy44NyAzLjg3LTMuODctMS4zLTEuMy0xLjYyIDEuNjJhNi42NjcgNi42NjcgMCAwMTYuNjMtNi4wMmMyLjUgMCA0Ljc0IDEuNCA1Ljg4IDMuNTJsMS4zNC0xLjM0QTguNTMgOC41MyAwIDAwMzUuNiA4LjRjLTQuNDktLjAyLTguMTggMy40OC04LjQ4IDcuOW0xOS45NCAxLjU0bC0zLjg3LTMuODctMy44NyAzLjg3IDEuMyAxLjMgMS42Mi0xLjYyYTYuNjY3IDYuNjY3IDAgMDEtNi42MyA2LjAyYy0yLjUgMC00Ljc0LTEuNC01Ljg4LTMuNTJsLTEuMzQgMS4zNGE4LjUzIDguNTMgMCAwMDcuMjIgNC4wMWM0LjQ5IDAgOC4xOC0zLjUgOC40OC03LjkybDEuNjcgMS42NyAxLjMtMS4yOHptLTE0LjIxIDguNzRjLjU5LjE4IDEuMjEuMyAxLjg0LjM2VjM3LjRjMCAxLjI0LTEuMzEgMi4xNi00IDIuOC0yLjIuNTMtNS4xLjgxLTguMTguODFzLTUuOTgtLjI5LTguMTgtLjgxYy0yLjY5LS42NC00LTEuNTYtNC0yLjhWMTcuOGMwLTEuMjUgMS4zMi0yLjE0IDQuMDItMi43MyAyLjEzLS40NiA1LjAzLS43MiA4LjE2LS43MmguNDZ2MS44NGgtLjQ2Yy02LjU1IDAtOS45MyAxLjA3LTEwLjM0IDEuNjd2LjExYy40NC42NyA0LjE5IDEuODQgMTAuMzQgMS44NCAxLjI3IDAgMi40NC0uMDUgMy41LS4xMy4xOC42Mi40MSAxLjIyLjcgMS43OC0xLjMyLjEyLTIuNzQuMTktNC4yLjE5LTMuMDggMC01Ljk4LS4yOS04LjE4LS44MS0uODYtLjIxLTEuNTgtLjQ0LTIuMTctLjcxdjQuMjhjLjQ0LjY3IDQuMTkgMS44NCAxMC4zNCAxLjg0IDMuNDEgMCA2LjA3LS4zNiA3Ljg1LS43OS43Ni40OCAxLjU5Ljg2IDIuNDcgMS4xMi0uNTguMjYtMS4yOS40OS0yLjE0LjY5LTIuMi41My01LjEuODEtOC4xOC44MXMtNS45OC0uMjktOC4xOC0uODFjLS44Ni0uMjEtMS41OC0uNDQtMi4xNy0uNzF2NC4zM2MuNDQuNjcgNC4xOSAxLjg0IDEwLjM0IDEuODRzOS45MS0xLjE3IDEwLjM0LTEuODR2LTQuMzF6bTAgNi40OGMtLjU4LjI2LTEuMy41LTIuMTcuNzEtMi4yLjUzLTUuMS44MS04LjE4Ljgxcy01Ljk4LS4yOS04LjE4LS44MWMtLjg2LS4yMS0xLjU4LS40NC0yLjE3LS43MXY0LjI5Yy4zOS41NiAzLjc5IDEuODQgMTAuMzQgMS44NHM5Ljk2LTEuMjcgMTAuMzQtMS44NHYtNC4yOXoiIGZpbGw9IiMyYzU5NjciLz48L3N2Zz4=");
+}
+
+.oci-availability-domain, .oci-ad {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNjEuOSAxNjIiPjxwYXRoIGZpbGw9IiMzMTJEMkEiIGQ9Ik0xNTIuOCAxNTIuOUg5VjkuMmgxNDMuOHYxNDMuN3ptLTEzNC44LTloMTI1LjhWMTguMkgxOHYxMjUuN3ptMTExLjEtMTEuNkgzMi45Vjk3LjRoOTYuM3YzNC45em0tODcuMi05aDc4LjN2LTE2LjlINDEuOXYxNi45em02My45LTEzLjFjLTIuNiAwLTQuNyAyLjEtNC43IDQuN3MyLjEgNC43IDQuNyA0LjcgNC43LTIuMSA0LjctNC43LTIuMS00LjctNC43LTQuN3pNMzMuMSA5MGg0Mi42VjYzLjlIMzMuMVY5MHptMTcuMy03VjcwLjloNy43VjgzaC03Ljd6bTE4LjMgMGgtNi42VjcwLjloNi42Vjgzek00MC4xIDcwLjloNi4zVjgzaC02LjNWNzAuOXptLTctMTMuOWg0Mi42VjMwLjhIMzMuMVY1N3ptMTcuMy03VjM3LjhoNy43VjUwaC03Ljd6bTE4LjMgMGgtNi42VjM3LjhoNi42VjUwek00MC4xIDM3LjhoNi4zVjUwaC02LjNWMzcuOHpNODYuOCA5MGg0Mi42VjYzLjlIODYuOFY5MHptMTcuMi03VjcwLjloNy43VjgzSDEwNHptMTguMyAwaC02LjZWNzAuOWg2LjZWODN6TTkzLjggNzAuOWg2LjJWODNoLTYuMlY3MC45em0tNy00MC4xVjU3aDQyLjZWMzAuOEg4Ni44em0yNC45IDdWNTBIMTA0VjM3LjhoNy43em0tMTcuOSAwaDYuMlY1MGgtNi4yVjM3Ljh6TTEyMi4zIDUwaC02LjZWMzcuOGg2LjZWNTB6Ii8+PC9zdmc+");
+}
+
+.oci-bastion {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDI2Ljk1IDQyIj48cGF0aCBkPSJNMjAuNTIgNDEuNWE1LjkzIDUuOTMgMCAwMS0zLjczLTEuMzNILjV2LTYuNzJoMS44MUwyLjkyIDIwYTIuMjIgMi4yMiAwIDAxLTEuODUtMi4xOVY5LjI2SDcuNHYzLjA1aDEuMVY5LjI2aDEuOVYuNWg2LjA2YTIuMTkgMi4xOSAwIDAxMi4xMyAxLjcxSDI1bC0yIDMuNCAyIDMuMzJoLTYuNzJhMi4xNiAyLjE2IDAgMDEtMi4wOC0xLjU5aC0uMDh2LS4xM2gtMy4xOXYyLjA1aDEuOXYzLjA1aDEuMVY5LjI2aDYuMzN2OC41QTIuMjIgMi4yMiAwIDAxMjAuNDEgMjBsLjQxIDkuN2E1LjkzIDUuOTMgMCAwMS0uMyAxMS44NXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTYuNDYgMWExLjY5IDEuNjkgMCAwMTEuNjggMS42OWg1Ljk1bC0xLjcgMi45MSAxLjc0IDIuODFoLTUuODVhMS42NyAxLjY3IDAgMDEtMS42Ni0xLjU5LjEzLjEzIDAgMDAtLjEzLS4xM2gtNC4wNnYzLjA3aDEuOXYzLjA1aDIuMVY5Ljc2aDUuMzN2OGExLjcyIDEuNzIgMCAwMS0xLjcxIDEuNzJoLS4xNmwuNDUgMTAuNjdoLjE4QTUuNDMgNS40MyAwIDExMTcgMzkuNjdIMVYzNGgxLjc5bC42NS0xNC40N2gtLjE1YTEuNzIgMS43MiAwIDAxLTEuNzItMS43MnYtOEg2Ljl2My4wNUg5di0zLjFoMS45VjFoNS41Nm0wLTFIOS45djguNzZIOHYzLjA1aC0uMVY4Ljc2SC41N3Y5YTIuNzMgMi43MyAwIDAwMS44MyAyLjU3TDEuODMgMzNIMHY3LjcyaDE2LjYyYTYuNDIgNi40MiAwIDEwNC42OC0xMS41M2wtLjM3LTguODZhMi43MyAyLjczIDAgMDAxLjgzLTIuNTdWOS40M2gzLjE2TDI1IDcuOWwtMS40NS0yLjNMMjUgMy4yMmwuODktMS41MUgxOUEyLjcgMi43IDAgMDAxNi40NiAwem0tMyA3LjcxaDIuMTl2LjEzaC4yM2EyLjU1IDIuNTUgMCAwMC42Ni45MmgtMS4xMXYzLjA1aC0uMVY4Ljc2aC0xLjl2LTF6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTIuNTIgMzguMTR2LTIuNjZIMTRhNyA3IDAgMDEuMi0xLjUzSDQuMzFMNSAxOS40OGgxMy40bC40NCA5Ljc1YTYuMjYgNi4yNiAwIDAxMS40OC0uMjNsLS40My05LjUzaC4xNmExLjcyIDEuNzIgMCAwMDEuNzEtMS43MnYtOGgtNS4zM3YzLjA1aC0yLjFWOS43NmgtMS45di0zaDQuMDZhLjEzLjEzIDAgMDEuMTMuMTMgMS42NyAxLjY3IDAgMDAxLjY2IDEuNTloNS44NWwtMS43NC0yLjg2IDEuNy0yLjkxaC01Ljk1QTEuNjkgMS42OSAwIDAwMTYuNDYgMUgxMC45djguNzZIOXYzLjA1SDYuOVY5Ljc2SDEuNTd2OGExLjcyIDEuNzIgMCAwMDEuNzIgMS43MmguMTVMMi43OSAzNEgxdjUuNzJoMTQuMzlhNi41OCA2LjU4IDAgMDEtLjkxLTEuNTN6bTE4LjkxLTMzLjlsLS44MiAxLjQuNzggMS4yNmgtMy4xMWEuMTMuMTMgMCAwMS0uMTQtLjEzVjQuMjR6bS01LTEuNzJhLjE3LjE3IDAgMDEuMTYuMTdWNS4yaC00LjE2VjIuNTJ6TTMuMjkgMThhLjE4LjE4IDAgMDEtLjE5LS4xOXYtNi41MmgyLjI4djNoNS4xNHYtM2gyLjI5djNIMTh2LTNoMi4yOXY2LjQ3YS4xOS4xOSAwIDAxLS4xOS4xOUgzLjI5eiIgZmlsbD0iIzJjNTk2NyIvPjxwYXRoIGQ9Ik0yMC41MiAzMC4xNEE1LjQzIDUuNDMgMCAxMDI2IDM1LjU3YTUuNDMgNS40MyAwIDAwLTUuNDgtNS40M3ptMCA5LjM0YTMuOTEgMy45MSAwIDExMy45MS0zLjkxIDMuOTEgMy45MSAwIDAxLTMuOTEgMy45MXoiIGZpbGw9IiMyYzU5NjciLz48cGF0aCBmaWxsPSIjMmM1OTY3IiBkPSJNMjEuODggMzMuNzRsLTIuMSAyLjEtLjY1LS42NS0xLjA4IDEuMDdMMTkuNzggMzhsMy4xOC0zLjE4LTEuMDgtMS4wOHpNMTMuMjMgMjIuNDhsLjk5IDFoLTQuMDhWMjVoNC4wNmwtLjk3Ljk3IDEuMDcgMS4wOCAyLjgzLTIuODItMi44My0yLjgyLTEuMDcgMS4wN3pNMTAuMTggMjYuNTVMOS4xIDI1LjQ4IDYuMjggMjguM2wyLjgyIDIuODIgMS4wOC0xLjA4LS44NS0uODVoMy44NnYtMS41Mkg5LjA2bDEuMTItMS4xMnoiLz48ZyBkYXRhLW5hbWU9Ik9DSSBJY29uIExhYmVsIiBmaWxsPSIjMmM1OTY3Ij48cGF0aCBkPSJNMi41MiAzOC4xNHYtMi42NkgxNGE3IDcgMCAwMS4yLTEuNTNINC4zMUw1IDE5LjQ4aDEzLjRsLjQ0IDkuNzVhNi4yNiA2LjI2IDAgMDExLjQ4LS4yM2wtLjQzLTkuNTNoLjE2YTEuNzIgMS43MiAwIDAwMS43MS0xLjcydi04aC01LjMzdjMuMDVoLTIuMVY5Ljc2aC0xLjl2LTNoNC4wNmEuMTMuMTMgMCAwMS4xMy4xMyAxLjY3IDEuNjcgMCAwMDEuNjYgMS41OWg1Ljg1bC0xLjc0LTIuODYgMS43LTIuOTFoLTUuOTVBMS42OSAxLjY5IDAgMDAxNi40NiAxSDEwLjl2OC43Nkg5djMuMDVINi45VjkuNzZIMS41N3Y4YTEuNzIgMS43MiAwIDAwMS43MiAxLjcyaC4xNUwyLjc5IDM0SDF2NS43MmgxNC4zOWE2LjU4IDYuNTggMCAwMS0uOTEtMS41M3ptMTguOTEtMzMuOWwtLjgyIDEuNC43OCAxLjI2aC0zLjExYS4xMy4xMyAwIDAxLS4xNC0uMTNWNC4yNHptLTUtMS43MmEuMTcuMTcgMCAwMS4xNi4xN1Y1LjJoLTQuMTZWMi41MnpNMy4yOSAxOGEuMTguMTggMCAwMS0uMTktLjE5di02LjUyaDIuMjh2M2g1LjE0di0zaDIuMjl2M0gxOHYtM2gyLjI5djYuNDdhLjE5LjE5IDAgMDEtLjE5LjE5SDMuMjl6Ii8+PHBhdGggZD0iTTIwLjUyIDMwLjE0QTUuNDMgNS40MyAwIDEwMjYgMzUuNTdhNS40MyA1LjQzIDAgMDAtNS40OC01LjQzem0wIDkuMzRhMy45MSAzLjkxIDAgMTEzLjkxLTMuOTEgMy45MSAzLjkxIDAgMDEtMy45MSAzLjkxeiIvPjxwYXRoIGQ9Ik0yMS44OCAzMy43NGwtMi4xIDIuMS0uNjUtLjY1LTEuMDggMS4wN0wxOS43OCAzOGwzLjE4LTMuMTgtMS4wOC0xLjA4ek0xMy4yMyAyMi40OGwuOTkgMWgtNC4wOFYyNWg0LjA2bC0uOTcuOTcgMS4wNyAxLjA4IDIuODMtMi44Mi0yLjgzLTIuODItMS4wNyAxLjA3ek0xMC4xOCAyNi41NUw5LjEgMjUuNDggNi4yOCAyOC4zbDIuODIgMi44MiAxLjA4LTEuMDgtLjg1LS44NWgzLjg2di0xLjUySDkuMDZsMS4xMi0xLjEyeiIvPjwvZz48L3N2Zz4=");
+}
+
+.oci-boot-volume {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojYmI1MDFjfTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi42NyA0MS41QzEuNDggNDEuNS41IDQwLjUzLjUgMzkuMzNWMi42N0MuNSAxLjQ3IDEuNDcuNSAyLjY3LjVoMzYuNjdjMS4xOSAwIDIuMTcuOTcgMi4xNyAyLjE3djM2LjY3YzAgMS4yLS45NyAyLjE3LTIuMTcgMi4xN0gyLjY3eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTM5LjMzIDFjLjkyIDAgMS42Ny43NSAxLjY3IDEuNjd2MzYuNjdjMCAuOTItLjc1IDEuNjctMS42NyAxLjY3SDIuNjdDMS43NSA0MSAxIDQwLjI1IDEgMzkuMzNWMi42N0MxIDEuNzUgMS43NSAxIDIuNjcgMWgzNi42Nm0wLTFIMi42N0MxLjIgMCAwIDEuMiAwIDIuNjd2MzYuNjdDMCA0MC44IDEuMiA0MiAyLjY3IDQyaDM2LjY3QzQwLjggNDIgNDIgNDAuOCA0MiAzOS4zM1YyLjY3QzQyIDEuMiA0MC44IDAgMzkuMzMgMHoiLz48Zz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0xOS44NSA5LjQ2SDcuNFYyMS43aDEyLjQ1VjkuNDZ6bS0xLjQ4IDEwLjc2SDguODl2LTkuMjhoOS40OHY5LjI4ek0zNC42NiA5LjQ2SDIyLjIxVjIxLjdoMTIuNDVWOS40NnptLTEuNDkgMTAuNzZoLTkuNDh2LTkuMjhoOS40OHY5LjI4ek0xOS44NSAyMy45OUg3LjR2MTIuMjRoMTIuNDVWMjMuOTl6bS0xLjQ4IDEwLjc2SDguODl2LTkuMjhoOS40OHY5LjI4ek0zNC42NiAyMy45OUgyMi4yMXYxMi4yNGgxMi40NVYyMy45OXptLTEuNDkgMTAuNzZoLTkuNDh2LTkuMjhoOS40OHY5LjI4eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTEgMzkuMzNjMCAuOTIuNzUgMS42NyAxLjY3IDEuNjdoMzYuNjdjLjkyIDAgMS42Ny0uNzUgMS42Ny0xLjY3VjQuOTlIMXYzNC4zNHpNMi40OCA2LjQ3aDM3LjA0djMyLjg3YzAgLjEtLjA4LjE5LS4xOS4xOUgyLjY3YS4xOS4xOSAwIDAxLS4xOS0uMTlWNi40N3pNMzkuMzMgMUgyLjY3QzEuNzUgMSAxIDEuNzUgMSAyLjY3djEuMjFoNDBWMi42N0M0MSAxLjc1IDQwLjI1IDEgMzkuMzMgMXoiLz48L2c+PC9zdmc+");
+}
+
+.oci-volume, .oci-block-storage-volume {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi42NyA0MS41QzEuNDggNDEuNS41IDQwLjUzLjUgMzkuMzNWMi42N0MuNSAxLjQ3IDEuNDcuNSAyLjY3LjVoMzYuNjdjMS4xOSAwIDIuMTcuOTcgMi4xNyAyLjE3djM2LjY3YzAgMS4yLS45NyAyLjE3LTIuMTcgMi4xN0gyLjY3eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTM5LjMzIDFjLjkyIDAgMS42Ny43NSAxLjY3IDEuNjd2MzYuNjdjMCAuOTItLjc1IDEuNjctMS42NyAxLjY3SDIuNjdDMS43NSA0MSAxIDQwLjI1IDEgMzkuMzNWMi42N0MxIDEuNzUgMS43NSAxIDIuNjcgMWgzNi42Nm0wLTFIMi42N0MxLjIgMCAwIDEuMiAwIDIuNjd2MzYuNjdDMCA0MC44IDEuMiA0MiAyLjY3IDQyaDM2LjY3QzQwLjggNDIgNDIgNDAuOCA0MiAzOS4zM1YyLjY3QzQyIDEuMiA0MC44IDAgMzkuMzMgMHoiLz48Zz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0xOS44NSA5LjQ2SDcuNFYyMS43aDEyLjQ1VjkuNDZ6bS0xLjQ4IDEwLjc2SDguODl2LTkuMjhoOS40OHY5LjI4ek0zNC42NiA5LjQ2SDIyLjIxVjIxLjdoMTIuNDVWOS40NnptLTEuNDkgMTAuNzZoLTkuNDh2LTkuMjhoOS40OHY5LjI4ek0xOS44NSAyMy45OUg3LjR2MTIuMjRoMTIuNDVWMjMuOTl6bS0xLjQ4IDEwLjc2SDguODl2LTkuMjhoOS40OHY5LjI4ek0zNC42NiAyMy45OUgyMi4yMXYxMi4yNGgxMi40NVYyMy45OXptLTEuNDkgMTAuNzZoLTkuNDh2LTkuMjhoOS40OHY5LjI4eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTEgMzkuMzNjMCAuOTIuNzUgMS42NyAxLjY3IDEuNjdoMzYuNjdjLjkyIDAgMS42Ny0uNzUgMS42Ny0xLjY3VjQuOTlIMXYzNC4zNHpNMi40OCA2LjQ3aDM3LjA0djMyLjg3YzAgLjEtLjA4LjE5LS4xOS4xOUgyLjY3YS4xOS4xOSAwIDAxLS4xOS0uMTlWNi40N3pNMzkuMzMgMUgyLjY3QzEuNzUgMSAxIDEuNzUgMSAyLjY3djEuMjFoNDBWMi42N0M0MSAxLjc1IDQwLjI1IDEgMzkuMzMgMXoiLz48L2c+PC9zdmc+");
+}
+
+.oci-compartment {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDUyLjQ1IDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNLjUgNDEuNVYzLjM3Qy41IDEuNzkgMS43OS41IDMuMzcuNWgxMy4wOWMuOSAwIDEuNzYuNDMgMi4zIDEuMTZsMi42OCAzLjZINDkuMWMxLjU4IDAgMi44NyAxLjI5IDIuODcgMi44N1Y0MS41SC41eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTE2LjQ2IDFjLjc0IDAgMS40NS4zNiAxLjkuOTVsMi44MyAzLjhINDkuMWMxLjMgMCAyLjM3IDEuMDYgMi4zNyAyLjM3VjQxSDFWMy4zN0MxIDIuMDYgMi4wNiAxIDMuMzcgMWgxMy4wOW0wLTFIMy4zN0MxLjUxIDAgMCAxLjUxIDAgMy4zN1Y0Mmg1Mi40NVY4LjEyYzAtMS44Ni0xLjUxLTMuMzctMy4zNy0zLjM3aC0yNy40bC0yLjUzLTMuNEEzLjM2MiAzLjM2MiAwIDAwMTYuNDYgMHoiLz48Zz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik00OS4wOSA1Ljc2SDIxLjE4bC0yLjgzLTMuOGMtLjQ0LS42LTEuMTUtLjk2LTEuODktLjk2SDMuMzdDMi4wNiAxIDEgMi4wNiAxIDMuMzdWNDFoNTAuNDVWOC4xMmMwLTEuMy0xLjA2LTIuMzYtMi4zNi0yLjM2em0uMjYgMzMuMTRIMy4xVjMuMzdjMC0uMTQuMTItLjI2LjI2LS4yNmgxMy4wOWMuMDggMCAuMTYuMDQuMjEuMTFsMy40NiA0LjY1aDI4Ljk2Yy4xNCAwIC4yNi4xMi4yNi4yNlYzOC45eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTkuMTUgMTMuNjRoMi4xdi0zLjE1aDMuMTV2LTIuMWgtMy4xNVY1LjIzaC0yLjF2My4xNkg1Ljk5djIuMWgzLjE2ek00MC45MyAyMi4zMmwtMS44NC0zLjMtMS44MyAzLjMtMi43OCA1LjAyLTEuNzMgMy4xMmgxMi43M2wtMS43NS0zLjEzLTIuOC01LjAxem0tNC42MiA2LjA0bDIuNzgtNS4wMiAyLjggNS4wMmgtNS41OHpNMjkuNTYgMjAuMjNjLS44OC0uNTQtMS44OC0uODMtMi45LS44M2E1LjUyNiA1LjUyNiAwIDAwLTUuMzcgNi43OSA1LjUgNS41IDAgMDA2LjYzIDQuMSA1LjUwOCA1LjUwOCAwIDAwMy40My0yLjQ3IDUuNTQgNS41NCAwIDAwLjY4LTQuMTcgNS40ODggNS40ODggMCAwMC0yLjQ3LTMuNDJ6bTAgNi40OWMtLjQ4Ljc4LTEuMjMgMS4zMi0yLjEyIDEuNTNhMy40MzMgMy40MzMgMCAwMS00LjExLTIuNTRjLS40My0xLjgzLjcxLTMuNjggMi41NC00LjExLjI2LS4wNi41My0uMDkuNzktLjA5LjYzIDAgMS4yNC4xNyAxLjc5LjUxLjc4LjQ4IDEuMzIgMS4yMyAxLjUzIDIuMTIuMjEuODguMDYgMS44LS40MiAyLjU4ek0xNi44MyAyMC43M2wtLjYxLTEuMDRIOS45OWwtLjYxIDEuMDQtMS45MiAzLjI4LS42MiAxLjA2LjYyIDEuMDYgMS45MiAzLjI5LjYxIDEuMDRIMTYuMjNsLjYxLTEuMDQgMS45Mi0zLjI5LjYyLTEuMDYtLjYyLTEuMDYtMS45My0zLjI4em0tMS44MSA3LjYzSDExLjJsLTEuOTItMy4yOSAxLjkyLTMuMjhoMy44MmwxLjkyIDMuMjgtMS45MiAzLjI5eiIvPjwvZz48L3N2Zz4=");
+}
+
+.oci-customer-premise-equipment, .oci-cpe {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyIDQyIj48cmVjdCB4PSIuNSIgeT0iLjUiIHdpZHRoPSI0MSIgaGVpZ2h0PSI0MSIgcng9IjIuMTciIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMzkuMzMgMUExLjY3IDEuNjcgMCAwMTQxIDIuNjd2MzYuNjZBMS42NyAxLjY3IDAgMDEzOS4zMyA0MUgyLjY3QTEuNjcgMS42NyAwIDAxMSAzOS4zM1YyLjY3QTEuNjcgMS42NyAwIDAxMi42NyAxaDM2LjY2bTAtMUgyLjY3QTIuNjggMi42OCAwIDAwMCAyLjY3djM2LjY2QTIuNjggMi42OCAwIDAwMi42NyA0MmgzNi42NkEyLjY4IDIuNjggMCAwMDQyIDM5LjMzVjIuNjdBMi42OCAyLjY4IDAgMDAzOS4zMyAweiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0zOS4zMyAxSDIuNjdBMS42NyAxLjY3IDAgMDAxIDIuNjd2MzYuNjZBMS42NyAxLjY3IDAgMDAyLjY3IDQxaDM2LjY2QTEuNjcgMS42NyAwIDAwNDEgMzkuMzNWMi42N0ExLjY3IDEuNjcgMCAwMDM5LjMzIDF6bS4xOSAzOC4zM2EuMi4yIDAgMDEtLjE5LjE5SDIuNjdhLjIuMiAwIDAxLS4xOS0uMTlWMi42N2EuMi4yIDAgMDEuMTktLjE5aDM2LjY2YS4yLjIgMCAwMS4xOS4xOXoiIGZpbGw9IiMyYzU5NjciLz48cGF0aCBkPSJNMjEgMy41OUExNy40MSAxNy40MSAwIDEwMzguNDEgMjEgMTcuNDMgMTcuNDMgMCAwMDIxIDMuNTl6bTAgMzMuMzRBMTUuOTMgMTUuOTMgMCAxMTM2LjkzIDIxIDE2IDE2IDAgMDEyMSAzNi45M3oiIGZpbGw9IiMyYzU5NjciLz48cGF0aCBmaWxsPSIjMmM1OTY3IiBkPSJNMjEuNzQgMzEuMDZWMTEuMTJMMjQgMTMuMzhsMS4wNC0xLjA1TDIxIDguMjlsLTQuMDQgNC4wNEwxOCAxMy4zOGwyLjI2LTIuMjZ2MTkuOTRMMTggMjguODFsLTEuMDQgMS4wNUwyMSAzMy45bDQuMDQtNC4wNEwyNCAyOC44MWwtMi4yNiAyLjI1eiIvPjxwYXRoIGZpbGw9IiMyYzU5NjciIGQ9Ik0yNi44OSAxOGwtMS4wNC0xLjA0TDIxLjggMjFsNC4wNSA0LjA0TDI2Ljg5IDI0bC0yLjI1LTIuMjZoOS4xM3YtMS40OGgtOS4xM0wyNi44OSAxOHpNMTYuMTUgMTYuOTZMMTUuMTEgMThsMi4yNSAyLjI2SDguMjJ2MS40OGg5LjE0TDE1LjExIDI0bDEuMDQgMS4wNEwyMC4yIDIxbC00LjA1LTQuMDR6Ii8+PC9zdmc+");
+}
+
+.oci-database-system, .oci-db-system {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTI5LjY2IDQxLjV2LTQuNDloLTkuNzJWMjYuOTJoLTQuODZ2LTQuNjdoLTIuNzR2NC42N0g3LjY3djIuNzRoNC42N1Y0MS41SC41VjI5LjY2aDQuNjd2LTIuNzRILjVWMTUuMDhoMTEuODR2NC42N2gyLjc0di00LjY3aDQuODZ2LTIuNzRoLTQuODZWLjVoMTEuODR2MTEuODRoLTQuNDl2Mi43NGg0LjQ5djQuNjdoMi43NHYtNC42N0g0MS41djExLjg0aC00LjY3djIuNzRoNC42N1Y0MS41SDI5LjY2em0wLTYuOTh2LTQuODZoNC42N3YtMi43NGgtNC42N3YtNC42N2gtMi43NHY0LjY3aC00LjQ5djcuNmg3LjIzeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTI2LjQyIDF2MTAuODRoLTQuNDl2My43NGg0LjQ5djQuNjdoMy43NHYtNC42N0g0MXYxMC44NGgtNC42N3YzLjc0SDQxVjQxSDMwLjE2di00LjQ5aC05LjcyVjI2LjQyaC00Ljg2di00LjY3aC0zLjc0djQuNjdINy4xN3YzLjc0aDQuNjdWNDFIMVYzMC4xNmg0LjY3di0zLjc0SDFWMTUuNThoMTAuODR2NC42N2gzLjc0di00LjY3aDQuODZ2LTMuNzRoLTQuODZWMWgxMC44NG0tNC40OSAzNC4wMmg4LjIydi00Ljg2aDQuNjd2LTMuNzRoLTQuNjd2LTQuNjdoLTMuNzR2NC42N2gtNC40OXY4LjZNMjcuNDIgMEgxNC41OHYxMi44NEgxOS40NHYxLjc0SDE0LjU4djQuNjdoLTEuNzR2LTQuNjdIMHYxMi44NGg0LjY3djEuNzRIMFY0MmgxMi44NFYyOS4xNkg4LjE3di0xLjc0aDQuNjd2LTQuNjdoMS43NHY0LjY3SDE5LjQ0djEwLjA5aDkuNzJWNDJINDJWMjkuMTZoLTQuNjd2LTEuNzRINDJWMTQuNThIMjkuMTZ2NC42N2gtMS43NHYtNC42N2gtNC40OXYtMS43NGg0LjQ5VjB6bTAgMjIuNzVoMS43NHY0LjY3aDQuNjd2MS43NGgtNC42N1YzNC4wMmgtNi4yMnYtNi42aDQuNDl2LTQuNjdoLS4wMXoiLz48cGF0aCBkPSJNNDEgMjYuNDJWMTUuNThIMzAuMTZ2NC42N2gtMy43NHYtNC42N2gtNC40OXYtMy43NGg0LjQ5VjFIMTUuNTh2MTAuODRoNC44NnYzLjc0aC00Ljg2djQuNjdoLTMuNzR2LTQuNjdIMXYxMC44NGg0LjY3djMuNzRIMVY0MWgxMC44NFYzMC4xNkg3LjE3di0zLjc0aDQuNjd2LTQuNjdoMy43NHY0LjY3aDQuODZ2MTAuMDloOS43MlY0MUg0MVYzMC4xNmgtNC42N3YtMy43NEg0MXpNMTcuMDcgMi41aDcuODV2Ny44NWgtNy44NVYyLjV6bS02LjcyIDM3SDIuNXYtNy44NWg3Ljg1djcuODV6bTAtMTQuNTdIMi41di03Ljg1aDcuODV2Ny44NXptMjEuMy03Ljg2aDcuODV2Ny44NWgtNy44NXYtNy44NXptLTE0LjU4IDBoNy44NXY3Ljg1aC03Ljg1di03Ljg1ek0zOS41IDM5LjVoLTcuODV2LTcuODVoNy44NXY3Ljg1em0tNC42Ny05LjM0aC00LjY3djQuODZoLTguMjJ2LTguNmg0LjQ5di00LjY3aDMuNzR2NC42N2g0LjY3djMuNzR6IiBmaWxsPSIjMmM1OTY3Ii8+PC9zdmc+");
+}
+
+.oci-drg, .oci-dynamic-routing-gateway {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyIDQyIj48Y2lyY2xlIGN4PSIyMSIgY3k9IjIxIiByPSIyMC41IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTIxIDFBMjAgMjAgMCAxMTEgMjEgMjAgMjAgMCAwMTIxIDFtMC0xYTIxIDIxIDAgMTAyMSAyMUEyMSAyMSAwIDAwMjEgMHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMjEgMWEyMCAyMCAwIDEwMjAgMjBBMjAgMjAgMCAwMDIxIDF6bTAgMzguMzNBMTguMzMgMTguMzMgMCAxMTM5LjMzIDIxIDE4LjM1IDE4LjM1IDAgMDEyMSAzOS4zM3oiIGZpbGw9IiMyYzU5NjciLz48cGF0aCBmaWxsPSIjMmM1OTY3IiBkPSJNMjEuODMgMzIuNzRWOS40N2wyLjU0IDIuNTQgMS4xOC0xLjE4TDIxIDYuMjhsLTQuNTUgNC41NSAxLjE4IDEuMTggMi41NC0yLjU0djIzLjI3bC0yLjU0LTIuNTQtMS4xOCAxLjE4TDIxIDM1LjkzbDQuNTUtNC41NS0xLjE4LTEuMTgtMi41NCAyLjU0eiIvPjxwYXRoIGZpbGw9IiMyYzU5NjciIGQ9Ik0xNS41NSAxNi40NWwtMS4xOCAxLjE4IDIuNTQgMi41NEg2LjIxdjEuNjZoMTAuN2wtMi41NCAyLjU0IDEuMTggMS4xOEwyMC4wOSAyMWwtNC41NC00LjU1ek0yNS4wOSAyMC4xN2wyLjU0LTIuNTQtMS4xOC0xLjE4TDIxLjkxIDIxbDQuNTQgNC41NSAxLjE4LTEuMTgtMi41NC0yLjU0aDEwLjd2LTEuNjZoLTEwLjd6Ii8+PC9zdmc+");
+}
+
+.oci-drg-attachment {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyLjcyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojYmI1MDFjfTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMjEuMzQgNDEuNWMtMi4zMSAwLTQuMy0yLjA4LTUuNzMtNi4wMWwtLjExLS4zOGMtMi4xMyAxLjA0LTMuOTcgMS41Ni01LjQ3IDEuNTYtMS4zMyAwLTIuMzktLjQtMy4xOC0xLjE4LTIuMjYtMi4yNi0xLjItNi45NyAyLjkxLTEyLjkybC4yNS0uMzNINS40N2wxLjk1IDEuOTUtMS43NiAxLjc2TC43MSAyMWw0Ljk1LTQuOTUgMS43NiAxLjc2LTEuOTUgMS45NWg0LjU2bC0uMjUtLjI5Yy0uMDktLjEzLS4xOC0uMjYtLjI2LS4zN2wtLjI5LS40MkM1LjU2IDEzLjEgNC42OSA4LjY2IDYuODQgNi41Yy43OC0uNzggMS44Ni0xLjE4IDMuMTktMS4xOCAxLjQ0IDAgMy4xNi40NiA1LjExIDEuMzdsLjM0LjE5Yy4zNC0uOTguNzEtMS44NCAxLjEtMi41OUMxOC4yMyAxLjE1IDIwLjA4LjUgMjEuMzQuNWMyLjMxIDAgNC4zIDIuMDggNS43MyA2LjAxbC4xMS4zN2MyLjEyLTEuMDMgMy45Ni0xLjU2IDUuNDgtMS41NiAxLjMyIDAgMi4zOS40IDMuMTcgMS4xOCAyLjMzIDIuMzMgMS4xOSA3LjEyLTMuMTIgMTMuMjJsNC41Mi4wMi0xLjkzLTEuOTQgMS43Ni0xLjc2TDQyLjAxIDIxbC00Ljk1IDQuOTUtMS43Ni0xLjc1IDEuOTUtMS45NWgtNC41NGMuMzIuNDUuNjIuODkuOSAxLjMyIDMuNTMgNS40NiA0LjM1IDkuODEgMi4yMyAxMS45My0uNzguNzgtMS44NSAxLjE4LTMuMTkgMS4xOC0xLjQzIDAtMy4xNS0uNDYtNS4xMS0xLjM3bC0uMzMtLjE5Yy0uMjYuNzUtLjUzIDEuNDMtLjgyIDIuMDQtMS43MiAzLjU5LTMuNyA0LjM0LTUuMDUgNC4zNHoiIHRyYW5zZm9ybT0icm90YXRlKDkwIDIxIDIxKSIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTIxLjM0IDFjMi4xIDAgMy45MyAyLjA0IDUuMjYgNS42OGwuMjYuOTJjMi4xNS0xLjExIDQuMTYtMS43NyA1LjgtMS43NyAxLjE0IDAgMi4xMS4zMiAyLjgyIDEuMDMgMi40NiAyLjQ2LjI3IDcuOTMtMy43NCAxMy4zNmw2LjcxLjAzTDM2IDE3LjgxbDEuMDUtMS4wNUw0MS4zIDIxbC00LjI1IDQuMjVMMzYgMjQuMTlsMi40NS0yLjQ1aC02LjcyYy41Mi43IDEuMDEgMS40IDEuNDYgMi4wOSAzLjQgNS4yNSA0LjIzIDkuMzcgMi4zIDExLjMtLjY5LjY5LTEuNjUgMS4wMy0yLjg0IDEuMDMtMS4zNiAwLTMuMDItLjQ1LTQuOS0xLjMzbC0uODMtLjQ2Yy0uMy45NC0uNjMgMS44LS45OSAyLjU2LTEuNiAzLjM3LTMuMzggNC4wNy00LjU5IDQuMDctMi4wOSAwLTMuOTMtMi4wNS01LjI2LTUuNjhsLS4yNi0uOTJjLTIuMTUgMS4xMS00LjE1IDEuNzgtNS43OSAxLjc4LTEuMTUgMC0yLjExLS4zMi0yLjgzLTEuMDQtMi4zLTIuMy0uNTQtNy4yMiAyLjk2LTEyLjI4bC44Ni0xLjEySDQuMjZsMS4xMiAxLjEyIDEuMzMgMS4zMy0xLjA1IDEuMDVMMS40MSAyMWw0LjI1LTQuMjUgMS4wNSAxLjA1LTEuMzMgMS4zMy0xLjEyIDEuMTJoNi44NmwtLjk2LTEuMTJjLS4xNy0uMjUtLjM0LS40OS0uNS0uNzRsLS4wMS4wMUM2LjEyIDEzLjA0IDUuMjMgOC44MyA3LjIgNi44NmMuNjktLjY5IDEuNjUtMS4wMyAyLjg0LTEuMDMgMS4zNiAwIDMuMDEuNDUgNC45IDEuMzNsLjgzLjQ2Yy4zNy0xLjE2Ljc5LTIuMjEgMS4yNi0zLjA5QzE4LjU2IDEuNjEgMjAuMjIgMSAyMS4zNCAxbTAtMWMtMS40IDAtMy40NC43LTUuMiA0LjA2LS4zMy42Mi0uNjQgMS4zMy0uOTMgMi4xMS0xLjk2LS45LTMuNy0xLjM1LTUuMTctMS4zNS0xLjQ3IDAtMi42Ny40NS0zLjU1IDEuMzMtMi4yIDIuMi0xLjY1IDYuMjggMS41NCAxMS41NmwtLjYxLS42MS0xLjA1LTEuMDUtLjcxLS43MS0uNzEuNzFMLjcgMjAuMyAwIDIxbC43MS43MSA0LjI1IDQuMjUuNzEuNzEuNzEtLjcxIDEuMDUtMS4wNS42My0uNjNjLTMuMjIgNS4yOS0zLjc4IDkuMzYtMS41NiAxMS41OC44OC44OCAyLjA3IDEuMzMgMy41MyAxLjMzczMuMTktLjQ2IDUuMTctMS4zN2MxLjkgNS4xIDQuMzggNi4xOCA2LjE0IDYuMTggMS41IDAgMy42Ny0uOCA1LjQ5LTQuNjMuMjMtLjQ4LjQ0LS45OS42NS0xLjU1IDEuOTYuOSAzLjcgMS4zNSA1LjE3IDEuMzUgMS40NyAwIDIuNjctLjQ1IDMuNTQtMS4zMiAyLjMzLTIuMzMgMS41Ni02Ljc5LTIuMTYtMTIuNTUtLjEyLS4xOC0uMjQtLjM3LS4zNi0uNTVoMi4zOGwtLjc0Ljc0LS43MS43MS43MS43MSAxLjA1IDEuMDUuNzEuNzEuNzEtLjcxIDQuMjUtNC4yNS42OS0uNzEtLjcxLS43MS00LjI1LTQuMjUtLjcxLS43MS0uNzEuNzEtMS4wNCAxLjA2LS43MS43MS43MS43MS43My43My0yLjM2LS4wMWM0LjAxLTUuOTUgNC45My0xMC42NyAyLjUyLTEzLjA4LS44OC0uODgtMi4wNy0xLjMzLTMuNTMtMS4zMy0xLjQ3IDAtMy4yMS40Ni01LjE4IDEuMzZDMjUuNTggMS4wOCAyMy4xIDAgMjEuMzQgMHpNNi42OCAxOS4yNmwuNzQtLjc0LjY4LS42OGMuMjMuMzcuNDYuNzUuNzEgMS4xM2wuMi4zSDYuNjh2LS4wMXptMCAzLjQ4aDIuMzVjLS4zMy40OS0uNjMuOTYtLjkyIDEuNDNsLS42OS0uNjktLjc0LS43NHoiIHRyYW5zZm9ybT0icm90YXRlKDkwIDIxIDIxKSIvPjxnPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTMyLjQ0IDIxLjEzYy4wNi4wOC4xMi4xNi4xNy4yNC4wOS4xMi4xOC4yNC4yNi4zNiAwIDAgMCAuMDEuMDEuMDFoNS41N0wzNiAyNC4xOWwxLjA1IDEuMDVMNDEuMyAyMWwtNC4yNS00LjI1TDM2IDE3LjgxbDIuNDUgMi40NWgtNS41N2MtLjE4LjI1LS4zNi41LS41NC43NC4wMy4wNC4wNi4wOS4xLjEzek0yMS4zNCA0MWMxLjIxIDAgMi45OS0uNyA0LjU4LTQuMDYuOTMtMS45NiAxLjY4LTQuNiAyLjE3LTcuNjEuMzUtMi4yLjU2LTQuNTMuNjItNi45NS0uNTgtLjc0LTEuMi0xLjQ4LTEuODUtMi4yMiAwIC4yOC4wMS41Ni4wMS44NCAwIDIuODItLjIxIDUuNTItLjYxIDguMDQtLjQ2IDIuODQtMS4xNSA1LjMtMi4wMSA3LjEtLjkxIDEuOS0xLjk2IDMtMi45IDMtMS4xIDAtMi40OS0xLjUxLTMuNjEtNC43Mi0uNTYuMzMtMS4xMS42My0xLjY1LjkgMS4zMiAzLjYzIDMuMTYgNS42OCA1LjI1IDUuNjh6TTIzLjgzIDE1Ljczek0xMi4xNSAxOC43MmMtLjMzLS40Ni0uNjQtLjkxLS45My0xLjM1bC0uMDEuMDFjLTMuMjYtNC45Ni0zLjcxLTguMi0yLjctOS4yMS43OC0uNzggMi44MS0uNyA1Ljg5Ljc5LjE2LS42My4zNC0xLjIzLjUzLTEuODEtMy41Mi0xLjY1LTYuMjUtMS43OC03LjczLS4yOS0xLjk3IDEuOTctMS4wOCA2LjE4IDIuNDYgMTEuNTVsLjAxLS4wMWMuMTYuMjUuMzMuNDkuNS43NGgxLjY0Yy4xMS0uMTQuMjItLjI4LjM0LS40MnpNMTMuOTkgMjIuODZjLjA3IDIuMTYuMjYgNC4yNS41NiA2LjIzLjE0LjkxLjMgMS43Ni40OCAyLjU4LjU1LS4zIDEuMTItLjYzIDEuNjktLjk5LS4xMi0uNTktLjIzLTEuMjEtLjMzLTEuODctLjI5LTEuODktLjQ3LTMuODgtLjU0LTUuOTRoLTEuODZ6IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAyMSAyMSkiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0zMy4xOCAyMy44NGMtMS43My0yLjY3LTQuMDItNS40Ni02LjYyLTguMDYtLjQ4LS40OC0uOTgtLjk2LTEuNDYtMS40MWE1MC40NjIgNTAuNDYyIDAgMDAtNS44My00LjdjLS4zNC0uMjQtLjY4LS40Ni0xLjAxLS42Ny0uMTguNi0uMzQgMS4yMy0uNDkgMS45LjE1LjEuMy4yLjQ2LjMxIDEuODYgMS4yNyAzLjc1IDIuNzkgNS42MSA0LjUyLjQ3LjQ0Ljk1LjkgMS40MSAxLjM3IDIuNTIgMi41MiA0LjcyIDUuMiA2LjM4IDcuNzYgMy4xMyA0LjgzIDMuNTMgNy45OSAyLjU0IDguOTgtLjc3Ljc3LTIuODEuNy01LjktLjc5LS4xNi42My0uMzQgMS4yMy0uNTMgMS44MSAxLjg5Ljg4IDMuNTQgMS4zMyA0LjkgMS4zMyAxLjE5IDAgMi4xNS0uMzQgMi44NC0xLjAzIDEuOTQtMS45NSAxLjEtNi4wNy0yLjMtMTEuMzJ6IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAyMSAyMSkiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0yMy41NiAyOS4wMWMuNjgtLjU5IDEuMzYtMS4yIDIuMDItMS44Mi4xMS0uOTQuMi0xLjkuMjYtMi44OC0uMTkuMi0uMzkuNC0uNTkuNmE1Ni40NzggNTYuNDc4IDAgMDEtMy4xOCAyLjk0Yy40OS40Ljk5Ljc5IDEuNDkgMS4xNnpNMTAuMTYgMjIuODZjLTMuNSA1LjA3LTUuMjYgOS45OS0yLjk2IDEyLjI4LjcxLjcxIDEuNjggMS4wNCAyLjgzIDEuMDQgMi44IDAgNi42OC0xLjkzIDEwLjU0LTQuNzctLjUtLjM5LTEtLjc5LTEuNS0xLjIxLTQuOTkgMy41OC05LjIzIDQuOTUtMTAuNTUgMy42NC0xLjM2LTEuMzYuMTQtNS43OSAzLjk0LTEwLjk3aC0yLjN6TTIyLjEyIDEwLjZjLjUuMzkgMSAuNzkgMS41IDEuMjEgMy43NC0yLjY4IDcuMDYtNC4xMyA5LjA0LTQuMTMuNjYgMCAxLjE4LjE2IDEuNTEuNDkgMS4zMiAxLjMyLS4wNiA1LjU2LTMuNjQgMTAuNTUuNDIuNS44MiAxIDEuMjEgMS41IDQtNS40MyA2LjItMTAuOSAzLjc0LTEzLjM2LTIuNDYtMi40Ni03LjkzLS4yNy0xMy4zNiAzLjc0ek0xNS40OSAxOS4xNGMuNjEtLjY4IDEuMjYtMS4zNiAxLjk0LTIuMDUgMS4wNi0xLjA2IDIuMTMtMi4wNCAzLjE4LTIuOTQtLjUtLjQxLTEtLjgtMS40OS0xLjE3LTEuMDMuODktMi4wNCAxLjgyLTMgMi43OWE1NC4xNCA1NC4xNCAwIDAwLTMuMDkgMy4zNmgyLjQ2ek0yMS4zNCAxYy0xLjEyIDAtMi43OC42MS00LjMyIDMuNTMtMS4wNiAyLjAyLTEuOSA0LjgzLTIuNDQgOC4xNC0uMiAxLjIzLS4zNSAyLjUxLS40NiAzLjgyLjQzLS40Ni44Ny0uOTIgMS4zMy0xLjM3LjI1LS4yNS41MS0uNS43Ny0uNzUuMDYtLjQ3LjEzLS45NC4yLTEuNDEuNS0zLjExIDEuMjgtNS43MyAyLjI1LTcuNTcuODYtMS42MyAxLjgxLTIuNTMgMi42Ny0yLjUzIDEuMSAwIDIuNDkgMS41MSAzLjYxIDQuNzIuNTYtLjMzIDEuMTEtLjYzIDEuNjUtLjlDMjUuMjcgMy4wNCAyMy40NCAxIDIxLjM0IDF6IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCAyMSAyMSkiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0yOC4xMyAxMi45MmMtLjE0LS45MS0uMy0xLjc3LS40OC0yLjU5LS41NS4zLTEuMTIuNjMtMS42OS45OS4xMi41OS4yMyAxLjIyLjM0IDEuODguMDYuMzguMTEuNzcuMTYgMS4xNi4yNi4yNS41MS41Ljc2Ljc1LjQ1LjQ1Ljg5LjkxIDEuMzMgMS4zNy0uMS0xLjIxLS4yNC0yLjQtLjQyLTMuNTZ6TTIzLjY3IDMyLjUxYy4yNS4xNy41MS4zMy43Ni40OS4xOC0uNi4zNC0xLjIzLjQ5LTEuOS0uMDctLjA1LS4xNC0uMDktLjIxLS4xNC0xLjg1LTEuMjQtMy43My0yLjczLTUuNTktNC40NC0uNTYtLjUyLTEuMTItMS4wNS0xLjY5LTEuNjEtLjItLjItLjM5LS40LS41OS0uNi4wNi45OC4xNSAxLjk0LjI2IDIuODguMjUuMjQuNS40Ny43NS43IDEuOTMgMS43NyAzLjg5IDMuMzIgNS44MiA0LjYyek0yNS45MyAyMS43NGMwLS4yNS4wMS0uNDkuMDEtLjc0czAtLjUtLjAxLS43NEg0LjI2bDEuMTItMS4xMiAxLjMzLTEuMzMtMS4wNS0xLjA1TDEuNDEgMjFsNC4yNSA0LjI1IDEuMDUtMS4wNS0xLjMzLTEuMzMtMS4xMi0xLjEyaDIxLjY3eiIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgMjEgMjEpIi8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-dhcp-options {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyLjkzIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTI1LjU0IDQxLjVjLTIuMDYgMC0zLjc0LTEuNjgtMy43NC0zLjc0IDAtMS4yLjU4LTIuMzIgMS41NC0zLjAybC0uNS0xLjc5Yy0uNzkuMTQtMS42LjIyLTIuNC4yMi00LjEgMC03Ljg5LTEuODItMTAuNDYtNWwtLjg0LjU2Yy4wOS4zMi4xMy42NS4xMy45OCAwIDIuMTEtMS43MiAzLjgzLTMuODMgMy44M3MtMy44My0xLjcyLTMuODMtMy44M2MwLTIuMTEgMS43Mi0zLjgzIDMuODMtMy44My44NSAwIDEuNjYuMjggMi4zMy43OWwuODQtLjU2YTEzLjQ4NyAxMy40ODcgMCAwMS0xLjMzLTkuMmwtMS40Ni0uNDVjLS41My41Ni0xLjI3Ljg4LTIuMDQuODgtMS41NSAwLTIuODEtMS4yNi0yLjgxLTIuODFzMS4yNi0yLjgyIDIuODEtMi44MmMxLjM5IDAgMi41NyAxLjA0IDIuNzggMi4zOGwxLjQ2LjQ1Yy40Ny0xLjEzIDEuMDktMi4xOSAxLjg2LTMuMTZsLTEuMTctMS4xMWMtLjg2LjU2LTEuODUuODYtMi44OS44Ni0yLjkzIDAtNS4zMS0yLjM4LTUuMzEtNS4zMlMyLjg4LjUgNS44Mi41YTUuMzEzIDUuMzEzIDAgMDE0LjYgNy45N2wxLjE3IDEuMTFjMi40Ni0yLjE2IDUuNTktMy4zNCA4Ljg2LTMuMzQgMi44NyAwIDUuNi44OSA3LjkxIDIuNThsLjc2LS44N2EzLjkzIDMuOTMgMCAxMTMuNDYgMi4wN2MtLjU3IDAtMS4xMy0uMTMtMS42NS0uMzdsLS43MS44YzIuMzggMi41MSAzLjY5IDUuNzggMy42OSA5LjI1IDAgMS4xMy0uMTQgMi4yNS0uNDIgMy4zNWwxLjIzLjQ0Yy44MS0xLjA3IDIuMDYtMS43IDMuNDEtMS43IDIuMzcgMCA0LjMgMS45MyA0LjMgNC4zcy0xLjkzIDQuMy00LjMgNC4zLTQuMy0xLjkzLTQuMy00LjNjMC0uMDkgMC0uMTguMDEtLjI4bC0xLjItLjQzYTEzLjQ5IDEzLjQ5IDAgMDEtNy40MSA2Ljg5bC40OCAxLjc0YTMuNzQgMy43NCAwIDAxMy41NiAzLjc0IDMuNzM0IDMuNzM0IDAgMDEtMy43MyAzLjc1eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTUuODEgMWMyLjY1IDAgNC44MSAyLjE2IDQuODEgNC44MSAwIDEuMDItLjMyIDEuOTYtLjg2IDIuNzRsMS44IDEuNzFjMi4zMi0yLjE4IDUuNDQtMy41MiA4Ljg3LTMuNTIgMy4wMSAwIDUuNzggMS4wMyA3Ljk4IDIuNzZsMS4zMS0xLjQ5Yy0uMzctLjU1LS41OS0xLjIxLS41OS0xLjkxIDAtMS44OSAxLjU0LTMuNDMgMy40My0zLjQzIDEuOSAwIDMuNDQgMS41MyAzLjQ0IDMuNDJzLTEuNTQgMy40My0zLjQzIDMuNDNjLS42NSAwLTEuMjUtLjE4LTEuNzYtLjQ5bC0xLjI3IDEuNDVjMi4zOSAyLjM1IDMuODcgNS42MiAzLjg3IDkuMjMgMCAxLjI3LS4xOSAyLjUtLjUzIDMuNjZsMi4wMy43M2MuNjctMS4wOCAxLjg2LTEuOCAzLjIyLTEuOCAyLjA5IDAgMy44IDEuNyAzLjggMy44IDAgMi4wOS0xLjcgMy44LTMuOCAzLjhhMy43OTggMy43OTggMCAwMS0zLjc1LTQuNDFsLTIuMDEtLjcyYTEzLjA0NCAxMy4wNDQgMCAwMS03Ljc1IDcuMjFsLjcxIDIuNTZjLjA3IDAgLjEzLS4wMS4yLS4wMWEzLjI0IDMuMjQgMCAxMTAgNi40OCAzLjI0IDMuMjQgMCAwMS0zLjI0LTMuMjRjMC0xLjIuNjYtMi4yNCAxLjYyLTIuOGwtLjcyLTIuNTljLS44OS4xOS0xLjgxLjMtMi43Ni4zLTQuMjMgMC03Ljk4LTIuMDMtMTAuMzUtNS4xN2wtMS41NCAxLjAyYy4xNC4zNy4yMi43Ny4yMiAxLjE4IDAgMS44NC0xLjUgMy4zMy0zLjMzIDMuMzMtMS44NCAwLTMuMzMtMS41LTMuMzMtMy4zMyAwLTEuODQgMS41LTMuMzMgMy4zMy0zLjMzLjg5IDAgMS42OS4zNSAyLjI5LjkybDEuNTQtMS4wMmExMi45NDkgMTIuOTQ5IDAgMDEtMS43OS02LjU2YzAtMS4wOC4xNC0yLjEzLjM5LTMuMTRsLTIuMjItLjY5YTIuMzA1IDIuMzA1IDAgMDEtNC4xOC0xLjM1IDIuMzExIDIuMzExIDAgMDE0LjYyLS4wNWwyLjIyLjY5Yy41My0xLjQgMS4yOS0yLjY5IDIuMjUtMy44MmwtMS44LTEuNzFjLS44MS42My0xLjgzIDEtMi45NCAxQzMuMTYgMTAuNjMgMSA4LjQ3IDEgNS44MSAxIDMuMTYgMy4xNiAxIDUuODEgMW0wLTFDMi42MSAwIDAgMi42MSAwIDUuODFjMCAyLjQ0IDEuNTEgNC41MyAzLjY0IDUuMzlhMy4zMTMgMy4zMTMgMCAwMC0zLjE3IDMuMzFjMCAxLjgzIDEuNDkgMy4zMSAzLjMxIDMuMzEuOCAwIDEuNTctLjMgMi4xNy0uODJsLjc1LjIzYy0uMTQuODEtLjIyIDEuNjMtLjIyIDIuNDUgMCAyLjE3LjUxIDQuMyAxLjQ3IDYuMjNsLS4xOC4xMmMtLjY5LS40NS0xLjUtLjY5LTIuMzMtLjY5LTIuMzkgMC00LjMzIDEuOTQtNC4zMyA0LjMzUzMuMDUgMzQgNS40NCAzNHM0LjMzLTEuOTQgNC4zMy00LjMzYzAtLjI1LS4wMi0uNS0uMDctLjc1bC4xOC0uMTJjMi42NiAzLjA4IDYuNDYgNC44MyAxMC41NiA0LjgzLjY4IDAgMS4zNi0uMDUgMi4wNC0uMTVsLjI5IDEuMDRjLS45Mi44LTEuNDcgMS45Ny0xLjQ3IDMuMjEgMCAyLjM0IDEuOSA0LjI0IDQuMjQgNC4yNHM0LjI0LTEuOSA0LjI0LTQuMjRjMC0yLjE0LTEuNi0zLjkyLTMuNjctNC4ybC0uMjctLjk4YzMuMDUtMS4yOCA1LjU2LTMuNjIgNy4wNi02LjU3bC40My4xNmE0LjgwNCA0LjgwNCAwIDAwNC44IDQuNzJjMi42NCAwIDQuOC0yLjE1IDQuOC00LjggMC0yLjY0LTIuMTUtNC44LTQuOC00LjgtMS4zOSAwLTIuNjcuNTktMy41OCAxLjYxbC0uNDgtLjE3Yy4yMi0xIC4zMy0yLjAxLjMzLTMuMDMgMC0zLjQ1LTEuMjQtNi43LTMuNTItOS4yNWwuMTctLjJjLjQ4LjE4Ljk5LjI3IDEuNTEuMjcgMi40NCAwIDQuNDMtMS45OSA0LjQzLTQuNDNTMzUgMS42MyAzMi41NiAxLjYzYTQuNDM5IDQuNDM5IDAgMDAtNC4wNiA2LjIxbC0uMjUuMjhjLTIuMzItMS41OC01LTIuNDEtNy44My0yLjQxLTMuMjQgMC02LjM1IDEuMTItOC44NCAzLjE3bC0uNTctLjU0Yy4zOS0uNzkuNTktMS42Ni41OS0yLjU2QzExLjYzIDIuNjEgOS4wMiAwIDUuODEgMHptMCAxMS42M2MxIDAgMS45Ni0uMjUgMi44Mi0uNzNsLjU2LjU0Yy0uNTguNzgtMS4wNyAxLjYxLTEuNDcgMi40OWwtLjc1LS4yM2MtLjIzLS44OS0uODMtMS42NC0xLjYzLTIuMDguMTcgMCAuMzIuMDEuNDcuMDF6Ii8+PGc+PHBhdGggZD0iTTM4LjEzIDIyLjNjLTEuMzYgMC0yLjU1LjcyLTMuMjIgMS44bC0yLjAzLS43M2MuMzQtMS4xNi41My0yLjM5LjUzLTMuNjYgMC0zLjYxLTEuNDgtNi44OC0zLjg3LTkuMjNsMS4yNy0xLjQ1Yy41Mi4zMSAxLjEyLjQ5IDEuNzYuNDkgMS44OSAwIDMuNDMtMS41NCAzLjQzLTMuNDNzLTEuNTQtMy40My0zLjQzLTMuNDNjLTEuODkgMC0zLjQzIDEuNTQtMy40MyAzLjQzIDAgLjcxLjIyIDEuMzcuNTkgMS45MWwtMS4zMSAxLjVjLTIuMi0xLjczLTQuOTctMi43Ni03Ljk4LTIuNzYtMy40MyAwLTYuNTUgMS4zNC04Ljg3IDMuNTJsLTEuOC0xLjcxYy41NC0uNzguODYtMS43Mi44Ni0yLjc0QzEwLjYzIDMuMTYgOC40NyAxIDUuODEgMVMxIDMuMTYgMSA1LjgxczIuMTYgNC44MSA0LjgxIDQuODFjMS4xMSAwIDIuMTItLjM4IDIuOTQtMWwxLjggMS43MWMtLjk1IDEuMTItMS43MiAyLjQxLTIuMjUgMy44MmwtMi4yMi0uNjlhMi4zMTEgMi4zMTEgMCAwMC00LjYyLjA1YzAgMS4yNyAxLjA0IDIuMzEgMi4zMSAyLjMxLjc3IDAgMS40NS0uMzggMS44Ny0uOTZsMi4yMi42OWMtLjI1IDEuMDEtLjM5IDIuMDYtLjM5IDMuMTQgMCAyLjM5LjY1IDQuNjMgMS43OSA2LjU2bC0xLjU0IDEuMDJjLS42LS41Ny0xLjQtLjkyLTIuMjktLjkyLTEuODQgMC0zLjMzIDEuNS0zLjMzIDMuMzMgMCAxLjg0IDEuNSAzLjMzIDMuMzMgMy4zM3MzLjMzLTEuNSAzLjMzLTMuMzNjMC0uNDItLjA4LS44Mi0uMjItMS4xOGwxLjU0LTEuMDJjMi4zNyAzLjE0IDYuMTMgNS4xNyAxMC4zNSA1LjE3Ljk1IDAgMS44Ny0uMSAyLjc2LS4zbC43MiAyLjU5YTMuMjM2IDMuMjM2IDAgMDAxLjYyIDYuMDQgMy4yNCAzLjI0IDAgMTAwLTYuNDhjLS4wNyAwLS4xMy4wMS0uMi4wMWwtLjcxLTIuNTZjMy40OS0xLjE5IDYuMzItMy44NCA3Ljc1LTcuMjFsMi4wMS43MmEzLjgwNSAzLjgwNSAwIDAwMy43NSA0LjQxYzIuMDkgMCAzLjgtMS43IDMuOC0zLjhzLTEuNzEtMy43Ny0zLjgtMy43N3ptLTcuNS0xNi4yMWMwLTEuMDcuODctMS45NCAxLjk0LTEuOTQgMS4wNyAwIDEuOTQuODcgMS45NCAxLjk0cy0uODcgMS45NC0xLjk0IDEuOTRjLTEuMDcuMDEtMS45NC0uODctMS45NC0xLjk0ek00LjYxIDE0LjUyYzAgLjQ2LS4zNy44My0uODMuODMtLjQ2IDAtLjgzLS4zNy0uODMtLjgzcy4zNy0uODMuODMtLjgzYy40NiAwIC44My4zNy44My44M3pNNy4zIDI5LjdjMCAxLjAyLS44MyAxLjg1LTEuODUgMS44NVMzLjYgMzAuNzIgMy42IDI5LjdzLjgzLTEuODUgMS44NS0xLjg1IDEuODUuODMgMS44NSAxLjg1em0yMCA4LjA2YzAgLjk3LS43OSAxLjc2LTEuNzYgMS43NnMtMS43Ni0uNzktMS43Ni0xLjc2Ljc5LTEuNzYgMS43Ni0xLjc2IDEuNzYuNzkgMS43NiAxLjc2ek04Ljk5IDIwLjQ0aDUuMzZjLjE1IDMuODggMS41MSA3LjUzIDMuOSAxMC41My01LjA1LS45OC04LjkyLTUuMjgtOS4yNi0xMC41M3ptOS4yNi0xMi4wMWMtMi4zOSAzLTMuNzUgNi42NS0zLjkgMTAuNTNIOC45OWMuMzQtNS4yNSA0LjIxLTkuNTUgOS4yNi0xMC41M3pNMzEuOSAxOC45NmgtNS4zNmMtLjE1LTMuODgtMS41MS03LjUzLTMuOS0xMC41MyA1LjA1Ljk4IDguOTIgNS4yOCA5LjI2IDEwLjUzem0tMTYuMDcgMGMuMTctNC4wNSAxLjc4LTcuODEgNC41Ny0xMC43NGguMDhjMi43OSAyLjkzIDQuMzkgNi42OSA0LjU3IDEwLjc0aC05LjIyem0wIDEuNDhoOS4yMmMtLjE3IDQuMDQtMS43OCA3LjgxLTQuNTcgMTAuNzRoLS4wOGExNi41MjEgMTYuNTIxIDAgMDEtNC41Ny0xMC43NHptMTAuNzEgMGg1LjM2Yy0uMzQgNS4yNS00LjIxIDkuNTUtOS4yNiAxMC41MyAyLjM5LTMgMy43NS02LjY0IDMuOS0xMC41M3pNNS44MSA5LjE1Yy0xLjg0IDAtMy4zMy0xLjUtMy4zMy0zLjMzczEuNS0zLjMzIDMuMzMtMy4zMyAzLjMzIDEuNSAzLjMzIDMuMzMtMS40OSAzLjMzLTMuMzMgMy4zM3ptMzIuMzIgMTkuMjZhMi4zMTEgMi4zMTEgMCAwMTAtNC42MmMxLjI3IDAgMi4zMSAxLjA0IDIuMzEgMi4zMXMtMS4wMyAyLjMxLTIuMzEgMi4zMXoiIGZpbGw9IiNiYjUwMWMiLz48L2c+PC9zdmc+");
+}
+
+.oci-dynamic-group {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU2LjkzIDQyIj48cGF0aCBkPSJNLjUgNDEuNVYyNi4zMUE1LjM2IDUuMzYgMCAwMTUuODUgMjFIOHYtLjMxYTcuNDQgNy40NCAwIDExNy43My0uMTVoLjVhNi4zIDYuMyAwIDAxNS0yLjQ1aDIuNlYxN0E4Ljg5IDguODkgMCAxMTMzIDE3djFoMi42NmE2LjQ0IDYuNDQgMCAwMTUgMi40NWguNWE3LjQ0IDcuNDQgMCAxMTcuOC4xMVYyMWgyYTUuMzYgNS4zNiAwIDAxNS4zNSA1LjM1VjQxLjV6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTI4LjQyIDFhOC4zOSA4LjM5IDAgMDE0LjEgMTUuNzJ2MS44M2gzLjE2YTYgNiAwIDAxNC44IDIuNDVoMy4yM2E2Ljk0IDYuOTQgMCAxMTMgMGgxLjh2LjQ2aDIuNTVhNC44NiA0Ljg2IDAgMDE0Ljg1IDQuODVWNDFIMVYyNi4zMWE0Ljg2IDQuODYgMCAwMTQuODUtNC44NWgyLjYyVjIxaDEuNzNhNi45NCA2Ljk0IDAgMTEzIDBoMy4yM2E1Ljc4IDUuNzggMCAwMTQuNzItMi40NWgzLjF2LTEuODdBOC4zOSA4LjM5IDAgMDEyOC40MiAxbTAtMWE5LjM5IDkuMzkgMCAwMC01LjE1IDE3LjI0di4zMWgtMi4xYTYuNjMgNi42MyAwIDAwLTIuNS40OSA3Ljk0IDcuOTQgMCAxMC0xNC45LTMuODEgOCA4IDAgMDAzIDYuMjNoLTFBNS44NiA1Ljg2IDAgMDAwIDI2LjMxVjQyaDU2LjkzVjI2LjMxYTUuODYgNS44NiAwIDAwLTUuODUtNS44NWgtMWE3Ljk0IDcuOTQgMCAxMC0xMi44NC02LjIzIDcuODcgNy44NyAwIDAwMSAzLjgzIDcgNyAwIDAwLTIuNi0uNTFoLTIuMTJ2LS4yNkE5LjQgOS40IDAgMDAyOC40MiAweiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik00NS4yMiAyMS4xN2E2Ljk1IDYuOTUgMCAxMC02Ljk0LTYuOTQgNyA3IDAgMDA2Ljk0IDYuOTR6bTAtMTIuMTdBNS4yNyA1LjI3IDAgMTE0MCAxNC4yMyA1LjI4IDUuMjggMCAwMTQ1LjIyIDl6IiBmaWxsPSIjQkI1MTI3Ii8+PHBhdGggZD0iTTUxLjA4IDIxLjQ2aC0xLjQzbC0uMjUuMzNhNS4yNyA1LjI3IDAgMDEtOC4zNiAwbC0uMjUtLjMzaC0uMDhhNS44MiA1LjgyIDAgMDAtNS0yLjkxSDM0bC0uMjUuMzNhNi43MiA2LjcyIDAgMDEtMTAuNjYgMGwtLjI1LS4zM2gtMS42N2E1LjgxIDUuODEgMCAwMC01IDIuOTFsLS4yNS4zM2E1LjI3IDUuMjcgMCAwMS04LjM2IDBsLS4yNS0uMzNINS44NUE0Ljg2IDQuODYgMCAwMDEgMjYuMzFWNDFoMS42OFYyNi4zMWEzLjE4IDMuMTggMCAwMTMuMTctMy4xOGguNjJhNyA3IDAgMDA4Ljg5IDEuMzZWNDFIMTdWMjQuMzZhNC4xMyA0LjEzIDAgMDE0LjEzLTQuMTNIMjJhOC40MSA4LjQxIDAgMDAxMi43OSAwaC44NmE0LjEzIDQuMTMgMCAwMTQuMTMgNC4xM1Y0MWgxLjY4VjI0LjQzYTYuOTMgNi45MyAwIDAwOS0xLjNoLjYyYTMuMTkgMy4xOSAwIDAxMy4xOCAzLjE4VjQxaDEuNjdWMjYuMzFhNC44NiA0Ljg2IDAgMDAtNC44NS00Ljg1eiIgZmlsbD0iI0JCNTEyNyIvPjxwYXRoIGQ9Ik0xMS43MSAyMS4xN2E2Ljk1IDYuOTUgMCAxMC02Ljk0LTYuOTQgNyA3IDAgMDA2Ljk0IDYuOTR6bTAtMTIuMTdhNS4yNyA1LjI3IDAgMTEtNS4yNyA1LjI3QTUuMjcgNS4yNyAwIDAxMTEuNzEgOXpNMjguNDIgMTcuNzlBOC40IDguNCAwIDEwMjAgOS40YTguNCA4LjQgMCAwMDguNDIgOC4zOXptMC0xNS4xMUE2LjcyIDYuNzIgMCAxMTIxLjcgOS40YTYuNzMgNi43MyAwIDAxNi43Mi02Ljcyek0yMS4xNyAzMC42NGgtLjg0VjQxaDEuNjh2LTguNjhsLS44NC0xLjY4ek0zNS42MiAzMC42NGwtLjg0IDEuNjhWNDFoMS42OFYzMC42NGgtLjg0ek01MC4wNyAzMy45OVY0MWgxLjY4di04LjY4aC0uODRsLS44NCAxLjY3ek01LjE4IDMyLjMyVjQxaDEuNjd2LTcuMDFsLS44NC0xLjY3aC0uODN6IiBmaWxsPSIjQkI1MTI3Ii8+PC9zdmc+");
+}
+
+.oci-fast-connect {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDYwLjMzIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMzAuMDggNDEuNWE5LjcxMyA5LjcxMyAwIDAxLTcuNTgtMy42NWMtLjM2LjA1LS43Mi4wNy0xLjA3LjA3YTguMjgzIDguMjgzIDAgMDEtNi4yOC0yLjg5SDYuOTF2LTIuNzdoNi42NmE4LjQyNSA4LjQyNSAwIDAxLS40LTMuNDljMC0uMDUuMDEtLjEuMDItLjE1SDMuODF2LTIuNzdoNy42N2E3Ljk0OCA3Ljk0OCAwIDAxLTEuODUtMy42NEguNXYtMi43N2g5LjAzYy4xOC0xLjI0LjY0LTIuNCAxLjM1LTMuNDJIMy44MXYtMi43N2gxMC4wMmMtLjE1LS44LS4xOC0xLjYyLS4xLTIuNDQuMDQtLjQuMTEtLjguMjEtMS4ySDYuOTFWNi44NWg4LjI2Yy40OC0uNzEgMS4wNS0xLjM0IDEuNy0xLjg4YTguNTUyIDguNTUyIDAgMDE2LjM1LTEuOWMuNTYuMDYgMS4xMS4xNyAxLjY0LjMzQTEyLjM4MyAxMi4zODMgMCAwMTM0LjA1LjU2YzQuMDIuNDEgNy41NyAyLjc1IDkuNTQgNi4yOWg5LjYydjIuNzdoLTguNDljLjE5LjY4LjMxIDEuMzguMzggMi4wNy44Ni40MSAxLjY2LjkzIDIuMzggMS41N2g5LjA0djIuNzdoLTYuODVjLjU3IDEuMDYuOTUgMi4yMiAxLjExIDMuNDJoOS4wNXYyLjc3aC05LjA1YTEwLjA5IDEwLjA5IDAgMDEtMS4yNSAzLjY0aDYuOTl2Mi43N2gtOS4zNmwtLjMxLjI1YTcuODYgNy44NiAwIDAxLS4yMyAzLjRoNi40M2wuMTIuMzNjLjAzLjA4LjEyLjM0LjAzIDEuOTdsLS4wMy40N2gtOGE4LjAyIDguMDIgMCAwMS03IDIuOTFjLS4xOS0uMDItLjM3LS4wNC0uNTYtLjA4YTkuNTc0IDkuNTc0IDAgMDEtNy41MyAzLjYyeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTMyLjggMWMuNCAwIC44LjAyIDEuMi4wNiA0LjA3LjQxIDcuNDkgMi44NyA5LjI5IDYuMjloOS40MXYxLjc3aC04LjY2Yy4zMS45Mi41MSAxLjkuNTggMi45IDEgLjQzIDEuODkgMS4wMyAyLjY2IDEuNzRoOC43M3YxLjc3aC03LjIzYTkuNjkgOS42OSAwIDAxMS41NSA0LjQyaDguOTl2MS43N2gtOC45OXYuMDZhOS40NzIgOS40NzIgMCAwMS0xLjcyIDQuNThoNy40MXYxLjc3aC05LjA0Yy0uMjIuMTgtLjQ0LjM2LS42OC41My4xNC43MS4xNyAxLjQzLjEgMi4xNC0uMDcuNjktLjI0IDEuMzYtLjQ4IDEuOThoNi43OGMuMDkuMjQgMCAxLjc3IDAgMS43N2gtNy43N2E3LjQ5MiA3LjQ5MiAwIDAxLTUuOTYgMi45OCA3Ljc2IDcuNzYgMCAwMS0xLjU4LS4xN0E5LjE1NSA5LjE1NSAwIDAxMzAuMDggNDFjLS4zMSAwLS42Mi0uMDItLjkzLS4wNWE5LjE0NCA5LjE0NCAwIDAxLTYuNDMtMy42NGMtLjQzLjA3LS44Ni4xMS0xLjI5LjExLS4yNiAwLS41MS0uMDEtLjc3LS4wNGE3Ljc4NiA3Ljc4NiAwIDAxLTUuMjctMi44M2MtLjAxLS4wMS0uMDEtLjAyLS4wMi0uMDJINy40MXYtMS43N2g2Ljg5YTcuNzY0IDcuNzY0IDAgMDEtLjYzLTMuOTRjLjAyLS4yNC4wNi0uNDcuMTEtLjdINC4zMXYtMS43N2g4LjQyYTcuMzk2IDcuMzk2IDAgMDEtMi42OC00LjY0SDF2LTEuNzdoOC45OHYtLjEyYTcuNDUgNy40NSAwIDAxMS45NC00LjNINC4zMXYtMS43N0gxNC40Yy4wMi0uMDEuMDMtLjAyLjA1LS4wM2E4LjEgOC4xIDAgMDEtLjIyLTIuODZjLjA2LS42LjE5LTEuMTkuMzgtMS43NWgtNy4yVjcuMzVoOC4wM2MuNDctLjc0IDEuMDUtMS40MiAxLjc1LTEuOTlhOC4xIDguMSAwIDAxNS4xNS0xLjg0Yy4yOCAwIC41Ni4wMS44NC4wNC42Mi4wNiAxLjIyLjE5IDEuODEuMzlDMjcuMTYgMi4wNCAyOS45MyAxIDMyLjggMW0wLTFjLTIuOTMgMC01Ljc3IDEtOC4wNSAyLjg0LS40OC0uMTMtLjk4LS4yMi0xLjQ4LS4yNy0uMzEtLjAzLS42My0uMDUtLjk0LS4wNS0yLjEzIDAtNC4xMy43MS01Ljc4IDIuMDdhOS4xOSA5LjE5IDAgMDAtMS42NSAxLjc2SDYuNHYzLjc3aDYuOTJhOC44MjQgOC44MjQgMCAwMC0uMDcgMi42NEgzLjMxdjMuNzdoNi42N2MtLjQxLjc1LS43MSAxLjU3LS44OCAyLjQySDB2My43N2g5LjI0Yy4yNS45NS42NiAxLjg0IDEuMjEgMi42NEgzLjMxdjMuNzdoOS4zM2MtLjA1Ljg5LjA0IDEuNzguMjYgMi42NEg2LjQxdjMuNzdoOC41YTguNzI4IDguNzI4IDAgMDA2LjUyIDIuODljLjI4IDAgLjU3LS4wMS44Ni0uMDQgMS43IDIuMDEgNC4xMyAzLjMgNi43NiAzLjU3LjM0LjAzLjY5LjA1IDEuMDQuMDUgMy4wMSAwIDUuOC0xLjMgNy43NC0zLjU4LjEuMDEuMjEuMDMuMzEuMDRhOC40ODYgOC40ODYgMCAwMDcuMjktMi45NGg4LjIzbC4wNS0uOTRjLjEtMS43NCAwLTIuMDItLjA2LTIuMTdsLS4yNC0uNjVINDcuMjdjLjA2LS4yOS4xMS0uNTguMTQtLjg4LjA2LS41OC4wNS0xLjE3LS4wMS0xLjc2aDkuNjN2LTMuNzdoLTYuNjZjLjQtLjg0LjY5LTEuNzMuODUtMi42NGg5LjEydi0zLjc3aC05LjEyYy0uMTUtLjgzLS40LTEuNjUtLjc0LTIuNDJoNi41NXYtMy43N2gtOS4zNWExMC44MiAxMC44MiAwIDAwLTIuMS0xLjRjLS4wNS0uNDEtLjEyLS44My0uMjEtMS4yNGg4LjM1VjYuMzVoLTkuODNBMTIuODAzIDEyLjgwMyAwIDAwMzQuMTEuMDdDMzMuNjcuMDIgMzMuMjMgMCAzMi44IDB6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNNy40MSA3LjM1djEuNzdoNS44MWMuMTctLjYxLjQtMS4yLjY5LTEuNzdoLTYuNXpNNTIuNyA5LjEyVjcuMzVoLTcuOTNjLjI2LjU3LjQ4IDEuMTYuNjYgMS43N2g3LjI3ek0xMS44NyAxMy43Nkg0LjMxdjEuNzdoNS45MWMuNDctLjY3IDEuMDItMS4yNiAxLjY1LTEuNzd6TTU2LjAyIDE1LjUydi0xLjc3aC02Ljg5Yy40Ni41NS44NyAxLjE0IDEuMjIgMS43N2g1LjY3ek01MS42NyAyMS43MWg3LjY2di0xLjc3aC03LjY2Yy4wNS41OS4wNSAxLjE4IDAgMS43N3pNOC42NSAxOS45NEgxdjEuNzdoNy43Yy0uMDctLjU4LS4wOS0xLjE3LS4wNS0xLjc3ek0xMC44MSAyNi4zNWgtNi41djEuNzdoOC4xMWMuMDItLjEuMDMtLjE5LjA1LS4yOS0uNjItLjQyLTEuMTgtLjkyLTEuNjYtMS40OHpNNTYuMDIgMjguMTJ2LTEuNzdINTAuMmMtLjM3LjYzLS44MSAxLjIyLTEuMyAxLjc3aDcuMTJ6TTUyLjcgMzQuNTN2LTEuNzdoLTUuMzdjLS4yLjYyLS40NyAxLjIyLS44IDEuNzdoNi4xN3pNNy40MSAzMi43NnYxLjc3aDYuMzNjLS4zNi0uNTYtLjY1LTEuMTUtLjg4LTEuNzdINy40MXoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik01MC4zNCAyMS43N2E5LjU4IDkuNTggMCAwMC01LjcxLTkuNzVDNDQuMjMgNi4zIDM5Ljc2IDEuNjQgMzQgMS4wNmMtMy4yOS0uMzMtNi41NC43Mi05LjAyIDIuODktLjU4LS4yLTEuMTktLjMzLTEuODEtLjM5YTguMTIgOC4xMiAwIDAwLTUuOTkgMS44IDguMTI3IDguMTI3IDAgMDAtMi45NiA1LjUxYy0uMS45Ny0uMDIgMS45My4yMiAyLjg2YTcuNDM3IDcuNDM3IDAgMDAtNC40NiA2LjFBNy40NTMgNy40NTMgMCAwMDE0IDI3LjJjLS4xNy41My0uMjkgMS4wNy0uMzQgMS42Mi0uMjEgMi4wOC40IDQuMTEgMS43MiA1LjczYTcuNzQ3IDcuNzQ3IDAgMDA1LjI3IDIuODNjLjY4LjA3IDEuMzcuMDUgMi4wNS0uMDdhOS4xNDQgOS4xNDQgMCAwMDYuNDMgMy42NGMuMzEuMDMuNjIuMDUuOTMuMDUgMi44OCAwIDUuNTgtMS4zNSA3LjMzLTMuNjZhNy43NiA3Ljc2IDAgMDAxLjU4LjE3YzMuNzggMCA3LjA0LTIuODggNy40My02LjcyLjA3LS43MS4wNC0xLjQyLS4xLTIuMTRhOS41NTQgOS41NTQgMCAwMDQuMDQtNi44OHptLTUuODkgNi43MmMuMi43MS4yNyAxLjQyLjIgMi4xMmE1LjY3NCA1LjY3NCAwIDAxLTIuMDcgMy44NSA1LjY5IDUuNjkgMCAwMS00LjE4IDEuMjZjLS4zNy0uMDQtLjc0LS4xMS0xLjExLS4yM2wtLjY0LS4yLS4zNi41NmE3LjM5MiA3LjM5MiAwIDAxLTYuOTcgMy4zNSA3LjQxIDcuNDEgMCAwMS01LjQ3LTMuMzRsLS4zNC0uNTMtLjYxLjE1Yy0uNjkuMTctMS4zOC4yMi0yLjA1LjE1YTYgNiAwIDAxLTQuMDgtMi4xOSA1Ljk4MiA1Ljk4MiAwIDAxLTEuMzMtNC40M2MuMDctLjY1LjI0LTEuMjkuNTItMS45bC4zOS0uODYtLjg5LS4zM2E1LjcwMiA1LjcwMiAwIDAxLTMuNjEtNC4yaDEyLjM5bC0yLjQxIDIuNDMgMS4yNSAxLjI1IDQuNTMtNC41Ni00LjUzLTQuNTYtMS4yNSAxLjI1IDIuNDEgMi40M0gxMS43NWE1LjcgNS43IDAgMDE0LjA1LTQuODNsLjkxLS4yNy0uMzQtLjg5Yy0uMzYtLjk0LS40OS0xLjkyLS4zOS0yLjkxLjE3LTEuNyAxLTMuMjMgMi4zMi00LjMxIDEuMzMtMS4xIDMtMS42IDQuNy0xLjQzLjYzLjA2IDEuMjUuMjIgMS44NC40N2wuNTQuMjMuNDItLjQxYzIuMTQtMi4wNyA1LjA3LTMuMDkgOC4wMy0yLjc5IDUuMDcuNTEgOC45NiA0Ljc0IDkuMDYgOS44M2wuMDEuNjEuNTcuMjFhNy44MTQgNy44MTQgMCAwMTUuMSA2LjQ4SDM2LjIzbDIuMTktMi4yMS0xLjI1LTEuMjUtNC4zMSA0LjM0IDQuNTMgNC41NiAxLjI1LTEuMjUtMi40MS0yLjQzaDEyLjMzYTcuNzY0IDcuNzY0IDAgMDEtMy43MiA1Ljc4bC0uNTcuMzUuMTguNjV6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-file-storage-system, .oci-file-system {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi42NyA0MS41QzEuNDggNDEuNS41IDQwLjUzLjUgMzkuMzNWMi42N0MuNSAxLjQ3IDEuNDcuNSAyLjY3LjVoMzYuNjdjMS4xOSAwIDIuMTcuOTcgMi4xNyAyLjE3djM2LjY3YzAgMS4yLS45NyAyLjE3LTIuMTcgMi4xN0gyLjY3eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTM5LjMzIDFjLjkyIDAgMS42Ny43NSAxLjY3IDEuNjd2MzYuNjdjMCAuOTItLjc1IDEuNjctMS42NyAxLjY3SDIuNjdDMS43NSA0MSAxIDQwLjI1IDEgMzkuMzNWMi42N0MxIDEuNzUgMS43NSAxIDIuNjcgMWgzNi42Nm0wLTFIMi42N0MxLjIgMCAwIDEuMiAwIDIuNjd2MzYuNjdDMCA0MC44IDEuMiA0MiAyLjY3IDQyaDM2LjY3QzQwLjggNDIgNDIgNDAuOCA0MiAzOS4zM1YyLjY3QzQyIDEuMiA0MC44IDAgMzkuMzMgMHoiLz48Zz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0xIDM5LjMzYzAgLjkyLjc1IDEuNjcgMS42NyAxLjY3aDM2LjY3Yy45MiAwIDEuNjctLjc1IDEuNjctMS42N1Y0Ljk5SDF2MzQuMzR6TTIuNDggNi40N2gzNy4wNHYzMi44N2MwIC4xLS4wOC4xOS0uMTkuMTlIMi42N2EuMTkuMTkgMCAwMS0uMTktLjE5VjYuNDd6TTM5LjMzIDFIMi42N0MxLjc1IDEgMSAxLjc1IDEgMi42N3YxLjIxaDQwVjIuNjdDNDEgMS43NSA0MC4yNSAxIDM5LjMzIDF6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMzYuMDYgMTUuNjhjMC0uODItLjY4LTEuNDgtMS41Mi0xLjQ4SDE4LjA2bC0xLjY0LTIuMDljLS4yOS0uMzYtLjc0LS41OC0xLjIxLS41OEg3LjQ2Yy0uODQgMC0xLjUyLjY2LTEuNTIgMS40OHYyMS4zaDMwLjEyVjE1LjY4em0tMjguNi0yLjY3aDcuNzVjLjAyIDAgLjA0LjAxLjA0LjAxbDEuNTEgMS45Mi0xLjUgMS45cy0uMDIuMDEtLjA0LjAxaC03Ljh2LTMuODRjMCAuMDEuMDEgMCAuMDQgMHptMjcuMTIgMTkuODJINy40MlYxOC4zNGg3LjhjLjQ3IDAgLjkyLS4yMiAxLjItLjU4bDEuNjUtMi4wOGgxNi40N2MuMDIgMCAuMDMuMDEuMDQuMDF2MTcuMTR6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNOC43IDE0LjJoNS43NnYxLjQ4SDguN3oiLz48L2c+PC9zdmc+");
+}
+
+.oci-group {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDU2LjkzIDQyIj48cGF0aCBkPSJNLjUgNDEuNVYyNi4zMUE1LjM2IDUuMzYgMCAwMTUuODUgMjFIOHYtLjMxYTcuNDQgNy40NCAwIDExNy43My0uMTVoLjVhNi4zIDYuMyAwIDAxNS0yLjQ1aDIuNlYxN0E4Ljg5IDguODkgMCAxMTMzIDE3djFoMi42NmE2LjQ0IDYuNDQgMCAwMTUgMi40NWguNWE3LjQ0IDcuNDQgMCAxMTcuOC4xMVYyMWgyYTUuMzYgNS4zNiAwIDAxNS4zNSA1LjM1VjQxLjV6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTI4LjQyIDFhOC4zOSA4LjM5IDAgMDE0LjEgMTUuNzJ2MS44M2gzLjE2YTYgNiAwIDAxNC44IDIuNDVoMy4yM2E2Ljk0IDYuOTQgMCAxMTMgMGgxLjh2LjQ2aDIuNTVhNC44NiA0Ljg2IDAgMDE0Ljg1IDQuODVWNDFIMVYyNi4zMWE0Ljg2IDQuODYgMCAwMTQuODUtNC44NWgyLjYyVjIxaDEuNzNhNi45NCA2Ljk0IDAgMTEzIDBoMy4yM2E1Ljc4IDUuNzggMCAwMTQuNzItMi40NWgzLjF2LTEuODdBOC4zOSA4LjM5IDAgMDEyOC40MiAxbTAtMWE5LjM5IDkuMzkgMCAwMC01LjE1IDE3LjI0di4zMWgtMi4xYTYuNjMgNi42MyAwIDAwLTIuNS40OSA3Ljk0IDcuOTQgMCAxMC0xNC45LTMuODEgOCA4IDAgMDAzIDYuMjNoLTFBNS44NiA1Ljg2IDAgMDAwIDI2LjMxVjQyaDU2LjkzVjI2LjMxYTUuODYgNS44NiAwIDAwLTUuODUtNS44NWgtMWE3Ljk0IDcuOTQgMCAxMC0xMi44NC02LjIzIDcuODcgNy44NyAwIDAwMSAzLjgzIDcgNyAwIDAwLTIuNi0uNTFoLTIuMTJ2LS4yNkE5LjQgOS40IDAgMDAyOC40MiAweiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik00NS4yMiAyMS4xN2E2Ljk1IDYuOTUgMCAxMC02Ljk0LTYuOTQgNyA3IDAgMDA2Ljk0IDYuOTR6bTAtMTIuMTdBNS4yNyA1LjI3IDAgMTE0MCAxNC4yMyA1LjI4IDUuMjggMCAwMTQ1LjIyIDl6IiBmaWxsPSIjMmM1OTY3Ii8+PHBhdGggZD0iTTUxLjA4IDIxLjQ2aC0xLjQzbC0uMjUuMzNhNS4yNyA1LjI3IDAgMDEtOC4zNiAwbC0uMjUtLjMzaC0uMDhhNS44MiA1LjgyIDAgMDAtNS0yLjkxSDM0bC0uMjUuMzNhNi43MiA2LjcyIDAgMDEtMTAuNjYgMGwtLjI1LS4zM2gtMS42N2E1LjgxIDUuODEgMCAwMC01IDIuOTFsLS4yNS4zM2E1LjI3IDUuMjcgMCAwMS04LjM2IDBsLS4yNS0uMzNINS44NUE0Ljg2IDQuODYgMCAwMDEgMjYuMzFWNDFoMS42OFYyNi4zMWEzLjE4IDMuMTggMCAwMTMuMTctMy4xOGguNjJhNyA3IDAgMDA4Ljg5IDEuMzZWNDFIMTdWMjQuMzZhNC4xMyA0LjEzIDAgMDE0LjEzLTQuMTNIMjJhOC40MSA4LjQxIDAgMDAxMi43OSAwaC44NmE0LjEzIDQuMTMgMCAwMTQuMTMgNC4xM1Y0MWgxLjY4VjI0LjQzYTYuOTMgNi45MyAwIDAwOS0xLjNoLjYyYTMuMTkgMy4xOSAwIDAxMy4xOCAzLjE4VjQxaDEuNjdWMjYuMzFhNC44NiA0Ljg2IDAgMDAtNC44NS00Ljg1eiIgZmlsbD0iIzJjNTk2NyIvPjxwYXRoIGQ9Ik0xMS43MSAyMS4xN2E2Ljk1IDYuOTUgMCAxMC02Ljk0LTYuOTQgNyA3IDAgMDA2Ljk0IDYuOTR6bTAtMTIuMTdhNS4yNyA1LjI3IDAgMTEtNS4yNyA1LjI3QTUuMjcgNS4yNyAwIDAxMTEuNzEgOXpNMjguNDIgMTcuNzlBOC40IDguNCAwIDEwMjAgOS40YTguNCA4LjQgMCAwMDguNDIgOC4zOXptMC0xNS4xMUE2LjcyIDYuNzIgMCAxMTIxLjcgOS40YTYuNzMgNi43MyAwIDAxNi43Mi02Ljcyek0yMS4xNyAzMC42NGgtLjg0VjQxaDEuNjh2LTguNjhsLS44NC0xLjY4ek0zNS42MiAzMC42NGwtLjg0IDEuNjhWNDFoMS42OFYzMC42NGgtLjg0ek01MC4wNyAzMy45OVY0MWgxLjY4di04LjY4aC0uODRsLS44NCAxLjY3ek01LjE4IDMyLjMyVjQxaDEuNjd2LTcuMDFsLS44NC0xLjY3aC0uODN6IiBmaWxsPSIjMmM1OTY3Ii8+PC9zdmc+");
+}
+
+.oci-instance {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi42NyA0MS41QzEuNDggNDEuNS41IDQwLjUzLjUgMzkuMzNWMi42N0MuNSAxLjQ4IDEuNDcuNSAyLjY3LjVoMzYuNjdjMS4xOSAwIDIuMTcuOTcgMi4xNyAyLjE3djM2LjY3YzAgMS4xOS0uOTcgMi4xNy0yLjE3IDIuMTdIMi42N3oiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0zOS4zMyAxYy45MiAwIDEuNjcuNzUgMS42NyAxLjY3djM2LjY3YzAgLjkyLS43NSAxLjY3LTEuNjcgMS42N0gyLjY3QzEuNzUgNDEgMSA0MC4yNSAxIDM5LjMzVjIuNjdDMSAxLjc1IDEuNzUgMSAyLjY3IDFoMzYuNjZtMC0xSDIuNjdDMS4yIDAgMCAxLjIgMCAyLjY3djM2LjY3QzAgNDAuOCAxLjIgNDIgMi42NyA0MmgzNi42N0M0MC44IDQyIDQyIDQwLjggNDIgMzkuMzNWMi42N0M0MiAxLjIgNDAuOCAwIDM5LjMzIDB6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMzkuMzMgMUgyLjY3QzEuNzUgMSAxIDEuNzUgMSAyLjY3djM2LjY3YzAgLjkxLjc1IDEuNjYgMS42NyAxLjY2aDM2LjY3Yy45MiAwIDEuNjctLjc1IDEuNjctMS42N1YyLjY3QzQxIDEuNzUgNDAuMjUgMSAzOS4zMyAxem0uMTkgMzguMzNjMCAuMS0uMDguMTktLjE5LjE5SDIuNjdhLjE5LjE5IDAgMDEtLjE5LS4xOVYyLjY3YzAtLjEuMDgtLjE5LjE5LS4xOWgzNi42N2MuMSAwIC4xOS4wOC4xOS4xOXYzNi42NnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik02LjU2IDM1LjQ0aDI5LjA3di04Ljg5SDYuNTZ2OC44OXptMS40OC03LjRoMjYuMTF2NS45M0g4LjA0di01LjkzeiIvPjxjaXJjbGUgY2xhc3M9InByZWZpeF9fc3QxIiBjeD0iMzAuODEiIGN5PSIzMSIgcj0iMS4xMSIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTE1LjQ0IDYuNTZINi41NnY4Ljg5aDguODlWNi41NnptLTEuNDggNy40SDguMDRWOC4wNGg1LjkzdjUuOTJ6TTI1LjQ0IDYuNTZoLTguODl2OC44OWg4Ljg5VjYuNTZ6bS0xLjQ4IDcuNGgtNS45M1Y4LjA0aDUuOTN2NS45MnpNMTUuNDQgMTYuNTZINi41NnY4Ljg5aDguODl2LTguODl6bS0xLjQ4IDcuNEg4LjA0di01LjkzaDUuOTN2NS45M3pNMjUuNDQgMTYuNTZoLTguODl2OC44OWg4Ljg5di04Ljg5em0tMS40OCA3LjRoLTUuOTN2LTUuOTNoNS45M3Y1Ljkzek0zNS40NCA2LjU2aC04Ljg5djguODloOC44OVY2LjU2em0tMS40OCA3LjRoLTUuOTNWOC4wNGg1LjkzdjUuOTJ6TTM1LjQ0IDE2LjU2aC04Ljg5djguODloOC44OXYtOC44OXptLTEuNDggNy40aC01Ljkzdi01LjkzaDUuOTN2NS45M3oiLz48L2c+PC9zdmc+");
+}
+
+.oci-instance-pool {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi42NyA0MS41QzEuNDggNDEuNS41IDQwLjUzLjUgMzkuMzNWMi42N0MuNSAxLjQ4IDEuNDcuNSAyLjY3LjVoMzYuNjdjMS4xOSAwIDIuMTcuOTcgMi4xNyAyLjE3djM2LjY3YzAgMS4xOS0uOTcgMi4xNy0yLjE3IDIuMTdIMi42N3oiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0zOS4zMyAxYy45MiAwIDEuNjcuNzUgMS42NyAxLjY3djM2LjY3YzAgLjkyLS43NSAxLjY3LTEuNjcgMS42N0gyLjY3QzEuNzUgNDEgMSA0MC4yNSAxIDM5LjMzVjIuNjdDMSAxLjc1IDEuNzUgMSAyLjY3IDFoMzYuNjZtMC0xSDIuNjdDMS4yIDAgMCAxLjIgMCAyLjY3djM2LjY3QzAgNDAuOCAxLjIgNDIgMi42NyA0MmgzNi42N0M0MC44IDQyIDQyIDQwLjggNDIgMzkuMzNWMi42N0M0MiAxLjIgNDAuOCAwIDM5LjMzIDB6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMzkuMzMgMUgyLjY3QzEuNzUgMSAxIDEuNzUgMSAyLjY3djM2LjY3YzAgLjkxLjc1IDEuNjYgMS42NyAxLjY2aDM2LjY3Yy45MiAwIDEuNjctLjc1IDEuNjctMS42N1YyLjY3QzQxIDEuNzUgNDAuMjUgMSAzOS4zMyAxem0uMTkgMzguMzNjMCAuMS0uMDguMTktLjE5LjE5SDIuNjdhLjE5LjE5IDAgMDEtLjE5LS4xOVYyLjY3YzAtLjEuMDgtLjE5LjE5LS4xOWgzNi42N2MuMSAwIC4xOS4wOC4xOS4xOXYzNi42NnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0yNy45NCA4LjdIMTQuMDZ2Ny40MWgxMy44OVY4Ljd6bS0xLjQ4IDUuOTNIMTUuNTR2LTQuNDRoMTAuOTN2NC40NHoiLz48Y2lyY2xlIGNsYXNzPSJwcmVmaXhfX3N0MSIgY3g9IjI0LjI0IiBjeT0iMTIuNCIgcj0iLjc0Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMjEuNTYgMjQuNjNoMTMuODl2LTcuNDFIMjEuNTZ2Ny40MXptMS40OC01LjkzaDEwLjkzdjQuNDRIMjMuMDRWMTguN3oiLz48Y2lyY2xlIGNsYXNzPSJwcmVmaXhfX3N0MSIgY3g9IjMxLjc0IiBjeT0iMjAuOTIiIHI9Ii43NCIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTIwLjQ0IDE3LjIySDYuNTZ2Ny40MWgxMy44OXYtNy40MXptLTEuNDggNS45Mkg4LjA0VjE4LjdoMTAuOTN2NC40NHoiLz48Y2lyY2xlIGNsYXNzPSJwcmVmaXhfX3N0MSIgY3g9IjE2Ljc0IiBjeT0iMjAuOTIiIHI9Ii43NCIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTM2LjU2IDI4Ljc2Yy0xLjcuOTMtNi41OCAzLjA2LTE1LjQ3IDMuMDYtMTAuMTkgMC0xNC4zMi0xLjk5LTE1LjY0LTIuODd2LTQuMzJIMy45NnY1LjA2bC4yOS4yMmMxLjMyIDEuMDIgNS41OSAzLjM5IDE2Ljg0IDMuMzkgMTAuMDIgMCAxNS4yMy0yLjY2IDE2LjU5LTMuNDhsLjM2LS4yMnYtNC45OGgtMS40OHY0LjE0eiIvPjwvZz48L3N2Zz4=");
+}
+
+.oci-internet-gateway {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM5LjMxIDQyLjgzIj48cGF0aCBkPSJNMTUuNTUgMzhMMTcgMzYuNTljLS4zLS4wNS0uNi0uMTEtLjktLjE5bC0uMzktLjA5Yy0uMjctLjA3LS41My0uMTUtLjc5LS4yNGE1IDUgMCAwMS0uNTEtLjE3bC0uNjMtLjI1LS42My0uMjctLjQxLS4yLS44LS40My0uMjktLjE4Yy0uMzEtLjE5LS41OC0uMzYtLjgzLS41NGwtLjQzLS4zMS0uNDMtLjMyLS40MS0uMzRBMTUuNDggMTUuNDggMCAwMTggMzEuNTNsLS4zNi0uNDEtLjMyLS40My0uMzItLjQyYy0uMTgtLjI2LS4zNS0uNTItLjUyLS43OWwtLjItLjM0Yy0uMTQtLjI0LS4yNy0uNDgtLjQtLjczcy0uMTYtLjMyLS4yMy0uNDctLjE5LS40Mi0uMjctLjYzLS4xOC0uNDItLjI1LS42M2E0IDQgMCAwMS0uMTMtLjQ1Yy0uMTEtLjMyLS4xOS0uNTgtLjI2LS44NUw0LjY2IDI1Yy0uMDctLjMtLjE0LS42MS0uMTktLjkybC0uMDgtLjVjMC0uMTgtLjA2LS4zNi0uMDgtLjU1di0uNDhILjV2LTIuMjZoMy43OHYtLjQ4YzAtLjE5LjA1LS4zNy4wOC0uNTVsLjA4LS41YzAtLjMxLjEyLS42Mi4yLS45M3MuMDYtLjI4LjA5LS4zOGMuMDctLjI3LjE1LS41My4yNC0uOHMuMTEtLjMzLjE2LS41LjE3LS40My4yNi0uNjQuMTctLjQxLjI3LS42Mi4xNi0uMzIuMjQtLjQ4LjI1LS40OC4zOS0uNzJsLjIxLS4zNXEuMjQtLjM5LjUxLS43OGwuMzEtLjQyYy4xLS4xNS4yMS0uMy4zMi0uNDRsLjM2LS40MmExNC40NCAxNC40NCAwIDAxMS41NS0xLjQ5bC40LS4zNS40NS0uMzMuNC0uM2MuMjYtLjE4LjUzLS4zNS43OS0uNTFsLjM0LS4yMS43NC0uNC40Ny0uMjNxLjMxLS4xNS42My0uMjdsLjYzLS4yNi40NS0uMTUuODUtLjI1LjM4LS4xLjkyLS4yLTEuNDUtMS40MiA0LjEtNC4xIDQuMTEgNC4xLTEuNDMgMS40Mi45LjE5LjM5LjFjLjI3LjA3LjUzLjE1Ljc5LjI0bC41MS4xNi42My4yNi42My4yN2MuMTMuMDYuMjYuMTIuMzguMTlsLjEuMDVxLjM2LjE4LjcyLjM5bC4yOS4xNy44NC41NS40NC4zMi40Mi4zMS40MS4zNGExNC4yNSAxNC4yNSAwIDAxMS41MSAxLjVsLjM2LjQyYy4xMS4xNC4yMi4yOS4zMi40NGwuMzEuNDJxLjI3LjM5LjUxLjc4bC4yMS4zNGMuMTQuMjQuMjcuNDkuMzkuNzNsLjI0LjQ4cS4xNS4zMS4yNy42M2MuMDkuMjEuMTguNDIuMjUuNjNzLjExLjMxLjE2LjQ3LjE4LjU2LjI1LjgzbC4wOS4zOGMuMDguMzEuMTQuNjIuMi45M2wuMDguNWE0Ljg2IDQuODYgMCAwMS4wNy41NXYuNDhoMy43N3YyLjI1SDM1VjIzYTUgNSAwIDAxLS4wNy41NGwtLjA4LjUxYy0uMDYuMzEtLjEyLjYyLS4yLjkybC0uMDkuMzljLS4wNy4yNy0uMTUuNTMtLjI0Ljc5YTUgNSAwIDAxLS4xNy41MWMtLjA3LjIxLS4xNi40Mi0uMjUuNjNzLS4xNy40Mi0uMjcuNjNsLS4yMi40NGMtLjE0LjI4LS4yNy41Mi0uNDEuNzZsLS4yMS4zNGMtLjE2LjI3LS4zMy41My0uNTEuNzlsLS4zLjQxLS4zMy40NS0uMzUuNDNBMTUuMjcgMTUuMjcgMCAwMTI5Ljc2IDMzbC0uNC4zNS0uNDIuMzEtLjQ0LjMyYy0uMjYuMTgtLjUyLjM1LS43OS41MWwtLjMzLjIxYy0uMjUuMTQtLjQ5LjI3LS43NC4zOWgtLjA5bC0uMzguMTktLjYzLjI3LS42My4yNS0uNTEuMTdjLS4yNi4wOS0uNTIuMTctLjc5LjI0bC0uMzkuMDljLS4zLjA4LS42LjE0LS45LjE5TDIzLjc2IDM4bC00LjExIDQuMXptNS4yMy0uMTlMMjIgMzYuNjVoLS4xNGE1LjE3IDUuMTcgMCAwMS0uNTUuMDdoLS40OHptLTIuMjUgMHYtMWgtLjQ4YTQuODYgNC44NiAwIDAxLS41NS0uMDdoLS4xNHptMi43My0zMS43NGwuNTUuMDhoLjE0TDIwLjc4IDV2MXptLTMuOS4xaC4xNGwuNTUtLjA4LjQ4LS4wOVY1eiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0xOS42NSAxLjQxbDEuNTEgMS41MS4wNS4wNSAxLjg0IDEuODQtLjg4Ljg4LTEtMS0uOTMtLjk0djIuNzdsLjkzLjA3LjcyLjExaC4zYy4zIDAgLjU5LjEyLjg5LjE5bC4zNy4wOS43Ny4yMy40OS4xNi42MS4yNS42OC4yOC40Ni4yM2MuMjQuMTIuNDcuMjQuNy4zOGwuMzMuMmMuMjYuMTYuNTIuMzIuNzcuNWwuMjMuMThjLjIuMTQuNC4yOC41OS40M2ExNS4yNSAxNS4yNSAwIDAxMi4yIDIuMmMuMTUuMTkuMjkuMzkuNDMuNThsLjE4LjI0Yy4xOC4yNS4zNC41MS41Ljc3cy4xMy4yMS4yLjMzLjI2LjQ2LjM4LjcuMTUuMzEuMjMuNDYuMTguNC4yNi42MS4xNy40LjI0LjYxLjExLjMzLjE3LjQ5LjE2LjUxLjIzLjc3bC4wOS4zN2MuMDcuMy4xMy41OS4xOS44OXYuM2MwIC4xLjA4LjQ4LjExLjcycTAgLjQ3LjA2LjkzaDMuNzdWMjJoLTMuNzhxMCAuNDctLjA2LjkzYzAgLjI0LS4wNy40OC0uMTEuNzJzMCAuMiAwIC4zYy0uMDYuMy0uMTIuNTktLjE5Ljg5bC0uMDkuMzdjLS4wNy4yNi0uMTUuNTEtLjIzLjc3cy0uMTEuMzItLjE3LjQ5LS4xNi40MS0uMjQuNjEtLjE3LjQxLS4yNi42MWwtLjIzLjQ2LS4zOC43LS4yLjMzYy0uMTYuMjYtLjMyLjUxLS41Ljc2bC0uMTguMjVjLS4xNC4xOS0uMjguMzktLjQzLjU4QTE1LjI1IDE1LjI1IDAgMDEyOSAzM2MtLjE5LjE1LS4zOS4yOS0uNTkuNDNsLS4yMy4xOGMtLjI1LjE4LS41MS4zNC0uNzcuNWwtLjMzLjJjLS4yMy4xMy0uNDYuMjYtLjcuMzhsLS40Ni4yMy0uNjEuMjYtLjYxLjI0LS40OS4xNy0uNzcuMjMtLjM3LjA5LS44OS4xOWgtLjNsLS43Mi4xMXEtLjQ3IDAtLjkzLjA2VjM5bC45My0uOTMgMS0xIC44OC44OC0xLjg0IDEuODQtLjY4LjY3LS44OC44OC0uODgtLjg4LS42Ny0uNjdMMTYuMjYgMzhsLjg4LS44OCAxIDFMMTkgMzl2LTIuN3EtLjQ3IDAtLjkzLS4wNmwtLjcyLS4xMWgtLjNsLS44OS0uMTktLjM3LS4wOS0uNzctLjIzLS40OS0uMTdjLS4yMS0uMDctLjQxLS4xNi0uNjEtLjI0bC0uNjEtLjI2LS40Ni0uMjNjLS4yNC0uMTItLjQ3LS4yNS0uNy0uMzhsLS4zMy0uMmMtLjI2LS4xNi0uNTItLjMyLS43Ny0uNWwtLjIzLS4xOGMtLjItLjE0LS40LS4yOC0uNTktLjQzYTE1LjI1IDE1LjI1IDAgMDEtMi4yLTIuMmMtLjE1LS4xOS0uMjktLjM5LS40My0uNTlzLS4xMi0uMTUtLjE4LS4yNGMtLjE4LS4yNS0uMzQtLjUtLjUtLjc2LS4wNy0uMTEtLjE0LS4yMi0uMi0uMzNzLS4yNi0uNDctLjM4LS43bC0uMjMtLjQ2Yy0uMDktLjItLjE4LS40MS0uMjYtLjYxcy0uMTctLjQxLS4yNS0uNjEtLjExLS4zMy0uMTYtLjQ5LS4xNi0uNTEtLjIzLS43N2wtLjA5LS4zN2MtLjA3LS4zLS4xMy0uNTktLjE5LS45di0uMjljMC0uMS0uMDgtLjQ4LS4xMS0uNzIgMC0uMzEgMC0uNjItLjA3LS45M0gxdi0xLjI3aDMuNzZjMC0uMzEgMC0uNjIuMDctLjkzIDAtLjI0LjA3LS40OC4xMS0uNzJzMC0uMiAwLS4zYy4wNi0uMy4xMi0uNTkuMTktLjg5bC4wOS0uMzdjLjA3LS4yNi4xNS0uNTIuMjMtLjc3bC4xNi0uNDljLjA4LS4yMS4xNi0uNDEuMjUtLjYxcy4xNy0uNDEuMjYtLjYxLjE1LS4zMS4yMy0uNDYuMjQtLjQ3LjM4LS43QTMuNzkgMy43OSAwIDAxNyAxMy42Yy4xNi0uMjUuMzItLjUxLjUtLjc2bC4xOC0uMjRjLjE0LS4xOS4yOC0uMzkuNDMtLjU4YTE1LjI1IDE1LjI1IDAgMDEyLjItMi4ybC41OC0uNDMuMjQtLjE4Yy4yNS0uMTguNTEtLjM0Ljc3LS41YTMuNjIgMy42MiAwIDAxLjMzLS4yYy4yMy0uMTMuNDYtLjI2LjctLjM4bC40Ni0uMjMuNjEtLjI2LjYxLS4yNS40OS0uMTYuNzItLjIzLjM3LS4wOWMuMy0uMDcuNTktLjE0Ljg5LS4xOWguM2wuNzItLjExLjktLjA5VjMuNzlsLS45My45NC0xIDEtLjg4LS44OEwxOC4xIDN2LS4wNWwxLjUtMS41MW0wLTEuNDFsLS42LjY4LTEuNSAxLjVoLS4wNkwxNS41NSA0LjFsLS43LjcxLjcuNzEuNDIuNDFoLS4xMWwtLjMuMDctLjgyLjI1aC0uMDVsLS40Ny4xNS0uNjYuMjYtLjY0LjM0LS40Mi4yMWgtLjA3Yy0uMjYuMTMtLjUxLjI2LS43NS40bC0uMjYuMTYtLjEuMDZjLS4yNy4xNy0uNTQuMzQtLjgxLjUzYTEuMDkgMS4wOSAwIDAwLS4xNy4xM2wtLjA5LjA2LS4xNi4xMi0uNDYuMzMtLjg1LjY5Yy0uMjguMjYtLjU1LjUyLS44MS44bC0uNzEuODQtLjM0LjQ1LS4xLjIyLS4wNi4wOWExLjA5IDEuMDkgMCAwMC0uMTMuMTdjLS4xOS4yNy0uMzYuNTQtLjUzLjgxdi4wOWwtLjE3LjI3Yy0uMTQuMjQtLjI3LjQ5LS40Ljc1cy0uMTcuMzMtLjI1LjQ5LS4xOS40My0uMjguNjQtLjE3LjQ0LS4yNS42Ni0uMTEuMzEtLjE2LjQ2di4wNmMtLjA5LjI3LS4xNy41NC0uMjUuODIgMCAuMSAwIC4yLS4wNy4zdi4xYy0uMDguMzEtLjE1LjYzLS4yIDF2LjUyYzAgLjE5LS4wNi4zNy0uMDguNTdIMFYyM2gzLjgxYzAgLjE5LjA1LjM4LjA4LjU3di4yTDQgMjR2LjJjLjA1LjMzLjEyLjY0LjIgMXYuMWMwIC4xIDAgLjIuMDcuMy4wOC4yOC4xNi41NS4yNS44MmwuMTUuNDhjLjA5LjIyLjE3LjQ0LjI2LjY1cy4xOC40NC4yOC42NWwuMjMuNDVjLjE1LjI5LjI4LjU1LjQyLjc5bC4xNi4yNi4wNi4xYy4xNy4yNy4zNC41NC41My44MWwuMTMuMTguMDYuMDguMTIuMTZjLjExLjE2LjIyLjMxLjM0LjQ2bC43Ljg1cS4zOS40Mi44MS44MWwuODMuNy40NS4zNC4xNy4xMi4wOS4wNy4xNi4xMmMuMjcuMTkuNTUuMzYuODIuNTNsLjA5LjA1LjI2LjE2Yy4yNS4xNS41LjI4Ljc2LjQxaC4wNWwuNDQuMjIuNjUuMjguNjUuMjYuNDcuMTZoLjA1Yy4yNy4wOS41NC4xNy44Mi4yNGwuMy4wOGguMWwtLjQyLjQyLS43LjcxLjcuNzEgMS44NCAxLjg0LjY4LjY3Ljg4Ljg4LjcuNzEuNzEtLjcxLjg4LS44OC42OC0uNjcgMS44My0xLjg0LjcxLS43MS0uNzEtLjcxLS40Mi0uNDJoLjFsLjMtLjA4Yy4yOC0uMDcuNTUtLjE1LjgyLS4yNGwuNTEtLjE3LjY3LS4yN2MuMjEtLjA4LjQzLS4xOC42NC0uMjhzLjI5LS4xNC40My0uMjFoLjA2Yy4yNS0uMTMuNTEtLjI2Ljc1LS40MWwuMzMtLjIzaC4xYy4yNy0uMTcuNTQtLjM0LjgxLS41M2wuMTgtLjEzLjA4LS4wNi4xNi0uMTIuNDYtLjM0Ljg0LS42OWMuMjctLjI2LjU0LS41Mi44LS44bC43Mi0uODVjLjEyLS4xNS4yMy0uMzEuMzUtLjQ3bC4xMS0uMTUuMDYtLjA4LjEzLS4xOGMuMTktLjI3LjM2LS41NC41My0uODF2LS4wOWwuMTYtLjI2Yy4xNS0uMjUuMjgtLjUxLjQxLS43NnMuMTctLjM0LjI0LS40OS4yLS40My4yOC0uNjUuMTgtLjQzLjI2LS42NS4xMS0uMzIuMTYtLjQ4di0uMDVxLjE0LS4zOS4yNC0uODFjMC0uMSAwLS4yLjA4LS4zdi0uMWMuMDgtLjMyLjE1LS42My4yLS45NXYtLjUyYzAtLjE5LjA2LS4zOC4wOC0uNTdoMy44MXYtMy4zMmgtMy42NmMwLS4yLS4wNS0uMzgtLjA4LS41N3YtLjUyYzAtLjMyLS4xMi0uNjMtLjItMXYtLjExYzAtLjEgMC0uMTktLjA3LS4yOS0uMDctLjI4LS4xNS0uNTUtLjI0LS44MnYtLjA1Yy0uMDUtLjE2LS4xLS4zMS0uMTYtLjQ3cy0uMTctLjQ0LS4yNi0uNjUtLjE4LS40NC0uMjgtLjY1LS4xNC0uMy0uMjItLjQ1Yy0uMTUtLjMtLjI4LS41NS0uNDItLjc5bC0uMTYtLjI2LS4wNi0uMWMtLjE3LS4yNy0uMzQtLjU0LS41My0uODFsLS4xMy0uMTctLjE5LS4wOC0uMTItLjE2Yy0uMTEtLjE2LS4yMi0uMzEtLjM0LS40NmwtLjctLjg2Yy0uMjYtLjI4LS41My0uNTUtLjgtLjhMMjkuNjggOWwtLjQ2LS4zNC0uMTYtLjEyLS4wNi0uMDItLjE4LS4xM2MtLjI3LS4xOS0uNTQtLjM2LS44Mi0uNTNsLS4wOC0uMDUtLjI3LS4xN2MtLjI0LS4xNC0uNS0uMjctLjc1LS40aC0uMDZMMjYuMzkgN2wtLjY1LS4yOC0uNjUtLjI1LS40Ny0uMTZoLS4wNUwyMy43NSA2aC0uNGwuNDItLjQxLjcxLS43MS0uNzEtLjcxLTEuODUtMS45MWgtLjA1TDIwLjM2LjcxIDE5LjY1IDB6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTIxLjIxIDM1djEuMjZBMTUgMTUgMCAwMDM0LjUgMjNoLTEuMjVhMTMuNzEgMTMuNzEgMCAwMS0xMi4wNCAxMnpNNi4wNiAyM0g0LjgxQTE1IDE1IDAgMDAxOC4xIDM2LjI2VjM1QTEzLjcxIDEzLjcxIDAgMDE2LjA2IDIzek0zMy4yNSAxOS44NmgxLjI1QTE1IDE1IDAgMDAyMS4yMSA2LjU3djEuMjVhMTMuNzMgMTMuNzMgMCAwMTEyLjA0IDEyLjA0ek0xOC4xIDcuODJWNi41N0ExNSAxNSAwIDAwNC44MSAxOS44NmgxLjI1QTEzLjczIDEzLjczIDAgMDExOC4xIDcuODJ6IiBmaWxsPSIjMmM1OTY3Ii8+PHBhdGggZmlsbD0iIzJjNTk2NyIgZD0iTTIwLjI4IDMuNzlsLjkzLjk0Ljk2Ljk2Ljg4LS44OC0xLjg0LTEuODQtLjA1LS4wNS0xLjUxLTEuNTEtMS41IDEuNTEtLjA1LjA1LTEuODQgMS44NC44OC44OC45Ni0uOTYuOTMtLjk0djM1LjI0bC0uOTMtLjkzLS45Ni0uOTYtLjg4Ljg4IDEuODQgMS44NC42Ny42Ny44OC44OC44OC0uODguNjgtLjY3IDEuODQtMS44NC0uODgtLjg4LS45Ni45Ni0uOTMuOTNWMy43OXoiLz48cGF0aCBmaWxsPSIjMmM1OTY3IiBkPSJNMjIuNzEgMjAuNzlsLjkzLS45My45Ni0uOTYtLjg4LS44OC0xLjg0IDEuODQtMS41NSAxLjU1IDEuNTUgMS41NiAxLjg0IDEuODQuODgtLjg4LS45Ni0uOTYtLjkzLS45M2gxNS42di0xLjI1aC0xNS42ek0xNi42IDIyLjA0bC0uOTMuOTMtLjk2Ljk2Ljg4Ljg4IDIuNTEtMi41Mi44OC0uODgtLjg4LS44Ny0yLjUxLTIuNTItLjg4Ljg4Ljk2Ljk2LjkzLjkzSDF2MS4yNWgxNS42eiIvPjwvc3ZnPg==");
+}
+
+.oci-ipsec-connection, .oci-ipsec {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyLjk5IDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDpub25lfS5wcmVmaXhfX3N0MntmaWxsOiMyYzU5Njd9PC9zdHlsZT48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0xMCA0MS41bC0xLjg4LS45NFYyNS44M0g1LjQ4bDIuMzMgMi4zMy0xLjc2IDEuNzYtNS4zNC01LjM0IDUuMzQtNS4zNEw3LjgxIDIxbC0yLjMzIDIuMzNoMi42NVYxMS41OWgzLjczdi0xLjMxYzAtNS4yMSA0LjAxLTkuNSA5LjEzLTkuNzYuMTctLjAyLjM0LS4wMi41MS0uMDIgMi40OCAwIDQuODMuOTQgNi42MyAyLjY1IDEuOTQgMS44NCAzIDQuMzIgMyA2Ljk5djEuNDVoMy43M3YxMS43NWgyLjY1bC0yLjMzLTIuMzMgMS43Ni0xLjc2IDUuMzQgNS4zNC01LjM0IDUuMzQtMS43Ni0xLjc2IDIuMzMtMi4zM2gtMi42NXYxNC43M2wtMS44OC45NEgxMHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0yMS41IDFjMi4zNSAwIDQuNTcuODggNi4yOCAyLjUxYTkuMDQ1IDkuMDQ1IDAgMDEyLjg1IDYuNjN2MS45NWgzLjczdjExLjc1aDQuMzVsLTIuODMtMi44MyAxLjA2LTEuMDYgNC42MyA0LjYzLTQuNjMgNC42My0xLjA2LTEuMDYgMi44My0yLjgzaC00LjM1djE0LjkybC0xLjQ5Ljc2SDEwLjEybC0xLjUtLjc1VjI1LjMzSDQuMjdsMi44MyAyLjgzLTEuMDYgMS4wNi00LjYzLTQuNjMgNC42My00LjYzIDEuMDYgMS4wNi0yLjgzIDIuODNoNC4zNVYxMi4wOWgzLjczdi0xLjgxYzAtNC45NCAzLjgtOS4wMSA4LjY2LTkuMjYuMTctLjAyLjMzLS4wMi40OS0uMDJtMC0xYy0uMTggMC0uMzYgMC0uNTQuMDEtNS4zOS4yOC05LjYgNC43OS05LjYgMTAuMjZ2LjgxSDcuNjJ2OS4wM2wtLjg3LS44Ny0uNzEtLjcxLS43MS43MUwuNyAyMy44N2wtLjcuNzIuNzEuNzEgNC42MyA0LjYzLjcxLjcxLjcxLS43MS44Ny0uODdWNDAuODhsLjU1LjI4IDEuNS43NS4yLjA5aDIzLjI0bC4yMS0uMTEgMS41LS43NS41NS0uMjhWMjkuMDRsLjg3Ljg3LjcxLjcxLjcxLS43MSA0LjYzLTQuNjMuNzEtLjcxLS43MS0uNzEtNC42My00LjYzLS43MS0uNzEtLjcxLjcxLS44Ny44N3YtOS4wM2gtMy43M3YtLjk1YzAtMi44MS0xLjEyLTUuNDItMy4xNi03LjM1QTEwLjIxIDEwLjIxIDAgMDAyMS41IDB6bTEzLjg3IDIyLjg0di0uOTRsLjk0Ljk0aC0uOTR6bS0yOC42OSAwbC45NC0uOTR2Ljk0aC0uOTR6bTI4LjY5IDMuNDloLjk0bC0uOTQuOTR2LS45NHptLTI4LjY5IDBoLjk0di45NGwtLjk0LS45NHoiLz48Zz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0yMS4zNiA1LjFjLTIuNy4wNy00LjkgMi4zOS00LjkgNS4xNnYxLjgyaDEwLjA3di0xLjk1YzAtMS4zNy0uNTQtMi42NS0xLjUyLTMuNjFhNS4wMyA1LjAzIDAgMDAtMy42NS0xLjQyeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTE0Ljk3IDEwLjI2YzAtMy41OCAyLjg1LTYuNTcgNi4zNi02LjY2IDEuNzgtLjA1IDMuNDYuNjEgNC43MyAxLjg1YTYuNDg2IDYuNDg2IDAgMDExLjk3IDQuNjh2MS45NWgxLjEydi0xLjk1YzAtMi4xMi0uODUtNC4wOS0yLjM4LTUuNTVhNy41ODYgNy41ODYgMCAwMC01LjY3LTIuMDljLTQuMDYuMjEtNy4yNCAzLjYyLTcuMjQgNy43N3YxLjgxaDEuMTJ2LTEuODF6TTEwLjEyIDIzLjg0aDEuNDl2MS40OWgtMS40OVYzNi45aDIyLjc2VjI1LjMzaC0xLjQ5di0xLjQ5aDEuNDlWMTMuNThIMTAuMTJ2MTAuMjZ6bTE4LjY1IDBoMS40OXYxLjQ5aC0xLjQ5di0xLjQ5em0tMi42MSAwaDEuNDl2MS40OWgtMS40OXYtMS40OXptLTcuNzguMTlhMy4xMzggMy4xMzggMCAwMTIuNTUtMi41M2MyLS4zNSAzLjc0IDEuMTkgMy43NCAzLjEyIDAgMS4yLS42NyAyLjI0LTEuNjUgMi43OGwuNTkgNC4wOWgtNC4yM2wuNjMtNC4wN2EzLjE2OSAzLjE2OSAwIDAxLTEuNjMtMy4zOXptLTMuMDQtLjE5aDEuNDl2MS40OWgtMS40OXYtMS40OXptLTIuNjEgMGgxLjQ5djEuNDloLTEuNDl2LTEuNDl6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QyIiBkPSJNMjAuMDIgMjcuNDJsLS42MyA0LjA3aDQuMjNsLS41OS00LjA5Yy45OC0uNTQgMS42NS0xLjU4IDEuNjUtMi43OCAwLTEuOTQtMS43NC0zLjQ3LTMuNzQtMy4xMmEzLjE1IDMuMTUgMCAwMC0yLjU1IDIuNTNjLS4yOCAxLjQ1LjQ2IDIuNzcgMS42MyAzLjM5eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MiIgZD0iTTM2Ljk1IDE5Ljk1bC0xLjA2IDEuMDYgMi44MyAyLjgzaC00LjM1VjEyLjA5aC0zLjczdi0xLjk1YzAtMi41My0xLjAxLTQuODgtMi44NS02LjYzYTkuMDc3IDkuMDc3IDAgMDAtNi43OC0yLjVjLTQuODUuMjUtOC42NiA0LjMyLTguNjYgOS4yNnYxLjgxSDguNjJ2MTEuNzVINC4yN0w3LjEgMjFsLTEuMDYtMS4wNi00LjYzIDQuNjMgNC42MyA0LjYzIDEuMDYtMS4wNi0yLjgzLTIuODNoNC4zNXYxMy4wNmgyNS43NFYyNS4zM2g0LjM1bC0yLjgzIDIuODMgMS4wNiAxLjA2IDQuNjMtNC42My00LjYyLTQuNjR6bS0yMy4xLTkuNjhjMC00LjE1IDMuMTgtNy41NiA3LjI0LTcuNzcgMi4xMi0uMTEgNC4xNC42MyA1LjY3IDIuMDlhNy41NyA3LjU3IDAgMDEyLjM4IDUuNTV2MS45NWgtMS4xMnYtMS45NWMwLTEuNzgtLjctMy40NC0xLjk3LTQuNjhhNi40NTkgNi40NTkgMCAwMC00LjczLTEuODVjLTMuNTEuMDktNi4zNiAzLjA4LTYuMzYgNi42NnYxLjgyaC0xLjEydi0xLjgyem0xMi42OC0uMTR2MS45NUgxNi40NnYtMS44MmMwLTIuNzggMi4yLTUuMSA0LjktNS4xNiAxLjM4LS4wMyAyLjY3LjQ3IDMuNjUgMS40My45OC45NSAxLjUyIDIuMjMgMS41MiAzLjZ6bTYuMzQgMTMuNzFoLTEuNDl2MS40OWgxLjQ5VjM2LjlIMTAuMTJWMjUuMzNoMS40OXYtMS40OWgtMS40OVYxMy41OGgyMi43NnYxMC4yNnpNOC42MiAzOS41MXYuNzRsMS41Ljc1aDIyLjc1bDEuNS0uNzV2LS43NHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDIiIGQ9Ik0xNS4zNCAyMy44NGgxLjQ5djEuNDloLTEuNDl6TTEyLjczIDIzLjg0aDEuNDl2MS40OWgtMS40OXpNMjguNzcgMjMuODRoMS40OXYxLjQ5aC0xLjQ5ek0yNi4xNiAyMy44NGgxLjQ5djEuNDloLTEuNDl6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-key {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDMyLjI1IDQyLjIxIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMTUuNTcgNDEuMzdDNi40NCAzNi44Ljk1IDI5LjY4LjUgMjEuODVWNy4yNEwxNi4xMy41NGwxNS42MyA2Ljd2MTQuNThjLS40NSA3Ljg2LTUuOTQgMTQuOTctMTUuMDcgMTkuNTVsLS41NS4yOC0uNTctLjI4eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTE2LjEzIDEuMDlsMTUuMTMgNi40OHYxNC4yNWMtLjQzIDcuNjUtNS44MyAxNC42MS0xNC44IDE5LjFsLS4zMy4xNy0uMzMtLjE3QzYuODMgMzYuNDMgMS40NCAyOS40NyAxIDIxLjgyVjcuNTdsMTUuMTMtNi40OG0wLTEuMDlsLS4zOS4xN0wuNjEgNi42NSAwIDYuOTFWMjEuODVjLjQ2IDguMDQgNi4wNSAxNS4zMSAxNS4zNSAxOS45N2wuMzMuMTcuNDUuMjIuNDUtLjIyLjMzLS4xN2M5LjMtNC42NiAxNC44OS0xMS45MiAxNS4zNS0xOS45NFY2LjkxbC0uNjEtLjI2TDE2LjUyLjE3IDE2LjEzIDB6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMTYuMTMgMS4wOUwxIDcuNTd2MTQuMjVjLjQ0IDcuNjUgNS44MyAxNC42MSAxNC43OSAxOS4xbC4zMy4xNy4zMy0uMTdjOC45Ny00LjQ5IDE0LjM2LTExLjQ1IDE0LjgtMTkuMVY3LjU3TDE2LjEzIDEuMDl6bTEzLjY1IDIwLjY3Yy0uNDEgNy01LjM4IDEzLjQzLTEzLjY1IDE3LjY4QzcuODUgMzUuMTkgMi44OCAyOC43NiAyLjQ4IDIxLjc2VjguNTRsMTMuNjUtNS44NSAxMy42NSA1Ljg1djEzLjIyeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTExLjYxIDE2LjY1Yy0xLjg4IDAtMy40MSAxLjUzLTMuNDEgMy40MXMxLjUzIDMuNDEgMy40MSAzLjQxYzEuNiAwIDIuOTMtMS4xIDMuMzEtMi41OGg0LjUzdjIuNThoMS40OHYtMi41OGgxLjY2djIuNzdoMS40OHYtNC4yNGgtOS4xYy0uMzItMS41OC0xLjctMi43Ny0zLjM2LTIuNzd6bTAgNS4zNWMtMS4wNyAwLTEuOTQtLjg3LTEuOTQtMS45NHMuODctMS45NCAxLjk0LTEuOTQgMS45NC44NyAxLjk0IDEuOTRTMTIuNjggMjIgMTEuNjEgMjJ6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-load-balancer {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBpZD0icHJlZml4X19MYXllcl8xIiBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyLjQ3IDQyLjgzIj48ZGVmcz48c3R5bGU+LnByZWZpeF9fY2xzLTF7ZmlsbDojZmZmfS5wcmVmaXhfX2Nscy0ye2ZpbGw6IzJjNTk2N30ucHJlZml4X19jbHMtM3tmaWxsOm5vbmV9PC9zdHlsZT48L2RlZnM+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTEiIGQ9Ik0zMS4zNyAzN2wxLjc2LTEuNzUgMi4xNSAyLjE1Yy0uMjgtMi43Ny0xLjE4LTYuNzctMy44Ni05LjYyYTExLjcxIDExLjcxIDAgMDAtOC4xNC0zLjUzdi42MkEzMi4zNSAzMi4zNSAwIDAxMjAgMzcuNTljLTIuMSAzLjU2LTQuMjIgNC4zLTUuNjQgNC4zYTQuMDggNC4wOCAwIDAxLS43Ny0uMDdjLTQtLjc0LTYuNDctNi44MS03LjQxLTEyLjI0YTQzLjI2IDQzLjI2IDAgMDEtLjY4LTYuOTJoLTV2LTIuNDloNUE0My44MSA0My44MSAwIDAxNi4yNiAxM2MxLjMxLTcuMzkgNC40NS0xMiA4LjE5LTEyIDIuMTggMCA2LjA5IDEuNTkgOC4xOSAxMi4yNWE0NS42NSA0NS42NSAwIDAxLjU4IDQuODV2LjYyYTExLjg5IDExLjg5IDAgMDA4LjI4LTMuNmMyLjY4LTIuODggMy41My02Ljg5IDMuNzgtOS42NWwtMi4xNSAyLjE2LTEuNzYtMS43NUwzNi41NC43MWw1LjE3IDUuMTdMNDAgNy42MyAzNy44MiA1LjVjLS4yNSAzLjA3LTEuMiA3Ljc3LTQuNDUgMTEuMjdhMTMuMTIgMTMuMTIgMCAwMS01LjEyIDMuNGg4LjYybC0yLTEuOTEgMS43MS0xLjggNS4xOCA0LjkzLTUuMTYgNS4xNS0xLjc2LTEuNzVMMzcgMjIuNjZoLTguOUExMy4wOCAxMy4wOCAwIDAxMzMuMjQgMjZjMy4yOCAzLjUgNC4yNyA4LjI0IDQuNTUgMTEuMzNMNDAgMzUuMmwxLjcxIDEuOC01LjE3IDUuMTd6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTEiIGQ9Ik0zNi41NCAxLjQxbDEgMSAxIC45NEw0MSA1Ljg4bC0xIDEtMS41Ni0xLjQ3LTEtMWMtLjExIDIuODMtLjgxIDguMjItNC4zOSAxMi4wN2ExMy44NSAxMy44NSAwIDAxLTkuNzcgNC4yNGgxNC44NGwtMi41Ni0yLjQzIDEtMS4wOEw0MSAyMS40bC00LjQgNC40NC0xLjA1LTEuMDUgMi42My0yLjYzSDIyLjg0YTEzLjg0IDEzLjg0IDAgMDExMCA0LjE5YzMuNTkgMy44MyA0LjM1IDkuMjQgNC40OSAxMi4xMWwxLTEuMDVMNDAgMzUuOWwxIDEuMS0yLjQ5IDIuNS0xIDEtMSAxLTEuMDgtMS4yLS42NC0uNjNMMzIuMDggMzdsMS4wNS0xLjA1IDEuNTUgMS41NSAxLjIgMS4yYy0uMTItMi42Mi0uODEtNy43Ny00LjA5LTExLjI3YTEyLjQyIDEyLjQyIDAgMDAtOS0zLjdxMCAuNTUtLjA2IDEuMTFhMzEuODQgMzEuODQgMCAwMS0zLjE1IDEyLjU2Yy0xLjg5IDMuMTktMy43NyA0LTUuMTggNGEzLjY2IDMuNjYgMCAwMS0uNjgtLjA2Yy0zLjc5LS43LTYuMTQtNi44MS03LTExLjgzQTQ0IDQ0IDAgMDE2IDIyLjE2SDF2LTEuNDloNWE0Mi41MyA0Mi41MyAwIDAxLjcyLTcuNTlDOCA2IDExIDEuNSAxNC40NSAxLjQ3YzIgMCA1LjYzIDEuNTYgNy42NiAxMS44NWE0Mi4xOSA0Mi4xOSAwIDAxLjU3IDQuNzdjMCAuMzYuMDUuNzMuMDcgMS4xMWExMi41OSAxMi41OSAwIDAwOS4xMi0zLjc5YzMuMjktMy41NCAzLjktOC43IDQtMTEuMjhsLTEuMTUgMS4yLTEuNTkgMS42LTEuMDUtMSAyLjcyLTIuNzguNTQtLjU0IDEuMi0xLjJtMC0xLjQxbC0uNzEuNzEtMS4xOSAxLjItLjU1LjU0LTIuNzIgMi43Mi0uNzEuNzEuNzEuNyAxLjA1IDEgLjcxLjcxLjcxLS43MS44MS0uODFhMTUgMTUgMCAwMS0zLjQ3IDcuOTMgMTEuMjQgMTEuMjQgMCAwMS03LjQ1IDMuNFYxOGE0OCA0OCAwIDAwLS41OC00Ljg4QzIxLjA3IDIuNjcgMTcuMjkuNDcgMTQuNDkuNDdoLS4wOGMtNCAwLTcuMjcgNC42OS04LjY0IDEyLjQzYTQzLjI2IDQzLjI2IDAgMDAtLjcyIDYuNzdIMHYzLjQ5aDUuMDVhNDIuMTkgNDIuMTkgMCAwMC42NyA2LjUyYzEgNS41OCAzLjUyIDExLjg0IDcuODEgMTIuNjNhNSA1IDAgMDAuODYuMDhjMS41NSAwIDMuODUtLjc4IDYtNC40OWEzMi42NSAzMi42NSAwIDAwMy4yOC0xMyAuNDUuNDUgMCAwMTAtLjExIDExLjA1IDExLjA1IDAgMDE3LjMxIDMuMzNBMTUuMTQgMTUuMTQgMCAwMTM0LjU5IDM2bC0uNzUtLjc1LS43MS0uNzEtLjcxLjcxLTEuMDUgMS0uNzEuNzEuNzEuNzEgMi43MiAyLjcxLjYzLjY0IDEuMTEgMS4xMS43MS43MS43MS0uNzEgMS0xIDEtMSAyLjUtMi40OS43MS0uNzEtLjcxLS43MS0xLjA1LTEuMDUtLjcxLS43LS43LjcxLTEuMDggMS4wN2ExOS4wNiAxOS4wNiAwIDAwLTQuNjEtMTAuNTYgMTMuNDggMTMuNDggMCAwMC0zLjIxLTIuNTNoNS4zOGwtLjkzLjkyLS43LjcxLjcuNyAxIDEuMDUuNzEuNzEuNzEtLjcxIDQuNDMtNC40My43My0uNzMtLjc0LS43LTQuNDUtNC4yNC0uNzMtLjY5LS42OS43Mi0xIDEuMDgtLjY5LjcyLjcyLjY5Ljc1LjcxaC01LjA4YTEzLjUgMTMuNSAwIDAwMy4yMy0yLjU2QTE4LjgxIDE4LjgxIDAgMDAzOC4yMSA2LjZsMSAxIC43LjcxLjcxLS43MSAxLjA1LTEgLjcxLS43LS43MS0uNzEtMi40NS0yLjUxLS45NC0uOTQtMS0xLS43NC0uNzR6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTIiIGQ9Ik0yOC41MiAyMi4xNmg5LjY2bC0yLjYzIDIuNjMgMS4wNSAxLjA1TDQxIDIxLjRsLTQuNDUtNC4yNC0xIDEuMDggMi41NiAyLjQzaC05LjQyYTE1LjY2IDE1LjY2IDAgMDEtMi42NS43NyAxNi4xOCAxNi4xOCAwIDAxMi40OC43MnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMyIgZD0iTTE0LjQ5IDMuMzNjLTIgMC00LjY3IDMuMTgtNS44OSAxMC4wOGE0Mi41OCA0Mi41OCAwIDAwLS42OSA3LjI0aDguOUwxNCAxOC4wNWwxLTEuMDcgNC42MyA0LjQyLTQuNDMgNC40NC0xLTEuMDUgMi42My0yLjYzaC05YTQxLjM1IDQxLjM1IDAgMDAuNjUgN2MxIDUuNTggMy4yOCA5LjkyIDUuNTIgMTAuMzMgMS41Ny4yOSAzLTEuNDggMy45MS0zIDMuMy02LjI3IDMuNTctMTYgMi4zNy0yMi44QzE4LjgyIDYgMTYuMzMgMy4zMyAxNC40OSAzLjMzeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0zIiBkPSJNMTQuNDkgMy4zM2MtMiAwLTQuNjcgMy4xOC01Ljg5IDEwLjA4YTQyLjU4IDQyLjU4IDAgMDAtLjY5IDcuMjRoOC45TDE0IDE4LjA1bDEtMS4wNyA0LjYzIDQuNDItNC40MyA0LjQ0LTEtMS4wNSAyLjYzLTIuNjNoLTlhNDEuMzUgNDEuMzUgMCAwMC42NSA3YzEgNS41OCAzLjI4IDkuOTIgNS41MiAxMC4zMyAxLjU3LjI5IDMtMS40OCAzLjkxLTMgMy4zLTYuMjcgMy41Ny0xNiAyLjM3LTIyLjhDMTguODIgNiAxNi4zMyAzLjMzIDE0LjQ5IDMuMzN6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTIiIGQ9Ik0zOC40MSAzNy40NGwtMSAxLjA1Yy0uMTQtMi44Ny0uOS04LjI4LTQuNDktMTIuMTFhMTMuODQgMTMuODQgMCAwMC0xMC00LjE5VjIwLjdBMTQgMTQgMCAwMDMzIDE2LjQzYzMuNTgtMy44NSA0LjI4LTkuMjQgNC4zOS0xMi4wN2wxIDFMNDAgNi45M2wxLTEtMi40OC0yLjU0LTEtLjk0LTEtMS0xLjIgMS4yLS41NC41NC0yLjcgMi42OSAxLjA1IDEgMS41OS0xLjYgMS4xOC0xLjEzYy0uMDkgMi41OC0uNyA3Ljc0LTQgMTEuMjhhMTIuNTkgMTIuNTkgMCAwMS05LjEyIDMuNzljMC0uMzggMC0uNzUtLjA3LTEuMTFhNDIuMTkgNDIuMTkgMCAwMC0uNTctNC43N0MyMC4xMiAzIDE2LjQ5IDEuNDcgMTQuNDkgMS40NyAxMSAxLjUgOCA2IDYuNzUgMTMuMDhBNDIuNTMgNDIuNTMgMCAwMDYgMjAuNjdIMXYxLjQ5aDVhNDQgNDQgMCAwMC43IDcuMzRjLjg3IDUgMy4yMiAxMS4xMyA3IDExLjgzYTMuNjYgMy42NiAwIDAwLjY4LjA2YzEuNDEgMCAzLjI5LS44MSA1LjE4LTRhMzEuODQgMzEuODQgMCAwMDMuMTUtMTIuNTZxMC0uNTUuMDYtMS4xMWExMi40MiAxMi40MiAwIDAxOSAzLjdjMy4yOCAzLjUgNCA4LjY1IDQuMDkgMTEuMjdsLTEuMi0xLjItMS41My0xLjU5LTEuMDUgMS4xIDIuNzEgMi43Mi42NC42MyAxLjExIDEuMTEgMS0xIDEtMUw0MSAzN2wtMS0xLjF6TTE4IDM2LjQ3Yy0uOTIgMS41NS0yLjM0IDMuMzItMy45MSAzLTIuMjQtLjQxLTQuNTYtNC43NS01LjUyLTEwLjMzYTQxLjM1IDQxLjM1IDAgMDEtLjY1LTdoOWwtMi42MyAyLjYzIDEgMS4wNSA0LjQzLTQuNDRMMTUuMDYgMTdsLTEgMS4wNyAyLjc0IDIuNjJINy44OGE0Mi41OCA0Mi41OCAwIDAxLjY5LTcuMjRjMS4yMy02Ljk0IDMuOTItMTAuMTEgNS45LTEwLjEyIDEuODQgMCA0LjMzIDIuNzEgNS44NCAxMC4zNCAxLjIyIDYuODQuOTUgMTYuNTMtMi4zMSAyMi44eiIvPjwvc3ZnPg==");
+}
+
+.oci-load-balancer-backend-set {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyIDQyIj48cmVjdCB4PSIuNSIgeT0iLjUiIHdpZHRoPSI0MSIgaGVpZ2h0PSI0MSIgcng9IjIuMTciIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMzkuMzMgMUExLjY3IDEuNjcgMCAwMTQxIDIuNjd2MzYuNjZBMS42NyAxLjY3IDAgMDEzOS4zMyA0MUgyLjY3QTEuNjcgMS42NyAwIDAxMSAzOS4zM1YyLjY3QTEuNjcgMS42NyAwIDAxMi42NyAxaDM2LjY2bTAtMUgyLjY3QTIuNjggMi42OCAwIDAwMCAyLjY3djM2LjY2QTIuNjggMi42OCAwIDAwMi42NyA0MmgzNi42NkEyLjY4IDIuNjggMCAwMDQyIDM5LjMzVjIuNjdBMi42OCAyLjY4IDAgMDAzOS4zMyAweiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik0zOS4zMyAxSDIuNjdBMS42NyAxLjY3IDAgMDAxIDIuNjd2MzYuNjZBMS42NyAxLjY3IDAgMDAyLjY3IDQxaDQuMTdhMi42OCAyLjY4IDAgMDEtLjU1LTEuNDhIMi42N2EuMi4yIDAgMDEtLjE5LS4xOVYyLjY3YS4yLjIgMCAwMS4xOS0uMTloMzYuNjZhLjIuMiAwIDAxLjE5LjE5djM2LjY2YS4yLjIgMCAwMS0uMTkuMTloLTMuNjJhMi42OCAyLjY4IDAgMDEtLjU1IDEuNDhoNC4xN0ExLjY3IDEuNjcgMCAwMDQxIDM5LjMzVjIuNjdBMS42NyAxLjY3IDAgMDAzOS4zMyAxeiIgZmlsbD0iIzJjNTk2NyIvPjxwYXRoIGQ9Ik02LjU2IDYuNTZ2Ny42OEEyLjgxIDIuODEgMCAwMTggMTIuODZWOGg2djQuNjNoMS40OFY2LjU2ek0xNi41NiA2LjU2djYuMTFoMS40OFY4LjA0aDUuOTJ2NC42M2gxLjQ4VjYuNTZoLTguODh6TTI2LjU2IDYuNTZ2Ni4xMUgyOFY4aDZ2NC44MmEyLjgxIDIuODEgMCAwMTEuNDggMS4zOFY2LjU2eiIgZmlsbD0iIzJjNTk2NyIvPjxwYXRoIGQ9Ik0zNC42MSAzOS4zM1YxNS40NGExLjY3IDEuNjcgMCAwMC0xLjY3LTEuNjZIOS4wNmExLjY3IDEuNjcgMCAwMC0xLjY3IDEuNjZ2MjMuODlBMS42NyAxLjY3IDAgMDA5LjA2IDQxaDIuMjJhMi44NCAyLjg0IDAgMDEtLjU1LTEuNDhIOS4wNmEuMi4yIDAgMDEtLjE5LS4xOVYxNS40NGEuMTkuMTkgMCAwMS4xOS0uMThoMjMuODhhLjE5LjE5IDAgMDEuMTkuMTh2MjMuODlhLjIuMiAwIDAxLS4xOS4xOWgtMS42N2EyLjg0IDIuODQgMCAwMS0uNTUgMS40OGgyLjIyYTEuNjcgMS42NyAwIDAwMS42Ny0xLjY3eiIgZmlsbD0iIzJjNTk2NyIvPjxwYXRoIGQ9Ik0xMS44NCAxOC4yM3YzLjg4YTIuODQgMi44NCAwIDAxMS40OC0uNTV2LTEuODVoMnYxLjg1aDEuNDh2LTMuMzN6TTE4LjUyIDE4LjIzdjMuMzNoMS40OXYtMS44NWgxLjk4djEuODVoMS40OXYtMy4zM2gtNC45NnpNMjUuMjEgMTguMjN2My4zM2gxLjQ4di0xLjg1aDJ2MS44NWEyLjg0IDIuODQgMCAwMTEuNDguNTV2LTMuODh6TTMwLjE3IDM5LjMzdi0xNWExLjY2IDEuNjYgMCAwMC0xLjY3LTEuNjZoLTE1YTEuNjYgMS42NiAwIDAwLTEuNjcgMS42NnYxNUExLjY3IDEuNjcgMCAwMDEzLjUgNDFoMTVhMS42NyAxLjY3IDAgMDAxLjY3LTEuNjd6bS0xNi44NiAwdi0xNWEuMTkuMTkgMCAwMS4xOS0uMThoMTVhLjE5LjE5IDAgMDEuMTkuMTh2MTVhLjIuMiAwIDAxLS4xOS4xOWgtMTVhLjIuMiAwIDAxLS4xOS0uMTl6IiBmaWxsPSIjMmM1OTY3Ii8+PHBhdGggZmlsbD0iIzJjNTk2NyIgZD0iTTE1IDM0LjU5aDEyLjA3djMuMjRIMTV6TTE1IDI1Ljg0aDMuMjR2My4yNEgxNXpNMTkuMzggMjUuODRoMy4yNHYzLjI0aC0zLjI0ek0xNSAzMC4yMWgzLjI0djMuMjRIMTV6TTE5LjM4IDMwLjIxaDMuMjR2My4yNGgtMy4yNHpNMjMuNzUgMjUuODRoMy4yNHYzLjI0aC0zLjI0ek0yMy43NSAzMC4yMWgzLjI0djMuMjRoLTMuMjR6Ii8+PC9zdmc+");
+}
+
+.oci-load-balancer-listener {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBpZD0icHJlZml4X19MYXllcl8xIiBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyLjA2IDQyIj48ZGVmcz48c3R5bGU+LnByZWZpeF9fY2xzLTF7ZmlsbDojZmZmfS5wcmVmaXhfX2Nscy0ye2ZpbGw6IzJjNTk2N308L3N0eWxlPjwvZGVmcz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMSIgZD0iTTM2LjIyIDQxLjVMMjkgMzIuMzNIMTUuODFsLTQuMiA0LjIxLS4zNi0uMzZhMy4yNSAzLjI1IDAgMDAtNC41OSAwbC0uMzYuMzYtMy41OS0zLjZMLjUgMzAuODVWLjVoNDEuMDZ2NDF6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTEiIGQ9Ik00MS4wNiAxdjQwaC00LjU5bC03LjE5LTkuMTdIMTUuNmwtLjc1Ljc2LS44Mi44Mi0yLjQyIDIuNDJhMy43NSAzLjc1IDAgMDAtNS4zMSAwbC0yLjU0LTIuNTQtLjctLjdMMSAzMC42M1YxaDQwLjA2bTEtMUgwdjMxLjA2bC4zMS4zIDIuMDYgMiAuNjkuNjggMi41NCAyLjUuNy43MS43LS43MWEyLjc0IDIuNzQgMCAwMTMuODkgMGwuNzEuNzEuNy0uNzEgMi40Mi0yLjQyLjgyLS44Mi40Ny0uNDdoMTIuNzhsNi44OSA4Ljc5LjMyLjM4aDYuMDhWMHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMSIgZD0iTTkgNDEuNDhhMyAzIDAgMDEtMi4xMy01LjEybC4yMi0uMi4yMS0uMTZhMy4wNyAzLjA3IDAgMDExLjctLjUyIDMgMyAwIDAxMS42LjUybC4yLjE1YTIgMiAwIDAxLjI0LjIxIDMgMyAwIDAxMCA0LjI3IDMgMyAwIDAxLTIuMDQuODV6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fY2xzLTEiIGQ9Ik05IDM2YTIuNDkgMi40OSAwIDAxMS4zNi40MS44OC44OCAwIDAxLjE3LjEybC4xNi4xNGEyLjUgMi41IDAgMDEtMy41MyAzLjUzIDIuNDkgMi40OSAwIDAxLS43My0xLjc3IDIuNDQgMi40NCAwIDAxLjczLTEuNzZsLjA2LS4wNS4xMi0uMTFoLjA2bC4xNS0uMUEyLjUzIDIuNTMgMCAwMTkgMzZtMC0xYTMuNDkgMy40OSAwIDAwLTEuODkuNTZsLS4xOS4xNC0uMDguMDYtLjE2LjE1aC0uMDVsLS4xOC4wOWEzLjUxIDMuNTEgMCAxMDUgMGgtLjExcy0uMTEtLjEtLjE3LS4xNmgtLjA1bC0uMjEtLjE1QTMuNDIgMy40MiAwIDAwOSAzNXoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMiIgZD0iTTEuMDYgMUwxIDI4LjgzYTEyLjQ3IDEyLjQ3IDAgMDExLjY3LTEuMTZ2LTI1SDM5LjR2MzYuNjZoLTIuMTJsLTcuMTktOS4xNkgxOC4zMmguMDVsLjg0Ljg0LjA2LjA2LjY2LjcxaDkuMzVMMzYuNDcgNDFoNC41OVYxeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0yIiBkPSJNMTQuMzEgMjEuODNMMTcuMTUgMjRsMy02LjU1di03LjI4SDExdjcuODdoMy4yOHptLTEuNjEtNS40NXYtNC41M2g1LjgxVjE3bC0yIDQuMzVMMTYgMjF2LTQuNjJ6TTI1LjE4IDIxLjgzTDI4IDI0bDMtNi41NXYtNy4yOGgtOS4xdjcuODdoMy4yOHptLTEuNjEtNS40NXYtNC41M2g1LjgxVjE3bC0yIDQuMzUtLjUzLS4zNXYtNC42MnpNMi4xOCAzMS43MWMuMTEtLjEyLjIzLS4yMy4zNS0uMzRhOS41NyA5LjU3IDAgMDExMi43NyAwYy4xMi4xMS4yNC4yMi4zNS4zNGwxLjE4LTEuMThhMTEuMjYgMTEuMjYgMCAwMC0xNS44MyAweiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX2Nscy0yIiBkPSJNOSAzMC4xNWE4LjMyIDguMzIgMCAwMC01LjkgMi40NGwxLjE4IDEuMThjLjE2LS4xNi4zMi0uMzEuNDktLjQ1YTYuNyA2LjcgMCAwMTguNDUgMGMuMTcuMTQuMzMuMjkuNDkuNDVsMS4xOC0xLjE4QTguMzEgOC4zMSAwIDAwOSAzMC4xNXoiLz48cGF0aCBjbGFzcz0icHJlZml4X19jbHMtMiIgZD0iTTkgMzMuMDdhNS4zNiA1LjM2IDAgMDAtMy42NCAxLjRsLS4yLjE4IDEuMTQgMS4xOGEzLjc1IDMuNzUgMCAwMTUuMzEgMGwxLjE4LTEuMTgtLjItLjE4QTUuMzYgNS4zNiAwIDAwOSAzMy4wN3pNMTAuNzIgMzYuNzFsLS4xNi0uMTRhLjg4Ljg4IDAgMDAtLjE3LS4xMiAyLjQ5IDIuNDkgMCAwMC0yLjcxIDBsLS4xNS4xaC0uMDZsLS4xMi4xMS0uMDYuMDVhMi40NCAyLjQ0IDAgMDAtLjczIDEuNzYgMi40OSAyLjQ5IDAgMDAuNzMgMS43NyAyLjUgMi41IDAgMTAzLjUzLTMuNTN6Ii8+PC9zdmc+");
+}
+
+.oci-loadbalancer {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyLjM4IDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTM0LjIgNDEuNXYtMi40OGgzLjAxTDIzLjE2IDI0Ljk2Yy0uMzcgNC43Ni0xLjQ2IDguOTUtMy4xNyAxMi4xOC0yLjEgMy41Ni00LjIyIDQuMjktNS42MyA0LjI5LS4yNSAwLS41MS0uMDItLjc2LS4wNy00LjAzLS43NC02LjQ2LTYuNzktNy40LTEyLjIxLS4zOC0yLjAzLS42Mi00LjQxLS42Ny02LjkxSC41di0yLjQ4aDUuMDNjLjA2LTIuNTkuMzEtNS4wNy43Mi03LjE3QzcuNTYgNS4yMyAxMC42OS42NCAxNC40Mi42YzIuMTggMCA2LjA4IDEuNTkgOC4xOCAxMi4yMy4yNCAxLjM1LjQxIDIuNzUuNTMgNC4yTDM3LjE3IDIuOThIMzQuMlYuNWg3LjN2Ny4zaC0yLjQ4VjQuNjRMMjMuOSAxOS43NmgxMi44OGwtMi0xLjkxIDEuNzEtMS44IDUuMTcgNC45Mi01LjE0IDUuMTQtMS43NS0xLjc1IDIuMTItMi4xM0gyMy45NUwzOS4wMiAzNy4zdi0zLjFoMi40OHY3LjNoLTcuM3oiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik00MSAxdjYuM2gtMS40OFYzLjQ0TDIyLjc5IDIwLjE3di4wOWgxNS4yNWwtMi41NS0yLjQzIDEuMDItMS4wNyA0LjQ0IDQuMjMtNC40MyA0LjQzLTEuMDUtMS4wNSAyLjYyLTIuNjJoLTE1LjN2LjA1bDE2LjcyIDE2LjcyVjM0LjdINDFWNDFoLTYuM3YtMS40OGgzLjcybC0xNS43LTE1LjdjLS4yNSA0LjU3LTEuMTcgOS4yOC0zLjE4IDEzLjA4bC0uMDIuMDRjLTEuODggMy4xOS0zLjc1IDMuOTktNS4xNyAzLjk5LS4yNCAwLS40Ny0uMDItLjY4LS4wNi0zLjc4LS42OS02LjEzLTYuNzktNi45OS0xMS44MS0uNDItMi4yLS42NC00Ljc1LS42OC03LjMySDF2LTEuNDhoNS4wMmMuMDQtMi42Ny4yOC01LjMxLjcyLTcuNThDOCA1LjU3IDEwLjk1IDEuMTMgMTQuNDIgMS4xaC4wNGMyIDAgNS42MiAxLjU1IDcuNjQgMTEuODJ2LjAyYy4yNyAxLjU2LjQ5IDMuMzMuNiA1LjIxTDM4LjM4IDIuNDhIMzQuN1YxSDQxbTEtMWgtOC4zdjMuNDhoMi4yNkwyMy41MyAxNS45MmMtLjExLTEuMDktLjI2LTIuMTQtLjQ0LTMuMTVDMjEuMDIgMi4yOSAxNy4yNi4xIDE0LjQ2LjFjLTQuMDkuMDQtNy4zMyA0LjY4LTguNzEgMTIuNDEtLjM5IDEuOTktLjYzIDQuMzEtLjcxIDYuNzVIMHYzLjQ4aDUuMDRjLjA4IDIuMzQuMzEgNC41OC42NyA2LjUxLjk2IDUuNTcgMy41MSAxMS44MiA3LjggMTIuNi4yOC4wNS41Ny4wOC44Ni4wOCAxLjU0IDAgMy44NC0uNzggNi4wMy00LjQ4di0uMDFsLjAzLS4wNWMxLjYyLTMuMDYgMi42OS02Ljk0IDMuMTQtMTEuMzNsMTIuNDUgMTIuNDVIMzMuN1Y0Mkg0MnYtOC4zaC0zLjQ4djIuNEwyNS4xNiAyMi43NGgxMC41M2wtLjkyLjkyLS43MS43MS43MS43MSAxLjA1IDEuMDUuNzEuNzEuNzEtLjcxIDQuNDMtNC40My43Mi0uNzItLjc0LS43MS00LjQ0LTQuMjMtLjcyLS42OS0uNjkuNzItMS4wMiAxLjA3LS42OS43Mi43Mi42OS43NC43SDI1LjExbDEzLjQxLTEzLjRWOC4zSDQyVjB6Ii8+PGc+PHBhdGggZD0iTTE0LjQ2IDIuOTVoLS4wMmMtMS45Ny4wMi00LjY2IDMuMTgtNS44OCAxMC4wNnYuMDJjLS40MiAyLjE3LS42NSA0LjY4LS42OSA3LjIzaDguODhsLTIuNzQtMi42MSAxLjAyLTEuMDcgNC42MiA0LjQxLTQuNDMgNC40Mi0xLjA1LTEuMDUgMi42Mi0yLjYySDcuODZjLjA0IDIuNDYuMjUgNC44OS42NSA2Ljk5Ljk2IDUuNTcgMy4yNyA5LjkgNS41MSAxMC4zMS4xMS4wMi4yMy4wMy4zNC4wMyAxLjQzIDAgMi43MS0xLjYzIDMuNTYtMy4wNiAzLjI5LTYuMjUgMy41Ni0xNS45MiAyLjM2LTIyLjc1LTEuNS03LjYtMy45OS0xMC4zMS01LjgyLTEwLjMxeiIgZmlsbD0ibm9uZSIvPjxwYXRoIGQ9Ik00MSA3LjNWMWgtNi4zdjEuNDhoMy42N0wyMi43MSAxOC4xNWMtLjExLTEuODgtLjMyLTMuNjUtLjYtNS4yMXYtLjAyQzIwLjA4IDIuNjUgMTYuNDYgMS4xIDE0LjQ2IDEuMWgtLjA0QzEwLjk1IDEuMTMgOCA1LjU3IDYuNzQgMTIuNjhjLS40NCAyLjI3LS42OCA0LjkxLS43MiA3LjU4SDF2MS40OGg1LjAxYy4wNCAyLjU4LjI2IDUuMTIuNjggNy4zMi44NiA1LjAxIDMuMjEgMTEuMTEgNi45OSAxMS44MS4yMS4wNC40NC4wNi42OC4wNiAxLjQxIDAgMy4yOC0uOCA1LjE3LTMuOTlsLjAyLS4wNGMyLjAxLTMuOCAyLjkzLTguNTEgMy4xOC0xMy4wOGwxNS43IDE1LjdIMzQuN1Y0MUg0MXYtNi4zaC0xLjQ4djMuODFMMjIuNzkgMjEuNzl2LS4wNUgzOC4xbC0yLjYyIDIuNjIgMS4wNSAxLjA1IDQuNDMtNC40My00LjQ0LTQuMjMtMS4wMiAxLjA3IDIuNTUgMi40M0gyMi43OXYtLjA5TDM5LjUyIDMuNDRWNy4zSDQxek0xNy45MiAzNi4wMmMtLjg1IDEuNDMtMi4xMyAzLjA2LTMuNTYgMy4wNi0uMTEgMC0uMjMtLjAxLS4zNC0uMDMtMi4yMy0uNDEtNC41NS00Ljc0LTUuNTEtMTAuMzEtLjQtMi4xMS0uNjEtNC41NC0uNjUtNi45OWg4Ljk0bC0yLjYyIDIuNjIgMS4wNSAxLjA1TDE5LjY2IDIxbC00LjYyLTQuNDEtMS4wMiAxLjA3IDIuNzQgMi42MWgtOC45Yy4wNC0yLjU1LjI3LTUuMDYuNjktNy4yM3YtLjAyYzEuMjItNi44OSAzLjkxLTEwLjA0IDUuODgtMTAuMDZoLjAyYzEuODMgMCA0LjMyIDIuNzEgNS44MyAxMC4zMiAxLjIgNi44MS45MyAxNi40OS0yLjM2IDIyLjc0eiIgZmlsbD0iIzJjNTk2NyIvPjwvZz48L3N2Zz4=");
+}
+
+.oci-local-peering-gateway {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDIyIDIyIj48Y2lyY2xlIGN4PSIxMSIgY3k9IjExIiByPSIxMC41IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTExIDFBMTAgMTAgMCAxMTEgMTEgMTAgMTAgMCAwMTExIDFtMC0xYTExIDExIDAgMTAxMSAxMUExMSAxMSAwIDAwMTEgMHoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTEgMWExMCAxMCAwIDEwMTAgMTBBMTAgMTAgMCAwMDExIDF6bTAgMTkuMTdBOS4xNyA5LjE3IDAgMTEyMC4xNyAxMSA5LjE5IDkuMTkgMCAwMTExIDIwLjE3eiIgZmlsbD0iIzJjNTk2NyIvPjxwYXRoIGZpbGw9IiMyYzU5NjciIGQ9Ik0xNi4xOSA4LjczbC0uNTkuNTggMS4yNyAxLjI3SDUuMjRMNi41IDkuMzFsLS41OS0uNThMMy42NCAxMWwyLjI3IDIuMjcuNTktLjU4LTEuMjYtMS4yN2gxMS42M2wtMS4yNyAxLjI3LjU5LjU4TDE4LjQ2IDExbC0yLjI3LTIuMjd6Ii8+PC9zdmc+");
+}
+
+.oci-lpg {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDEzLjYyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMzUuMTkgMTMuMTJjLTMuMDYgMC01LjY1LTIuMTgtNi4yLTUuMTVIMTMuMDFBNi4zMDcgNi4zMDcgMCAwMS41IDYuODFDLjUgMy4zMyAzLjMzLjUgNi44MS41YzMuMDYgMCA1LjY1IDIuMTggNi4yIDUuMTVIMjlhNi4zMDcgNi4zMDcgMCAwMTEyLjUxIDEuMTZjMCAzLjQ4LTIuODQgNi4zMS02LjMyIDYuMzF6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMzUuMTkgMUMzOC4zOSAxIDQxIDMuNjEgNDEgNi44MXMtMi42MSA1LjgxLTUuODEgNS44MWMtMi45OCAwLTUuNDQtMi4yNi01Ljc3LTUuMTVIMTIuNThjLS4zMyAyLjg5LTIuNzkgNS4xNS01Ljc3IDUuMTUtMy4yIDAtNS44MS0yLjYxLTUuODEtNS44MVMzLjYxIDEgNi44MSAxYzIuOTggMCA1LjQ0IDIuMjYgNS43NyA1LjE1aDE2Ljg1QTUuODAzIDUuODAzIDAgMDEzNS4xOSAxbTAtMWMtMy4xNiAwLTUuODUgMi4xNi02LjYgNS4xNUgxMy40MUE2LjgwNCA2LjgwNCAwIDAwNi44MSAwQzMuMDUgMCAwIDMuMDUgMCA2LjgxczMuMDUgNi44MSA2LjgxIDYuODFjMy4xNiAwIDUuODUtMi4xNiA2LjYtNS4xNWgxNS4xOGE2LjgwNCA2LjgwNCAwIDAwNi42IDUuMTVjMy43NSAwIDYuODEtMy4wNSA2LjgxLTYuODFTMzguOTUgMCAzNS4xOSAweiIvPjxnPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTI4LjQzIDYuMTVIMTMuNTdhNy4yODYgNy4yODYgMCAwMTAgMS4zMmgxNC44NmE3LjI4NiA3LjI4NiAwIDAxMC0xLjMyek0xMi42MiA2LjgxYzAtMy4yLTIuNjEtNS44MS01LjgxLTUuODFTMSAzLjYxIDEgNi44MXMyLjYxIDUuODEgNS44MSA1LjgxIDUuODEtMi42MSA1LjgxLTUuODF6TTYuODEgMTEuM2E0LjQ5IDQuNDkgMCAxMTAtOC45OCA0LjQ5IDQuNDkgMCAwMTAgOC45OHpNMzUuMTkgMWMtMy4yIDAtNS44MSAyLjYxLTUuODEgNS44MXMyLjYxIDUuODEgNS44MSA1LjgxUzQxIDEwLjAxIDQxIDYuODEgMzguMzkgMSAzNS4xOSAxem0wIDEwLjNhNC40OSA0LjQ5IDAgMTEwLTguOTggNC40OSA0LjQ5IDAgMDEwIDguOTh6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNNy40NiA0LjY0bC0uOTMtLjk0LTMuMSAzLjEgMy4xIDMuMS45My0uOTMtMS41MS0xLjVoNC4zYy4wNC0uMjEuMDYtLjQzLjA2LS42NnMtLjAyLS40NS0uMDYtLjY2aC00LjNsMS41MS0xLjUxek0zNC4zOCA4Ljk4bC45My45MyAzLjEtMy4xLTMuMS0zLjEtLjkzLjkzIDEuNTEgMS41MWgtNC4xM2MtLjA0LjIxLS4wNi40My0uMDYuNjZzLjAyLjQ1LjA2LjY2aDQuMTNsLTEuNTEgMS41MXoiLz48L2c+PC9zdmc+");
+}
+
+.oci-mount-target {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDI2LjM0IDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi43NyA0MS41QzEuNTIgNDEuNS41IDQwLjQ4LjUgMzkuMjNWMTMuNzJjMC0xLjI1IDEuMDItMi4yNyAyLjI3LTIuMjdoNS40MmwtLjU1LS44QzUuNiA3LjcgNi4yOSAzLjY3IDkuMTggMS42NkE2LjYzOSA2LjYzOSAwIDAxMTIuOTUuNWMyLjExIDAgNC4wMyAxLjAyIDUuMjYgMi43OSAxLjU0IDIuMjEgMS41NSA1LjE3LjA0IDcuMzZsLS41NS44aDUuODdjMS4yNSAwIDIuMjcgMS4wMiAyLjI3IDIuMjd2MjUuNTJjMCAxLjI1LTEuMDIgMi4yNy0yLjI3IDIuMjdIMi43N3oiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0xMi45NSAxYzEuOTUgMCAzLjcyLjk0IDQuODUgMi41NyAxLjQyIDIuMDQgMS40MyA0Ljc3LjA0IDYuNzlsLTEuMDkgMS41OGg2LjgyYy45NyAwIDEuNzcuNzkgMS43NyAxLjc3djI1LjUyYzAgLjk3LS43OSAxLjc3LTEuNzcgMS43N0gyLjc3QzEuNzkgNDEgMSA0MC4yMSAxIDM5LjIzVjEzLjcyYzAtLjk3Ljc5LTEuNzcgMS43Ny0xLjc3aDYuMzdsLTEuMDktMS41OEM2LjE3IDcuNjQgNi44IDMuOTIgOS40NyAyLjA3IDEwLjQ2IDEuMzggMTEuNjkgMSAxMi45NSAxbTAtMUMxMS41IDAgMTAuMDYuNDQgOC45IDEuMjVjLTMuMTIgMi4xNi0zLjg3IDYuNTEtMS42NiA5LjY5bC4wMS4wMUgyLjc3QTIuNzcgMi43NyAwIDAwMCAxMy43MnYyNS41MkMwIDQwLjc2IDEuMjQgNDIgMi43NyA0MmgyMC44MWEyLjc3IDIuNzcgMCAwMDIuNzctMi43N1YxMy43MmEyLjc3IDIuNzcgMCAwMC0yLjc3LTIuNzdoLTQuOTJsLjAxLS4wMmMxLjYzLTIuMzYgMS42MS01LjU0LS4wNC03LjkzLTEuMzQtMS45LTMuNC0zLTUuNjgtM3oiLz48Zz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0yMy41NyAxMS45NWgtNS4zOWwtMS4wOCAxLjU3aDYuNDdjLjExIDAgLjIuMDkuMi4ydjI1LjUyYS4yLjIgMCAwMS0uMi4ySDIuNzdhLjIuMiAwIDAxLS4yLS4yVjEzLjcyYzAtLjExLjA5LS4yLjItLjJoNi4wMmwtMS4wOC0xLjU3SDIuNzdjLS45OCAwLTEuNzcuNzktMS43NyAxLjc3djI1LjUyYzAgLjk3Ljc5IDEuNzYgMS43NyAxLjc2aDIwLjgxYy45NyAwIDEuNzctLjc5IDEuNzctMS43N1YxMy43MmMtLjAxLS45OC0uOC0xLjc3LTEuNzgtMS43N3oiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0zLjc1IDIxLjc2aDE4Ljg0VjE0LjdIMTYuM2wtMS4wOCAxLjU3aDUuOHYzLjkySDUuMzJ2LTMuOTJoNS4zNUw5LjYgMTQuN0gzLjc1eiIvPjxjaXJjbGUgY2xhc3M9InByZWZpeF9fc3QxIiBjeD0iMTkuMDYiIGN5PSIxOC4yMyIgcj0iLjc5Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMy43NSAzMC4wMWgxOC44NHYtNy4wN0gzLjc1djcuMDd6bTEuNTctNS41aDE1Ljd2My45M0g1LjMydi0zLjkzeiIvPjxjaXJjbGUgY2xhc3M9InByZWZpeF9fc3QxIiBjeD0iMTkuMDYiIGN5PSIyNi40OCIgcj0iLjc5Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMy43NSAzOC4yNWgxOC44NHYtNy4wN0gzLjc1djcuMDd6bTEuNTctNS40OWgxNS43djMuOTNINS4zMnYtMy45M3oiLz48Y2lyY2xlIGNsYXNzPSJwcmVmaXhfX3N0MSIgY3g9IjE5LjA2IiBjeT0iMzQuNzIiIHI9Ii43OSIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTEyLjk1IDE3LjVsNC44OS03LjEzYzEuMzktMi4wMiAxLjM4LTQuNzUtLjA0LTYuNzlDMTYuNjYgMS45NCAxNC44OSAxIDEyLjk1IDFjLTEuMjUgMC0yLjQ5LjM4LTMuNDggMS4wNy0yLjY3IDEuODUtMy4zIDUuNTctMS40MSA4LjNsNC44OSA3LjEzem0zLjU2LTEzLjAzYzEuMDUgMS41MSAxLjA2IDMuNTIuMDQgNS4wMWwtMy42IDUuMjUtMy42LTUuMjVjLTEuNC0yLjAxLS45NC00Ljc2IDEuMDEtNi4xMi43Mi0uNSAxLjY2LS43OSAyLjU5LS43OSAxLjQyIDAgMi43Mi42OSAzLjU2IDEuOXoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0xMi45NSA5LjYxYzEuMzkgMCAyLjUyLTEuMTMgMi41Mi0yLjUyIDAtMS4zOS0xLjEzLTIuNTItMi41Mi0yLjUyLTEuMzkgMC0yLjUyIDEuMTMtMi41MiAyLjUyLS4wMSAxLjM5IDEuMTMgMi41MiAyLjUyIDIuNTJ6bTAtMy40N2MuNTIgMCAuOTUuNDMuOTUuOTVzLS40My45NS0uOTUuOTUtLjk1LS40My0uOTUtLjk1Yy0uMDEtLjUyLjQyLS45NS45NS0uOTV6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-mysql-database-system, .oci-mysql-db-system {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDM3LjEzIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDpub25lfS5wcmVmaXhfX3N0MntmaWxsOiMyYzU5Njd9PC9zdHlsZT48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0yNy41NCA0MS41Yy02LjQ1IDAtOC4xNy0xLjY5LTguNDUtMi4wM2wtLjI3LS4zM3YtNC40SDcuMDRjLTIuMjMtLjE2LTMuOTEtLjk1LTUuMDUtMi4zNUMuMTMgMzAuMTIuNTQgMjcuMTkuNTQgMjcuMTZjLjUzLTMuMDkgMi4yOS00LjY1IDMuNjgtNS40M2E4LjEyIDguMTIgMCAwMTIuMDctLjc5YzEuMjItMy4xNSAzLjY2LTMuODYgNC4xNC0zLjk3LjYyLS4xOSAxLjI5LS4yOSAxLjk2LS4yOS43NiAwIDEuNTEuMTIgMi4yMS4zNi0uMi0uMTctLjM5LS4zOS0uNTgtLjY0LTEuMTktMS42LTEuMDctMy42Ni0uNzYtNS4wOS4wNy0uMzYuMTctLjcyLjI5LTEuMDcuMDUtLjEyLjA5LS4yMS4xNC0uM2EuMy4zIDAgMDAuMDQtLjA4IDEuNjYgMS42NiAwIDAxLS4yMy0uMjJjLS4yOC0uMzQtLjUyLS42OS0uNzMtMS4wNS0uMy0uNTMtLjU2LTEuMDgtLjc3LTEuNjVsLS4yLS40NGMtLjA2LS4xNS0uMTItLjMxLS4xNi0uNDctLjAzLS4xMS0uMDctLjIyLS4xMS0uMzJhNC40MyA0LjQzIDAgMDAtLjYtLjc2Yy0uMTEtLjEyLS4xNy0uMTgtLjIzLS4yNi0uMDUtLjA2LS4xMS0uMTMtLjE4LS4yLS42LS42NS0xLjU5LTEuNy0xLjAyLTIuODguMjEtLjQ3LjYyLS44MyAxLjEyLS45OS4yNC0uMDguNTEtLjEyLjgtLjEyIDEuMTggMCAyLjU0LjY0IDMuMjQgMS4wMi4xNS4wOS4yOC4xOC40MS4yOC4wOS4wNy4xOC4xMy4yOC4xOSAxLjQ3LjAyIDIuOTUuMzggNC4yNyAxLjAyIDIuNiAxLjMxIDQuODYgMy4yNSA2LjU1IDUuNjEuMjYuMzguNDcuNzguNjUgMS4xOS4wOS4xOS4xOC40LjI5LjYxYTM2LjU5IDM2LjU5IDAgMDAxLjQ0IDIuNjNjLjA4LjEzLjE0LjI1LjIuMzcuMTMuMjUuMjcuNDguNDUuNjkuMjQuMTcuNS4yOC43OC4zNC4yNC4wNy40Mi4xMy41Ny4xOS42My4yNiAxLjE5LjUyIDEuNzIuODEgMS4xNy41OSAyLjIzIDEuMzggMy4xNCAyLjMyLjM2LjM2LjMxLjcuMjUuODgtLjE1LjQ2LS42Ny41NC0xLjAxLjZsLS4yMi4wNGMtLjMxLjA2LS42My4xMS0uOTUuMTMtLjI4LjAyLS41NS4wNi0uODIuMTFsLS4wNy4wMmMuMTcuMDkuMzMuMTcuNDYuMjRsLjE3LjA5Yy4xOC4wOS4zNC4xNy40Ny4yNS43NC40NCAxLjQuOTkgMS45OCAxLjY0bC40OC4zOGMuMjUuMjEuMzEuMzIuMzMuMzYuMS4xOC4xMy40My4xNC41MS4wMS4yOC0uMDkuNzEtLjEuNzYtLjA2LjI1LS4yNy44Mi0uMzUgMS4wNHYxNC41bC0uNDguMzZjLS4wOS4wNi0yLjUxIDEuODItOC4xNSAxLjgyem0tOC45OC0yMi43NWMuOTMgMCAxLjc5LjIgMi41Ny41OXYtLjAyYy0uNjctLjI5LTEuMy0uOC0xLjgyLTEuMjJsLS4wOC0uMDdjLS42Ny0uNS0xLjIzLTEuMDktMS42Ny0xLjc5di0uMDFjLS4xMS41MS0uMzQgMS4wNC0xLjAzIDEuMjctLjE5LjA3LS4zOS4xLS41OS4xaC0uMWMuNTguMzMgMS4xMS43NSAxLjU4IDEuMjQuMzktLjA2Ljc3LS4wOSAxLjE0LS4wOXoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0xMS40MiAxYzEuMDkgMCAyLjQxLjY0IDMgLjk2LjExLjA3LjIyLjE0LjMzLjIzLjE0LjEyLjMuMjIuNDcuMyAxLjQ1LjAxIDIuODcuMzQgNC4xNy45NyAyLjUzIDEuMjcgNC43MSAzLjE1IDYuMzYgNS40Ni4yMy4zNS40My43MS42IDEuMS4xLjIxLjIuNDMuMzEuNjUuNTEgMS4wMSAxIDEuOTEgMS40NiAyLjY2LjA3LjExLjEzLjIzLjE5LjM0LjE0LjMuMzMuNTguNTUuODIuMy4yMy42NS4zOCAxLjAyLjQ2LjE4LjA1LjM1LjEuNDguMTYuNjIuMjYgMS4xNi41MSAxLjY4Ljc5IDEuMTIuNTcgMi4xNSAxLjMyIDMuMDIgMi4yMy4xNC4xNC4xOC4yNi4xNC4zNi0uMDYuMTktLjM3LjIzLS42NC4yN2wtLjIxLjA0Yy0uMy4wNi0uNi4xLS45LjEyLS4zLjAyLS41OS4wNi0uODguMTJsLS4xLjAyYy0uMzQuMDktLjY4LjE2LTEuMDIuMjEuMi4zNy44OS43MSAxLjQ0Ljk4LjIuMS40LjIuNTUuMjkuNy40MiAxLjMzLjk0IDEuODcgMS41NWwuMjYuMjFjLjEuMDcuMjcuMjIuMjcuMjJzLjE4LjE1LjIyLjIyYy4wNC4wNi4wNy4yMS4wNy4yOS4wMS4xNi0uMDUuNDctLjA5LjYyLS4wNy4yNy0uMzYgMS4wNy0uMzYgMS4wN3YxNC4zNGwtLjI3LjIxYy0uMS4wNy0yLjQxIDEuNzMtNy44NyAxLjczLTYuMzQgMC03LjktMS42Ni04LjA2LTEuODVsLS4xNi0uMTl2LTQuNzJINy4wNGMtMi4wNS0uMTUtMy42Mi0uODgtNC42Ny0yLjE2LTEuNjctMi4wNS0xLjM2LTQuNzMtMS4zNC00Ljg0di0uMDRjLjUtMi44NiAyLjE0LTQuMzEgMy40My01LjAzLjY5LS4zOCAxLjQzLS42NSAyLjItLjggMS4xLTMuMTYgMy41MS0zLjgzIDMuODgtMy45MWE2LjQ0MyA2LjQ0MyAwIDAxNi42OSAxLjkyYy40OC0uMDkuOTItLjE0IDEuMzMtLjE0IDEuMyAwIDIuMy40MiAzLjA3Ljk4di0xLjI2Yy0uNzQtLjIyLTEuNDgtLjg0LTIuMDgtMS4zMmwtLjA0LS4wM2E2LjIwNyA2LjIwNyAwIDAxLTEuNTQtMS42NWMtLjE4LS4zMi0uMzYtLjYyLS41NS0uOTRsLS4xMi0uMjJjLS4wMS4wMy0uMDEuMDctLjAyLjEtLjAxLjA2LS4wMi4xMy0uMDQuMTktLjA1LjIxLS4wOS40My0uMTEuNjUtLjA4LjU2LS4xNiAxLjA5LS43NyAxLjMtLjE0LjA1LS4yOS4wOC0uNDMuMDgtLjUyIDAtMS4wMi0uMzQtMS41Mi0xLTEuMDgtMS40NS0uOTYtMy4zNS0uNjgtNC42OS4wNy0uMzQuMTYtLjY4LjI3LTEuMDIuMDMtLjA3LjA2LS4xNC4xLS4yMS4wOC0uMTIuMTMtLjI2LjE3LS40YS41OS41OSAwIDAwLS4yNS0uMzNjLS4wNi0uMDUtLjEyLS4xLS4xOC0uMTYtLjI1LS4zLS40Ny0uNjItLjY2LS45Ni0uMjgtLjUtLjUzLTEuMDMtLjczLTEuNTdsLS4yLS40OWMtLjA2LS4xMy0uMTEtLjI3LS4xNC0uNDEtLjA0LS4xNC0uMDgtLjI3LS4xNC0uNC0uMi0uMzMtLjQzLS42My0uNjktLjktLjA3LS4wOC0uMTMtLjE0LS4yLS4yM3MtLjE2LS4xOC0uMjYtLjI5Yy0uNTEtLjU0LTEuMjktMS4zNi0uODctMi4yNC4xNi0uMzUuNDYtLjYxLjgyLS43My4yMS0uMDYuNDItLjA5LjY1LS4wOW0wLTFjLS4zNSAwLS42Ny4wNS0uOTYuMTQtLjYyLjItMS4xNC42Ni0xLjQyIDEuMjctLjcxIDEuNDcuNDcgMi43MyAxLjA0IDMuMzRsLjA3LjA4Yy4wNi4wNi4xMS4xMi4xNS4xN2wuMjIuMjUuMDEuMDEuMDMuMDRjLjIuMjEuMzcuNDMuNTMuNjcuMDMuMDYuMDUuMTMuMDcuMTkuMDUuMTguMTEuMzcuMTkuNTVsLjE5LjQ3Yy4yMS41Ni40OCAxLjEzLjc4IDEuNjguMjMuMzkuNDguNzYuNzcgMS4xbC4wMi4wMi4wMS4wMWMtLjAxLjAxLS4wMS4wMy0uMDIuMDRsLS4wMS4wMy0uMDEuMDNjLS4xMi4zNy0uMjMuNzUtLjMxIDEuMTMtLjMgMS40LS40MyAzLjM2LjU1IDUuMDNhNy4xODcgNy4xODcgMCAwMC0zLjAzLjI1Yy0uNTkuMTQtMy4wNS45Mi00LjM2IDQuMDMtLjY3LjE4LTEuMzIuNDQtMS45NC43OC0xLjQ4LjgzLTMuMzYgMi40OS0zLjkzIDUuNzNsLS4wMS4wOXYuMDdjLS4wNS41NC0uMjQgMy4zMiAxLjU3IDUuNTMgMS4yMyAxLjUgMy4wNCAyLjM2IDUuMzcgMi41M2gxMS4zNnY0LjA4bC4yMy4yOC4xNi4xOWMuNDMuNTIgMi4zMyAyLjIxIDguODMgMi4yMSA1LjcgMCA4LjItMS43MyA4LjQ2LTEuOTNsLjI4LS4yMS40LS4zVjI0LjljLjExLS4yOS4yOC0uNzcuMzQtMS4wMi4wMy0uMTMuMTMtLjU4LjExLS45MSAwLS4wNC0uMDMtLjQyLS4yLS43Mi0uMDQtLjA3LS4xMy0uMjItLjQ0LS40OS0uMDEtLjAxLS4yLS4xNy0uMzEtLjI1bC0uMjEtLjE0Yy0uNTMtLjU5LTEuMTQtMS4xLTEuODEtMS41M2wuMzYtLjA2LjE5LS4wM2MuMzgtLjA2IDEuMTYtLjE4IDEuNDEtLjk0LjA4LS4yMi4yLS44MS0uMzktMS4zOWExMi4wNSAxMi4wNSAwIDAwLTMuMjctMi40MWMtLjUyLS4yOC0xLjEtLjU1LTEuNzUtLjgyYTUuNjUgNS42NSAwIDAwLS41OC0uMTlsLS4wNC0uMDEtLjA0LS4wMWMtLjE5LS4wNC0uMzgtLjEyLS41NC0uMjMtLjEzLS4xNi0uMjQtLjMzLS4zMy0uNTItLjA4LS4xNi0uMTUtLjI4LS4yMi0uNDEtLjQzLS43LS45LTEuNTUtMS40My0yLjYtLjEyLS4yMi0uMjEtLjQyLS4zLS42MWE3LjE2IDcuMTYgMCAwMC0uNjgtMS4yNCAxOC41MjcgMTguNTI3IDAgMDAtNi43NC01Ljc5Yy0xLjM2LS42Ni0yLjg2LTEuMDMtNC4zNi0xLjA4bC0uMS0uMDdjLS4xNS0uMTItLjMtLjIzLS40Ni0uMzJDMTQuMTYuNjggMTIuNzEgMCAxMS40MiAwem01LjYzIDE3LjgzYy4yOC0uMTUuNDktLjM1LjY0LS41Ny4zLjM2LjY0LjcgMS4wMiAxaC0uMTNjLS4zMiAwLS42NC4wMi0uOTcuMDYtLjE5LS4xOC0uMzctLjM0LS41Ni0uNDl6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMjAuNyAzMS4wM3YzLjA1Yy40OS4zMyAyLjI2IDEuMjQgNi44NCAxLjI0IDMuODkgMCA2LS44OSA2Ljc3LTEuM3YtMy4wOGMtMS4yNi41My0zLjQzIDEuMTMtNi43NyAxLjEzLTMuNjgtLjAxLTUuNzQtLjU2LTYuODQtMS4wNHpNMjcuNTIgMjYuNTJjNC42NyAwIDYuNzktMS4yMiA2Ljc5LTEuNTkgMC0uMzctMi4xMi0xLjYtNi43OS0xLjZzLTYuNzkgMS4yMi02Ljc5IDEuNmMwIC4zNyAyLjEzIDEuNTkgNi43OSAxLjU5ek0yNy41MyAyNy45MWMtMS44NS4wMy0zLjctLjIxLTUuNDktLjctLjQ2LS4xNC0uOTEtLjMyLTEuMzQtLjU1djIuODJjLjQ5LjMyIDIuMjYgMS4yMSA2Ljg0IDEuMjEgNC4xMyAwIDYuMjctLjk5IDYuNzctMS4yN2wuMDEtMi43M2MtLjQyLjIxLS44NS4zOS0xLjMuNTItMS43OS40OS0zLjY0LjczLTUuNDkuN3pNMjAuNyAzNS42NHYyLjc2Yy40OS4zMyAyLjI2IDEuMjQgNi44NCAxLjI0IDMuODkgMCA2LS44OSA2Ljc3LTEuM3YtMi43OWMtMS4yNi41NC0zLjQzIDEuMTUtNi43NyAxLjE1LTMuNjgtLjAxLTUuNzQtLjU2LTYuODQtMS4wNnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDIiIGQ9Ik03LjI3IDIyLjgybC41My0uMDQuMTUtLjUxYy44Mi0yLjg0IDIuODMtMy4zMSAyLjkxLTMuMzNsLjA3LS4wMmMzLjM5LTEgNS4zIDEuNjMgNS4zOCAxLjc0bC4zLjQzLjUxLS4xM2MxLjk1LS41IDMuMjEuMDQgNC4wMS43Ni4xNy0uMDYuMzUtLjEzLjU1LS4xOS4zMy0uMS42OC0uMTkgMS4wNS0uMjctLjk2LTEuMTktMi42Ny0yLjQ0LTUuNDktMS44OGE2LjQyOCA2LjQyOCAwIDAwLTYuNy0xLjkyYy0uMzcuMDktMi43OC43NS0zLjg4IDMuOTEtLjc3LjE1LTEuNTEuNDItMi4yLjgtMS4yOS43Mi0yLjkzIDIuMTctMy40MyA1LjAzdi4wNGMtLjAyLjExLS4zMyAyLjggMS4zNCA0Ljg0IDEuMDUgMS4yOCAyLjYyIDIuMDEgNC42NyAyLjE2aDExLjIxdi0xLjUxSDcuMTJjLTEuNi0uMTItMi44LS42Ni0zLjU3LTEuNi0xLjIxLTEuNDctMS4wNC0zLjUxLTEuMDItMy43Ljc1LTQuMjUgNC41OC00LjYgNC43NC00LjYxek0xNi4xOCA1LjA2YS44NC44NCAwIDAwLS4zNC0uMTcgMS41OSAxLjU5IDAgMDAtLjcyLjA0di4wM2guMDRjLjE4LjE3LjM0LjM1LjQ4LjU1LjE4LjI0LjM0LjQ5LjQ5Ljc1LjMxLS4xNC40Ny0uNDguMzgtLjgtLjA4LS4xNS0uMTktLjI5LS4zMy0uNHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDIiIGQ9Ik0zNi4xMyAyMy4wM2MtLjA2LS4wNy0uMS0uMTUtLjE0LS4yMy0uMDQtLjEtLjA5LS4xOS0uMTUtLjI3LS4wOS0uMDgtLjE4LS4xNS0uMjctLjIybC0uMjYtLjIxYTcuOTY0IDcuOTY0IDAgMDAtMS44Ny0xLjU1Yy0uMTUtLjA5LS4zNS0uMTktLjU1LS4yOS0uNTUtLjI3LTEuMjQtLjYxLTEuNDQtLjk4LjM0LS4wNS42OS0uMTIgMS4wMi0uMjFsLjEtLjAyYy4yOS0uMDYuNTgtLjEuODgtLjEyLjMtLjAyLjYtLjA2LjktLjEybC4yMS0uMDRjLjI3LS4wNC41OC0uMDkuNjQtLjI3LjA0LS4xIDAtLjIyLS4xNC0uMzYtLjg3LS45MS0xLjktMS42Ni0zLjAyLTIuMjMtLjUxLS4yNy0xLjA2LS41My0xLjY4LS43OS0uMTMtLjA1LS4zLS4xMS0uNDgtLjE2LS4zNy0uMDgtLjcyLS4yMy0xLjAyLS40Ni0uMjItLjI1LS40LS41My0uNTUtLjgyLS4wNi0uMTItLjEyLS4yMy0uMTktLjM0LS40Ni0uNzUtLjk1LTEuNjUtMS40Ni0yLjY2LS4xMi0uMjEtLjIyLS40My0uMzEtLjY1LS4xNi0uMzgtLjM2LS43NS0uNi0xLjFhMTcuNDYgMTcuNDYgMCAwMC02LjM2LTUuNDZjLTEuMy0uNjMtMi43My0uOTctNC4xNy0uOTctLjE3LS4wOC0uMzMtLjE4LS40Ny0uMy0uMS0uMDgtLjIxLS4xNi0uMzMtLjIzLS43MS0uMzktMi41LTEuMjQtMy42NS0uODctLjM3LjEyLS42Ni4zOC0uODIuNzMtLjQyLjg4LjM1IDEuNy44NyAyLjI1LjEuMTEuMTkuMjEuMjYuMjkuMDcuMDkuMTMuMTUuMi4yMy4yNi4yNy41LjU4LjY5LjkuMDYuMTMuMTEuMjYuMTQuNC4wNC4xNC4wOS4yOC4xNC40MWwuMi40OWMuMi41NC40NSAxLjA3LjczIDEuNTcuMTkuMzQuNDIuNjYuNjYuOTYuMDUuMDYuMTEuMTEuMTguMTYuMTIuMDcuMjEuMTkuMjUuMzMtLjA0LjE0LS4wOS4yNy0uMTcuNC0uMDQuMDctLjA3LjE0LS4xLjIxLS4xMS4zMy0uMi42Ny0uMjcgMS4wMi0uMjkgMS4zNC0uNCAzLjI0LjY4IDQuNjkuNjMuODUgMS4yOCAxLjE2IDEuOTUuOTIuNjEtLjIxLjY5LS43NC43Ny0xLjMuMDItLjIyLjA2LS40My4xMS0uNjUuMDItLjA2LjAzLS4xMi4wNC0uMTkgMC0uMDMuMDEtLjA3LjAyLS4xbC4xMy4yM2MuMTkuMzIuMzcuNjIuNTUuOTQuNDEuNjQuOTMgMS4yIDEuNTQgMS42NWwuMDQuMDNjLjYuNDggMS4zNCAxLjEgMi4wOCAxLjMybC4wOC4wMXYtLjJoLS4wN2MtLjA4LS4wOC0uMTYtLjE1LS4yNi0uMi0uMDUtLjAzLS4xLS4wNi0uMTQtLjA5LS4zMy0uMjgtLjY0LS41OC0uOTItLjkxLS43NS0uODYtMS40MS0xLjc5LTItMi43OC0uMjctLjQzLS40OS0uODktLjcxLTEuMzRsLS4wNi0uMTJjLS4wMy0uMDctLjA2LS4xNC0uMDgtLjIxYS41NjQuNTY0IDAgMDAtLjIzLS4zN2wtLjA1LS4wMi0uMDQuMDRjLS4wOS4xMi0uMTkuMjMtLjMuMzMtLjIyLjIxLS40LjQ1LS41NS43MS0uMjUuNTctLjM5IDEuMTgtLjQzIDEuOC0uMDIuMTYtLjA0LjMyLS4wNy40OGgtLjAxYy0uNDYtLjExLS42NS0uNTEtLjg0LS44OWwtLjA2LS4xMmMtLjU1LTEuMS0uNi0yLjgyLS4xNi00LjAyLjAyLS4wNi4wNi0uMTUuMTEtLjI1LjI3LS41OS41MS0xLjE4LjMzLTEuNDRhMS4zIDEuMyAwIDAwLS40MS0uNDZjLS4wOS0uMDctLjE4LS4xNS0uMjYtLjIzLS4yNC0uMy0uNDUtLjYyLS42My0uOTctLjE5LS40LS4zNi0uODEtLjUxLTEuMjQtLjE3LS40OS0uMzctLjk3LS42LTEuNDItLjIxLS4zNS0uNDUtLjY4LS43Mi0uOThsLS4xNy0uMmMtLjA4LS4xLS4xOS0uMjEtLjMxLS4zMy0uMzktLjM5LS44OC0uODgtLjc2LTEuMzNhLjM2LjM2IDAgMDEuMjUtLjI3Yy41Ny0uMjMgMS45Mi40MyAyLjU2LjgyLjA4LjA1LjE1LjA5LjIzLjE0LjIuMTMuNC4yNC42MS4zNS4zMy4xMy42OS4xOSAxLjA0LjE3LjE2IDAgLjMyIDAgLjQ4LjAzLjUyLjA2IDEuMDMuMTYgMS41My4zMSAxLjA1LjMzIDIuMDUuODEgMi45NiAxLjQyIDEuODEgMS4xOSAzLjMzIDIuNzcgNC40NSA0LjYyLjExLjE4LjIuMzcuMjcuNTcuMDYuMTUuMTMuMy4yMi40Ni4yLjQuNDIuOC42NCAxLjIuMTkuMzUuMzkuNzEuNTcgMS4wNWwuMS4xOWMuMzEuNjcuNzEgMS4zIDEuMTggMS44Ny4yLjI0Ljc5LjM5IDEuMy41Mi4yMS4wNS40LjEuNTUuMTUuNzguMjcgMS41NC42MSAyLjI2IDEgLjM3LjIuNzQuNDIgMS4xLjY1LjA1LjAzLjEyLjA3LjIuMTIuMjMuMS40NC4yNS42LjQ0LTEuNDItLjAyLTIuNS4xMi0zLjM4LjQzLS4wNy4wMi0uMTQuMDQtLjIyLjA1LS4yNS4wNS0uNTMuMTItLjU1LjM4di4wNGwuMDMuMDJjLjA3LjA3LjEyLjE1LjE1LjI0LjAzLjA4LjA3LjE2LjEzLjI0LjI2LjM3LjU4LjY5Ljk0Ljk1LjM1LjIzLjc0LjQ5IDEuMTUuNzEuMzUuMTguNzEuMzQgMS4wNy40Ny4zNy4xNC43My4zIDEuMDguNDcuMjIuMTIuNDUuMjcuNjcuNDEuMTcuMTEuMzMuMjEuNS4zMS4wNy4wNS4xMy4xLjE5LjE1LjExLjExLjI1LjIuNC4yNWwuMDkuMDN2LS4xNmwtLjAzLS4wMXpNMzMuMDEgMjIuNjZjLTEuNzktLjQ5LTMuNjQtLjczLTUuNDktLjctMS44NS0uMDMtMy43LjIxLTUuNDkuNy0yLjIuNjgtMi42NyAxLjYxLTIuNjcgMi4yOGgtLjA0djE0LjAybC4xNi4xOWMuMTYuMTkgMS43MiAxLjg1IDguMDYgMS44NSA1LjQ2IDAgNy43Ny0xLjY2IDcuODctMS43NGwuMjctLjIxVjI0LjcyaC0uMDJjLS4wOC0uNjEtLjY0LTEuNDUtMi42NS0yLjA2em0tNS40OS42N2M0LjY3IDAgNi43OSAxLjIyIDYuNzkgMS42IDAgLjM3LTIuMTIgMS41OS02Ljc5IDEuNTlzLTYuNzktMS4yMi02Ljc5LTEuNTljMC0uMzcgMi4xMi0xLjYgNi43OS0xLjZ6bTYuNzkgMTVjLS43Ny40MS0yLjg4IDEuMy02Ljc3IDEuMy00LjU5IDAtNi4zNi0uOTEtNi44NC0xLjI0di0yLjc2YzEuMS40OSAzLjE3IDEuMDUgNi44NCAxLjA1IDMuMzQgMCA1LjUxLS42MSA2Ljc3LTEuMTV2Mi44em0wLTQuMzJjLS43Ny40MS0yLjg4IDEuMy02Ljc3IDEuMy00LjU5IDAtNi4zNi0uOTEtNi44NC0xLjI0di0zLjA1YzEuMS40OSAzLjE3IDEuMDMgNi44NCAxLjAzIDMuMzQgMCA1LjUxLS42IDYuNzctMS4xM3YzLjA5em0wLTQuNTljLS41LjI3LTIuNjQgMS4yNy02Ljc3IDEuMjctNC41OCAwLTYuMzYtLjg5LTYuODQtMS4yMXYtMi44MmMuNDMuMjMuODcuNDEgMS4zNC41NSAxLjc5LjQ5IDMuNjQuNzMgNS40OS43IDEuODUuMDMgMy43LS4yMSA1LjQ5LS43LjQ1LS4xMy44OS0uMyAxLjMtLjUybC0uMDEgMi43M3oiLz48L2c+PC9zdmc+");
+}
+
+.oci-nat-gateway {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDM2LjE5IDQyLjQxIj48cGF0aCBkPSJNMTguMSA0MS45MWExNy4xNCAxNy4xNCAwIDAxLTEuNzYtLjA5aC0uMzVsLS4zNS0uMDVjLS4zNCAwLS42Ny0uMDktMS0uMTZzLS42NS0uMTYtMS0uMjRsLS4zNC0uMDktLjMtLjEzYTE3Ljg0IDE3Ljg0IDAgMDEtNC43NC0yLjI3bC0uMzktLjI5LS4zNC0uMjYtLjYzLS40OC0uMzUtLjMyLS4yOC0uMjVjLS4yMi0uMi0uNDQtLjQtLjY1LS42MWwtLjMtLjMzYy0uMy0uMzItLjU5LS42NC0uODctMUExNy40OSAxNy40OSAwIDAxMi42MSAxNmMuMjYtLjQ5LjUzLS45My44LTEuMzVsLjE2LS4yM2MuMjUtLjM2LjUtLjcuNzYtMWwuMjgtLjMzYy4yNC0uMjkuNS0uNTguNzctLjg3bC4zMS0uMzFjLjI4LS4yOC41Ni0uNTUuODYtLjhsLjI2LS4yM2MuMzUtLjI5LjY4LS41NSAxLS44TDggOS45MWMuMzgtLjI3Ljc4LS41MiAxLjE4LS43NmExNy45MyAxNy45MyAwIDAxNC40LTEuODNjLjUxLS4xMyAxLS4yNCAxLjQ5LS4zMmguMDhMMTMuNSA1LjMgMTguMDkuNzFsNC42IDQuNTlMMjEgN2guMDVsLjUyLjA4LjQ5LjEyLjQ5LjEzLjYuMTUuNS4xNWExNy4zOSAxNy4zOSAwIDAxMi40MiAxbC40OS4yNWMuMjEuMTEuNC4yMy41OS4zNWwuNDEuMjVjLjQyLjI3LjgyLjU2IDEuMjIuODVhMTcuNzkgMTcuNzkgMCAwMTMuMzIgMy4zNGMuMzQuNDUuNi44NC44NSAxLjIzbC4xMy4yMWMuMjIuMzYuNDMuNzMuNjIgMS4xbC4xOC4zNGMuMTcuMzUuMzMuNzEuNDggMS4wN2wuMTcuNDJjLjEzLjM2LjI2LjcyLjM3IDEuMWwuMTMuNGMuMTEuNDIuMjEuODMuMyAxLjI1bC4wNS4yOGExNC42MyAxNC42MyAwIDAxLjIyIDEuNTIgMTcuNjMgMTcuNjMgMCAwMS0xLjI2IDguNTIgMTcuMzkgMTcuMzkgMCAwMS03LjgyIDguNjNjLS40NC4yNC0uODQuNDItMS4yNC42bC0uMTYuMDgtLjI0LjExLS44MS4zLS40LjE0LS40Mi4xNWMtLjI1LjA4LS41LjEzLS43NC4ybC0uNDYuMTEtLjQ3LjExYTE2LjkxIDE2LjkxIDAgMDEtMy40OC4zNXpNMTUuMjUgN2wuMzQtLjA2LjY3LS4xLjU1LS4wNWguMDdWNS4zNXpNMjAgNi44M2wuNjIuMDkuMzUuMDYtMS42Ny0xLjYzdjEuNDNoLjA3di0uMDV6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTE4LjA5IDEuNDFsMS43MiAxLjcyLjA2LjA2TDIyIDUuM2wtMSAxLTEuMS0xLjEtMS4xLTEuMDZ2My4xMmMuMzYgMCAuNzIgMCAxLjA3LjA2LjI4IDAgLjU2LjA4Ljg0LjEybC43My4xMWMuMjQuMDUuNDguMTIuNzEuMThzLjU2LjEzLjgzLjIxYTE3IDE3IDAgMDEzLjI3IDEuNGMuMjcuMTUuNTEuMzEuNzcuNDdsLjIuMTJjLjQxLjI2LjguNTQgMS4xOC44M0ExNy4xMSAxNy4xMSAwIDAxMzEuNyAxNGwuMDYuMDdjLjI3LjM3LjUzLjc1Ljc3IDEuMTNsLjEzLjJjLjIxLjM1LjQxLjcxLjYgMS4wN2wuMTcuMzNjLjE3LjM0LjMyLjY5LjQ2IDEgLjA2LjEzLjEyLjI3LjE3LjQuMTMuMzYuMjUuNzEuMzYgMS4wNyAwIC4xNC4wOS4yNy4xMi40LjEyLjQuMjEuOC4zIDEuMjF2LjI3YTE0LjY0IDE0LjY0IDAgMDEuMjEgMS40OCAxNyAxNyAwIDAxLTguODMgMTYuNjJoLS4wNmMtLjM3LjItLjc2LjM4LTEuMTQuNTZsLS40LjE4Yy0uMzEuMTMtLjYyLjI0LS45NC4zNXMtLjQyLjE2LS42NC4yMi0uNjIuMTctLjkzLjI0LS40NS4xMy0uNjguMTdhMTYuNzMgMTYuNzMgMCAwMS0zLjM5LjM0IDE2LjMxIDE2LjMxIDAgMDEtMS43MS0uMDhsLS41NS0uMDhjLS4zNyAwLS43NC0uMS0xLjExLS4xN3MtLjcyLS4xOC0xLjA4LS4yN2wtLjU0LS4xNGExNyAxNyAwIDAxLTQuNi0yLjIxYy0uMi0uMTMtLjM4LS4yOC0uNTctLjQycy0uNTItLjM3LS43Ni0uNTgtLjM0LS4zLS41MS0uNDYtLjUtLjQ0LS43My0uNjgtLjItLjIyLS4zLS4zMnEtLjQzLS40Ny0uODQtMWExNyAxNyAwIDAxLTEuNjktMTguNjVjLjI0LS40NC41LS44Ny43Ny0xLjI4bC4xOC0uMjZjLjIzLS4zNS40OC0uNjguNzMtMWwuMjctLjMzYy4yNC0uMjguNDktLjU3Ljc1LS44NGwuMzEtLjMxYy4yNy0uMjcuNTQtLjUzLjgzLS43OGEzLjExIDMuMTEgMCAwMS4yOC0uMjNjLjMxLS4yNy42NC0uNTIgMS0uNzZsLjE5LS4xNGMuMzgtLjI2Ljc2LS41MSAxLjE2LS43NGguMDdhMTYuNzYgMTYuNzYgMCAwMTQuMTktMS43M2MuNDctLjEyLjk0LS4yMyAxLjQxLS4zMWguMjRjLjI5IDAgLjU4LS4xMS44OC0uMTQuMzYgMCAuNzEtLjA3IDEuMDctLjA4VjQuMTRsLTEuMDcgMS4wNy0xLjEgMS4xLTEtMSAyLjEtMi4xMS4wNi0uMDYgMS43Mi0xLjcybTAtMS40MWwtLjcuNzEtMS43MiAxLjcxLS4wNi4wNi0yLjExIDIuMS0uNzEuNzEuNzEuNy42Ny42N2MtLjIxIDAtLjQzLjA5LS42NC4xNWExOC41MyAxOC41MyAwIDAwLTQuNDggMS44NUw5IDguNzJjLS40MS4yNC0uODIuNTEtMS4yMi43OGwtLjIuMTRjLS4zNS4yNi0uNjkuNTMtMSAuODFsLS4zLjI1Yy0uMjkuMjUtLjU3LjUyLS44OC44MmwtLjA3LjA3LS4zMy4yNmMtLjI2LjI3LS41Mi41Ni0uOC44OWwtLjA3LjA5LS4yMS4yNWMtLjI1LjMyLS41LjY2LS43OCAxLjA2bC0uMDUuMDgtLjA5LjE3Yy0uMjguNDMtLjU1Ljg4LS44IDEuMzVBMTggMTggMCAwMDQgMzUuNjJsLjA1LjA2Yy4yOS4zNi42MS43MS44OCAxbC4wNy4xMi4yLjIyYy4yMi4yMi40NC40Mi42Ny42MmwuMTEuMTEuMTYuMTQuMzguMzQuNjQuNDkuMTcuMTMuMTguMTQuNDEuM2ExOC4zIDE4LjMgMCAwMDQuODggMi4zNGwuMzguMWguMzFjLjMzLjA5LjY3LjE4IDEgLjI1cy43MS4xMiAxLjA1LjE2aC43Yy42LjA2IDEuMjEuMDkgMS44MS4wOWExOC4wNyAxOC4wNyAwIDAwMy41OS0uMzZsLjQ5LS4xMi4yMi0uMDZoLjIyYy4yNi0uMDYuNTItLjEyLjc3LS4ybC40Ny0uMTYuMjEtLjA4LjE0LS4wNWMuMjktLjEuNTctLjIuODYtLjMybC4yNy0uMTIuMTUtLjA3Yy4zNi0uMTYuNzktLjM2IDEuMjEtLjU5aC4wNWExNy44NCAxNy44NCAwIDAwOC04Ljg3IDE4LjE0IDE4LjE0IDAgMDAxLjMtOC43MnYtLjA2Yy0uMDUtLjUxLS4xMy0xLS4yMi0xLjU0YTEuMDYgMS4wNiAwIDAxMC0uMTl2LS4xYy0uMS0uNDctLjItLjg5LS4zMS0xLjI4YTIuODEgMi44MSAwIDAwLS4xLS4zMXYtLjExYy0uMTMtLjQyLS4yNi0uNzktLjM5LTEuMTMgMC0uMTItLjA5LS4yNC0uMTQtLjM2di0uMDdjLS4xNi0uNC0uMzItLjc2LS40OS0xLjEtLjA2LS4xLS4xMS0uMjEtLjE2LS4zMS0uMjMtLjQzLS40NC0uODEtLjY2LTEuMTdsLS4xMi0uMTljLS4yNy0uNDMtLjU1LS44NC0uODMtMS4yMmwtLjA3LS4wOGExNy44NCAxNy44NCAwIDAwLTMuNC0zLjI5Yy0uNDUtLjM0LS44Ny0uNjQtMS4yOC0uOWwtLjE0LS4xaC0uMDdsLS4yMS0uMTNjLS4yLS4xMy0uNC0uMjUtLjYxLS4zNmwtMS0uNTNjLS40NS0uMjEtLjkxLS40MS0xLjM3LS41OEwyMy4zMiA3aC0uMDVsLS42MS0uMTUtLjI0LS4wNi0uMjQtLjA2aC0uMTVsLjY2LS43My43LS43MS0uNy0uNzEtMi4xMS0yLjEtLjA2LS4wNkwxOC44LjcxIDE4LjA5IDB6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTE5Ljg3IDcuMzJ2MS40M2ExNS42NyAxNS42NyAwIDExLTMuNTYgMFY3LjMyYTE3LjEgMTcuMSAwIDEwMy41NiAweiIgZmlsbD0iIzJjNTk2NyIvPjxwYXRoIGZpbGw9IiMyYzU5NjciIGQ9Ik0xNy4zOCAzNy4xNGgxLjQydi0zM2wxLjA3IDEuMDcgMS4xIDEuMSAxLjAxLTEuMDEtMi4xMS0yLjExLS4wNi0uMDYtMS43Mi0xLjcyLTEuNzIgMS43Mi0uMDYuMDYtMi4xIDIuMTEgMSAxLjAxIDEuMS0xLjEgMS4wNy0xLjA3djMzeiIvPjxwYXRoIGZpbGw9IiMyYzU5NjciIGQ9Ik0yMy43NiAyNy4ybC0yLjE3LTIuMTdoOS4xNHYtMS40MmgtOS4xNGwyLjE3LTIuMTctMS4wMS0xLjAxLTIuODggMi44OC0xIDEuMDEgMSAxLjAxIDIuODggMi44OCAxLjAxLTEuMDF6TTEyLjQzIDIxLjQ0bDIuMTYgMi4xN0g1LjQ1djEuNDJoOS4xNGwtMi4xNiAyLjE3IDEgMS4wMSAyLjg4LTIuODggMS4wMS0xLjAxLTEuMDEtMS4wMS0yLjg4LTIuODgtMSAxLjAxeiIvPjwvc3ZnPg==");
+}
+
+.oci-network-load-balancer {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTM0LjIgNDEuNXYtMi40OGgzLjAxTDIzLjE2IDI0Ljk2Yy0uMzcgNC43Ni0xLjQ2IDguOTUtMy4xNyAxMi4xOC0yLjEgMy41Ni00LjIyIDQuMjktNS42MyA0LjI5LS4yNSAwLS41MS0uMDItLjc2LS4wNy00LjAzLS43NC02LjQ2LTYuNzktNy40LTEyLjIxLS4zOC0yLjAzLS42Mi00LjQxLS42Ny02LjkxSC41di0yLjQ4aDUuMDNjLjA2LTIuNTkuMzEtNS4wNy43Mi03LjE3QzcuNTYgNS4yMyAxMC42OS42NCAxNC40Mi42YzIuMTggMCA2LjA4IDEuNTkgOC4xOCAxMi4yMy4yNCAxLjM1LjQxIDIuNzUuNTMgNC4yTDM3LjE3IDIuOThIMzQuMlYuNWg3LjN2Ny4zaC0yLjQ4VjQuNjRMMjMuOSAxOS43NmgxMi44OGwtMi0xLjkxIDEuNzEtMS44IDUuMTcgNC45Mi01LjE0IDUuMTQtMS43NS0xLjc1IDIuMTItMi4xM0gyMy45NUwzOS4wMiAzNy4zdi0zLjFoMi40OHY3LjNoLTcuM3oiIHRyYW5zZm9ybT0icm90YXRlKDkwIDIxIDIxKSIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTQxIDF2Ni4zaC0xLjQ4VjMuNDRMMjIuNzkgMjAuMTd2LjA5aDE1LjI1bC0yLjU1LTIuNDMgMS4wMi0xLjA3IDQuNDQgNC4yMy00LjQzIDQuNDMtMS4wNS0xLjA1IDIuNjItMi42MmgtMTUuM3YuMDVsMTYuNzIgMTYuNzJWMzQuN0g0MVY0MWgtNi4zdi0xLjQ4aDMuNzJsLTE1LjctMTUuN2MtLjI1IDQuNTctMS4xNyA5LjI4LTMuMTggMTMuMDhsLS4wMi4wNGMtMS44OCAzLjE5LTMuNzUgMy45OS01LjE3IDMuOTktLjI0IDAtLjQ3LS4wMi0uNjgtLjA2LTMuNzgtLjY5LTYuMTMtNi43OS02Ljk5LTExLjgxLS40Mi0yLjItLjY0LTQuNzUtLjY4LTcuMzJIMXYtMS40OGg1LjAyYy4wNC0yLjY3LjI4LTUuMzEuNzItNy41OEM4IDUuNTcgMTAuOTUgMS4xMyAxNC40MiAxLjFoLjA0YzIgMCA1LjYyIDEuNTUgNy42NCAxMS44MnYuMDJjLjI3IDEuNTYuNDkgMy4zMy42IDUuMjFMMzguMzggMi40OEgzNC43VjFINDFtMS0xaC04LjN2My40OGgyLjI2TDIzLjUzIDE1LjkyYy0uMTEtMS4wOS0uMjYtMi4xNC0uNDQtMy4xNUMyMS4wMiAyLjI5IDE3LjI2LjEgMTQuNDYuMWMtNC4wOS4wNC03LjMzIDQuNjgtOC43MSAxMi40MS0uMzkgMS45OS0uNjMgNC4zMS0uNzEgNi43NUgwdjMuNDhoNS4wNGMuMDggMi4zNC4zMSA0LjU4LjY3IDYuNTEuOTYgNS41NyAzLjUxIDExLjgyIDcuOCAxMi42LjI4LjA1LjU3LjA4Ljg2LjA4IDEuNTQgMCAzLjg0LS43OCA2LjAzLTQuNDh2LS4wMWwuMDMtLjA1YzEuNjItMy4wNiAyLjY5LTYuOTQgMy4xNC0xMS4zM2wxMi40NSAxMi40NUgzMy43VjQySDQydi04LjNoLTMuNDh2Mi40TDI1LjE2IDIyLjc0aDEwLjUzbC0uOTIuOTItLjcxLjcxLjcxLjcxIDEuMDUgMS4wNS43MS43MS43MS0uNzEgNC40My00LjQzLjcyLS43Mi0uNzQtLjcxLTQuNDQtNC4yMy0uNzItLjY5LS42OS43Mi0xLjAyIDEuMDctLjY5LjcyLjcyLjY5Ljc0LjdIMjUuMTFsMTMuNDEtMTMuNFY4LjNINDJWMHoiIHRyYW5zZm9ybT0icm90YXRlKDkwIDIxIDIxKSIvPjxnPjxwYXRoIGQ9Ik0xNC40NiAyLjk1aC0uMDJjLTEuOTcuMDItNC42NiAzLjE4LTUuODggMTAuMDZ2LjAyYy0uNDIgMi4xNy0uNjUgNC42OC0uNjkgNy4yM2g4Ljg4bC0yLjc0LTIuNjEgMS4wMi0xLjA3IDQuNjIgNC40MS00LjQzIDQuNDItMS4wNS0xLjA1IDIuNjItMi42Mkg3Ljg2Yy4wNCAyLjQ2LjI1IDQuODkuNjUgNi45OS45NiA1LjU3IDMuMjcgOS45IDUuNTEgMTAuMzEuMTEuMDIuMjMuMDMuMzQuMDMgMS40MyAwIDIuNzEtMS42MyAzLjU2LTMuMDYgMy4yOS02LjI1IDMuNTYtMTUuOTIgMi4zNi0yMi43NS0xLjUtNy42LTMuOTktMTAuMzEtNS44Mi0xMC4zMXoiIGZpbGw9Im5vbmUiIHRyYW5zZm9ybT0icm90YXRlKDkwIDIxIDIxKSIvPjxwYXRoIGQ9Ik00MSA3LjNWMWgtNi4zdjEuNDhoMy42N0wyMi43MSAxOC4xNWMtLjExLTEuODgtLjMyLTMuNjUtLjYtNS4yMXYtLjAyQzIwLjA4IDIuNjUgMTYuNDYgMS4xIDE0LjQ2IDEuMWgtLjA0QzEwLjk1IDEuMTMgOCA1LjU3IDYuNzQgMTIuNjhjLS40NCAyLjI3LS42OCA0LjkxLS43MiA3LjU4SDF2MS40OGg1LjAxYy4wNCAyLjU4LjI2IDUuMTIuNjggNy4zMi44NiA1LjAxIDMuMjEgMTEuMTEgNi45OSAxMS44MS4yMS4wNC40NC4wNi42OC4wNiAxLjQxIDAgMy4yOC0uOCA1LjE3LTMuOTlsLjAyLS4wNGMyLjAxLTMuOCAyLjkzLTguNTEgMy4xOC0xMy4wOGwxNS43IDE1LjdIMzQuN1Y0MUg0MXYtNi4zaC0xLjQ4djMuODFMMjIuNzkgMjEuNzl2LS4wNUgzOC4xbC0yLjYyIDIuNjIgMS4wNSAxLjA1IDQuNDMtNC40My00LjQ0LTQuMjMtMS4wMiAxLjA3IDIuNTUgMi40M0gyMi43OXYtLjA5TDM5LjUyIDMuNDRWNy4zSDQxek0xNy45MiAzNi4wMmMtLjg1IDEuNDMtMi4xMyAzLjA2LTMuNTYgMy4wNi0uMTEgMC0uMjMtLjAxLS4zNC0uMDMtMi4yMy0uNDEtNC41NS00Ljc0LTUuNTEtMTAuMzEtLjQtMi4xMS0uNjEtNC41NC0uNjUtNi45OWg4Ljk0bC0yLjYyIDIuNjIgMS4wNSAxLjA1TDE5LjY2IDIxbC00LjYyLTQuNDEtMS4wMiAxLjA3IDIuNzQgMi42MWgtOC45Yy4wNC0yLjU1LjI3LTUuMDYuNjktNy4yM3YtLjAyYzEuMjItNi44OSAzLjkxLTEwLjA0IDUuODgtMTAuMDZoLjAyYzEuODMgMCA0LjMyIDIuNzEgNS44MyAxMC4zMiAxLjIgNi44MS45MyAxNi40OS0yLjM2IDIyLjc0eiIgZmlsbD0iI2JiNTAxYyIgdHJhbnNmb3JtPSJyb3RhdGUoOTAgMjEgMjEpIi8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-oke-cluster {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi42NyA0MS41QzEuNDggNDEuNS41IDQwLjUzLjUgMzkuMzNWMi42N0MuNSAxLjQ4IDEuNDcuNSAyLjY3LjVoMzYuNjdjMS4xOSAwIDIuMTcuOTcgMi4xNyAyLjE3djM2LjY3YzAgMS4xOS0uOTcgMi4xNy0yLjE3IDIuMTdIMi42N3oiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0zOS4zMyAxYy45MiAwIDEuNjcuNzUgMS42NyAxLjY3djM2LjY3YzAgLjkyLS43NSAxLjY3LTEuNjcgMS42N0gyLjY3QzEuNzUgNDEgMSA0MC4yNSAxIDM5LjMzVjIuNjdDMSAxLjc1IDEuNzUgMSAyLjY3IDFoMzYuNjZtMC0xSDIuNjdDMS4yIDAgMCAxLjIgMCAyLjY3djM2LjY3QzAgNDAuOCAxLjIgNDIgMi42NyA0MmgzNi42N0M0MC44IDQyIDQyIDQwLjggNDIgMzkuMzNWMi42N0M0MiAxLjIgNDAuOCAwIDM5LjMzIDB6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMzkuMzMgMUgyLjY3QzEuNzUgMSAxIDEuNzUgMSAyLjY3djM2LjY3YzAgLjkxLjc1IDEuNjYgMS42NyAxLjY2aDM2LjY3Yy45MiAwIDEuNjctLjc1IDEuNjctMS42N1YyLjY3QzQxIDEuNzUgNDAuMjUgMSAzOS4zMyAxem0uMTkgMzguMzNjMCAuMS0uMDguMTktLjE5LjE5SDIuNjdhLjE5LjE5IDAgMDEtLjE5LS4xOVYyLjY3YzAtLjEuMDgtLjE5LjE5LS4xOWgzNi42N2MuMSAwIC4xOS4wOC4xOS4xOXYzNi42NnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0yMC4zNSA1LjQ0aC04Ljg5djguODloOC44OVY1LjQ0em0tMS40OCA3LjQxaC01LjkzVjYuOTNoNS45M3Y1Ljkyek0zMC4zNSA1LjQ0aC04Ljg5djguODloOC44OVY1LjQ0em0tMS40OCA3LjQxaC01LjkzVjYuOTNoNS45M3Y1Ljkyek0xOC4wNCAxNi45M2g1LjkydjIuMzRsMS40OC4zN3YtNC4yaC04Ljg4djQuMmwxLjQ4LS4zN3pNMjguMDQgMTYuOTNoNS45MnY0LjgybDEuNDguMzd2LTYuNjhoLTguODh2NC40OGwxLjQ4LjM2ek04LjA0IDE2LjkzaDUuOTJ2My4zNWwxLjQ4LS4zNnYtNC40OEg2LjU2djYuNjhsMS40OC0uMzd6TTIxIDE5LjY4TDUuMTggMjMuNjFsLjE4LjcyYzEuNzggNy4yIDguMjEgMTIuMjMgMTUuNjQgMTIuMjNzMTMuODYtNS4wMyAxNS42NC0xMi4yM2wuMTgtLjcyTDIxIDE5LjY4em0tLjc0IDEuNzF2MTMuNjZjLTYuMTgtLjMtMTEuNDgtNC40NS0xMy4yNy0xMC4zN2wxMy4yNy0zLjI5ek0yMSAzNS42M3ptLjc0LS41OFYyMS4zOWwxMy4yNyAzLjI5YTE0LjU5NSAxNC41OTUgMCAwMS0xMy4yNyAxMC4zN3oiLz48L2c+PC9zdmc+");
+}
+
+.oci-oke-node-pool, .oci-node-pool {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojYmI1MDFjfTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi42NyA0MS41QzEuNDggNDEuNS41IDQwLjUzLjUgMzkuMzNWMi42N0MuNSAxLjQ4IDEuNDcuNSAyLjY3LjVoMzYuNjdjMS4xOSAwIDIuMTcuOTcgMi4xNyAyLjE3djM2LjY3YzAgMS4xOS0uOTcgMi4xNy0yLjE3IDIuMTdIMi42N3oiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0zOS4zMyAxYy45MiAwIDEuNjcuNzUgMS42NyAxLjY3djM2LjY3YzAgLjkyLS43NSAxLjY3LTEuNjcgMS42N0gyLjY3QzEuNzUgNDEgMSA0MC4yNSAxIDM5LjMzVjIuNjdDMSAxLjc1IDEuNzUgMSAyLjY3IDFoMzYuNjZtMC0xSDIuNjdDMS4yIDAgMCAxLjIgMCAyLjY3djM2LjY3QzAgNDAuOCAxLjIgNDIgMi42NyA0MmgzNi42N0M0MC44IDQyIDQyIDQwLjggNDIgMzkuMzNWMi42N0M0MiAxLjIgNDAuOCAwIDM5LjMzIDB6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMzkuMzMgMUgyLjY3QzEuNzUgMSAxIDEuNzUgMSAyLjY3djM2LjY3YzAgLjkxLjc1IDEuNjYgMS42NyAxLjY2aDM2LjY3Yy45MiAwIDEuNjctLjc1IDEuNjctMS42N1YyLjY3QzQxIDEuNzUgNDAuMjUgMSAzOS4zMyAxem0uMTkgMzguMzNjMCAuMS0uMDguMTktLjE5LjE5SDIuNjdhLjE5LjE5IDAgMDEtLjE5LS4xOVYyLjY3YzAtLjEuMDgtLjE5LjE5LS4xOWgzNi42N2MuMSAwIC4xOS4wOC4xOS4xOXYzNi42NnoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0yNy45NCA4LjdIMTQuMDZ2Ny40MWgxMy44OVY4Ljd6bS0xLjQ4IDUuOTNIMTUuNTR2LTQuNDRoMTAuOTN2NC40NHoiLz48Y2lyY2xlIGNsYXNzPSJwcmVmaXhfX3N0MSIgY3g9IjI0LjI0IiBjeT0iMTIuNCIgcj0iLjc0Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMjEuNTYgMjQuNjNoMTMuODl2LTcuNDFIMjEuNTZ2Ny40MXptMS40OC01LjkzaDEwLjkzdjQuNDRIMjMuMDRWMTguN3oiLz48Y2lyY2xlIGNsYXNzPSJwcmVmaXhfX3N0MSIgY3g9IjMxLjc0IiBjeT0iMjAuOTIiIHI9Ii43NCIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTIwLjQ0IDE3LjIySDYuNTZ2Ny40MWgxMy44OXYtNy40MXptLTEuNDggNS45Mkg4LjA0VjE4LjdoMTAuOTN2NC40NHoiLz48Y2lyY2xlIGNsYXNzPSJwcmVmaXhfX3N0MSIgY3g9IjE2Ljc0IiBjeT0iMjAuOTIiIHI9Ii43NCIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTM2LjU2IDI4Ljc2Yy0xLjcuOTMtNi41OCAzLjA2LTE1LjQ3IDMuMDYtMTAuMTkgMC0xNC4zMi0xLjk5LTE1LjY0LTIuODd2LTQuMzJIMy45NnY1LjA2bC4yOS4yMmMxLjMyIDEuMDIgNS41OSAzLjM5IDE2Ljg0IDMuMzkgMTAuMDIgMCAxNS4yMy0yLjY2IDE2LjU5LTMuNDhsLjM2LS4yMnYtNC45OGgtMS40OHY0LjE0eiIvPjwvZz48L3N2Zz4=");
+}
+
+.oci-network-security-group {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDMxLjc3IDQxLjExIj48cGF0aCBkPSJNMTUuNjcgNDAuNDdDMTUuMDUgNDAuMTguNSAzMy4zNi41IDI2LjA2VjQuNzJIMWMxMC4xMSAwIDE0LjM4LTMuMzcgMTQuMzgtNC43MmgxYzAgMSAzLjYgNC43MSAxNC4zOSA0LjcxaC41djIxLjM1YzAgNy4zLTE0LjU2IDE0LjEyLTE1LjE4IDE0LjQxbC0uMjEuMDl6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTE1Ljg4IDBjMCAxLjQ5IDQuMSA1LjIxIDE0Ljg5IDUuMjF2MjAuODVjMCA3LjA3LTE0Ljg5IDE0LTE0Ljg5IDE0UzEgMzMuMTMgMSAyNi4wNlY1LjIyYzEwLjQyIDAgMTQuODgtMy41MyAxNC44OC01LjIybTEgMGgtMkMxNC44NC44NyAxMS4xMSA0LjIyIDEgNC4yMkgwdjIxLjg0YzAgNy42MiAxNC44MyAxNC41NyAxNS40NiAxNC44NmwuNDIuMTkuNDItLjE5Yy42My0uMjkgMTUuNDctNy4yNCAxNS40Ny0xNC44NlY0LjIyaC0xQzIwLjc1IDQuMjIgMTcgLjg5IDE2Ljg4IDB6IiBmaWxsPSIjZmZmIi8+PHBhdGggZD0iTTE1LjE0IDE0LjUyVjMuMzdBMTIuNjMgMTIuNjMgMCAwMTEzIDQuNiAyNy42MyAyNy42MyAwIDAxMi40OSA2LjY5VjE5aDEyLjY1ek0yLjQ5IDIwLjQ4djUuNThjMCAyLjM0IDIuNCA1LjMyIDYuNzcgOC4zOUE1NC42MiA1NC42MiAwIDAwMTUuMTQgMzhWMjAuNDh6TTE2LjYzIDE5aDEyLjY1VjYuNjlhMjcgMjcgMCAwMS0xMC42My0yLjE3IDEyIDEyIDAgMDEtMi0xLjE4VjE5ek0xNS44OCAzOC4zNmgtLjA4ek0xNi42MyAyMC40OFYzOGE1My42OSA1My42OSAwIDAwNS44Ny0zLjUzYzQuMzctMy4wNyA2Ljc4LTYuMDUgNi43OC04LjM5di01LjZIMTYuNjN6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTE1Ljg4IDBjMCAxLjY4LTQuNDYgNS4yMS0xNC44OCA1LjIxdjIwLjg1YzAgNy4wNyAxNC44OCAxNCAxNC44OCAxNHMxNC44OS02Ljg4IDE0Ljg5LTEzLjk1VjUuMjJDMjAgNS4yMiAxNS44OCAxLjUgMTUuODggMHptLjc1IDMuMzNhMTIgMTIgMCAwMDIgMS4xOCAyNyAyNyAwIDAwMTAuNjUgMi4xOFYxOUgxNi42M3pNMi40OSA2LjY5QTI3LjYzIDI3LjYzIDAgMDAxMyA0LjZhMTIuNjMgMTIuNjMgMCAwMDIuMTgtMS4yM1YxOUgyLjQ5em02Ljc3IDI3Ljc2Yy00LjM3LTMuMDctNi43Ny02LjA1LTYuNzctOC4zOXYtNS41OGgxMi42NVYzOGE1NC42MiA1NC42MiAwIDAxLTUuODgtMy41NXptNi42MiAzLjkxaC4wOHptMTMuNC0xMi4zYzAgMi4zNC0yLjQxIDUuMzItNi43OCA4LjM5QTUzLjY5IDUzLjY5IDAgMDExNi42MyAzOFYyMC40OGgxMi42NXoiIGZpbGw9IiMyYzU5NjciLz48L3N2Zz4=");
+}
+
+.oci-nosql-database, .oci-nosql-table {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzNy44IDQyIj48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMTguOSA0MS41QzE3IDQxLjUuNSA0MS4zLjUgMzYuMVY2LjV2LS4yLS4yQy41IDIgMTAuNC41IDE4LjkuNVMzNy4zIDIgMzcuMyA2LjF2MzBjMCA1LjItMTYuNSA1LjQtMTguNCA1LjR6Ii8+PHBhdGggZD0iTTE4LjkgMWM4LjYgMCAxNy45IDEuNiAxNy45IDUuMXYzMGMwIDMuOS0xMS43IDQuOS0xNy45IDQuOVMxIDQwIDEgMzYuMVY2LjV2LS4yLS4yQzEgMi42IDEwLjMgMSAxOC45IDFtMC0xQzE1LjggMCAwIC4zIDAgNi4xdjMwQzAgNDEuNyAxNS44IDQyIDE4LjkgNDJjMy4yIDAgMTguOS0uMyAxOC45LTUuOVY2LjV2LS4yLS4yQzM3LjguMyAyMi4xIDAgMTguOSAweiIvPjwvZz48ZyBmaWxsPSIjMmM1OTY3Ij48cGF0aCBkPSJNMjMuOCAyOS4zYy0xLjYuMS0zLjIuMi00LjkuMnMtMy4zLS4xLTQuOS0uMlYzMWMxLjguMSAzLjUuMiA0LjkuMnMzLjEtLjEgNC45LS4ydi0xLjd6TTE0IDIxLjJjMS44LjEgMy41LjIgNC45LjJzMy4xLS4xIDQuOS0uMnYtMS43Yy0xLjYuMS0zLjIuMi00LjkuMnMtMy4zLS4xLTQuOS0uMnYxLjd6Ii8+PHBhdGggZD0iTTM2LjggNi4xYzAtMy41LTkuMy01LjEtMTcuOS01LjFTMSAyLjYgMSA2LjF2MzBDMSA0MCAxMi43IDQxIDE4LjkgNDFzMTcuOS0xIDE3LjktNC45VjYuNXYtLjItLjJ6bS02IDMyYy0zLjIuOC03LjQgMS4yLTExLjkgMS4ycy04LjctLjQtMTEuOS0xLjJjLTMuNi0uOS00LjQtMS44LTQuNC0yLjF2LTcuNmMxLjUuOSAzLjcgMS41IDYuMiAxLjl2LTEuN2MtLjctLjEtMS4zLS4yLTEuOS0uNC0zLjYtLjktNC40LTEuOC00LjQtMi4xdi03LjVjMS41LjkgMy43IDEuNSA2LjIgMS45di0xLjdjLS43LS4xLTEuMy0uMi0xLjktLjQtMy42LS45LTQuNC0xLjgtNC40LTIuMVY4LjRjMy4xIDEuOSA5LjggMi43IDE2LjIgMi43czEzLjItLjkgMTYuMi0yLjd2OC4xYzAgLjMtLjggMS4yLTQuNCAyLjEtLjYuMS0xLjIuMy0xLjkuNHYxLjdjMi41LS40IDQuNy0xIDYuMi0xLjl2Ny41YzAgLjMtLjggMS4yLTQuNCAyLjEtLjYuMS0xLjIuMy0xLjkuNHYxLjdjMi41LS40IDQuNy0xIDYuMi0xLjl2Ny42Yy41LjEtLjMgMS4xLTMuOCAxLjl6TTE4LjkgMi43YzQuNSAwIDguNy40IDExLjkgMS4yIDMuNi45IDQuNCAxLjkgNC40IDIuMnMtLjggMS4zLTQuNCAyLjJjLTMuMi43LTcuNCAxLjEtMTEuOSAxLjFTMTAuMiA5IDcgOC4yYy0zLjUtLjktNC4zLTEuOC00LjMtMi4xUzMuNSA0LjggNyAzLjljMy4yLS44IDcuNC0xLjIgMTEuOS0xLjJ6Ii8+PHBhdGggZD0iTTEzLjYgMzUuNGMuNiAwIDEuMi0uMSAxLjctLjJ2LTIuMWMtLjMuMS0uNy4xLTEgLjEtLjYgMC0xLS4xLTEuMi0uNC0uMi0uMy0uMy0uNy0uMy0xLjN2LTUuMWwtMi4yLTEuNyAyLjItMS43di01YzAtLjYuMS0xIC4zLTEuMy4yLS4zLjYtLjQgMS4yLS40LjMgMCAuNiAwIDEgLjF2LTIuMWMtLjUtLjEtMS4xLS4yLTEuNy0uMi0yLjMgMC0zLjQgMS4yLTMuNCAzLjZ2NC43bC0yIDEuNnYxLjZsMS45IDEuNnY0LjdjLjEgMi4zIDEuMiAzLjUgMy41IDMuNXpNMjQuMiAxNC4yYy0uNiAwLTEuMi4xLTEuNy4ydjIuMWMuMy0uMS43LS4xIDEtLjEuNiAwIDEgLjEgMS4yLjQuMi4zLjMuNy4zIDEuM3Y1LjFsMi4yIDEuNy0yLjIgMS43djUuMWMwIC42LS4xIDEtLjMgMS4zLS4yLjMtLjYuNC0xLjIuNC0uMyAwLS42IDAtMS0uMXYyLjFjLjUuMSAxLjEuMiAxLjcuMiAyLjMgMCAzLjQtMS4yIDMuNC0zLjZ2LTQuN2wxLjktMS42VjI0bC0xLjktMS42di00LjdjLjEtMi40LTEuMS0zLjUtMy40LTMuNXoiLz48L2c+PC9zdmc+");
+}
+
+.oci-bucket, .oci-object-storage-bucket {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMi42NyA0MS41QzEuNDggNDEuNS41IDQwLjUzLjUgMzkuMzNWMi42N0MuNSAxLjQ3IDEuNDcuNSAyLjY3LjVoMzYuNjdjMS4xOSAwIDIuMTcuOTcgMi4xNyAyLjE3djM2LjY3YzAgMS4yLS45NyAyLjE3LTIuMTcgMi4xN0gyLjY3eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTM5LjMzIDFjLjkyIDAgMS42Ny43NSAxLjY3IDEuNjd2MzYuNjdjMCAuOTItLjc1IDEuNjctMS42NyAxLjY3SDIuNjdDMS43NSA0MSAxIDQwLjI1IDEgMzkuMzNWMi42N0MxIDEuNzUgMS43NSAxIDIuNjcgMWgzNi42Nm0wLTFIMi42N0MxLjIgMCAwIDEuMiAwIDIuNjd2MzYuNjdDMCA0MC44IDEuMiA0MiAyLjY3IDQyaDM2LjY3QzQwLjggNDIgNDIgNDAuOCA0MiAzOS4zM1YyLjY3QzQyIDEuMiA0MC44IDAgMzkuMzMgMHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0zMC40NCAxMS42NWwyLjcxIDQuNzItMi43NCA0LjcyaC01LjQ1bC0yLjcxLTQuNzIgMi43NC00LjcyaDUuNDVtLjg2LTEuNDhoLTcuMTZsLTMuNTkgNi4yIDMuNTcgNi4yaDcuMTZsMy41OS02LjItMy41Ny02LjJ6TTIwLjcyIDI1Ljk0YTQuNjkgNC42OSAwIDExLTQuNjkgNC42OWMuMDEtMi41OCAyLjExLTQuNjkgNC42OS00LjY5bTAtMS40OGE2LjE2IDYuMTYgMCAwMC02LjE3IDYuMTdjMCAzLjQyIDIuNzkgNi4xNyA2LjE3IDYuMTcgMy4zOSAwIDYuMTctMi43NiA2LjE3LTYuMTcuMDEtMy40MS0yLjc1LTYuMTctNi4xNy02LjE3ek0xMy42IDEyLjgzbDQuMzggNy45M0g5LjI2bDQuMzQtNy45M20tLjAxLTMuMDhMNi43NiAyMi4yNGgxMy43MkwxMy41OSA5Ljc1eiIvPjxnPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTM5LjMzIDQxSDIuNjdDMS43NSA0MSAxIDQwLjI1IDEgMzkuMzNWNC45OWg0MHYzNC4zNWMwIC45MS0uNzUgMS42Ni0xLjY3IDEuNjZ6TTIuNDggNi40N3YzMi44N2MwIC4xLjA4LjE5LjE5LjE5aDM2LjY3Yy4xIDAgLjE5LS4wOC4xOS0uMTlWNi40N0gyLjQ4eiIvPjwvZz48Zz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik00MSAzLjg3SDF2LTEuMkMxIDEuNzUgMS43NSAxIDIuNjcgMWgzNi42N2MuOTEgMCAxLjY2Ljc1IDEuNjYgMS42N3YxLjJ6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-policy {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQxLjk1IDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNLjUgNDEuNXYtMS41NWwxLjQ1LS43MnYtNC42YzAtMS4zNiAxLjEtMi40NiAyLjQ2LTIuNDZoMTMuMTJjMS4zNiAwIDIuNDYgMS4xIDIuNDYgMi40NnY0LjZsMS4yNC43NXYxLjUySC41eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTE3LjUzIDMyLjY3YzEuMDggMCAxLjk2Ljg4IDEuOTYgMS45NnY0Ljg5aC4wMWwxLjIzLjc0VjQxSDF2LS43NGwxLjQ1LS43MnYtNC45MWMwLTEuMDguODgtMS45NiAxLjk2LTEuOTZoMTMuMTJtMC0xSDQuNDFjLTEuNjMgMC0yLjk2IDEuMzMtMi45NiAyLjk2djQuMjlsLS45LjQ1LS41NS4yN1Y0MmgyMS43M3YtMi4zMWwtLjQ5LS4yOS0uNzYtLjQ2di00LjMyYy4wMS0xLjYzLTEuMzItMi45NS0yLjk1LTIuOTV6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMzQuNjcgMzguNTVsLTEwLjgxLTEwLjgtNS43LTYuMy0yLjI1IDIuMjVjLjQuODIuMjUgMS44Mi0uNDEgMi40OGwtMS4xMSAxLjExYy0uNDEuNDEtLjk1LjYzLTEuNTMuNjNzLTEuMTItLjIzLTEuNTMtLjYzbC04Ljg3LTguODdjLS44NC0uODQtLjg0LTIuMjIgMC0zLjA2bDEuMTEtMS4xMWMuNDEtLjQxLjk1LS42MyAxLjUzLS42My4zMyAwIC42Ni4wOC45NS4yMmw5LjExLTkuMTFjLS40LS44Mi0uMjUtMS44Mi40MS0yLjQ4bDEuMTEtMS4xMWMuNDEtLjQxLjk1LS42MyAxLjUzLS42M3MxLjEyLjIzIDEuNTMuNjNsOC44NyA4Ljg3Yy44NC44NC44NCAyLjIyIDAgMy4wNmwtMS4xMSAxLjExYy0uNDEuNDEtLjk1LjYzLTEuNTMuNjMtLjMzIDAtLjY2LS4wOC0uOTUtLjIybC0yLjIzIDIuMjMgNi40NSA1LjU1IDEwLjc3IDEwLjc3IDEuMzYgMS43OS0uNjUgMS45NC0yLjQxIDIuNDEtMS45NC42NS0xLjctMS4zOHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0xOC4yMSAxYy40MyAwIC44NS4xNiAxLjE4LjQ5bDguODcgOC44N2MuNjUuNjUuNjUgMS43MSAwIDIuMzZsLTEuMTEgMS4xMWExLjY3NCAxLjY3NCAwIDAxLTIuMjEuMTRsLTIuODkgMi44OSA2Ljg2IDUuOUwzOS42NSAzMy41bDEuMTYgMS41My0uNTMgMS41Ny0yLjI0IDIuMjQtMS41Ny41My0xLjQ5LTEuMi0xMC43Ni0xMC43OC02LjA0LTYuNjctMi45IDIuOWMuNTEuNjUuNDcgMS42LS4xMyAyLjJsLTEuMTEgMS4xMWMtLjMyLjMyLS43NS40OS0xLjE4LjQ5cy0uODUtLjE2LTEuMTgtLjQ5bC04Ljg3LTguODdjLS42NS0uNjUtLjY1LTEuNzEgMC0yLjM2bDEuMTEtMS4xMWExLjY3NCAxLjY3NCAwIDAxMi4yMS0uMTRsOS42Ny05LjY3Yy0uNTEtLjY1LS40Ny0xLjYuMTMtMi4ybDEuMTEtMS4xMWMuMzEtLjMxLjc0LS40NyAxLjE3LS40N20wLTFjLS43MSAwLTEuMzguMjgtMS44OS43OGwtMS4xMSAxLjExYy0uNzMuNzMtLjk1IDEuNzktLjY1IDIuNzJsLTguNjUgOC42NWMtLjI3LS4wOS0uNTUtLjEzLS44My0uMTMtLjcxIDAtMS4zOC4yOC0xLjg4Ljc4TDIuMSAxNWEyLjY2OCAyLjY2OCAwIDAwMCAzLjc3bDguODcgOC44N2MuNS41IDEuMTcuNzggMS44OS43OC43MSAwIDEuMzgtLjI4IDEuODktLjc4bDEuMTEtMS4xMWMuNzMtLjczLjk1LTEuNzkuNjUtMi43MmwxLjY1LTEuNjUgNS4zMyA1Ljg5IDEwLjggMTAuODEuMDQuMDQuMDQuMDMgMS40OSAxLjIuNDMuMzQuNTItLjE3IDEuNTctLjUzLjIyLS4wNy4xNy0uMTcgMi4yNC0yLjI0LjE3LS4xNy4wNy0uMjIuNTMtMS41Ny4xNy0uNS0uMzItLjQyLTEuMTYtMS41My0uMDQtLjA1LS4wNS0uMDUtMTAuNzYtMTAuNzQtLjAzLS4wMy0uMDMtLjAyLTYuMDQtNS4yIDEuNjItMS42MmEyLjY4OSAyLjY4OSAwIDAwMi43Mi0uNjVsMS4xMS0xLjExYTIuNjY4IDIuNjY4IDAgMDAwLTMuNzdMMjAuMS43N0MxOS41OS4yOCAxOC45MiAwIDE4LjIxIDB6Ii8+PC9nPjxnPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTE5LjQ5IDM5LjUyaC4xOEgyLjQ4aC4wM0wxIDQwLjI2VjQxaDE5Ljcxdi0uNzR6TTE5LjQ5IDM0LjYzYzAtMS4wOC0uODgtMS45Ni0xLjk2LTEuOTZINC40MWMtMS4wOCAwLTEuOTYuODgtMS45NiAxLjk2djMuNzdsMTcuMDQuMDF2LTMuNzh6bS0xLjQ4IDIuM2wtMTQuMDgtLjAxdi0yLjI5YzAtLjI2LjIyLS40OC40OC0uNDhoMTMuMTJjLjI2IDAgLjQ4LjIyLjQ4LjQ4djIuM3pNNDAuODEgMzUuMDJsLS41Mi0uNTItNC4zNCA0LjM0LjUyLjUyIDEuNTctLjUyIDIuMjUtMi4yNXpNMjguOTEgMjIuNzVsLTYuODYtNS45IDIuODktMi44OWMuMy4yNC42Ni4zNSAxLjAzLjM1LjQzIDAgLjg1LS4xNiAxLjE4LS40OWwxLjExLTEuMTFjLjY1LS42NS42NS0xLjcxIDAtMi4zNmwtOC44Ny04Ljg3Yy0uNjUtLjY1LTEuNzEtLjY1LTIuMzYgMGwtMS4xMSAxLjExYy0uNi42LS42NCAxLjU1LS4xMyAyLjJsLTkuNjcgOS42N2MtLjY1LS41MS0xLjYtLjQ3LTIuMi4xM0wyLjgxIDE1LjdjLS42NS42NS0uNjUgMS43MSAwIDIuMzZsOC44NyA4Ljg3Yy4zMi4zMi43NS40OSAxLjE4LjQ5cy44NS0uMTYgMS4xOC0uNDlsMS4xMS0xLjExYy42LS42LjY0LTEuNTUuMTMtMi4ybDIuOS0yLjkgNi4wNCA2LjY3IDEwLjc3IDEwLjc3IDQuNjctNC42Ny0xMC43NS0xMC43NHpNMTYuOTcgMy42NGwxLjExLTEuMTFjLjA0LS4wNC4wOC0uMDUuMTMtLjA1cy4wOS4wMi4xMy4wNWw4Ljg3IDguODdjLjA3LjA3LjA3LjE5IDAgLjI2bC0xLjExIDEuMTFjLS4wNy4wNy0uMTkuMDctLjI2IDBMMTYuOTcgMy45YS4xODcuMTg3IDAgMDEwLS4yNnptLTIuODggMjEuMTRsLTEuMTEgMS4xMWMtLjA3LjA3LS4xOS4wNy0uMjYgMGwtOC44Ny04Ljg3YS4xODcuMTg3IDAgMDEwLS4yNmwxLjExLTEuMTFjLjA0LS4wNC4wOC0uMDUuMTMtLjA1cy4wOS4wMi4xMy4wNWw4Ljg3IDguODdjLjA4LjA3LjA4LjE5IDAgLjI2em0uMTUtMi4yMWwtNy4wNi03LjA2IDkuNjUtOS42NSA3LjA2IDcuMDYtMi45NiAyLjk2LTMuNzUgMy43NS0yLjk0IDIuOTR6bTExLjA2IDMuODJsLTYuMDctNi43MSAxLjc4LTEuNzggNi44OCA1LjkyIDkuNjggOS42OC0yLjU4IDIuNTgtOS42OS05LjY5eiIvPjwvZz48L3N2Zz4=");
+}
+
+.oci-remote-peering-connection {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDE3LjQxIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMzAuMTYgNi4xYTE0LjU3MiAxNC41NzIgMCAwMC05LjIzLTMuMjljLTMuMzQgMC02LjU5IDEuMTQtOS4xNiAzLjIybC0uMzQuMjctLjMyLS4zYy0uMy0uMjgtLjYzLS41NC0uOTgtLjc1bC0uNTgtLjM1LjUzLS40NGMuNDItLjM1Ljg0LS42NyAxLjI2LS45NkMxNC4xNyAxLjU0IDE3LjQ4LjUxIDIwLjkzLjUxYTE2LjcyNSAxNi43MjUgMCAwMTEwLjkxIDQuMDFsLjUxLjQ0LS41Ny4zN2MtLjM0LjIyLS42Ny40OC0uOTcuNzdsLS4zMS4yOS0uMzQtLjI5eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTIwLjkyIDFjMy4zNSAwIDYuNTcgMSA5LjMxIDIuOS40NS4zMS44Ny42NCAxLjI5Ljk5LS4zNy4yNC0uNzIuNTItMS4wNC44My0yLjYzLTIuMTYtNS45Ny0zLjQtOS41NS0zLjQtMy41NSAwLTYuODYgMS4yMi05LjQ3IDMuMzMtLjMyLS4zLS42OC0uNTgtMS4wNi0uODEuMzktLjMzLjgtLjY0IDEuMjItLjkzQzE0LjM2IDIgMTcuNTggMSAyMC45MiAxbTAtMUExNy4yNDUgMTcuMjQ1IDAgMDA5Ljc1IDQuMDdsLTEuMDUuODkgMS4xNy43M2MuMzIuMi42Mi40My45LjdsLjY0LjYuNjgtLjU1YzIuNDgtMi4wMSA1LjYyLTMuMTEgOC44NC0zLjExIDMuMjYgMCA2LjQyIDEuMTMgOC45MiAzLjE3bC42OS41Ny42NC0uNjJjLjI3LS4yNi41Ny0uNS44OS0uNzFMMzMuMTkgNWwtMS4wMy0uODdjLS40NS0uMzgtLjkxLS43My0xLjM2LTEuMDVBMTcuMjIyIDE3LjIyMiAwIDAwMjAuOTIgMHoiLz48Y2lyY2xlIGNsYXNzPSJwcmVmaXhfX3N0MCIgY3g9IjYuODEiIGN5PSIxMC42IiByPSI2LjMxIi8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNNi44MSA0LjhjMy4yIDAgNS44MSAyLjYxIDUuODEgNS44MXMtMi42MSA1LjgxLTUuODEgNS44MUMzLjYxIDE2LjQxIDEgMTMuODEgMSAxMC42czIuNjEtNS44IDUuODEtNS44bTAtMUMzLjA1IDMuOCAwIDYuODUgMCAxMC42czMuMDUgNi44MSA2LjgxIDYuODFjMy43NSAwIDYuODEtMy4wNSA2LjgxLTYuODEgMC0zLjc1LTMuMDYtNi44LTYuODEtNi44eiIvPjxnPjxjaXJjbGUgY2xhc3M9InByZWZpeF9fc3QwIiBjeD0iMzUuMTkiIGN5PSIxMC42IiByPSI2LjMxIi8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMzUuMTkgNC44YzMuMiAwIDUuODEgMi42IDUuODEgNS44cy0yLjYxIDUuODEtNS44MSA1LjgxLTUuODEtMi42MS01LjgxLTUuODEgMi42MS01LjggNS44MS01LjhtMC0xYy0zLjc1IDAtNi44MSAzLjA1LTYuODEgNi44MSAwIDMuNzUgMy4wNSA2LjgxIDYuODEgNi44MVM0MiAxNC4zNiA0MiAxMC42YzAtMy43NS0zLjA1LTYuOC02LjgxLTYuOHoiLz48L2c+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMzAuMjMgMy45QzI3LjQ5IDIgMjQuMjcgMSAyMC45MiAxcy02LjU3IDEtOS4zMSAyLjljLS40Mi4yOS0uODMuNjEtMS4yMi45My4zOC4yNC43My41MSAxLjA2LjgxIDIuNjEtMi4xMiA1LjkyLTMuMzMgOS40Ny0zLjMzIDMuNTggMCA2LjkyIDEuMjQgOS41NSAzLjQuMzItLjMxLjY3LS41OCAxLjA0LS44My0uNC0uMzQtLjgzLS42Ny0xLjI4LS45OHpNNi44MSA0LjhDMy42MSA0LjggMSA3LjQgMSAxMC42czIuNjEgNS44MSA1LjgxIDUuODEgNS44MS0yLjYxIDUuODEtNS44MS0yLjYxLTUuOC01LjgxLTUuOHptNC40OSA1LjhhNC40OSA0LjQ5IDAgMTEtOC45OCAwIDQuNDkgNC40OSAwIDAxOC45OCAwek0zNS4xOSA0LjhjLTMuMiAwLTUuODEgMi42MS01LjgxIDUuODFzMi42MSA1LjgxIDUuODEgNS44MWMzLjIgMCA1LjgxLTIuNjEgNS44MS01LjgxUzM4LjM5IDQuOCAzNS4xOSA0Ljh6bTAgMTAuMjlhNC40OSA0LjQ5IDAgMTEwLTguOTggNC40OSA0LjQ5IDAgMDEwIDguOTh6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNNS4xIDguODFsLTEuMTkuNTUgMS44MSAzLjg5IDMuODktMS44MS0uNTYtMS4xOS0xLjguODRDNy43NiA5Ljk2IDguNCA4LjkzIDkuMTQgOGMtLjMzLS4zLS43MS0uNTMtMS4xNC0uNjgtLjggMS4wMy0xLjQ4IDIuMTYtMi4wMiAzLjM3TDUuMSA4Ljgxek0zMi43NCAxMC4yNGwtLjU2IDEuMTkgMy44OSAxLjgxIDEuODEtMy44OS0xLjE5LS41Ni0uODUgMS44MmExNi41IDE2LjUgMCAwMC0xLjk2LTMuMjZjLS40MS4xNy0uNzkuNDEtMS4xLjcyLjcyLjkyIDEuMzQgMS45NCAxLjg0IDMuMDRsLTEuODgtLjg3eiIvPjwvZz48Zz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik0zMC4yMyAzLjlDMjcuNDkgMiAyNC4yNyAxIDIwLjkyIDFzLTYuNTcgMS05LjMxIDIuOWMtLjQyLjI5LS44My42MS0xLjIyLjkzLjM4LjI0LjczLjUxIDEuMDYuODEgMi42MS0yLjEyIDUuOTItMy4zMyA5LjQ3LTMuMzMgMy41OCAwIDYuOTIgMS4yNCA5LjU1IDMuNC4zMi0uMzEuNjctLjU4IDEuMDQtLjgzLS40LS4zNC0uODMtLjY3LTEuMjgtLjk4ek02LjgxIDQuOEMzLjYxIDQuOCAxIDcuNCAxIDEwLjZzMi42MSA1LjgxIDUuODEgNS44MSA1LjgxLTIuNjEgNS44MS01LjgxLTIuNjEtNS44LTUuODEtNS44em00LjQ5IDUuOGE0LjQ5IDQuNDkgMCAxMS04Ljk4IDAgNC40OSA0LjQ5IDAgMDE4Ljk4IDB6TTM1LjE5IDQuOGMtMy4yIDAtNS44MSAyLjYxLTUuODEgNS44MXMyLjYxIDUuODEgNS44MSA1LjgxYzMuMiAwIDUuODEtMi42MSA1LjgxLTUuODFTMzguMzkgNC44IDM1LjE5IDQuOHptMCAxMC4yOWE0LjQ5IDQuNDkgMCAxMTAtOC45OCA0LjQ5IDQuNDkgMCAwMTAgOC45OHoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik01LjEgOC44MWwtMS4xOS41NSAxLjgxIDMuODkgMy44OS0xLjgxLS41Ni0xLjE5LTEuOC44NEM3Ljc2IDkuOTYgOC40IDguOTMgOS4xNCA4Yy0uMzMtLjMtLjcxLS41My0xLjE0LS42OC0uOCAxLjAzLTEuNDggMi4xNi0yLjAyIDMuMzdMNS4xIDguODF6TTMyLjc0IDEwLjI0bC0uNTYgMS4xOSAzLjg5IDEuODEgMS44MS0zLjg5LTEuMTktLjU2LS44NSAxLjgyYTE2LjUgMTYuNSAwIDAwLTEuOTYtMy4yNmMtLjQxLjE3LS43OS40MS0xLjEuNzIuNzIuOTIgMS4zNCAxLjk0IDEuODQgMy4wNGwtMS44OC0uODd6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-route-table {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0MiA0MiI+PGcgZmlsbD0iI2ZmZiI+PHBhdGggZD0iTS41LjVoNDF2NDFILjV6Ii8+PHBhdGggZD0iTTQxIDF2NDBIMVYxaDQwbTEtMUgwdjQyaDQyVjB6Ii8+PC9nPjxnIGZpbGw9IiNiYjUwMWMiPjxwYXRoIGQ9Ik0xIDF2NDBoNDBWMUgxem0zOC41IDEyLjhIMTMuNlYyLjVoMjUuOXYxMS4zem0tMzcgMTQuNGg5LjZ2MTEuNEgyLjVWMjguMnptOS42LTI1Ljd2MTEuNEgyLjVWMi41aDkuNnptMCAxMi44djExLjRIMi41VjE1LjNoOS42em0xLjUgMjQuMlYyOC4yaDI1Ljl2MTEuNEgxMy42em0wLTEyLjhWMTUuM2gyNS45djExLjRIMTMuNnoiLz48cGF0aCBkPSJNMTUgMTIuM2gxLjdsLjktMS43LjkgMS43aDEuNmwtMS41LTIuN0wyMCA3LjFoLTEuNmwtLjggMS42LS45LTEuNmgtMS42bDEuNSAyLjV6TTIwLjkgMTEuMWgxLjR2MS4yaC0xLjR6TTI1IDEyLjNsLjktMS43LjkgMS43aDEuNmwtMS42LTIuNyAxLjUtMi41aC0xLjVsLS45IDEuNi0uOS0xLjZoLTEuNmwxLjUgMi41LTEuNSAyLjd6TTI4LjkgMTEuMWgxLjR2MS4yaC0xLjR6TTMyLjcgMTIuM2wuOS0xLjcgMSAxLjdoMS41bC0xLjUtMi43TDM2IDcuMWgtMS41bC0uOSAxLjYtLjktMS42aC0xLjVsMS40IDIuNS0xLjUgMi43ek0zNi42IDExLjFIMzh2MS4yaC0xLjR6TTIwIDIwLjFoLTEuNmwtLjggMS42LS45LTEuNmgtMS42bDEuNSAyLjUtMS42IDIuN2gxLjdsLjktMS43LjkgMS43aDEuNmwtMS41LTIuN3pNMjAuOSAyNGgxLjR2MS4yaC0xLjR6TTI4LjMgMjAuMWgtMS41bC0uOSAxLjYtLjktMS42aC0xLjZsMS41IDIuNS0xLjUgMi43SDI1bC45LTEuNy45IDEuN2gxLjZsLTEuNi0yLjd6TTI4LjkgMjRoMS40djEuMmgtMS40ek0zNiAyMC4xaC0xLjVsLS45IDEuNi0uOS0xLjZoLTEuNWwxLjQgMi41LTEuNSAyLjdoMS42bC45LTEuNyAxIDEuN2gxLjVsLTEuNS0yLjd6TTM2LjYgMjRIMzh2MS4yaC0xLjR6TTIwIDMyLjloLTEuNmwtLjggMS41LS45LTEuNWgtMS42bDEuNSAyLjRMMTUgMzhoMS43bC45LTEuNy45IDEuN2gxLjZsLTEuNS0yLjZ6TTIwLjkgMzYuOGgxLjRWMzhoLTEuNHpNMjguMyAzMi45aC0xLjVsLS45IDEuNS0uOS0xLjVoLTEuNmwxLjUgMi40LTEuNSAyLjdIMjVsLjktMS43LjkgMS43aDEuNmwtMS42LTIuNnpNMjguOSAzNi44aDEuNFYzOGgtMS40ek0zNiAzMi45aC0xLjVsLS45IDEuNS0uOS0xLjVoLTEuNWwxLjQgMi40LTEuNSAyLjdoMS42bC45LTEuNyAxIDEuN2gxLjVsLTEuNS0yLjZ6TTM2LjYgMzYuOEgzOFYzOGgtMS40eiIvPjwvZz48L3N2Zz4=");
+}
+
+.oci-secret {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDI4LjEzIDQyLjEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojYmI1MDFjfTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMTMuNTEgNDEuMjhDNS42MyAzNy4zMy44OSAzMS4xOS41IDI0LjQxVjExLjc3bDUuMjUtMi4yNWMtLjAyLS4yMi0uMDMtLjQ1LS4wMy0uNjdDNS43MiA0LjI1IDkuNDcuNSAxNC4wNy41czguMzUgMy43NSA4LjM1IDguMzVjMCAuMjItLjAxLjQ1LS4wMy42N2w1LjI1IDIuMjV2MTIuNjJjLS4zOSA2LjgtNS4xMyAxMi45NS0xMy4wMSAxNi45bC0uNTUuMjgtLjU3LS4yOXoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDAiIGQ9Ik0xNC4wNyAxYzQuMzMgMCA3Ljg1IDMuNTIgNy44NSA3Ljg1IDAgLjMzLS4wMi42Ni0uMDYuOThsNS4yOCAyLjI2djEyLjI5Yy0uMzcgNi41OS01LjAyIDEyLjU5LTEyLjc0IDE2LjQ1bC0uMzQuMTctLjMzLS4xN0M2LjAyIDM2Ljk3IDEuMzggMzAuOTcgMSAyNC4zOFYxMi4xbDUuMjgtMi4yNmE4LjIyIDguMjIgMCAwMS0uMDYtLjk5QzYuMjIgNC41MiA5Ljc0IDEgMTQuMDcgMW0wLTFDOS4xOSAwIDUuMjIgMy45NyA1LjIyIDguODVjMCAuMTEgMCAuMjMuMDEuMzVMLjYxIDExLjE4bC0uNjEuMjZ2MTIuOTdDLjQgMzEuNCA1LjI0IDM3LjcgMTMuMjkgNDEuNzNsLjMzLjE3LjQ1LjIyLjQ1LS4yMi4zMy0uMTdDMjIuOSAzNy43IDI3Ljc0IDMxLjQgMjguMTQgMjQuNDRWMTEuNDNsLS42MS0uMjYtNC42Mi0xLjk3YzAtLjEyLjAxLS4yMy4wMS0uMzUgMC00Ljg4LTMuOTctOC44NS04Ljg1LTguODV6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMjEuODUgOS44M2MuMDQtLjMzLjA2LS42NS4wNi0uOTggMC00LjMzLTMuNTItNy44NS03Ljg1LTcuODVTNi4yMiA0LjUyIDYuMjIgOC44NWMwIC4zMy4wMi42Ni4wNi45OEwxIDEyLjF2MTIuMjhjLjM4IDYuNTkgNS4wMiAxMi41OSAxMi43MyAxNi40NWwuMzMuMTcuMzMtLjE3YzcuNzItMy44NiAxMi4zNi05Ljg2IDEyLjc0LTE2LjQ1VjEyLjA5bC01LjI4LTIuMjZ6TTcuNjkgOC44NWMwLTMuNTEgMi44Ni02LjM3IDYuMzctNi4zN3M2LjM3IDIuODYgNi4zNyA2LjM3YzAgLjEyIDAgLjI1LS4wMS4zN0wxNC4wNyA2LjUgNy43MSA5LjIyYy0uMDEtLjEyLS4wMi0uMjUtLjAyLS4zN3ptMTcuOTYgMTUuNDdjLS4zNSA1Ljk1LTQuNTYgMTEuNDEtMTEuNTkgMTUuMDMtNy4wMi0zLjYyLTExLjIzLTkuMDgtMTEuNTgtMTUuMDNWMTMuMDdMMTQuMDcgOC4xbDExLjU5IDQuOTd2MTEuMjV6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMTEuNDEgMjAuNmMwIDEuMDQuNjEgMS45MyAxLjQ5IDIuMzRsLjM2LjIxLS42OSA1LjExaDIuODVsLS42OS01LjE0LjEzLS4wOGEyLjU4NSAyLjU4NSAwIDAwMS43NS0yLjQ1YzAtMS40NC0xLjE2LTIuNi0yLjYtMi42cy0yLjYgMS4xNy0yLjYgMi42MXoiLz48L2c+PC9zdmc+");
+}
+
+.oci-security-list {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMi4zIDQyLjIiPjxnIGZpbGw9IiNmZmYiPjxwYXRoIGQ9Ik0xNS44IDQxLjVDOCAzOC42IDQuMyAzMy42IDIuNSAyOS44Yy0yLTQuMy0yLTcuOS0yLTguMVY3LjNMMTYuMi42bDE1LjYgNi43djE0LjVjMCAuNi0uMiAxNC4yLTE1LjEgMTkuN2wtLjQuMi0uNS0uMnoiLz48cGF0aCBkPSJNMTYuMiAxLjFsMTUuMSA2LjV2MTQuMmMwIC42LS4yIDEzLjgtMTQuOCAxOS4ybC0uMy4xLS4yLS4xQzguMyAzOC4yIDQuNyAzMy4zIDMgMjkuNmMtMS45LTQuMS0yLTcuNy0yLTcuOFY3LjZsMTUuMi02LjVtMC0xLjFsLS40LjJMLjYgNi43bC0uNi4yVjIxLjhjMCAuMiAwIDMuOSAyLjEgOC4zIDEuOCAzLjggNS42IDkgMTMuNiAxMS45bC4zLjEuMy4xLjMtLjEuMy0uMWMxNS4zLTUuNiAxNS41LTE5LjYgMTUuNS0yMC4yVjYuOWwtLjYtLjNMMTYuNi4ybC0uNC0uMnoiLz48L2c+PHBhdGggZD0iTTIuNSA4LjZ2MTMuMmMwIC4xIDAgMy40IDEuOCA3LjIgMi4zIDQuOSA2LjMgOC40IDExLjkgMTAuNSAxMy40LTUuMSAxMy42LTE3LjIgMTMuNi0xNy43VjguNkwxNi4yIDIuNyAyLjUgOC42em0xMy42IDE5LjdIN3YtMS41aDkuMXYxLjV6bTAtNi44SDdWMjBoOS4xdjEuNXptMC03LjNIN3YtMS41aDkuMXYxLjV6bTQuMS0xLjVsMS4yIDEuMiAzLTMgMSAxLTQgNC0yLjItMi4yIDEtMXptNC42IDkuNWwtMSAxLTEuNS0xLjUtMS41IDEuNS0xLTEgMS41LTEuNS0xLjUtMS41IDEtMSAxLjUgMS41IDEuNS0xLjUgMSAxLTEuNSAxLjUgMS41IDEuNXptLTQuNiA0LjZsMS4yIDEuMiAzLTMgMSAxLTQgNC0yLjItMi4yIDEtMXoiIGZpbGw9Im5vbmUiLz48cGF0aCBkPSJNMTYuMiAxLjFMMSA3LjZ2MTQuMmMwIC4xIDAgMy43IDIgNy44IDEuNyAzLjcgNS40IDguNiAxMyAxMS40bC4zLjEuMy0uMWMxNC42LTUuNCAxNC44LTE4LjcgMTQuOC0xOS4yVjcuNkwxNi4yIDEuMXptMTMuNiAyMC43YzAgLjUtLjIgMTIuNi0xMy42IDE3LjctNS42LTIuMS05LjYtNS42LTExLjktMTAuNS0xLjgtMy45LTEuOC03LjEtMS44LTcuMlY4LjZsMTMuNy01LjkgMTMuNiA1Ljl2MTMuMnoiIGZpbGw9IiNiYjUwMWMiLz48cGF0aCBmaWxsPSIjYmI1MDFjIiBkPSJNNyAxMi43aDkuMXYxLjVIN3pNMjUuNCAxMmwtMS4xLTEtMi45IDIuOS0xLjItMS4yLTEuMSAxLjEgMi4zIDIuMnpNNyAyMGg5LjF2MS41SDd6TTIzLjggMTguMWwtMS41IDEuNi0xLjYtMS42LTEgMS4xIDEuNSAxLjUtMS41IDEuNSAxIDEuMSAxLjYtMS41IDEuNSAxLjUgMS0xLjEtMS41LTEuNSAxLjUtMS41ek03IDI2LjhoOS4xdjEuNUg3ek0yNS40IDI2LjFsLTEuMS0xLTIuOSAyLjktMS4yLTEuMi0xLjEgMS4xIDIuMyAyLjJ6Ii8+PC9zdmc+");
+}
+
+.oci-service-gateway {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyLjE5IDQyIj48cGF0aCBkPSJNMjMuMjQgNDEuNWExOC4zIDE4LjMgMCAwMS0xNC42Ny03LjMxIDE4LjkzIDE4LjkzIDAgMDEtMi43Ny0yLjMyIDkuNzUgOS43NSAwIDAxLTEuMTQtMS4yNWMtLjE2LS4yLS44NS0xLjEyLTEtMS40MXMtLjE5LS4zLS4yOC0uNDZsLS4yNy0uNDRjLS4xMi0uMjEtLjI1LS40MS0uMzYtLjYycy0uMTctLjMzLS4yNS0uNWwtLjIzLS40OWMtLjEtLjItLjItLjQtLjI5LS42MXMtLjE1LS4zOC0uMjItLjU4TDEuNTQgMjVjLS4wOC0uMTktLjE1LS4zOS0uMjItLjZzLS4xMi0uNDYtLjE4LS42OUwxIDIzLjE3YzAtLjE3LS4wOS0uMzUtLjEzLS41M3MtLjExLS42NC0uMTUtMWwtLjA2LS40NWMwLS4xNC0uMDUtLjI3LS4wNy0uNDFDLjUzIDIwLjIuNSAxOS41Ny41IDE4Ljk0QTE4LjQ2IDE4LjQ2IDAgMDExOC45NC41Yy41OSAwIDEuMjEgMCAxLjgzLjA5bC4zNy4wNWguMjJjLjM5IDAgLjc5LjEgMS4xOC4xOEwyMyAxbC4yLjA1Yy4zNy4wOS43LjE3IDEgLjI3bC41Mi4xNy4yLjA3LjkyLjM0Yy4yMS4wOC40MS4xOC42MS4yN2guMTFsLjg1LjQxLjY4LjM4Yy4yOC4xNi41NS4zMi44MS40OWwuNjYuNDUuNzMuNTVhOCA4IDAgMDEuOTEuNzggMTguNTQgMTguNTQgMCAwMTIuMzcgMi41NkExOC40NCAxOC40NCAwIDAxMjMuMjQgNDEuNXoiIGZpbGw9IiNmZmYiLz48cGF0aCBkPSJNMTguOTQgMWExNy41MyAxNy41MyAwIDAxMS43OC4wOWwuNTcuMDhjLjM5LjA1Ljc3LjEgMS4xNS4xOC4yMyAwIC40NS4xMS42OC4xNmwxIC4yNS42OC4yNGMuMzEuMTEuNjEuMjEuOTEuMzNsLjY5LjMxLjgzLjRjLjIzLjEyLjQ1LjI1LjY3LjM4cy41My4zMS43OC40Ny40My4yOS42NC40NC40OC4zNS43Mi41NGwuODYuNzNhMTguMTQgMTguMTQgMCAwMTIuMzcgMi41OEExNy45MyAxNy45MyAwIDExOC45MiAzMy44MmExNy45MiAxNy45MiAwIDAxLTIuNzYtMi4zcy0uOS0xLTEuMS0xLjIyLS44NC0xLjExLTEtMS4zOC0uMjctLjQ0LS40LS42Ni0uMzQtLjU0LS40OS0uODEtLjI0LS40OS0uMzUtLjczLS4yOC0uNTUtLjQtLjg0LS4yLS41NC0uMy0uODEtLjIxLS41NC0uMy0uODItLjE2LS42My0uMjQtLjk0LS4xNC0uNTEtLjItLjc3LS4xMi0uNzYtLjE3LTEuMTRjMC0uMjEtLjA4LS40Mi0uMS0uNjNRMSAxOS44NyAxIDE4Ljk0QTE4IDE4IDAgMDExOC45NCAxbTAtMUExOSAxOSAwIDAwMCAxOC45NGExNy44MiAxNy44MiAwIDAwLjEgMS45M2MwIC4xNSAwIC4zLjA2LjQ0czAgLjE1IDAgLjIzdi4yMWMwIC4zMi4wOC42NS4xNSAxcy4wOS4zNy4xNC41NiAwIC4xNy4wNy4yNWwuMDYuMjZjLjA2LjI1LjEyLjQ5LjIuNzNzLjE0LjQyLjIyLjYzbC4wOS4yNC4wOS4yNWE2LjM3IDYuMzcgMCAwMC4yMy42MWMuMDkuMjIuMi40NC4zLjY1bC4xMi4yMy4xMS4yNGE1LjIgNS4yIDAgMDAuMjYuNTNjLjEyLjIyLjI1LjQzLjM4LjY1bC4xMy4yMS4xMy4yMWMuMS4xNy4xOS4zMy4zLjQ5cy45IDEuMjQgMS4wOCAxLjQ1YTExIDExIDAgMDAxLjE5IDEuMzIgMTguNTYgMTguNTYgMCAwMDIuNzQgMi4zQTE4LjkzIDE4LjkzIDAgMTAzNCA3LjQ0YTE4Ljk0IDE4Ljk0IDAgMDAtMi40LTIuNTkgOS40OCA5LjQ4IDAgMDAtLjktLjc3bC0uNzYtLjU3LS42OC0uNDZjLS4yNi0uMTctLjU0LS4zMy0uODEtLjQ5cy0uNDctLjI4LS43MS0uNGwtLjg4LS40My0uMTItLjA1LS42MS0uMjdjLS4zMS0uMTMtLjYzLS4yNC0uOTQtLjM1TDI0Ljk0IDEgMjQuNC44MWMtLjMzLS4xLS42Ni0uMTgtMS0uMjZoLS4wN2wtLjItLjA3LS40OS0uMTFjLS40MS0uMDgtLjgyLS4xNC0xLjIyLS4xOWgtLjE5bC0uNDItLjA5QzIwLjE4IDAgMTkuNTUgMCAxOC45NCAweiIgZmlsbD0iI2ZmZiIvPjxwYXRoIGQ9Ik00LjU4IDI2Ljk0YTE2LjI3IDE2LjI3IDAgMDEtMi4wOC04IDE2LjQ1IDE2LjQ1IDAgMDEyMy44MS0xNC43QTE4LjcgMTguNyAwIDAxMzEgNS42MiAxNy45MyAxNy45MyAwIDAwNi4xNyAzMS41M2ExOC40OCAxOC40OCAwIDAxLTEuNTktNC41OXoiIGZpbGw9IiMyYzU5NjciLz48cGF0aCBkPSJNMjMuMjQgNS4xMWExNy45NSAxNy45NSAwIDEwMTggMTggMTggMTggMCAwMC0xOC0xOHptMCAzNC4zOWExNi40NSAxNi40NSAwIDExMTYuNDUtMTYuNDRBMTYuNDYgMTYuNDYgMCAwMTIzLjI0IDM5LjV6IiBmaWxsPSIjMmM1OTY3Ii8+PHBhdGggZmlsbD0iIzJjNTk2NyIgZD0iTTI3LjMyIDMyLjM3bC0xLjA1LTEuMDYtMi4yOCAyLjI4VjEyLjcxbDIuMjggMi4yOCAxLjA1LTEuMDYtNC4wOC00LjA4LTQuMDggNC4wOCAxLjA2IDEuMDYgMi4yOC0yLjI4djIwLjg4bC0yLjI4LTIuMjgtMS4wNiAxLjA2IDQuMDggNC4wOCA0LjA4LTQuMDh6Ii8+PHBhdGggZmlsbD0iIzJjNTk2NyIgZD0iTTE4LjM1IDI3LjE0bDQuMDgtNC4wOC00LjA4LTQuMDgtMS4wNiAxLjA1IDIuMjggMi4yOGgtOS42djEuNDloOS42bC0yLjI4IDIuMjggMS4wNiAxLjA2ek0zNi41MSAyMi4zMWgtOS41OWwyLjI3LTIuMjgtMS4wNS0xLjA1LTQuMDkgNC4wOCA0LjA5IDQuMDggMS4wNS0xLjA2LTIuMjctMi4yOGg5LjU5di0xLjQ5eiIvPjwvc3ZnPg==");
+}
+
+.oci-subnet {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDQyIDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTI2LjMzIDQxLjVWMjYuMzNoNi4wNXYtNEg5LjQydjRoNi4yNVY0MS41SC41VjI2LjMzaDYuMjV2LTRILjV2LTIuNjZoMTkuMTd2LTRoLTYuMzZWLjVoMTUuMTd2MTUuMTdoLTYuMTV2NEg0MS41djIuNjZoLTYuNDZ2NGg2LjQ2VjQxLjV6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMjcuOTggMXYxNC4xN2gtNi4xNXY1SDQxdjEuNjdoLTYuNDZ2NUg0MVY0MUgyNi44M1YyNi44M2g2LjA0di01SDguOTJ2NWg2LjI1VjQxSDFWMjYuODNoNi4yNXYtNUgxdi0xLjY3aDE5LjE3di01aC02LjM1VjFoMTQuMTZtMS0xSDEyLjgxdjE2LjE3aDYuMzV2M0gwdjMuNjdoNi4yNXYzSDBWNDJoMTYuMTdWMjUuODNIOS45MnYtM2gyMS45NnYzaC02LjA0VjQySDQyVjI1LjgzaC02LjQ2di0zSDQydi0zLjY3SDIyLjgzdi0zaDYuMTVWMHoiLz48Zz48cGF0aCBmaWxsPSJub25lIiBkPSJNMTUuNDggMi42N2gxMC44M1YxMy41SDE1LjQ4ek0yLjY3IDI4LjVIMTMuNXYxMC44M0gyLjY3ek0yOC41IDI4LjVoMTAuODN2MTAuODNIMjguNXoiLz48cGF0aCBkPSJNNDEgMjEuODN2LTEuNjdIMjEuODN2LTVoNi4xNVYxSDEzLjgxdjE0LjE3aDYuMzV2NUgxdjEuNjdoNi4yNXY1SDFWNDFoMTQuMTdWMjYuODNIOC45MnYtNWgyMy45NnY1aC02LjA0VjQxSDQxVjI2LjgzaC02LjQ2di01SDQxek0xMy41IDI4LjV2MTAuODNIMi42N1YyOC41SDEzLjV6bTEuOTgtMTVWMi42N2gxMC44M1YxMy41SDE1LjQ4em0yMy44NSAxNXYxMC44M0gyOC41VjI4LjVoMTAuODN6IiBmaWxsPSIjYmI1MDFjIi8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-user {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJwcmVmaXhfX0xheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeD0iMCIgeT0iMCIgdmlld0JveD0iMCAwIDMyLjk4IDQyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMTYuNDkgMjEuMjljLTUuNzMgMC0xMC40LTQuNjYtMTAuNC0xMC4zOVMxMC43NS41IDE2LjQ5LjVjNS43MyAwIDEwLjQgNC42NiAxMC40IDEwLjQtLjAxIDUuNzMtNC42NyAxMC4zOS0xMC40IDEwLjM5eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTE2LjQ5IDFjNS40NiAwIDkuOSA0LjQ0IDkuOSA5LjlzLTQuNDQgOS45LTkuOSA5LjktOS45LTQuNDQtOS45LTkuOVMxMS4wMyAxIDE2LjQ5IDFtMC0xYy02LjAxIDAtMTAuOSA0Ljg5LTEwLjkgMTAuOSAwIDYuMDEgNC44OSAxMC45IDEwLjkgMTAuOXMxMC45LTQuODkgMTAuOS0xMC45QzI3LjM4IDQuODkgMjIuNSAwIDE2LjQ5IDB6Ii8+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNLjUgNDEuNVYyOC44NGMwLTQuMDIgMy4yNy03LjI5IDcuMjktNy4yOWgyLjE3bC40LjUyYTcuNjgyIDcuNjgyIDAgMDA2LjEzIDMuMDJjLjM0IDAgLjY4LS4wMiAxLjAyLS4wNiAyLS4yNSAzLjkxLTEuNCA1LjI1LTMuMTRsLjI2LS4zNGgyLjE3YzQuMDIgMCA3LjI5IDMuMjcgNy4yOSA3LjI5VjQxLjVILjV6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QwIiBkPSJNMjUuMTggMjIuMDRhNi43OSA2Ljc5IDAgMDE2Ljc5IDYuNzlWNDFIMVYyOC44NGE2Ljc5IDYuNzkgMCAwMTYuNzktNi43OWgxLjkybC4yNS4zM2E4LjE4NCA4LjE4NCAwIDAwNi41MiAzLjIyYy4zNiAwIC43Mi0uMDIgMS4wOC0uMDcgMi4yMy0uMjggNC4yMi0xLjU1IDUuNTktMy4zM2wuMTEtLjE0aDEuOTJtMC0xLjAyaC0yLjQxbC0uMy4zOS0uMTEuMTRjLTEuMjYgMS42NC0zLjA1IDIuNzItNC45MiAyLjk1LS4zMi4wNC0uNjQuMDYtLjk1LjA2YTcuMTcgNy4xNyAwIDAxLTUuNzMtMi44M2wtLjI1LS4zMy0uMy0uMzlINy43OWMtNC4zIDAtNy43OSAzLjUtNy43OSA3Ljc5VjQyaDMyLjk4VjI4Ljg0YzAtNC4zLTMuNS03LjgtNy44LTcuOHoiLz48L2c+PGc+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMTYuNDkgMjAuNzljNS40NiAwIDkuOS00LjQ0IDkuOS05LjlTMjEuOTUgMSAxNi40OSAxcy05LjkgNC40NC05LjkgOS45IDQuNDQgOS44OSA5LjkgOS44OXptMC0xOC4xMmM0LjU0IDAgOC4yMyAzLjY5IDguMjMgOC4yM3MtMy42OSA4LjIzLTguMjMgOC4yMy04LjIzLTMuNjktOC4yMy04LjIzIDMuNjktOC4yMyA4LjIzLTguMjN6TTI1LjE4IDIyLjA0aC0xLjkybC0uMjUuMzNjLTEuNTcgMi4wNC0zLjk1IDMuMjItNi41MiAzLjIycy00Ljk1LTEuMTctNi41Mi0zLjIybC0uMjUtLjMzSDcuNzljLTMuNzQgMC02Ljc5IDMuMDUtNi43OSA2LjhWNDFoMS42N1YyOC44NGMwLTIuODMgMi4zLTUuMTMgNS4xMy01LjEzaDEuMWMxLjg5IDIuMjYgNC42MyAzLjU0IDcuNTggMy41NHM1LjctMS4yOSA3LjU4LTMuNTRoMS4xMWMyLjgzIDAgNS4xMyAyLjMgNS4xMyA1LjEzVjQxaDEuNjdWMjguODRjLjAxLTMuNzUtMy4wNC02LjgtNi43OS02Ljh6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-user-group {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1Ni45IDQyIj48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNLjUgNDEuNVYyNi4zYzAtMyAyLjQtNS40IDUuNC01LjRIOHYtLjNjLTIuMi0xLjMtMy43LTMuNy0zLjctNi40IDAtNC4xIDMuMy03LjQgNy40LTcuNHM3LjQgMy4zIDcuNCA3LjRjMCAyLjYtMS40IDQuOS0zLjUgNi4zaC41YzEuMi0xLjUgMy0yLjQgNS0yLjRoMi42VjE3Yy0yLjYtMS42LTQuMi00LjUtNC4yLTcuNiAwLTQuOSA0LTguOSA4LjktOC45czguOSA0IDguOSA4LjljMCAzLjEtMS42IDYtNC4zIDcuNnYxaDIuN2MyIDAgMy44LjkgNS4xIDIuNGguNWE3LjQ4IDcuNDggMCAwMS0zLjUtNi4zYzAtNC4xIDMuMy03LjQgNy40LTcuNHM3LjQgMy4zIDcuNCA3LjRjMCAyLjYtMS40IDUuMS0zLjYgNi40di41aDJjMyAwIDUuNCAyLjQgNS40IDUuNHYxNS4ySC41eiIvPjxwYXRoIGQ9Ik0yOC40IDFjNC42IDAgOC40IDMuOCA4LjQgOC40IDAgMy4xLTEuNyA1LjktNC4zIDcuM3YxLjhoMy4yYzEuOSAwIDMuNyAxIDQuOCAyLjRoMy4yYy0zLjEtLjctNS40LTMuNS01LjQtNi44IDAtMy44IDMuMS02LjkgNi45LTYuOXM2LjkgMy4xIDYuOSA2LjljMCAzLjMtMi4zIDYuMS01LjQgNi44aDEuOHYuNUg1MWMyLjcgMCA0LjkgMi4yIDQuOSA0LjlWNDFIMVYyNi4zYzAtMi43IDIuMi00LjkgNC45LTQuOWgyLjZWMjFoMS43Yy0zLjEtLjctNS40LTMuNS01LjQtNi44IDAtMy44IDMuMS02LjkgNi45LTYuOXM2LjkgMy4xIDYuOSA2LjljMCAzLjMtMi4zIDYuMS01LjQgNi44aDMuMmMxLjEtMS41IDIuOC0yLjQgNC43LTIuNGgzLjF2LTEuOWMtMi41LTEuNC00LjItNC4yLTQuMi03LjNDMjAgNC44IDIzLjggMSAyOC40IDFtMC0xQzIzLjIgMCAxOSA0LjIgMTkgOS40YzAgMy4yIDEuNiA2LjEgNC4yIDcuOHYuM2gtMi4xYy0uOSAwLTEuNy4yLTIuNS41LjYtMS4xIDEtMi40IDEtMy44IDAtNC40LTMuNi03LjktNy45LTcuOXMtNy45IDMuNi03LjkgNy45YzAgMi41IDEuMiA0LjggMyA2LjJoLTFjLTMuMiAwLTUuOSAyLjYtNS45IDUuOVY0Mmg1Ni45VjI2LjNjMC0zLjItMi42LTUuOS01LjktNS45aC0xYzEuOS0xLjUgMy0zLjggMy02LjIgMC00LjQtMy42LTcuOS03LjktNy45cy03LjkgMy42LTcuOSA3LjljMCAxLjQuNCAyLjcgMSAzLjgtLjgtLjMtMS43LS41LTIuNi0uNWgtMi4ydi0uM2MyLjctMS43IDQuMy00LjcgNC4zLTcuOS4yLTUuMS00LTkuMy05LjItOS4zeiIvPjwvZz48ZyBmaWxsPSIjMmM1OTY3Ij48cGF0aCBkPSJNNDUuMiAyMS4yYzMuOCAwIDYuOS0zLjEgNi45LTYuOXMtMy4xLTctNi45LTctNi45IDMuMS02LjkgNi45IDMuMSA3IDYuOSA3em0wLTEyLjJjMi45IDAgNS4zIDIuNCA1LjMgNS4zcy0yLjQgNS4zLTUuMyA1LjMtNS4zLTIuNC01LjMtNS4zUzQyLjMgOSA0NS4yIDl6Ii8+PHBhdGggZD0iTTUxLjEgMjEuNWgtMS40bC0uMy4zYy0xIDEuMy0yLjUgMi4xLTQuMiAyLjEtMS42IDAtMy4yLS44LTQuMi0yLjFsLS4zLS4zaC0uMWMtMS0xLjctMi45LTIuOS01LTIuOUgzNGwtLjMuM2MtMS4zIDEuNy0zLjIgMi42LTUuMyAyLjZzLTQtMS01LjMtMi42bC0uMy0uM2gtMS43Yy0yLjEgMC00IDEuMi01IDIuOWwtLjMuM2MtMSAxLjMtMi41IDIuMS00LjIgMi4xcy0zLjItLjgtNC4yLTIuMWwtLjMtLjNINS45Yy0yLjcgMC00LjkgMi4yLTQuOSA0LjlWNDFoMS43VjI2LjNjMC0xLjggMS40LTMuMiAzLjItMy4yaC42YzEuMyAxLjUgMy4yIDIuNCA1LjIgMi40IDEuMyAwIDIuNi0uNCAzLjYtMVY0MUgxN1YyNC40YzAtMi4zIDEuOS00LjEgNC4xLTQuMWguOWMxLjYgMS45IDMuOSAzIDYuNCAzczQuOC0xLjEgNi40LTNoLjljMi4zIDAgNC4xIDEuOSA0LjEgNC4xVjQxaDEuNlYyNC40YzEuMS43IDIuNCAxLjEgMy43IDEuMSAyIDAgMy45LS45IDUuMi0yLjRoLjZjMS44IDAgMy4yIDEuNCAzLjIgMy4yVjQxaDEuN1YyNi4zYy4xLTIuNy0yLTQuOC00LjctNC44eiIvPjxwYXRoIGQ9Ik0xMS43IDIxLjJjMy44IDAgNi45LTMuMSA2LjktNi45cy0zLjEtNi45LTYuOS02LjktNi45IDMuMS02LjkgNi45IDMuMSA2LjkgNi45IDYuOXptMC0xMi4yYzIuOSAwIDUuMyAyLjQgNS4zIDUuM3MtMi40IDUuMy01LjMgNS4zLTUuMy0yLjQtNS4zLTUuM1M4LjggOSAxMS43IDl6TTI4LjQgMTcuOGM0LjYgMCA4LjQtMy44IDguNC04LjRTMzMuMSAxIDI4LjQgMSAyMCA0LjggMjAgOS40czMuOCA4LjQgOC40IDguNHptMC0xNS4xYTYuNyA2LjcgMCAxMTAgMTMuNCA2LjcgNi43IDAgMDEwLTEzLjR6TTIxLjIgMzAuNmgtLjlWNDFIMjJ2LTguN3pNMzUuNiAzMC42bC0uOCAxLjdWNDFoMS43VjMwLjZ6TTUwLjEgMzR2N2gxLjZ2LTguN2gtLjh6TTUuMiAzMi4zVjQxaDEuN3YtN0w2IDMyLjN6Ii8+PC9nPjwvc3ZnPg==");
+}
+
+.oci-vault {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyBpZD0icHJlZml4X19MYXllcl8xIiBkYXRhLW5hbWU9IkxheWVyIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQzLjY1IDQyIj48ZGVmcz48c3R5bGU+LnByZWZpeF9fc3Qwe2ZpbGw6I2ZmZn0ucHJlZml4X19zdDF7ZmlsbDojMmM1OTY3fTwvc3R5bGU+PC9kZWZzPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTS41IDQxLjV2LTEuNjNsMi4wMy0xLjAyaC4yNHYtNi4wMUgxLjEyVjIxLjUzaDEuNjV2LTMuOTVIMS4xMlY2LjI3aDEuNjVWLjVoMzguMTF2MzguMzVoLjI0bDIuMDMgMS4wMnYxLjYzSC41eiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MCIgZD0iTTQwLjM4IDF2MzguMzVINDFsMS42NS44M1Y0MUgxdi0uODJsMS42NS0uODNoLjYydi03SDEuNjJWMjJoMS42NXYtNUgxLjYyVjYuNzdoMS42NVYxaDM3LjExbTEtMUgyLjI3djUuNzdILjYydjEyLjMxaDEuNjV2M0guNjJ2MTIuMjZoMS42NXY1LjA4SDIuMmwtMS42NS44Mi0uNTUuMzJWNDJoNDMuNjV2LTIuNDRsLS41NS0uMjgtMS42NS0uODJoLS4wN1YweiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTMuMjcgMTguMzJoMS42NXYyLjQ3SDMuMjd6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNNC45MiA1LjU0VjIuNjVoMzMuODF2MzMuODFINC45MnYtMi44OEgzLjI3djQuNTNoMzcuMTFWMUgzLjI3djQuNTRoMS42NXoiLz48cGF0aCBjbGFzcz0icHJlZml4X19zdDEiIGQ9Ik02LjE1IDMyLjM0djIuODloMzEuMzRWMy44OUg2LjE1djIuODhIMS42MnYxMC4zMWg0LjUzdjVIMS42MnYxMC4yNnptLTIuODgtMi44OWgxLjY1VjI3LjhIMy4yN3YtMS4yM2gxLjY1di0xLjY1SDMuMjd2LTEuMjRINy44di04LjI1SDMuMjdWMTQuMmgxLjY1di0xLjY1SDMuMjd2LTEuMjRoMS42NVY5LjY2SDMuMjdWOC40Mkg3LjhWNS41NGgyOC4wNXYyOEg3Ljh2LTIuODVIMy4yN3pNNDEgMzkuMzVIMi42NUwxIDQwLjE3VjQxaDQxLjY1di0uODNMNDEgMzkuMzV6Ii8+PHBhdGggY2xhc3M9InByZWZpeF9fc3QxIiBkPSJNMjkgMjAuMzhhNy40NSA3LjQ1IDAgMDEtLjIyIDEuNjJsMS40OC44NmE5LjA2IDkuMDYgMCAwMC4zNi0yLjUxIDguOCA4LjggMCAwMC02LjczLTguNTV2MS43MUE3LjE3IDcuMTcgMCAwMTI5IDIwLjM4ek0xNC42OCAyMC4zOGE3LjE2IDcuMTYgMCAwMTUuMDgtNi44NHYtMS43MUE4LjggOC44IDAgMDAxMyAyMC4zOGE5LjA2IDkuMDYgMCAwMC4zNiAyLjUxbDEuNTEtLjg5YTcuNDUgNy40NSAwIDAxLS4xOS0xLjYyek0yMS44MiAyNy41M0E3LjA4IDcuMDggMCAwMTE3IDI1LjU5bC0xLjQ4Ljg2YTguNzYgOC43NiAwIDAwMTIuNzEgMGwtMS41My0uODVhNy4xMyA3LjEzIDAgMDEtNC44OCAxLjkzeiIvPjxwYXRoIGNsYXNzPSJwcmVmaXhfX3N0MSIgZD0iTTIxIDE1LjE1YTUuNjkgNS42OSAwIDAwLTEuMjQuMzUgNS4zMyA1LjMzIDAgMDAtMy4yMyA1LjU3IDUuNjUgNS42NSAwIDAwLjMyIDEuMjRMMTEgMjUuNzFhMTIuNTQgMTIuNTQgMCAwMC44MyAxLjQybDUuODYtMy40YTUuNjYgNS42NiAwIDAwLjk0Ljg5IDUuMzkgNS4zOSAwIDAwNi4zOSAwIDUuNjYgNS42NiAwIDAwLjk0LS44OWw1Ljg2IDMuNGExMi41NCAxMi41NCAwIDAwLjgzLTEuNDJsLTUuODYtMy40YTUuMTUgNS4xNSAwIDAwLjMzLTEuMjQgNS4zMyA1LjMzIDAgMDAtMy4yMy01LjU3IDUuNjkgNS42OSAwIDAwLTEuMjQtLjM1di02LjhIMjF6bTQuNTEgNS4yM2EzLjY5IDMuNjkgMCAxMS0zLjY5LTMuNjQgMy42NiAzLjY2IDAgMDEzLjY5IDMuNjR6Ii8+PGVsbGlwc2UgY2xhc3M9InByZWZpeF9fc3QxIiBjeD0iMjEuODIiIGN5PSIyMC4zOCIgcng9IjIuMjkiIHJ5PSIyLjI3Ii8+PC9zdmc+");
+}
+
+.oci-vcn, .oci-virtual-cloud-network {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA0My41IDQyIj48ZyBmaWxsPSIjZmZmIj48cGF0aCBkPSJNMzEuMiA0MS41Yy0yLjggMC01LjMtMi01LjktNC44aC03LjFjLS42IDIuNy0zIDQuOC01LjkgNC44LTMuMyAwLTYtMi43LTYtNiAwLTIuMSAxLjItNC4xIDMtNS4ybC0yLjItNi43aC0uNmMtMy4zIDAtNi0yLjctNi02czIuNy02IDYtNmMxLjUgMCAyLjkuNSA0IDEuNkwxNi4zIDljLS4zLS44LS41LTEuNi0uNS0yLjUgMC0zLjMgMi43LTYgNi02czYgMi43IDYgNmMwIC44LS4yIDEuNy0uNSAyLjVsNS43IDQuMmMxLjEtMSAyLjUtMS42IDQtMS42IDMuMyAwIDYgMi43IDYgNnMtMi43IDYtNiA2aC0uNmwtMi4yIDYuN2MxLjggMS4xIDMgMy4xIDMgNS4yIDAgMy4zLTIuNyA2LTYgNnoiLz48cGF0aCBkPSJNMjEuNyAxYzMgMCA1LjUgMi41IDUuNSA1LjUgMCAuOS0uMiAxLjgtLjcgMi42bDYuNCA0LjdjMS0xLjEgMi40LTEuNyA0LTEuNyAzIDAgNS41IDIuNSA1LjUgNS41cy0yLjUgNS41LTUuNSA1LjVjLS4zIDAtLjcgMC0xLS4xbC0yLjUgNy41YzEuOC45IDMuMSAyLjggMy4xIDUgMCAzLTIuNSA1LjUtNS41IDUuNS0yLjggMC01LjEtMi4xLTUuNS00LjhoLTcuOWMtLjQgMi43LTIuNyA0LjgtNS41IDQuOC0zIDAtNS41LTIuNS01LjUtNS41IDAtMi4yIDEuMy00LjEgMy4xLTVMNy41IDIzYy0uMy4xLS43LjEtMSAuMS0zIDAtNS41LTIuNS01LjUtNS41czIuNS01LjUgNS41LTUuNWMxLjYgMCAzIC43IDQgMS43bDYuNC00LjdjLS40LS44LS43LTEuNy0uNy0yLjYgMC0zIDIuNS01LjUgNS41LTUuNW0wLTFjLTMuNiAwLTYuNSAyLjktNi41IDYuNSAwIC44LjEgMS42LjQgMi4zbC01LjEgMy43Yy0xLjEtLjktMi42LTEuNC00LTEuNEMyLjkgMTEuMSAwIDE0IDAgMTcuNnMyLjkgNi41IDYuNSA2LjVoLjNsMS45IDZjLTEuOCAxLjItMi45IDMuMi0yLjkgNS40IDAgMy42IDIuOSA2LjUgNi41IDYuNSAyLjkgMCA1LjUtMiA2LjMtNC44aDYuM2MuOCAyLjggMy4zIDQuOCA2LjMgNC44IDMuNiAwIDYuNS0yLjkgNi41LTYuNSAwLTIuMi0xLjEtNC4yLTIuOS01LjRsMS45LTZoLjNjMy42IDAgNi41LTIuOSA2LjUtNi41cy0yLjktNi41LTYuNS02LjVjLTEuNSAwLTIuOS41LTQuMSAxLjRsLTUuMS0zLjdjLjMtLjcuNC0xLjUuNC0yLjMuMS0zLjYtMi45LTYuNS02LjUtNi41eiIvPjwvZz48cGF0aCBkPSJNMzcgMTIuMWMtMS42IDAtMyAuNy00IDEuN2wtNi40LTQuN2MuNC0uOC43LTEuNy43LTIuNiAwLTMtMi41LTUuNS01LjUtNS41cy01LjUgMi41LTUuNSA1LjVjMCAuOS4yIDEuOC43IDIuNmwtNi40IDQuN2MtMS0xLTIuNC0xLjctNC0xLjctMyAwLTUuNSAyLjUtNS41IDUuNXMyLjUgNS41IDUuNSA1LjVjLjMgMCAuNyAwIDEtLjFsMi40IDcuNWMtMS44LjktMy4xIDIuOC0zLjEgNSAwIDMgMi41IDUuNSA1LjUgNS41IDIuOCAwIDUuMS0yLjEgNS41LTQuOGg3LjljLjQgMi43IDIuNyA0LjggNS41IDQuOCAzIDAgNS41LTIuNSA1LjUtNS41IDAtMi4yLTEuMy00LjEtMy4xLTVMMzYgMjNjLjMuMS43LjEgMSAuMSAzIDAgNS41LTIuNSA1LjUtNS41UzQwIDEyLjEgMzcgMTIuMXptLTUuOCAyNy40Yy0yLjIgMC00LTEuOC00LTRzMS44LTQgNC00IDQgMS44IDQgNC0xLjggNC00IDR6bS0xMy40LTQuN2MtLjItMS4zLS44LTIuNC0xLjctMy4zbDMtNC4yYy44LjQgMS43LjcgMi42LjcuOSAwIDEuOC0uMiAyLjYtLjdsMyA0LjJjLS45LjgtMS41IDItMS43IDMuM2gtNy44em0tOS41LjdjMC0yLjIgMS44LTQgNC00czQgMS44IDQgNC0xLjggNC00IDQtNC0xLjgtNC00em0tMS44LTIyYzIuMiAwIDQgMS44IDQgNHMtMS44IDQtNCA0LTQtMS44LTQtNCAxLjgtNCA0LTR6bTExLjItN2MwLTIuMiAxLjgtNCA0LTRzNCAxLjggNCA0LTEuOCA0LTQgNC00LTEuOC00LTR6bTEzLjkgMTJsLTQuOSAxLjZjLS44LTEuNi0yLjQtMi44LTQuMi0zLjF2LTVjMS4zLS4yIDIuNC0uOCAzLjItMS43bDYuNCA0LjdjLS40LjgtLjcgMS43LS43IDIuNi4xLjMuMS42LjIuOXptLTUuOCA0YzAgMi4yLTEuOCA0LTQgNHMtNC0xLjgtNC00IDEuOC00IDQtNCA0IDEuNyA0IDR6TTIxIDEydjVjLTEuOS4zLTMuNSAxLjQtNC4yIDMuMWwtNC45LTEuNmMuMS0uMy4xLS42LjEtMSAwLS45LS4yLTEuOC0uNy0yLjZsNi40LTQuN2MuOSAxIDIgMS42IDMuMyAxLjh6bS05LjUgNy45bDQuOSAxLjZjLS4xLjMtLjEuNi0uMSAxIDAgMS42LjcgMyAxLjcgNGwtMyA0LjJjLS44LS40LTEuNy0uNy0yLjYtLjctLjMgMC0uNyAwLTEgLjFMOSAyMi42YzEtLjYgMS45LTEuNSAyLjUtMi43ek0zMS4yIDMwYy0uOSAwLTEuOC4yLTIuNi43bC0zLTQuMmMxLjEtMSAxLjctMi40IDEuNy00IDAtLjMgMC0uNy0uMS0xbDQuOS0xLjZjLjUgMS4xIDEuNSAyIDIuNiAyLjZMMzIuMiAzMGgtMXpNMzMgMTcuNmMwLTIuMiAxLjgtNCA0LTRzNCAxLjggNCA0LTEuOCA0LTQgNC00LTEuOC00LTR6IiBmaWxsPSIjYmI1MDFjIi8+PC9zdmc+");
+}
+
+/*
+** Background Colours
+*/
+
+/* Infrastructure */
+.oci-instance-background-colour,
+.oci-mount-target-background-colour {
+ background-color: var(--svg-infrastructure-resources-background-colour);
+}
+
+/* Database */
+.oci-autonomous-database-background-colour,
+.oci-db-system-background-colour,
+.oci-mysql-db-system-background-colour,
+.oci-nosql-table-background-colour {
+ background-color: var(--svg-database-resources-background-colour);
+}
+
+/* Storage */
+.oci-boot-volume-background-colour,
+.oci-bucket-background-colour,
+.oci-file-system-background-colour,
+.oci-volume-background-colour {
+ background-color: var(--svg-storage-resources-background-colour);
+}
+
+/* Networking */
+.oci-dhcp-options-background-colour,
+.oci-drg-attachment-background-colour,
+.oci-ipsec-background-colour,
+.oci-load-balancer-background-colour,
+.oci-load-balancer-backend-set-background-colour,
+.oci-load-balancer-listener-background-colour,
+.oci-network-load-balancer-background-colour,
+.oci-network-load-balancer-backend-set-background-colour,
+.oci-network-security-group-background-colour,
+.oci-remote-peering-connection-background-colour,
+.oci-route-table-background-colour,
+.oci-security-list-background-colour,
+.oci-subnet-background-colour,
+.oci-vcn-background-colour {
+ background-color: var(--svg-network-resources-background-colour);
+}
+
+/* Gateways */
+.oci-drg-background-colour,
+.oci-internet-gateway-background-colour,
+.oci-local-peering-gateway-background-colour,
+.oci-nat-gateway-background-colour,
+.oci-service-gateway-background-colour {
+ background-color: var(--svg-gateway-resources-background-colour);
+}
+
+/* Identity and Security */
+.oci-dynamic-group-background-colour,
+.oci-group-background-colour,
+.oci-key-background-colour,
+.oci-policy-background-colour,
+.oci-user-background-colour,
+.oci-vault-background-colour {
+ background-color: var(--svg-identity-resources-background-colour);
+}
+
+/* Analytics */
+.oci-analytics-instance-background-colour {
+ background-color: var(--svg-analytics-resources-background-colour);
+}
+`,
+
+ 'theme.css': String.raw`/* Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved. */
+/* Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. */
+/*
+** SVG Look & Feel Variables
+*/
+:root {
+ --console-background-colour: #ffffff;
+
+ --dialog-background-colour: #ffffff;
+ --dialog-border-colour: #131243;
+ --dialog-title-background-colour: #ffffff;
+ --dialog-title-colour: black;
+ --dialog-body-background-colour: #ffffff;
+ --dialog-body-colour: black;
+ --dialog-footer-background-colour: #ffffff;
+ --dialog-footer-colour: #161513;
+ --dialog-input-border-colour: #131243;
+ --dialog-input-font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
+ --dialog-input-font-size: smaller;
+ --dialog-highlight-colour: #e6e8f4;
+}
+
+/*
+** Standard Element
+*/
+
+details > summary.summary-background {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjAgMCkiPjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgY3g9IjYuMTEiIGN5PSIzLjU1IiByeD0iMi4xMSIgcnk9IjIuMTUiLz48ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIGN4PSI2LjExIiBjeT0iMTUuNTUiIHJ4PSIyLjExIiByeT0iMi4xNSIvPjxjaXJjbGUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBjeD0iMTMuMTUiIGN5PSI5LjU1IiByPSIyLjE1Ii8+PHBhdGggZD0iTTEgM2gzdjFIMXpNMTAgM2g4djFoLTh6TTEgOWg4djFIMXpNMTUgOWgzdjFoLTN6TTEgMTVoM3YxSDF6TTEwIDE1aDh2MWgtOHoiLz48L2c+PC9zdmc+");
+}
+
+details[open] > summary.summary-background {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBjeD0iNi4xMSIgY3k9IjMuNTUiIHJ4PSIyLjExIiByeT0iMi4xNSIvPjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgY3g9IjYuMTEiIGN5PSIxNS41NSIgcng9IjIuMTEiIHJ5PSIyLjE1Ii8+PGNpcmNsZSBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIGN4PSIxMy4xNSIgY3k9IjkuNTUiIHI9IjIuMTUiLz48cGF0aCBkPSJNMSAzaDN2MUgxek0xMCAzaDh2MWgtOHpNMSA5aDh2MUgxek0xNSA5aDN2MWgtM3pNMSAxNWgzdjFIMXpNMTAgMTVoOHYxaC04eiIvPjwvc3ZnPg==");
+}
+
+/*
+** Icons
+*/
+.palette {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0zLjI1IDEwYTYuNzUgNi43NSAwIDExNC42NDYgNi40MTZjLjI0LS41NzMuMzU0LTEuMTk5LjM1NC0xLjgzM2E0LjUgNC41IDAgMDAtNS00LjQ3MlYxMHpNMTAgMS43NUE4LjI1IDguMjUgMCAwMDEuNzUgMTB2Mi4xMDdsMS0uMzUzYTMgMyAwIDAxNCAyLjgzYzAgLjY4OC0uMTg3IDEuMzAzLS41MjggMS43NzRsLS41MzMuNzM2LjgyMi4zODRBOC4yNSA4LjI1IDAgMTAxMCAxLjc1ek04LjMzMyA4LjMzM2ExLjY2NyAxLjY2NyAwIDEwMC0zLjMzMyAxLjY2NyAxLjY2NyAwIDAwMCAzLjMzM3ptNi42NjcgMGExLjY2NyAxLjY2NyAwIDExLTMuMzMzIDAgMS42NjcgMS42NjcgMCAwMTMuMzMzIDB6TTExLjY2NyAxNWExLjY2NyAxLjY2NyAwIDEwMC0zLjMzMyAxLjY2NyAxLjY2NyAwIDAwMCAzLjMzM3oiIGZpbGw9IiMxNjE1MTMiLz48L3N2Zz4=");
+}
+
+.palette-list {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuMzMzIDMuMTY3aDEwTTcuMzMzIDloMTBtLTEwIDUuODMzaDEwTTQuODMzIDMuMTY3YTEuNjY3IDEuNjY3IDAgMTEtMy4zMzMgMCAxLjY2NyAxLjY2NyAwIDAxMy4zMzMgMHptMCA1LjgzM0ExLjY2NyAxLjY2NyAwIDExMS41IDlhMS42NjcgMS42NjcgMCAwMTMuMzMzIDB6bTAgNS44MzNhMS42NjcgMS42NjcgMCAxMS0zLjMzMyAwIDEuNjY3IDEuNjY3IDAgMDEzLjMzMyAweiIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjEuODc1Ii8+PC9zdmc+");
+}
+
+.palette-icons {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcuMzMzIDEuNUgxLjV2NS44MzNoNS44MzNWMS41ek03LjMzMyAxMC42NjdIMS41VjE2LjVoNS44MzN2LTUuODMzek0xNi41IDEuNWgtNS44MzN2NS44MzNIMTYuNVYxLjV6TTE2LjUgMTAuNjY3aC01LjgzM1YxNi41SDE2LjV2LTUuODMzeiIgc3Ryb2tlPSIjMjIyIiBzdHJva2Utd2lkdGg9IjEuNSIvPjwvc3ZnPg==");
+}
+
+.explorer {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQgNC44MzNoMi41TTQgOWgyLjVNNCAxMy4xNjdoMi41bTEuNjY3LTguMzM0SDE0TTguMTY3IDlIMTRtLTUuODMzIDQuMTY3SDE0TTEuNSAxLjVoMTV2MTVoLTE1di0xNXoiIHN0cm9rZT0iIzE2MTUxMyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48L3N2Zz4=");
+}
+
+.properties {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIuNSAyLjV2LS43NWgtLjc1di43NWguNzV6bTAgMTVoLS43NXYuNzVoLjc1di0uNzV6bTguMzMzLTE1bC41My0uNTMtLjIxOS0uMjJoLS4zMXYuNzV6bTUgNXYuNzVhLjc1Ljc1IDAgMDAuNTMtMS4yOGwtLjUzLjUzem0tNSAwaC0uNzV2Ljc1aC43NVY3LjV6bTAgNy41bC0uNTMtLjUzLS4yMi4yMlYxNWguNzV6bTAgMi41aC0uNzV2Ljc1aC43NXYtLjc1em0yLjUgMHYuNzVoLjMxMWwuMjItLjIyLS41My0uNTN6bTQuMTY3LTQuMTY3bC41My41M2EuNzUuNzUgMCAwMDAtMS4wNmwtLjUzLjUzem0tMi41LTIuNWwuNTMtLjUzYS43NS43NSAwIDAwLTEuMDYgMGwuNTMuNTN6TTEuNzUgMi41djE1aDEuNXYtMTVoLTEuNXptLjc1IDE1Ljc1aDUuODMzdi0xLjVIMi41djEuNXptMC0xNWg4LjMzM3YtMS41SDIuNXYxLjV6bTcuODAzLS4yMmw1IDUgMS4wNi0xLjA2LTUtNS0xLjA2IDEuMDZ6bTUuNTMgMy43MmgtNXYxLjVoNXYtMS41em0tNC4yNS43NXYtNWgtMS41djVoMS41em0tMS41IDcuNXYyLjVoMS41VjE1aC0xLjV6bS43NSAzLjI1aDIuNXYtMS41aC0yLjV2MS41em0zLjAzLS4yMmw0LjE2Ny00LjE2Ni0xLjA2LTEuMDYxLTQuMTY3IDQuMTY3IDEuMDYgMS4wNnptNC4xNjctNS4yMjdsLTIuNS0yLjUtMS4wNiAxLjA2IDIuNSAyLjUgMS4wNi0xLjA2em0tMy41Ni0yLjVsLTQuMTY3IDQuMTY3IDEuMDYgMS4wNiA0LjE2Ny00LjE2Ni0xLjA2LTEuMDYxeiIgZmlsbD0iIzIyMiIvPjwvc3ZnPg==");
+}
+
+.zoom-in {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTguMTY3IDExLjVWNC44MzNNNC44MzMgOC4xNjdIMTEuNW01IDguMzMzbC0zLjYtMy42MzltMS45MzMtNC42OTRhNi42NjcgNi42NjcgMCAxMS0xMy4zMzMgMCA2LjY2NyA2LjY2NyAwIDAxMTMuMzMzIDB6IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS13aWR0aD0iMS41Ii8+PC9zdmc+");
+}
+
+.zoom-121 {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEzIDloMG02IDEwbC00LjM0LTQuMzQ3TTE3IDlBOCA4IDAgMTExIDlhOCA4IDAgMDExNiAweiIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4=");
+}
+
+.zoom-out {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQuODMzIDguMTY3SDExLjVtNSA4LjMzM2wtMy42MTYtMy42MjJtMS45NS00LjcxMWE2LjY2NyA2LjY2NyAwIDExLTEzLjMzNCAwIDYuNjY3IDYuNjY3IDAgMDExMy4zMzMgMHoiIHN0cm9rZT0iIzE2MTUxMyIgc3Ryb2tlLXdpZHRoPSIxLjUiLz48L3N2Zz4=");
+}
+
+.validate {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEwIDIwbDYgNiAxNC0xNG04IDhjMCA5Ljk0MS04LjA1OSAxOC0xOCAxOFMyIDI5Ljk0MSAyIDIwIDEwLjA1OSAyIDIwIDJzMTggOC4wNTkgMTggMTh6IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS13aWR0aD0iNCIvPjwvc3ZnPg==");
+}
+
+.threedotmenu {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxNWExLjY2NyAxLjY2NyAwIDExMCAzLjMzM0ExLjY2NyAxLjY2NyAwIDAxMTAgMTV6bTEuNjY3LTVhMS42NjcgMS42NjcgMCAxMC0zLjMzNCAwIDEuNjY3IDEuNjY3IDAgMDAzLjMzNCAwem0wLTYuNjY3YTEuNjY3IDEuNjY3IDAgMTAtMy4zMzQgMCAxLjY2NyAxLjY2NyAwIDAwMy4zMzQgMHoiIGZpbGw9IiMyMjIiLz48L3N2Zz4=");
+}
+
+.cost-estimate {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI4IDEySDE2YTQgNCAwIDAwMCA4aDhhNCA0IDAgMDEwIDhIMTJtOC0yMHYyNG0xOC0xMmMwIDkuOTQxLTguMDU5IDE4LTE4IDE4UzIgMjkuOTQxIDIgMjAgMTAuMDU5IDIgMjAgMnMxOCA4LjA1OSAxOCAxOHoiIHN0cm9rZT0iIzE2MTUxMyIgc3Ryb2tlLXdpZHRoPSI0Ii8+PC9zdmc+");
+}
+
+.eye-show {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDIiIGhlaWdodD0iMzMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxIDJDMTIuMiAyIDUuMzMzIDExLjMzMyAzIDE2YzUuNiAxMS4yIDE0LjMzMyAxNCAxOCAxNCA4LjguOCAxNS42NjctOSAxOC0xNEMzNC4yIDQuOCAyNSAyIDIxIDJ6IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS13aWR0aD0iNCIvPjxwYXRoIGQ9Ik0yNyAxNmE2IDYgMCAxMS0xMiAwIDYgNiAwIDAxMTIgMHoiIHN0cm9rZT0iIzE2MTUxMyIgc3Ryb2tlLXdpZHRoPSI0Ii8+PC9zdmc+");
+}
+
+.eye-hide {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDQiIGhlaWdodD0iNDQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE4IDguNjM4QTEzLjE0NiAxMy4xNDYgMCAwMTIyIDhjNCAwIDEzLjIgMi43OTUgMTggMTMuOTc3LS44MTYgMS43NDYtMi4xODYgNC4wNzctNCA2LjMzOG0tMi4yNzcgMi41MzNDMzAuNTY4IDMzLjk2IDI2LjU0MiAzNi4zNjYgMjIgMzUuOTU0Yy0zLjY2NyAwLTEyLjQtMi43OTYtMTgtMTMuOTc3IDEuMzM4LTIuNjczIDQuMTY5LTYuODc4IDgtOS45NzltMTQuMjQzIDE0LjI0NWE2IDYgMCAxMS04LjQ4Ni04LjQ4Nk0yIDJsNDAgNDAiIHN0cm9rZT0iIzE2MTUxMyIgc3Ryb2tlLXdpZHRoPSI0Ii8+PC9zdmc+");
+}
+
+.add-plus {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIwIDB2NDBtMjAtMjBIMCIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjQiLz48L3N2Zz4=");
+}
+
+.left-palette {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM4IDE0SDJtMTIgMjRWMTRNMiAyaDM2djM2SDJWMnoiIHN0cm9rZT0iIzE2MTUxMyIgc3Ryb2tlLXdpZHRoPSI0Ii8+PC9zdmc+");
+}
+
+.library {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDZINnYzNmgxMG0wLTM2djM2bTAtMzZoMTBNMTYgNDJoMTBWNm0wIDBoMTBsNiAzNkgzMkwyNiA2em0tMTAgOGgxMHYyMEgxNm0wLTIwdjIwbTAtMjBINnYyMGgxMCIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjQiLz48L3N2Zz4=");
+}
+
+.padlock-open {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDJhMyAzIDAgMDAtMyAzdjQuOTI5aDExdjEyLjA2SDRWOS45MjhoM1Y1YTUgNSAwIDAxMTAgMHYxaC0yVjVhMyAzIDAgMDAtMy0zem0tNiA5LjkyOXY4LjA2aDEydi04LjA2SDZ6IiBmaWxsPSIjMTYxNTEzIi8+PHBhdGggZD0iTTEwIDE3di0yaDR2MmgtNHoiIGZpbGw9IiMxNjE1MTMiLz48L3N2Zz4=");
+}
+
+.padlock-closed {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDRhMyAzIDAgMDEzIDN2M0g5VjdhMyAzIDAgMDEzLTN6bTUgNlY3QTUgNSAwIDAwNyA3djNINHYxMmgxNlYxMGgtM3pNNiAxMmgxMnY4SDZ2LTh6IiBmaWxsPSIjMTYxNTEzIi8+PHBhdGggZD0iTTExIDE0aDJ2NGgtMnYtNHoiIGZpbGw9IiMxNjE1MTMiLz48L3N2Zz4=");
+}
+
+.add-property {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUgMTBoMTBtLTUtNXYxME0xIDFoMTh2MThIMVYxeiIgc3Ryb2tlPSIjMDQ3NTBhIiBzdHJva2Utd2lkdGg9IjIiLz48L3N2Zz4=");
+}
+
+.delete-property {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUuNzU3IDUuNzU3bDguNDg2IDguNDg2bTAtOC40ODZsLTguNDg2IDguNDg2TTEgMWgxOHYxOEgxVjF6IiBzdHJva2U9IiNiODEyMTIiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPg==");
+}
+
+.delete-layer {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUuNzU3IDUuNzU3bDguNDg2IDguNDg2bTAtOC40ODZsLTguNDg2IDguNDg2TTEgMWgxOHYxOEgxVjF6IiBzdHJva2U9IiNiODEyMTIiIHN0cm9rZS13aWR0aD0iMiIvPjwvc3ZnPg==");
+}
+
+.three-dot-menu {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMCAxNWExLjY2NyAxLjY2NyAwIDExMCAzLjMzM0ExLjY2NyAxLjY2NyAwIDAxMTAgMTV6bTEuNjY3LTVhMS42NjcgMS42NjcgMCAxMC0zLjMzNCAwIDEuNjY3IDEuNjY3IDAgMDAzLjMzNCAwem0wLTYuNjY3YTEuNjY3IDEuNjY3IDAgMTAtMy4zMzQgMCAxLjY2NyAxLjY2NyAwIDAwMy4zMzQgMHoiIGZpbGw9IiMyMjIiLz48L3N2Zz4=");
+}
+
+.settings {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTYuNSAxMC42NjdWNy4zMzNoLTEuOTEyYTUuNzc4IDUuNzc4IDAgMDAtLjQ1Ni0xLjEwOGwxLjM1LTEuMzUtMi4zNTctMi4zNTctMS4zNSAxLjM1Yy0uMzUtLjE4OS0uNzItLjM0MS0xLjEwOC0uNDU2VjEuNUg3LjMzM3YxLjkxMmMtLjM4Ny4xMTUtLjc1OS4yNjctMS4xMDguNDU2bC0xLjM1LTEuMzUtMi4zNTcgMi4zNTcgMS4zNSAxLjM1Yy0uMTg5LjM1LS4zNDEuNzItLjQ1NiAxLjEwOEgxLjV2My4zMzRoMS45MTJjLjExNS4zODcuMjY3Ljc1OS40NTYgMS4xMDhsLTEuMzUgMS4zNSAyLjM1NyAyLjM1NyAxLjM1LTEuMzVjLjM1LjE4OS43Mi4zNDEgMS4xMDguNDU2VjE2LjVoMy4zMzR2LTEuOTEyYy4zODctLjExNS43NTktLjI2NyAxLjEwOC0uNDU2bDEuMzUgMS4zNSAyLjM1Ny0yLjM1Ny0xLjM1LTEuMzVjLjE5LS4zNS4zNDEtLjcyLjQ1Ny0xLjEwOEgxNi41eiIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+PHBhdGggZD0iTTkgMTAuNjY3YTEuNjY3IDEuNjY3IDAgMTAwLTMuMzM0IDEuNjY3IDEuNjY3IDAgMDAwIDMuMzM0eiIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+PC9zdmc+");
+}
+
+.sort-ascending {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM2IDE4TDI0IDMwIDEyIDE4IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS13aWR0aD0iNCIvPjwvc3ZnPg==");
+}
+
+.sort-descending {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDMwbDEyLTEyIDEyIDEyIiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS13aWR0aD0iNCIvPjwvc3ZnPg==");
+}
+
+.ocd-design-modified {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE2IDE0Yy0zIDIuNjY3LTcuMiAxMC40IDAgMjBtLTQuNDM0LTI0Yy00LjIgMy43MzMtMTAuMDggMTQuNTYgMCAyOE0zMiAxNGMzIDIuNjY3IDcuMiAxMC40IDAgMjBtNC40MzQtMjRjNC4yIDMuNzMzIDEwLjA4IDE0LjU2IDAgMjhNMjggMjRhNCA0IDAgMTEtOCAwIDQgNCAwIDAxOCAweiIgc3Ryb2tlPSIjMDQ0MGMwIiBzdHJva2Utd2lkdGg9IjQiLz48L3N2Zz4=")
+}
+
+.ocd-validation-ok {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTggMjRING00MCAwaC00TTI0IDQwdjRtMC00MHY0bS0xMiA0TDggOG0yOCA0bDQtNG0tNCAyOGw0IDRtLTI4LTRsLTQgNG0yNi0xNmMwIDUuNTIzLTQuNDc3IDEwLTEwIDEwcy0xMC00LjQ3Ny0xMC0xMCA0LjQ3Ny0xMCAxMC0xMCAxMCA0LjQ3NyAxMCAxMHoiIHN0cm9rZT0iIzAxNzEwMSIgc3Ryb2tlLXdpZHRoPSI0Ii8+PC9zdmc+");
+}
+
+.ocd-validation-warning {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM0IDMwaDRhNiA2IDAgMTEwIDEySDEyYTggOCAwIDAxLTgtOGMwLTMuNzc2IDIuNjI0LTYuOTIyIDYuMTQ0LTcuNzYyQzEwLjk5OCAyMC40NDggMTUuOTcyIDE2IDIyIDE2YzYuNjI2IDAgMTIgNS4zNzIgMTIgMTJ2MnptMCAwaC0yYTYgNiAwIDAwLTYgNm0xNC0xNGg2bS04LTZsNi00bS0xMCAwbDQtNm0tMTAgNFY0IiBzdHJva2U9IiNiYzQ0MDgiIHN0cm9rZS13aWR0aD0iNCIvPjwvc3ZnPg==");
+}
+
+.ocd-validation-error {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTEyIDMyYTggOCAwIDAxLTgtOGMwLTMuNzc2IDIuNjI0LTYuOTIyIDYuMTQ0LTcuNzYyQzEwLjk5OCAxMC40NDggMTUuOTcyIDYgMjIgNmM2LjYyNiAwIDEyIDUuMzcyIDEyIDEydjJoNGE2IDYgMCAxMTAgMTJtLTE0LThsLTYgMTBoMTJsLTYgMTAiIHN0cm9rZT0iIzkwMDIwMiIgc3Ryb2tlLXdpZHRoPSI0Ii8+PC9zdmc+");
+}
+
+.ocd-panel-collapse-left {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgNmgzNnYzNkg2TTYgNnYzNk02IDZoMTJ2MzZINm0yNi0xMmwtNi02IDYtNiIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1taXRlcmxpbWl0PSIxMCIvPjwvc3ZnPg==");
+}
+
+.ocd-panel-collapse-right {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQyIDQySDZWNmgzNm0wIDM2VjZtMCAzNkgzMFY2aDEyTTE2IDE4bDYgNi02IDYiIHN0cm9rZT0iIzE2MTUxMyIgc3Ryb2tlLXdpZHRoPSI0IiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiLz48L3N2Zz4=");
+}
+
+.ocd-panel-collapse-both {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgMTZWNmgxMG0xNiAwaDEwdjEwbTAgMTZ2MTBIMzJtLTE2IDBINlYzMiIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjQiLz48L3N2Zz4=");
+}
+
+.ocd-panel-expand-left {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTYgNmgzNnYzNkg2TTYgNnYzNk02IDZoMTJ2MzZINm0yMC0yNGw2IDYtNiA2IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+PC9zdmc+");
+}
+
+.ocd-panel-expand-right {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTQyIDQySDZWNmgzNm0wIDM2VjZtMCAzNkgzMFY2aDEyTTIyIDMwbC02LTYgNi02IiBzdHJva2U9IiMxNjE1MTMiIHN0cm9rZS13aWR0aD0iNCIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIi8+PC9zdmc+");
+}
+
+.ocd-panel-expand-both {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE0IDR2MTBINE0zNCA0djEwaDEwbTAgMjBIMzR2MTBNNCAzNGgxMHYxMCIgc3Ryb2tlPSIjMTYxNTEzIiBzdHJva2Utd2lkdGg9IjQiLz48L3N2Zz4=");
+}
+
+/*
+** Element Themes
+*/
+
+.ocd-designer-tab-bar-theme {
+ background-color: white;
+}
+
+.ocd-designer-tab-theme {
+ background-color: white;
+}
+
+.ocd-designer-active-tab-theme {
+ background-color: #d1d1d4;
+}
+
+.ocd-properties-panel-theme {
+ background-color: white;
+}
+
+details > summary.summary-background {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgdHJhbnNmb3JtPSJtYXRyaXgoLTEgMCAwIDEgMjAgMCkiPjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgY3g9IjYuMTEiIGN5PSIzLjU1IiByeD0iMi4xMSIgcnk9IjIuMTUiLz48ZWxsaXBzZSBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIGN4PSI2LjExIiBjeT0iMTUuNTUiIHJ4PSIyLjExIiByeT0iMi4xNSIvPjxjaXJjbGUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBjeD0iMTMuMTUiIGN5PSI5LjU1IiByPSIyLjE1Ii8+PHBhdGggZD0iTTEgM2gzdjFIMXpNMTAgM2g4djFoLTh6TTEgOWg4djFIMXpNMTUgOWgzdjFoLTN6TTEgMTVoM3YxSDF6TTEwIDE1aDh2MWgtOHoiLz48L2c+PC9zdmc+");
+}
+
+details[open] > summary.summary-background {
+ background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGVsbGlwc2UgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwIiBjeD0iNi4xMSIgY3k9IjMuNTUiIHJ4PSIyLjExIiByeT0iMi4xNSIvPjxlbGxpcHNlIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMCIgY3g9IjYuMTEiIGN5PSIxNS41NSIgcng9IjIuMTEiIHJ5PSIyLjE1Ii8+PGNpcmNsZSBmaWxsPSJub25lIiBzdHJva2U9IiMwMDAiIGN4PSIxMy4xNSIgY3k9IjkuNTUiIHI9IjIuMTUiLz48cGF0aCBkPSJNMSAzaDN2MUgxek0xMCAzaDh2MWgtOHpNMSA5aDh2MUgxek0xNSA5aDN2MWgtM3pNMSAxNWgzdjFIMXpNMTAgMTVoOHYxaC04eiIvPjwvc3ZnPg==");
+}
+`
+}
+
+export default svgCssData
+
diff --git a/ocd/packages/desktop/src/facade/OcdCacheFacade.ts b/ocd/packages/desktop/src/facade/OcdCacheFacade.ts
index 261cd89f6..e5a4835a4 100644
--- a/ocd/packages/desktop/src/facade/OcdCacheFacade.ts
+++ b/ocd/packages/desktop/src/facade/OcdCacheFacade.ts
@@ -11,9 +11,9 @@ import { OcdCache } from "../components/OcdCache"
export namespace OcdCacheFacade {
export const loadCache = (): Promise => {
- return window.ocdAPI ? window.ocdAPI.loadCache() : new Promise((resolve, reject) => {reject('Load Cache Config: Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.loadCache() : Promise.reject(new Error('Currently Not Implemented'))
}
export const saveCache = (cache: OcdCache): Promise => {
- return window.ocdAPI ? window.ocdAPI.saveCache(cache) : new Promise((resolve, reject) => {reject('Save Cache Config: Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.saveCache(cache) : Promise.reject(new Error('Currently Not Implemented'))
}
}
diff --git a/ocd/packages/desktop/src/facade/OcdConfigFacade.ts b/ocd/packages/desktop/src/facade/OcdConfigFacade.ts
index 2b8ec7c54..3b52e62d5 100644
--- a/ocd/packages/desktop/src/facade/OcdConfigFacade.ts
+++ b/ocd/packages/desktop/src/facade/OcdConfigFacade.ts
@@ -11,9 +11,9 @@ import { OcdConsoleConfiguration } from "../components/OcdConsoleConfiguration"
export namespace OcdConfigFacade {
export const loadConsoleConfig = (): Promise => {
- return window.ocdAPI ? window.ocdAPI.loadConsoleConfig() : new Promise((resolve, reject) => {reject('Load Console Config: Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.loadConsoleConfig() : Promise.reject(new Error('Currently Not Implemented'))
}
export const saveConsoleConfig = (config: OcdConsoleConfiguration): Promise => {
- return window.ocdAPI ? window.ocdAPI.saveConsoleConfig(config) : new Promise((resolve, reject) => {reject('Save Console Config: Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.saveConsoleConfig(config) : Promise.reject(new Error('Currently Not Implemented'))
}
}
diff --git a/ocd/packages/desktop/src/facade/OcdDesignFacade.ts b/ocd/packages/desktop/src/facade/OcdDesignFacade.ts
index d5855b34b..d911484d5 100644
--- a/ocd/packages/desktop/src/facade/OcdDesignFacade.ts
+++ b/ocd/packages/desktop/src/facade/OcdDesignFacade.ts
@@ -14,30 +14,23 @@ export namespace OcdDesignFacade {
export const loadDesign = (filename: string): Promise => {
return window.ocdAPI ? window.ocdAPI.loadDesign(filename) : OcdDesignerBrowserActions.loadDesign(filename)
}
- export const saveDesign = (design: OcdDesign, filename: string): Promise => {
+ export const saveDesign = (design: OcdDesign, filename: string, suggestedFilename: string = ''): Promise => {
console.debug('OcdDesignFacade: saveDesign', filename, JSON.stringify(design, null, 2))
- return window.ocdAPI ? window.ocdAPI.saveDesign(JSON.stringify(design, null, 2), filename) : OcdDesignerBrowserActions.saveDesign(design, filename)
+ return window.ocdAPI ? window.ocdAPI.saveDesign(JSON.stringify(design, null, 2), filename, suggestedFilename) : OcdDesignerBrowserActions.saveDesign(design, filename)
}
export const discardConfirmation = (): Promise => {
return window.ocdAPI ? window.ocdAPI.discardConfirmation() : OcdDesignerBrowserActions.discardConfirmation()
}
export const exportTerraform = (design: OcdDesign, directory: string): Promise => {
- return window.ocdAPI ? window.ocdAPI.exportTerraform(design, directory) : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.exportTerraform(design, directory) : Promise.reject(new Error('Currently Not Implemented'))
}
export const loadLibraryIndex = (): Promise => {
- return window.ocdAPI ? window.ocdAPI.loadLibraryIndex() : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.loadLibraryIndex() : Promise.reject(new Error('Currently Not Implemented'))
}
export const loadLibraryDesign = (section: string, filename: string): Promise => {
- return window.ocdAPI ? window.ocdAPI.loadLibraryDesign(section, filename) : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.loadLibraryDesign(section, filename) : Promise.reject(new Error('Currently Not Implemented'))
+ }
+ export const loadSvgCssFiles = (): Promise => {
+ return window.ocdAPI ? window.ocdAPI.loadSvgCssFiles() : Promise.reject(new Error('Currently Not Implemented'))
}
}
-
-// // @ts-ignore
-// if (window.ocdAPI) window.ocdAPI.onOpenFile((event, filePath) => {
-// console.debug('OcdDesignFacade: onOpenFile', filePath)
-// OcdDesignFacade.loadDesign(filePath).then((results) => {
-// if (!results.canceled) {
-// console.debug(results.design)
-// }
-// }).catch((resp) => {console.warn('Load Design Failed with', resp)})
-// })
diff --git a/ocd/packages/desktop/src/facade/OcdExternalFacade.ts b/ocd/packages/desktop/src/facade/OcdExternalFacade.ts
index 802ac3e80..e368edea3 100644
--- a/ocd/packages/desktop/src/facade/OcdExternalFacade.ts
+++ b/ocd/packages/desktop/src/facade/OcdExternalFacade.ts
@@ -5,6 +5,6 @@
export namespace OcdExternalFacade {
export const openExternalUrl = (href: string): Promise => {
- return window.ocdAPI ? window.ocdAPI.openExternalUrl(href) : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.openExternalUrl(href) : Promise.reject(new Error('Currently Not Implemented'))
}
}
\ No newline at end of file
diff --git a/ocd/packages/desktop/src/facade/OciApiFacade.ts b/ocd/packages/desktop/src/facade/OciApiFacade.ts
index 56586deeb..5cb13cf82 100644
--- a/ocd/packages/desktop/src/facade/OciApiFacade.ts
+++ b/ocd/packages/desktop/src/facade/OciApiFacade.ts
@@ -9,24 +9,24 @@
export namespace OciApiFacade {
export const getVersion = (): Promise => {
- return window.ocdAPI ? window.ocdAPI.getVersion() : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.getVersion() : Promise.reject(new Error('Currently Not Implemented'))
}
export const loadOCIConfigProfileNames = (): Promise => {
- return window.ocdAPI ? window.ocdAPI.loadOCIConfigProfileNames() : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.loadOCIConfigProfileNames() : Promise.reject(new Error('Currently Not Implemented'))
}
export const loadOCIConfigProfile = (profile: string = 'shipped'): Promise => {
- return window.ocdAPI ? window.ocdAPI.loadOCIConfigProfile(profile) : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.loadOCIConfigProfile(profile) : Promise.reject(new Error('Currently Not Implemented'))
}
export const listRegions = (profile: string = 'DEFAULT'): Promise => {
- return window.ocdAPI ? window.ocdAPI.listRegions(profile) : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.listRegions(profile) : Promise.reject(new Error('Currently Not Implemented'))
}
export const listTenancyCompartments = (profile: string = 'DEFAULT'): Promise => {
- return window.ocdAPI ? window.ocdAPI.listTenancyCompartments(profile) : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ return window.ocdAPI ? window.ocdAPI.listTenancyCompartments(profile) : Promise.reject(new Error('Currently Not Implemented'))
}
- export const queryTenancy = (profile: string = 'DEFAULT', compartmentIds: string[] = [], region: string): Promise => {
- return window.ocdAPI ? window.ocdAPI.queryTenancy(profile, compartmentIds, region) : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ export const queryTenancy = (profile: string = 'DEFAULT', compartmentIds: string[] = [], region: string = 'uk-london-1'): Promise => {
+ return window.ocdAPI ? window.ocdAPI.queryTenancy(profile, compartmentIds, region) : Promise.reject(new Error('Currently Not Implemented'))
}
- export const queryDropdown = (profile: string = 'DEFAULT', region: string): Promise => {
- return window.ocdAPI ? window.ocdAPI.queryDropdown(profile, region) : new Promise((resolve, reject) => {reject('Currently Not Implemented')})
+ export const queryDropdown = (profile: string = 'DEFAULT', region: string = 'uk-london-1'): Promise => {
+ return window.ocdAPI ? window.ocdAPI.queryDropdown(profile, region) : Promise.reject(new Error('Currently Not Implemented'))
}
}
\ No newline at end of file
diff --git a/ocd/packages/desktop/src/pages/OcdConsole.tsx b/ocd/packages/desktop/src/pages/OcdConsole.tsx
index 8958e6ed0..e3adbd553 100644
--- a/ocd/packages/desktop/src/pages/OcdConsole.tsx
+++ b/ocd/packages/desktop/src/pages/OcdConsole.tsx
@@ -3,7 +3,7 @@
** Licensed under the GNU GENERAL PUBLIC LICENSE v 3.0 as shown at https://www.gnu.org/licenses/.
*/
-import React, { createContext, useContext, useEffect, useRef, useState } from 'react'
+import React, { createContext, useContext, useEffect, useMemo, useRef, useState } from 'react'
import { OcdDesigner, OcdDesignerLeftToolbar, OcdDesignerRightToolbar } from './OcdDesigner'
import { OcdDocument } from '../components/OcdDocument'
import OcdConsoleMenuBar from '../components/OcdConsoleMenuBar'
@@ -29,11 +29,6 @@ import OcdCommonTags from './OcdCommonTags'
import { OcdReferenceDataQueryDialog } from '../components/dialogs/OcdReferenceDataQueryDialog'
import { OcdActiveFileContext, OcdCacheContext, OcdConsoleConfigContext, OcdDocumentContext, OcdDragResourceContext, OcdSelectedResourceContext } from './OcdConsoleContext'
-// Import css as text
-// @ts-ignore
-// eslint-disable-next-line import/no-webpack-loader-syntax
-// import svgThemeCss from '!!css-loader?{"sourceMap":false,"exportType":"string"}!../css/oci-theme.css'
-
export const ThemeContext = createContext('')
export const ActiveFileContext = createContext({activeFile: {name: '', modified: false}, setActiveFile: () => {}})
export const ConsoleConfigContext = createContext({ocdConsoleConfig: OcdConsoleConfig.new(), setOcdConsoleConfig: () => {}})
@@ -43,12 +38,28 @@ export const SelectedResourceContext = createContext
export const DragResourceContext = createContext({dragResource: OcdDocument.newDragResource(), setDragResource: () => {}})
const OcdConsole = (): JSX.Element => {
- // console.debug('OcdConsole: CSS', svgThemeCss)
+ // State Variables
const [ocdDocument, setOcdDocument] = useState(OcdDocument.new())
const [ocdConsoleConfig, setOcdConsoleConfig] = useState(OcdConsoleConfig.new())
const [ocdCache, setOcdCache] = useState(OcdCacheData.new())
const [activeFile, setActiveFile] = useState({name: '', modified: false})
const [selectedResource, setSelectedResource] = useState({} as OcdSelectedResource)
+ // Memo Hooks
+ const activeFileContext = useMemo(() => ({activeFile, setActiveFile}), [activeFile])
+ const cacheContext = useMemo(() => ({ocdCache, setOcdCache}), [ocdCache])
+ const consoleConfigContext = useMemo(() => ({ocdConsoleConfig, setOcdConsoleConfig}), [ocdConsoleConfig])
+ const documentContext = useMemo(() => ({ocdDocument, setOcdDocument}), [ocdDocument])
+ const selectedResourceContext = useMemo(() => ({selectedResource, setSelectedResource}), [selectedResource])
+ // Effect Hooks
+ // Check if OKIT-Ocd opened because of Double Click on file on OS
+ useEffect(() => {
+ // @ts-ignore
+ if (window.ocdAPI) window.ocdAPI.onOpenFile((event, filePath) => { // Running as an Electron App
+ console.debug('OcdConsole: onOpenFile', filePath)
+ loadDesign(filePath, setOcdDocument, ocdConsoleConfig, setOcdConsoleConfig, setActiveFile)
+ })
+ }, []) // Empty Array to only run on initial render
+ // Load the Console Config Information
useEffect(() => {
OcdConfigFacade.loadConsoleConfig().then((results) => {
console.debug('OcdConsole: Load Console Config', results)
@@ -60,24 +71,18 @@ const OcdConsole = (): JSX.Element => {
// OcdConfigFacade.saveConsoleConfig(ocdConsoleConfig.config).then((results) => {console.debug('OcdConsole: Saved Console Config')}).catch((response) => console.debug('OcdConsole:', response))
})
}, []) // Empty Array to only run on initial render
+ // Load the Dropdown Resource Cache
useEffect(() => {
- // @ts-ignore
- if (window.ocdAPI) window.ocdAPI.onOpenFile((event, filePath) => { // Running as an Electron App
- console.debug('OcdConsole: onOpenFile', filePath)
- loadDesign(filePath, setOcdDocument, ocdConsoleConfig, setOcdConsoleConfig, setActiveFile)
+ OcdCacheFacade.loadCache().then((results) => {
+ console.debug('OcdConsole: Load Cache', results)
+ const cacheData = new OcdCacheData(results)
+ setOcdCache(cacheData)
+ }).catch((response) => {
+ console.debug('OcdConsole:', response)
+ OcdCacheFacade.saveCache(ocdCache.cache).then((results) => {console.debug('OcdConsole: Saved Cache')}).catch((response) => console.debug('OcdConsole:', response))
})
}, []) // Empty Array to only run on initial render
// useEffect(() => {
- // OcdCacheFacade.loadCache().then((results) => {
- // console.debug('OcdConsole: Load Cache', results)
- // const cacheData = new OcdCacheData(results)
- // setOcdCache(cacheData)
- // }).catch((response) => {
- // console.debug('OcdConsole:', response)
- // OcdCacheFacade.saveCache(ocdCache.cache).then((results) => {console.debug('OcdConsole: Saved Cache')}).catch((response) => console.debug('OcdConsole:', response))
- // })
- // }, []) // Empty Array to only run on initial render
- // useEffect(() => {
// if (ocdCache === undefined) {
// OcdCacheFacade.loadCache().then((results) => {
// console.debug('OcdConsole: Load Cache', results)
@@ -105,12 +110,14 @@ const OcdConsole = (): JSX.Element => {
// OcdCacheFacade.saveCache(cacheData.cache).then((results) => {console.debug('OcdConsole: Saved Cache')}).catch((response) => console.debug('OcdConsole:', response))
setOcdCache(cacheData)
}
+ console.debug('OcdConsole: Console Config', ocdConsoleConfig)
+ console.debug('OcdConsole: Dropdown Cache', ocdCache)
return (
-
-
-
-
-
+
+
+
+
+
setAndSaveOcdConsoleConfig(ocdConsoleConfig)} ocdDocument={ocdDocument} setOcdDocument={(ocdDocument:OcdDocument) => setOcdDocument(ocdDocument)} />
setAndSaveOcdConsoleConfig(ocdConsoleConfig)} ocdDocument={ocdDocument} setOcdDocument={(ocdDocument:OcdDocument) => setOcdDocument(ocdDocument)} />
@@ -172,7 +179,7 @@ const OcdConsoleSettingsEditor = ({ ocdConsoleConfig, setOcdConsoleConfig }: any
return (
diff --git a/ocd/packages/desktop/src/pages/OcdLibrary.tsx b/ocd/packages/desktop/src/pages/OcdLibrary.tsx
index a3f9b2654..62511419f 100644
--- a/ocd/packages/desktop/src/pages/OcdLibrary.tsx
+++ b/ocd/packages/desktop/src/pages/OcdLibrary.tsx
@@ -151,7 +151,7 @@ export const OcdLibrary = ({ ocdConsoleConfig, setOcdConsoleConfig, ocdDocument,
{tabs.map((k: string) => {
- return
+ return
})}
diff --git a/ocd/packages/desktop/src/renderer.d.ts b/ocd/packages/desktop/src/renderer.d.ts
index 0993cb08f..a31007334 100644
--- a/ocd/packages/desktop/src/renderer.d.ts
+++ b/ocd/packages/desktop/src/renderer.d.ts
@@ -19,11 +19,12 @@ export interface OcdElectronAPI {
queryDropdown: (profile: string, region: string) => Promise
// OCD Design
loadDesign: (filename: string) => Promise
- saveDesign: (design: OcdDesign | string, filename: string) => Promise
+ saveDesign: (design: OcdDesign | string, filename: string, suggestedFilename: string | undefined) => Promise
discardConfirmation: () => Promise
exportTerraform: (design: OcdDesign | string, directory: string) => Promise
loadLibraryIndex: () => Promise
loadLibraryDesign: (section: string, filename: string) => Promise
+ loadSvgCssFiles: () => Promise
// OCD Configuration
loadConsoleConfig: () => Promise
saveConsoleConfig: (config: OcdConsoleConfiguration) => Promise
diff --git a/ocd/packages/export/package.json b/ocd/packages/export/package.json
index c53f74ab6..f7f0a91bb 100644
--- a/ocd/packages/export/package.json
+++ b/ocd/packages/export/package.json
@@ -1,6 +1,6 @@
{
"name": "@ocd/export",
- "version": "0.2.4",
+ "version": "0.2.5",
"description": "OKIT Open Cloud Designer Export Module",
"title": "OKIT Open Cloud Designer Export Module",
"author": {
@@ -14,19 +14,33 @@
"okit"
],
"license": "UPL-1.0",
- "main": "lib/esm/index.js",
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./lib/esm/index.d.ts",
+ "default": "./lib/esm/index.js"
+ },
+ "require": {
+ "types": "./lib/cjs/index.d.ts",
+ "default": "./lib/cjs/index.js"
+ }
+ }
+ },
+ "main": "lib/cjs/index.js",
"module": "lib/esm/index.js",
+ "types": "lib/esm/index.d.js",
"files": [
"lib/"
],
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "clean": "rm -rf lib dist",
"pack": "mkdir -p dist && npm pack --pack-destination dist",
"compile": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
"build": "npm run compile && npm run pack"
},
"dependencies": {
- "@ocd/core": "^0.2.4",
- "@ocd/model": "^0.2.4"
+ "@ocd/core": ">=0.2.5",
+ "@ocd/model": ">=0.2.5"
}
}
diff --git a/ocd/packages/export/src/markdown/provider/azure/resources.ts b/ocd/packages/export/src/markdown/provider/azure/resources.ts
index 480859760..ff041b328 100644
--- a/ocd/packages/export/src/markdown/provider/azure/resources.ts
+++ b/ocd/packages/export/src/markdown/provider/azure/resources.ts
@@ -15,9 +15,9 @@ export { AzureDnsZone } from './resources/AzureDnsZone'
export { AzureKubernetesCluster } from './resources/AzureKubernetesCluster'
export { AzureLoadBalancer } from './resources/AzureLoadBalancer'
export { AzureMssqlServer } from './resources/AzureMssqlServer'
-export { AzureOracledatabaseAutonomousDatabaseRegular } from './resources/AzureOracledatabaseAutonomousDatabaseRegular'
-export { AzureOracledatabaseCloudVmCluster } from './resources/AzureOracledatabaseCloudVmCluster'
-export { AzureOracledatabaseExadataInfrastructure } from './resources/AzureOracledatabaseExadataInfrastructure'
+export { AzureOracleAutonomousDatabase } from './resources/AzureOracleAutonomousDatabase'
+export { AzureOracleCloudVmCluster } from './resources/AzureOracleCloudVmCluster'
+export { AzureOracleExadataInfrastructure } from './resources/AzureOracleExadataInfrastructure'
export { AzureResourceGroup } from './resources/AzureResourceGroup'
export { AzureSubnet } from './resources/AzureSubnet'
export { AzureVirtualMachine } from './resources/AzureVirtualMachine'
diff --git a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleAutonomousDatabase.ts b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleAutonomousDatabase.ts
new file mode 100644
index 000000000..e3d3f7206
--- /dev/null
+++ b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleAutonomousDatabase.ts
@@ -0,0 +1,11 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+ import * as AutoGenerated from "./generated/AzureOracleAutonomousDatabase"
+
+ export class AzureOracleAutonomousDatabase extends AutoGenerated.AzureOracleAutonomousDatabase {}
+
+ export default AzureOracleAutonomousDatabase
+
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleCloudVmCluster.ts b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleCloudVmCluster.ts
new file mode 100644
index 000000000..d63b19cd6
--- /dev/null
+++ b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleCloudVmCluster.ts
@@ -0,0 +1,11 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+ import * as AutoGenerated from "./generated/AzureOracleCloudVmCluster"
+
+ export class AzureOracleCloudVmCluster extends AutoGenerated.AzureOracleCloudVmCluster {}
+
+ export default AzureOracleCloudVmCluster
+
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleExadataInfrastructure.ts b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleExadataInfrastructure.ts
new file mode 100644
index 000000000..81e65b878
--- /dev/null
+++ b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracleExadataInfrastructure.ts
@@ -0,0 +1,11 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+ import * as AutoGenerated from "./generated/AzureOracleExadataInfrastructure"
+
+ export class AzureOracleExadataInfrastructure extends AutoGenerated.AzureOracleExadataInfrastructure {}
+
+ export default AzureOracleExadataInfrastructure
+
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts
deleted file mode 100644
index 982266b03..000000000
--- a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/AzureOracledatabaseAutonomousDatabaseRegular"
-
- export class AzureOracledatabaseAutonomousDatabaseRegular extends AutoGenerated.AzureOracledatabaseAutonomousDatabaseRegular {}
-
- export default AzureOracledatabaseAutonomousDatabaseRegular
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts
deleted file mode 100644
index da70ca68c..000000000
--- a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/AzureOracledatabaseCloudVmCluster"
-
- export class AzureOracledatabaseCloudVmCluster extends AutoGenerated.AzureOracledatabaseCloudVmCluster {}
-
- export default AzureOracledatabaseCloudVmCluster
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts b/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts
deleted file mode 100644
index 9bd77e411..000000000
--- a/ocd/packages/export/src/markdown/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/AzureOracledatabaseExadataInfrastructure"
-
- export class AzureOracledatabaseExadataInfrastructure extends AutoGenerated.AzureOracledatabaseExadataInfrastructure {}
-
- export default AzureOracledatabaseExadataInfrastructure
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/google/resources.ts b/ocd/packages/export/src/markdown/provider/google/resources.ts
index f133edf5a..dbc4f5453 100644
--- a/ocd/packages/export/src/markdown/provider/google/resources.ts
+++ b/ocd/packages/export/src/markdown/provider/google/resources.ts
@@ -11,7 +11,7 @@
*/
export { GoogleComputeNetwork } from './resources/GoogleComputeNetwork'
-export { GoogleOracledatabaseAutonomousDatabaseRegular } from './resources/GoogleOracledatabaseAutonomousDatabaseRegular'
-export { GoogleOracledatabaseCloudVmCluster } from './resources/GoogleOracledatabaseCloudVmCluster'
-export { GoogleOracledatabaseExadataInfrastructure } from './resources/GoogleOracledatabaseExadataInfrastructure'
+export { GoogleOracleDatabaseAutonomousDatabase } from './resources/GoogleOracleDatabaseAutonomousDatabase'
+export { GoogleOracleDatabaseCloudExadataInfrastructure } from './resources/GoogleOracleDatabaseCloudExadataInfrastructure'
+export { GoogleOracleDatabaseCloudVmCluster } from './resources/GoogleOracleDatabaseCloudVmCluster'
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts
new file mode 100644
index 000000000..95af50cdc
--- /dev/null
+++ b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts
@@ -0,0 +1,11 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+ import * as AutoGenerated from "./generated/GoogleOracleDatabaseAutonomousDatabase"
+
+ export class GoogleOracleDatabaseAutonomousDatabase extends AutoGenerated.GoogleOracleDatabaseAutonomousDatabase {}
+
+ export default GoogleOracleDatabaseAutonomousDatabase
+
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts
new file mode 100644
index 000000000..4fb512f1c
--- /dev/null
+++ b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts
@@ -0,0 +1,11 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+ import * as AutoGenerated from "./generated/GoogleOracleDatabaseCloudExadataInfrastructure"
+
+ export class GoogleOracleDatabaseCloudExadataInfrastructure extends AutoGenerated.GoogleOracleDatabaseCloudExadataInfrastructure {}
+
+ export default GoogleOracleDatabaseCloudExadataInfrastructure
+
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
new file mode 100644
index 000000000..24f494679
--- /dev/null
+++ b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
@@ -0,0 +1,11 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+ import * as AutoGenerated from "./generated/GoogleOracleDatabaseCloudVmCluster"
+
+ export class GoogleOracleDatabaseCloudVmCluster extends AutoGenerated.GoogleOracleDatabaseCloudVmCluster {}
+
+ export default GoogleOracleDatabaseCloudVmCluster
+
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts
deleted file mode 100644
index 8481ba211..000000000
--- a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/GoogleOracledatabaseAutonomousDatabaseRegular"
-
- export class GoogleOracledatabaseAutonomousDatabaseRegular extends AutoGenerated.GoogleOracledatabaseAutonomousDatabaseRegular {}
-
- export default GoogleOracledatabaseAutonomousDatabaseRegular
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts
deleted file mode 100644
index 1c0e7e579..000000000
--- a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/GoogleOracledatabaseCloudVmCluster"
-
- export class GoogleOracledatabaseCloudVmCluster extends AutoGenerated.GoogleOracledatabaseCloudVmCluster {}
-
- export default GoogleOracledatabaseCloudVmCluster
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts b/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts
deleted file mode 100644
index 3ed4bfb16..000000000
--- a/ocd/packages/export/src/markdown/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/GoogleOracledatabaseExadataInfrastructure"
-
- export class GoogleOracledatabaseExadataInfrastructure extends AutoGenerated.GoogleOracledatabaseExadataInfrastructure {}
-
- export default GoogleOracledatabaseExadataInfrastructure
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/terraform/AzureExporter.ts b/ocd/packages/export/src/terraform/AzureExporter.ts
index e86c7af58..286ad0e7f 100644
--- a/ocd/packages/export/src/terraform/AzureExporter.ts
+++ b/ocd/packages/export/src/terraform/AzureExporter.ts
@@ -40,7 +40,7 @@ export class AzureExporter extends OcdProviderExporter {
// "azure_connection.tfvars": [this.azureProviderTFVars()],
"azure_connection.tfvars": [this.azureProviderTFVars()],
"azure_metadata.tf": [this.azureMetadata()],
- ...uniqueFilenames.sort(OcdUtils.simpleSort).reduce((a, c) => {a[c] = [this.autoGeneratedNotice()]; return a}, {} as Record),
+ ...uniqueFilenames.toSorted(OcdUtils.simpleSort).reduce((a, c) => {a[c] = [this.autoGeneratedNotice()]; return a}, {} as Record),
// "azure_user_variables.tf": [this.azureUserVariables(design)],
}
// Generate Azure Terraform
diff --git a/ocd/packages/export/src/terraform/GoogleExporter.ts b/ocd/packages/export/src/terraform/GoogleExporter.ts
index 8050035e8..8e34ac29d 100644
--- a/ocd/packages/export/src/terraform/GoogleExporter.ts
+++ b/ocd/packages/export/src/terraform/GoogleExporter.ts
@@ -31,7 +31,7 @@ export class GoogleExporter extends OcdProviderExporter {
"google_provider_variables.tf": [this.googleProviderVariables()],
"google_connection.tfvars": [this.googleProviderTFVars()],
"google_metadata.tf": [this.googleMetadata()],
- ...uniqueFilenames.sort(OcdUtils.simpleSort).reduce((a, c) => {a[c] = [this.autoGeneratedNotice()]; return a}, {} as Record),
+ ...uniqueFilenames.toSorted(OcdUtils.simpleSort).reduce((a, c) => {a[c] = [this.autoGeneratedNotice()]; return a}, {} as Record),
"google_user_variables.tf": [this.googleUserVariables(design)],
}
// Generate Google Terraform
diff --git a/ocd/packages/export/src/terraform/OciExporter.ts b/ocd/packages/export/src/terraform/OciExporter.ts
index be6f25578..ae765e4ab 100644
--- a/ocd/packages/export/src/terraform/OciExporter.ts
+++ b/ocd/packages/export/src/terraform/OciExporter.ts
@@ -87,7 +87,7 @@ export class OciExporter extends OcdProviderExporter {
"oci_provider_variables.tf": [this.ociProviderVariables()],
"oci_connection.tfvars": [this.ociProviderTFVars()],
"oci_metadata.tf": [this.ociMetadata()],
- ...uniqueFilenames.sort(OcdUtils.simpleSort).reduce((a, c) => {a[c] = [this.autoGeneratedNotice()]; return a}, {} as Record),
+ ...uniqueFilenames.toSorted(OcdUtils.simpleSort).reduce((a, c) => {a[c] = [this.autoGeneratedNotice()]; return a}, {} as Record),
"oci_user_variables.tf": [this.ociUserVariables(design)],
}
// Id to Terraform Resource Name Map
diff --git a/ocd/packages/export/src/terraform/provider/azure/resources.ts b/ocd/packages/export/src/terraform/provider/azure/resources.ts
index 480859760..ff041b328 100644
--- a/ocd/packages/export/src/terraform/provider/azure/resources.ts
+++ b/ocd/packages/export/src/terraform/provider/azure/resources.ts
@@ -15,9 +15,9 @@ export { AzureDnsZone } from './resources/AzureDnsZone'
export { AzureKubernetesCluster } from './resources/AzureKubernetesCluster'
export { AzureLoadBalancer } from './resources/AzureLoadBalancer'
export { AzureMssqlServer } from './resources/AzureMssqlServer'
-export { AzureOracledatabaseAutonomousDatabaseRegular } from './resources/AzureOracledatabaseAutonomousDatabaseRegular'
-export { AzureOracledatabaseCloudVmCluster } from './resources/AzureOracledatabaseCloudVmCluster'
-export { AzureOracledatabaseExadataInfrastructure } from './resources/AzureOracledatabaseExadataInfrastructure'
+export { AzureOracleAutonomousDatabase } from './resources/AzureOracleAutonomousDatabase'
+export { AzureOracleCloudVmCluster } from './resources/AzureOracleCloudVmCluster'
+export { AzureOracleExadataInfrastructure } from './resources/AzureOracleExadataInfrastructure'
export { AzureResourceGroup } from './resources/AzureResourceGroup'
export { AzureSubnet } from './resources/AzureSubnet'
export { AzureVirtualMachine } from './resources/AzureVirtualMachine'
diff --git a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleAutonomousDatabase.ts b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleAutonomousDatabase.ts
new file mode 100644
index 000000000..61630a60e
--- /dev/null
+++ b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleAutonomousDatabase.ts
@@ -0,0 +1,10 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from "./generated/AzureOracleAutonomousDatabase"
+
+export class AzureOracleAutonomousDatabase extends AutoGenerated.AzureOracleAutonomousDatabase {}
+
+export default AzureOracleAutonomousDatabase
diff --git a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleCloudVmCluster.ts b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleCloudVmCluster.ts
new file mode 100644
index 000000000..91b98fccf
--- /dev/null
+++ b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleCloudVmCluster.ts
@@ -0,0 +1,10 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from "./generated/AzureOracleCloudVmCluster"
+
+export class AzureOracleCloudVmCluster extends AutoGenerated.AzureOracleCloudVmCluster {}
+
+export default AzureOracleCloudVmCluster
diff --git a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleExadataInfrastructure.ts b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleExadataInfrastructure.ts
new file mode 100644
index 000000000..c387f1ac0
--- /dev/null
+++ b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracleExadataInfrastructure.ts
@@ -0,0 +1,10 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from "./generated/AzureOracleExadataInfrastructure"
+
+export class AzureOracleExadataInfrastructure extends AutoGenerated.AzureOracleExadataInfrastructure {}
+
+export default AzureOracleExadataInfrastructure
diff --git a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts
deleted file mode 100644
index 982266b03..000000000
--- a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/AzureOracledatabaseAutonomousDatabaseRegular"
-
- export class AzureOracledatabaseAutonomousDatabaseRegular extends AutoGenerated.AzureOracledatabaseAutonomousDatabaseRegular {}
-
- export default AzureOracledatabaseAutonomousDatabaseRegular
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts
deleted file mode 100644
index da70ca68c..000000000
--- a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/AzureOracledatabaseCloudVmCluster"
-
- export class AzureOracledatabaseCloudVmCluster extends AutoGenerated.AzureOracledatabaseCloudVmCluster {}
-
- export default AzureOracledatabaseCloudVmCluster
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts b/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts
deleted file mode 100644
index 9bd77e411..000000000
--- a/ocd/packages/export/src/terraform/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
- import * as AutoGenerated from "./generated/AzureOracledatabaseExadataInfrastructure"
-
- export class AzureOracledatabaseExadataInfrastructure extends AutoGenerated.AzureOracledatabaseExadataInfrastructure {}
-
- export default AzureOracledatabaseExadataInfrastructure
-
\ No newline at end of file
diff --git a/ocd/packages/export/src/terraform/provider/google/resources.ts b/ocd/packages/export/src/terraform/provider/google/resources.ts
index f133edf5a..dbc4f5453 100644
--- a/ocd/packages/export/src/terraform/provider/google/resources.ts
+++ b/ocd/packages/export/src/terraform/provider/google/resources.ts
@@ -11,7 +11,7 @@
*/
export { GoogleComputeNetwork } from './resources/GoogleComputeNetwork'
-export { GoogleOracledatabaseAutonomousDatabaseRegular } from './resources/GoogleOracledatabaseAutonomousDatabaseRegular'
-export { GoogleOracledatabaseCloudVmCluster } from './resources/GoogleOracledatabaseCloudVmCluster'
-export { GoogleOracledatabaseExadataInfrastructure } from './resources/GoogleOracledatabaseExadataInfrastructure'
+export { GoogleOracleDatabaseAutonomousDatabase } from './resources/GoogleOracleDatabaseAutonomousDatabase'
+export { GoogleOracleDatabaseCloudExadataInfrastructure } from './resources/GoogleOracleDatabaseCloudExadataInfrastructure'
+export { GoogleOracleDatabaseCloudVmCluster } from './resources/GoogleOracleDatabaseCloudVmCluster'
\ No newline at end of file
diff --git a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts
new file mode 100644
index 000000000..8eff7c0cd
--- /dev/null
+++ b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts
@@ -0,0 +1,10 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from "./generated/GoogleOracleDatabaseAutonomousDatabase"
+
+export class GoogleOracleDatabaseAutonomousDatabase extends AutoGenerated.GoogleOracleDatabaseAutonomousDatabase {}
+
+export default GoogleOracleDatabaseAutonomousDatabase
diff --git a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts
new file mode 100644
index 000000000..abbea1535
--- /dev/null
+++ b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts
@@ -0,0 +1,10 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from "./generated/GoogleOracleDatabaseCloudExadataInfrastructure"
+
+export class GoogleOracleDatabaseCloudExadataInfrastructure extends AutoGenerated.GoogleOracleDatabaseCloudExadataInfrastructure {}
+
+export default GoogleOracleDatabaseCloudExadataInfrastructure
diff --git a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
new file mode 100644
index 000000000..77ad2554d
--- /dev/null
+++ b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
@@ -0,0 +1,10 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from "./generated/GoogleOracleDatabaseCloudVmCluster"
+
+export class GoogleOracleDatabaseCloudVmCluster extends AutoGenerated.GoogleOracleDatabaseCloudVmCluster {}
+
+export default GoogleOracleDatabaseCloudVmCluster
diff --git a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts
deleted file mode 100644
index bc1f27078..000000000
--- a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import * as AutoGenerated from "./generated/GoogleOracledatabaseAutonomousDatabaseRegular"
-
-export class GoogleOracledatabaseAutonomousDatabaseRegular extends AutoGenerated.GoogleOracledatabaseAutonomousDatabaseRegular {}
-
-export default GoogleOracledatabaseAutonomousDatabaseRegular
diff --git a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts
deleted file mode 100644
index 67b839593..000000000
--- a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import * as AutoGenerated from "./generated/GoogleOracledatabaseCloudVmCluster"
-
-export class GoogleOracledatabaseCloudVmCluster extends AutoGenerated.GoogleOracledatabaseCloudVmCluster {}
-
-export default GoogleOracledatabaseCloudVmCluster
diff --git a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts b/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts
deleted file mode 100644
index 01b862122..000000000
--- a/ocd/packages/export/src/terraform/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import * as AutoGenerated from "./generated/GoogleOracledatabaseExadataInfrastructure"
-
-export class GoogleOracledatabaseExadataInfrastructure extends AutoGenerated.GoogleOracledatabaseExadataInfrastructure {}
-
-export default GoogleOracledatabaseExadataInfrastructure
diff --git a/ocd/packages/import/package.json b/ocd/packages/import/package.json
index 95af84135..db93d3abb 100644
--- a/ocd/packages/import/package.json
+++ b/ocd/packages/import/package.json
@@ -1,6 +1,6 @@
{
"name": "@ocd/import",
- "version": "0.2.4",
+ "version": "0.2.5",
"description": "OKIT Open Cloud Designer Import Module",
"title": "OKIT Open Cloud Designer Import Module",
"author": {
@@ -14,19 +14,33 @@
"okit"
],
"license": "UPL-1.0",
- "main": "lib/esm/index.js",
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./lib/esm/index.d.ts",
+ "default": "./lib/esm/index.js"
+ },
+ "require": {
+ "types": "./lib/cjs/index.d.ts",
+ "default": "./lib/cjs/index.js"
+ }
+ }
+ },
+ "main": "lib/cjs/index.js",
"module": "lib/esm/index.js",
+ "types": "lib/esm/index.d.js",
"files": [
"lib/"
],
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "clean": "rm -rf lib dist",
"pack": "mkdir -p dist && npm pack --pack-destination dist",
"compile": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
"build": "npm run compile && npm run pack"
},
"dependencies": {
- "@ocd/core": "^0.2.4",
- "@ocd/model": "^0.2.4"
+ "@ocd/core": ">=0.2.5",
+ "@ocd/model": ">=0.2.5"
}
}
diff --git a/ocd/packages/model/package.json b/ocd/packages/model/package.json
index be182df07..fd87b041d 100644
--- a/ocd/packages/model/package.json
+++ b/ocd/packages/model/package.json
@@ -1,6 +1,6 @@
{
"name": "@ocd/model",
- "version": "0.2.4",
+ "version": "0.2.5",
"description": "OKIT Open Cloud Designer Model Definition Module",
"title": "OKIT Open Cloud Designer Model Definition Module",
"author": {
@@ -14,18 +14,32 @@
"okit"
],
"license": "UPL-1.0",
- "main": "lib/esm/index.js",
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./lib/esm/index.d.ts",
+ "default": "./lib/esm/index.js"
+ },
+ "require": {
+ "types": "./lib/cjs/index.d.ts",
+ "default": "./lib/cjs/index.js"
+ }
+ }
+ },
+ "main": "lib/cjs/index.js",
"module": "lib/esm/index.js",
+ "types": "lib/esm/index.d.js",
"files": [
"lib/"
],
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "clean": "rm -rf lib dist",
"pack": "mkdir -p dist && npm pack --pack-destination dist",
"compile": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
"build": "npm run compile && npm run pack"
},
"dependencies": {
- "@ocd/core": "^0.2.4"
+ "@ocd/core": ">=0.2.5"
}
}
diff --git a/ocd/packages/model/src/provider/azure/resources.ts b/ocd/packages/model/src/provider/azure/resources.ts
index dc9a52e15..eab0d0734 100644
--- a/ocd/packages/model/src/provider/azure/resources.ts
+++ b/ocd/packages/model/src/provider/azure/resources.ts
@@ -15,9 +15,9 @@ export { AzureDnsZone, AzureDnsZoneClient } from './resources/AzureDnsZone'
export { AzureKubernetesCluster, AzureKubernetesClusterClient } from './resources/AzureKubernetesCluster'
export { AzureLoadBalancer, AzureLoadBalancerClient } from './resources/AzureLoadBalancer'
export { AzureMssqlServer, AzureMssqlServerClient } from './resources/AzureMssqlServer'
-export { AzureOracledatabaseAutonomousDatabaseRegular, AzureOracledatabaseAutonomousDatabaseRegularClient } from './resources/AzureOracledatabaseAutonomousDatabaseRegular'
-export { AzureOracledatabaseCloudVmCluster, AzureOracledatabaseCloudVmClusterClient } from './resources/AzureOracledatabaseCloudVmCluster'
-export { AzureOracledatabaseExadataInfrastructure, AzureOracledatabaseExadataInfrastructureClient } from './resources/AzureOracledatabaseExadataInfrastructure'
+export { AzureOracleAutonomousDatabase, AzureOracleAutonomousDatabaseClient } from './resources/AzureOracleAutonomousDatabase'
+export { AzureOracleCloudVmCluster, AzureOracleCloudVmClusterClient } from './resources/AzureOracleCloudVmCluster'
+export { AzureOracleExadataInfrastructure, AzureOracleExadataInfrastructureClient } from './resources/AzureOracleExadataInfrastructure'
export { AzureResourceGroup, AzureResourceGroupClient } from './resources/AzureResourceGroup'
export { AzureSubnet, AzureSubnetClient } from './resources/AzureSubnet'
export { AzureVirtualMachine, AzureVirtualMachineClient } from './resources/AzureVirtualMachine'
diff --git a/ocd/packages/model/src/provider/azure/resources/AzureOracleAutonomousDatabase.ts b/ocd/packages/model/src/provider/azure/resources/AzureOracleAutonomousDatabase.ts
new file mode 100644
index 000000000..9e187cd3b
--- /dev/null
+++ b/ocd/packages/model/src/provider/azure/resources/AzureOracleAutonomousDatabase.ts
@@ -0,0 +1,48 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import { OcdResources } from "../../../OcdDesign"
+import * as AutoGenerated from "./generated/AzureOracleAutonomousDatabase"
+
+export interface AzureOracleAutonomousDatabase extends AutoGenerated.AzureOracleAutonomousDatabase {}
+
+export namespace AzureOracleAutonomousDatabase {
+
+ export function newResource(type?: string): AzureOracleAutonomousDatabase {
+ const resource = {
+ ...AutoGenerated.AzureOracleAutonomousDatabase.newResource('oracle_autonomous_database'),
+ }
+ return resource
+ }
+ export function cloneResource(resource: AzureOracleAutonomousDatabase, type?: string): AzureOracleAutonomousDatabase {
+ return AutoGenerated.AzureOracleAutonomousDatabase.cloneResource(resource, 'oracle_autonomous_database') as AzureOracleAutonomousDatabase
+ }
+ export function allowedParentTypes(): string[] {
+ return []
+ }
+ export function getParentId(resource: AzureOracleAutonomousDatabase): string {
+ const parentId = resource.compartmentId
+ return parentId
+ }
+ export function setParentId(resource: AzureOracleAutonomousDatabase, parentId: string): AzureOracleAutonomousDatabase {
+ return resource
+ }
+ export function getConnectionIds(resource: AzureOracleAutonomousDatabase, allResources: OcdResources): string[] {
+ // This List of Ids does not include the Parent Id or Compartment Id
+ let associationIds: string[] = []
+ return associationIds
+ }
+}
+
+export class AzureOracleAutonomousDatabaseClient extends AutoGenerated.AzureOracleAutonomousDatabaseClient {
+ static new(): AzureOracleAutonomousDatabase {
+ return AzureOracleAutonomousDatabase.newResource()
+ }
+ static clone(resource: AzureOracleAutonomousDatabase): AzureOracleAutonomousDatabase {
+ return AzureOracleAutonomousDatabase.cloneResource(resource)
+ }
+}
+
+export default AzureOracleAutonomousDatabaseClient
diff --git a/ocd/packages/model/src/provider/azure/resources/AzureOracleCloudVmCluster.ts b/ocd/packages/model/src/provider/azure/resources/AzureOracleCloudVmCluster.ts
new file mode 100644
index 000000000..eb11b2f5a
--- /dev/null
+++ b/ocd/packages/model/src/provider/azure/resources/AzureOracleCloudVmCluster.ts
@@ -0,0 +1,48 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import { OcdResources } from "../../../OcdDesign"
+import * as AutoGenerated from "./generated/AzureOracleCloudVmCluster"
+
+export interface AzureOracleCloudVmCluster extends AutoGenerated.AzureOracleCloudVmCluster {}
+
+export namespace AzureOracleCloudVmCluster {
+
+ export function newResource(type?: string): AzureOracleCloudVmCluster {
+ const resource = {
+ ...AutoGenerated.AzureOracleCloudVmCluster.newResource('oracle_cloud_vm_cluster'),
+ }
+ return resource
+ }
+ export function cloneResource(resource: AzureOracleCloudVmCluster, type?: string): AzureOracleCloudVmCluster {
+ return AutoGenerated.AzureOracleCloudVmCluster.cloneResource(resource, 'oracle_cloud_vm_cluster') as AzureOracleCloudVmCluster
+ }
+ export function allowedParentTypes(): string[] {
+ return []
+ }
+ export function getParentId(resource: AzureOracleCloudVmCluster): string {
+ const parentId = resource.compartmentId
+ return parentId
+ }
+ export function setParentId(resource: AzureOracleCloudVmCluster, parentId: string): AzureOracleCloudVmCluster {
+ return resource
+ }
+ export function getConnectionIds(resource: AzureOracleCloudVmCluster, allResources: OcdResources): string[] {
+ // This List of Ids does not include the Parent Id or Compartment Id
+ let associationIds: string[] = []
+ return associationIds
+ }
+}
+
+export class AzureOracleCloudVmClusterClient extends AutoGenerated.AzureOracleCloudVmClusterClient {
+ static new(): AzureOracleCloudVmCluster {
+ return AzureOracleCloudVmCluster.newResource()
+ }
+ static clone(resource: AzureOracleCloudVmCluster): AzureOracleCloudVmCluster {
+ return AzureOracleCloudVmCluster.cloneResource(resource)
+ }
+}
+
+export default AzureOracleCloudVmClusterClient
diff --git a/ocd/packages/model/src/provider/azure/resources/AzureOracleExadataInfrastructure.ts b/ocd/packages/model/src/provider/azure/resources/AzureOracleExadataInfrastructure.ts
new file mode 100644
index 000000000..bd0e82f13
--- /dev/null
+++ b/ocd/packages/model/src/provider/azure/resources/AzureOracleExadataInfrastructure.ts
@@ -0,0 +1,48 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import { OcdResources } from "../../../OcdDesign"
+import * as AutoGenerated from "./generated/AzureOracleExadataInfrastructure"
+
+export interface AzureOracleExadataInfrastructure extends AutoGenerated.AzureOracleExadataInfrastructure {}
+
+export namespace AzureOracleExadataInfrastructure {
+
+ export function newResource(type?: string): AzureOracleExadataInfrastructure {
+ const resource = {
+ ...AutoGenerated.AzureOracleExadataInfrastructure.newResource('oracle_exadata_infrastructure'),
+ }
+ return resource
+ }
+ export function cloneResource(resource: AzureOracleExadataInfrastructure, type?: string): AzureOracleExadataInfrastructure {
+ return AutoGenerated.AzureOracleExadataInfrastructure.cloneResource(resource, 'oracle_exadata_infrastructure') as AzureOracleExadataInfrastructure
+ }
+ export function allowedParentTypes(): string[] {
+ return []
+ }
+ export function getParentId(resource: AzureOracleExadataInfrastructure): string {
+ const parentId = resource.compartmentId
+ return parentId
+ }
+ export function setParentId(resource: AzureOracleExadataInfrastructure, parentId: string): AzureOracleExadataInfrastructure {
+ return resource
+ }
+ export function getConnectionIds(resource: AzureOracleExadataInfrastructure, allResources: OcdResources): string[] {
+ // This List of Ids does not include the Parent Id or Compartment Id
+ let associationIds: string[] = []
+ return associationIds
+ }
+}
+
+export class AzureOracleExadataInfrastructureClient extends AutoGenerated.AzureOracleExadataInfrastructureClient {
+ static new(): AzureOracleExadataInfrastructure {
+ return AzureOracleExadataInfrastructure.newResource()
+ }
+ static clone(resource: AzureOracleExadataInfrastructure): AzureOracleExadataInfrastructure {
+ return AzureOracleExadataInfrastructure.cloneResource(resource)
+ }
+}
+
+export default AzureOracleExadataInfrastructureClient
diff --git a/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts b/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts
deleted file mode 100644
index 6d778eab2..000000000
--- a/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import { OcdResources } from "../../../OcdDesign"
-import * as AutoGenerated from "./generated/AzureOracledatabaseAutonomousDatabaseRegular"
-
-export interface AzureOracledatabaseAutonomousDatabaseRegular extends AutoGenerated.AzureOracledatabaseAutonomousDatabaseRegular {}
-
-export namespace AzureOracledatabaseAutonomousDatabaseRegular {
-
- export function newResource(type?: string): AzureOracledatabaseAutonomousDatabaseRegular {
- const resource = {
- ...AutoGenerated.AzureOracledatabaseAutonomousDatabaseRegular.newResource('oracledatabase_autonomous_database_regular'),
- }
- return resource
- }
- export function cloneResource(resource: AzureOracledatabaseAutonomousDatabaseRegular, type?: string): AzureOracledatabaseAutonomousDatabaseRegular {
- return AutoGenerated.AzureOracledatabaseAutonomousDatabaseRegular.cloneResource(resource, 'oracledatabase_autonomous_database_regular') as AzureOracledatabaseAutonomousDatabaseRegular
- }
- export function allowedParentTypes(): string[] {
- return []
- }
- export function getParentId(resource: AzureOracledatabaseAutonomousDatabaseRegular): string {
- const parentId = resource.compartmentId
- return parentId
- }
- export function setParentId(resource: AzureOracledatabaseAutonomousDatabaseRegular, parentId: string): AzureOracledatabaseAutonomousDatabaseRegular {
- return resource
- }
- export function getConnectionIds(resource: AzureOracledatabaseAutonomousDatabaseRegular, allResources: OcdResources): string[] {
- // This List of Ids does not include the Parent Id or Compartment Id
- let associationIds: string[] = []
- return associationIds
- }
-}
-
-export class AzureOracledatabaseAutonomousDatabaseRegularClient extends AutoGenerated.AzureOracledatabaseAutonomousDatabaseRegularClient {
- static new(): AzureOracledatabaseAutonomousDatabaseRegular {
- return AzureOracledatabaseAutonomousDatabaseRegular.newResource()
- }
- static clone(resource: AzureOracledatabaseAutonomousDatabaseRegular): AzureOracledatabaseAutonomousDatabaseRegular {
- return AzureOracledatabaseAutonomousDatabaseRegular.cloneResource(resource)
- }
-}
-
-export default AzureOracledatabaseAutonomousDatabaseRegularClient
diff --git a/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts b/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts
deleted file mode 100644
index b2ce3c344..000000000
--- a/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import { OcdResources } from "../../../OcdDesign"
-import * as AutoGenerated from "./generated/AzureOracledatabaseCloudVmCluster"
-
-export interface AzureOracledatabaseCloudVmCluster extends AutoGenerated.AzureOracledatabaseCloudVmCluster {}
-
-export namespace AzureOracledatabaseCloudVmCluster {
-
- export function newResource(type?: string): AzureOracledatabaseCloudVmCluster {
- const resource = {
- ...AutoGenerated.AzureOracledatabaseCloudVmCluster.newResource('oracledatabase_cloud_vm_cluster'),
- }
- return resource
- }
- export function cloneResource(resource: AzureOracledatabaseCloudVmCluster, type?: string): AzureOracledatabaseCloudVmCluster {
- return AutoGenerated.AzureOracledatabaseCloudVmCluster.cloneResource(resource, 'oracledatabase_cloud_vm_cluster') as AzureOracledatabaseCloudVmCluster
- }
- export function allowedParentTypes(): string[] {
- return []
- }
- export function getParentId(resource: AzureOracledatabaseCloudVmCluster): string {
- const parentId = resource.compartmentId
- return parentId
- }
- export function setParentId(resource: AzureOracledatabaseCloudVmCluster, parentId: string): AzureOracledatabaseCloudVmCluster {
- return resource
- }
- export function getConnectionIds(resource: AzureOracledatabaseCloudVmCluster, allResources: OcdResources): string[] {
- // This List of Ids does not include the Parent Id or Compartment Id
- let associationIds: string[] = []
- return associationIds
- }
-}
-
-export class AzureOracledatabaseCloudVmClusterClient extends AutoGenerated.AzureOracledatabaseCloudVmClusterClient {
- static new(): AzureOracledatabaseCloudVmCluster {
- return AzureOracledatabaseCloudVmCluster.newResource()
- }
- static clone(resource: AzureOracledatabaseCloudVmCluster): AzureOracledatabaseCloudVmCluster {
- return AzureOracledatabaseCloudVmCluster.cloneResource(resource)
- }
-}
-
-export default AzureOracledatabaseCloudVmClusterClient
diff --git a/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts b/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts
deleted file mode 100644
index 88a131000..000000000
--- a/ocd/packages/model/src/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import { OcdResources } from "../../../OcdDesign"
-import * as AutoGenerated from "./generated/AzureOracledatabaseExadataInfrastructure"
-
-export interface AzureOracledatabaseExadataInfrastructure extends AutoGenerated.AzureOracledatabaseExadataInfrastructure {}
-
-export namespace AzureOracledatabaseExadataInfrastructure {
-
- export function newResource(type?: string): AzureOracledatabaseExadataInfrastructure {
- const resource = {
- ...AutoGenerated.AzureOracledatabaseExadataInfrastructure.newResource('oracledatabase_exadata_infrastructure'),
- }
- return resource
- }
- export function cloneResource(resource: AzureOracledatabaseExadataInfrastructure, type?: string): AzureOracledatabaseExadataInfrastructure {
- return AutoGenerated.AzureOracledatabaseExadataInfrastructure.cloneResource(resource, 'oracledatabase_exadata_infrastructure') as AzureOracledatabaseExadataInfrastructure
- }
- export function allowedParentTypes(): string[] {
- return []
- }
- export function getParentId(resource: AzureOracledatabaseExadataInfrastructure): string {
- const parentId = resource.compartmentId
- return parentId
- }
- export function setParentId(resource: AzureOracledatabaseExadataInfrastructure, parentId: string): AzureOracledatabaseExadataInfrastructure {
- return resource
- }
- export function getConnectionIds(resource: AzureOracledatabaseExadataInfrastructure, allResources: OcdResources): string[] {
- // This List of Ids does not include the Parent Id or Compartment Id
- let associationIds: string[] = []
- return associationIds
- }
-}
-
-export class AzureOracledatabaseExadataInfrastructureClient extends AutoGenerated.AzureOracledatabaseExadataInfrastructureClient {
- static new(): AzureOracledatabaseExadataInfrastructure {
- return AzureOracledatabaseExadataInfrastructure.newResource()
- }
- static clone(resource: AzureOracledatabaseExadataInfrastructure): AzureOracledatabaseExadataInfrastructure {
- return AzureOracledatabaseExadataInfrastructure.cloneResource(resource)
- }
-}
-
-export default AzureOracledatabaseExadataInfrastructureClient
diff --git a/ocd/packages/model/src/provider/google/resources.ts b/ocd/packages/model/src/provider/google/resources.ts
index fb44c5638..17f5dbec6 100644
--- a/ocd/packages/model/src/provider/google/resources.ts
+++ b/ocd/packages/model/src/provider/google/resources.ts
@@ -11,7 +11,7 @@
*/
export { GoogleComputeNetwork, GoogleComputeNetworkClient } from './resources/GoogleComputeNetwork'
-export { GoogleOracledatabaseAutonomousDatabaseRegular, GoogleOracledatabaseAutonomousDatabaseRegularClient } from './resources/GoogleOracledatabaseAutonomousDatabaseRegular'
-export { GoogleOracledatabaseCloudVmCluster, GoogleOracledatabaseCloudVmClusterClient } from './resources/GoogleOracledatabaseCloudVmCluster'
-export { GoogleOracledatabaseExadataInfrastructure, GoogleOracledatabaseExadataInfrastructureClient } from './resources/GoogleOracledatabaseExadataInfrastructure'
+export { GoogleOracleDatabaseAutonomousDatabase, GoogleOracleDatabaseAutonomousDatabaseClient } from './resources/GoogleOracleDatabaseAutonomousDatabase'
+export { GoogleOracleDatabaseCloudExadataInfrastructure, GoogleOracleDatabaseCloudExadataInfrastructureClient } from './resources/GoogleOracleDatabaseCloudExadataInfrastructure'
+export { GoogleOracleDatabaseCloudVmCluster, GoogleOracleDatabaseCloudVmClusterClient } from './resources/GoogleOracleDatabaseCloudVmCluster'
\ No newline at end of file
diff --git a/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts b/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts
new file mode 100644
index 000000000..18b69079e
--- /dev/null
+++ b/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts
@@ -0,0 +1,48 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import { OcdResources } from "../../../OcdDesign"
+import * as AutoGenerated from "./generated/GoogleOracleDatabaseAutonomousDatabase"
+
+export interface GoogleOracleDatabaseAutonomousDatabase extends AutoGenerated.GoogleOracleDatabaseAutonomousDatabase {}
+
+export namespace GoogleOracleDatabaseAutonomousDatabase {
+
+ export function newResource(type?: string): GoogleOracleDatabaseAutonomousDatabase {
+ const resource = {
+ ...AutoGenerated.GoogleOracleDatabaseAutonomousDatabase.newResource('oracle_database_autonomous_database'),
+ }
+ return resource
+ }
+ export function cloneResource(resource: GoogleOracleDatabaseAutonomousDatabase, type?: string): GoogleOracleDatabaseAutonomousDatabase {
+ return AutoGenerated.GoogleOracleDatabaseAutonomousDatabase.cloneResource(resource, 'oracle_database_autonomous_database') as GoogleOracleDatabaseAutonomousDatabase
+ }
+ export function allowedParentTypes(): string[] {
+ return []
+ }
+ export function getParentId(resource: GoogleOracleDatabaseAutonomousDatabase): string {
+ const parentId = resource.compartmentId
+ return parentId
+ }
+ export function setParentId(resource: GoogleOracleDatabaseAutonomousDatabase, parentId: string): GoogleOracleDatabaseAutonomousDatabase {
+ return resource
+ }
+ export function getConnectionIds(resource: GoogleOracleDatabaseAutonomousDatabase, allResources: OcdResources): string[] {
+ // This List of Ids does not include the Parent Id or Compartment Id
+ let associationIds: string[] = []
+ return associationIds
+ }
+}
+
+export class GoogleOracleDatabaseAutonomousDatabaseClient extends AutoGenerated.GoogleOracleDatabaseAutonomousDatabaseClient {
+ static new(): GoogleOracleDatabaseAutonomousDatabase {
+ return GoogleOracleDatabaseAutonomousDatabase.newResource()
+ }
+ static clone(resource: GoogleOracleDatabaseAutonomousDatabase): GoogleOracleDatabaseAutonomousDatabase {
+ return GoogleOracleDatabaseAutonomousDatabase.cloneResource(resource)
+ }
+}
+
+export default GoogleOracleDatabaseAutonomousDatabaseClient
diff --git a/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts b/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts
new file mode 100644
index 000000000..9ff6d443f
--- /dev/null
+++ b/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts
@@ -0,0 +1,48 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import { OcdResources } from "../../../OcdDesign"
+import * as AutoGenerated from "./generated/GoogleOracleDatabaseCloudExadataInfrastructure"
+
+export interface GoogleOracleDatabaseCloudExadataInfrastructure extends AutoGenerated.GoogleOracleDatabaseCloudExadataInfrastructure {}
+
+export namespace GoogleOracleDatabaseCloudExadataInfrastructure {
+
+ export function newResource(type?: string): GoogleOracleDatabaseCloudExadataInfrastructure {
+ const resource = {
+ ...AutoGenerated.GoogleOracleDatabaseCloudExadataInfrastructure.newResource('oracle_database_cloud_exadata_infrastructure'),
+ }
+ return resource
+ }
+ export function cloneResource(resource: GoogleOracleDatabaseCloudExadataInfrastructure, type?: string): GoogleOracleDatabaseCloudExadataInfrastructure {
+ return AutoGenerated.GoogleOracleDatabaseCloudExadataInfrastructure.cloneResource(resource, 'oracle_database_cloud_exadata_infrastructure') as GoogleOracleDatabaseCloudExadataInfrastructure
+ }
+ export function allowedParentTypes(): string[] {
+ return []
+ }
+ export function getParentId(resource: GoogleOracleDatabaseCloudExadataInfrastructure): string {
+ const parentId = resource.compartmentId
+ return parentId
+ }
+ export function setParentId(resource: GoogleOracleDatabaseCloudExadataInfrastructure, parentId: string): GoogleOracleDatabaseCloudExadataInfrastructure {
+ return resource
+ }
+ export function getConnectionIds(resource: GoogleOracleDatabaseCloudExadataInfrastructure, allResources: OcdResources): string[] {
+ // This List of Ids does not include the Parent Id or Compartment Id
+ let associationIds: string[] = []
+ return associationIds
+ }
+}
+
+export class GoogleOracleDatabaseCloudExadataInfrastructureClient extends AutoGenerated.GoogleOracleDatabaseCloudExadataInfrastructureClient {
+ static new(): GoogleOracleDatabaseCloudExadataInfrastructure {
+ return GoogleOracleDatabaseCloudExadataInfrastructure.newResource()
+ }
+ static clone(resource: GoogleOracleDatabaseCloudExadataInfrastructure): GoogleOracleDatabaseCloudExadataInfrastructure {
+ return GoogleOracleDatabaseCloudExadataInfrastructure.cloneResource(resource)
+ }
+}
+
+export default GoogleOracleDatabaseCloudExadataInfrastructureClient
diff --git a/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts b/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
new file mode 100644
index 000000000..b73bf1caa
--- /dev/null
+++ b/ocd/packages/model/src/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
@@ -0,0 +1,48 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import { OcdResources } from "../../../OcdDesign"
+import * as AutoGenerated from "./generated/GoogleOracleDatabaseCloudVmCluster"
+
+export interface GoogleOracleDatabaseCloudVmCluster extends AutoGenerated.GoogleOracleDatabaseCloudVmCluster {}
+
+export namespace GoogleOracleDatabaseCloudVmCluster {
+
+ export function newResource(type?: string): GoogleOracleDatabaseCloudVmCluster {
+ const resource = {
+ ...AutoGenerated.GoogleOracleDatabaseCloudVmCluster.newResource('oracle_database_cloud_vm_cluster'),
+ }
+ return resource
+ }
+ export function cloneResource(resource: GoogleOracleDatabaseCloudVmCluster, type?: string): GoogleOracleDatabaseCloudVmCluster {
+ return AutoGenerated.GoogleOracleDatabaseCloudVmCluster.cloneResource(resource, 'oracle_database_cloud_vm_cluster') as GoogleOracleDatabaseCloudVmCluster
+ }
+ export function allowedParentTypes(): string[] {
+ return []
+ }
+ export function getParentId(resource: GoogleOracleDatabaseCloudVmCluster): string {
+ const parentId = resource.compartmentId
+ return parentId
+ }
+ export function setParentId(resource: GoogleOracleDatabaseCloudVmCluster, parentId: string): GoogleOracleDatabaseCloudVmCluster {
+ return resource
+ }
+ export function getConnectionIds(resource: GoogleOracleDatabaseCloudVmCluster, allResources: OcdResources): string[] {
+ // This List of Ids does not include the Parent Id or Compartment Id
+ let associationIds: string[] = []
+ return associationIds
+ }
+}
+
+export class GoogleOracleDatabaseCloudVmClusterClient extends AutoGenerated.GoogleOracleDatabaseCloudVmClusterClient {
+ static new(): GoogleOracleDatabaseCloudVmCluster {
+ return GoogleOracleDatabaseCloudVmCluster.newResource()
+ }
+ static clone(resource: GoogleOracleDatabaseCloudVmCluster): GoogleOracleDatabaseCloudVmCluster {
+ return GoogleOracleDatabaseCloudVmCluster.cloneResource(resource)
+ }
+}
+
+export default GoogleOracleDatabaseCloudVmClusterClient
diff --git a/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts b/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts
deleted file mode 100644
index bd01336c5..000000000
--- a/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import { OcdResources } from "../../../OcdDesign"
-import * as AutoGenerated from "./generated/GoogleOracledatabaseAutonomousDatabaseRegular"
-
-export interface GoogleOracledatabaseAutonomousDatabaseRegular extends AutoGenerated.GoogleOracledatabaseAutonomousDatabaseRegular {}
-
-export namespace GoogleOracledatabaseAutonomousDatabaseRegular {
-
- export function newResource(type?: string): GoogleOracledatabaseAutonomousDatabaseRegular {
- const resource = {
- ...AutoGenerated.GoogleOracledatabaseAutonomousDatabaseRegular.newResource('oracledatabase_autonomous_database_regular'),
- }
- return resource
- }
- export function cloneResource(resource: GoogleOracledatabaseAutonomousDatabaseRegular, type?: string): GoogleOracledatabaseAutonomousDatabaseRegular {
- return AutoGenerated.GoogleOracledatabaseAutonomousDatabaseRegular.cloneResource(resource, 'oracledatabase_autonomous_database_regular') as GoogleOracledatabaseAutonomousDatabaseRegular
- }
- export function allowedParentTypes(): string[] {
- return []
- }
- export function getParentId(resource: GoogleOracledatabaseAutonomousDatabaseRegular): string {
- const parentId = resource.compartmentId
- return parentId
- }
- export function setParentId(resource: GoogleOracledatabaseAutonomousDatabaseRegular, parentId: string): GoogleOracledatabaseAutonomousDatabaseRegular {
- return resource
- }
- export function getConnectionIds(resource: GoogleOracledatabaseAutonomousDatabaseRegular, allResources: OcdResources): string[] {
- // This List of Ids does not include the Parent Id or Compartment Id
- let associationIds: string[] = []
- return associationIds
- }
-}
-
-export class GoogleOracledatabaseAutonomousDatabaseRegularClient extends AutoGenerated.GoogleOracledatabaseAutonomousDatabaseRegularClient {
- static new(): GoogleOracledatabaseAutonomousDatabaseRegular {
- return GoogleOracledatabaseAutonomousDatabaseRegular.newResource()
- }
- static clone(resource: GoogleOracledatabaseAutonomousDatabaseRegular): GoogleOracledatabaseAutonomousDatabaseRegular {
- return GoogleOracledatabaseAutonomousDatabaseRegular.cloneResource(resource)
- }
-}
-
-export default GoogleOracledatabaseAutonomousDatabaseRegularClient
diff --git a/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts b/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts
deleted file mode 100644
index 573f5c620..000000000
--- a/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import { OcdResources } from "../../../OcdDesign"
-import * as AutoGenerated from "./generated/GoogleOracledatabaseCloudVmCluster"
-
-export interface GoogleOracledatabaseCloudVmCluster extends AutoGenerated.GoogleOracledatabaseCloudVmCluster {}
-
-export namespace GoogleOracledatabaseCloudVmCluster {
-
- export function newResource(type?: string): GoogleOracledatabaseCloudVmCluster {
- const resource = {
- ...AutoGenerated.GoogleOracledatabaseCloudVmCluster.newResource('oracledatabase_cloud_vm_cluster'),
- }
- return resource
- }
- export function cloneResource(resource: GoogleOracledatabaseCloudVmCluster, type?: string): GoogleOracledatabaseCloudVmCluster {
- return AutoGenerated.GoogleOracledatabaseCloudVmCluster.cloneResource(resource, 'oracledatabase_cloud_vm_cluster') as GoogleOracledatabaseCloudVmCluster
- }
- export function allowedParentTypes(): string[] {
- return []
- }
- export function getParentId(resource: GoogleOracledatabaseCloudVmCluster): string {
- const parentId = resource.compartmentId
- return parentId
- }
- export function setParentId(resource: GoogleOracledatabaseCloudVmCluster, parentId: string): GoogleOracledatabaseCloudVmCluster {
- return resource
- }
- export function getConnectionIds(resource: GoogleOracledatabaseCloudVmCluster, allResources: OcdResources): string[] {
- // This List of Ids does not include the Parent Id or Compartment Id
- let associationIds: string[] = []
- return associationIds
- }
-}
-
-export class GoogleOracledatabaseCloudVmClusterClient extends AutoGenerated.GoogleOracledatabaseCloudVmClusterClient {
- static new(): GoogleOracledatabaseCloudVmCluster {
- return GoogleOracledatabaseCloudVmCluster.newResource()
- }
- static clone(resource: GoogleOracledatabaseCloudVmCluster): GoogleOracledatabaseCloudVmCluster {
- return GoogleOracledatabaseCloudVmCluster.cloneResource(resource)
- }
-}
-
-export default GoogleOracledatabaseCloudVmClusterClient
diff --git a/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts b/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts
deleted file mode 100644
index 9655025be..000000000
--- a/ocd/packages/model/src/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import { OcdResources } from "../../../OcdDesign"
-import * as AutoGenerated from "./generated/GoogleOracledatabaseExadataInfrastructure"
-
-export interface GoogleOracledatabaseExadataInfrastructure extends AutoGenerated.GoogleOracledatabaseExadataInfrastructure {}
-
-export namespace GoogleOracledatabaseExadataInfrastructure {
-
- export function newResource(type?: string): GoogleOracledatabaseExadataInfrastructure {
- const resource = {
- ...AutoGenerated.GoogleOracledatabaseExadataInfrastructure.newResource('oracledatabase_exadata_infrastructure'),
- }
- return resource
- }
- export function cloneResource(resource: GoogleOracledatabaseExadataInfrastructure, type?: string): GoogleOracledatabaseExadataInfrastructure {
- return AutoGenerated.GoogleOracledatabaseExadataInfrastructure.cloneResource(resource, 'oracledatabase_exadata_infrastructure') as GoogleOracledatabaseExadataInfrastructure
- }
- export function allowedParentTypes(): string[] {
- return []
- }
- export function getParentId(resource: GoogleOracledatabaseExadataInfrastructure): string {
- const parentId = resource.compartmentId
- return parentId
- }
- export function setParentId(resource: GoogleOracledatabaseExadataInfrastructure, parentId: string): GoogleOracledatabaseExadataInfrastructure {
- return resource
- }
- export function getConnectionIds(resource: GoogleOracledatabaseExadataInfrastructure, allResources: OcdResources): string[] {
- // This List of Ids does not include the Parent Id or Compartment Id
- let associationIds: string[] = []
- return associationIds
- }
-}
-
-export class GoogleOracledatabaseExadataInfrastructureClient extends AutoGenerated.GoogleOracledatabaseExadataInfrastructureClient {
- static new(): GoogleOracledatabaseExadataInfrastructure {
- return GoogleOracledatabaseExadataInfrastructure.newResource()
- }
- static clone(resource: GoogleOracledatabaseExadataInfrastructure): GoogleOracledatabaseExadataInfrastructure {
- return GoogleOracledatabaseExadataInfrastructure.cloneResource(resource)
- }
-}
-
-export default GoogleOracledatabaseExadataInfrastructureClient
diff --git a/ocd/packages/model/src/provider/oci/resources/OciLoadBalancer.ts b/ocd/packages/model/src/provider/oci/resources/OciLoadBalancer.ts
index 852b00357..63628316f 100644
--- a/ocd/packages/model/src/provider/oci/resources/OciLoadBalancer.ts
+++ b/ocd/packages/model/src/provider/oci/resources/OciLoadBalancer.ts
@@ -5,8 +5,13 @@
import { OcdResources } from "../../../OcdDesign"
import * as AutoGenerated from "./generated/OciLoadBalancer"
+import { OciLoadBalancerBackendSet } from "./OciLoadBalancerBackendSet"
+import { OciLoadBalancerListener } from "./OciLoadBalancerListener"
-export interface OciLoadBalancer extends AutoGenerated.OciLoadBalancer {}
+export interface OciLoadBalancer extends AutoGenerated.OciLoadBalancer {
+ listeners?: OciLoadBalancerListener[] // Used to define type for query
+ backendSets?: OciLoadBalancerBackendSet[] // Used to define type for query
+}
export namespace OciLoadBalancer {
export namespace ShapeDetails {
diff --git a/ocd/packages/model/src/validator/OcdResourceValidator.ts b/ocd/packages/model/src/validator/OcdResourceValidator.ts
index dce9f81fe..da762316d 100644
--- a/ocd/packages/model/src/validator/OcdResourceValidator.ts
+++ b/ocd/packages/model/src/validator/OcdResourceValidator.ts
@@ -30,8 +30,9 @@ export namespace OcdResourceValidator {
// If not conditional then we will always display
if (!conditional) return true
// Check condition
- const element = condition.element ? condition.element.indexOf('_') ? OcdUtils.toCamelCase(condition.element) : condition.element : ''
- const display = OcdUtils.isCondition(resource[element], condition.operator, condition.value)
+ const element = condition.element?.indexOf('_') ? OcdUtils.toCamelCase(condition.element) : condition.element
+ const leftValue = element ? resource[element] : ''
+ const display = OcdUtils.isCondition(leftValue, condition.operator, condition.value)
return display
}
export function noDefaultValidation(displayName: string, key: string, value: string | boolean | number, title: string, cssClass: string, resources: OcdResources, message: string | undefined = undefined): OcdValidationResult {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources.ts b/ocd/packages/model/src/validator/provider/azure/resources.ts
index 480859760..ff041b328 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources.ts
@@ -15,9 +15,9 @@ export { AzureDnsZone } from './resources/AzureDnsZone'
export { AzureKubernetesCluster } from './resources/AzureKubernetesCluster'
export { AzureLoadBalancer } from './resources/AzureLoadBalancer'
export { AzureMssqlServer } from './resources/AzureMssqlServer'
-export { AzureOracledatabaseAutonomousDatabaseRegular } from './resources/AzureOracledatabaseAutonomousDatabaseRegular'
-export { AzureOracledatabaseCloudVmCluster } from './resources/AzureOracledatabaseCloudVmCluster'
-export { AzureOracledatabaseExadataInfrastructure } from './resources/AzureOracledatabaseExadataInfrastructure'
+export { AzureOracleAutonomousDatabase } from './resources/AzureOracleAutonomousDatabase'
+export { AzureOracleCloudVmCluster } from './resources/AzureOracleCloudVmCluster'
+export { AzureOracleExadataInfrastructure } from './resources/AzureOracleExadataInfrastructure'
export { AzureResourceGroup } from './resources/AzureResourceGroup'
export { AzureSubnet } from './resources/AzureSubnet'
export { AzureVirtualMachine } from './resources/AzureVirtualMachine'
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureContainerRegistry.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureContainerRegistry.ts
index ac5068cfd..e05862f88 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureContainerRegistry.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureContainerRegistry.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureContainerRegistry'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureContainerRegistry {
export function validateResource(resource: Model.AzureContainerRegistry, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureDnsZone.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureDnsZone.ts
index aa0d698ac..16560bbc3 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureDnsZone.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureDnsZone.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureDnsZone'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureDnsZone {
export function validateResource(resource: Model.AzureDnsZone, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureKubernetesCluster.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureKubernetesCluster.ts
index bb4c0a871..f5f40f932 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureKubernetesCluster.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureKubernetesCluster.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureKubernetesCluster'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureKubernetesCluster {
export function validateResource(resource: Model.AzureKubernetesCluster, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureLoadBalancer.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureLoadBalancer.ts
index 7d15af5ee..add3f1c21 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureLoadBalancer.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureLoadBalancer.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureLoadBalancer'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureLoadBalancer {
export function validateResource(resource: Model.AzureLoadBalancer, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureMssqlServer.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureMssqlServer.ts
index 08b7d0af0..93904a8ed 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureMssqlServer.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureMssqlServer.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureMssqlServer'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureMssqlServer {
export function validateResource(resource: Model.AzureMssqlServer, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleAutonomousDatabase.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleAutonomousDatabase.ts
new file mode 100644
index 000000000..bc2148f3d
--- /dev/null
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleAutonomousDatabase.ts
@@ -0,0 +1,31 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from './generated/AzureOracleAutonomousDatabase'
+import * as Model from '../../../../provider/azure/resources'
+import { AzureResources } from '../../../../OcdDesign'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
+
+export namespace AzureOracleAutonomousDatabase {
+ export function validateResource(resource: Model.AzureOracleAutonomousDatabase, resources: AzureResources): OcdValidationResult[] {
+ return [...AutoGenerated.AzureOracleAutonomousDatabase.validateResource(resource, resources), ...customValidation(resource, resources)]
+ }
+ export function isResourceValid(resource: Model.AzureOracleAutonomousDatabase, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
+ }
+ export function hasErrors(resource: Model.AzureOracleAutonomousDatabase, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
+ }
+ export function hasWarnings(resource: Model.AzureOracleAutonomousDatabase, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
+ }
+ export function hasInformation(resource: Model.AzureOracleAutonomousDatabase, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
+ }
+ function customValidation(resource: Model.AzureOracleAutonomousDatabase, resources: AzureResources): OcdValidationResult[] {
+ const results: OcdValidationResult[] = []
+ return results
+ }
+}
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleCloudVmCluster.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleCloudVmCluster.ts
new file mode 100644
index 000000000..1a5413c40
--- /dev/null
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleCloudVmCluster.ts
@@ -0,0 +1,31 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from './generated/AzureOracleCloudVmCluster'
+import * as Model from '../../../../provider/azure/resources'
+import { AzureResources } from '../../../../OcdDesign'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
+
+export namespace AzureOracleCloudVmCluster {
+ export function validateResource(resource: Model.AzureOracleCloudVmCluster, resources: AzureResources): OcdValidationResult[] {
+ return [...AutoGenerated.AzureOracleCloudVmCluster.validateResource(resource, resources), ...customValidation(resource, resources)]
+ }
+ export function isResourceValid(resource: Model.AzureOracleCloudVmCluster, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
+ }
+ export function hasErrors(resource: Model.AzureOracleCloudVmCluster, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
+ }
+ export function hasWarnings(resource: Model.AzureOracleCloudVmCluster, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
+ }
+ export function hasInformation(resource: Model.AzureOracleCloudVmCluster, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
+ }
+ function customValidation(resource: Model.AzureOracleCloudVmCluster, resources: AzureResources): OcdValidationResult[] {
+ const results: OcdValidationResult[] = []
+ return results
+ }
+}
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleExadataInfrastructure.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleExadataInfrastructure.ts
new file mode 100644
index 000000000..d7ec0a878
--- /dev/null
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracleExadataInfrastructure.ts
@@ -0,0 +1,31 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from './generated/AzureOracleExadataInfrastructure'
+import * as Model from '../../../../provider/azure/resources'
+import { AzureResources } from '../../../../OcdDesign'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
+
+export namespace AzureOracleExadataInfrastructure {
+ export function validateResource(resource: Model.AzureOracleExadataInfrastructure, resources: AzureResources): OcdValidationResult[] {
+ return [...AutoGenerated.AzureOracleExadataInfrastructure.validateResource(resource, resources), ...customValidation(resource, resources)]
+ }
+ export function isResourceValid(resource: Model.AzureOracleExadataInfrastructure, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
+ }
+ export function hasErrors(resource: Model.AzureOracleExadataInfrastructure, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
+ }
+ export function hasWarnings(resource: Model.AzureOracleExadataInfrastructure, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
+ }
+ export function hasInformation(resource: Model.AzureOracleExadataInfrastructure, resources: AzureResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
+ }
+ function customValidation(resource: Model.AzureOracleExadataInfrastructure, resources: AzureResources): OcdValidationResult[] {
+ const results: OcdValidationResult[] = []
+ return results
+ }
+}
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts
deleted file mode 100644
index da2c7a5cb..000000000
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseAutonomousDatabaseRegular.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import * as AutoGenerated from './generated/AzureOracledatabaseAutonomousDatabaseRegular'
-import * as Model from '../../../../provider/azure/resources'
-import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
-
-export namespace AzureOracledatabaseAutonomousDatabaseRegular {
- export function validateResource(resource: Model.AzureOracledatabaseAutonomousDatabaseRegular, resources: AzureResources): OcdValidationResult[] {
- return [...AutoGenerated.AzureOracledatabaseAutonomousDatabaseRegular.validateResource(resource, resources), ...customValidation(resource, resources)]
- }
- export function isResourceValid(resource: Model.AzureOracledatabaseAutonomousDatabaseRegular, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
- }
- export function hasErrors(resource: Model.AzureOracledatabaseAutonomousDatabaseRegular, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
- }
- export function hasWarnings(resource: Model.AzureOracledatabaseAutonomousDatabaseRegular, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
- }
- export function hasInformation(resource: Model.AzureOracledatabaseAutonomousDatabaseRegular, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
- }
- function customValidation(resource: Model.AzureOracledatabaseAutonomousDatabaseRegular, resources: AzureResources): OcdValidationResult[] {
- const results: OcdValidationResult[] = []
- return results
- }
-}
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts
deleted file mode 100644
index 5e64335b0..000000000
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseCloudVmCluster.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import * as AutoGenerated from './generated/AzureOracledatabaseCloudVmCluster'
-import * as Model from '../../../../provider/azure/resources'
-import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
-
-export namespace AzureOracledatabaseCloudVmCluster {
- export function validateResource(resource: Model.AzureOracledatabaseCloudVmCluster, resources: AzureResources): OcdValidationResult[] {
- return [...AutoGenerated.AzureOracledatabaseCloudVmCluster.validateResource(resource, resources), ...customValidation(resource, resources)]
- }
- export function isResourceValid(resource: Model.AzureOracledatabaseCloudVmCluster, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
- }
- export function hasErrors(resource: Model.AzureOracledatabaseCloudVmCluster, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
- }
- export function hasWarnings(resource: Model.AzureOracledatabaseCloudVmCluster, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
- }
- export function hasInformation(resource: Model.AzureOracledatabaseCloudVmCluster, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
- }
- function customValidation(resource: Model.AzureOracledatabaseCloudVmCluster, resources: AzureResources): OcdValidationResult[] {
- const results: OcdValidationResult[] = []
- return results
- }
-}
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts
deleted file mode 100644
index e66657923..000000000
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureOracledatabaseExadataInfrastructure.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import * as AutoGenerated from './generated/AzureOracledatabaseExadataInfrastructure'
-import * as Model from '../../../../provider/azure/resources'
-import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
-
-export namespace AzureOracledatabaseExadataInfrastructure {
- export function validateResource(resource: Model.AzureOracledatabaseExadataInfrastructure, resources: AzureResources): OcdValidationResult[] {
- return [...AutoGenerated.AzureOracledatabaseExadataInfrastructure.validateResource(resource, resources), ...customValidation(resource, resources)]
- }
- export function isResourceValid(resource: Model.AzureOracledatabaseExadataInfrastructure, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
- }
- export function hasErrors(resource: Model.AzureOracledatabaseExadataInfrastructure, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
- }
- export function hasWarnings(resource: Model.AzureOracledatabaseExadataInfrastructure, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
- }
- export function hasInformation(resource: Model.AzureOracledatabaseExadataInfrastructure, resources: AzureResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
- }
- function customValidation(resource: Model.AzureOracledatabaseExadataInfrastructure, resources: AzureResources): OcdValidationResult[] {
- const results: OcdValidationResult[] = []
- return results
- }
-}
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureResourceGroup.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureResourceGroup.ts
index 6a48fdc9c..36d3bee72 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureResourceGroup.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureResourceGroup.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureResourceGroup'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureResourceGroup {
export function validateResource(resource: Model.AzureResourceGroup, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureSubnet.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureSubnet.ts
index 3fb929bbf..f5d5a06bb 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureSubnet.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureSubnet.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureSubnet'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureSubnet {
export function validateResource(resource: Model.AzureSubnet, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureVirtualMachine.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureVirtualMachine.ts
index b5fec13f2..f34e2454f 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureVirtualMachine.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureVirtualMachine.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureVirtualMachine'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureVirtualMachine {
export function validateResource(resource: Model.AzureVirtualMachine, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/azure/resources/AzureVirtualNetwork.ts b/ocd/packages/model/src/validator/provider/azure/resources/AzureVirtualNetwork.ts
index 09035ae5c..c4a18991e 100644
--- a/ocd/packages/model/src/validator/provider/azure/resources/AzureVirtualNetwork.ts
+++ b/ocd/packages/model/src/validator/provider/azure/resources/AzureVirtualNetwork.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/AzureVirtualNetwork'
import * as Model from '../../../../provider/azure/resources'
import { AzureResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace AzureVirtualNetwork {
export function validateResource(resource: Model.AzureVirtualNetwork, resources: AzureResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/google/resources.ts b/ocd/packages/model/src/validator/provider/google/resources.ts
index f133edf5a..dbc4f5453 100644
--- a/ocd/packages/model/src/validator/provider/google/resources.ts
+++ b/ocd/packages/model/src/validator/provider/google/resources.ts
@@ -11,7 +11,7 @@
*/
export { GoogleComputeNetwork } from './resources/GoogleComputeNetwork'
-export { GoogleOracledatabaseAutonomousDatabaseRegular } from './resources/GoogleOracledatabaseAutonomousDatabaseRegular'
-export { GoogleOracledatabaseCloudVmCluster } from './resources/GoogleOracledatabaseCloudVmCluster'
-export { GoogleOracledatabaseExadataInfrastructure } from './resources/GoogleOracledatabaseExadataInfrastructure'
+export { GoogleOracleDatabaseAutonomousDatabase } from './resources/GoogleOracleDatabaseAutonomousDatabase'
+export { GoogleOracleDatabaseCloudExadataInfrastructure } from './resources/GoogleOracleDatabaseCloudExadataInfrastructure'
+export { GoogleOracleDatabaseCloudVmCluster } from './resources/GoogleOracleDatabaseCloudVmCluster'
\ No newline at end of file
diff --git a/ocd/packages/model/src/validator/provider/google/resources/GoogleComputeNetwork.ts b/ocd/packages/model/src/validator/provider/google/resources/GoogleComputeNetwork.ts
index 4594b6ec5..051dea8bf 100644
--- a/ocd/packages/model/src/validator/provider/google/resources/GoogleComputeNetwork.ts
+++ b/ocd/packages/model/src/validator/provider/google/resources/GoogleComputeNetwork.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/GoogleComputeNetwork'
import * as Model from '../../../../provider/google/resources'
import { GoogleResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace GoogleComputeNetwork {
export function validateResource(resource: Model.GoogleComputeNetwork, resources: GoogleResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts b/ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts
new file mode 100644
index 000000000..547605bc3
--- /dev/null
+++ b/ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseAutonomousDatabase.ts
@@ -0,0 +1,31 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from './generated/GoogleOracleDatabaseAutonomousDatabase'
+import * as Model from '../../../../provider/google/resources'
+import { GoogleResources } from '../../../../OcdDesign'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
+
+export namespace GoogleOracleDatabaseAutonomousDatabase {
+ export function validateResource(resource: Model.GoogleOracleDatabaseAutonomousDatabase, resources: GoogleResources): OcdValidationResult[] {
+ return [...AutoGenerated.GoogleOracleDatabaseAutonomousDatabase.validateResource(resource, resources), ...customValidation(resource, resources)]
+ }
+ export function isResourceValid(resource: Model.GoogleOracleDatabaseAutonomousDatabase, resources: GoogleResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
+ }
+ export function hasErrors(resource: Model.GoogleOracleDatabaseAutonomousDatabase, resources: GoogleResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
+ }
+ export function hasWarnings(resource: Model.GoogleOracleDatabaseAutonomousDatabase, resources: GoogleResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
+ }
+ export function hasInformation(resource: Model.GoogleOracleDatabaseAutonomousDatabase, resources: GoogleResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
+ }
+ function customValidation(resource: Model.GoogleOracleDatabaseAutonomousDatabase, resources: GoogleResources): OcdValidationResult[] {
+ const results: OcdValidationResult[] = []
+ return results
+ }
+}
diff --git a/ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts b/ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts
new file mode 100644
index 000000000..5a25c3467
--- /dev/null
+++ b/ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseCloudExadataInfrastructure.ts
@@ -0,0 +1,31 @@
+/*
+** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
+*/
+
+import * as AutoGenerated from './generated/GoogleOracleDatabaseCloudExadataInfrastructure'
+import * as Model from '../../../../provider/google/resources'
+import { GoogleResources } from '../../../../OcdDesign'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
+
+export namespace GoogleOracleDatabaseCloudExadataInfrastructure {
+ export function validateResource(resource: Model.GoogleOracleDatabaseCloudExadataInfrastructure, resources: GoogleResources): OcdValidationResult[] {
+ return [...AutoGenerated.GoogleOracleDatabaseCloudExadataInfrastructure.validateResource(resource, resources), ...customValidation(resource, resources)]
+ }
+ export function isResourceValid(resource: Model.GoogleOracleDatabaseCloudExadataInfrastructure, resources: GoogleResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
+ }
+ export function hasErrors(resource: Model.GoogleOracleDatabaseCloudExadataInfrastructure, resources: GoogleResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
+ }
+ export function hasWarnings(resource: Model.GoogleOracleDatabaseCloudExadataInfrastructure, resources: GoogleResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
+ }
+ export function hasInformation(resource: Model.GoogleOracleDatabaseCloudExadataInfrastructure, resources: GoogleResources): boolean {
+ return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
+ }
+ function customValidation(resource: Model.GoogleOracleDatabaseCloudExadataInfrastructure, resources: GoogleResources): OcdValidationResult[] {
+ const results: OcdValidationResult[] = []
+ return results
+ }
+}
diff --git a/ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts b/ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
similarity index 67%
rename from ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts
rename to ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
index 7145e5267..765e707f4 100644
--- a/ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseCloudVmCluster.ts
+++ b/ocd/packages/model/src/validator/provider/google/resources/GoogleOracleDatabaseCloudVmCluster.ts
@@ -3,28 +3,28 @@
** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
*/
-import * as AutoGenerated from './generated/GoogleOracledatabaseCloudVmCluster'
+import * as AutoGenerated from './generated/GoogleOracleDatabaseCloudVmCluster'
import * as Model from '../../../../provider/google/resources'
import { GoogleResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
-export namespace GoogleOracledatabaseCloudVmCluster {
- export function validateResource(resource: Model.GoogleOracledatabaseCloudVmCluster, resources: GoogleResources): OcdValidationResult[] {
- return [...AutoGenerated.GoogleOracledatabaseCloudVmCluster.validateResource(resource, resources), ...customValidation(resource, resources)]
+export namespace GoogleOracleDatabaseCloudVmCluster {
+ export function validateResource(resource: Model.GoogleOracleDatabaseCloudVmCluster, resources: GoogleResources): OcdValidationResult[] {
+ return [...AutoGenerated.GoogleOracleDatabaseCloudVmCluster.validateResource(resource, resources), ...customValidation(resource, resources)]
}
- export function isResourceValid(resource: Model.GoogleOracledatabaseCloudVmCluster, resources: GoogleResources): boolean {
+ export function isResourceValid(resource: Model.GoogleOracleDatabaseCloudVmCluster, resources: GoogleResources): boolean {
return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
}
- export function hasErrors(resource: Model.GoogleOracledatabaseCloudVmCluster, resources: GoogleResources): boolean {
+ export function hasErrors(resource: Model.GoogleOracleDatabaseCloudVmCluster, resources: GoogleResources): boolean {
return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
}
- export function hasWarnings(resource: Model.GoogleOracledatabaseCloudVmCluster, resources: GoogleResources): boolean {
+ export function hasWarnings(resource: Model.GoogleOracleDatabaseCloudVmCluster, resources: GoogleResources): boolean {
return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
}
- export function hasInformation(resource: Model.GoogleOracledatabaseCloudVmCluster, resources: GoogleResources): boolean {
+ export function hasInformation(resource: Model.GoogleOracleDatabaseCloudVmCluster, resources: GoogleResources): boolean {
return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
}
- function customValidation(resource: Model.GoogleOracledatabaseCloudVmCluster, resources: GoogleResources): OcdValidationResult[] {
+ function customValidation(resource: Model.GoogleOracleDatabaseCloudVmCluster, resources: GoogleResources): OcdValidationResult[] {
const results: OcdValidationResult[] = []
return results
}
diff --git a/ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts b/ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts
deleted file mode 100644
index 495fa3f2d..000000000
--- a/ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseAutonomousDatabaseRegular.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import * as AutoGenerated from './generated/GoogleOracledatabaseAutonomousDatabaseRegular'
-import * as Model from '../../../../provider/google/resources'
-import { GoogleResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
-
-export namespace GoogleOracledatabaseAutonomousDatabaseRegular {
- export function validateResource(resource: Model.GoogleOracledatabaseAutonomousDatabaseRegular, resources: GoogleResources): OcdValidationResult[] {
- return [...AutoGenerated.GoogleOracledatabaseAutonomousDatabaseRegular.validateResource(resource, resources), ...customValidation(resource, resources)]
- }
- export function isResourceValid(resource: Model.GoogleOracledatabaseAutonomousDatabaseRegular, resources: GoogleResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
- }
- export function hasErrors(resource: Model.GoogleOracledatabaseAutonomousDatabaseRegular, resources: GoogleResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
- }
- export function hasWarnings(resource: Model.GoogleOracledatabaseAutonomousDatabaseRegular, resources: GoogleResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
- }
- export function hasInformation(resource: Model.GoogleOracledatabaseAutonomousDatabaseRegular, resources: GoogleResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
- }
- function customValidation(resource: Model.GoogleOracledatabaseAutonomousDatabaseRegular, resources: GoogleResources): OcdValidationResult[] {
- const results: OcdValidationResult[] = []
- return results
- }
-}
diff --git a/ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts b/ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts
deleted file mode 100644
index 91f6f4d8d..000000000
--- a/ocd/packages/model/src/validator/provider/google/resources/GoogleOracledatabaseExadataInfrastructure.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-** Copyright (c) 2020, 2024, Oracle and/or its affiliates.
-** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl.
-*/
-
-import * as AutoGenerated from './generated/GoogleOracledatabaseExadataInfrastructure'
-import * as Model from '../../../../provider/google/resources'
-import { GoogleResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
-
-export namespace GoogleOracledatabaseExadataInfrastructure {
- export function validateResource(resource: Model.GoogleOracledatabaseExadataInfrastructure, resources: GoogleResources): OcdValidationResult[] {
- return [...AutoGenerated.GoogleOracledatabaseExadataInfrastructure.validateResource(resource, resources), ...customValidation(resource, resources)]
- }
- export function isResourceValid(resource: Model.GoogleOracledatabaseExadataInfrastructure, resources: GoogleResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => !v.valid).length > 0)
- }
- export function hasErrors(resource: Model.GoogleOracledatabaseExadataInfrastructure, resources: GoogleResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'error').length > 0)
- }
- export function hasWarnings(resource: Model.GoogleOracledatabaseExadataInfrastructure, resources: GoogleResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'warning').length > 0)
- }
- export function hasInformation(resource: Model.GoogleOracledatabaseExadataInfrastructure, resources: GoogleResources): boolean {
- return (validateResource(resource, resources).filter((v: OcdValidationResult) => v.type === 'information').length > 0)
- }
- function customValidation(resource: Model.GoogleOracledatabaseExadataInfrastructure, resources: GoogleResources): OcdValidationResult[] {
- const results: OcdValidationResult[] = []
- return results
- }
-}
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciAnalyticsInstance.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciAnalyticsInstance.ts
index 25cb8fb07..fe74161da 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciAnalyticsInstance.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciAnalyticsInstance.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciAnalyticsInstance'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciAnalyticsInstance {
export function validateResource(resource: Model.OciAnalyticsInstance, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciAutonomousDatabase.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciAutonomousDatabase.ts
index f817e98ae..7783e5eb4 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciAutonomousDatabase.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciAutonomousDatabase.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciAutonomousDatabase'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciAutonomousDatabase {
export function validateResource(resource: Model.OciAutonomousDatabase, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciBastion.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciBastion.ts
index 81032ed61..5bea6c478 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciBastion.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciBastion.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciBastion'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciBastion {
export function validateResource(resource: Model.OciBastion, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciBootVolume.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciBootVolume.ts
index fc3dc6a4c..be66548a1 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciBootVolume.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciBootVolume.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciBootVolume'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciBootVolume {
export function validateResource(resource: Model.OciBootVolume, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciBootVolumeAttachment.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciBootVolumeAttachment.ts
index 79f62254c..f27570ad4 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciBootVolumeAttachment.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciBootVolumeAttachment.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciBootVolumeAttachment'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciBootVolumeAttachment {
export function validateResource(resource: Model.OciBootVolumeAttachment, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciBucket.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciBucket.ts
index b8318ad6a..25fdc56c9 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciBucket.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciBucket.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciBucket'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciBucket {
export function validateResource(resource: Model.OciBucket, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciCompartment.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciCompartment.ts
index c6f48c7d6..8c86100c4 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciCompartment.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciCompartment.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciCompartment'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciCompartment {
export function validateResource(resource: Model.OciCompartment, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciCpe.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciCpe.ts
index d27827862..dce97cc13 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciCpe.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciCpe.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciCpe'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciCpe {
export function validateResource(resource: Model.OciCpe, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciDbSystem.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciDbSystem.ts
index 499b6a6eb..e8f3bfa97 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciDbSystem.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciDbSystem.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciDbSystem'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciDbSystem {
export function validateResource(resource: Model.OciDbSystem, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciDrg.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciDrg.ts
index c09a7cd9c..3daeb12cb 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciDrg.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciDrg.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciDrg'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciDrg {
export function validateResource(resource: Model.OciDrg, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgAttachment.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgAttachment.ts
index 4c0c0f071..fd00e84b7 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgAttachment.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgAttachment.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciDrgAttachment'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciDrgAttachment {
export function validateResource(resource: Model.OciDrgAttachment, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteDistribution.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteDistribution.ts
index a5a0e8d60..6bd8e3450 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteDistribution.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteDistribution.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciDrgRouteDistribution'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciDrgRouteDistribution {
export function validateResource(resource: Model.OciDrgRouteDistribution, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteDistributionStatement.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteDistributionStatement.ts
index 8db300a5a..a8824250c 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteDistributionStatement.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteDistributionStatement.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciDrgRouteDistributionStatement'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciDrgRouteDistributionStatement {
export function validateResource(resource: Model.OciDrgRouteDistributionStatement, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteTable.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteTable.ts
index 347e67ab4..ee3b61d5b 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteTable.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteTable.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciDrgRouteTable'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciDrgRouteTable {
export function validateResource(resource: Model.OciDrgRouteTable, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteTableRouteRule.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteTableRouteRule.ts
index a33a446c2..623d8a654 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteTableRouteRule.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciDrgRouteTableRouteRule.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciDrgRouteTableRouteRule'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciDrgRouteTableRouteRule {
export function validateResource(resource: Model.OciDrgRouteTableRouteRule, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciDynamicGroup.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciDynamicGroup.ts
index de6792b8d..e4c180415 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciDynamicGroup.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciDynamicGroup.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciDynamicGroup'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciDynamicGroup {
export function validateResource(resource: Model.OciDynamicGroup, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystem.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystem.ts
index e71ec5c80..5e4e0ef86 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystem.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystem.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciFileSystem'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciFileSystem {
export function validateResource(resource: Model.OciFileSystem, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystemExport.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystemExport.ts
index 6ebc62e1d..6ce080e6f 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystemExport.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystemExport.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciFileSystemExport'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciFileSystemExport {
export function validateResource(resource: Model.OciFileSystemExport, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystemExportSet.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystemExportSet.ts
index 683583cc7..3b06bf0cc 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystemExportSet.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciFileSystemExportSet.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciFileSystemExportSet'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciFileSystemExportSet {
export function validateResource(resource: Model.OciFileSystemExportSet, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciGroup.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciGroup.ts
index 33c7f15fd..9af759db3 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciGroup.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciGroup.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciGroup'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciGroup {
export function validateResource(resource: Model.OciGroup, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciInstance.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciInstance.ts
index 7e3a92559..6e6a351e8 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciInstance.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciInstance.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciInstance'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciInstance {
export function validateResource(resource: Model.OciInstance, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciInternetGateway.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciInternetGateway.ts
index d62c03e04..c61c17620 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciInternetGateway.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciInternetGateway.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciInternetGateway'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciInternetGateway {
export function validateResource(resource: Model.OciInternetGateway, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciIpsec.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciIpsec.ts
index 135ff8b02..22deb5993 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciIpsec.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciIpsec.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciIpsec'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciIpsec {
export function validateResource(resource: Model.OciIpsec, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciKey.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciKey.ts
index 2365e1cd9..83d5c70e0 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciKey.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciKey.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciKey'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciKey {
export function validateResource(resource: Model.OciKey, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancer.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancer.ts
index c731144b6..68ceae06e 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancer.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancer.ts
@@ -5,8 +5,8 @@
import * as AutoGenerated from './generated/OciLoadBalancer'
import * as Model from '../../../../provider/oci/resources'
-import { OcdResources, OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OciResources } from '../../../../OcdDesign'
+import { OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
export namespace OciLoadBalancer {
export function validateResource(resource: Model.OciLoadBalancer, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerBackend.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerBackend.ts
index c4fd712ef..889898ade 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerBackend.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerBackend.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciLoadBalancerBackend'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciLoadBalancerBackend {
export function validateResource(resource: Model.OciLoadBalancerBackend, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerBackendSet.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerBackendSet.ts
index fe1183632..7475efe80 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerBackendSet.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerBackendSet.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciLoadBalancerBackendSet'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciLoadBalancerBackendSet {
export function validateResource(resource: Model.OciLoadBalancerBackendSet, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerListener.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerListener.ts
index a1b09b0e6..7db8a1a20 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerListener.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciLoadBalancerListener.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciLoadBalancerListener'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciLoadBalancerListener {
export function validateResource(resource: Model.OciLoadBalancerListener, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciLocalPeeringGateway.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciLocalPeeringGateway.ts
index 4b9ab3a95..b2ebe7efc 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciLocalPeeringGateway.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciLocalPeeringGateway.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciLocalPeeringGateway'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciLocalPeeringGateway {
export function validateResource(resource: Model.OciLocalPeeringGateway, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciMountTarget.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciMountTarget.ts
index 52df0efb6..99825df5f 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciMountTarget.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciMountTarget.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciMountTarget'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciMountTarget {
export function validateResource(resource: Model.OciMountTarget, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciMysqlDbSystem.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciMysqlDbSystem.ts
index f83c56d7d..7704e9df2 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciMysqlDbSystem.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciMysqlDbSystem.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciMysqlDbSystem'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciMysqlDbSystem {
export function validateResource(resource: Model.OciMysqlDbSystem, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciNatGateway.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciNatGateway.ts
index 8c00690c3..a864401a8 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciNatGateway.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciNatGateway.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciNatGateway'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciNatGateway {
export function validateResource(resource: Model.OciNatGateway, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkLoadBalancer.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkLoadBalancer.ts
index 3a46786ed..8dc592c66 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkLoadBalancer.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkLoadBalancer.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciNetworkLoadBalancer'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciNetworkLoadBalancer {
export function validateResource(resource: Model.OciNetworkLoadBalancer, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkSecurityGroup.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkSecurityGroup.ts
index 118e935b6..951b7b98b 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkSecurityGroup.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkSecurityGroup.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciNetworkSecurityGroup'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciNetworkSecurityGroup {
export function validateResource(resource: Model.OciNetworkSecurityGroup, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkSecurityGroupSecurityRule.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkSecurityGroupSecurityRule.ts
index 5abfbcf50..3c77fb659 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkSecurityGroupSecurityRule.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciNetworkSecurityGroupSecurityRule.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciNetworkSecurityGroupSecurityRule'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciNetworkSecurityGroupSecurityRule {
export function validateResource(resource: Model.OciNetworkSecurityGroupSecurityRule, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciNosqlIndex.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciNosqlIndex.ts
index 2459f2955..4a776d77a 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciNosqlIndex.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciNosqlIndex.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciNosqlIndex'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciNosqlIndex {
export function validateResource(resource: Model.OciNosqlIndex, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciNosqlTable.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciNosqlTable.ts
index 464c7729c..6ff42a55e 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciNosqlTable.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciNosqlTable.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciNosqlTable'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciNosqlTable {
export function validateResource(resource: Model.OciNosqlTable, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciOkeCluster.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciOkeCluster.ts
index e6c7fa260..d6710e119 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciOkeCluster.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciOkeCluster.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciOkeCluster'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciOkeCluster {
export function validateResource(resource: Model.OciOkeCluster, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciOkeNodePool.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciOkeNodePool.ts
index a8ba522b1..b673c4639 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciOkeNodePool.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciOkeNodePool.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciOkeNodePool'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciOkeNodePool {
export function validateResource(resource: Model.OciOkeNodePool, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciPolicy.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciPolicy.ts
index 51958bb3e..22d48e1fa 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciPolicy.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciPolicy.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciPolicy'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciPolicy {
export function validateResource(resource: Model.OciPolicy, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciRemotePeeringConnection.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciRemotePeeringConnection.ts
index 7501c09ee..7a1f033cf 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciRemotePeeringConnection.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciRemotePeeringConnection.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciRemotePeeringConnection'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciRemotePeeringConnection {
export function validateResource(resource: Model.OciRemotePeeringConnection, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciRouteTable.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciRouteTable.ts
index 381417ee5..88f4f807f 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciRouteTable.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciRouteTable.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciRouteTable'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciRouteTable {
export function validateResource(resource: Model.OciRouteTable, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciSecret.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciSecret.ts
index 6e908900b..c75dd45ab 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciSecret.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciSecret.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciSecret'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciSecret {
export function validateResource(resource: Model.OciSecret, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciSecurityList.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciSecurityList.ts
index c888fb484..de27217f6 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciSecurityList.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciSecurityList.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciSecurityList'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciSecurityList {
export function validateResource(resource: Model.OciSecurityList, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciServiceGateway.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciServiceGateway.ts
index bd45e2e21..0b9965059 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciServiceGateway.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciServiceGateway.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciServiceGateway'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciServiceGateway {
export function validateResource(resource: Model.OciServiceGateway, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciSubnet.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciSubnet.ts
index 2f0fdef9f..76e108e70 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciSubnet.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciSubnet.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciSubnet'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciSubnet {
export function validateResource(resource: Model.OciSubnet, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciUser.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciUser.ts
index de023a6fe..b90beabe6 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciUser.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciUser.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciUser'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciUser {
export function validateResource(resource: Model.OciUser, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciUserGroupMembership.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciUserGroupMembership.ts
index bc8155202..1684a6e47 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciUserGroupMembership.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciUserGroupMembership.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciUserGroupMembership'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciUserGroupMembership {
export function validateResource(resource: Model.OciUserGroupMembership, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciVault.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciVault.ts
index 7d40328ed..1a4f6b540 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciVault.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciVault.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciVault'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciVault {
export function validateResource(resource: Model.OciVault, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciVnicAttachment.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciVnicAttachment.ts
index 93c626a2a..1a059bf20 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciVnicAttachment.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciVnicAttachment.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciVnicAttachment'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciVnicAttachment {
export function validateResource(resource: Model.OciVnicAttachment, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciVolume.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciVolume.ts
index cc45c02bf..28ae0ba83 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciVolume.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciVolume.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciVolume'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciVolume {
export function validateResource(resource: Model.OciVolume, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/model/src/validator/provider/oci/resources/OciVolumeAttachment.ts b/ocd/packages/model/src/validator/provider/oci/resources/OciVolumeAttachment.ts
index c81715b7e..f81b65c71 100644
--- a/ocd/packages/model/src/validator/provider/oci/resources/OciVolumeAttachment.ts
+++ b/ocd/packages/model/src/validator/provider/oci/resources/OciVolumeAttachment.ts
@@ -6,7 +6,7 @@
import * as AutoGenerated from './generated/OciVolumeAttachment'
import * as Model from '../../../../provider/oci/resources'
import { OciResources } from '../../../../OcdDesign'
-import { OcdResourceValidator, OcdValidationResult, OcdValidatorResource } from '../../../OcdResourceValidator'
+import { OcdValidationResult } from '../../../OcdResourceValidator'
export namespace OciVolumeAttachment {
export function validateResource(resource: Model.OciVolumeAttachment, resources: OciResources): OcdValidationResult[] {
diff --git a/ocd/packages/query/package.json b/ocd/packages/query/package.json
index 1f511090b..0098b1fdb 100644
--- a/ocd/packages/query/package.json
+++ b/ocd/packages/query/package.json
@@ -1,6 +1,6 @@
{
"name": "@ocd/query",
- "version": "0.2.4",
+ "version": "0.2.5",
"description": "OKIT Open Cloud Designer Query Module",
"title": "OKIT Open Cloud Designer Query Module",
"author": {
@@ -14,20 +14,34 @@
"okit"
],
"license": "UPL-1.0",
- "main": "lib/esm/index.js",
+ "exports": {
+ ".": {
+ "import": {
+ "types": "./lib/esm/index.d.ts",
+ "default": "./lib/esm/index.js"
+ },
+ "require": {
+ "types": "./lib/cjs/index.d.ts",
+ "default": "./lib/cjs/index.js"
+ }
+ }
+ },
+ "main": "lib/cjs/index.js",
"module": "lib/esm/index.js",
+ "types": "lib/esm/index.d.js",
"files": [
"lib/"
],
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
+ "clean": "rm -rf lib dist",
"pack": "mkdir -p dist && npm pack --pack-destination dist",
"compile": "tsc -p tsconfig.json && tsc -p tsconfig-cjs.json",
"build": "npm run compile && npm run pack"
},
"dependencies": {
- "@ocd/core": "^0.2.4",
- "@ocd/model": "^0.2.4",
- "oci-sdk": "^2.69.0"
+ "@ocd/core": ">=0.2.5",
+ "@ocd/model": ">=0.2.5",
+ "oci-sdk": ">=2.69.0"
}
}
diff --git a/ocd/packages/query/src/OciQuery.ts b/ocd/packages/query/src/OciQuery.ts
index c2c78d602..396215bed 100644
--- a/ocd/packages/query/src/OciQuery.ts
+++ b/ocd/packages/query/src/OciQuery.ts
@@ -9,9 +9,6 @@
import { OcdDesign, OciModelResources, OciResources } from '@ocd/model'
import { analytics, bastion, common, core, database, filestorage, identity, keymanagement, loadbalancer, mysql, networkloadbalancer, nosql, objectstorage, vault } from 'oci-sdk'
import { OciCommonQuery } from './OciQueryCommon'
-import { OcdUtils } from '@ocd/core'
-import { OciLoadBalancerBackend } from '@ocd/model/src/provider/oci/resources/generated/OciLoadBalancerBackend'
-import { OciLoadBalancerBackendSet, OciLoadBalancerListener } from '@ocd/model/src/provider/oci/resources'
export class OciQuery extends OciCommonQuery {
// Clients
@@ -263,53 +260,54 @@ export class OciQuery extends OciCommonQuery {
// Load Balancers
// @ts-ignore
if (results[queries.indexOf(listLoadBalancers)].status === 'fulfilled' && results[queries.indexOf(listLoadBalancers)].value.length > 0) design.model.oci.resources.load_balancer = results[queries.indexOf(listLoadBalancers)].value
- if (design.model.oci.resources.load_balancer && design.model.oci.resources.load_balancer.length > 0) {
- // Create Backend Sets
- design.model.oci.resources.load_balancer_backend_set = design.model.oci.resources.load_balancer.map((l) => Object.values(l.backendSets as OciLoadBalancerBackendSet[]).map((b) => {
- return {...b,
- id: l.id.replace('loadbalancer', 'load_balancer_backend_set'),
- compartmentId: l.compartmentId,
- displayName: b.name,
- loadBalancerId: l.id,
- lifecycleState: l.lifecycleState
- }
- })).flat()
- // Create Backends
- design.model.oci.resources.load_balancer_backend = design.model.oci.resources.load_balancer_backend_set.map((bs) => Object.values(bs.backends as OciLoadBalancerBackend[]).map((b) => {
- const vnicAttachments = design.model.oci.resources.vnic_attachment ? design.model.oci.resources.vnic_attachment : []
- const vnicAttachment = vnicAttachments.find((v) => v.privateIp && v.privateIp.ipAddress === b.ipAddress)
- const instanceId = vnicAttachment ? vnicAttachment.instanceId : ''
- // const instanceId = design.model.oci.resources.vnic_attachment ? design.model.oci.resources.vnic_attachment.find((v) => v.privateIp && v.privateIp.ipAddress === b.ipAddress).instanceId : ''
- return {...b,
-
- id: bs.id.replace('load_balancer_backend_set', 'load_balancer_backend'),
- compartmentId: bs.compartmentId,
- displayName: b.name,
- backendSetId: bs.id,
- backendsetName: bs.name,
- loadBalancerId: bs.loadBalancerId,
- instanceId: instanceId,
- lifecycleState: bs.lifecycleState
- }
- })).flat()
- // Create Listeners
- design.model.oci.resources.load_balancer_listener = design.model.oci.resources.load_balancer.map((l) => (Object.values(l.listeners) as OciLoadBalancerListener[]).map((listener) => {
- return {...listener,
- id: l.id.replace('loadbalancer', 'load_balancer_listener'),
- compartmentId: l.compartmentId,
- displayName: listener.name,
- defaultBackendSetName: design.model.oci.resources.load_balancer_backend_set.find((b) => b.loadBalancerId === l.id && b.displayName === listener.defaultBackendSetName)?.id,
- loadBalancerId: l.id,
- lifecycleState: l.lifecycleState
- }
- })).flat()
- design.model.oci.resources.load_balancer.forEach((l) => {
- delete l.backendSets
- delete l.Listeners
- })
- // console.debug('OciQuery: Load Balancer Backend Sets:', design.model.oci.resources.load_balancer_backend_set)
- // console.debug('OciQuery: Load Balancer Backends:', design.model.oci.resources.load_balancer_backend)
- }
+ if (design.model.oci.resources.load_balancer && design.model.oci.resources.load_balancer.length > 0) this.processLoadBalancers(design)
+ // if (design.model.oci.resources.load_balancer && design.model.oci.resources.load_balancer.length > 0) {
+ // // Create Backend Sets
+ // design.model.oci.resources.load_balancer_backend_set = design.model.oci.resources.load_balancer.map((l: OciModelResources.OciLoadBalancer) => Object.values(l.backendSets as OciModelResources.OciLoadBalancerBackendSet[]).map((b) => {
+ // return {...b,
+ // id: l.id.replace('loadbalancer', 'load_balancer_backend_set'),
+ // compartmentId: l.compartmentId,
+ // displayName: b.name,
+ // loadBalancerId: l.id,
+ // lifecycleState: l.lifecycleState
+ // }
+ // })).flat()
+ // // Create Backends
+ // design.model.oci.resources.load_balancer_backend = design.model.oci.resources.load_balancer_backend_set.map((bs) => Object.values(bs.backends as OciModelResources.OciLoadBalancerBackend[]).map((b) => {
+ // const vnicAttachments = design.model.oci.resources.vnic_attachment ? design.model.oci.resources.vnic_attachment : []
+ // const vnicAttachment = vnicAttachments.find((v) => v.privateIp && v.privateIp.ipAddress === b.ipAddress)
+ // const instanceId = vnicAttachment ? vnicAttachment.instanceId : ''
+ // // const instanceId = design.model.oci.resources.vnic_attachment ? design.model.oci.resources.vnic_attachment.find((v) => v.privateIp && v.privateIp.ipAddress === b.ipAddress).instanceId : ''
+ // return {...b,
+
+ // id: bs.id.replace('load_balancer_backend_set', 'load_balancer_backend'),
+ // compartmentId: bs.compartmentId,
+ // displayName: b.name,
+ // backendSetId: bs.id,
+ // backendsetName: bs.name,
+ // loadBalancerId: bs.loadBalancerId,
+ // instanceId: instanceId,
+ // lifecycleState: bs.lifecycleState
+ // }
+ // })).flat()
+ // // Create Listeners
+ // design.model.oci.resources.load_balancer_listener = design.model.oci.resources.load_balancer.map((l: OciModelResources.OciLoadBalancer) => (Object.values(l.listeners as OciModelResources.OciLoadBalancerListener[])).map((listener) => {
+ // return {...listener,
+ // id: l.id.replace('loadbalancer', 'load_balancer_listener'),
+ // compartmentId: l.compartmentId,
+ // displayName: listener.name,
+ // defaultBackendSetName: design.model.oci.resources.load_balancer_backend_set.find((b) => b.loadBalancerId === l.id && b.displayName === listener.defaultBackendSetName)?.id,
+ // loadBalancerId: l.id,
+ // lifecycleState: l.lifecycleState
+ // }
+ // })).flat()
+ // design.model.oci.resources.load_balancer.forEach((l) => {
+ // delete l.backendSets
+ // delete l.listeners
+ // })
+ // // console.debug('OciQuery: Load Balancer Backend Sets:', design.model.oci.resources.load_balancer_backend_set)
+ // // console.debug('OciQuery: Load Balancer Backends:', design.model.oci.resources.load_balancer_backend)
+ // }
// Network Load Balancers
// @ts-ignore
if (results[queries.indexOf(listNetworkLoadBalancers)].status === 'fulfilled' && results[queries.indexOf(listNetworkLoadBalancers)].value.length > 0) design.model.oci.resources.network_load_balancer = results[queries.indexOf(listNetworkLoadBalancers)].value
@@ -754,6 +752,56 @@ export class OciQuery extends OciCommonQuery {
})
}
+ processLoadBalancers(design: OcdDesign) {
+ if (design.model.oci.resources.load_balancer && design.model.oci.resources.load_balancer.length > 0) {
+ // Create Backend Sets
+ design.model.oci.resources.load_balancer_backend_set = design.model.oci.resources.load_balancer.map((l: OciModelResources.OciLoadBalancer) => Object.values(l.backendSets as OciModelResources.OciLoadBalancerBackendSet[]).map((b) => {
+ return {...b,
+ id: l.id.replace('loadbalancer', 'load_balancer_backend_set'),
+ compartmentId: l.compartmentId,
+ displayName: b.name,
+ loadBalancerId: l.id,
+ lifecycleState: l.lifecycleState
+ }
+ })).flat()
+ // Create Backends
+ design.model.oci.resources.load_balancer_backend = design.model.oci.resources.load_balancer_backend_set.map((bs) => Object.values(bs.backends as OciModelResources.OciLoadBalancerBackend[]).map((b) => {
+ const vnicAttachments = design.model.oci.resources.vnic_attachment ? design.model.oci.resources.vnic_attachment : []
+ const vnicAttachment = vnicAttachments.find((v) => v.privateIp && v.privateIp.ipAddress === b.ipAddress)
+ const instanceId = vnicAttachment ? vnicAttachment.instanceId : ''
+ // const instanceId = design.model.oci.resources.vnic_attachment ? design.model.oci.resources.vnic_attachment.find((v) => v.privateIp && v.privateIp.ipAddress === b.ipAddress).instanceId : ''
+ return {...b,
+
+ id: bs.id.replace('load_balancer_backend_set', 'load_balancer_backend'),
+ compartmentId: bs.compartmentId,
+ displayName: b.name,
+ backendSetId: bs.id,
+ backendsetName: bs.name,
+ loadBalancerId: bs.loadBalancerId,
+ instanceId: instanceId,
+ lifecycleState: bs.lifecycleState
+ }
+ })).flat()
+ // Create Listeners
+ design.model.oci.resources.load_balancer_listener = design.model.oci.resources.load_balancer.map((l: OciModelResources.OciLoadBalancer) => (Object.values(l.listeners as OciModelResources.OciLoadBalancerListener[])).map((listener) => {
+ return {...listener,
+ id: l.id.replace('loadbalancer', 'load_balancer_listener'),
+ compartmentId: l.compartmentId,
+ displayName: listener.name,
+ defaultBackendSetName: design.model.oci.resources.load_balancer_backend_set.find((b) => b.loadBalancerId === l.id && b.displayName === listener.defaultBackendSetName)?.id,
+ loadBalancerId: l.id,
+ lifecycleState: l.lifecycleState
+ }
+ })).flat()
+ design.model.oci.resources.load_balancer.forEach((l) => {
+ delete l.backendSets
+ delete l.listeners
+ })
+ // console.debug('OciQuery: Load Balancer Backend Sets:', design.model.oci.resources.load_balancer_backend_set)
+ // console.debug('OciQuery: Load Balancer Backends:', design.model.oci.resources.load_balancer_backend)
+ }
+ }
+
listMountTargets(compartmentIds: string[], retryCount: number = 0): Promise {
return new Promise((resolve, reject) => {
this.listAvailabilityDomains(compartmentIds.slice(0,1)).then((ads) => {
diff --git a/ocd/packages/react/package.json b/ocd/packages/react/package.json
index fd8243960..a28f0aab5 100644
--- a/ocd/packages/react/package.json
+++ b/ocd/packages/react/package.json
@@ -1,6 +1,6 @@
{
"name": "@ocd/react",
- "version": "0.2.4",
+ "version": "0.2.5",
"description": "",
"main": "index.js",
"scripts": {
@@ -10,7 +10,7 @@
"author": "",
"license": "ISC",
"dependencies": {
- "@ocd/core": "^0.2.4",
- "@ocd/model": "^0.2.4"
+ "@ocd/core": ">=0.2.5",
+ "@ocd/model": ">=0.2.5"
}
}
diff --git a/ocd/packages/web/package.json b/ocd/packages/web/package.json
index d0df159e1..1fb79983b 100644
--- a/ocd/packages/web/package.json
+++ b/ocd/packages/web/package.json
@@ -1,6 +1,6 @@
{
"name": "@ocd/web",
- "version": "0.2.4",
+ "version": "0.2.5",
"description": "OKIT Open Cloud Designer Web Interface",
"title": "OKIT Open Cloud Designer Web Interface",
"author": {
diff --git a/okit-web/README.md b/okit-web/README.md
new file mode 100644
index 000000000..37ddab055
--- /dev/null
+++ b/okit-web/README.md
@@ -0,0 +1 @@
+# Placeholder for the restructuring of the github repo
\ No newline at end of file
diff --git a/okit-web/backend/README.md b/okit-web/backend/README.md
new file mode 100644
index 000000000..37ddab055
--- /dev/null
+++ b/okit-web/backend/README.md
@@ -0,0 +1 @@
+# Placeholder for the restructuring of the github repo
\ No newline at end of file
diff --git a/okit-web/frontend/README.md b/okit-web/frontend/README.md
new file mode 100644
index 000000000..37ddab055
--- /dev/null
+++ b/okit-web/frontend/README.md
@@ -0,0 +1 @@
+# Placeholder for the restructuring of the github repo
\ No newline at end of file
diff --git a/okitweb/package-lock.json b/okitweb/package-lock.json
deleted file mode 100644
index b0f4ec337..000000000
--- a/okitweb/package-lock.json
+++ /dev/null
@@ -1,443 +0,0 @@
-{
- "name": "okitweb",
- "version": "0.63.0",
- "lockfileVersion": 3,
- "requires": true,
- "packages": {
- "": {
- "name": "okitweb",
- "version": "0.63.0",
- "license": "UPL-1.0",
- "dependencies": {
- "d3": "7.9",
- "jquery": "3.6.0"
- }
- },
- "node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/d3": {
- "version": "7.9.0",
- "resolved": "https://registry.npmjs.org/d3/-/d3-7.9.0.tgz",
- "integrity": "sha512-e1U46jVP+w7Iut8Jt8ri1YsPOvFpg46k+K8TpCb0P+zjCkjkPnV7WzfDJzMHy1LnA+wj5pLT1wjO901gLXeEhA==",
- "dependencies": {
- "d3-array": "3",
- "d3-axis": "3",
- "d3-brush": "3",
- "d3-chord": "3",
- "d3-color": "3",
- "d3-contour": "4",
- "d3-delaunay": "6",
- "d3-dispatch": "3",
- "d3-drag": "3",
- "d3-dsv": "3",
- "d3-ease": "3",
- "d3-fetch": "3",
- "d3-force": "3",
- "d3-format": "3",
- "d3-geo": "3",
- "d3-hierarchy": "3",
- "d3-interpolate": "3",
- "d3-path": "3",
- "d3-polygon": "3",
- "d3-quadtree": "3",
- "d3-random": "3",
- "d3-scale": "4",
- "d3-scale-chromatic": "3",
- "d3-selection": "3",
- "d3-shape": "3",
- "d3-time": "3",
- "d3-time-format": "4",
- "d3-timer": "3",
- "d3-transition": "3",
- "d3-zoom": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-array": {
- "version": "3.2.4",
- "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.4.tgz",
- "integrity": "sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg==",
- "dependencies": {
- "internmap": "1 - 2"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-axis": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
- "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-brush": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
- "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "3",
- "d3-transition": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-chord": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
- "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
- "dependencies": {
- "d3-path": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-color": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
- "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-contour": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
- "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
- "dependencies": {
- "d3-array": "^3.2.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-delaunay": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
- "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
- "dependencies": {
- "delaunator": "5"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dispatch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
- "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-drag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
- "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-selection": "3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-dsv": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
- "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
- "dependencies": {
- "commander": "7",
- "iconv-lite": "0.6",
- "rw": "1"
- },
- "bin": {
- "csv2json": "bin/dsv2json.js",
- "csv2tsv": "bin/dsv2dsv.js",
- "dsv2dsv": "bin/dsv2dsv.js",
- "dsv2json": "bin/dsv2json.js",
- "json2csv": "bin/json2dsv.js",
- "json2dsv": "bin/json2dsv.js",
- "json2tsv": "bin/json2dsv.js",
- "tsv2csv": "bin/dsv2dsv.js",
- "tsv2json": "bin/dsv2json.js"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-ease": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
- "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-fetch": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
- "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
- "dependencies": {
- "d3-dsv": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-force": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
- "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-quadtree": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-format": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
- "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-geo": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.1.tgz",
- "integrity": "sha512-637ln3gXKXOwhalDzinUgY83KzNWZRKbYubaG+fGVuc/dxO64RRljtCTnf5ecMyE1RIdtqpkVcq0IbtU2S8j2Q==",
- "dependencies": {
- "d3-array": "2.5.0 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-hierarchy": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
- "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-interpolate": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
- "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
- "dependencies": {
- "d3-color": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-path": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
- "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-polygon": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
- "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-quadtree": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
- "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-random": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
- "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-scale": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
- "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
- "dependencies": {
- "d3-array": "2.10.0 - 3",
- "d3-format": "1 - 3",
- "d3-interpolate": "1.2.0 - 3",
- "d3-time": "2.1.1 - 3",
- "d3-time-format": "2 - 4"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-scale-chromatic": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
- "integrity": "sha512-A3s5PWiZ9YCXFye1o246KoscMWqf8BsD9eRiJ3He7C9OBaxKhAd5TFCdEx/7VbKtxxTsu//1mMJFrEt572cEyQ==",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-interpolate": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-selection": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
- "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-shape": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
- "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
- "dependencies": {
- "d3-path": "^3.1.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
- "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
- "dependencies": {
- "d3-array": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-time-format": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
- "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
- "dependencies": {
- "d3-time": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-timer": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
- "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/d3-transition": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
- "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
- "dependencies": {
- "d3-color": "1 - 3",
- "d3-dispatch": "1 - 3",
- "d3-ease": "1 - 3",
- "d3-interpolate": "1 - 3",
- "d3-timer": "1 - 3"
- },
- "engines": {
- "node": ">=12"
- },
- "peerDependencies": {
- "d3-selection": "2 - 3"
- }
- },
- "node_modules/d3-zoom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
- "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
- "dependencies": {
- "d3-dispatch": "1 - 3",
- "d3-drag": "2 - 3",
- "d3-interpolate": "1 - 3",
- "d3-selection": "2 - 3",
- "d3-transition": "2 - 3"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/delaunator": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.1.tgz",
- "integrity": "sha512-8nvh+XBe96aCESrGOqMp/84b13H9cdKbG5P2ejQCh4d4sK9RL4371qou9drQjMhvnPmhWl5hnmqbEE0fXr9Xnw==",
- "dependencies": {
- "robust-predicates": "^3.0.2"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
- "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/internmap": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
- "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/jquery": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.6.0.tgz",
- "integrity": "sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw==",
- "license": "MIT"
- },
- "node_modules/robust-predicates": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz",
- "integrity": "sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg=="
- },
- "node_modules/rw": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
- "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- }
- }
-}
diff --git a/okitweb/package.json b/okitweb/package.json
deleted file mode 100644
index 4971c21fa..000000000
--- a/okitweb/package.json
+++ /dev/null
@@ -1,13 +0,0 @@
-{
- "name": "okitweb",
- "version": "0.64.0",
- "description": "OKIT Web application",
- "scripts": {},
- "author": "Oracle",
- "license": "UPL-1.0",
- "private": true,
- "dependencies": {
- "d3": "7.9",
- "jquery": "3.6.0"
- }
-}
diff --git a/okitweb/static/okit/js/okit.js b/okitweb/static/okit/js/okit.js
index 18651ac77..b848ad4d0 100644
--- a/okitweb/static/okit/js/okit.js
+++ b/okitweb/static/okit/js/okit.js
@@ -243,7 +243,7 @@ class OkitOCIData {
}
query(profile, region='', save=false) {
- console.info('Querying Dropdown data for', profile, region);
+ console.info('OkitOCIData: Querying OCI Dropdown data for', profile, region);
const self = this;
const start = new Date().getTime()
const section = okitOciConfig.getSection(profile)
@@ -262,37 +262,37 @@ class OkitOCIData {
cache: false
}).done((resp) => {
console.info('OkitOCIData: Querying Dropdown data for', profile, region);
- const response = resp
+ // const response = resp
const end = new Date().getTime()
- const profile_region = okitOciConfig.getRegion(profile)
+ // const profile_region = okitOciConfig.getRegion(profile)
console.info('OkitOCIData: Querying Dropdown Region Subscription for', profile, 'took', end - start, 'ms')
// console.info('Region Subscriptions', typeof(response), response)
// We Know that this Profile is not a PCA-X9 so we can use the OCI Dropdowwn Query
- if (response.length === 1 && response[0].region_key !== profile_region) {
- if (region === '') region = profile_region
- console.info('OkitOCIData: Querying PCA Dropdown data for', profile, region);
- $.getJSON('pca/dropdown', {
- cache: false,
- profile: profile,
- region: region
- }).done((resp) => {
- self.dropdown_data = {...self.dropdown_data, ...resp};
- delete self.dropdown_data.default
- delete self.dropdown_data.shipped
- self.dropdown_data.cache_date = Date.now()
- const end = new Date().getTime()
- console.info('PCA-X9 Queried Dropdown Data for', profile, 'took', end - start, 'ms')
- console.info('PCA-X9 Data', resp)
- // save ? this.save(profile, region) : this.storeLocal(profile, region)
- this.save(profile, region)
- this.storeLocal(profile, region)
- resolve(this)
- }).fail((xhr, status, error) => {
- console.warn('Status : '+ status)
- console.warn('Error : '+ error)
- reject(error)
- })
- } else {
+ // if (response.length === 1 && response[0].region_key !== profile_region) {
+ // if (region === '') region = profile_region
+ // console.info('OkitOCIData: Querying PCA Dropdown data for', profile, region);
+ // $.getJSON('pca/dropdown', {
+ // cache: false,
+ // profile: profile,
+ // region: region
+ // }).done((resp) => {
+ // self.dropdown_data = {...self.dropdown_data, ...resp};
+ // delete self.dropdown_data.default
+ // delete self.dropdown_data.shipped
+ // self.dropdown_data.cache_date = Date.now()
+ // const end = new Date().getTime()
+ // console.info('PCA-X9 Queried Dropdown Data for', profile, 'took', end - start, 'ms')
+ // console.info('PCA-X9 Data', resp)
+ // // save ? this.save(profile, region) : this.storeLocal(profile, region)
+ // this.save(profile, region)
+ // this.storeLocal(profile, region)
+ // resolve(this)
+ // }).fail((xhr, status, error) => {
+ // console.warn('Status : '+ status)
+ // console.warn('Error : '+ error)
+ // reject(error)
+ // })
+ // } else {
console.info('OkitOCIData: Querying OCI Dropdown data for', profile, region);
$.getJSON('oci/dropdown', {
profile: profile,
@@ -316,7 +316,7 @@ class OkitOCIData {
console.warn('Error : '+ error)
reject(error)
})
- }
+ // }
}).fail((xhr, status, error) => {
console.warn('Status : '+ status)
console.warn('Error : '+ error)
@@ -536,6 +536,48 @@ class OkitOCIData {
}
}
+class OkitPCAData extends OkitOCIData {
+ query(profile, region='', save=false) {
+ console.info('OkitPCAData: Querying PCA Dropdown data for', profile, region);
+ const self = this;
+ const start = new Date().getTime()
+ // Get Shipped
+ return new Promise((resolve, reject) => {
+ $.getJSON('dropdown', {cache: false}).done((resp) => {
+ console.info('OkitPCAData: Retrieved Shipped Dropdown Data');
+ self.dropdown_data = resp
+ // Test if Profile is valid
+ if (okitOciConfig && okitOciConfig.getSections().includes(profile)) {
+ $.getJSON('pca/dropdown', {
+ cache: false,
+ profile: profile,
+ region: region
+ }).done((resp) => {
+ self.dropdown_data = {...self.dropdown_data, ...resp};
+ delete self.dropdown_data.default
+ delete self.dropdown_data.shipped
+ self.dropdown_data.cache_date = Date.now()
+ const end = new Date().getTime()
+ console.info('OkitPCAData: PCA-X9 Queried Dropdown Data for', profile, 'took', end - start, 'ms')
+ console.info('OkitPCAData: PCA-X9 Data', resp)
+ // save ? this.save(profile, region) : this.storeLocal(profile, region)
+ this.save(profile, region)
+ this.storeLocal(profile, region)
+ resolve(this)
+ }).fail((xhr, status, error) => {
+ console.warn('Status : '+ status)
+ console.warn('Error : '+ error)
+ reject(error)
+ })
+ } else {
+ console.warn('OkitPCAData: Profile "', profile, '" does not exist in OCI Config')
+ reject('OkitPCAData: Profile', profile, 'does not exist in OCI Config')
+ }
+ })
+ })
+ }
+}
+
class OkitRegions {
key = "OkitRegionCache"
constructor(loaded_callback) {
@@ -634,20 +676,20 @@ class OkitRegions {
const profile_region = okitOciConfig.getRegion(profile)
console.info('Region Subscription for', profile, 'took', end - start, 'ms')
console.info('Region Subscriptions', typeof(response), Array.isArray(response), response)
- if (response.length === 1 && response[0].region_key !== profile_region) {
- console.info('OkitRegions: Querying PCA data for', profile, profile_region);
- $.getJSON(`pca/regions`, {
- profile: profile,
- cache: false
- }).done((resp) => {
- const end = new Date().getTime()
- console.info('Load Regions took', end - start, 'ms')
- self.regions = resp
- self.storeLocal(profile);
- if (self.loaded_callback) self.loaded_callback();
- resolve(this)
- }).fail((xhr, status, error) => {reject(error)})
- } else {
+ // if (response.length === 1 && response[0].region_key !== profile_region) {
+ // console.info('OkitRegions: Querying PCA data for', profile, profile_region);
+ // $.getJSON(`pca/regions`, {
+ // profile: profile,
+ // cache: false
+ // }).done((resp) => {
+ // const end = new Date().getTime()
+ // console.info('Load Regions took', end - start, 'ms')
+ // self.regions = resp
+ // self.storeLocal(profile);
+ // if (self.loaded_callback) self.loaded_callback();
+ // resolve(this)
+ // }).fail((xhr, status, error) => {reject(error)})
+ // } else {
console.info('OkitRegions: Querying OCI data for', profile, profile_region);
self.regions = resp
// if (self.regions.length === 1 && self.regions[0].region_key !== profile_region) self.regions = [{is_home_region: true, region_key: profile_region, region_name: profile_region, status: 'READY'}]
@@ -667,7 +709,7 @@ class OkitRegions {
// if (self.loaded_callback) self.loaded_callback();
// resolve(this)
// }).fail((xhr, status, error) => {reject(error)})
- }
+ // }
// $.getJSON(`oci/regions/${profile}`, {
// profile: profile,
// config: JSON.stringify(config),
@@ -718,6 +760,37 @@ class OkitRegions {
isRegionAvailable(region_id) {return this.regions.map((r) => r.id).includes(region_id)}
}
+class OkitPCARegions extends OkitRegions {
+ query(profile) {
+ console.info('OkitPCARegions: Loading Region data for', profile);
+ const self = this
+ const section = okitOciConfig.getSection(profile)
+ const config = section && section.session ? okitSessionOciConfigs.configs[profile] : {}
+ console.debug('OkitRegions: Config', config, 'Section', section)
+
+ return new Promise((resolve, reject) => {
+ if (okitOciConfig && okitOciConfig.getSections().includes(profile)) {
+ const start = new Date().getTime()
+ $.getJSON(`pca/regions`, {
+ profile: profile,
+ cache: false
+ }).done((resp) => {
+ const end = new Date().getTime()
+ console.info('Load Regions took', end - start, 'ms')
+ self.regions = resp
+ self.storeLocal(profile);
+ if (self.loaded_callback) self.loaded_callback();
+ resolve(this)
+ }).fail((xhr, status, error) => {reject(error)})
+ } else {
+ console.warn('OkitOciData: Profile "', profile, '" does not exist in OCI Config')
+ reject('OkitOciData: Profile', profile, 'does not exist in OCI Config')
+ }
+
+ })
+ }
+}
+
class OkitSettings {
constructor() {
this.is_default_security_list = false;
diff --git a/okitweb/static/okit/js/okit_console.js b/okitweb/static/okit/js/okit_console.js
index 7abb73d7c..a5a08db5b 100644
--- a/okitweb/static/okit/js/okit_console.js
+++ b/okitweb/static/okit/js/okit_console.js
@@ -5,8 +5,8 @@
console.debug('Loaded Console Javascript');
-const okitVersion = '0.64.0';
-const okitReleaseDate = '30th September 2024';
+const okitVersion = '0.65.0';
+const okitReleaseDate = '31st October 2024';
// const okitReleaseDate = 'Nightly';
// Validation
diff --git a/okitweb/static/okit/js/okit_designer_ready.js b/okitweb/static/okit/js/okit_designer_ready.js
index 5e89c99b6..3abee41eb 100644
--- a/okitweb/static/okit/js/okit_designer_ready.js
+++ b/okitweb/static/okit/js/okit_designer_ready.js
@@ -20,8 +20,13 @@ const initialiseGlobals = () => {
okitSessionOciConfigs = new OkitSessionOCIConfigs();
okitSettings = new OkitSettings();
okitOciConfig = new OkitOCIConfig(loadHeaderConfigDropDown);
- okitRegions = new OkitRegions(loadHeaderRegionsDropDown);
- okitOciData = new OkitOCIData(okitSettings.profile, okitSettings.region);
+ if (pca_mode || c3_mode) {
+ okitRegions = new OkitPCARegions(loadHeaderRegionsDropDown);
+ okitOciData = new OkitPCAData(okitSettings.profile, okitSettings.region);
+ } else {
+ okitRegions = new OkitRegions(loadHeaderRegionsDropDown);
+ okitOciData = new OkitOCIData(okitSettings.profile, okitSettings.region);
+ }
okitGitConfig = new OkitGITConfig();
okitOciProductPricing = new OkitOciProductPricing()
diff --git a/okitweb/static/okit/json/release.json b/okitweb/static/okit/json/release.json
index abce797a0..a4cb70d7b 100644
--- a/okitweb/static/okit/json/release.json
+++ b/okitweb/static/okit/json/release.json
@@ -1,5 +1,5 @@
{
- "release": "0.64.0",
- "tag": "v0.64.0",
- "title": "September 2024 Release"
+ "release": "0.65.0",
+ "tag": "v0.65.0",
+ "title": "October 2024 Release"
}
\ No newline at end of file
diff --git a/okitweb/static/okit/model/js/resources/node_pool.js b/okitweb/static/okit/model/js/resources/node_pool.js
index ca5f1473d..bad0c92bc 100644
--- a/okitweb/static/okit/model/js/resources/node_pool.js
+++ b/okitweb/static/okit/model/js/resources/node_pool.js
@@ -48,7 +48,15 @@ class NodePool extends OkitArtifact {
Object.defineProperty(this, 'node_pool_type', {get: function() {return this.getOkitJson().getResource(this.cluster_id).node_pool_type;}});
Object.defineProperty(this, 'virtual_nodes', {get: function() {return this.node_pool_type === 'Virtual'}});
}
-
+ /*
+ ** Conversion Routine allowing loading of old json
+ */
+ convert() {
+ super.convert();
+ this.node_config_details.placement_configs.forEach((p) => p.availability_domain = String(p.availability_domain).slice(-1))
+ if (this.nodes) delete this.nodes
+ }
+
isVirtualNodes = () => this.getOkitJson().getResource(this.cluster_id) && this.getOkitJson().getResource(this.cluster_id).node_pool_type === 'Virtual'
setDefaultShape = () => this.node_shape = this.isVirtualNodes() ? 'Pod.Standard.E3.Flex' : 'VM.Standard.E3.Flex'
diff --git a/okitweb/static/okit/view/js/okit_view.js b/okitweb/static/okit/view/js/okit_view.js
index 6b2d73776..6a1302140 100644
--- a/okitweb/static/okit/view/js/okit_view.js
+++ b/okitweb/static/okit/view/js/okit_view.js
@@ -56,10 +56,10 @@ class OkitJsonView {
drop(source, target) {
let newFunction = 'new' + source.name;
let getFunction = 'get' + target.type.split(' ').join('');
+ console.debug('OkitJsonView: New:', newFunction,'Get:', getFunction)
}
- init() {
- }
+ init() {return}
clear() {
for (const [key, value] of Object.entries(this)) {
@@ -166,7 +166,7 @@ class OkitArtefactView {
static get fo_x_tranlation() {return this.icon_width + 5;}
static get fo_y_tranlation() {return 0;}
- constructor(artefact=null, json_view) {
+ constructor(artefact, json_view) {
this.artefact = artefact;
// this.view = json_view
// this.artefact = new Proxy(artefact, model_proxy_handler);
@@ -338,6 +338,7 @@ class OkitArtefactView {
id: this.icon_definition_id,
transform: this.icon_transform
}
+ return definition
}
getForeignObjectDefinition() {
const definition = {
diff --git a/visualiser/facades/ociConnection.py b/visualiser/facades/ociConnection.py
index 91ee34561..a19c20970 100644
--- a/visualiser/facades/ociConnection.py
+++ b/visualiser/facades/ociConnection.py
@@ -25,7 +25,7 @@
class OCIConnection(object):
PAGINATION_LIMIT = 1000
- OKIT_VERSION = 'v0.64.0'
+ OKIT_VERSION = 'v0.65.0'
def __init__(self, config=None, configfile=None, profile=None, region=None, signer=None):
self.tenancy_ocid = ''
diff --git a/visualiser/generators/okitGenerator.py b/visualiser/generators/okitGenerator.py
index 1606c7730..77ba2e4ac 100644
--- a/visualiser/generators/okitGenerator.py
+++ b/visualiser/generators/okitGenerator.py
@@ -27,7 +27,7 @@
logger = getLogger()
class OCIGenerator(object):
- OKIT_VERSION = "0.64.0"
+ OKIT_VERSION = "0.65.0"
def __init__(self, template_dir, output_dir, visualiser_json, use_vars=False, add_provider=True):
# Initialise generator output data variables
self.rendered_resources = {}
diff --git a/visualiser/query/ociQuery.py b/visualiser/query/ociQuery.py
index b2e72e87d..5e7b3bab1 100644
--- a/visualiser/query/ociQuery.py
+++ b/visualiser/query/ociQuery.py
@@ -279,7 +279,7 @@ def convert(self, discovery_data, compartments, query_compartment_ids=[]):
elif resource_type == "NetworkSecurityGroup":
resource_list = self.network_security_group(resource_list, resources)
elif resource_type == "NodePool":
- logger.info(f'Node Pools {jsonToFormattedString(resource_list)}')
+ resource_list = self.node_pools(resource_list)
elif resource_type == "NoSQLTable":
resource_list = self.nosql_databases(resource_list, resources)
elif resource_type == "RouteTable":
@@ -490,6 +490,11 @@ def nosql_databases(self, databases, resources):
database['indexes'] = [i for i in indexes if i['table_id'] == database['id']]
return databases
+ def node_pools(self, node_pools):
+ for node_pool in node_pools:
+ node_pool.pop('nodes', None)
+ return node_pools
+
def object_storage_buckets(self, buckets, resources):
for bucket in buckets:
bucket["display_name"] = bucket["name"]
diff --git a/visualiser/templates/terraform/node_pool.jinja2 b/visualiser/templates/terraform/node_pool.jinja2
index 95ecac160..b3434cd25 100644
--- a/visualiser/templates/terraform/node_pool.jinja2
+++ b/visualiser/templates/terraform/node_pool.jinja2
@@ -42,7 +42,7 @@ resource "oci_containerengine_node_pool" "{{ resource_name }}" {
{% for config in node_config_details.placement_configs %}
placement_configs {
{# Get last character of AD from between the quotes this is the AD numerical value #}
- availability_domain = data.oci_identity_availability_domains.AvailabilityDomains.availability_domains[{{ config.availability_domain[-2:-1] | safe | int }} - 1]["name"]
+ availability_domain = data.oci_identity_availability_domains.AvailabilityDomains.availability_domains[{{ config.availability_domain | safe | int }} - 1]["name"]
subnet_id = {{ config.subnet_id }}
}
{% endfor %}