Add extracted tools: CitrineOS, OpenOCPP, ShapeShifter

- CitrineOS core extracted (CSMS OCPP 2.0.1)
- OpenOCPP extracted (firmware OCPP 1.6J/2.0.1)
- ShapeShifter library installed (pip install -e)
- ShapeShifter specification extracted
- EVerest extracted

TODO updated with progress
This commit is contained in:
Eric F
2026-06-08 00:38:27 -04:00
parent 468cfeaa50
commit d398a6ced2
7326 changed files with 1177561 additions and 7 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 353 KiB

View File

@@ -0,0 +1,24 @@
<svg width="1440" height="834" viewBox="0 0 1440 834" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_f_268_1804)">
<path d="M993.085 908.711C919.031 1133.52 734.23 1233.65 506.571 1158.66C278.911 1083.66 -209.974 791.896 -135.92 567.086C-61.8657 342.276 -59.7456 909.78 584.529 471.226C1149.14 102.24 1067.14 683.901 993.085 908.711Z" fill="url(#paint0_linear_268_1804)" fill-opacity="0.79"/>
</g>
<g filter="url(#filter1_f_268_1804)">
<path d="M1403.72 391.896C1358.24 571.341 1215.13 689.886 1084.06 656.673C952.995 623.459 827.294 618.207 872.767 438.762C918.239 259.316 967.561 235.571 1139.54 279.15C1270.6 312.364 1274.88 136.117 1403.72 391.896Z" fill="#A5B2FF" fill-opacity="0.5"/>
</g>
<defs>
<filter id="filter0_f_268_1804" x="-393.479" y="101.584" width="1689.18" height="1331.68" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="125" result="effect1_foregroundBlur_268_1804"/>
</filter>
<filter id="filter1_f_268_1804" x="613.275" y="0.543945" width="1040.44" height="911.706" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="125" result="effect1_foregroundBlur_268_1804"/>
</filter>
<linearGradient id="paint0_linear_268_1804" x1="206.96" y1="660.118" x2="654.531" y2="348.777" gradientUnits="userSpaceOnUse">
<stop stop-color="#A5B2FF" stop-opacity="0.59"/>
<stop offset="1" stop-color="#6E87FF" stop-opacity="0.52"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,24 @@
<svg width="1440" height="834" viewBox="0 0 1440 834" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_f_288_1832)">
<path d="M993.085 908.711C919.031 1133.52 734.23 1233.65 506.571 1158.66C278.911 1083.66 -209.974 791.896 -135.92 567.086C-61.8657 342.276 -59.7456 909.78 584.529 471.226C1149.14 102.24 1067.14 683.901 993.085 908.711Z" fill="url(#paint0_linear_288_1832)"/>
</g>
<g filter="url(#filter1_f_288_1832)">
<path d="M1403.72 391.896C1358.24 571.341 1215.13 689.886 1084.06 656.673C952.995 623.459 827.294 618.207 872.767 438.762C918.239 259.316 967.561 235.571 1139.54 279.15C1270.6 312.364 1274.88 136.117 1403.72 391.896Z" fill="#F9B41E" fill-opacity="0.57"/>
</g>
<defs>
<filter id="filter0_f_288_1832" x="-393.479" y="101.584" width="1689.18" height="1331.68" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="125" result="effect1_foregroundBlur_288_1832"/>
</filter>
<filter id="filter1_f_288_1832" x="613.275" y="0.543945" width="1040.44" height="911.706" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="125" result="effect1_foregroundBlur_288_1832"/>
</filter>
<linearGradient id="paint0_linear_288_1832" x1="206.96" y1="660.118" x2="654.531" y2="348.777" gradientUnits="userSpaceOnUse">
<stop stop-color="#A5B2FF" stop-opacity="0.59"/>
<stop offset="1" stop-color="#6E87FF" stop-opacity="0.52"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@@ -0,0 +1,7 @@
{
"Authorizations": {
"Authorizations": "Authorizations",
"authorization": "Authorization",
"noDataFound": "No authorization found with id {id}."
}
}

View File

@@ -0,0 +1,66 @@
{
"ChargingStations": {
"ChargingStations": "Charging Stations",
"chargingStation": "Charging Station",
"use16StatusNotification0": "Use OCPP 1.6 Status Notifications with Connector Id 0",
"toggleOnlineStatus": "Toggle Online Status",
"toggleOnlineWarning": "You are about to mark this charging station as ",
"toggleOnlineCaution": "Warning: This action may cause the UI to be out of sync with the actual station status. Only proceed if you are certain.",
"commandsUnavailable": "Station offline - commands unavailable",
"forceDisconnect": "Force Disconnect",
"otherCommands": "Other Commands",
"remoteStart": "Remote Start",
"remoteStop": "Remote Stop",
"reset": "Reset",
"startTransaction": "Start Transaction",
"stopTransaction": "Stop Transaction",
"forceDisconnectMessage": "Are you sure you want to force disconnect this charging station",
"forceDisconnectCaution": "This will immediately close the connection to the station.",
"exportMessagesToCsvHeader": "Export OCPP Messages to CSV",
"downloadAllMessagesToCsv": "You will download all OCPP messages for this charger.",
"downloadMessagesToCsvWithFilters": "You will download OCPP messages for this charger with the following filters:",
"liveLog": "Live log",
"liveLogDisabledInactivity": "Live log disabled due to inactivity",
"refreshMessages": "Refresh Messages",
"noDataFound": "No charging station found with id {id}.",
"connectionModal": {
"welcomeTitle": "Welcome to CitrineOS Operator UI",
"connectionTitle": "Charging Station Connection",
"welcomeDescription": "Watch this quick introduction video to learn how to connect charging stations. You can access this information anytime by clicking the Help button.",
"connectionDescription": "Use the following tenant-specific websocket URLs to connect to the server. The connection can be upgraded from No Authentication to Security Profile 3 one by one.",
"showConnectionInfo": "Show Connection Info",
"showHelpVideo": "Show Help Video",
"gettingStartedVideo": "Getting Started Video",
"videoNotSupported": "Your browser does not support the video tag.",
"noVideoAvailable": "No video available",
"videoDescription": "This video demonstrates how to connect charging stations to the CitrineOS platform.",
"quickSteps": "Quick Steps",
"step1": "Configure your charging station with the appropriate websocket URL",
"step2": "Choose the security profile that matches your setup",
"step3": "Copy the connection URL from the connection info section",
"step4": "Test the connection from your charging station",
"rememberLabel": "Remember:",
"rememberText": "You can always access this help content by clicking the Help button in the sidebar.",
"copied": "Copied!",
"noWebsocketServers": "No websocket servers available.",
"securityProfiles": {
"0": {
"label": "No Authentication",
"description": "The charging station connects without credentials. Set up the username/password using this connection"
},
"1": {
"label": "Security Profile 1: Unsecured Transport with Basic Authentication",
"description": "Charging Station authentication is done through a username and password. Install CA certificate in the charging station using this connection"
},
"2": {
"label": "Security Profile 2: TLS with Basic Authentication",
"description": "The CSMS authenticates itself using a TLS server certificate. The Charging Stations authenticate themselves using HTTP Basic Authentication. Sign charging station certificate using this connection"
},
"3": {
"label": "Security Profile 3: TLS with Client Side Certificates",
"description": "Both the Charging Station and CSMS authenticate themselves using certificates."
}
}
}
}
}

View File

@@ -0,0 +1,188 @@
{
"pages": {
"login": {
"title": "Sign in to your account",
"signin": "Sign in",
"signup": "Sign up",
"divider": "or",
"fields": {
"email": "Email",
"password": "Password"
},
"errors": {
"validEmail": "Invalid email address",
"requiredEmail": "Email is required",
"requiredPassword": "Password is required"
},
"buttons": {
"submit": "Login",
"forgotPassword": "Forgot password?",
"noAccount": "Dont have an account?",
"rememberMe": "Remember me"
}
},
"forgotPassword": {
"title": "Forgot your password?",
"fields": {
"email": "Email"
},
"errors": {
"validEmail": "Invalid email address",
"requiredEmail": "Email is required"
},
"buttons": {
"submit": "Send reset instructions"
}
},
"register": {
"title": "Sign up for your account",
"fields": {
"email": "Email",
"password": "Password"
},
"errors": {
"validEmail": "Invalid email address",
"requiredEmail": "Email is required",
"requiredPassword": "Password is required"
},
"buttons": {
"submit": "Register",
"haveAccount": "Have an account?"
}
},
"updatePassword": {
"title": "Update password",
"fields": {
"password": "New Password",
"confirmPassword": "Confirm new password"
},
"errors": {
"confirmPasswordNotMatch": "Passwords do not match",
"requiredPassword": "Password required",
"requiredConfirmPassword": "Confirm password is required"
},
"buttons": {
"submit": "Update"
}
},
"error": {
"info": "You may have forgotten to add the {action} component to {resource} resource.",
"404": "Sorry, the page you visited does not exist.",
"resource404": "Are you sure you have created the {resource} resource.",
"backHome": "Back Home"
},
"redirectingToLogin": "Redirecting to login...",
"checkingAuth": "Checking authentication..."
},
"actions": {
"create": "Create",
"delete": "Delete",
"edit": "Edit",
"list": "List",
"show": "Show"
},
"buttons": {
"add": "Add",
"cancel": "Cancel",
"clear": "Clear",
"clone": "Clone",
"columns": "Columns",
"confirm": "Are you sure?",
"confirmText": "Confirm",
"create": "Create",
"delete": "Delete",
"download": "Download",
"edit": "Edit",
"exportToCsv": "Export to CSV",
"filter": "Filter",
"import": "Import",
"logout": "Logout",
"notAccessTitle": "You don't have permission to access this resource.",
"ok": "OK",
"refresh": "Refresh",
"save": "Save",
"saving": "Saving...",
"show": "Show",
"submit": "Submit",
"undo": "Undo",
"upload": "Upload"
},
"warnWhenUnsavedChanges": "Are you sure you want to leave? You have unsaved changes.",
"notifications": {
"success": "Successful",
"error": "Error (status code: {statusCode})",
"undoable": "You have {seconds} seconds to undo",
"createSuccess": "Successfully created {resource}",
"createError": "There was an error creating {resource} (status code: {statusCode})",
"deleteSuccess": "Successfully deleted {resource}",
"deleteError": "Error when deleting {resource} (status code: {statusCode})",
"editSuccess": "Successfully edited {resource}",
"editError": "Error when editing {resource} (status code: {statusCode})",
"importProgress": "Importing: {processed}/{total}"
},
"accessDenied": "Access Denied",
"imageUploadFailed": "Image upload failed.",
"loading": "Loading",
"noDataFound": "No Data Found",
"somethingWentWrong": "Something went wrong.",
"loggedOut": "Logged out! Redirecting to login...",
"tags": {
"clone": "Clone"
},
"table": {
"actions": "Actions",
"bulkActions": "Bulk Actions",
"clearFilters": "Clear filters",
"noResultsFound": "No results found",
"selectAll": "Select all",
"selected": "selected",
"toggleColumns": "Toggle columns",
"resetColumns": "Reset Columns"
},
"dialogs": {
"areYouSure": "Are you sure?",
"thisActionCannotBeUndone": "This action cannot be undone."
},
"placeholders": {
"search": "Search",
"select": "Select"
},
"pagination": {
"buttons": {
"goToFirstPage": "Go to first page",
"goToNextPage": "Go to next page",
"goToPreviousPage": "Go to previous page",
"goToLastPage": "Go to last page"
},
"rowsPerPage": "Rows per page"
},
"menu": {
"overview": "Overview",
"help": "Help",
"themes": {
"changeTo": "Change to",
"dark": "Dark",
"light": "Light",
"mode": "Mode"
}
},
"telemetryConsentModal": {
"title": "Anonymous Metrics Consent",
"description": "CitrineOS collects anonymous usage metrics to help us improve the product. Would you like to send these metrics?",
"reject": "Reject",
"accept": "Accept"
},
"overview": {
"activeTransactions": "Active Transactions",
"chargerActivity": "Charger Activity",
"chargerOnlineStatus": "Charger Online Status",
"chargers": "Chargers",
"errorLoadingData": "Error loading data",
"plugInSuccessRate": "Plug-In Success Rate",
"noActiveTransactions": "No active transactions.",
"noChargersStatus": "No chargers currently have {status} status.",
"viewAllChargers": "View all chargers",
"viewAllLocations": "View all locations",
"viewAllTransactions": "View all transactions"
}
}

View File

@@ -0,0 +1,7 @@
{
"Locations": {
"Locations": "Locations",
"location": "Location",
"noDataFound": "No location found with id {id}."
}
}

View File

@@ -0,0 +1,7 @@
{
"Tariffs": {
"Tariffs": "Tariffs",
"tariff": "Tariff",
"noDataFound": "No tariff found with id {id}."
}
}

View File

@@ -0,0 +1,7 @@
{
"TenantPartners": {
"TenantPartners": "Partners",
"tenantPartner": "Partner",
"noDataFound": "No partner found with id {id}."
}
}

View File

@@ -0,0 +1,10 @@
{
"Transactions": {
"Transactions": "Transactions",
"transaction": "Transaction",
"toggleActiveStatus": "Toggle Active Status",
"toggleActiveWarning": "You are about to mark this transaction as ",
"toggleActiveCaution": "Warning: This action may cause the UI to be out of sync with the actual transaction status. Only proceed if you are certain.",
"noDataFound": "No transaction found with id {id}."
}
}

View File

@@ -0,0 +1,31 @@
<svg viewBox="0 0 433 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M58.9859 66.4936L23.3987 73.5563L0.174332 78.2353V19.4387L58.9859 66.4936Z" fill="url(#paint0_linear_173_959)"/>
<path d="M58.9859 66.4936L35.6732 0.722595L0.174332 19.4386L58.9859 66.4936Z" fill="#F9B41E"/>
<path d="M58.9859 66.4935L35.4966 99.1583L24.0169 73.4679L58.9859 66.4935Z" fill="#E18A26"/>
<path opacity="0.4" d="M35.6732 0.722595L0.174332 19.4386L35.4966 99.1584L35.6732 0.722595Z" fill="url(#paint1_linear_173_959)"/>
<path d="M35.4966 99.1584L0.174332 78.2353L24.1052 73.3797L35.4966 99.1584Z" fill="#D57428"/>
<path d="M123.165 69.7672C121.433 80.5407 114.121 90.7371 97.8602 90.7371C77.751 90.7371 70.5347 76.1159 70.5347 57.9356C70.5347 40.0438 79.7715 25.3264 98.3413 25.3264C115.564 25.3264 122.107 36.2923 122.78 46.1039H110.08C108.733 40.9095 106.712 35.7152 97.9565 35.7152C87.3726 35.7152 83.8126 46.3925 83.8126 57.9356C83.8126 70.0558 87.1802 80.4445 98.0527 80.4445C106.616 80.4445 109.118 74.4806 110.272 69.7672H123.165Z" fill="black"/>
<path d="M130.093 33.8875V22.2482H142.697V33.8875H130.093ZM130.093 41.679H142.697V89.7751H130.093V41.679Z" fill="black"/>
<path d="M148.47 41.6791H155.301V28.6931H167.81V41.6791H176.373V51.4907H167.81V76.212C167.81 79.4826 168.676 80.8293 172.524 80.8293C173.679 80.8293 174.064 80.8293 175.411 80.6369V89.2942C172.909 90.1599 169.349 90.2561 167.713 90.2561C158.38 90.2561 155.301 86.5046 155.301 77.6549V51.5869H148.47V41.6791Z" fill="black"/>
<path d="M182.338 58.0317C182.338 50.1439 182.338 45.0457 182.146 41.679H194.462C194.75 43.7952 194.846 46.8734 194.846 50.1439C196.386 46.1039 200.716 40.9095 209.471 40.9095V53.703C199.561 53.5107 195.039 56.8774 195.039 67.9395V89.7751H182.338V58.0317Z" fill="black"/>
<path d="M215.822 33.8875V22.2482H228.426V33.8875H215.822ZM215.822 41.679H228.426V89.7751H215.822V41.679Z" fill="black"/>
<path d="M237.567 56.7812C237.567 46.8734 237.47 43.8914 237.374 41.7752H249.69C249.882 42.7371 250.171 45.8153 250.171 48.0277C252.095 44.2762 256.714 40.9095 263.545 40.9095C273.648 40.9095 278.747 47.4506 278.747 58.5126V89.9675H266.047V60.7251C266.047 55.2421 264.7 51.202 258.734 51.202C252.961 51.202 250.171 54.5688 250.171 63.0337V89.8713H237.567V56.7812Z" fill="black"/>
<path d="M297.028 68.6129C297.028 74.4806 299.241 80.8293 306.458 80.8293C312.231 80.8293 313.963 77.174 314.732 75.0578H327.048C324.739 83.0417 319.062 90.6409 306.073 90.6409C290.774 90.6409 284.328 80.1559 284.328 65.8233C284.328 53.8955 290.293 40.7172 306.65 40.7172C322.814 40.7172 327.625 52.2602 327.625 64.669C327.625 65.3424 327.529 67.8433 327.433 68.6129H297.028ZM315.31 60.3404C315.117 54.9536 312.904 50.2402 306.361 50.2402C299.241 50.2402 297.413 56.1079 297.125 60.3404H315.31Z" fill="black"/>
<path d="M386.702 57.2621C386.702 75.731 378.235 90.8332 359.954 90.8332C342.924 90.8332 333.879 77.0777 333.879 57.3583C333.879 40.1399 342.635 24.653 360.724 24.653C377.754 24.5568 386.702 38.2161 386.702 57.2621ZM340.133 57.1659C340.133 73.0376 346.676 85.4464 360.339 85.4464C374.29 85.4464 380.544 73.1338 380.544 57.3583C380.544 41.5828 374.098 30.0397 360.531 30.0397C346.388 30.0397 340.133 42.2561 340.133 57.1659Z" fill="black"/>
<path d="M396.901 71.9796C398.248 81.214 404.598 85.3503 412.488 85.3503C420.378 85.3503 426.343 81.1178 426.343 73.0377C426.343 65.4385 423.072 62.168 411.045 58.3203C398.152 54.2802 392.956 50.0477 392.956 40.8133C392.956 31.2903 399.98 24.653 411.911 24.653C425.189 24.653 430.866 32.8293 431.539 41.4866H425.381C424.323 34.2722 419.993 29.8474 411.622 29.8474C403.444 29.8474 399.307 33.8875 399.307 40.3323C399.307 46.7772 402.77 49.5668 413.45 52.8373C429.134 57.5507 432.79 63.5147 432.79 72.2681C432.79 83.0417 425.285 90.3523 412.296 90.3523C399.21 90.3523 391.802 83.234 390.84 71.8834H396.901V71.9796Z" fill="black"/>
<defs>
<linearGradient id="paint0_linear_173_959" x1="42.6364" y1="27.5645" x2="4.61193" y2="72.3761" gradientUnits="userSpaceOnUse">
<stop offset="0.1723" stop-color="#F7EF79"/>
<stop offset="0.5313" stop-color="#F9B41E"/>
<stop offset="0.6042" stop-color="#F8AC24"/>
<stop offset="0.7357" stop-color="#F6962E"/>
<stop offset="0.8689" stop-color="#F47C36"/>
</linearGradient>
<linearGradient id="paint1_linear_173_959" x1="0.174332" y1="49.953" x2="35.6953" y2="49.953" gradientUnits="userSpaceOnUse">
<stop offset="0.1723" stop-color="#FBF8CD"/>
<stop offset="0.3223" stop-color="#FAF6BA"/>
<stop offset="0.709" stop-color="#F8F18C"/>
<stop offset="0.8942" stop-color="#F7EF79"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@@ -0,0 +1,56 @@
<svg
viewBox="0 0 64 107"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M63.7899 71.4933L25.6683 79.1704L0.789948 84.2565V20.3444L63.7899 71.4933Z"
fill="url(#paint0_linear_4_16)"
/>
<path
d="M63.7899 71.4933L38.817 0L0.789948 20.3444L63.7899 71.4933Z"
fill="#F9B41E"
/>
<path
d="M63.7899 71.4933L38.6278 107L26.3305 79.0745L63.7899 71.4933Z"
fill="#E18A26"
/>
<path
opacity="0.4"
d="M38.817 0L0.789948 20.3444L38.6278 107L38.817 0Z"
fill="url(#paint1_linear_4_16)"
/>
<path
d="M38.6278 107L0.789948 84.2565L26.4251 78.9785L38.6278 107Z"
fill="#D57428"
/>
<defs>
<linearGradient
id="paint0_linear_4_16"
x1="46.2761"
y1="29.1772"
x2="4.84919"
y2="77.2896"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.1723" stop-color="#F7EF79"/>
<stop offset="0.5313" stop-color="#F9B41E"/>
<stop offset="0.6042" stop-color="#F8AC24"/>
<stop offset="0.7357" stop-color="#F6962E"/>
<stop offset="0.8689" stop-color="#F47C36"/>
</linearGradient>
<linearGradient
id="paint1_linear_4_16"
x1="0.789948"
y1="53.5136"
x2="38.8406"
y2="53.5136"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.1723" stop-color="#FBF8CD"/>
<stop offset="0.3223" stop-color="#FAF6BA"/>
<stop offset="0.709" stop-color="#F8F18C"/>
<stop offset="0.8942" stop-color="#F7EF79"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,94 @@
<svg
width="433"
height="100"
viewBox="0 0 433 100"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M58.9859 66.3614L23.3987 73.424L0.174332 78.1031V19.3064L58.9859 66.3614Z"
fill="url(#paint0_linear_173_991)"
/>
<path
d="M58.9859 66.3614L35.6732 0.590332L0.174332 19.3064L58.9859 66.3614Z"
fill="#F9B41E"
/>
<path
d="M58.9859 66.3613L35.4966 99.0261L24.0169 73.3356L58.9859 66.3613Z"
fill="#E18A26"
/>
<path
opacity="0.4"
d="M35.6732 0.590332L0.174332 19.3064L35.4966 99.0262L35.6732 0.590332Z"
fill="url(#paint1_linear_173_991)"
/>
<path
d="M35.4966 99.0261L0.174332 78.103L24.1052 73.2474L35.4966 99.0261Z"
fill="#D57428"
/>
<path
d="M123.165 69.6349C121.433 80.4084 114.121 90.6048 97.8602 90.6048C77.751 90.6048 70.5347 75.9836 70.5347 57.8033C70.5347 39.9116 79.7715 25.1942 98.3413 25.1942C115.564 25.1942 122.107 36.1601 122.78 45.9717H110.08C108.733 40.7773 106.712 35.5829 97.9565 35.5829C87.3726 35.5829 83.8126 46.2602 83.8126 57.8033C83.8126 69.9235 87.1802 80.3123 98.0527 80.3123C106.616 80.3123 109.118 74.3483 110.272 69.6349H123.165Z"
fill="white"
/>
<path
d="M130.093 33.7552V22.116H142.697V33.7552H130.093ZM130.093 41.5468H142.697V89.6429H130.093V41.5468Z"
fill="white"
/>
<path
d="M148.47 41.5468H155.301V28.5609H167.81V41.5468H176.373V51.3584H167.81V76.0798C167.81 79.3503 168.676 80.697 172.524 80.697C173.679 80.697 174.064 80.697 175.411 80.5046V89.1619C172.909 90.0276 169.349 90.1238 167.713 90.1238C158.38 90.1238 155.301 86.3723 155.301 77.5227V51.4546H148.47V41.5468Z"
fill="white"
/>
<path
d="M182.338 57.8994C182.338 50.0117 182.338 44.9135 182.146 41.5468H194.462C194.75 43.663 194.846 46.7411 194.846 50.0117C196.386 45.9716 200.716 40.7772 209.471 40.7772V53.5708C199.561 53.3784 195.039 56.7451 195.039 67.8072V89.6428H182.338V57.8994Z"
fill="white"
/>
<path
d="M215.822 33.7552V22.116H228.426V33.7552H215.822ZM215.822 41.5468H228.426V89.6429H215.822V41.5468Z"
fill="white"
/>
<path
d="M237.567 56.6489C237.567 46.7411 237.47 43.7592 237.374 41.6429H249.69C249.882 42.6049 250.171 45.683 250.171 47.8954C252.095 44.1439 256.714 40.7772 263.545 40.7772C273.648 40.7772 278.747 47.3183 278.747 58.3804V89.8352H266.047V60.5928C266.047 55.1099 264.7 51.0698 258.734 51.0698C252.961 51.0698 250.171 54.4365 250.171 62.9014V89.739H237.567V56.6489Z"
fill="white"
/>
<path
d="M297.028 68.4806C297.028 74.3483 299.241 80.697 306.458 80.697C312.231 80.697 313.963 77.0417 314.732 74.9255H327.048C324.739 82.9094 319.062 90.5086 306.073 90.5086C290.774 90.5086 284.328 80.0237 284.328 65.691C284.328 53.7632 290.293 40.5849 306.65 40.5849C322.814 40.5849 327.625 52.128 327.625 64.5367C327.625 65.2101 327.529 67.7111 327.433 68.4806H297.028ZM315.31 60.2081C315.117 54.8213 312.904 50.1079 306.361 50.1079C299.241 50.1079 297.413 55.9756 297.125 60.2081H315.31Z"
fill="white"
/>
<path
d="M386.702 57.1298C386.702 75.5987 378.235 90.7009 359.954 90.7009C342.924 90.7009 333.879 76.9454 333.879 57.226C333.879 40.0077 342.635 24.5207 360.724 24.5207C377.754 24.4245 386.702 38.0838 386.702 57.1298ZM340.133 57.0337C340.133 72.9054 346.676 85.3142 360.339 85.3142C374.29 85.3142 380.544 73.0016 380.544 57.226C380.544 41.4505 374.098 29.9075 360.531 29.9075C346.388 29.9075 340.133 42.1239 340.133 57.0337Z"
fill="white"
/>
<path
d="M396.901 71.8473C398.248 81.0817 404.598 85.218 412.488 85.218C420.378 85.218 426.343 80.9855 426.343 72.9054C426.343 65.3062 423.072 62.0357 411.045 58.188C398.152 54.1479 392.956 49.9155 392.956 40.681C392.956 31.158 399.98 24.5208 411.911 24.5208C425.189 24.5208 430.866 32.6971 431.539 41.3544H425.381C424.323 34.14 419.993 29.7151 411.622 29.7151C403.444 29.7151 399.307 33.7552 399.307 40.2001C399.307 46.6449 402.77 49.4345 413.45 52.7051C429.134 57.4185 432.79 63.3824 432.79 72.1359C432.79 82.9094 425.285 90.22 412.296 90.22C399.21 90.22 391.802 83.1018 390.84 71.7511H396.901V71.8473Z"
fill="white"
/>
<defs>
<linearGradient
id="paint0_linear_173_991"
x1="42.6364"
y1="27.4323"
x2="4.61193"
y2="72.2438"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.1723" stop-color="#F7EF79" />
<stop offset="0.5313" stop-color="#F9B41E" />
<stop offset="0.6042" stop-color="#F8AC24" />
<stop offset="0.7357" stop-color="#F6962E" />
<stop offset="0.8689" stop-color="#F47C36" />
</linearGradient>
<linearGradient
id="paint1_linear_173_991"
x1="0.174332"
y1="49.8208"
x2="35.6953"
y2="49.8208"
gradientUnits="userSpaceOnUse"
>
<stop offset="0.1723" stop-color="#FBF8CD" />
<stop offset="0.3223" stop-color="#FAF6BA" />
<stop offset="0.709" stop-color="#F8F18C" />
<stop offset="0.8942" stop-color="#F7EF79" />
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB