diff --git a/samples/msgext-copilot-handoff/ts/.gitignore b/samples/msgext-copilot-handoff/ts/.gitignore new file mode 100644 index 0000000..c6b7ee7 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/.gitignore @@ -0,0 +1,19 @@ +# TeamsFx files +env/.env.*.user +env/.env.local +.localConfigs +appPackage/build + +# dependencies +node_modules/ + +# misc +.env +.deployment +.DS_Store + +# build +lib/ + +# Azurite storage +_storage_emulator diff --git a/samples/msgext-copilot-handoff/ts/.vscode/extensions.json b/samples/msgext-copilot-handoff/ts/.vscode/extensions.json new file mode 100644 index 0000000..aac0a6e --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "TeamsDevApp.ms-teams-vscode-extension" + ] +} diff --git a/samples/msgext-copilot-handoff/ts/.vscode/launch.json b/samples/msgext-copilot-handoff/ts/.vscode/launch.json new file mode 100644 index 0000000..6a87b6a --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/.vscode/launch.json @@ -0,0 +1,171 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Launch Remote in Teams (Edge)", + "type": "msedge", + "request": "launch", + "url": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}", + "presentation": { + "group": "group 1: Teams", + "order": 3 + }, + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Launch Remote in Teams (Chrome)", + "type": "chrome", + "request": "launch", + "url": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}", + "presentation": { + "group": "group 1: Teams", + "order": 3 + }, + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Launch Remote in Outlook (Edge)", + "type": "msedge", + "request": "launch", + "url": "https://outlook.office.com/mail?${account-hint}", + "presentation": { + "group": "group 2: Outlook", + "order": 3 + }, + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Launch Remote in Outlook (Chrome)", + "type": "chrome", + "request": "launch", + "url": "https://outlook.office.com/mail?${account-hint}", + "presentation": { + "group": "group 2: Outlook", + "order": 3 + }, + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Launch App in Teams (Edge)", + "type": "msedge", + "request": "launch", + "url": "https://teams.microsoft.com/l/app/${{local:TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}", + "cascadeTerminateToConfigurations": [ + "Attach to Local Service" + ], + "presentation": { + "group": "all", + "hidden": true + }, + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Launch App in Teams (Chrome)", + "type": "chrome", + "request": "launch", + "url": "https://teams.microsoft.com/l/app/${{local:TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}", + "cascadeTerminateToConfigurations": [ + "Attach to Local Service" + ], + "presentation": { + "group": "all", + "hidden": true + }, + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Launch App in Outlook (Edge)", + "type": "msedge", + "request": "launch", + "url": "https://outlook.office.com/mail?${account-hint}", + "cascadeTerminateToConfigurations": [ + "Attach to Local Service" + ], + "presentation": { + "group": "all", + "hidden": true + }, + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Launch App in Outlook (Chrome)", + "type": "chrome", + "request": "launch", + "url": "https://outlook.office.com/mail?${account-hint}", + "cascadeTerminateToConfigurations": [ + "Attach to Local Service" + ], + "presentation": { + "group": "all", + "hidden": true + }, + "internalConsoleOptions": "neverOpen" + }, + { + "name": "Attach to Local Service", + "type": "node", + "request": "attach", + "port": 9239, + "restart": true, + "presentation": { + "group": "all", + "hidden": true + }, + "internalConsoleOptions": "neverOpen" + } + ], + "compounds": [ + { + "name": "Debug in Teams (Edge)", + "configurations": [ + "Launch App in Teams (Edge)", + "Attach to Local Service" + ], + "preLaunchTask": "Start Teams App Locally", + "presentation": { + "group": "group 1: Teams", + "order": 1 + }, + "stopAll": true + }, + { + "name": "Debug in Teams (Chrome)", + "configurations": [ + "Launch App in Teams (Chrome)", + "Attach to Local Service" + ], + "preLaunchTask": "Start Teams App Locally", + "presentation": { + "group": "group 1: Teams", + "order": 2 + }, + "stopAll": true + }, + { + "name": "Debug in Outlook (Edge)", + "configurations": [ + "Launch App in Outlook (Edge)", + "Attach to Local Service" + ], + "preLaunchTask": "Start Teams App Locally", + "presentation": { + "group": "group 2: Outlook", + "order": 1 + }, + "stopAll": true + }, + { + "name": "Debug in Outlook (Chrome)", + "configurations": [ + "Launch App in Outlook (Chrome)", + "Attach to Local Service" + ], + "preLaunchTask": "Start Teams App Locally", + "presentation": { + "group": "group 2: Outlook", + "order": 2 + }, + "stopAll": true + } + ] +} diff --git a/samples/msgext-copilot-handoff/ts/.vscode/settings.json b/samples/msgext-copilot-handoff/ts/.vscode/settings.json new file mode 100644 index 0000000..614af4a --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/.vscode/settings.json @@ -0,0 +1,18 @@ +{ + "debug.onTaskErrors": "abort", + "json.schemas": [ + { + "fileMatch": [ + "/aad.*.json" + ], + "schema": {} + } + ], + "cSpell.words": [ + "botbuilder", + "msgext", + "Northwind", + "Sideloading", + "TEAMSFX" + ] +} diff --git a/samples/msgext-copilot-handoff/ts/.vscode/tasks.json b/samples/msgext-copilot-handoff/ts/.vscode/tasks.json new file mode 100644 index 0000000..af9e814 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/.vscode/tasks.json @@ -0,0 +1,139 @@ +// This file is automatically generated by Teams Toolkit. +// The teamsfx tasks defined in this file require Teams Toolkit version >= 5.0.0. +// See https://aka.ms/teamsfx-tasks for details on how to customize each task. +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Start Teams App Locally", + "dependsOn": [ + "Validate prerequisites", + "Start local tunnel", + "npm install", + "Start Azurite emulator", + "Provision", + "Deploy", + "Start application" + ], + "dependsOrder": "sequence" + }, + { + // Check all required prerequisites. + // See https://aka.ms/teamsfx-tasks/check-prerequisites to know the details and how to customize the args. + "label": "Validate prerequisites", + "type": "teamsfx", + "command": "debug-check-prerequisites", + "args": { + "prerequisites": [ + "nodejs", // Validate if Node.js is installed. + "m365Account", // Sign-in prompt for Microsoft 365 account, then validate if the account enables the sideloading permission. + "portOccupancy" // Validate available ports to ensure those debug ones are not occupied. + ], + "portOccupancy": [ + 3978, // app service port + 9239 // app inspector port for Node.js debugger + ] + } + }, + { + // Start the local tunnel service to forward public URL to local port and inspect traffic. + // See https://aka.ms/teamsfx-tasks/local-tunnel for the detailed args definitions. + "label": "Start local tunnel", + "type": "teamsfx", + "command": "debug-start-local-tunnel", + "args": { + "type": "dev-tunnel", + "ports": [ + { + "portNumber": 3978, + "protocol": "http", + "access": "public", + "writeToEnvironmentFile": { + "endpoint": "BOT_ENDPOINT", // output tunnel endpoint as BOT_ENDPOINT + "domain": "BOT_DOMAIN" // output tunnel domain as BOT_DOMAIN + } + } + ], + "env": "local" + }, + "isBackground": true, + "problemMatcher": "$teamsfx-local-tunnel-watch" + }, + { + "type": "shell", + "label": "npm install", + "command": "npm install --no-audit" + }, + { + "label": "Start Azurite emulator", + "type": "shell", + "command": "npm run storage", + "isBackground": true, + "problemMatcher": { + "pattern": [ + { + "regexp": "^.*$", + "file": 0, + "location": 1, + "message": 2 + } + ], + "background": { + "activeOnStart": true, + "beginsPattern": "Azurite", + "endsPattern": "successfully listening" + } + }, + "options": { + "cwd": "${workspaceFolder}" + }, + "presentation": { + "reveal": "silent" + } + }, + { + // Create the debug resources. + // See https://aka.ms/teamsfx-tasks/provision to know the details and how to customize the args. + "label": "Provision", + "type": "teamsfx", + "command": "provision", + "args": { + "env": "local" + } + }, + { + // Build project. + // See https://aka.ms/teamsfx-tasks/deploy to know the details and how to customize the args. + "label": "Deploy", + "type": "teamsfx", + "command": "deploy", + "args": { + "env": "local" + } + }, + { + "label": "Start application", + "type": "shell", + "command": "npm run dev:teamsfx", + "isBackground": true, + "options": { + "cwd": "${workspaceFolder}" + }, + "problemMatcher": { + "pattern": [ + { + "regexp": "^.*$", + "file": 0, + "location": 1, + "message": 2 + } + ], + "background": { + "activeOnStart": true, + "beginsPattern": "[nodemon] starting", + "endsPattern": "restify listening to|Bot/ME service listening at|[nodemon] app crashed" + } + } + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/.webappignore b/samples/msgext-copilot-handoff/ts/.webappignore new file mode 100644 index 0000000..598c568 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/.webappignore @@ -0,0 +1,24 @@ +.webappignore +.fx +.deployment +.localConfigs +.vscode +*.js.map +*.ts.map +*.ts +.git* +.tsbuildinfo +CHANGELOG.md +readme.md +local.settings.json +test +tsconfig.json +.DS_Store +teamsapp.yml +teamsapp.*.yml +/env/ +/node_modules/.bin +/node_modules/ts-node +/node_modules/typescript +/appPackage/ +/infra/ diff --git a/samples/msgext-copilot-handoff/ts/README.md b/samples/msgext-copilot-handoff/ts/README.md new file mode 100644 index 0000000..70a8631 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/README.md @@ -0,0 +1,90 @@ +--- +page_type: sample +description: This sample implements a Teams message extension that can be used as a plugin for Microsoft Copilot for Microsoft 365. The message extension showcases copilot handoff along with allowings users to query the Northwind Database. +products: +- office-teams +- copilot-m365 +languages: +- typescript +--- + +# Northwind inventory message extension sample + +![License.](https://img.shields.io/badge/license-MIT-green.svg) + +This sample implements a Teams message extension that can be used as a plugin for Microsoft Copilot for Microsoft 365. The message extension allows users to query the [Northwind Database](https://learn.microsoft.com/dotnet/framework/data/adonet/sql/linq/downloading-sample-databases). + +![Screenshot of the sample extension working in Copilot in Microsoft Teams](./lab/images/03-03a-response-on-chai.png) + +## Prerequisites + +- [Node.js 18.x](https://nodejs.org/download/release/v18.18.2/) +- [Visual Studio Code](https://code.visualstudio.com/) +- [Teams Toolkit](https://marketplace.visualstudio.com/items?itemName=TeamsDevApp.ms-teams-vscode-extension) +- You will need a Microsoft work or school account with [permissions to upload custom Teams applications](https://learn.microsoft.com/microsoftteams/platform/concepts/build-and-test/prepare-your-o365-tenant#enable-custom-teams-apps-and-turn-on-custom-app-uploading). The account will also need a Microsoft Copilot for Microsoft 365 license to use the extension in Copilot. + +## Setup and use the sample + +For instructions on setting up and running the sample, see the [lab exercises](./lab/Exercise%2000%20-%20Welcome.md). + +## Example prompts for Copilot + +Here are some ideas for prompts to try. If you don't get the result you expect, try typing "new chat" and then trying again. + +### Single parameter prompts + +- *Find Chai in Northwind Inventory* + +- *Who supplies discounted produce to Northwind?* + +- *Find high revenue products in Northwind. Have there been any ad campaigns for these products?* + + > [!NOTE] + > The ad campaign details are in the [sample documents](./sampleDocs/). + +### Multi-parameter prompts + +- *Find northwind dairy products that are low on stock. Show me a table with the product, supplier, units in stock and on order. Reference the details for each product.* + + (then) + + *OK can you draft an email to our procurement team asking them if we've had any delivery issues with these suppliers?* + +- *Find Northwind beverages with more than 100 units in stock* + + (then) + + *What are the payment terms for these suppliers?* + + > [!NOTE] + > The answer to the 2nd question is in the [sample documents](./sampleDocs/). + +- *We’ve been receiving partial orders for Tofu. Find the supplier in Northwind and draft an email summarizing our inventory and reminding them they should stop sending partial orders per our MOQ policy.* + + > [!NOTE] + > The MOQ policy is in one of the [sample documents](./sampleDocs/). + +- *Northwind will have a booth at Microsoft Community Days in London. Find products with local suppliers and write a LinkedIn post to promote the booth and products.* + + (then) + + *Emphasize how delicious the products are and encourage people to visit our booth at the conference* + +- *What beverage is high in demand due to social media that is low stock in Northwind in London. Reference the product details to update stock.* + + > [!NOTE] + > There is a document that discusses a social media campaign for one of the products in the [sample documents](./sampleDocs/). + +### Copilot handoff to bot + +- Copilot welcome screen +![Welcome screen for copilot](./lab/images/startScreen.png) + +- Select the handoff to bot button +![Handoff action button](./lab/images/action-btn.png) + +- Request is handoff to bot +![Bot response](./lab/images/handoff.png) + + +![](https://m365-visitor-stats.azurewebsites.net/SamplesGallery/officedev-copilot-for-m365-plugins-samples-msgext-northwind-inventory-ts) \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-dev.png b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-dev.png new file mode 100644 index 0000000..02d0137 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-dev.png differ diff --git a/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-green.png b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-green.png new file mode 100644 index 0000000..d753639 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-green.png differ diff --git a/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-local.png b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-local.png new file mode 100644 index 0000000..d161388 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-local.png differ diff --git a/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-orange.png b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-orange.png new file mode 100644 index 0000000..a5ca392 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-orange.png differ diff --git a/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-purple.png b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-purple.png new file mode 100644 index 0000000..9c1ad14 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-purple.png differ diff --git a/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-red.png b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-red.png new file mode 100644 index 0000000..210989f Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-192-red.png differ diff --git a/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-32.png b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-32.png new file mode 100644 index 0000000..48822ff Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/Northwind-Logo3-32.png differ diff --git a/samples/msgext-copilot-handoff/ts/appPackage/color.png b/samples/msgext-copilot-handoff/ts/appPackage/color.png new file mode 100644 index 0000000..f27ccf2 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/color.png differ diff --git a/samples/msgext-copilot-handoff/ts/appPackage/manifest.json b/samples/msgext-copilot-handoff/ts/appPackage/manifest.json new file mode 100644 index 0000000..3beff49 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/appPackage/manifest.json @@ -0,0 +1,109 @@ +{ + "$schema": "https://developer.microsoft.com/en-us/json-schemas/teams/v1.16/MicrosoftTeams.schema.json", + "manifestVersion": "1.16", + "version": "1.0.9", + "id": "${{TEAMS_APP_ID}}", + "packageName": "com.microsoft.teams.extension.northwindinv", + "developer": { + "name": "App Camp", + "websiteUrl": "https://www.example.com", + "privacyUrl": "https://www.example.com/termofuse", + "termsOfUseUrl": "https://www.example.com/privacy" + }, + "icons": { + "color": "Northwind-Logo3-192-${{TEAMSFX_ENV}}.png", + "outline": "Northwind-Logo3-32.png" + }, + "name": { + "short": "Northwind Inventory", + "full": "Northwind Inventory App" + }, + "description": { + "short": "App allows you to find and update product inventory information", + "full": "Northwind Inventory is the ultimate tool for managing your product inventory. With its intuitive interface and powerful features, you'll be able to easily find your products by name, category, inventory status, and supplier city. You can also update inventory information with the app. \n\n **Why Choose Northwind Inventory:** \n\n Northwind Inventory is the perfect solution for businesses of all sizes that need to keep track of their inventory. Whether you're a small business owner or a large corporation, Northwind Inventory can help you stay on top of your inventory management needs. \n\n **Features and Benefits:** \n\n - Easy Product Search through Microsoft Copilot. Simply start by saying, 'Find northwind dairy products that are low on stock' \r - Real-Time Inventory Updates: Keep track of inventory levels in real-time and update them as needed \r - User-Friendly Interface: Northwind Inventory's intuitive interface makes it easy to navigate and use \n\n **Availability:** \n\n To use Northwind Inventory, you'll need an active Microsoft 365 account . Ensure that your administrator enables the app for your Microsoft 365 account." + }, + "accentColor": "#3690E9", + "bots": [ + { + "botId": "${{BOT_ID}}", + "scopes": [ "personal", "team", "groupchat" ], + "isNotificationOnly": false, + "supportsFiles": false + } + ], + "composeExtensions": [ + { + "botId": "${{BOT_ID}}", + "commands": [ + { + "id": "inventorySearch", + "context": [ + "compose", + "commandBox" + ], + "description": "Search products by name, category, inventory status, supplier location, stock level", + "title": "Product inventory", + "type": "query", + "parameters": [ + { + "name": "productName", + "title": "Product name", + "description": "Enter a product name here", + "inputType": "text" + }, + { + "name": "categoryName", + "title": "Category name", + "description": "Enter the category of the product", + "inputType": "text" + }, + { + "name": "inventoryStatus", + "title": "Inventory status", + "description": "Enter what status of the product inventory. Possible values are 'in stock', 'low stock', 'on order', or 'out of stock'", + "inputType": "text" + }, + { + "name": "supplierCity", + "title": "Supplier city", + "description": "Enter the supplier city of product", + "inputType": "text" + }, + { + "name": "stockQuery", + "title": "Stock level", + "description": "Enter a range of integers such as 0-42 or 100- (for >100 items). Only use if you need an exact numeric range.", + "inputType": "text" + } + ] + }, + { + "id": "discountSearch", + "context": [ + "compose", + "commandBox" + ], + "description": "Search for discounted products by category", + "title": "Discounts", + "type": "query", + "parameters": [ + { + "name": "categoryName", + "title": "Category name", + "description": "Enter the category to find discounted products", + "inputType": "text" + } + ] + } + ] + } + + ], + "configurableTabs": [], + "staticTabs": [], + "permissions": [ + "identity", + "messageTeamMembers" + ], + "validDomains": [] +} diff --git a/samples/msgext-copilot-handoff/ts/appPackage/outline.png b/samples/msgext-copilot-handoff/ts/appPackage/outline.png new file mode 100644 index 0000000..e8cb4b6 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/appPackage/outline.png differ diff --git a/samples/msgext-copilot-handoff/ts/assets/plugin.png b/samples/msgext-copilot-handoff/ts/assets/plugin.png new file mode 100644 index 0000000..ae31555 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/assets/plugin.png differ diff --git a/samples/msgext-copilot-handoff/ts/assets/sample.json b/samples/msgext-copilot-handoff/ts/assets/sample.json new file mode 100644 index 0000000..859aa15 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/assets/sample.json @@ -0,0 +1,70 @@ +[ + { + "name": "officedev-copilot-for-m365-plugins-samples-msgext-northwind-inventory-ts", + "source": "officedev", + "title": "Northwind Inventory plugin for Copilot for Microsoft 365", + "shortDescription": "This sample implements a Teams message extension that can be used as a plugin for Microsoft Copilot for Microsoft 365.", + "url": "https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/tree/main/samples/msgext-northwind-inventory-ts", + "downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/tree/main/samples/msgext-northwind-inventory-ts", + "longDescription": [ + "This sample implements a Teams message extension that can be used as a plugin for Microsoft Copilot for Microsoft 365. The message extension allows users to query the Northwind Database" + ], + "creationDateTime": "2023-11-15", + "updateDateTime": "2023-11-15", + "products": [ + "Microsoft Teams", + "Microsoft 365 Copilot" + ], + "metadata": [ + { + "key": "PLATFORM", + "value": "Node.js" + }, + { + "key": "LANGUAGE", + "value": "TypeScript" + }, + { + "key": "TEAMS-PACKAGE", + "value": "Yes" + } + ], + "thumbnails": [ + { + "type": "image", + "order": 50, + "url": "https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/raw/main/samples/msgext-northwind-inventory-ts/assets/plugin.png", + "alt": "Screenshot of the sample extension working in Copilot in Microsoft Teams" + } + ], + "authors": [ + { + "gitHubAccount": "rabwill", + "pictureUrl": "https://github.com/rabwill.png", + "name": "Rabia Williams" + }, + { + "gitHubAccount": "bobgerman", + "pictureUrl": "https://github.com/bobgerman.png", + "name": "Bob German" + }, + { + "gitHubAccount": "garrytrinder", + "pictureUrl": "https://github.com/garrytrinder.png", + "name": "Garry Trinder" + } + ], + "references": [ + { + "name": "Extend Microsoft Copilot for Microsoft 365", + "description": "Learn more about how to extend Microsoft Copilot for Microsoft 365", + "url": "https://aka.ms/extendcopilotm365" + }, + { + "name": "Teams Toolkit for Visual Studio Code", + "description": "Learn more about the Teams Toolkit for Visual Studio Code.", + "url": "https://learn.microsoft.com/microsoftteams/platform/toolkit/teams-toolkit-fundamentals?pivots=visual-studio-code-v5" + } + ] + } +] \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/env/.env.dev b/samples/msgext-copilot-handoff/ts/env/.env.dev new file mode 100644 index 0000000..1941372 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/env/.env.dev @@ -0,0 +1,15 @@ +# This file includes environment variables that will be committed to git by default. + +# Built-in environment variables +TEAMSFX_ENV=dev + +# Updating AZURE_SUBSCRIPTION_ID or AZURE_RESOURCE_GROUP_NAME after provision may also require an update to RESOURCE_SUFFIX, because some services require a globally unique name across subscriptions/resource groups. +AZURE_SUBSCRIPTION_ID= +AZURE_RESOURCE_GROUP_NAME= +RESOURCE_SUFFIX= + +# Generated during provision, you can also add your own variables. +BOT_ID= +TEAMS_APP_ID= +BOT_AZURE_APP_SERVICE_RESOURCE_ID= +BOT_DOMAIN= \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/env/.env.local.sample b/samples/msgext-copilot-handoff/ts/env/.env.local.sample new file mode 100644 index 0000000..863dbcb --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/env/.env.local.sample @@ -0,0 +1,13 @@ +# This file includes environment variables that can be committed to git. It's gitignored by default because it represents your local development environment. + +# Built-in environment variables +TEAMSFX_ENV=local + +# Generated during provision, you can also add your own variables. +BOT_ID= +TEAMS_APP_ID= +BOT_DOMAIN= +BOT_ENDPOINT= +TEAMS_APP_TENANT_ID= +M365_TITLE_ID= +M365_APP_ID= \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/env/.env.local.user.sample b/samples/msgext-copilot-handoff/ts/env/.env.local.user.sample new file mode 100644 index 0000000..abb31d9 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/env/.env.local.user.sample @@ -0,0 +1,2 @@ +SECRET_BOT_PASSWORD= +SECRET_STORAGE_ACCOUNT_CONNECTION_STRING=UseDevelopmentStorage=true \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/infra/azure.bicep b/samples/msgext-copilot-handoff/ts/infra/azure.bicep new file mode 100644 index 0000000..c861601 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/infra/azure.bicep @@ -0,0 +1,99 @@ +@maxLength(20) +@minLength(4) +@description('Used to generate names for all resources in this file') +param resourceBaseName string + +@description('Required when create Azure Bot service') +param botAadAppClientId string + +@secure() +@description('Required by Bot Framework package in your bot project') +param botAadAppClientSecret string + +param webAppSKU string + +@maxLength(42) +param botDisplayName string + +param serverfarmsName string = resourceBaseName +param webAppName string = resourceBaseName +param location string = resourceGroup().location + +// Compute resources for your Web App +resource serverfarm 'Microsoft.Web/serverfarms@2021-02-01' = { + kind: 'app' + location: location + name: serverfarmsName + sku: { + name: webAppSKU + } +} + +// storage account +resource storageAccount 'Microsoft.Storage/storageAccounts@2021-04-01' = { + name: resourceBaseName + location: location + kind: 'StorageV2' + sku: { + name: 'Standard_LRS' + } +} + +var storageAccountConnectionString = 'DefaultEndpointsProtocol=https;AccountName=${storageAccount.name};EndpointSuffix=${environment().suffixes.storage};AccountKey=${storageAccount.listKeys().keys[0].value}' + +// Web App that hosts your bot +resource webApp 'Microsoft.Web/sites@2021-02-01' = { + kind: 'app' + location: location + name: webAppName + properties: { + serverFarmId: serverfarm.id + httpsOnly: true + siteConfig: { + alwaysOn: true + appSettings: [ + { + name: 'WEBSITE_RUN_FROM_PACKAGE' + value: '1' // Run Azure APP Service from a package file + } + { + name: 'WEBSITE_NODE_DEFAULT_VERSION' + value: '~18' // Set NodeJS version to 18.x for your site + } + { + name: 'RUNNING_ON_AZURE' + value: '1' + } + { + name: 'BOT_ID' + value: botAadAppClientId + } + { + name: 'BOT_PASSWORD' + value: botAadAppClientSecret + } + { + name: 'STORAGE_ACCOUNT_CONNECTION_STRING' + value: storageAccountConnectionString + } + ] + ftpsState: 'FtpsOnly' + } + } +} + +// Register your web service as a bot with the Bot Framework +module azureBotRegistration './botRegistration/azurebot.bicep' = { + name: 'Azure-Bot-registration' + params: { + resourceBaseName: resourceBaseName + botAadAppClientId: botAadAppClientId + botAppDomain: webApp.properties.defaultHostName + botDisplayName: botDisplayName + } +} + +// The output will be persisted in .env.{envName}. Visit https://aka.ms/teamsfx-actions/arm-deploy for more details. +output BOT_AZURE_APP_SERVICE_RESOURCE_ID string = webApp.id +output BOT_DOMAIN string = webApp.properties.defaultHostName +output SECRET_STORAGE_ACCOUNT_CONNECTION_STRING string = storageAccountConnectionString diff --git a/samples/msgext-copilot-handoff/ts/infra/azure.parameters.json b/samples/msgext-copilot-handoff/ts/infra/azure.parameters.json new file mode 100644 index 0000000..1b63031 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/infra/azure.parameters.json @@ -0,0 +1,21 @@ +{ + "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#", + "contentVersion": "1.0.0.0", + "parameters": { + "resourceBaseName": { + "value": "me${{RESOURCE_SUFFIX}}" + }, + "botAadAppClientId": { + "value": "${{BOT_ID}}" + }, + "botAadAppClientSecret": { + "value": "${{SECRET_BOT_PASSWORD}}" + }, + "webAppSKU": { + "value": "B1" + }, + "botDisplayName": { + "value": "NorthwindProducts" + } + } +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/infra/botRegistration/azurebot.bicep b/samples/msgext-copilot-handoff/ts/infra/botRegistration/azurebot.bicep new file mode 100644 index 0000000..4450c8d --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/infra/botRegistration/azurebot.bicep @@ -0,0 +1,47 @@ +@maxLength(20) +@minLength(4) +@description('Used to generate names for all resources in this file') +param resourceBaseName string + +@maxLength(42) +param botDisplayName string + +param botServiceName string = resourceBaseName +param botServiceSku string = 'F0' +param botAadAppClientId string +param botAppDomain string + +// Register your web service as a bot with the Bot Framework +resource botService 'Microsoft.BotService/botServices@2021-03-01' = { + kind: 'azurebot' + location: 'global' + name: botServiceName + properties: { + displayName: botDisplayName + endpoint: 'https://${botAppDomain}/api/messages' + msaAppId: botAadAppClientId + } + sku: { + name: botServiceSku + } +} + +// Connect the bot service to Microsoft Teams +resource botServiceMsTeamsChannel 'Microsoft.BotService/botServices/channels@2021-03-01' = { + parent: botService + location: 'global' + name: 'MsTeamsChannel' + properties: { + channelName: 'MsTeamsChannel' + } +} + +// Connect the bot service to Outlook, and other Microsoft 365 applications +resource botServiceM365ExtensionsChannel 'Microsoft.BotService/botServices/channels@2022-06-15-preview' = { + parent: botService + location: 'global' + name: 'M365Extensions' + properties: { + channelName: 'M365Extensions' + } +} diff --git a/samples/msgext-copilot-handoff/ts/infra/botRegistration/readme.md b/samples/msgext-copilot-handoff/ts/infra/botRegistration/readme.md new file mode 100644 index 0000000..d541624 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/infra/botRegistration/readme.md @@ -0,0 +1 @@ +The `azurebot.bicep` module is provided to help you create Azure Bot service when you don't use Azure to host your app. If you use Azure as infrastrcture for your app, `azure.bicep` under infra folder already leverages this module to create Azure Bot service for you. You don't need to deploy `azurebot.bicep` again. \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/lab/Exercise 00 - Welcome.md b/samples/msgext-copilot-handoff/ts/lab/Exercise 00 - Welcome.md new file mode 100644 index 0000000..60b4b4f --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/lab/Exercise 00 - Welcome.md @@ -0,0 +1,29 @@ +# Building Message Extensions for Microsoft Copilot for Microsoft 365 + +## Lab Instructions + +In this lab, you'll learn to use Teams Message Extensions as plugins in Microsoft Copilot for Microsoft 365. The lab is based on the "Northwind Inventory" sample contained in this same [Github repository](https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/tree/main/samples/msgext-northwind-inventory-ts). By using the venerable [Northwind Database](https://learn.microsoft.com/dotnet/framework/data/adonet/sql/linq/downloading-sample-databases), you'll have plenty of simulated enterprise data to work with. + +Northwind operates a specialty foods e-commerce business out of Walla Walla, Washington. In this lab, you will be working with the Northwind Inventory application, which provides access to product inventory and financial information. + +In **Exercise 1**, you'll set up your development environment and get the application running. + +Then, in **Exercise 2**, you'll run the application as a plugin for Copilot for Microsoft 365. You will experiment with various prompts and you will observe how the plugin gets invoked using different parameters. As you chat with Copilot, you can watch the developer console to see queries it's making. + +In **Exercise 3**, you will learn how to add a new command to the application, so that you can expand the plugin capabilities and perform more tasks. + +Then in **Exercise 4** you'll run the same application as a [message extension](https://learn.microsoft.com/microsoftteams/platform/messaging-extensions/what-are-messaging-extensions) in Microsoft Teams and Outlook. +The message extension allows users to find products and share them in conversations using adaptive cards. These cards allow users in the conversation to take actions such as updating the stock level or restocking a product; this is a huge convenience as people collaborate at work. + +![Adaptive card displaying a product](./images/01-00-Product-card-only.png) + +Finally, **in Exercise 5** you'll go on a tour of the code to see how it works in more depth. This lab is open source, so you can try it at home! If you don't yet have Copilot, everything else will still work. + +TABLE OF CONTENTS + +* Welcome (THIS PAGE) +* [Exercise 1](./Exercise%2001%20-%20Set%20up.md) - Set up your development Environment +* [Exercise 2](./Exercise%2002%20-%20Run%20sample%20app.md) - Run the sample as Message Extension +* [Exercise 3](./Exercise%2003%20-%20Run%20in%20Copilot.md) - Run the sample as a Copilot plugin +* [Exercise 4](./Exercise%2004%20-%20Add%20a%20new%20command.md) - Add a new command +* [Exercise 5](./Exercise%2004%20-%20Code%20tour.md) - Code tour diff --git a/samples/msgext-copilot-handoff/ts/lab/Exercise 01 - Set up.md b/samples/msgext-copilot-handoff/ts/lab/Exercise 01 - Set up.md new file mode 100644 index 0000000..f8b32bd --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/lab/Exercise 01 - Set up.md @@ -0,0 +1,103 @@ +# Building Message Extensions for Microsoft Copilot for Microsoft 365 + +TABLE OF CONTENTS + +* [Welcome](./Exercise%2000%20-%20Welcome.md) +* Exercise 1 - Set up your development Environment **(THIS PAGE)** +* [Exercise 2](./Exercise%2002%20-%20Run%20sample%20app.md) - Run the sample as a Message Extension +* [Exercise 3](./Exercise%2003%20-%20Run%20in%20Copilot.md) - Run the sample as a Copilot plugin +* [Exercise 4](./Exercise%2003%20-%20Add%20a%20new%20command.md) - Add a new command +* [Exercise 5](./Exercise%2005%20-%20Code%20tour.md) - Code tour + +## Exercise 1 - Set up your development environment + +## Step 1 - Install prerequisites + +**To complete these exercises, you will need a login to a Microsoft 365 subscription with permission to upload applications. The following instructions will explain how to get one.** + +**To complete Exercise 3, the account must also be licensed for Microsoft Copilot for Microsoft 365.** + +If this is a new tenant, it's a good idea to log into the [Microsoft 365 page](https://office.com) at [https://office.com](https://office.com) before beginning. Depending on how the tenant is configured, you may be asked to set up multi-factor authentication. Ensure you can access Microsoft Teams and Microsoft Outlook before proceeding. + +Please install the following on your computer: + +1. [Visual Studio Code](https://code.visualstudio.com/) (latest version) + +2. [NodeJS version 18.x](https://nodejs.org/download/release/v18.18.2/) - You may want to first install [Node Version Manager](https://github.com/nvm-sh/nvm) or [Node Version Manager for Windows](https://github.com/coreybutler/nvm-windows) so you can change NodeJS versions in the future; if you do, use these commands to install NodeJS version 18.x. + + ~~~sh + nvm install 18.18 + nvm use 18.18 + ~~~ + +3. [Azure Storage Explorer](https://azure.microsoft.com/products/storage/storage-explorer/) (OPTIONAL) - Download this if you want to view and edit the Northwind database used in this sample + +## Step 2 - Download the sample code + +Please [clone](https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples.git) or [download](https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples.git) the sample repository: [https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/](https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/). + +Within the cloned or downloaded repository, navigate to the **samples/msgext-northwind-inventory-ts** folder. These labs will refer to this as your "working folder" since this is where you'll be working. + +## Step 3 - Copy sample documents to your test user's OneDrive + +The sample application includes some documents for Copilot to reference during the labs. In this step you will copy these files to your user's OneDrive so Copilot can find them. Depending on how the tenant is set up, you may be asked to set up multi-factor authentication as part of this process. + +Open your browser and browse to Microsoft 365 ([https://www.office.com/](https://www.office.com/)). Log in using the Microsoft 365 account you will be using throughout the lab. You may be asked to set up multi-factor authentication. + +Using the "waffle" menu in the upper left corner of the page 1️⃣ , navigate to the OneDrive application within Microsoft 365 2️⃣ . + +![Navigating to the OneDrive application in Microsoft 365](./images/01-02-CopySampleFiles-01.png) + +Within OneDrive, navigate to "My Files" 1️⃣ . If there's a documents folder, click into that as well. If not, you can work directly within the "My Files" location. + +![Navigating to your documents in OneDrive](./images/01-02-CopySampleFiles-02.png) + +Now click "Add new" 1️⃣ and "Folder" 2️⃣ to create a new folder. + +![Adding a new folder in OneDrive](./images/01-02-CopySampleFiles-03.png) + +Name the folder "Northwind contracts" and click "Create". + +![Naming the new folder "Northwind contracts"](./images/01-02-CopySampleFiles-03b.png) + +Now, from within this new folder, click "Add new" 1️⃣ again but this time click "Files upload" 2️⃣ . + +![Adding new files to the new folder](./images/01-02-CopySampleFiles-04.png) + +Now browse to the **sampleDocs** folder within your working folder. Highlight all the files 1️⃣ and click "OK" 2️⃣ to upload them all. + +![Uploading the sample files from this repo into the folder](./images/01-02-CopySampleFiles-05.png) + +By doing this step early, there's a good chance that the Microsoft 365 search engine will have discovered them by the time you're ready for them. + +## Step 4 - Install and set up Teams Toolkit for Visual Studio Code + +In this step, you'll install the current version of [Teams Toolkit for Visual Studio Code](https://learn.microsoft.com/microsoftteams/platform/toolkit/teams-toolkit-fundamentals?pivots=visual-studio-code-v5). The easiest way to do this is from right inside of Visual Studio Code. + +> NOTE: Do not install the pre-release version as it hasn't been tested with this lab + +Open your working folder in Visual Studio Code. You may be asked to trust the authors of this folder; if so, please do. + +In the left sidebar, select the Extensions icon1️⃣. Enter the word "teams" into the search box 2️⃣ and locate "Teams Toolkit" in the search results. Click "Install" 3️⃣. + +![Installing Teams Toolkit in Visual Studio Code](./images/01-04-Install-TTK-01.png) + +Now select the Teams Toolkit icon in the left 1️⃣ . If it offers options to create a new project, you're probably in the wrong folder. In the Visual Studio Code file menu select "Open Folder" and directly open the **msgext-northwind-inventory-ts** folder. You should see sections for Accounts, Environment, etc. as shown below. + +Under "Accounts" click "Sign in to Microsoft 365"2️⃣ and log in with your own Microsoft 365 account. You can get a free Microsoft 365 subscription for development purposes by joining the [Microsoft 365 Developer Program](https://developer.microsoft.com/microsoft-365/dev-program). + +> [!NOTE] +> The Microsoft 365 Developer Program doesn't include Copilot for Microsoft 365 licenses. As such, if you decide to use a developer tenant, you will be able to test the sample only as a Message Extension. + +![Logging into Microsoft 365 from within Teams Toolkit](./images/01-04-Setup-TTK-01.png) + +A browser window will pop up and offer to log into Microsoft 365. When it says "You are signed in now and close this page", please do so. + +Now verify that the "Sideloading enabled" checker has a green checkmark. If it doesn't, that means that your user account doesn't have permission to upload Teams applications. This permission is "off" by default; here are [instructions for enabling users to upload custom apps](https://learn.microsoft.com/microsoftteams/teams-custom-app-policies-and-settings#allow-users-to-upload-custom-apps) + +![Checking that sideloading is enabled](./images/01-04-Setup-TTK-03.png) + +## Congratulations + +You have completed Exercise 1. +Please proceed to [Exercise 2](./Exercise%2002%20-%20Run%20sample%20app.md) in which you will run the sample application as a message extension. diff --git a/samples/msgext-copilot-handoff/ts/lab/Exercise 02 - Run sample app.md b/samples/msgext-copilot-handoff/ts/lab/Exercise 02 - Run sample app.md new file mode 100644 index 0000000..f1de46f --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/lab/Exercise 02 - Run sample app.md @@ -0,0 +1,230 @@ +# Building Message Extensions for Microsoft Copilot for Microsoft 365 + +TABLE OF CONTENTS + +* [Welcome](./Exercise%2000%20-%20Welcome.md) +* [Exercise 1](./Exercise%2001%20-%20Set%20up.md) - Set up your development Environment +* Exercise 2 - Run the sample as a Message Extension **(THIS PAGE)** +* [Exercise 3](./Exercise%2003%20-%20Run%20in%20Copilot.md) - Run the sample as a Copilot plugin +* [Exercise 4](./Exercise%2003%20-%20Add%20a%20new%20command.md) - Add a new command +* [Exercise 5](./Exercise%2005%20-%20Code%20tour.md) - Code tour + +## Exercise 2 - Run the sample as a Message Extension + +## Step 1 - Set up the project for first use + +Open your working folder in Visual Studio Code. + +Teams Toolkit stores environment variables in the **env** folder, and it will fill in all the values automatically when you start your project the first time. However there's one value that's specific to the sample application, and that's the connection string for accessing the Northwind database. + +In this project, the Northwind database is stored in Azure Table Storage; when you're debugging locally, it uses the [Azurite](https://learn.microsoft.com/azure/storage/common/storage-use-azurite?tabs=visual-studio) storage emulator. That's mostly built into the project, but the project won't build unless you provide the connection string. + +The necessary setting is provided in a file **env/.env.local.user.sample**. Make a copy of this file in the **env** folder, and call it **.env.local.user**. This is where secret or sensitive settings are stored. + +If you're not sure how to do this, here are the steps in Visual Studio Code. Expand the **env** folder and right click on **.env.local.user.sample**. Select "Copy". Then right click anywhere in the **env** folder and select "Paste". You will have a new file called **.env.local.user copy.sample**. Use the same context menu to rename the file to **.env.local.user** and you're done. + +![Copy .env.local.user.sample to .env.local.user](./images/02-01-Setup-Project-01.png) + +The resulting **.env.local.user** file should contain this line: + +~~~text +SECRET_STORAGE_ACCOUNT_CONNECTION_STRING=UseDevelopmentStorage=true +~~~ + +(OK it's not a secret! But it could be; if you deploy the project to Azure it will be!) + +## Step 2 - Run the application locally + +Click F5 to start debugging, or click the start button 1️⃣. You will have an opportunity to select a debugging profile; select Debug in Teams (Edge) 2️⃣ or choose another profile. + +![Run application locally](./images/02-02-Run-Project-01.png) + +If you see this screen, you need to fix your **env/.env.local.user** file; this is explained in the previous step. + +![Error is displayed because of a missing environment variable](./images/02-01-Setup-Project-06.png) + +The first time your app runs, you may be prompted to allow NodeJS to go through your firewall; this is necessary to allow the application to communicate. + +It may take a while the first time as it's loading all the npm packages. Eventually, a browser window will open and invite you to log in. + +![Browser window opens with a login form](./images/02-02-Run-Project-03.png) + +Once you're in, Microsoft Teams should open up and display a dialog offering to install your application. +Take note of the information displayed; which is from the [app manifest](../appPackage/manifest.json). + +Click "Add" to add Northwind Inventory as a personal application. + +![App installation screen with large Add button](./images/02-02-Run-Project-04.png) + +You should be directed to a chat within the application, however you could use the app in any chat. + +## Step 3 - Test in Microsoft Teams + +In any Teams chat - including the Northwind Inventory chat - begin typing a message 1️⃣ that refers to a product. Then, to insert an adaptive card for the product, click the + 2️⃣ . In the fly-up panel, select the Northwind Inventory application you just installed 3️⃣ . + +![Clicking the "+" to open the message extension panel](./images/02-03-TestME-Teams-take2-01.png) + +You will see a search dialog with 3 tabs 1️⃣. The "Product Inventory" tab allows searching for products by name; for now, just type a product name, or the beginning of a product name such as "chai" into the search box 2️⃣ . If you pause as you type the first letters, you'll be given more choices of products that begin with the same characters. + +Click Chai 3️⃣ to insert an adaptive card into the conversation along with your comment. + +![Selecting Chai from the results](./images/02-03-TestME-Teams-take2-02.png) + +You can see the card, but you can't use it until you send it. Make any final edits to your message and click "Send". + +![Sending the card](./images/02-03-TestME-Teams-take2-03.png) + +> NOTE: Card actions won't work until you send the card. If you get an error, please check and make sure you've sent the message and are working with the card after it has been sent. + +> NOTE: This is really only useful in conversations with other users; the chat in the Northwind Inventory app is just for testing. + +Notice that there is no chai on order 1️⃣ . The authors of this lab are big chai drinkers and they may be stopping by so you'd better order more! Click the "take action" button 2️⃣ to open a child card. Enter a quantity 3️⃣ and click the "Restock" button 4️⃣ . The card will refresh with (hopefully) a success message and an updated number of units on order. + +![Update the quantity of Chai in the adaptive card](./images/02-03-TestME-Teams-take2-04.png) + +You can cancel the order or modify the stock levels using the other two buttons. + +## Step 4 - Advanced queries + +Back in Visual Studio Code, have a look at the app manifest, which is in a file called **manifest.json** in the **appPackage** directory. You'll notice that the app information that was displayed when you installed the app is all here. + +Scroll down a bit to `composeExtensions:`. +Compose extensions is the historical name for a message extension; the Northwind Inventory message extension is defined here. + +Here's an abbreviated version of that JSON for easy reference. + +~~~json +"composeExtensions": [ + { + "botId": "${{BOT_ID}}", + "commands": [ + { + "id": "inventorySearch", + ... + "description": "Search products by name, category, inventory status, supplier location, stock level", + "title": "Product inventory", + "type": "query", + "parameters": [ ... ] + }, + { + "id": "discountSearch", + ... + "description": "Search for discounted products by category", + "title": "Discounts", + "type": "query", + "parameters": [ ...] + } + ] + } +], +~~~ + +Notice first that there's a bot ID. That's because Microsoft Teams uses the Azure bot channel to exchange secure, real-time messages with your application. Teams Toolkit will register the bot and fill in the ID for you. + +Then there's a collection of commands. These correspond to the tabs in the search dialog in Teams. In this application, the commands are really intended for Copilot more than regular users! + +You already ran the first command when you searched for a product by name. You can try the other one now. + +Enter "Beverages", "Dairy", or "Produce" into the "Discounts" tab, and you'll see the products within those categories that are discounted. Copilot will use this to answer questions about discounted products. + +![Searching for beverages under the discount tab](./images/02-03-Test-Multi-02.png) + +Now examine the first command again. You'll notice it has 5 parameters! + +~~~json +"parameters": [ + { + "name": "productName", + "title": "Product name", + "description": "Enter a product name here", + "inputType": "text" + }, + { + "name": "categoryName", + "title": "Category name", + "description": "Enter the category of the product", + "inputType": "text" + }, + { + "name": "inventoryStatus", + "title": "Inventory status", + "description": "Enter what status of the product inventory. Possible values are 'in stock', 'low stock', 'on order', or 'out of stock'", + "inputType": "text" + }, + { + "name": "supplierCity", + "title": "Supplier city", + "description": "Enter the supplier city of product", + "inputType": "text" + }, + { + "name": "stockQuery", + "title": "Stock level", + "description": "Enter a range of integers such as 0-42 or 100- (for >100 items). Only use if you need an exact numeric range.", + "inputType": "text" + } +] +~~~ + +Unfortunately, Teams can only display the first parameter, but Copilot can use all 5. This will allow it to do more advanced queries of the Northwind inventory data. + +As a work-around to the Teams UI limitation, in the "Northwind Inventory" tab, the application will accept up to 5 parameters comma separated, using the format: + +~~~text +name,category,inventoryStatus,supplierCity,supplierName +~~~ + +![Entering multiple comma separated fields into the Northwind Inventory tab](./images/02-03-Test-Multi-04.png) + +Read the descriptions in the JSON above carefully when entering a query. Try entering these, and as you do, keep an eye on the debug console tab in Visual Studio Code, where you'll see each query as it's run. + +* "chai" - find products with names that begin with "chai +* "c,bev" - find products in categories beginning with "bev" and names that begin with "c +* ",,out" - find products that are out of stock +* ",,on,london" - find products that are on order from suppliers in London +* "tofu,produce,,osaka" - find products in the "produce" category with suppliers in Osaka and names that begin with "tofu" + +Each query term filters the list of products down. The format of each query term is arbitrary - just be sure to explain it to Copilot in the description of each parameter. + +## Step 5 - Test in Microsoft Outlook (Optional) + +Let's take a brief detour so you can see how message extensions work in Microsoft Outlook. + +First, click the "Waffle" menu 1️⃣ and select "Outlook" 2️⃣ . + +![Opening Outlook for Microsoft 365](./images/02-04-Test-ME-Outlook-01.png) + +Click the "New mail" button to begin composing a message. + +![Creating a new email in Outlook](./images/02-04-Test-ME-Outlook-02.png) + +Add a recipient 1️⃣ and a subject 2️⃣ , and position your cursor in the body of the message 3️⃣ . You can even type something. When you're ready, click the app button in the toolbar 4️⃣ . + +![Clicking the App button while composing an Outlook message](./images/02-04-Test-ME-Outlook-03.png) + +Select the Northwind Inventory application, searching if necessary to find it. + +![Clicking the Northwind Inventory application](./images/02-04-Test-ME-Outlook-04.png) + +Now you can search for "Chai" 1️⃣ as before and select it to insert the adaptive card 2️⃣ . + +![Entering a search for Chai](./images/02-04-Test-ME-Outlook-05.png) + +Note that the adaptive card won't work until you send the message. If the recipient doesn't have Microsoft Outlook, they won't be able to view the card, and if they don't have the Northwind Inventory app installed, they won't be able to take action on it. + +![Taking action on a message in Outlook](./images/02-04-Test-ME-Outlook-07a.png) + +## Step 6 (optional) - View Northwind database in Azure Storage Explorer + +The Northwind Database isn't fancy but it's real! If you want to peek at or even modify the data, open the Azure Storage Explorer while Azurite is running. (Running the app starts Azurite automatically). + +To view the Northwind data, open "Emulator & Attached", "Storage Accounts", "Emulator - Default Ports", and "Tables". There you'll see the old Northwind database tables, which aren't nearly as handy in a NO SQL environment, but there they are! + +![Azure Storage Explorer showing the Northwind database tables](./images/02-06-AzureStorageExplorer-01.png) + +The code reads the Products table on each query, but the other tables are only accessed when the app starts. So if you want to add a new category, you'll need to restart the app for it to appear. + +## Congratulations + +You have completed Exercise 2. +Please proceed to [Exercise 3](./Exercise%2003%20-%20Run%20in%20Copilot.md) in which you will run the sample application in Microsoft Copilot for Microsoft 365! diff --git a/samples/msgext-copilot-handoff/ts/lab/Exercise 03 - Run in Copilot.md b/samples/msgext-copilot-handoff/ts/lab/Exercise 03 - Run in Copilot.md new file mode 100644 index 0000000..895b019 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/lab/Exercise 03 - Run in Copilot.md @@ -0,0 +1,120 @@ +# Building Message Extensions for Microsoft Copilot for Microsoft 365 + +TABLE OF CONTENTS + +* [Welcome](./Exercise%2000%20-%20Welcome.md) +* [Exercise 1](./Exercise%2001%20-%20Set%20up.md) - Set up your development Environment +* [Exercise 2](./Exercise%2002%20-%20Run%20sample%20app.md) - Run the sample as a Message Extension +* Exercise 3 - Run the sample as a Copilot plugin **(THIS PAGE)** +* [Exercise 4](./Exercise%2003%20-%20Add%20a%20new%20command.md) - Add a new command +* [Exercise 5](./Exercise%2005%20-%20Code%20tour.md) - Code tour + +## Exercise 2 - Run the sample as a Copilot plugin + +> [!NOTE] +> To perform the following exercise, your account must have a valid license for Copilot for Microsoft 365. + +## Step 1 - Test in Microsoft Copilot for Microsoft 365 (single parameter) + +Begin by clicking the "Try the new Teams" switch to move to the new Teams client application. + +> IMPORTANT - Microsoft Copilot for Microsoft 365 only works in the "New" Teams. Please don't miss this step! + +> If you restart your debugger after switching to "New" teams, you may get an error message after the debugger starts. This is a known problem; please just close the error dialog and continue testing. + +In the left navigation, click on "Copilot" to open Copilot. + +Check the lower left of the chat user interface, below the compose box. You should see a plugin icon 1️⃣ . Click this and enable the Northwind Inventory plugin 2️⃣ . + +![Small panel with a toggle for each plugin](./images/03-02-Plugin-Panel.png) + +For best results, start a new chat by typing "New chat" or by clicking on the **New chat** icon at the top right before each prompt or set of related prompts. + +![Copilot showing its new chat screen](./images/03-01-New-Chat.png) + +Here are some prompts to try that use only a single parameter of the message extension: + +* "Find information about Chai in Northwind Inventory" + +* "Find discounted seafood in Northwind. Show a table with the products, supplier names, average discount rate, and revenue per period." + +See if this last one also locates any of the documents you uploaded to your OneDrive. + +As you're testing, watch the log messages within your application. You should be able to see when Copilot calls your plugin. For example, after requesting "discounted seafood items", Copilot issued this query using the `discountSearch` command. + +![Log file shows a discount search for seafood](./images/03-02a-Query-Log1.png) + +You may see citations of the Northwind data in 3 forms. If there's a single reference, Copilot may show the whole card. + +![Adaptive card for Chai embedded in a Copilot response](./images/03-03a-response-on-chai.png) + +If there are multiple references, Copilot may show a small number next to each. You can hover over these numbers to display the adaptive card. References will also be listed below the response. + +![Reference numbers embedded in a Copilot response - hovering over the number shows the adaptive card](./images/03-03-Response-on-Chai.png) + +Try using these adaptive cards to take action on the products. Notice that this doesn't affect earlier responses from Copilot. + +Feel free to try making up your own prompts. You'll find that they only work if Copilot is able to query the plugin for the required information. This underscores the need to anticipate the kinds of prompts users will issue, and providing corresponding types of queries for each one. Having multiple parameters will make this more powerful! + +## Step 2 - Test in Microsoft Copilot for Microsoft 365 (multiple parameters) + +In this exercise, you'll try some prompts that exercise the multi-parameter feature in the sample plugin. These prompts will request data that can be retrieved by name, category, inventory status, supplier city, and stock level, as defined in [the manifest](../appPackage/manifest.json). + +For example, try prompting "Find Northwind beverages with more than 100 items in stock". To respond, Copilot must identify products: + +* where the category is "beverages" +* where inventory status is "in stock" +* where the stock level is more than 100 + +If you look at the log file, you can see that Copilot was able to understand this requirement and fill in 3 of the parameters in the first message extension command. + +![Screen shot of log showing a query for categoryName=beverages and stockLevel=100- ](./images/03-06-Find-Northwind-Beverages-with-more-than-100.png) + +The plugin code applies all three filters, providing a result set of just 4 products. Using the information on the 4 resulting adaptive cards, Copilot renders a result similar to this: + +![Copilot produced a bulleted list of products with references](./images/03-06b-Find-Northwind-Beverages-with-more-than-100.png) + +By using this prompt, Copilot might look also in your OneDrive files to find the payment terms with each supplier's contract. In this case, you will notice that some of the references won't have the Northwind Inventory icon, but the Word one. + +![Copilot extracted payment terms from contracts in SharePoint](./images/03-06c-PaymentTerms.png) + +Here are some more prompts to try: + +* "Find Northwind dairy products that are low on stock. Show me a table with the product, supplier, units in stock and on order." + +* "We’ve been receiving partial orders for Tofu. Find the supplier in Northwind and draft an email summarizing our inventory and reminding them they should stop sending partial orders per our MOQ policy." + +* "Northwind will have a booth at Microsoft Community Days in London. Find products with local suppliers and write a LinkedIn post to promote the booth and products." + + Request an enhancement by prompting, + + "Emphasize how delicious the products are and encourage people to attend our booth" + +* "What beverage is high in demand due to social media that is low stock in Northwind in London. Reference the product details to update stock." + +Which prompts work best for you? Try making up your own prompts and observe your log messages to see how Copilot accesses your plugin. + +### Troubleshooting tip +If you're facing challenges while testing your plugin, you can enable 'developer mode'. Developer mode provides information on the plugin selected by the Copilot orchestrator to respond to the prompt. It also shows the available functions in the plugin and the API call's status code. + +To enable developer mode, type the following into Copilot: +``` +-developer on +``` +For additional information on common problems and how to fix them, see the [troubleshooting](Troubleshooting.md) guide. + +Now just execute your prompt. This time, the output will look like this: + +![The developer mode in action](./images/03-03b-developer-mode.png) + +As you can notice, below the response generated by Copilot, we have a table that provides us insightful information about what happened behind the scenes: + +- Under **Enabled plugins**, we can see that Copilot has identified that the Northwind Inventory plugin is enabled. +- Under **Matched functions**, we can see that Copilot has determined that the Northwind inventory plugin offers three functions: `inventorySearch`, `discountSearch`, and `companySearch`. +- Under **Selected functions for execution**, we can see that Copilot has selected the `inventorySearch` function to respond to the prompt. +- Under **Function execution details**, we can see some detailed information about the execution, like the HTTP response returned by the plugin to the Copilot engine. + +## Congratulations + +You have completed Exercise 3. +Please proceed to [Exercise 4](./Exercise%2004%20-%20Add%20a%20new%20command.md), in which you will add a new command to the messaging extension. diff --git a/samples/msgext-copilot-handoff/ts/lab/Exercise 04 - Add a new command.md b/samples/msgext-copilot-handoff/ts/lab/Exercise 04 - Add a new command.md new file mode 100644 index 0000000..c8caad0 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/lab/Exercise 04 - Add a new command.md @@ -0,0 +1,245 @@ +# Building plugins for Microsoft Copilot for Microsoft 365 + +TABLE OF CONTENTS + +* [Welcome](./Exercise%2000%20-%20Welcome.md) +* [Exercise 1](./Exercise%2001%20-%20Set%20up.md) - Set up your development Environment +* [Exercise 2](./Exercise%2002%20-%20Run%20sample%20app.md) - Run the sample as a Message Extension +* [Exercise 3](./Exercise%2003%20-%20Run%20in%20Copilot.md) - Run the sample as a Copilot plugin +* Exercise 4 - Add a new command **(THIS PAGE)** +* [Exercise 5](./Exercise%2005%20-%20Code%20tour.md) - Code tour + +## Exercise 4 - Add a new command + +In this exercise, you will enhance the Teams Message Extension (ME) / Copilot plugin by adding a new command. While the current message extension effectively provides information about products within the Northwind inventory database, it does not provide information related to Northwind’s customers. Your task is to introduce a new command associated with an API call that retrieves products ordered by a customer name specified by the user. This exercise assumes you have completed at least exercises 1 and 2. It's fine to skip Exercise 3 in case you don't have a Copilot for Microsoft 365 license. + +To do this you'll complete five tasks. +1. **Extend the Message Extension / plugin User Interface** by modifying the Teams app manifest. This includes introducing a new command: **"companySearch"**. Note the UI for the Message Extension is an adaptive card where for Copilot it is text input and output in Copilot chat. +2. **Create a handler for the 'companySearch' command**. This will parse the query string passed in from the message routing code, validate the input and call the product search by company API. This step will also populate an adaptive card with the returned product list which will be displayed in the ME or Copilot chat UI. +3. Update the command **routing** code to route the new command to the handler created in the previous step. You'll do this by extending the method called by the Bot Framework when users query the Northwind database (**handleTeamsMessagingExtensionQuery**). +4. **Implement Product Search by Company** that returns a list of products ordered by that company. +5. **Run the app** and search of products that were purchased by a specified company. + +> [!NOTE] +> The completed exercise with all of the code changes can be downloaded [from here](../src/completed.zip). This can be useful for troubleshooting purposes. +> If you ever need to reset your edits, you can clone again the repository and start over. + +# Step 1 - Extend the Message Extension / plugin User Interface + +1. Open **manifest.json** and add the following json immediately after the `discountSearch` command. Here you're adding to the `commands` array which defines the list of commands supported by the ME / plugin. + +```json +{ + "id": "companySearch", + "context": [ + "compose", + "commandBox" + ], + "description": "Given a company name, search for products ordered by that company", + "title": "Customer", + "type": "query", + "parameters": [ + { + "name": "companyName", + "title": "Company name", + "description": "The company name to find products ordered by that company", + "inputType": "text" + } + ] +} +``` +``` +Note: The "id" is the connection between the UI and the code. This value is defined as COMMAND_ID in the discount/product/SearchCommand.ts files. See how each of these files has a unique COMMAND_ID that corresponds to the value of "id". +``` + +# Step 2 - Create a handler for the 'companySearch' command +We will use a lot of the code created for the other handlers. + +1. In VS Code copy '**productSearchCommand.ts**' and paste into the same folder to create a copy. Rename this file **customerSearchCommand.ts**. + +2. Change line 10 to: +```javascript +const COMMAND_ID = "companySearch"; +``` + +2. Replace the content of **handleTeamsMessagingExtensionQuery** with: +```javascript + { + let companyName; + + // Validate the incoming query, making sure it's the 'companySearch' command + // The value of the 'companyName' parameter is the company name to search for + if (query.parameters.length === 1 && query.parameters[0]?.name === "companyName") { + [companyName] = (query.parameters[0]?.value.split(',')); + } else { + companyName = cleanupParam(query.parameters.find((element) => element.name === "companyName")?.value); + } + console.log(`🍽️ Query #${++queryCount}:\ncompanyName=${companyName}`); + + const products = await searchProductsByCustomer(companyName); + + console.log(`Found ${products.length} products in the Northwind database`) + const attachments = []; + products.forEach((product) => { + const preview = CardFactory.heroCard(product.ProductName, + `Customer: ${companyName}`, [product.ImageUrl]); + + const resultCard = cardHandler.getEditCard(product); + const attachment = { ...resultCard, preview }; + attachments.push(attachment); + }); + return { + composeExtension: { + type: "result", + attachmentLayout: "list", + attachments: attachments, + }, + }; +} +``` +Note that you will implement `searchProductsByCustomer` in Step 4. + +# Step 3 - Update the command routing +In this step you will route the `companySearch` command to the handler you implemented in the previous step. + +2. Open **searchApp.ts** and add the following. Underneath this line: +```javascript +import discountedSearchCommand from "./messageExtensions/discountSearchCommand"; +``` +Add this line: +```javascript +import customerSearchCommand from "./messageExtensions/customerSearchCommand"; +``` + +3. Underneath this statement: +```javascript + case discountedSearchCommand.COMMAND_ID: { + return discountedSearchCommand.handleTeamsMessagingExtensionQuery(context, query); + } +``` +Add this statement: +```javascript + case customerSearchCommand.COMMAND_ID: { + return customerSearchCommand.handleTeamsMessagingExtensionQuery(context, query); + } +``` +```text +Note that in the UI-based operation of the Message Extension / plugin, this command is explicitly called. However, when invoked by Microsoft 365 Copilot, the command is triggered by the Copilot orchestrator. +``` +# Step 4 - Implement Product Search by Company + You will implement a product search by Company name and return a list of the company's ordered products. Find this information using the tables below: + +| Table | Find | Look Up By | +| ------------- | ----------- | ------------- | +| Customer | Customer Id | Customer Name | +| Orders | Order Id | Customer Id | +| OrderDetail | Product | Order Id | + +Here's how it works: +Use the Customer table to find the Customer Id with the Customer Name. Query the Orders table with the Customer Id to retrieve the associated Order Ids. For each Order Id, find the associated products in the OrderDetail table. Finally, return a list of products ordered by the specified company name. + +1. Open **.\src\northwindDB\products.ts** + +2. Update the `import` statement on line 1 to include OrderDetail, Order and Customer. It should look as follows +```javascript +import { + TABLE_NAME, Product, ProductEx, Supplier, Category, OrderDetail, + Order, Customer +} from './model'; +``` +3. Add the new function `searchProductsByCustomer()` + +Underneath this line: +```javascript +import { getInventoryStatus } from '../adaptiveCards/utils'; +``` +add the function: +```javascript +export async function searchProductsByCustomer(companyName: string): Promise { + + let result = await getAllProductsEx(); + + let customers = await loadReferenceData(TABLE_NAME.CUSTOMER); + let customerId=""; + for (const c in customers) { + if (customers[c].CompanyName.toLowerCase().includes(companyName.toLowerCase())) { + customerId = customers[c].CustomerID; + break; + } + } + + if (customerId === "") + return []; + + let orders = await loadReferenceData(TABLE_NAME.ORDER); + let orderdetails = await loadReferenceData(TABLE_NAME.ORDER_DETAIL); + // build an array orders by customer id + let customerOrders = []; + for (const o in orders) { + if (customerId === orders[o].CustomerID) { + customerOrders.push(orders[o]); + } + } + + let customerOrdersDetails = []; + // build an array order details customerOrders array + for (const od in orderdetails) { + for (const co in customerOrders) { + if (customerOrders[co].OrderID === orderdetails[od].OrderID) { + customerOrdersDetails.push(orderdetails[od]); + } + } + } + + // Filter products by the ProductID in the customerOrdersDetails array + result = result.filter(product => + customerOrdersDetails.some(order => order.ProductID === product.ProductID) + ); + + return result; +} +``` +# Step 5 - Run the App! Search for product by company name + +Now you're ready to test the sample as a plugin for Copilot for Microsoft 365. + +1. Delete the 'Northwest Inventory' app in Teams. This step is necessary since you are updating the manifest. Manifest updates require the app to be reinstalled. The cleanest way to do this is to first delete it in Teams. + + a. In the Teams sidebar, click on the three dots (...) 1️⃣. You should see Northwind Inventory 2️⃣ in the list of applications. + + b. Right click on the 'Northwest Inventory' icon and select uninstall 3️⃣. + + ![How to uninstall Northwind Inventory](./images/03-01-Uninstall-App.png) + +2. Like you did in [Exercise 2 - Run the sample as a Copilot plugin](./Exercise%2003%20-%20Run%20in%20Copilot.md), start the app in Visual Studio Code using the **Debug in Teams (Edge)** profile. + +3. In Teams click on **Chat** and then **Copilot**. Copilot should be the top-most option. +4. Click on the **Plugin icon** and select **Northwind Inventory** to enable the plugin. +5. Enter the prompt: +``` +What are the products ordered by 'Consolidated Holdings' in Northwind Inventory? +``` +The Terminal output shows Copilot understood the query and executed the `companySearch` command, passing company name extracted by Copilot. +![03-07-response-customer-search](./images/03-08-terminal-query-output.png) + +Here's the output in Copilot: +![03-07-response-customer-search](./images/03-07-response-customer-search.png) + +Here are other prompts to try: +``` +What are the products ordered by 'Consolidated Holdings' in Northwind Inventory? Please list the product name, price and supplier in a table. +``` + +Of course, you can test this new command also by using the sample as a Message Extension, like we did in [Exercise 2](./Exercise%2002%20-%20Run%20sample%20app.md). + +1. In the Teams sidebar, move to the **Chats** section and pick any chat or start a new chat with a colleague. +2. Click on the + sign to access to the Apps section. +3. Pick the Northwind Inventory app. +4. Notice how now you can see a new tab called **Customer**. +5. Search for **Consolidated Holdings** and see the products ordered by this company. They will match the ones that Copilot returned you in the previous step. + +![The new command used as a message extension](./images/03-08-customer-message-extension.png) + +## Congratulations +You've completed the exercise! Please proceed to [Exercise 5](./Exercise%2005%20-%20Code%20tour.md), in which you will explore the plugin source code and adaptive cards. + diff --git a/samples/msgext-copilot-handoff/ts/lab/Exercise 05 - Code tour.md b/samples/msgext-copilot-handoff/ts/lab/Exercise 05 - Code tour.md new file mode 100644 index 0000000..1843f7a --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/lab/Exercise 05 - Code tour.md @@ -0,0 +1,370 @@ +# Building Message Extensions for Microsoft Copilot for Microsoft 365 + +TABLE OF CONTENTS + +* [Welcome](./Exercise%2000%20-%20Welcome.md) +* [Exercise 1](./Exercise%2001%20-%20Set%20up.md) - Set up your development Environment +* [Exercise 2](./Exercise%2002%20-%20Run%20sample%20app.md) - Run the sample as a Message Extension +* [Exercise 3](./Exercise%2003%20-%20Run%20in%20Copilot.md) - Run the sample as a Copilot plugin +* [Exercise 4](./Exercise%2003%20-%20Add%20a%20new%20command.md) - Add a new command +* Exercise 5 - Code tour **(THIS PAGE)** + +## Exercise 5 - Code tour + +In this exercise, you'll review the application code so that you can understand how a Message Extension works. + +## Step 1 - Examine the manifest + +The core of any Microsoft 365 application is its application manifest. This is where you provide the information Microsoft 365 needs to access your application. + +In your working directory, open the [manifest.json](https://github.com/OfficeDev/Copilot-for-M365-Plugins-Samples/blob/main/samples/msgext-northwind-inventory-ts/appPackage/manifest.json) file. This JSON file is placed in a zip archive with two icon files to create the application package. The "icons" property includes paths to these icons. + +~~~json +"icons": { + "color": "Northwind-Logo3-192-${{TEAMSFX_ENV}}.png", + "outline": "Northwind-Logo3-32.png" +}, +~~~ + +Notice the token `${{TEAMSFX_ENV}}` in one of the icon names. Teams Toolkit will replace this token with your environment name, such as "local" or "dev" (for an Azure deployment in development). Thus, the icon color will change depending on the environment. + +Now have a look at the "name" and "description". Notice that the description is quite long! This is important so both users and Copilot can learn what your application does and when to use it. + +~~~json + "name": { + "short": "Northwind Inventory", + "full": "Northwind Inventory App" + }, + "description": { + "short": "App allows you to find and update product inventory information", + "full": "Northwind Inventory is the ultimate tool for managing your product inventory. With its intuitive interface and powerful features, you'll be able to easily find your products by name, category, inventory status, and supplier city. You can also update inventory information with the app. \n\n **Why Choose Northwind Inventory:** \n\n Northwind Inventory is the perfect solution for businesses of all sizes that need to keep track of their inventory. Whether you're a small business owner or a large corporation, Northwind Inventory can help you stay on top of your inventory management needs. \n\n **Features and Benefits:** \n\n - Easy Product Search through Microsoft Copilot. Simply start by saying, 'Find northwind dairy products that are low on stock' \r - Real-Time Inventory Updates: Keep track of inventory levels in real-time and update them as needed \r - User-Friendly Interface: Northwind Inventory's intuitive interface makes it easy to navigate and use \n\n **Availability:** \n\n To use Northwind Inventory, you'll need an active Microsoft 365 account . Ensure that your administrator enables the app for your Microsoft 365 account." + }, +~~~ + +Scroll down a bit to "composeExtensions". Compose extension is the historical term for message extension; this is where the app's message extensions are defined. + +Within this is a bot, with the ID supplied by Teams Toolkit. + +~~~json + "composeExtensions": [ + { + "botId": "${{BOT_ID}}", + "commands": [ + { + ... +~~~ + +Message extensions communicate using the Azure Bot Framework; this provides a fast and secure communication channel between Microsoft 365 and your application. When you first ran your project, Teams Toolkit registered a bot, and will place its bot ID here. + +This message extension has two commands, which are defined in the `commands` array. If you have completed [Exercise 4](./Exercise%2004%20-%20Add%20a%20new%20command.md), there will be also a third one. Let's skip the first command for a moment since it's the most complex one. The second command looks like this + +~~~json +{ + "id": "discountSearch", + "context": [ + "compose", + "commandBox" + ], + "description": "Search for discounted products by category", + "title": "Discounts", + "type": "query", + "parameters": [ + { + "name": "categoryName", + "title": "Category name", + "description": "Enter the category to find discounted products", + "inputType": "text" + } + ] +}, +~~~ + +This allows Copilot (or a user) to search for discounted products within a Northwind category. This command accepts a single parameter, "categoryName". + +OK now let's move back to the first command, "inventorySearch". It has 5 parameters, which allows for much more sophisticated queries. + +~~~json +{ + "id": "inventorySearch", + "context": [ + "compose", + "commandBox" + ], + "description": "Search products by name, category, inventory status, supplier location, stock level", + "title": "Product inventory", + "type": "query", + "parameters": [ + { + "name": "productName", + "title": "Product name", + "description": "Enter a product name here", + "inputType": "text" + }, + { + "name": "categoryName", + "title": "Category name", + "description": "Enter the category of the product", + "inputType": "text" + }, + { + "name": "inventoryStatus", + "title": "Inventory status", + "description": "Enter what status of the product inventory. Possible values are 'in stock', 'low stock', 'on order', or 'out of stock'", + "inputType": "text" + }, + { + "name": "supplierCity", + "title": "Supplier city", + "description": "Enter the supplier city of product", + "inputType": "text" + }, + { + "name": "stockQuery", + "title": "Stock level", + "description": "Enter a range of integers such as 0-42 or 100- (for >100 items). Only use if you need an exact numeric range.", + "inputType": "text" + } + ] +}, +~~~ + +Copilot is able to fill these in, again based on the descriptions, and the message extension will return a list of products filtered by all the non-blank parameters. + +## Step 2 - Examine the "Bot" code + +Now open the file **src/searchApp.ts**. This application contains the "bot" code, which communicates with the Azure Bot Framework using the [Bot Builder SDK](https://learn.microsoft.com/azure/bot-service/index-bf-sdk?view=azure-bot-service-4.0). + +Notice that the bot extends an SDK class **TeamsActivityHandler**. + +~~~typescript +export class SearchApp extends TeamsActivityHandler { + constructor() { + super(); + } + + ... +~~~ + +By overriding the methods of the **TeamsActivityHandler**, the application is able to handle messages (called "activities") coming from Microsoft 365. + +The first of these is a Messaging Extension Query activity ("messaging extension" is another historical name for a message extension). This function is called when a user types into a message extension or when Copilot calls it. + +~~~typescript + // Handle search message extension + public async handleTeamsMessagingExtensionQuery( + context: TurnContext, + query: MessagingExtensionQuery + ): Promise { + + switch (query.commandId) { + case productSearchCommand.COMMAND_ID: { + return productSearchCommand.handleTeamsMessagingExtensionQuery(context, query); + } + case discountedSearchCommand.COMMAND_ID: { + return discountedSearchCommand.handleTeamsMessagingExtensionQuery(context, query); + } + } + } +~~~ + +All it's doing is dispatching the query to the based on the command ID. These are the same command ID's used in the manifest above. + +The other type of activity our app needs to handle is the adaptive card actions, such as when a user clicks on "Update stock" or "Reorder" on an adaptive card. Since there is no specific method for an adaptive card action, the code overrides `onInvokeActivity()`, which is a much broader class of activity that includes message extension queries. For that reason, the code manually checks the activity name, and dispatches to the appropriate handler. If the activity name isn't for an adaptive card action, the `else` clause runs the base implementation of `onInvokeActivity()` which, among other things, will call our `handleTeamsMessagingExtensionQuery()` method if the Invoke activity is a query. + +~~~typescript +import { + TeamsActivityHandler, + TurnContext, + MessagingExtensionQuery, + MessagingExtensionResponse, + InvokeResponse +} from "botbuilder"; +import productSearchCommand from "./messageExtensions/productSearchCommand"; +import discountedSearchCommand from "./messageExtensions/discountSearchCommand"; +import revenueSearchCommand from "./messageExtensions/revenueSearchCommand"; +import actionHandler from "./adaptiveCards/cardHandler"; + +export class SearchApp extends TeamsActivityHandler { + constructor() { + super(); + } + + // Handle search message extension + public async handleTeamsMessagingExtensionQuery( + context: TurnContext, + query: MessagingExtensionQuery + ): Promise { + + switch (query.commandId) { + case productSearchCommand.COMMAND_ID: { + return productSearchCommand.handleTeamsMessagingExtensionQuery(context, query); + } + case discountedSearchCommand.COMMAND_ID: { + return discountedSearchCommand.handleTeamsMessagingExtensionQuery(context, query); + } + } + + } + + // Handle adaptive card actions + public async onInvokeActivity(context: TurnContext): Promise { + let runEvents = true; + // console.log (`🎬 Invoke activity received: ${context.activity.name}`); + try { + if(context.activity.name==='adaptiveCard/action'){ + switch (context.activity.value.action.verb) { + case 'ok': { + return actionHandler.handleTeamsCardActionUpdateStock(context); + } + case 'restock': { + return actionHandler.handleTeamsCardActionRestock(context); + } + case 'cancel': { + return actionHandler.handleTeamsCardActionCancelRestock(context); + } + default: + runEvents = false; + return super.onInvokeActivity(context); + } + } else { + runEvents = false; + return super.onInvokeActivity(context); + } + } ... +~~~ + +## Step 3 - Examine the message extension command code + +In an effort to make the code more modular, readable, and reusable, each message extension command has been placed in its own TypeScript module. Have a look at **src/messageExtensions/discountSearchCommand.ts** as an example. + +First, note that the module exports a constant `COMMAND_ID`, which contains the same command ID found in the app manifest, and allows the switch statement in **searchApp.ts** to work properly. + +Then it provides a function, `handleTeamsMessagingExtensionQuery()`, to handle incoming queries for discounted products by category. + +~~~json +async function handleTeamsMessagingExtensionQuery( + context: TurnContext, + query: MessagingExtensionQuery +): Promise { + + // Seek the parameter by name, don't assume it's in element 0 of the array + let categoryName = cleanupParam(query.parameters.find((element) => element.name === "categoryName")?.value); + console.log(`💰 Discount query #${++queryCount}: Discounted products with categoryName=${categoryName}`); + + const products = await getDiscountedProductsByCategory(categoryName); + + console.log(`Found ${products.length} products in the Northwind database`) + const attachments = []; + products.forEach((product) => { + const preview = CardFactory.heroCard(product.ProductName, + `Avg discount ${product.AverageDiscount}%
Supplied by ${product.SupplierName} of ${product.SupplierCity}`, + [product.ImageUrl]); + + const resultCard = cardHandler.getEditCard(product); + const attachment = { ...resultCard, preview }; + attachments.push(attachment); + }); + return { + composeExtension: { + type: "result", + attachmentLayout: "list", + attachments: attachments, + }, + }; +} +~~~ + +Notice that the index in the `query.parameters` array may not correspond to the parameter's position in the manifest. While this is generally only an issue for a multi-parameter command, the code will still get the value based on the parameter name rather than hard coding an index. +After cleaning up the parameter (trimming it, and handling the fact that sometimes Copilot assumes "*" is a wildcard that matches everything), the code calls the Northwind data access layer to `getDiscountedProductsByCategory()`. + +Then it iterates through the products and creates two cards for each: + +* a _preview_ card, which is implemented as a "hero" card (these predate adaptive cards and are very simple). This is what's displayed in the search results in the user interface and in some citations in Copilot. +* a _result_ card, which is implemented as an "adaptive" card that includes all the details. + +In the next step, we'll review the adaptive card code and check out the Adaptive Card designer. + +## Step 4 - Examine the adaptive cards and related code + +The project's adaptive cards are in the **src/adaptiveCards** folder. There are 3 cards, each implemented as a JSON file. + +* **editCard.json** - This is the initial card that's displayed by the message extension or a Copilot reference +* **successCard.json** - When a user takes action, this card is displayed to indicate success. It's mostly the same as the edit card except it includes a message to the user. +* **errorCard.json** - If an action fails, this card is displayed. + +Let's take a look at the edit card in the Adaptive Card Designer. Open your web browser to [https://adaptivecards.io](https://adaptivecards.io) and click the "Designer" option at the top. + +![image](./images/05-01-AdaptiveCardDesigner-01.png) + +Notice the data binding expressions such as `"text": "📦 ${productName}",`. This binds the `productName` property in the data to the text on the card. + +Now select "Microsoft Teams" as the host application 1️⃣ . Paste the entire contents of **editCard.json** into the Card Payload Editor 2️⃣ , and the contents of **sampleData.json** into the Sample Data Editor 3️⃣ . The sample data is identical to a product as provided in the code. + +![image](./images/05-01-AdaptiveCardDesigner-02.png) + +You should see the card as rendered, except for a small error which arises due to the designer's inability to display one of the adaptive card formats. + +Near the top of the page, try changing the Theme and Emulated Device to see how the card would look in dark theme or on a mobile device. This is the tool that was used to build adaptive cards for the sample application. + +Now, back in Visual Studio Code, open **cardHandler.ts**. The function `getEditCard()` is called from each of the message extension commands to obtain a result card. The code reads the adaptive card JSON - which is considered a template - and then binds it to product data. The result is more JSON - the same card as the template, with the data binding expressions all filled in. Finally, the `CardFactory` module is used to convert the final JSON into an adaptive card object for rendering. + +~~~typescript +function getEditCard(product: ProductEx): any { + + var template = new ACData.Template(editCard); + var card = template.expand({ + $root: { + productName: product.ProductName, + unitsInStock: product.UnitsInStock, + productId: product.ProductID, + categoryId: product.CategoryID, + imageUrl: product.ImageUrl, + supplierName: product.SupplierName, + supplierCity: product.SupplierCity, + categoryName: product.CategoryName, + inventoryStatus: product.InventoryStatus, + unitPrice: product.UnitPrice, + quantityPerUnit: product.QuantityPerUnit, + unitsOnOrder: product.UnitsOnOrder, + reorderLevel: product.ReorderLevel, + unitSales: product.UnitSales, + inventoryValue: product.InventoryValue, + revenue: product.Revenue, + averageDiscount: product.AverageDiscount + } + }); + return CardFactory.adaptiveCard(card); +} +~~~ + +Scrolling down, you'll see the handler for each of the action buttons on the card. The card submits data when an action button is clicked - specifically `data.txtStock`, which is the "Quantity" input box on the card, and `data.productId`, which is sent in each card action to let the code know what product to update. + +~~~typescript +async function handleTeamsCardActionUpdateStock(context: TurnContext) { + + const request = context.activity.value; + const data = request.action.data; + console.log(`🎬 Handling update stock action, quantity=${data.txtStock}`); + + if (data.txtStock && data.productId) { + + const product = await getProductEx(data.productId); + product.UnitsInStock = Number(data.txtStock); + await updateProduct(product); + + var template = new ACData.Template(successCard); + var card = template.expand({ + $root: { + productName: product.ProductName, + unitsInStock: product.UnitsInStock, + productId: product.ProductID, + categoryId: product.CategoryID, + imageUrl: product.ImageUrl, + ... +~~~ + +As you can see, the code obtains these two values, updates the database, and then sends a new card that contains a message and the updated data. + +## Congratulations + +You have completed Exercise 5 and the Copilot for Microsoft 365 Message Extensions plugin lab. Thanks very much for doing these labs! diff --git a/samples/msgext-copilot-handoff/ts/lab/Troubleshooting.md b/samples/msgext-copilot-handoff/ts/lab/Troubleshooting.md new file mode 100644 index 0000000..5d0d296 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/lab/Troubleshooting.md @@ -0,0 +1,44 @@ +# Building Message Extensions for Microsoft Copilot for Microsoft 365 + +TABLE OF CONTENTS + +* [Welcome](./Exercise%2000%20-%20Welcome.md) +* [Exercise 1](./Exercise%2001%20-%20Set%20up.md) - Set up your development Environment +* [Exercise 2](./Exercise%2002%20-%20Run%20sample%20app.md) - Run the sample Message Extension +* [Exercise 3](./Exercise%2003%20-%20Run%20in%20Copilot.md) - Run the sample as a Copilot plugin +* [Exercise 4](./Exercise%2004%20-%20Code%20tour.md) - Code tour + +## Common errors and how to fix them + +### App won't start first time + +![Error is displayed because of a missing environment variable](./images/02-01-Setup-Project-06.png) + +This happens when the environment variable `SECRET_STORAGE_ACCOUNT_CONNECTION_STRING` is missing from **.env.local.user**. +See Exercise 2 Step 1 or just add this text to **.env.local.user**: + +~~~text +SECRET_STORAGE_ACCOUNT_CONNECTION_STRING=UseDevelopmentStorage=true +~~~ + +### Ports occupied error + +![Error](./images/99-Port-Error.png) + +This happens if you shut down the debugger and then immediately start your app again. It takes a moment for your app to stop running and release its TCP ports. Just close the error and try again. + +### The app takes a long time to start after pressing F5 or the debug button + +The first time, it's normal for this to take several minutes as Teams Toolkit will be downloading a bunch of npm packages. However it should be faster on subsequent startups. If it doesn't seem to be doing anything and the browser doesn't open to install your app, please close and re-open Visual Studio Code and try again. + +### Start debugger with Teams v2 + +![Error](./images/99-TTK-Upload-on-V2-Error.png) + +If you've switched to Teams v2 and you (re)start the debugger, the application upload will fail. This is a known issue. If you previously uploaded the same application (since you made any manifest changes), just click Close; your app is still installed from before and should work normally. If you need to re-upload the applicaiton, either switch back to Teams v1 or upload it manually. + +![Upload the application within the Manage Your Apps screen](./images/99-Manual-Upload.png) +To manually upload, click "Apps" in the left sidebar 1️⃣ , then "Manage your apps" 2️⃣ . From there, click "Upload an app" 3️⃣ and upload the application package, which is a file in your working directory at **appPackage/build/appPackage.local.zip**. + + + diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-00-Product-card-only.png b/samples/msgext-copilot-handoff/ts/lab/images/01-00-Product-card-only.png new file mode 100644 index 0000000..94f486f Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-00-Product-card-only.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-02-CheckSampleFiles.png b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CheckSampleFiles.png new file mode 100644 index 0000000..1d10c7e Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CheckSampleFiles.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-01.png b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-01.png new file mode 100644 index 0000000..529c016 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-02.png b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-02.png new file mode 100644 index 0000000..e9c795d Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-03.png b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-03.png new file mode 100644 index 0000000..faec79a Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-03b.png b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-03b.png new file mode 100644 index 0000000..a961c9a Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-03b.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-04.png b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-04.png new file mode 100644 index 0000000..043f69b Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-04.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-05.png b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-05.png new file mode 100644 index 0000000..ae92f9d Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-02-CopySampleFiles-05.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-01.png b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-01.png new file mode 100644 index 0000000..e6d438a Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-02.png b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-02.png new file mode 100644 index 0000000..6a44d18 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-03.png b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-03.png new file mode 100644 index 0000000..c4099de Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-04.png b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-04.png new file mode 100644 index 0000000..94f759c Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-04.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-05.png b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-05.png new file mode 100644 index 0000000..59b4a9a Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Install-TTK-05.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-01.png b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-01.png new file mode 100644 index 0000000..b26f08f Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-02.png b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-02.png new file mode 100644 index 0000000..c735a7a Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-03.png b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-03.png new file mode 100644 index 0000000..5179ecb Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/01-04-Setup-TTK-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-01.png b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-01.png new file mode 100644 index 0000000..dd912bb Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-02.png b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-02.png new file mode 100644 index 0000000..9d267c6 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-03.png b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-03.png new file mode 100644 index 0000000..5f24642 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-04.png b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-04.png new file mode 100644 index 0000000..f4225bd Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-04.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-05.png b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-05.png new file mode 100644 index 0000000..7438e41 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-05.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-06.png b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-06.png new file mode 100644 index 0000000..863e4c9 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-01-Setup-Project-06.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-01.png b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-01.png new file mode 100644 index 0000000..ca42e90 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-02.png b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-02.png new file mode 100644 index 0000000..f52d11f Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-03.png b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-03.png new file mode 100644 index 0000000..a6a9774 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-04.png b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-04.png new file mode 100644 index 0000000..66a3248 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-04.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-05.png b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-05.png new file mode 100644 index 0000000..8f98102 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-02-Run-Project-05.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-01.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-01.png new file mode 100644 index 0000000..ff4165a Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-02a.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-02a.png new file mode 100644 index 0000000..b62ceeb Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-02a.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-02b.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-02b.png new file mode 100644 index 0000000..f202918 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TakeAction-02b.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-01.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-01.png new file mode 100644 index 0000000..a4e3059 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-02a.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-02a.png new file mode 100644 index 0000000..d3baa2f Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-02a.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-02b.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-02b.png new file mode 100644 index 0000000..f42ba2e Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-02b.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-03.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-03.png new file mode 100644 index 0000000..04061b9 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-04.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-04.png new file mode 100644 index 0000000..4551382 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-ME-Teams-04.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-01.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-01.png new file mode 100644 index 0000000..103ec84 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-02.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-02.png new file mode 100644 index 0000000..d1856e6 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-03.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-03.png new file mode 100644 index 0000000..47e07f5 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-04.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-04.png new file mode 100644 index 0000000..87a06a2 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-Test-Multi-04.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-01.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-01.png new file mode 100644 index 0000000..eddfe0b Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-02.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-02.png new file mode 100644 index 0000000..ad8c268 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-03.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-03.png new file mode 100644 index 0000000..5e42c11 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-04.png b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-04.png new file mode 100644 index 0000000..e5cd069 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-03-TestME-Teams-take2-04.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-01.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-01.png new file mode 100644 index 0000000..49b4c9b Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-02.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-02.png new file mode 100644 index 0000000..4a78dcb Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-03.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-03.png new file mode 100644 index 0000000..f3528f9 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-03.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-04.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-04.png new file mode 100644 index 0000000..d592171 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-04.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-05.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-05.png new file mode 100644 index 0000000..9ea8dc1 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-05.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-06a.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-06a.png new file mode 100644 index 0000000..ea13e14 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-06a.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-06b.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-06b.png new file mode 100644 index 0000000..b10375c Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-06b.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-07a.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-07a.png new file mode 100644 index 0000000..3e2b7a1 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-07a.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-07b.png b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-07b.png new file mode 100644 index 0000000..56ddb03 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-04-Test-ME-Outlook-07b.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/02-06-AzureStorageExplorer-01.png b/samples/msgext-copilot-handoff/ts/lab/images/02-06-AzureStorageExplorer-01.png new file mode 100644 index 0000000..821a853 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/02-06-AzureStorageExplorer-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-01-New-Chat.png b/samples/msgext-copilot-handoff/ts/lab/images/03-01-New-Chat.png new file mode 100644 index 0000000..fc9051f Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-01-New-Chat.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-01-Uninstall-App.png b/samples/msgext-copilot-handoff/ts/lab/images/03-01-Uninstall-App.png new file mode 100644 index 0000000..b490da3 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-01-Uninstall-App.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-02-Plugin-Panel.png b/samples/msgext-copilot-handoff/ts/lab/images/03-02-Plugin-Panel.png new file mode 100644 index 0000000..6865019 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-02-Plugin-Panel.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-02a-Query-Log1.png b/samples/msgext-copilot-handoff/ts/lab/images/03-02a-Query-Log1.png new file mode 100644 index 0000000..134f9bd Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-02a-Query-Log1.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-03-Response-on-Chai.png b/samples/msgext-copilot-handoff/ts/lab/images/03-03-Response-on-Chai.png new file mode 100644 index 0000000..c84ab86 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-03-Response-on-Chai.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-03a-response-on-chai.png b/samples/msgext-copilot-handoff/ts/lab/images/03-03a-response-on-chai.png new file mode 100644 index 0000000..e9c06ba Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-03a-response-on-chai.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-03b-developer-mode.png b/samples/msgext-copilot-handoff/ts/lab/images/03-03b-developer-mode.png new file mode 100644 index 0000000..f15b4ce Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-03b-developer-mode.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-04-discounted-dairy-items.png b/samples/msgext-copilot-handoff/ts/lab/images/03-04-discounted-dairy-items.png new file mode 100644 index 0000000..0df47cb Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-04-discounted-dairy-items.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-04a-discounted-beverage-items.png b/samples/msgext-copilot-handoff/ts/lab/images/03-04a-discounted-beverage-items.png new file mode 100644 index 0000000..0aaf226 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-04a-discounted-beverage-items.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-05-high-revenue-items-with-ad-campaigns.png b/samples/msgext-copilot-handoff/ts/lab/images/03-05-high-revenue-items-with-ad-campaigns.png new file mode 100644 index 0000000..8adffd5 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-05-high-revenue-items-with-ad-campaigns.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-06-Find-Northwind-Beverages-with-more-than-100.png b/samples/msgext-copilot-handoff/ts/lab/images/03-06-Find-Northwind-Beverages-with-more-than-100.png new file mode 100644 index 0000000..7ee5fc5 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-06-Find-Northwind-Beverages-with-more-than-100.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-06b-Find-Northwind-Beverages-with-more-than-100.png b/samples/msgext-copilot-handoff/ts/lab/images/03-06b-Find-Northwind-Beverages-with-more-than-100.png new file mode 100644 index 0000000..2bbdd7a Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-06b-Find-Northwind-Beverages-with-more-than-100.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-06c-PaymentTerms.png b/samples/msgext-copilot-handoff/ts/lab/images/03-06c-PaymentTerms.png new file mode 100644 index 0000000..68872c5 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-06c-PaymentTerms.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-07-response-customer-search.png b/samples/msgext-copilot-handoff/ts/lab/images/03-07-response-customer-search.png new file mode 100644 index 0000000..8af48dd Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-07-response-customer-search.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-08-customer-message-extension.png b/samples/msgext-copilot-handoff/ts/lab/images/03-08-customer-message-extension.png new file mode 100644 index 0000000..5a346f4 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-08-customer-message-extension.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/03-08-terminal-query-output.png b/samples/msgext-copilot-handoff/ts/lab/images/03-08-terminal-query-output.png new file mode 100644 index 0000000..e2eccc6 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/03-08-terminal-query-output.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/05-01-AdaptiveCardDesigner-01.png b/samples/msgext-copilot-handoff/ts/lab/images/05-01-AdaptiveCardDesigner-01.png new file mode 100644 index 0000000..4f54d73 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/05-01-AdaptiveCardDesigner-01.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/05-01-AdaptiveCardDesigner-02.png b/samples/msgext-copilot-handoff/ts/lab/images/05-01-AdaptiveCardDesigner-02.png new file mode 100644 index 0000000..bf3a63a Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/05-01-AdaptiveCardDesigner-02.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/99-Manual-Upload.png b/samples/msgext-copilot-handoff/ts/lab/images/99-Manual-Upload.png new file mode 100644 index 0000000..7219267 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/99-Manual-Upload.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/99-Port-Error.png b/samples/msgext-copilot-handoff/ts/lab/images/99-Port-Error.png new file mode 100644 index 0000000..3beaeef Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/99-Port-Error.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/99-TTK-Upload-on-V2-Error.png b/samples/msgext-copilot-handoff/ts/lab/images/99-TTK-Upload-on-V2-Error.png new file mode 100644 index 0000000..d53a7ea Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/99-TTK-Upload-on-V2-Error.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/action-btn.png b/samples/msgext-copilot-handoff/ts/lab/images/action-btn.png new file mode 100644 index 0000000..c63894b Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/action-btn.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/handoff.png b/samples/msgext-copilot-handoff/ts/lab/images/handoff.png new file mode 100644 index 0000000..1521596 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/handoff.png differ diff --git a/samples/msgext-copilot-handoff/ts/lab/images/startScreen.png b/samples/msgext-copilot-handoff/ts/lab/images/startScreen.png new file mode 100644 index 0000000..4869e93 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/lab/images/startScreen.png differ diff --git a/samples/msgext-copilot-handoff/ts/package-lock.json b/samples/msgext-copilot-handoff/ts/package-lock.json new file mode 100644 index 0000000..08bc515 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/package-lock.json @@ -0,0 +1,9766 @@ +{ + "name": "northwindproducts", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "northwindproducts", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@azure/data-tables": "^13.2.2", + "@microsoft/adaptivecards-tools": "^1.3.2", + "adaptive-expressions": "4.21.0", + "adaptivecards": "2.11.1", + "adaptivecards-templating": "2.3.1", + "botbuilder": "^4.20.0", + "restify": "^10.0.0" + }, + "devDependencies": { + "@types/node": "^16.0.0", + "@types/restify": "^8.5.5", + "azurite": "^3.26.0", + "env-cmd": "^10.1.0", + "nodemon": "^2.0.7", + "shx": "^0.3.3", + "ts-node": "^10.4.0", + "typescript": "^4.4.4" + }, + "engines": { + "node": "16 || 18" + } + }, + "node_modules/@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-auth": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.5.0.tgz", + "integrity": "sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-util": "^1.1.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-client": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.7.3.tgz", + "integrity": "sha512-kleJ1iUTxcO32Y06dH9Pfi9K4U+Tlb111WXEnbt7R/ne+NLRwppZiTGJuTD5VVoxTMK5NTbEtm5t2vcdNCFe2g==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-http": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.4.tgz", + "integrity": "sha512-Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-tracing": "1.0.0-preview.13", + "@azure/core-util": "^1.1.1", + "@azure/logger": "^1.0.0", + "@types/node-fetch": "^2.5.0", + "@types/tunnel": "^0.0.3", + "form-data": "^4.0.0", + "node-fetch": "^2.6.7", + "process": "^0.11.10", + "tslib": "^2.2.0", + "tunnel": "^0.0.6", + "uuid": "^8.3.0", + "xml2js": "^0.5.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-http-compat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-1.3.0.tgz", + "integrity": "sha512-ZN9avruqbQ5TxopzG3ih3KRy52n8OAbitX3fnZT5go4hzu0J+KVPSzkL+Wt3hpJpdG8WIfg1sBD1tWkgUdEpBA==", + "dev": true, + "dependencies": { + "@azure/abort-controller": "^1.0.4", + "@azure/core-client": "^1.3.0", + "@azure/core-rest-pipeline": "^1.3.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-http/node_modules/@azure/core-tracing": { + "version": "1.0.0-preview.13", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", + "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "dependencies": { + "@opentelemetry/api": "^1.0.1", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-http/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@azure/core-lro": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.5.4.tgz", + "integrity": "sha512-3GJiMVH7/10bulzOKGrrLeG/uCBH/9VtxqaMcB9lIqAeamI/xYQSHJL/KcsLDuH+yTjYpro/u6D/MuRe4dN70Q==", + "dev": true, + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-util": "^1.2.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-paging": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz", + "integrity": "sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.12.1.tgz", + "integrity": "sha512-SsyWQ+T5MFQRX+M8H/66AlaI6HyCbQStGfFngx2fuiW+vKI2DkhtOvbYodPyf9fOe/ARLWWc3ohX54lQ5Kmaog==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.3.0", + "@azure/logger": "^1.0.0", + "form-data": "^4.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-rest-pipeline/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@azure/core-tracing": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz", + "integrity": "sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/core-util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.5.0.tgz", + "integrity": "sha512-GZBpVFDtQ/15hW1OgBcRdT4Bl7AEpcEZqLfbAvOtm1CQUncKWiYapFHVD588hmlV27NbOOtSm3cnLF3lvoHi4g==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/core-xml": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.3.4.tgz", + "integrity": "sha512-B1xI79Ur/u+KR69fGTcsMNj8KDjBSqAy0Ys6Byy4Qm1CqoUy7gCT5A7Pej0EBWRskuH6bpCwrAnosfmQEalkcg==", + "dependencies": { + "fast-xml-parser": "^4.2.4", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/data-tables": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/@azure/data-tables/-/data-tables-13.2.2.tgz", + "integrity": "sha512-Dq2Aq0mMMF0BPzYQKdBY/OtO7VemP/foh6z+mJpUO1hRL+65C1rGQUJf20LJHotSyU8wHb4HJzOs+Z50GXSy1w==", + "dependencies": { + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.0.0", + "@azure/core-paging": "^1.1.1", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-xml": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/identity": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-2.1.0.tgz", + "integrity": "sha512-BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw==", + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.4.0", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^2.26.0", + "@azure/msal-common": "^7.0.0", + "@azure/msal-node": "^1.10.0", + "events": "^3.0.0", + "jws": "^4.0.0", + "open": "^8.0.0", + "stoppable": "^1.1.0", + "tslib": "^2.2.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@azure/keyvault-keys": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/@azure/keyvault-keys/-/keyvault-keys-4.7.2.tgz", + "integrity": "sha512-VdIH6PjbQ3J5ntK+xeI8eOe1WsDxF9ndXw8BPR/9MZVnIj0vQNtNCS6gpR7EFQeGcs8XjzMfHm0AvKGErobqJQ==", + "dev": true, + "dependencies": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.5.0", + "@azure/core-http-compat": "^1.3.0", + "@azure/core-lro": "^2.2.0", + "@azure/core-paging": "^1.1.1", + "@azure/core-rest-pipeline": "^1.8.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/logger": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz", + "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==", + "dependencies": { + "tslib": "^2.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/@azure/msal-browser": { + "version": "2.38.2", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.38.2.tgz", + "integrity": "sha512-71BeIn2we6LIgMplwCSaMq5zAwmalyJR3jFcVOZxNVfQ1saBRwOD+P77nLs5vrRCedVKTq8RMFhIOdpMLNno0A==", + "dependencies": { + "@azure/msal-common": "13.3.0" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-browser/node_modules/@azure/msal-common": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.3.0.tgz", + "integrity": "sha512-/VFWTicjcJbrGp3yQP7A24xU95NiDMe23vxIU1U6qdRPFsprMDNUohMudclnd+WSHE4/McqkZs/nUU3sAKkVjg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-common": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-7.6.0.tgz", + "integrity": "sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@azure/msal-node": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.18.4.tgz", + "integrity": "sha512-Kc/dRvhZ9Q4+1FSfsTFDME/v6+R2Y1fuMty/TfwqE5p9GTPw08BPbKgeWinE8JRHRp+LemjQbUZsn4Q4l6Lszg==", + "deprecated": "A newer major version of this library is available. Please upgrade to the latest available version.", + "dependencies": { + "@azure/msal-common": "13.3.1", + "jsonwebtoken": "^9.0.0", + "uuid": "^8.3.0" + }, + "engines": { + "node": "10 || 12 || 14 || 16 || 18" + } + }, + "node_modules/@azure/msal-node/node_modules/@azure/msal-common": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.3.1.tgz", + "integrity": "sha512-Lrk1ozoAtaP/cp53May3v6HtcFSVxdFrg2Pa/1xu5oIvsIwhxW6zSPibKefCOVgd5osgykMi5jjcZHv8XkzZEQ==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dev": true, + "dependencies": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@js-joda/core": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@js-joda/core/-/core-5.6.1.tgz", + "integrity": "sha512-Xla/d7ZMMR6+zRd6lTio0wRZECfcfFJP7GGe9A9L4tDOlD5CX4YcZ4YZle9w58bBYzssojVapI84RraKWDQZRg==", + "dev": true + }, + "node_modules/@microsoft/adaptivecards-tools": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@microsoft/adaptivecards-tools/-/adaptivecards-tools-1.3.3.tgz", + "integrity": "sha512-LPQFvY49uMPHdgg87Cw35Q4ZnoDgV3ow0VI9ztLFRr0n7TldifTMRXQ98G5C3SlOOqxRszu0lYna19sQSbCgFA==", + "dependencies": { + "adaptive-expressions": "^4.20.0", + "adaptivecards": "~2.10.0", + "adaptivecards-templating": "^2.1.0", + "markdown-it": "^12.3.2", + "react": "^17.0.2" + } + }, + "node_modules/@microsoft/adaptivecards-tools/node_modules/adaptivecards": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-2.10.0.tgz", + "integrity": "sha512-QcgXGFlX3rgIfZkxvQY896zEVBh30mE37z3XKhcQW2OqSUrVH6dNT78MkM//W4wRdrZizSHqXKLaKyVVxAgVFg==" + }, + "node_modules/@microsoft/recognizers-text-data-types-timex-expression": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@microsoft/recognizers-text-data-types-timex-expression/-/recognizers-text-data-types-timex-expression-1.3.0.tgz", + "integrity": "sha512-REHUXmMUI1jL3b9v+aSdzKxLxRdejsfg9McYRxY3LW0Gu4UbwD7Q+K6mtSo40cwg8uh6fiV9GY8hDuKXHH6dVA==", + "engines": { + "node": ">=10.3.0" + } + }, + "node_modules/@netflix/nerror": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", + "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", + "dependencies": { + "assert-plus": "^1.0.0", + "extsprintf": "^1.4.0", + "lodash": "^4.17.15" + } + }, + "node_modules/@netflix/nerror/node_modules/extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/@opentelemetry/api": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", + "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "node_modules/@types/atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha512-7bjymPR7Ffa1/L3HskkaxMgTQDtwFObbISzHm9g3T12VyD89IiHS3BBVojlQHyZRiIilzdh0WT1gwwgyyBtLGQ==" + }, + "node_modules/@types/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==" + }, + "node_modules/@types/bunyan": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.9.tgz", + "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/debug": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz", + "integrity": "sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, + "node_modules/@types/formidable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-1.2.6.tgz", + "integrity": "sha512-9xwITWH5ok4MrALa7qnUd3McKrvEn5iUZM5/m0AJjOo/sMPUISzuBK/qAHHMV9t5ShjG4fjr0VEm8J+szAKDWA==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.14.199", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", + "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" + }, + "node_modules/@types/lodash.isequal": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/@types/lodash.isequal/-/lodash.isequal-4.5.6.tgz", + "integrity": "sha512-Ww4UGSe3DmtvLLJm2F16hDwEQSv7U0Rr8SujLUA2wHI2D2dm8kPu6Et+/y303LfjTIwSBKXB/YTUcAKpem/XEg==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + }, + "node_modules/@types/ms": { + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz", + "integrity": "sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==", + "dev": true + }, + "node_modules/@types/node": { + "version": "16.18.58", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.58.tgz", + "integrity": "sha512-YGncyA25/MaVtQkjWW9r0EFBukZ+JulsLcVZBlGUfIb96OBMjkoRWwQo5IEWJ8Fj06Go3GHw+bjYDitv6BaGsA==" + }, + "node_modules/@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "dependencies": { + "@types/node": "*", + "form-data": "^4.0.0" + } + }, + "node_modules/@types/node-fetch/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/restify": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/restify/-/restify-8.5.8.tgz", + "integrity": "sha512-IIRXJ1TCcLQ8yeSgAK13xtyzxCgUn3zFKbp7ubmhE+J6zVa9j6fK0G7vi5zYGYqJX24yzqujnlg5Icw9YO6Hjg==", + "dev": true, + "dependencies": { + "@types/bunyan": "*", + "@types/formidable": "^1", + "@types/node": "*", + "@types/spdy": "*" + } + }, + "node_modules/@types/spdy": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@types/spdy/-/spdy-3.4.6.tgz", + "integrity": "sha512-1WacgtGIz6wBeipqFerJMqMGjPFNDrjneBaUy1Vco/kFyLYon1CaaUgILfsdq/i6LJTSNM58/aUBTgdt9TUN6A==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/triple-beam": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.3.tgz", + "integrity": "sha512-6tOUG+nVHn0cJbVp25JFayS5UE6+xlbcNF9Lo9mU7U0zk3zeUShZied4YEQZjy1JBF043FSkdXw8YkUJuVtB5g==", + "dev": true + }, + "node_modules/@types/tunnel": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", + "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/validator": { + "version": "13.11.3", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.3.tgz", + "integrity": "sha512-jxjhh33aTYDHnrV1vZ3AvWQHfrGx2f5UxKjaP13l5q04fG+/hCKKm0MfodIoCqxevhbcfBb6ZjynyHuQ/jueGQ==", + "dev": true + }, + "node_modules/@types/ws": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz", + "integrity": "sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/xmldom": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/@types/xmldom/-/xmldom-0.1.32.tgz", + "integrity": "sha512-zPO1iqnODar0cIXhuCc0QyGP+t2IG9dr//VkxDtYKZJSikgN7bdLyMdnUNWRtCKeHkgc9KkbgsdccVbrCHCn2g==" + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/adaptive-expressions": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/adaptive-expressions/-/adaptive-expressions-4.21.0.tgz", + "integrity": "sha512-+nE/F1x49yI5WdkpPLclczn7Nig1lXecT9y8OWV8XVljn+49wTKkAwZ/zNOEIH6HjDod2ezQYOsqf1R3nBc44g==", + "dependencies": { + "@microsoft/recognizers-text-data-types-timex-expression": "1.3.0", + "@types/atob-lite": "^2.0.0", + "@types/btoa-lite": "^1.0.0", + "@types/lodash.isequal": "^4.5.5", + "@types/lru-cache": "^5.1.0", + "@types/xmldom": "^0.1.30", + "@xmldom/xmldom": "^0.8.6", + "antlr4ts": "0.5.0-alpha.3", + "atob-lite": "^2.0.0", + "big-integer": "^1.6.48", + "btoa-lite": "^1.0.0", + "d3-format": "^1.4.4", + "dayjs": "^1.10.3", + "fast-xml-parser": "^4.2.5", + "jspath": "^0.4.0", + "lodash.isequal": "^4.5.0", + "lru-cache": "^5.1.1", + "uuid": "^8.3.2", + "xpath": "^0.0.32" + } + }, + "node_modules/adaptive-expressions/node_modules/@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/adaptive-expressions/node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/adaptive-expressions/node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + }, + "node_modules/adaptivecards": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-2.11.1.tgz", + "integrity": "sha512-dyF23HK+lRMEreexJgHz4y9U5B0ZuGk66N8nhwXRnICyYjq8hE4A6n8rLoV/CNY2QAZ0iRjOIR2J8U7M1CKl8Q==" + }, + "node_modules/adaptivecards-templating": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/adaptivecards-templating/-/adaptivecards-templating-2.3.1.tgz", + "integrity": "sha512-rYN1tCb+4NeWUCbo7xzGhwuOG3XllpGWCtgdl/drSJA32tljAvDrMeBO/eUk7uwXx8/1hSc5WJvzbAZQWMd35Q==", + "peerDependencies": { + "adaptive-expressions": "^4.11.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/antlr4ts": { + "version": "0.5.0-alpha.3", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.3.tgz", + "integrity": "sha512-La89tKkGcHFIVuruv4Bm1esc3zLmES2NOTEwwNS1pudz+zx/0FNqQeUu9p48i9/QHKPVqjN87LB+q3buTg7oDQ==" + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/args": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "dev": true, + "dependencies": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha512-LEeSAWeh2Gfa2FtlQE1shxQ8zi5F9GHarrGKz08TMdODD5T4eH6BMsvtnhbWZ+XQn+Gb6om/917ucvRu7l7ukw==" + }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/axios": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.1.tgz", + "integrity": "sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/azurite": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/azurite/-/azurite-3.29.0.tgz", + "integrity": "sha512-gzl8+LqereINQ45BuED4DNq9w3ipw0DCYAkGz8xwOFAlwjWey6C3JpolaIjrYNeX4r52bRCt53tPQ2fVCaNcYA==", + "dev": true, + "dependencies": { + "@azure/ms-rest-js": "^1.5.0", + "args": "^5.0.1", + "axios": "^0.27.0", + "etag": "^1.8.1", + "express": "^4.16.4", + "fs-extra": "^11.1.1", + "glob-to-regexp": "^0.4.1", + "jsonwebtoken": "^9.0.0", + "lokijs": "^1.5.6", + "morgan": "^1.9.1", + "multistream": "^2.1.1", + "mysql2": "^3.2.0", + "rimraf": "^3.0.2", + "sequelize": "^6.31.0", + "stoppable": "^1.1.0", + "tedious": "^16.0.0", + "to-readable-stream": "^2.1.0", + "tslib": "^2.3.0", + "uri-templates": "^0.2.0", + "uuid": "^3.3.2", + "winston": "^3.1.0", + "xml2js": "^0.6.0" + }, + "bin": { + "azurite": "dist/src/azurite.js", + "azurite-blob": "dist/src/blob/main.js", + "azurite-queue": "dist/src/queue/main.js", + "azurite-table": "dist/src/table/main.js" + }, + "engines": { + "node": ">=10.0.0", + "vscode": "^1.39.0" + } + }, + "node_modules/azurite/node_modules/@azure/ms-rest-js": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-1.11.2.tgz", + "integrity": "sha512-2AyQ1IKmLGKW7DU3/x3TsTBzZLcbC9YRI+yuDPuXAQrv3zar340K9wsxU413kHFIDjkWNCo9T0w5VtwcyWxhbQ==", + "dev": true, + "dependencies": { + "@azure/core-auth": "^1.1.4", + "axios": "^0.21.1", + "form-data": "^2.3.2", + "tough-cookie": "^2.4.3", + "tslib": "^1.9.2", + "tunnel": "0.0.6", + "uuid": "^3.2.1", + "xml2js": "^0.4.19" + } + }, + "node_modules/azurite/node_modules/@azure/ms-rest-js/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/azurite/node_modules/@azure/ms-rest-js/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "node_modules/azurite/node_modules/@azure/ms-rest-js/node_modules/xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/azurite/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/azurite/node_modules/axios/node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/azurite/node_modules/fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=14.14" + } + }, + "node_modules/azurite/node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/azurite/node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/azurite/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/azurite/node_modules/xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dev": true, + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/basic-auth/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bl": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.7.tgz", + "integrity": "sha512-9FNh0IvlWSU5C9BCDhw0IovmhuqevzBX1AME7BdFHNDMfOju4NmwRWoBrfz5Srs+JNBhxfjrPLxZSnDotgSs9A==", + "dev": true, + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^4.2.0" + } + }, + "node_modules/body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/botbuilder": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botbuilder/-/botbuilder-4.22.2.tgz", + "integrity": "sha512-pfMbpN5nKyDNMKZZl4palWET+Q7oNHLYLSEyBie5sA4xJ1Gbzn7DT0T1QykATsr9O9s13mojJRyqnNYRflH0rw==", + "dependencies": { + "@azure/core-http": "^3.0.2", + "@azure/msal-node": "^1.18.4", + "axios": "^0.28.0", + "botbuilder-core": "4.22.2", + "botbuilder-stdlib": "4.22.2-internal", + "botframework-connector": "4.22.2", + "botframework-schema": "4.22.2", + "botframework-streaming": "4.22.2", + "dayjs": "^1.10.3", + "filenamify": "^4.1.0", + "fs-extra": "^7.0.1", + "htmlparser2": "^6.0.1", + "uuid": "^8.3.2", + "zod": "^3.22.4" + } + }, + "node_modules/botbuilder-core": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botbuilder-core/-/botbuilder-core-4.22.2.tgz", + "integrity": "sha512-3qzdiq0V51mrKzEZzle6TSAcX/XfiKyxyKQfStV8C4ivmYFC1RDAv2MVvvg2U4hcLvcp1MHqnDBlQJq/bwrT2w==", + "dependencies": { + "botbuilder-dialogs-adaptive-runtime-core": "4.22.2-preview", + "botbuilder-stdlib": "4.22.2-internal", + "botframework-connector": "4.22.2", + "botframework-schema": "4.22.2", + "uuid": "^8.3.2", + "zod": "^3.22.4" + } + }, + "node_modules/botbuilder-dialogs-adaptive-runtime-core": { + "version": "4.22.2-preview", + "resolved": "https://registry.npmjs.org/botbuilder-dialogs-adaptive-runtime-core/-/botbuilder-dialogs-adaptive-runtime-core-4.22.2-preview.tgz", + "integrity": "sha512-eMUkwu2dmf7r+tA1jPp4lP3XD2mVHGv1oRRcqkkWV/4B3xS9vnGpMywKL1xYVwm88eyZA64QGQFlxi6GOtpPaA==", + "dependencies": { + "dependency-graph": "^0.10.0" + } + }, + "node_modules/botbuilder-stdlib": { + "version": "4.22.2-internal", + "resolved": "https://registry.npmjs.org/botbuilder-stdlib/-/botbuilder-stdlib-4.22.2-internal.tgz", + "integrity": "sha512-ny6rFD/KM63XtiIITrYdwM+1qh9A5m83bf9E8O0cTrFQjvHLP+zHAHslbl1/Wpv7j6nEnAoLUJB6IVBEkb53Kw==" + }, + "node_modules/botframework-connector": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botframework-connector/-/botframework-connector-4.22.2.tgz", + "integrity": "sha512-V6mRsQPthhlKHxNw73fW7ZcfM0AlOXlTR6u49O+5+PQ8fDwLbNNswN4AyUpSp+JFW9facR407dd2vNbUoKYOcA==", + "dependencies": { + "@azure/core-http": "^3.0.2", + "@azure/identity": "^2.0.4", + "@azure/msal-node": "^1.18.4", + "base64url": "^3.0.0", + "botbuilder-stdlib": "4.22.2-internal", + "botframework-schema": "4.22.2", + "cross-fetch": "^3.0.5", + "https-proxy-agent": "^7.0.2", + "jsonwebtoken": "^9.0.0", + "node-fetch": "^2.6.7", + "openssl-wrapper": "^0.3.4", + "rsa-pem-from-mod-exp": "^0.8.4", + "zod": "^3.22.4" + } + }, + "node_modules/botframework-connector/node_modules/agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "dependencies": { + "debug": "^4.3.4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/botframework-connector/node_modules/https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "dependencies": { + "agent-base": "^7.0.2", + "debug": "4" + }, + "engines": { + "node": ">= 14" + } + }, + "node_modules/botframework-schema": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botframework-schema/-/botframework-schema-4.22.2.tgz", + "integrity": "sha512-D2SauTdimpfN6TRfDS94GYrRGn/dpTq/n24yAR1cQ9GcV8qq1MydxCYyVbsgzdlkNOFSRJHYJMAp85VKUoYUGg==", + "dependencies": { + "adaptivecards": "1.2.3", + "uuid": "^8.3.2", + "zod": "^3.22.4" + } + }, + "node_modules/botframework-schema/node_modules/adaptivecards": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-1.2.3.tgz", + "integrity": "sha512-amQ5OSW3OpIkrxVKLjxVBPk/T49yuOtnqs1z5ZPfZr0+OpTovzmiHbyoAGDIsu5SNYHwOZFp/3LGOnRaALFa/g==" + }, + "node_modules/botframework-streaming": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botframework-streaming/-/botframework-streaming-4.22.2.tgz", + "integrity": "sha512-xsozFqv3B65jPQnmPa1r7Cq/OMXe1iod+MmcwiVs4oa8Th8YQ1m38+eyUPIm8vCMfeNeULm8EOvYiC9XC8P1NA==", + "dependencies": { + "@types/node": "^10.17.27", + "@types/ws": "^6.0.3", + "uuid": "^8.3.2", + "ws": "^7.1.2" + } + }, + "node_modules/botframework-streaming/node_modules/@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "node_modules/bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dev": true, + "dependencies": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "dependencies": { + "safe-buffer": "5.2.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "node_modules/cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "dependencies": { + "node-fetch": "^2.6.12" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/csv": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/csv/-/csv-6.3.5.tgz", + "integrity": "sha512-Y+KTCAUljtq2JaGP42ZL1bymqlU5BkfnFpZhxRczGFDZox2VXhlRHnG5DRshyUrwQzmCdEiLjSqNldCfm1OVCA==", + "dependencies": { + "csv-generate": "^4.3.0", + "csv-parse": "^5.5.2", + "csv-stringify": "^6.4.4", + "stream-transform": "^3.2.10" + }, + "engines": { + "node": ">= 0.1.90" + } + }, + "node_modules/csv-generate": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-4.3.0.tgz", + "integrity": "sha512-7KdVId/2RgwPIKfWHaHtjBq7I9mgdi8ICzsUyIhP8is6UwpwVGGSC/aPnrZ8/SkgBcCP20lXrdPuP64Irs1VBg==" + }, + "node_modules/csv-parse": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.2.tgz", + "integrity": "sha512-YRVtvdtUNXZCMyK5zd5Wty1W6dNTpGKdqQd4EQ8tl/c6KW1aMBB1Kg1ppky5FONKmEqGJ/8WjLlTNLPne4ioVA==" + }, + "node_modules/csv-stringify": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.4.4.tgz", + "integrity": "sha512-NDshLupGa7gp4UG4sSNIqwYJqgSwvds0SvENntxoVoVvTzXcrHvd5gG2MWpbRpSNvk59dlmIe1IwNvSxN4IVmg==" + }, + "node_modules/d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", + "engines": { + "node": ">=8" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/dependency-graph": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.10.0.tgz", + "integrity": "sha512-c9amUgpgxSi1bE5/sbLwcs5diLD0ygCQYmhfM5H1s5VH1mCsYkcmAL3CcNdv4kdSw6JuMoHeDGzLgj/gAXdWVg==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + }, + "funding": { + "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" + } + }, + "node_modules/domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ] + }, + "node_modules/domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "dependencies": { + "domelementtype": "^2.2.0" + }, + "engines": { + "node": ">= 4" + }, + "funding": { + "url": "https://github.com/fb55/domhandler?sponsor=1" + } + }, + "node_modules/domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "dependencies": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + }, + "funding": { + "url": "https://github.com/fb55/domutils?sponsor=1" + } + }, + "node_modules/dottie": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.6.tgz", + "integrity": "sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==", + "dev": true + }, + "node_modules/dtrace-provider": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", + "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "nan": "^2.14.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "node_modules/enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/env-cmd": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", + "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", + "dev": true, + "dependencies": { + "commander": "^4.0.0", + "cross-spawn": "^7.0.0" + }, + "bin": { + "env-cmd": "bin/env-cmd.js" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/es-abstract": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-aggregate-error": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.11.tgz", + "integrity": "sha512-DCiZiNlMlbvofET/cE55My387NiLvuGToBEZDdK9U2G3svDCjL8WOgO5Il6lO83nQ8qmag/R9nArdpaFQ/m3lA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.0", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "set-function-name": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "node_modules/escape-regexp-component": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", + "integrity": "sha512-B0yxafj1D1ZTNEHkFoQxz4iboZSfaZHhaNhIug7GcUCL4ZUrVSJZTmWUAkPOFaYDfi3RNT9XM082TuGE6jpmiQ==" + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/ewma": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ewma/-/ewma-2.0.1.tgz", + "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "dependencies": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/express/node_modules/qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==", + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "node_modules/fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "dependencies": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "node_modules/fast-redact": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", + "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/fast-xml-parser": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", + "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/NaturalIntelligence" + }, + { + "type": "paypal", + "url": "https://paypal.me/naturalintelligence" + } + ], + "dependencies": { + "strnum": "^1.0.5" + }, + "bin": { + "fxparser": "src/cli/cli.js" + } + }, + "node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "dev": true + }, + "node_modules/filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "dependencies": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/finalhandler/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-my-way": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.7.0.tgz", + "integrity": "sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==", + "dependencies": { + "fast-deep-equal": "^3.1.3", + "fast-querystring": "^1.0.0", + "safe-regex2": "^2.0.0" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/formidable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", + "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==", + "deprecated": "Please upgrade to latest, formidable@v2 or formidable@v3! Check these notes: https://bit.ly/2ZEqIau", + "funding": { + "url": "https://ko-fi.com/tunnckoCore/commissions" + } + }, + "node_modules/forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "dependencies": { + "is-property": "^1.0.2" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "node_modules/has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hpack.js/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/hpack.js/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/hpack.js/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "dependencies": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "node_modules/inflection": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.4.tgz", + "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==", + "dev": true, + "engines": [ + "node >= 0.4.0" + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-md4": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsbi": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz", + "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==", + "dev": true + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "node_modules/json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "dependencies": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "engines": { + "node": ">=12", + "npm": ">=6" + } + }, + "node_modules/jsonwebtoken/node_modules/jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jsonwebtoken/node_modules/jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "dependencies": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jspath": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/jspath/-/jspath-0.4.0.tgz", + "integrity": "sha512-2/R8wkot8NCXrppBT/onp+4mcAUAZqtPxsW6aSJU3hrFAVqKqtFYcat2XJZ7inN4RtATUxfv0UQSYOmvJKiIGA==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "node_modules/jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "dependencies": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "dependencies": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "dev": true + }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "node_modules/lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "node_modules/lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "node_modules/lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "node_modules/lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "node_modules/lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "node_modules/lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "node_modules/logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dev": true, + "dependencies": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/lokijs": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.12.tgz", + "integrity": "sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==", + "dev": true + }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.43", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", + "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", + "dev": true, + "dependencies": { + "moment": "^2.29.4" + }, + "engines": { + "node": "*" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/morgan/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/morgan/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/morgan/node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/multistream": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz", + "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.5" + } + }, + "node_modules/multistream/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/multistream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/multistream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/mysql2": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.6.2.tgz", + "integrity": "sha512-m5erE6bMoWfPXW1D5UrVwlT8PowAoSX69KcZzPuARQ3wY1RJ52NW9PdvdPo076XiSIkQ5IBTis7hxdlrQTlyug==", + "dev": true, + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/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==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "dev": true, + "engines": { + "node": ">=16.14" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dev": true, + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/nan": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "optional": true + }, + "node_modules/native-duplexpair": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/native-duplexpair/-/native-duplexpair-1.0.0.tgz", + "integrity": "sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, + "node_modules/node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dev": true, + "dependencies": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "bin": { + "nodemon": "bin/nodemon.js" + }, + "engines": { + "node": ">=8.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/nodemon" + } + }, + "node_modules/nodemon/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/nodemon/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.0.tgz", + "integrity": "sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dev": true, + "dependencies": { + "fn.name": "1.x.x" + } + }, + "node_modules/open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "dependencies": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/openssl-wrapper": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/openssl-wrapper/-/openssl-wrapper-0.3.4.tgz", + "integrity": "sha512-iITsrx6Ho8V3/2OVtmZzzX8wQaKAaFXEJQdzoPUZDtyf5jWFlqo+h+OhGT4TATQ47f9ACKHua8nw7Qoy85aeKQ==" + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "node_modules/pg-connection-string": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pidusage": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz", + "integrity": "sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==", + "dependencies": { + "safe-buffer": "^5.2.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/pino": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.16.0.tgz", + "integrity": "sha512-UUmvQ/7KTZt/vHjhRrnyS7h+J7qPBQnpG80V56xmIC+o9IqYmQOw/UIny9S9zYDfRBR0ClouCr464EkBMIT7Fw==", + "dependencies": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.1.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.7.0", + "thread-stream": "^2.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", + "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", + "dependencies": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/process-warning": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", + "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==" + }, + "node_modules/proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "dependencies": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "node_modules/pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "node_modules/punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "dependencies": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "dependencies": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/readable-stream": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "engines": { + "node": ">= 12.13.0" + } + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/restify": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/restify/-/restify-10.0.0.tgz", + "integrity": "sha512-J57tSX1EPGbqVBznQ619zyFMFQno750d3lDfocTiblcQd5FZhCLD26hcW/u7hrXWetltsxoPZv/86Jc9acKfaQ==", + "dependencies": { + "assert-plus": "^1.0.0", + "csv": "^6.2.2", + "escape-regexp-component": "^1.0.2", + "ewma": "^2.0.1", + "find-my-way": "^7.2.0", + "formidable": "^1.2.1", + "http-signature": "^1.3.6", + "lodash": "^4.17.11", + "lru-cache": "^7.14.1", + "mime": "^3.0.0", + "negotiator": "^0.6.2", + "once": "^1.4.0", + "pidusage": "^3.0.2", + "pino": "^8.7.0", + "qs": "^6.7.0", + "restify-errors": "^8.0.2", + "semver": "^7.3.8", + "send": "^0.18.0", + "spdy": "^4.0.0", + "uuid": "^9.0.0", + "vasync": "^2.2.0" + }, + "bin": { + "report-latency": "bin/report-latency" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "dtrace-provider": "~0.8" + } + }, + "node_modules/restify-errors": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-8.0.2.tgz", + "integrity": "sha512-UsXUVQo7M26xoQzeUcZQ0+H8L2t9DGzrXcAgR3WB/1vnbl+UdI4tZ1PqYsN+sS5WnqHKZ0Xy9w0CKf83bbrwYA==", + "dependencies": { + "@netflix/nerror": "^1.0.0", + "assert-plus": "^1.0.0", + "lodash": "^4.17.15" + }, + "optionalDependencies": { + "safe-json-stringify": "^1.0.4" + } + }, + "node_modules/restify/node_modules/uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==", + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/ret": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/retry-as-promised": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.0.4.tgz", + "integrity": "sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA==", + "dev": true + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rsa-pem-from-mod-exp": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/rsa-pem-from-mod-exp/-/rsa-pem-from-mod-exp-0.8.6.tgz", + "integrity": "sha512-c5ouQkOvGHF1qomUUDJGFcXsomeSO2gbEs6hVhMAtlkE1CuaZase/WzoaKFG/EZQuNmq6pw/EMCeEnDvOgCJYQ==" + }, + "node_modules/safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-array-concat/node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true + }, + "node_modules/safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", + "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", + "dependencies": { + "ret": "~0.2.0" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", + "engines": { + "node": ">=10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "node_modules/semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==", + "dev": true + }, + "node_modules/sequelize": { + "version": "6.33.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.33.0.tgz", + "integrity": "sha512-GkeCbqgaIcpyZ1EyXrDNIwktbfMldHAGOVXHGM4x8bxGSRAOql5htDWofPvwpfL/FoZ59CaFmfO3Mosv1lDbQw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/sequelize" + } + ], + "dependencies": { + "@types/debug": "^4.1.8", + "@types/validator": "^13.7.17", + "debug": "^4.3.4", + "dottie": "^2.0.6", + "inflection": "^1.13.4", + "lodash": "^4.17.21", + "moment": "^2.29.4", + "moment-timezone": "^0.5.43", + "pg-connection-string": "^2.6.1", + "retry-as-promised": "^7.0.4", + "semver": "^7.5.4", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.9.0", + "wkx": "^0.5.0" + }, + "engines": { + "node": ">=10.0.0" + }, + "peerDependenciesMeta": { + "ibm_db": { + "optional": true + }, + "mariadb": { + "optional": true + }, + "mysql2": { + "optional": true + }, + "oracledb": { + "optional": true + }, + "pg": { + "optional": true + }, + "pg-hstore": { + "optional": true + }, + "snowflake-sdk": { + "optional": true + }, + "sqlite3": { + "optional": true + }, + "tedious": { + "optional": true + } + } + }, + "node_modules/sequelize-pool": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "dependencies": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dev": true, + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "dependencies": { + "semver": "~7.0.0" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/simple-update-notifier/node_modules/semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/sonic-boom": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz", + "integrity": "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "engines": { + "node": ">= 10.x" + } + }, + "node_modules/sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==", + "engines": { + "node": ">=4", + "npm": ">=6" + } + }, + "node_modules/stream-transform": { + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-3.2.10.tgz", + "integrity": "sha512-Yu+x7zcWbWdyB0Td8dFzHt2JEyD6694CNq2lqh1rbuEBVxPtjb/GZ7xDnZcdYiU5E/RtufM54ClSEOzZDeWguA==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/tedious": { + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/tedious/-/tedious-16.4.1.tgz", + "integrity": "sha512-WwRkGs7N5jFiHhD7uyLHnZ9rCmOfYytEHZhE/vyU56mxzFB3+xHd4WV+DssLwuc1piJqDI54vHDi6SRACOGu8g==", + "dev": true, + "dependencies": { + "@azure/identity": "^2.0.4", + "@azure/keyvault-keys": "^4.4.0", + "@js-joda/core": "^5.5.3", + "bl": "^6.0.3", + "es-aggregate-error": "^1.0.9", + "iconv-lite": "^0.6.3", + "js-md4": "^0.3.2", + "jsbi": "^4.3.0", + "native-duplexpair": "^1.0.0", + "node-abort-controller": "^3.1.1", + "punycode": "^2.3.0", + "sprintf-js": "^1.1.2" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/tedious/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==", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "dev": true + }, + "node_modules/thread-stream": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", + "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", + "dependencies": { + "real-require": "^0.2.0" + } + }, + "node_modules/to-readable-stream": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", + "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==", + "dev": true + }, + "node_modules/touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "dependencies": { + "nopt": "~1.0.10" + }, + "bin": { + "nodetouch": "bin/nodetouch.js" + } + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "dev": true, + "engines": { + "node": ">= 14.0.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "node_modules/tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "engines": { + "node": ">=0.6.11 <=0.7.0 || >=0.7.3" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/uri-templates": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/uri-templates/-/uri-templates-0.2.0.tgz", + "integrity": "sha512-EWkjYEN0L6KOfEoOH6Wj4ghQqU7eBZMJqRHQnxQAq+dSEzRPClkWjf8557HkWQXF6BrAUoLSAyy9i3RVTliaNg==", + "dev": true + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "node_modules/validator": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vasync": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz", + "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "verror": "1.10.0" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/winston": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", + "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", + "dev": true, + "dependencies": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", + "dev": true, + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 12.0.0" + } + }, + "node_modules/winston-transport/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/winston/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/winston/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "dependencies": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/xpath": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", + "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==", + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==", + "funding": { + "url": "https://github.com/sponsors/colinhacks" + } + } + }, + "dependencies": { + "@azure/abort-controller": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@azure/abort-controller/-/abort-controller-1.1.0.tgz", + "integrity": "sha512-TrRLIoSQVzfAJX9H1JeFjzAoDGcoK1IYX1UImfceTZpsyYfWr09Ss1aHW1y5TrrR3iq6RZLBwJ3E24uwPhwahw==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@azure/core-auth": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-auth/-/core-auth-1.5.0.tgz", + "integrity": "sha512-udzoBuYG1VBoHVohDTrvKjyzel34zt77Bhp7dQntVGGD0ehVq48owENbBG8fIgkHRNUBQH5k1r0hpoMu5L8+kw==", + "requires": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-util": "^1.1.0", + "tslib": "^2.2.0" + } + }, + "@azure/core-client": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@azure/core-client/-/core-client-1.7.3.tgz", + "integrity": "sha512-kleJ1iUTxcO32Y06dH9Pfi9K4U+Tlb111WXEnbt7R/ne+NLRwppZiTGJuTD5VVoxTMK5NTbEtm5t2vcdNCFe2g==", + "requires": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-rest-pipeline": "^1.9.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + } + }, + "@azure/core-http": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/@azure/core-http/-/core-http-3.0.4.tgz", + "integrity": "sha512-Fok9VVhMdxAFOtqiiAtg74fL0UJkt0z3D+ouUUxcRLzZNBioPRAMJFVxiWoJljYpXsRi4GDQHzQHDc9AiYaIUQ==", + "requires": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-tracing": "1.0.0-preview.13", + "@azure/core-util": "^1.1.1", + "@azure/logger": "^1.0.0", + "@types/node-fetch": "^2.5.0", + "@types/tunnel": "^0.0.3", + "form-data": "^4.0.0", + "node-fetch": "^2.6.7", + "process": "^0.11.10", + "tslib": "^2.2.0", + "tunnel": "^0.0.6", + "uuid": "^8.3.0", + "xml2js": "^0.5.0" + }, + "dependencies": { + "@azure/core-tracing": { + "version": "1.0.0-preview.13", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.0-preview.13.tgz", + "integrity": "sha512-KxDlhXyMlh2Jhj2ykX6vNEU0Vou4nHr025KoSEiz7cS3BNiHNaZcdECk/DmLkEB0as5T7b/TpRcehJ5yV6NeXQ==", + "requires": { + "@opentelemetry/api": "^1.0.1", + "tslib": "^2.2.0" + } + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@azure/core-http-compat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@azure/core-http-compat/-/core-http-compat-1.3.0.tgz", + "integrity": "sha512-ZN9avruqbQ5TxopzG3ih3KRy52n8OAbitX3fnZT5go4hzu0J+KVPSzkL+Wt3hpJpdG8WIfg1sBD1tWkgUdEpBA==", + "dev": true, + "requires": { + "@azure/abort-controller": "^1.0.4", + "@azure/core-client": "^1.3.0", + "@azure/core-rest-pipeline": "^1.3.0" + } + }, + "@azure/core-lro": { + "version": "2.5.4", + "resolved": "https://registry.npmjs.org/@azure/core-lro/-/core-lro-2.5.4.tgz", + "integrity": "sha512-3GJiMVH7/10bulzOKGrrLeG/uCBH/9VtxqaMcB9lIqAeamI/xYQSHJL/KcsLDuH+yTjYpro/u6D/MuRe4dN70Q==", + "dev": true, + "requires": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-util": "^1.2.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + } + }, + "@azure/core-paging": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-paging/-/core-paging-1.5.0.tgz", + "integrity": "sha512-zqWdVIt+2Z+3wqxEOGzR5hXFZ8MGKK52x4vFLw8n58pR6ZfKRx3EXYTxTaYxYHc/PexPUTyimcTWFJbji9Z6Iw==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@azure/core-rest-pipeline": { + "version": "1.12.1", + "resolved": "https://registry.npmjs.org/@azure/core-rest-pipeline/-/core-rest-pipeline-1.12.1.tgz", + "integrity": "sha512-SsyWQ+T5MFQRX+M8H/66AlaI6HyCbQStGfFngx2fuiW+vKI2DkhtOvbYodPyf9fOe/ARLWWc3ohX54lQ5Kmaog==", + "requires": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.4.0", + "@azure/core-tracing": "^1.0.1", + "@azure/core-util": "^1.3.0", + "@azure/logger": "^1.0.0", + "form-data": "^4.0.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "tslib": "^2.2.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@azure/core-tracing": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@azure/core-tracing/-/core-tracing-1.0.1.tgz", + "integrity": "sha512-I5CGMoLtX+pI17ZdiFJZgxMJApsK6jjfm85hpgp3oazCdq5Wxgh4wMr7ge/TTWW1B5WBuvIOI1fMU/FrOAMKrw==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@azure/core-util": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@azure/core-util/-/core-util-1.5.0.tgz", + "integrity": "sha512-GZBpVFDtQ/15hW1OgBcRdT4Bl7AEpcEZqLfbAvOtm1CQUncKWiYapFHVD588hmlV27NbOOtSm3cnLF3lvoHi4g==", + "requires": { + "@azure/abort-controller": "^1.0.0", + "tslib": "^2.2.0" + } + }, + "@azure/core-xml": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.3.4.tgz", + "integrity": "sha512-B1xI79Ur/u+KR69fGTcsMNj8KDjBSqAy0Ys6Byy4Qm1CqoUy7gCT5A7Pej0EBWRskuH6bpCwrAnosfmQEalkcg==", + "requires": { + "fast-xml-parser": "^4.2.4", + "tslib": "^2.2.0" + } + }, + "@azure/data-tables": { + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/@azure/data-tables/-/data-tables-13.2.2.tgz", + "integrity": "sha512-Dq2Aq0mMMF0BPzYQKdBY/OtO7VemP/foh6z+mJpUO1hRL+65C1rGQUJf20LJHotSyU8wHb4HJzOs+Z50GXSy1w==", + "requires": { + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.0.0", + "@azure/core-paging": "^1.1.1", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-xml": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0", + "uuid": "^8.3.0" + } + }, + "@azure/identity": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@azure/identity/-/identity-2.1.0.tgz", + "integrity": "sha512-BPDz1sK7Ul9t0l9YKLEa8PHqWU4iCfhGJ+ELJl6c8CP3TpJt2urNCbm0ZHsthmxRsYoMPbz2Dvzj30zXZVmAFw==", + "requires": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.4.0", + "@azure/core-rest-pipeline": "^1.1.0", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "@azure/msal-browser": "^2.26.0", + "@azure/msal-common": "^7.0.0", + "@azure/msal-node": "^1.10.0", + "events": "^3.0.0", + "jws": "^4.0.0", + "open": "^8.0.0", + "stoppable": "^1.1.0", + "tslib": "^2.2.0", + "uuid": "^8.3.0" + } + }, + "@azure/keyvault-keys": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/@azure/keyvault-keys/-/keyvault-keys-4.7.2.tgz", + "integrity": "sha512-VdIH6PjbQ3J5ntK+xeI8eOe1WsDxF9ndXw8BPR/9MZVnIj0vQNtNCS6gpR7EFQeGcs8XjzMfHm0AvKGErobqJQ==", + "dev": true, + "requires": { + "@azure/abort-controller": "^1.0.0", + "@azure/core-auth": "^1.3.0", + "@azure/core-client": "^1.5.0", + "@azure/core-http-compat": "^1.3.0", + "@azure/core-lro": "^2.2.0", + "@azure/core-paging": "^1.1.1", + "@azure/core-rest-pipeline": "^1.8.1", + "@azure/core-tracing": "^1.0.0", + "@azure/core-util": "^1.0.0", + "@azure/logger": "^1.0.0", + "tslib": "^2.2.0" + } + }, + "@azure/logger": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@azure/logger/-/logger-1.0.4.tgz", + "integrity": "sha512-ustrPY8MryhloQj7OWGe+HrYx+aoiOxzbXTtgblbV3xwCqpzUK36phH3XNHQKj3EPonyFUuDTfR3qFhTEAuZEg==", + "requires": { + "tslib": "^2.2.0" + } + }, + "@azure/msal-browser": { + "version": "2.38.2", + "resolved": "https://registry.npmjs.org/@azure/msal-browser/-/msal-browser-2.38.2.tgz", + "integrity": "sha512-71BeIn2we6LIgMplwCSaMq5zAwmalyJR3jFcVOZxNVfQ1saBRwOD+P77nLs5vrRCedVKTq8RMFhIOdpMLNno0A==", + "requires": { + "@azure/msal-common": "13.3.0" + }, + "dependencies": { + "@azure/msal-common": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.3.0.tgz", + "integrity": "sha512-/VFWTicjcJbrGp3yQP7A24xU95NiDMe23vxIU1U6qdRPFsprMDNUohMudclnd+WSHE4/McqkZs/nUU3sAKkVjg==" + } + } + }, + "@azure/msal-common": { + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-7.6.0.tgz", + "integrity": "sha512-XqfbglUTVLdkHQ8F9UQJtKseRr3sSnr9ysboxtoswvaMVaEfvyLtMoHv9XdKUfOc0qKGzNgRFd9yRjIWVepl6Q==" + }, + "@azure/msal-node": { + "version": "1.18.4", + "resolved": "https://registry.npmjs.org/@azure/msal-node/-/msal-node-1.18.4.tgz", + "integrity": "sha512-Kc/dRvhZ9Q4+1FSfsTFDME/v6+R2Y1fuMty/TfwqE5p9GTPw08BPbKgeWinE8JRHRp+LemjQbUZsn4Q4l6Lszg==", + "requires": { + "@azure/msal-common": "13.3.1", + "jsonwebtoken": "^9.0.0", + "uuid": "^8.3.0" + }, + "dependencies": { + "@azure/msal-common": { + "version": "13.3.1", + "resolved": "https://registry.npmjs.org/@azure/msal-common/-/msal-common-13.3.1.tgz", + "integrity": "sha512-Lrk1ozoAtaP/cp53May3v6HtcFSVxdFrg2Pa/1xu5oIvsIwhxW6zSPibKefCOVgd5osgykMi5jjcZHv8XkzZEQ==" + } + } + }, + "@colors/colors": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@dabh/diagnostics": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", + "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "dev": true, + "requires": { + "colorspace": "1.1.x", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "dev": true + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dev": true, + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@js-joda/core": { + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@js-joda/core/-/core-5.6.1.tgz", + "integrity": "sha512-Xla/d7ZMMR6+zRd6lTio0wRZECfcfFJP7GGe9A9L4tDOlD5CX4YcZ4YZle9w58bBYzssojVapI84RraKWDQZRg==", + "dev": true + }, + "@microsoft/adaptivecards-tools": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@microsoft/adaptivecards-tools/-/adaptivecards-tools-1.3.3.tgz", + "integrity": "sha512-LPQFvY49uMPHdgg87Cw35Q4ZnoDgV3ow0VI9ztLFRr0n7TldifTMRXQ98G5C3SlOOqxRszu0lYna19sQSbCgFA==", + "requires": { + "adaptive-expressions": "^4.20.0", + "adaptivecards": "~2.10.0", + "adaptivecards-templating": "^2.1.0", + "markdown-it": "^12.3.2", + "react": "^17.0.2" + }, + "dependencies": { + "adaptivecards": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-2.10.0.tgz", + "integrity": "sha512-QcgXGFlX3rgIfZkxvQY896zEVBh30mE37z3XKhcQW2OqSUrVH6dNT78MkM//W4wRdrZizSHqXKLaKyVVxAgVFg==" + } + } + }, + "@microsoft/recognizers-text-data-types-timex-expression": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@microsoft/recognizers-text-data-types-timex-expression/-/recognizers-text-data-types-timex-expression-1.3.0.tgz", + "integrity": "sha512-REHUXmMUI1jL3b9v+aSdzKxLxRdejsfg9McYRxY3LW0Gu4UbwD7Q+K6mtSo40cwg8uh6fiV9GY8hDuKXHH6dVA==" + }, + "@netflix/nerror": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz", + "integrity": "sha512-b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==", + "requires": { + "assert-plus": "^1.0.0", + "extsprintf": "^1.4.0", + "lodash": "^4.17.15" + }, + "dependencies": { + "extsprintf": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", + "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==" + } + } + }, + "@opentelemetry/api": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.8.0.tgz", + "integrity": "sha512-I/s6F7yKUDdtMsoBWXJe8Qz40Tui5vsuKCWJEWVL+5q9sSWRzzx6v2KeNsOBEwd94j0eWkpWCH4yB6rZg9Mf0w==" + }, + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==" + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", + "dev": true + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", + "dev": true + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", + "dev": true + }, + "@tsconfig/node16": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", + "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", + "dev": true + }, + "@types/atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha512-7bjymPR7Ffa1/L3HskkaxMgTQDtwFObbISzHm9g3T12VyD89IiHS3BBVojlQHyZRiIilzdh0WT1gwwgyyBtLGQ==" + }, + "@types/btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@types/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg==" + }, + "@types/bunyan": { + "version": "1.8.9", + "resolved": "https://registry.npmjs.org/@types/bunyan/-/bunyan-1.8.9.tgz", + "integrity": "sha512-ZqS9JGpBxVOvsawzmVt30sP++gSQMTejCkIAQ3VdadOcRE8izTyW66hufvwLeH+YEGP6Js2AW7Gz+RMyvrEbmw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/debug": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz", + "integrity": "sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==", + "dev": true, + "requires": { + "@types/ms": "*" + } + }, + "@types/formidable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@types/formidable/-/formidable-1.2.6.tgz", + "integrity": "sha512-9xwITWH5ok4MrALa7qnUd3McKrvEn5iUZM5/m0AJjOo/sMPUISzuBK/qAHHMV9t5ShjG4fjr0VEm8J+szAKDWA==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/lodash": { + "version": "4.14.199", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.199.tgz", + "integrity": "sha512-Vrjz5N5Ia4SEzWWgIVwnHNEnb1UE1XMkvY5DGXrAeOGE9imk0hgTHh5GyDjLDJi9OTCn9oo9dXH1uToK1VRfrg==" + }, + "@types/lodash.isequal": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/@types/lodash.isequal/-/lodash.isequal-4.5.6.tgz", + "integrity": "sha512-Ww4UGSe3DmtvLLJm2F16hDwEQSv7U0Rr8SujLUA2wHI2D2dm8kPu6Et+/y303LfjTIwSBKXB/YTUcAKpem/XEg==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==" + }, + "@types/ms": { + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz", + "integrity": "sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==", + "dev": true + }, + "@types/node": { + "version": "16.18.58", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.58.tgz", + "integrity": "sha512-YGncyA25/MaVtQkjWW9r0EFBukZ+JulsLcVZBlGUfIb96OBMjkoRWwQo5IEWJ8Fj06Go3GHw+bjYDitv6BaGsA==" + }, + "@types/node-fetch": { + "version": "2.6.11", + "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.11.tgz", + "integrity": "sha512-24xFj9R5+rfQJLRyM56qh+wnVSYhyXC2tkoBndtY0U+vubqNsYXGjufB2nn8Q6gt0LrARwL6UBtMCSVCwl4B1g==", + "requires": { + "@types/node": "*", + "form-data": "^4.0.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "@types/restify": { + "version": "8.5.8", + "resolved": "https://registry.npmjs.org/@types/restify/-/restify-8.5.8.tgz", + "integrity": "sha512-IIRXJ1TCcLQ8yeSgAK13xtyzxCgUn3zFKbp7ubmhE+J6zVa9j6fK0G7vi5zYGYqJX24yzqujnlg5Icw9YO6Hjg==", + "dev": true, + "requires": { + "@types/bunyan": "*", + "@types/formidable": "^1", + "@types/node": "*", + "@types/spdy": "*" + } + }, + "@types/spdy": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/@types/spdy/-/spdy-3.4.6.tgz", + "integrity": "sha512-1WacgtGIz6wBeipqFerJMqMGjPFNDrjneBaUy1Vco/kFyLYon1CaaUgILfsdq/i6LJTSNM58/aUBTgdt9TUN6A==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@types/triple-beam": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.3.tgz", + "integrity": "sha512-6tOUG+nVHn0cJbVp25JFayS5UE6+xlbcNF9Lo9mU7U0zk3zeUShZied4YEQZjy1JBF043FSkdXw8YkUJuVtB5g==", + "dev": true + }, + "@types/tunnel": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/@types/tunnel/-/tunnel-0.0.3.tgz", + "integrity": "sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==", + "requires": { + "@types/node": "*" + } + }, + "@types/validator": { + "version": "13.11.3", + "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.3.tgz", + "integrity": "sha512-jxjhh33aTYDHnrV1vZ3AvWQHfrGx2f5UxKjaP13l5q04fG+/hCKKm0MfodIoCqxevhbcfBb6ZjynyHuQ/jueGQ==", + "dev": true + }, + "@types/ws": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-6.0.4.tgz", + "integrity": "sha512-PpPrX7SZW9re6+Ha8ojZG4Se8AZXgf0GK6zmfqEuCsY49LFDNXO3SByp44X3dFEqtB73lkCDAdUazhAjVPiNwg==", + "requires": { + "@types/node": "*" + } + }, + "@types/xmldom": { + "version": "0.1.32", + "resolved": "https://registry.npmjs.org/@types/xmldom/-/xmldom-0.1.32.tgz", + "integrity": "sha512-zPO1iqnODar0cIXhuCc0QyGP+t2IG9dr//VkxDtYKZJSikgN7bdLyMdnUNWRtCKeHkgc9KkbgsdccVbrCHCn2g==" + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "requires": { + "event-target-shim": "^5.0.0" + } + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "acorn": { + "version": "8.10.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", + "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", + "dev": true + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "adaptive-expressions": { + "version": "4.21.0", + "resolved": "https://registry.npmjs.org/adaptive-expressions/-/adaptive-expressions-4.21.0.tgz", + "integrity": "sha512-+nE/F1x49yI5WdkpPLclczn7Nig1lXecT9y8OWV8XVljn+49wTKkAwZ/zNOEIH6HjDod2ezQYOsqf1R3nBc44g==", + "requires": { + "@microsoft/recognizers-text-data-types-timex-expression": "1.3.0", + "@types/atob-lite": "^2.0.0", + "@types/btoa-lite": "^1.0.0", + "@types/lodash.isequal": "^4.5.5", + "@types/lru-cache": "^5.1.0", + "@types/xmldom": "^0.1.30", + "@xmldom/xmldom": "^0.8.6", + "antlr4ts": "0.5.0-alpha.3", + "atob-lite": "^2.0.0", + "big-integer": "^1.6.48", + "btoa-lite": "^1.0.0", + "d3-format": "^1.4.4", + "dayjs": "^1.10.3", + "fast-xml-parser": "^4.2.5", + "jspath": "^0.4.0", + "lodash.isequal": "^4.5.0", + "lru-cache": "^5.1.1", + "uuid": "^8.3.2", + "xpath": "^0.0.32" + }, + "dependencies": { + "@xmldom/xmldom": { + "version": "0.8.10", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", + "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "requires": { + "yallist": "^3.0.2" + } + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + } + } + }, + "adaptivecards": { + "version": "2.11.1", + "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-2.11.1.tgz", + "integrity": "sha512-dyF23HK+lRMEreexJgHz4y9U5B0ZuGk66N8nhwXRnICyYjq8hE4A6n8rLoV/CNY2QAZ0iRjOIR2J8U7M1CKl8Q==" + }, + "adaptivecards-templating": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/adaptivecards-templating/-/adaptivecards-templating-2.3.1.tgz", + "integrity": "sha512-rYN1tCb+4NeWUCbo7xzGhwuOG3XllpGWCtgdl/drSJA32tljAvDrMeBO/eUk7uwXx8/1hSc5WJvzbAZQWMd35Q==", + "requires": {} + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "requires": { + "debug": "4" + } + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "antlr4ts": { + "version": "0.5.0-alpha.3", + "resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.3.tgz", + "integrity": "sha512-La89tKkGcHFIVuruv4Bm1esc3zLmES2NOTEwwNS1pudz+zx/0FNqQeUu9p48i9/QHKPVqjN87LB+q3buTg7oDQ==" + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", + "dev": true + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "args": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz", + "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==", + "dev": true, + "requires": { + "camelcase": "5.0.0", + "chalk": "2.4.2", + "leven": "2.1.0", + "mri": "1.1.4" + } + }, + "array-buffer-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", + "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "is-array-buffer": "^3.0.1" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", + "dev": true + }, + "arraybuffer.prototype.slice": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", + "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "get-intrinsic": "^1.2.1", + "is-array-buffer": "^3.0.2", + "is-shared-array-buffer": "^1.0.2" + } + }, + "asn1": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz", + "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==", + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "atob-lite": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz", + "integrity": "sha512-LEeSAWeh2Gfa2FtlQE1shxQ8zi5F9GHarrGKz08TMdODD5T4eH6BMsvtnhbWZ+XQn+Gb6om/917ucvRu7l7ukw==" + }, + "atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==" + }, + "available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true + }, + "axios": { + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.28.1.tgz", + "integrity": "sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "azurite": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/azurite/-/azurite-3.29.0.tgz", + "integrity": "sha512-gzl8+LqereINQ45BuED4DNq9w3ipw0DCYAkGz8xwOFAlwjWey6C3JpolaIjrYNeX4r52bRCt53tPQ2fVCaNcYA==", + "dev": true, + "requires": { + "@azure/ms-rest-js": "^1.5.0", + "args": "^5.0.1", + "axios": "^0.27.0", + "etag": "^1.8.1", + "express": "^4.16.4", + "fs-extra": "^11.1.1", + "glob-to-regexp": "^0.4.1", + "jsonwebtoken": "^9.0.0", + "lokijs": "^1.5.6", + "morgan": "^1.9.1", + "multistream": "^2.1.1", + "mysql2": "^3.2.0", + "rimraf": "^3.0.2", + "sequelize": "^6.31.0", + "stoppable": "^1.1.0", + "tedious": "^16.0.0", + "to-readable-stream": "^2.1.0", + "tslib": "^2.3.0", + "uri-templates": "^0.2.0", + "uuid": "^3.3.2", + "winston": "^3.1.0", + "xml2js": "^0.6.0" + }, + "dependencies": { + "@azure/ms-rest-js": { + "version": "1.11.2", + "resolved": "https://registry.npmjs.org/@azure/ms-rest-js/-/ms-rest-js-1.11.2.tgz", + "integrity": "sha512-2AyQ1IKmLGKW7DU3/x3TsTBzZLcbC9YRI+yuDPuXAQrv3zar340K9wsxU413kHFIDjkWNCo9T0w5VtwcyWxhbQ==", + "dev": true, + "requires": { + "@azure/core-auth": "^1.1.4", + "axios": "^0.21.1", + "form-data": "^2.3.2", + "tough-cookie": "^2.4.3", + "tslib": "^1.9.2", + "tunnel": "0.0.6", + "uuid": "^3.2.1", + "xml2js": "^0.4.19" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.0" + } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + } + } + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dev": true, + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + }, + "dependencies": { + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + } + } + }, + "fs-extra": { + "version": "11.1.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz", + "integrity": "sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "xml2js": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.6.2.tgz", + "integrity": "sha512-T4rieHaC1EXcES0Kxxj4JWgaUQHDk+qwHcYOCFHfiwKz7tOVPLq7Hjq9dM1WCMhylqMEfP7hMcOIChvotiZegA==", + "dev": true, + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + } + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "base64url": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz", + "integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==" + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + } + } + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==", + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "big-integer": { + "version": "1.6.51", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.51.tgz", + "integrity": "sha512-GPEid2Y9QU1Exl1rpO9B2IPJGHPSupF5GnVIP0blYvNOMer2bTvSWs1jGOUg04hTmu67nmLsQ9TBo1puaotBHg==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bl": { + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.7.tgz", + "integrity": "sha512-9FNh0IvlWSU5C9BCDhw0IovmhuqevzBX1AME7BdFHNDMfOju4NmwRWoBrfz5Srs+JNBhxfjrPLxZSnDotgSs9A==", + "dev": true, + "requires": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^4.2.0" + } + }, + "body-parser": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", + "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.11.0", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "botbuilder": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botbuilder/-/botbuilder-4.22.2.tgz", + "integrity": "sha512-pfMbpN5nKyDNMKZZl4palWET+Q7oNHLYLSEyBie5sA4xJ1Gbzn7DT0T1QykATsr9O9s13mojJRyqnNYRflH0rw==", + "requires": { + "@azure/core-http": "^3.0.2", + "@azure/msal-node": "^1.18.4", + "axios": "^0.28.0", + "botbuilder-core": "4.22.2", + "botbuilder-stdlib": "4.22.2-internal", + "botframework-connector": "4.22.2", + "botframework-schema": "4.22.2", + "botframework-streaming": "4.22.2", + "dayjs": "^1.10.3", + "filenamify": "^4.1.0", + "fs-extra": "^7.0.1", + "htmlparser2": "^6.0.1", + "uuid": "^8.3.2", + "zod": "^3.22.4" + } + }, + "botbuilder-core": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botbuilder-core/-/botbuilder-core-4.22.2.tgz", + "integrity": "sha512-3qzdiq0V51mrKzEZzle6TSAcX/XfiKyxyKQfStV8C4ivmYFC1RDAv2MVvvg2U4hcLvcp1MHqnDBlQJq/bwrT2w==", + "requires": { + "botbuilder-dialogs-adaptive-runtime-core": "4.22.2-preview", + "botbuilder-stdlib": "4.22.2-internal", + "botframework-connector": "4.22.2", + "botframework-schema": "4.22.2", + "uuid": "^8.3.2", + "zod": "^3.22.4" + } + }, + "botbuilder-dialogs-adaptive-runtime-core": { + "version": "4.22.2-preview", + "resolved": "https://registry.npmjs.org/botbuilder-dialogs-adaptive-runtime-core/-/botbuilder-dialogs-adaptive-runtime-core-4.22.2-preview.tgz", + "integrity": "sha512-eMUkwu2dmf7r+tA1jPp4lP3XD2mVHGv1oRRcqkkWV/4B3xS9vnGpMywKL1xYVwm88eyZA64QGQFlxi6GOtpPaA==", + "requires": { + "dependency-graph": "^0.10.0" + } + }, + "botbuilder-stdlib": { + "version": "4.22.2-internal", + "resolved": "https://registry.npmjs.org/botbuilder-stdlib/-/botbuilder-stdlib-4.22.2-internal.tgz", + "integrity": "sha512-ny6rFD/KM63XtiIITrYdwM+1qh9A5m83bf9E8O0cTrFQjvHLP+zHAHslbl1/Wpv7j6nEnAoLUJB6IVBEkb53Kw==" + }, + "botframework-connector": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botframework-connector/-/botframework-connector-4.22.2.tgz", + "integrity": "sha512-V6mRsQPthhlKHxNw73fW7ZcfM0AlOXlTR6u49O+5+PQ8fDwLbNNswN4AyUpSp+JFW9facR407dd2vNbUoKYOcA==", + "requires": { + "@azure/core-http": "^3.0.2", + "@azure/identity": "^2.0.4", + "@azure/msal-node": "^1.18.4", + "base64url": "^3.0.0", + "botbuilder-stdlib": "4.22.2-internal", + "botframework-schema": "4.22.2", + "cross-fetch": "^3.0.5", + "https-proxy-agent": "^7.0.2", + "jsonwebtoken": "^9.0.0", + "node-fetch": "^2.6.7", + "openssl-wrapper": "^0.3.4", + "rsa-pem-from-mod-exp": "^0.8.4", + "zod": "^3.22.4" + }, + "dependencies": { + "agent-base": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.1.tgz", + "integrity": "sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==", + "requires": { + "debug": "^4.3.4" + } + }, + "https-proxy-agent": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.4.tgz", + "integrity": "sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==", + "requires": { + "agent-base": "^7.0.2", + "debug": "4" + } + } + } + }, + "botframework-schema": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botframework-schema/-/botframework-schema-4.22.2.tgz", + "integrity": "sha512-D2SauTdimpfN6TRfDS94GYrRGn/dpTq/n24yAR1cQ9GcV8qq1MydxCYyVbsgzdlkNOFSRJHYJMAp85VKUoYUGg==", + "requires": { + "adaptivecards": "1.2.3", + "uuid": "^8.3.2", + "zod": "^3.22.4" + }, + "dependencies": { + "adaptivecards": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/adaptivecards/-/adaptivecards-1.2.3.tgz", + "integrity": "sha512-amQ5OSW3OpIkrxVKLjxVBPk/T49yuOtnqs1z5ZPfZr0+OpTovzmiHbyoAGDIsu5SNYHwOZFp/3LGOnRaALFa/g==" + } + } + }, + "botframework-streaming": { + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/botframework-streaming/-/botframework-streaming-4.22.2.tgz", + "integrity": "sha512-xsozFqv3B65jPQnmPa1r7Cq/OMXe1iod+MmcwiVs4oa8Th8YQ1m38+eyUPIm8vCMfeNeULm8EOvYiC9XC8P1NA==", + "requires": { + "@types/node": "^10.17.27", + "@types/ws": "^6.0.3", + "uuid": "^8.3.2", + "ws": "^7.1.2" + }, + "dependencies": { + "@types/node": { + "version": "10.17.60", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.60.tgz", + "integrity": "sha512-F0KIgDJfy2nA3zMLmWGKxcH2ZVEtCZXHHdOQs2gSaQ27+lNeEfGxzkIw90aXswATX7AZ33tahPbzy6KAfUreVw==" + } + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "btoa-lite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", + "integrity": "sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==" + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-equal-constant-time": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", + "integrity": "sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==" + }, + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, + "camelcase": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", + "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "color": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", + "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "dev": true, + "requires": { + "color-convert": "^1.9.3", + "color-string": "^1.6.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorspace": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", + "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", + "dev": true, + "requires": { + "color": "^3.1.3", + "text-hex": "1.0.x" + } + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", + "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", + "dev": true, + "requires": { + "safe-buffer": "5.2.1" + } + }, + "content-type": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", + "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", + "dev": true + }, + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "dev": true + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==" + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "cross-fetch": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.8.tgz", + "integrity": "sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==", + "requires": { + "node-fetch": "^2.6.12" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "csv": { + "version": "6.3.5", + "resolved": "https://registry.npmjs.org/csv/-/csv-6.3.5.tgz", + "integrity": "sha512-Y+KTCAUljtq2JaGP42ZL1bymqlU5BkfnFpZhxRczGFDZox2VXhlRHnG5DRshyUrwQzmCdEiLjSqNldCfm1OVCA==", + "requires": { + "csv-generate": "^4.3.0", + "csv-parse": "^5.5.2", + "csv-stringify": "^6.4.4", + "stream-transform": "^3.2.10" + } + }, + "csv-generate": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/csv-generate/-/csv-generate-4.3.0.tgz", + "integrity": "sha512-7KdVId/2RgwPIKfWHaHtjBq7I9mgdi8ICzsUyIhP8is6UwpwVGGSC/aPnrZ8/SkgBcCP20lXrdPuP64Irs1VBg==" + }, + "csv-parse": { + "version": "5.5.2", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-5.5.2.tgz", + "integrity": "sha512-YRVtvdtUNXZCMyK5zd5Wty1W6dNTpGKdqQd4EQ8tl/c6KW1aMBB1Kg1ppky5FONKmEqGJ/8WjLlTNLPne4ioVA==" + }, + "csv-stringify": { + "version": "6.4.4", + "resolved": "https://registry.npmjs.org/csv-stringify/-/csv-stringify-6.4.4.tgz", + "integrity": "sha512-NDshLupGa7gp4UG4sSNIqwYJqgSwvds0SvENntxoVoVvTzXcrHvd5gG2MWpbRpSNvk59dlmIe1IwNvSxN4IVmg==" + }, + "d3-format": { + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-1.4.5.tgz", + "integrity": "sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "dayjs": { + "version": "1.11.10", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz", + "integrity": "sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + } + }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, + "define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "dev": true + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "dependency-graph": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.10.0.tgz", + "integrity": "sha512-c9amUgpgxSi1bE5/sbLwcs5diLD0ygCQYmhfM5H1s5VH1mCsYkcmAL3CcNdv4kdSw6JuMoHeDGzLgj/gAXdWVg==" + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" + }, + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true + }, + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" + } + }, + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==" + }, + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", + "requires": { + "domelementtype": "^2.2.0" + } + }, + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", + "requires": { + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" + } + }, + "dottie": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/dottie/-/dottie-2.0.6.tgz", + "integrity": "sha512-iGCHkfUc5kFekGiqhe8B/mdaurD+lakO9txNnTvKtA6PISrw86LgqHvRzWYPyoE2Ph5aMIrCw9/uko6XHTKCwA==", + "dev": true + }, + "dtrace-provider": { + "version": "0.8.8", + "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz", + "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==", + "optional": true, + "requires": { + "nan": "^2.14.0" + } + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==", + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "ecdsa-sig-formatter": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", + "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" + }, + "enabled": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" + }, + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==" + }, + "env-cmd": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/env-cmd/-/env-cmd-10.1.0.tgz", + "integrity": "sha512-mMdWTT9XKN7yNth/6N6g2GuKuJTsKMDHlQFUDacb/heQRRWOTIZ42t1rMHnQu4jYxU1ajdTeJM+9eEETlqToMA==", + "dev": true, + "requires": { + "commander": "^4.0.0", + "cross-spawn": "^7.0.0" + } + }, + "es-abstract": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz", + "integrity": "sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA==", + "dev": true, + "requires": { + "array-buffer-byte-length": "^1.0.0", + "arraybuffer.prototype.slice": "^1.0.2", + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "es-set-tostringtag": "^2.0.1", + "es-to-primitive": "^1.2.1", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.1", + "get-symbol-description": "^1.0.0", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.5", + "is-array-buffer": "^3.0.2", + "is-callable": "^1.2.7", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-typed-array": "^1.1.12", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.3", + "object-keys": "^1.1.1", + "object.assign": "^4.1.4", + "regexp.prototype.flags": "^1.5.1", + "safe-array-concat": "^1.0.1", + "safe-regex-test": "^1.0.0", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.0", + "typed-array-byte-length": "^1.0.0", + "typed-array-byte-offset": "^1.0.0", + "typed-array-length": "^1.0.4", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.11" + } + }, + "es-aggregate-error": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/es-aggregate-error/-/es-aggregate-error-1.0.11.tgz", + "integrity": "sha512-DCiZiNlMlbvofET/cE55My387NiLvuGToBEZDdK9U2G3svDCjL8WOgO5Il6lO83nQ8qmag/R9nArdpaFQ/m3lA==", + "dev": true, + "requires": { + "define-data-property": "^1.1.0", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.1", + "function-bind": "^1.1.1", + "get-intrinsic": "^1.2.1", + "globalthis": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "set-function-name": "^2.0.1" + } + }, + "es-set-tostringtag": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz", + "integrity": "sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3", + "has": "^1.0.3", + "has-tostringtag": "^1.0.0" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" + }, + "escape-regexp-component": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-regexp-component/-/escape-regexp-component-1.0.2.tgz", + "integrity": "sha512-B0yxafj1D1ZTNEHkFoQxz4iboZSfaZHhaNhIug7GcUCL4ZUrVSJZTmWUAkPOFaYDfi3RNT9XM082TuGE6jpmiQ==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" + }, + "event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "ewma": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ewma/-/ewma-2.0.1.tgz", + "integrity": "sha512-MYYK17A76cuuyvkR7MnqLW4iFYPEi5Isl2qb8rXiWpLiwFS9dxW/rncuNnjjgSENuVqZQkIuR4+DChVL4g1lnw==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "express": { + "version": "4.18.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", + "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.1", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.11.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "qs": { + "version": "6.11.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", + "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", + "dev": true, + "requires": { + "side-channel": "^1.0.4" + } + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==" + }, + "fast-decode-uri-component": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", + "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==" + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" + }, + "fast-querystring": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", + "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", + "requires": { + "fast-decode-uri-component": "^1.0.1" + } + }, + "fast-redact": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.3.0.tgz", + "integrity": "sha512-6T5V1QK1u4oF+ATxs1lWUmlEk6P2T9HqJG3e2DnHOdVgZy2rFJBoEnrIedcTXlkAHU/zKC+7KETJ+KGGKwxgMQ==" + }, + "fast-xml-parser": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.3.2.tgz", + "integrity": "sha512-rmrXUXwbJedoXkStenj1kkljNF7ugn5ZjR9FJcwmCfcCbtOMDghPajbc+Tck6vE6F5XsDmx+Pr2le9fw8+pXBg==", + "requires": { + "strnum": "^1.0.5" + } + }, + "fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "dev": true + }, + "filename-reserved-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", + "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==" + }, + "filenamify": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz", + "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==", + "requires": { + "filename-reserved-regex": "^2.0.0", + "strip-outer": "^1.0.1", + "trim-repeated": "^1.0.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-my-way": { + "version": "7.7.0", + "resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-7.7.0.tgz", + "integrity": "sha512-+SrHpvQ52Q6W9f3wJoJBbAQULJuNEEQwBvlvYwACDhBTLOTMiQ0HYWh4+vC3OivGP2ENcTI1oKlFA2OepJNjhQ==", + "requires": { + "fast-deep-equal": "^3.1.3", + "fast-querystring": "^1.0.0", + "safe-regex2": "^2.0.0" + } + }, + "fn.name": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", + "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==" + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "requires": { + "is-callable": "^1.1.3" + } + }, + "form-data": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz", + "integrity": "sha512-m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "formidable": { + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.6.tgz", + "integrity": "sha512-KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==" + }, + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", + "dev": true + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", + "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==" + }, + "function.prototype.name": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" + } + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, + "generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dev": true, + "requires": { + "is-property": "^1.0.2" + } + }, + "get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + } + }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==", + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "requires": { + "define-properties": "^1.1.3" + } + }, + "gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.3" + } + }, + "graceful-fs": { + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==" + }, + "has": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", + "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==" + }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==" + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "htmlparser2": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", + "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", + "requires": { + "domelementtype": "^2.0.1", + "domhandler": "^4.0.0", + "domutils": "^2.5.2", + "entities": "^2.0.0" + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==" + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + } + }, + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", + "requires": { + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" + } + }, + "http-signature": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.3.6.tgz", + "integrity": "sha512-3adrsD6zqo4GsTqtO7FyrejHNv+NgiIfAfv68+jVlFmSr9OGy7zrxONceFRLKvnnZA5jbxQBX1u9PpB6Wi32Gw==", + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^2.0.2", + "sshpk": "^1.14.1" + } + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA==", + "dev": true + }, + "inflection": { + "version": "1.13.4", + "resolved": "https://registry.npmjs.org/inflection/-/inflection-1.13.4.tgz", + "integrity": "sha512-6I/HUDeYFfuNCVS3td055BaXBwKYuzw7K3ExVMStBowKo9oOAMJIXIHvdyR3iboTCp1b+1i5DSkIZTcwIktuDw==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "internal-slot": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz", + "integrity": "sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.2.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + }, + "is-array-buffer": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", + "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.0", + "is-typed-array": "^1.1.10" + } + }, + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true + }, + "is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==" + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", + "dev": true + }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, + "is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "requires": { + "which-typed-array": "^1.1.11" + } + }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "requires": { + "is-docker": "^2.0.0" + } + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "js-md4": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/js-md4/-/js-md4-0.3.2.tgz", + "integrity": "sha512-/GDnfQYsltsjRswQhN9fhv3EMw2sCpUdrdxyWDOUK7eyD++r3gRhzgiQgc/x4MAv2i1iuQ4lxO5mvqM3vj4bwA==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "jsbi": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/jsbi/-/jsbi-4.3.0.tgz", + "integrity": "sha512-SnZNcinB4RIcnEyZqFPdGPVgrg2AcnykiBy0sHVJQKHYeaLUvi3Exj+iaPpLnFVkDPZIV4U0yvgC9/R4uEAZ9g==", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==" + }, + "json-schema": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz", + "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonwebtoken": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-9.0.2.tgz", + "integrity": "sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==", + "requires": { + "jws": "^3.2.2", + "lodash.includes": "^4.3.0", + "lodash.isboolean": "^3.0.3", + "lodash.isinteger": "^4.0.4", + "lodash.isnumber": "^3.0.3", + "lodash.isplainobject": "^4.0.6", + "lodash.isstring": "^4.0.1", + "lodash.once": "^4.0.0", + "ms": "^2.1.1", + "semver": "^7.5.4" + }, + "dependencies": { + "jwa": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", + "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", + "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "requires": { + "jwa": "^1.4.1", + "safe-buffer": "^5.0.1" + } + } + } + }, + "jspath": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/jspath/-/jspath-0.4.0.tgz", + "integrity": "sha512-2/R8wkot8NCXrppBT/onp+4mcAUAZqtPxsW6aSJU3hrFAVqKqtFYcat2XJZ7inN4RtATUxfv0UQSYOmvJKiIGA==" + }, + "jsprim": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-2.0.2.tgz", + "integrity": "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ==", + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.4.0", + "verror": "1.10.0" + } + }, + "jwa": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", + "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", + "requires": { + "buffer-equal-constant-time": "1.0.1", + "ecdsa-sig-formatter": "1.0.11", + "safe-buffer": "^5.0.1" + } + }, + "jws": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", + "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", + "requires": { + "jwa": "^2.0.0", + "safe-buffer": "^5.0.1" + } + }, + "kuler": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "dev": true + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", + "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==", + "dev": true + }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "requires": { + "uc.micro": "^1.0.1" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.includes": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", + "integrity": "sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==" + }, + "lodash.isboolean": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", + "integrity": "sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "lodash.isinteger": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", + "integrity": "sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==" + }, + "lodash.isnumber": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", + "integrity": "sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==" + }, + "lodash.once": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", + "integrity": "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==" + }, + "logform": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", + "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "dev": true, + "requires": { + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, + "lokijs": { + "version": "1.5.12", + "resolved": "https://registry.npmjs.org/lokijs/-/lokijs-1.5.12.tgz", + "integrity": "sha512-Q5ALD6JiS6xAUWCwX3taQmgwxyveCtIIuL08+ml0nHwT3k0S/GIFJN+Hd38b1qYIMaE5X++iqsqWVksz7SYW+Q==", + "dev": true + }, + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==" + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==" + } + } + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==" + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", + "dev": true + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", + "dev": true + }, + "mime": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", + "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==" + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true + }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true + }, + "moment-timezone": { + "version": "0.5.43", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.43.tgz", + "integrity": "sha512-72j3aNyuIsDxdF1i7CEgV2FfxM1r6aaqJyLB2vwb33mXYyoyLly+F1zbWqhA3/bVIoJ4szlUoMbUnVdid32NUQ==", + "dev": true, + "requires": { + "moment": "^2.29.4" + } + }, + "morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "requires": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + } + } + }, + "mri": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz", + "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multistream": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/multistream/-/multistream-2.1.1.tgz", + "integrity": "sha512-xasv76hl6nr1dEy3lPvy7Ej7K/Lx3O/FCvwge8PeVJpciPPoNCbaANcNiBug3IpdvTveZUcAV0DJzdnUDMesNQ==", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "mysql2": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.6.2.tgz", + "integrity": "sha512-m5erE6bMoWfPXW1D5UrVwlT8PowAoSX69KcZzPuARQ3wY1RJ52NW9PdvdPo076XiSIkQ5IBTis7hxdlrQTlyug==", + "dev": true, + "requires": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "dev": true + } + } + }, + "named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dev": true, + "requires": { + "lru-cache": "^7.14.1" + } + }, + "nan": { + "version": "2.18.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz", + "integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w==", + "optional": true + }, + "native-duplexpair": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/native-duplexpair/-/native-duplexpair-1.0.0.tgz", + "integrity": "sha512-E7QQoM+3jvNtlmyfqRZ0/U75VFgCls+fSkbml2MpgWkWyz3ox8Y58gNhfuziuQYGNNQAbFZJQck55LHCnCK6CA==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" + }, + "node-abort-controller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz", + "integrity": "sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==", + "dev": true + }, + "node-fetch": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "nodemon": { + "version": "2.0.22", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.22.tgz", + "integrity": "sha512-B8YqaKMmyuCO7BowF1Z1/mkPqLk6cs/l63Ojtd6otKjMx47Dq1utxfRxcavH1I7VSaL8n5BUaoutadnsX3AAVQ==", + "dev": true, + "requires": { + "chokidar": "^3.5.2", + "debug": "^3.2.7", + "ignore-by-default": "^1.0.1", + "minimatch": "^3.1.2", + "pstree.remy": "^1.1.8", + "semver": "^5.7.1", + "simple-update-notifier": "^1.0.7", + "supports-color": "^5.5.0", + "touch": "^3.1.0", + "undefsafe": "^2.0.5" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + } + } + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-inspect": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.0.tgz", + "integrity": "sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" + }, + "on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==" + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "one-time": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", + "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "dev": true, + "requires": { + "fn.name": "1.x.x" + } + }, + "open": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", + "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "openssl-wrapper": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/openssl-wrapper/-/openssl-wrapper-0.3.4.tgz", + "integrity": "sha512-iITsrx6Ho8V3/2OVtmZzzX8wQaKAaFXEJQdzoPUZDtyf5jWFlqo+h+OhGT4TATQ47f9ACKHua8nw7Qoy85aeKQ==" + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", + "dev": true + }, + "pg-connection-string": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.6.2.tgz", + "integrity": "sha512-ch6OwaeaPYcova4kKZ15sbJ2hKb/VP48ZD2gE7i1J+L4MspCtBMAx8nMgz7bksc7IojCIIWuEhHibSMFH8m8oA==", + "dev": true + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pidusage": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.2.tgz", + "integrity": "sha512-g0VU+y08pKw5M8EZ2rIGiEBaB8wrQMjYGFfW2QVIfyT8V+fq8YFLkvlz4bz5ljvFDJYNFCWT3PWqcRr2FKO81w==", + "requires": { + "safe-buffer": "^5.2.1" + } + }, + "pino": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.16.0.tgz", + "integrity": "sha512-UUmvQ/7KTZt/vHjhRrnyS7h+J7qPBQnpG80V56xmIC+o9IqYmQOw/UIny9S9zYDfRBR0ClouCr464EkBMIT7Fw==", + "requires": { + "atomic-sleep": "^1.0.0", + "fast-redact": "^3.1.1", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "v1.1.0", + "pino-std-serializers": "^6.0.0", + "process-warning": "^2.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "sonic-boom": "^3.7.0", + "thread-stream": "^2.0.0" + } + }, + "pino-abstract-transport": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-1.1.0.tgz", + "integrity": "sha512-lsleG3/2a/JIWUtf9Q5gUNErBqwIu1tUKTT3dUzaf5DySw9ra1wcqKjJjLX1VTY64Wk1eEOYsVGSaGfCK85ekA==", + "requires": { + "readable-stream": "^4.0.0", + "split2": "^4.0.0" + } + }, + "pino-std-serializers": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-6.2.2.tgz", + "integrity": "sha512-cHjPPsE+vhj/tnhCy/wiMh3M3z3h/j15zHQX+S9GkTBgqJuTuJzYJ4gUyACLhDaJ7kk9ba9iRDmbH2tJU03OiA==" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "process-warning": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.2.0.tgz", + "integrity": "sha512-/1WZ8+VQjR6avWOgHeEPd7SDQmFQ1B5mC1eRXsCm5TarlNmx/wCsa5GEaxGm05BORRtyG/Ex/3xq3TuRvq57qg==" + }, + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "psl": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", + "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", + "dev": true + }, + "pstree.remy": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz", + "integrity": "sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==", + "dev": true + }, + "punycode": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz", + "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==", + "dev": true + }, + "qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "requires": { + "side-channel": "^1.0.4" + } + }, + "quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==" + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" + }, + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "react": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz", + "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==", + "requires": { + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" + } + }, + "readable-stream": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz", + "integrity": "sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA==", + "requires": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dev": true, + "requires": { + "resolve": "^1.1.6" + } + }, + "regexp.prototype.flags": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", + "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "set-function-name": "^2.0.0" + } + }, + "resolve": { + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "restify": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/restify/-/restify-10.0.0.tgz", + "integrity": "sha512-J57tSX1EPGbqVBznQ619zyFMFQno750d3lDfocTiblcQd5FZhCLD26hcW/u7hrXWetltsxoPZv/86Jc9acKfaQ==", + "requires": { + "assert-plus": "^1.0.0", + "csv": "^6.2.2", + "dtrace-provider": "~0.8", + "escape-regexp-component": "^1.0.2", + "ewma": "^2.0.1", + "find-my-way": "^7.2.0", + "formidable": "^1.2.1", + "http-signature": "^1.3.6", + "lodash": "^4.17.11", + "lru-cache": "^7.14.1", + "mime": "^3.0.0", + "negotiator": "^0.6.2", + "once": "^1.4.0", + "pidusage": "^3.0.2", + "pino": "^8.7.0", + "qs": "^6.7.0", + "restify-errors": "^8.0.2", + "semver": "^7.3.8", + "send": "^0.18.0", + "spdy": "^4.0.0", + "uuid": "^9.0.0", + "vasync": "^2.2.0" + }, + "dependencies": { + "uuid": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz", + "integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==" + } + } + }, + "restify-errors": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/restify-errors/-/restify-errors-8.0.2.tgz", + "integrity": "sha512-UsXUVQo7M26xoQzeUcZQ0+H8L2t9DGzrXcAgR3WB/1vnbl+UdI4tZ1PqYsN+sS5WnqHKZ0Xy9w0CKf83bbrwYA==", + "requires": { + "@netflix/nerror": "^1.0.0", + "assert-plus": "^1.0.0", + "lodash": "^4.17.15", + "safe-json-stringify": "^1.0.4" + } + }, + "ret": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz", + "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==" + }, + "retry-as-promised": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/retry-as-promised/-/retry-as-promised-7.0.4.tgz", + "integrity": "sha512-XgmCoxKWkDofwH8WddD0w85ZfqYz+ZHlr5yo+3YUCfycWawU56T5ckWXsScsj5B8tqUcIG67DxXByo3VUgiAdA==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rsa-pem-from-mod-exp": { + "version": "0.8.6", + "resolved": "https://registry.npmjs.org/rsa-pem-from-mod-exp/-/rsa-pem-from-mod-exp-0.8.6.tgz", + "integrity": "sha512-c5ouQkOvGHF1qomUUDJGFcXsomeSO2gbEs6hVhMAtlkE1CuaZase/WzoaKFG/EZQuNmq6pw/EMCeEnDvOgCJYQ==" + }, + "safe-array-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", + "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "dependencies": { + "isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safe-json-stringify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz", + "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", + "optional": true + }, + "safe-regex-test": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", + "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.3", + "is-regex": "^1.1.4" + } + }, + "safe-regex2": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/safe-regex2/-/safe-regex2-2.0.0.tgz", + "integrity": "sha512-PaUSFsUaNNuKwkBijoAPHAK6/eM6VirvyPWlZ7BAQy4D+hCvh4B6lIG+nPdhbFfIbP+gTGBcrdsOaUs0F+ZBOQ==", + "requires": { + "ret": "~0.2.0" + } + }, + "safe-stable-stringify": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", + "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "sax": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.3.0.tgz", + "integrity": "sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==" + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==" + }, + "semver": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", + "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "requires": { + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + } + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + } + } + }, + "seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==", + "dev": true + }, + "sequelize": { + "version": "6.33.0", + "resolved": "https://registry.npmjs.org/sequelize/-/sequelize-6.33.0.tgz", + "integrity": "sha512-GkeCbqgaIcpyZ1EyXrDNIwktbfMldHAGOVXHGM4x8bxGSRAOql5htDWofPvwpfL/FoZ59CaFmfO3Mosv1lDbQw==", + "dev": true, + "requires": { + "@types/debug": "^4.1.8", + "@types/validator": "^13.7.17", + "debug": "^4.3.4", + "dottie": "^2.0.6", + "inflection": "^1.13.4", + "lodash": "^4.17.21", + "moment": "^2.29.4", + "moment-timezone": "^0.5.43", + "pg-connection-string": "^2.6.1", + "retry-as-promised": "^7.0.4", + "semver": "^7.5.4", + "sequelize-pool": "^7.1.0", + "toposort-class": "^1.0.1", + "uuid": "^8.3.2", + "validator": "^13.9.0", + "wkx": "^0.5.0" + } + }, + "sequelize-pool": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/sequelize-pool/-/sequelize-pool-7.1.0.tgz", + "integrity": "sha512-G9c0qlIWQSK29pR/5U2JF5dDQeqqHRragoyahj/Nx4KOOQ3CPPfzxnfqFPCSB7x5UgjOgnZ61nSxz+fjDpRlJg==", + "dev": true + }, + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" + } + }, + "set-function-name": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", + "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "dev": true, + "requires": { + "define-data-property": "^1.0.1", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.0" + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dev": true, + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dev": true, + "requires": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + } + }, + "simple-update-notifier": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz", + "integrity": "sha512-VpsrsJSUcJEseSbMHkrsrAVSdvVS5I96Qo1QAQ4FxQ9wXFcB+pjj7FB7/us9+GcgfW4ziHtYMc1J0PLczb55mg==", + "dev": true, + "requires": { + "semver": "~7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } + }, + "sonic-boom": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-3.7.0.tgz", + "integrity": "sha512-IudtNvSqA/ObjN97tfgNmOKyDOs4dNcg4cUUsHDebqsgb8wGBBwb31LIgShNO8fye0dFI52X1+tFoKKI6Rq1Gg==", + "requires": { + "atomic-sleep": "^1.0.0" + } + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==" + }, + "sprintf-js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", + "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", + "dev": true + }, + "sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "dev": true + }, + "sshpk": { + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz", + "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==", + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" + }, + "stoppable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/stoppable/-/stoppable-1.1.0.tgz", + "integrity": "sha512-KXDYZ9dszj6bzvnEMRYvxgeTHU74QBFL54XKtP3nyMuJ81CFYtABZ3bAzL2EdFUaEwJOBOgENyFj3R7oTzDyyw==" + }, + "stream-transform": { + "version": "3.2.10", + "resolved": "https://registry.npmjs.org/stream-transform/-/stream-transform-3.2.10.tgz", + "integrity": "sha512-Yu+x7zcWbWdyB0Td8dFzHt2JEyD6694CNq2lqh1rbuEBVxPtjb/GZ7xDnZcdYiU5E/RtufM54ClSEOzZDeWguA==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "string.prototype.trimstart": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + } + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "strnum": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz", + "integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "tedious": { + "version": "16.4.1", + "resolved": "https://registry.npmjs.org/tedious/-/tedious-16.4.1.tgz", + "integrity": "sha512-WwRkGs7N5jFiHhD7uyLHnZ9rCmOfYytEHZhE/vyU56mxzFB3+xHd4WV+DssLwuc1piJqDI54vHDi6SRACOGu8g==", + "dev": true, + "requires": { + "@azure/identity": "^2.0.4", + "@azure/keyvault-keys": "^4.4.0", + "@js-joda/core": "^5.5.3", + "bl": "^6.0.3", + "es-aggregate-error": "^1.0.9", + "iconv-lite": "^0.6.3", + "js-md4": "^0.3.2", + "jsbi": "^4.3.0", + "native-duplexpair": "^1.0.0", + "node-abort-controller": "^3.1.1", + "punycode": "^2.3.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "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==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } + } + }, + "text-hex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "dev": true + }, + "thread-stream": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.4.1.tgz", + "integrity": "sha512-d/Ex2iWd1whipbT681JmTINKw0ZwOUBZm7+Gjs64DHuX34mmw8vJL2bFAaNacaW72zYiTJxSHi5abUuOi5nsfg==", + "requires": { + "real-require": "^0.2.0" + } + }, + "to-readable-stream": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz", + "integrity": "sha512-o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==", + "dev": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "toposort-class": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toposort-class/-/toposort-class-1.0.1.tgz", + "integrity": "sha512-OsLcGGbYF3rMjPUf8oKktyvCiUxSbqMMS39m33MAjLTC1DVIH6x3WSt63/M77ihI09+Sdfk1AXvfhCEeUmC7mg==", + "dev": true + }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "dev": true, + "requires": { + "nopt": "~1.0.10" + } + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "triple-beam": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", + "dev": true + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==" + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typed-array-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", + "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-length": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", + "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-byte-offset": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", + "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "has-proto": "^1.0.1", + "is-typed-array": "^1.1.10" + } + }, + "typed-array-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", + "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "is-typed-array": "^1.1.9" + } + }, + "typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" + }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, + "undefsafe": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.5.tgz", + "integrity": "sha512-WxONCrssBM8TSPRqN5EmsjVrsv4A8X12J4ArBiiayv3DyyG3ZlIg6yysuuSYdZsVz3TKcTg2fd//Ujd4CHV1iA==", + "dev": true + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "uri-templates": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/uri-templates/-/uri-templates-0.2.0.tgz", + "integrity": "sha512-EWkjYEN0L6KOfEoOH6Wj4ghQqU7eBZMJqRHQnxQAq+dSEzRPClkWjf8557HkWQXF6BrAUoLSAyy9i3RVTliaNg==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "validator": { + "version": "13.11.0", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", + "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vasync": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/vasync/-/vasync-2.2.1.tgz", + "integrity": "sha512-Hq72JaTpcTFdWiNA4Y22Amej2GH3BFmBaKPPlDZ4/oC8HNn2ISHLkFrJU4Ds8R3jcUi7oo5Y9jcMHKjES+N9wQ==", + "requires": { + "verror": "1.10.0" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==", + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", + "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, + "which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "requires": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + } + }, + "winston": { + "version": "3.11.0", + "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", + "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", + "dev": true, + "requires": { + "@colors/colors": "^1.6.0", + "@dabh/diagnostics": "^2.0.2", + "async": "^3.2.3", + "is-stream": "^2.0.0", + "logform": "^2.4.0", + "one-time": "^1.0.0", + "readable-stream": "^3.4.0", + "safe-stable-stringify": "^2.3.1", + "stack-trace": "0.0.x", + "triple-beam": "^1.3.0", + "winston-transport": "^4.5.0" + }, + "dependencies": { + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "winston-transport": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz", + "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", + "dev": true, + "requires": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "wkx": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/wkx/-/wkx-0.5.0.tgz", + "integrity": "sha512-Xng/d4Ichh8uN4l0FToV/258EjMGU9MGcA0HV2d9B/ZpZB3lqQm7nkOdZdm5GhKtLLhAE7PiVQwN4eN+2YJJUg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + }, + "xml2js": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.5.0.tgz", + "integrity": "sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, + "xpath": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.32.tgz", + "integrity": "sha512-rxMJhSIoiO8vXcWvSifKqhvV96GjiD5wYb8/QHdoRyQvraTpp4IEv944nhGausZZ3u7dhQXteZuZbaqfpB7uYw==" + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "dev": true + }, + "zod": { + "version": "3.22.4", + "resolved": "https://registry.npmjs.org/zod/-/zod-3.22.4.tgz", + "integrity": "sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==" + } + } +} diff --git a/samples/msgext-copilot-handoff/ts/package.json b/samples/msgext-copilot-handoff/ts/package.json new file mode 100644 index 0000000..460dc64 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/package.json @@ -0,0 +1,43 @@ +{ + "name": "northwindproducts", + "version": "1.0.0", + "description": "Microsoft Teams Toolkit message extension search sample", + "engines": { + "node": "16 || 18" + }, + "author": "Microsoft", + "license": "MIT", + "main": "./lib/src/index.js", + "scripts": { + "dev:teamsfx": "env-cmd --silent -f .localConfigs npm run dev", + "dev": "nodemon --exec node --inspect=9239 --ignore _storage_emulator/ --signal SIGINT -r ts-node/register ./src/index.ts", + "build": "tsc --build", + "start": "node ./lib/src/index.js", + "storage": "azurite --silent --location ./_storage_emulator --debug ./_storage_emulator/debug.log", + "test": "echo \"Error: no test specified\" && exit 1", + "watch": "nodemon --exec \"npm run start\"" + }, + "repository": { + "type": "git", + "url": "https://github.com" + }, + "dependencies": { + "@azure/data-tables": "^13.2.2", + "@microsoft/adaptivecards-tools": "^1.3.2", + "adaptive-expressions": "4.21.0", + "adaptivecards": "2.11.1", + "adaptivecards-templating": "2.3.1", + "botbuilder": "^4.20.0", + "restify": "^10.0.0" + }, + "devDependencies": { + "@types/node": "^16.0.0", + "@types/restify": "^8.5.5", + "azurite": "^3.26.0", + "env-cmd": "^10.1.0", + "nodemon": "^2.0.7", + "shx": "^0.3.3", + "ts-node": "^10.4.0", + "typescript": "^4.4.4" + } +} diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Bigfoot Breweries Supplier Agreement.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Bigfoot Breweries Supplier Agreement.docx new file mode 100644 index 0000000..db37656 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Bigfoot Breweries Supplier Agreement.docx differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Contoso Beverage Company Supplier Agreement.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Contoso Beverage Company Supplier Agreement.docx new file mode 100644 index 0000000..a802d32 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Contoso Beverage Company Supplier Agreement.docx differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Cote de Blaye ad campaign.pdf b/samples/msgext-copilot-handoff/ts/sampleDocs/Cote de Blaye ad campaign.pdf new file mode 100644 index 0000000..56e0f04 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Cote de Blaye ad campaign.pdf differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/G'day Mate Supplier Agreement.pdf b/samples/msgext-copilot-handoff/ts/sampleDocs/G'day Mate Supplier Agreement.pdf new file mode 100644 index 0000000..15b306b Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/G'day Mate Supplier Agreement.pdf differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Grandma Kelly's Homestead Supplier Agreement.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Grandma Kelly's Homestead Supplier Agreement.docx new file mode 100644 index 0000000..0727c5c Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Grandma Kelly's Homestead Supplier Agreement.docx differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Market Trend - High Demand for Chai.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Market Trend - High Demand for Chai.docx new file mode 100644 index 0000000..d18117b Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Market Trend - High Demand for Chai.docx differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Market Trend Report- Protein shake.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Market Trend Report- Protein shake.docx new file mode 100644 index 0000000..0ef1808 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Market Trend Report- Protein shake.docx differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Mayumi's Supplier Agreement.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Mayumi's Supplier Agreement.docx new file mode 100644 index 0000000..5f8f07e Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Mayumi's Supplier Agreement.docx differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Northwind Minimum Order Quantity policy.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Northwind Minimum Order Quantity policy.docx new file mode 100644 index 0000000..b1ea7ec Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Northwind Minimum Order Quantity policy.docx differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Northwind Reorder policy.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Northwind Reorder policy.docx new file mode 100644 index 0000000..06f7ed9 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Northwind Reorder policy.docx differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Raclette Courdavault ad campaign.pdf b/samples/msgext-copilot-handoff/ts/sampleDocs/Raclette Courdavault ad campaign.pdf new file mode 100644 index 0000000..509d5ab Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Raclette Courdavault ad campaign.pdf differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Refrescos Americanas LTDA Supplier Agreement.docx b/samples/msgext-copilot-handoff/ts/sampleDocs/Refrescos Americanas LTDA Supplier Agreement.docx new file mode 100644 index 0000000..7815366 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Refrescos Americanas LTDA Supplier Agreement.docx differ diff --git "a/samples/msgext-copilot-handoff/ts/sampleDocs/Rh\303\266nbr\303\244u Klosterbier Supplier Agreement.docx" "b/samples/msgext-copilot-handoff/ts/sampleDocs/Rh\303\266nbr\303\244u Klosterbier Supplier Agreement.docx" new file mode 100644 index 0000000..e7eb316 Binary files /dev/null and "b/samples/msgext-copilot-handoff/ts/sampleDocs/Rh\303\266nbr\303\244u Klosterbier Supplier Agreement.docx" differ diff --git a/samples/msgext-copilot-handoff/ts/sampleDocs/Thuringer Rostbratwurst ad campaign.pdf b/samples/msgext-copilot-handoff/ts/sampleDocs/Thuringer Rostbratwurst ad campaign.pdf new file mode 100644 index 0000000..c941e8d Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/sampleDocs/Thuringer Rostbratwurst ad campaign.pdf differ diff --git a/samples/msgext-copilot-handoff/ts/scripts/db-setup.js b/samples/msgext-copilot-handoff/ts/scripts/db-setup.js new file mode 100644 index 0000000..dc171ce --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/scripts/db-setup.js @@ -0,0 +1,115 @@ +const { TableClient, TableServiceClient } = require("@azure/data-tables"); +const { randomUUID } = require("crypto"); +const fs = require("fs"); +const path = require("path"); + +(async () => { + const connectionString = process.argv[2] ? process.argv[2] : "UseDevelopmentStorage=true"; + const reset = process.argv[3] === "--reset" || process.argv[3] === "-r" ? true : false; + + const COUNTRY_CODES = { + "australia": "au", + "brazil": "br", + "canada": "ca", + "denmark": "dk", + "france": "fr", + "germany": "de", + "finland": "fi", + "italy": "it", + "japan": "jp", + "netherlands": "nl", + "norway": "no", + "singapore": "sg", + "spain": "es", + "sweden": "se", + "uk": "gb", + "usa": "us" + }; + // Get a flag image URL given a country name + // Thanks to https://flagpedia.net for providing flag images + function getFlagUrl(country) { + return `https://flagcdn.com/32x24/${COUNTRY_CODES[country.toLowerCase()]}.png`; + }; + + async function getTables(tableServiceClient) { + let tables = []; + for await (const table of tableServiceClient.listTables()) { + tables.push(table.name) + } + return tables; + } + + const tableServiceClient = TableServiceClient.fromConnectionString(connectionString); + + if (reset) { + const tables = await getTables(tableServiceClient); + tables.forEach(async table => { + const tableClient = TableClient.fromConnectionString(connectionString, table); + console.log(`Deleting table: ${table}`); + await tableClient.deleteTable(); + }); + let tablesExist = true; + while (tablesExist) { + console.log("Waiting for tables to be deleted..."); + const tables = await getTables(tableServiceClient); + if (tables.length === 0) { + tablesExist = false; + console.log("All tables deleted."); + } + await new Promise(resolve => setTimeout(resolve, 1000)); + } + } + + const tables = ["Categories", "Customers", "Employees", "Orders", "OrderDetails", "Products", "Suppliers"]; + const rowKeyColumnNames = ["CategoryID", "CustomerID", "EmployeeID", "OrderID", null, "ProductID", "SupplierID"]; + const generateImage = [false, true, false, false, false, true, true]; + const generateFlag = [false, true, false, false, false, false, true]; + + tables.forEach(async (table, index) => { + const tables = await getTables(tableServiceClient); + if (tables.includes(table)) { + console.log(`Table ${table} already exists, skipping...`); + return; + } + + console.log(`Creating table: ${table}`); + let tableCreated = false; + while (!tableCreated) { + try { + await tableServiceClient.createTable(table); + tableCreated = true; + } catch (err) { + if (err.statusCode === 409) { + console.log('Table is marked for deletion, retrying in 5 seconds...'); + await new Promise(resolve => setTimeout(resolve, 5000)); + } else { + throw err; + } + } + } + + const tableClient = TableClient.fromConnectionString(connectionString, table); + const jsonString = fs.readFileSync(path.resolve(__dirname, "db", `${table}.json`), "utf8"); + const entities = JSON.parse(jsonString); + for (const entity of entities[table]) { + const rowKeyColumnName = rowKeyColumnNames[index]; + const rowKey = rowKeyColumnName ? entity[rowKeyColumnName].toString() : randomUUID(); + console.log(`Added entity to ${table} with key ${rowKey}`); + + // If we're on a table that needs an image and one wasn't in the JSON, make a random one + if (generateImage[index] && !("ImageURL" in entity)) { + entity["ImageUrl"] = `https://picsum.photos/seed/${rowKey}/200/300`; + } + // If we're on a table that needs a flag image, make it here + if (generateFlag[index]) { + entity["FlagUrl"] = getFlagUrl(entity["Country"]); + } + await tableClient.createEntity({ + partitionKey: table, + rowKey, + ...entity + }); + } + }); + +})(); \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/scripts/db/Categories.json b/samples/msgext-copilot-handoff/ts/scripts/db/Categories.json new file mode 100644 index 0000000..d14c4ca --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/scripts/db/Categories.json @@ -0,0 +1,52 @@ +{ + "Categories": [ + { + "CategoryID": 1, + "CategoryName": "Beverages", + "Description": "Soft drinks, coffees, teas, beers, and ales", + "PictureUrl": "https://picsum.photos/id/63/300/200" + }, + { + "CategoryID": 2, + "CategoryName": "Condiments", + "Description": "Sweet and savory sauces, relishes, spreads, and seasonings", + "PictureUrl": "https://picsum.photos/id/292/300/200" + }, + { + "CategoryID": 3, + "CategoryName": "Confections", + "Description": "Desserts, candies, and sweet breads", + "PictureUrl": "https://picsum.photos/id/889/300/200" + }, + { + "CategoryID": 4, + "CategoryName": "Dairy Products", + "Description": "Cheeses", + "PictureUrl": "https://picsum.photos/id/200/300/200" + }, + { + "CategoryID": 5, + "CategoryName": "Grains/Cereals", + "Description": "Breads, crackers, pasta, and cereal", + "PictureUrl": "https://picsum.photos/id/165/300/200" + }, + { + "CategoryID": 6, + "CategoryName": "Meat/Poultry", + "Description": "Prepared meats", + "PictureUrl": "https://picsum.photos/id/686/300/200" + }, + { + "CategoryID": 7, + "CategoryName": "Produce", + "Description": "Dried fruit and bean curd", + "PictureUrl": "https://picsum.photos/id/75/300/200" + }, + { + "CategoryID": 8, + "CategoryName": "Seafood", + "Description": "Seaweed and fish", + "PictureUrl": "https://picsum.photos/id/211/300/200" + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/scripts/db/Customers.json b/samples/msgext-copilot-handoff/ts/scripts/db/Customers.json new file mode 100644 index 0000000..04f41e9 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/scripts/db/Customers.json @@ -0,0 +1,1187 @@ +{ + "Customers": [ + { + "CustomerID": "ALFKI", + "CompanyName": "Alfreds Futterkiste", + "ContactName": "Maria Anders", + "ContactTitle": "Sales Representative", + "Address": "Obere Str. 57", + "City": "Berlin", + "Region": null, + "PostalCode": "12209", + "Country": "Germany", + "Phone": "030-0074321", + "Fax": "030-0076545" + }, + { + "CustomerID": "ANATR", + "CompanyName": "Ana Trujillo Emparedados y helados", + "ContactName": "Ana Trujillo", + "ContactTitle": "Owner", + "Address": "Avda. de la Constitución 2222", + "City": "México D.F.", + "Region": null, + "PostalCode": "05021", + "Country": "Mexico", + "Phone": "(5) 555-4729", + "Fax": "(5) 555-3745" + }, + { + "CustomerID": "ANTON", + "CompanyName": "Antonio Moreno Taquería", + "ContactName": "Antonio Moreno", + "ContactTitle": "Owner", + "Address": "Mataderos 2312", + "City": "México D.F.", + "Region": null, + "PostalCode": "05023", + "Country": "Mexico", + "Phone": "(5) 555-3932", + "Fax": null + }, + { + "CustomerID": "AROUT", + "CompanyName": "Around the Horn", + "ContactName": "Thomas Hardy", + "ContactTitle": "Sales Representative", + "Address": "120 Hanover Sq.", + "City": "London", + "Region": null, + "PostalCode": "WA1 1DP", + "Country": "UK", + "Phone": "(171) 555-7788", + "Fax": "(171) 555-6750" + }, + { + "CustomerID": "BERGS", + "CompanyName": "Berglunds snabbköp", + "ContactName": "Christina Berglund", + "ContactTitle": "Order Administrator", + "Address": "Berguvsvägen 8", + "City": "Luleå", + "Region": null, + "PostalCode": "S-958 22", + "Country": "Sweden", + "Phone": "0921-12 34 65", + "Fax": "0921-12 34 67" + }, + { + "CustomerID": "BLAUS", + "CompanyName": "Blauer See Delikatessen", + "ContactName": "Hanna Moos", + "ContactTitle": "Sales Representative", + "Address": "Forsterstr. 57", + "City": "Mannheim", + "Region": null, + "PostalCode": "68306", + "Country": "Germany", + "Phone": "0621-08460", + "Fax": "0621-08924" + }, + { + "CustomerID": "BLONP", + "CompanyName": "Blondesddsl père et fils", + "ContactName": "Frédérique Citeaux", + "ContactTitle": "Marketing Manager", + "Address": "24, place Kléber", + "City": "Strasbourg", + "Region": null, + "PostalCode": "67000", + "Country": "France", + "Phone": "88.60.15.31", + "Fax": "88.60.15.32" + }, + { + "CustomerID": "BOLID", + "CompanyName": "Bólido Comidas preparadas", + "ContactName": "Martín Sommer", + "ContactTitle": "Owner", + "Address": "C/ Araquil, 67", + "City": "Madrid", + "Region": null, + "PostalCode": "28023", + "Country": "Spain", + "Phone": "(91) 555 22 82", + "Fax": "(91) 555 91 99" + }, + { + "CustomerID": "BONAP", + "CompanyName": "Bon app'", + "ContactName": "Laurence Lebihan", + "ContactTitle": "Owner", + "Address": "12, rue des Bouchers", + "City": "Marseille", + "Region": null, + "PostalCode": "13008", + "Country": "France", + "Phone": "91.24.45.40", + "Fax": "91.24.45.41" + }, + { + "CustomerID": "BOTTM", + "CompanyName": "Bottom-Dollar Markets", + "ContactName": "Elizabeth Lincoln", + "ContactTitle": "Accounting Manager", + "Address": "23 Tsawassen Blvd.", + "City": "Tsawassen", + "Region": "BC", + "PostalCode": "T2F 8M4", + "Country": "Canada", + "Phone": "(604) 555-4729", + "Fax": "(604) 555-3745" + }, + { + "CustomerID": "BSBEV", + "CompanyName": "B's Beverages", + "ContactName": "Victoria Ashworth", + "ContactTitle": "Sales Representative", + "Address": "Fauntleroy Circus", + "City": "London", + "Region": null, + "PostalCode": "EC2 5NT", + "Country": "UK", + "Phone": "(171) 555-1212", + "Fax": null + }, + { + "CustomerID": "CACTU", + "CompanyName": "Cactus Comidas para llevar", + "ContactName": "Patricio Simpson", + "ContactTitle": "Sales Agent", + "Address": "Cerrito 333", + "City": "Buenos Aires", + "Region": null, + "PostalCode": "1010", + "Country": "Argentina", + "Phone": "(1) 135-5555", + "Fax": "(1) 135-4892" + }, + { + "CustomerID": "CENTC", + "CompanyName": "Centro comercial Moctezuma", + "ContactName": "Francisco Chang", + "ContactTitle": "Marketing Manager", + "Address": "Sierras de Granada 9993", + "City": "México D.F.", + "Region": null, + "PostalCode": "05022", + "Country": "Mexico", + "Phone": "(5) 555-3392", + "Fax": "(5) 555-7293" + }, + { + "CustomerID": "CHOPS", + "CompanyName": "Chop-suey Chinese", + "ContactName": "Yang Wang", + "ContactTitle": "Owner", + "Address": "Hauptstr. 29", + "City": "Bern", + "Region": null, + "PostalCode": "3012", + "Country": "Switzerland", + "Phone": "0452-076545", + "Fax": null + }, + { + "CustomerID": "COMMI", + "CompanyName": "Comércio Mineiro", + "ContactName": "Pedro Afonso", + "ContactTitle": "Sales Associate", + "Address": "Av. dos Lusíadas, 23", + "City": "Sao Paulo", + "Region": "SP", + "PostalCode": "05432-043", + "Country": "Brazil", + "Phone": "(11) 555-7647", + "Fax": null + }, + { + "CustomerID": "CONSH", + "CompanyName": "Consolidated Holdings", + "ContactName": "Elizabeth Brown", + "ContactTitle": "Sales Representative", + "Address": "Berkeley Gardens 12 Brewery", + "City": "London", + "Region": null, + "PostalCode": "WX1 6LT", + "Country": "UK", + "Phone": "(171) 555-2282", + "Fax": "(171) 555-9199" + }, + { + "CustomerID": "DRACD", + "CompanyName": "Drachenblut Delikatessen", + "ContactName": "Sven Ottlieb", + "ContactTitle": "Order Administrator", + "Address": "Walserweg 21", + "City": "Aachen", + "Region": null, + "PostalCode": "52066", + "Country": "Germany", + "Phone": "0241-039123", + "Fax": "0241-059428" + }, + { + "CustomerID": "DUMON", + "CompanyName": "Du monde entier", + "ContactName": "Janine Labrune", + "ContactTitle": "Owner", + "Address": "67, rue des Cinquante Otages", + "City": "Nantes", + "Region": null, + "PostalCode": "44000", + "Country": "France", + "Phone": "40.67.88.88", + "Fax": "40.67.89.89" + }, + { + "CustomerID": "EASTC", + "CompanyName": "Eastern Connection", + "ContactName": "Ann Devon", + "ContactTitle": "Sales Agent", + "Address": "35 King George", + "City": "London", + "Region": null, + "PostalCode": "WX3 6FW", + "Country": "UK", + "Phone": "(171) 555-0297", + "Fax": "(171) 555-3373" + }, + { + "CustomerID": "ERNSH", + "CompanyName": "Ernst Handel", + "ContactName": "Roland Mendel", + "ContactTitle": "Sales Manager", + "Address": "Kirchgasse 6", + "City": "Graz", + "Region": null, + "PostalCode": "8010", + "Country": "Austria", + "Phone": "7675-3425", + "Fax": "7675-3426" + }, + { + "CustomerID": "FAMIA", + "CompanyName": "Familia Arquibaldo", + "ContactName": "Aria Cruz", + "ContactTitle": "Marketing Assistant", + "Address": "Rua Orós, 92", + "City": "Sao Paulo", + "Region": "SP", + "PostalCode": "05442-030", + "Country": "Brazil", + "Phone": "(11) 555-9857", + "Fax": null + }, + { + "CustomerID": "FISSA", + "CompanyName": "FISSA Fabrica Inter. Salchichas S.A.", + "ContactName": "Diego Roel", + "ContactTitle": "Accounting Manager", + "Address": "C/ Moralzarzal, 86", + "City": "Madrid", + "Region": null, + "PostalCode": "28034", + "Country": "Spain", + "Phone": "(91) 555 94 44", + "Fax": "(91) 555 55 93" + }, + { + "CustomerID": "FOLIG", + "CompanyName": "Folies gourmandes", + "ContactName": "Martine Rancé", + "ContactTitle": "Assistant Sales Agent", + "Address": "184, chaussée de Tournai", + "City": "Lille", + "Region": null, + "PostalCode": "59000", + "Country": "France", + "Phone": "20.16.10.16", + "Fax": "20.16.10.17" + }, + { + "CustomerID": "FOLKO", + "CompanyName": "Folk och fä HB", + "ContactName": "Maria Larsson", + "ContactTitle": "Owner", + "Address": "Åkergatan 24", + "City": "Bräcke", + "Region": null, + "PostalCode": "S-844 67", + "Country": "Sweden", + "Phone": "0695-34 67 21", + "Fax": null + }, + { + "CustomerID": "FRANK", + "CompanyName": "Frankenversand", + "ContactName": "Peter Franken", + "ContactTitle": "Marketing Manager", + "Address": "Berliner Platz 43", + "City": "München", + "Region": null, + "PostalCode": "80805", + "Country": "Germany", + "Phone": "089-0877310", + "Fax": "089-0877451" + }, + { + "CustomerID": "FRANR", + "CompanyName": "France restauration", + "ContactName": "Carine Schmitt", + "ContactTitle": "Marketing Manager", + "Address": "54, rue Royale", + "City": "Nantes", + "Region": null, + "PostalCode": "44000", + "Country": "France", + "Phone": "40.32.21.21", + "Fax": "40.32.21.20" + }, + { + "CustomerID": "FRANS", + "CompanyName": "Franchi S.p.A.", + "ContactName": "Paolo Accorti", + "ContactTitle": "Sales Representative", + "Address": "Via Monte Bianco 34", + "City": "Torino", + "Region": null, + "PostalCode": "10100", + "Country": "Italy", + "Phone": "011-4988260", + "Fax": "011-4988261" + }, + { + "CustomerID": "FURIB", + "CompanyName": "Furia Bacalhau e Frutos do Mar", + "ContactName": "Lino Rodriguez", + "ContactTitle": "Sales Manager", + "Address": "Jardim das rosas n. 32", + "City": "Lisboa", + "Region": null, + "PostalCode": "1675", + "Country": "Portugal", + "Phone": "(1) 354-2534", + "Fax": "(1) 354-2535" + }, + { + "CustomerID": "GALED", + "CompanyName": "Galería del gastrónomo", + "ContactName": "Eduardo Saavedra", + "ContactTitle": "Marketing Manager", + "Address": "Rambla de Cataluña, 23", + "City": "Barcelona", + "Region": null, + "PostalCode": "08022", + "Country": "Spain", + "Phone": "(93) 203 4560", + "Fax": "(93) 203 4561" + }, + { + "CustomerID": "GODOS", + "CompanyName": "Godos Cocina Típica", + "ContactName": "José Pedro Freyre", + "ContactTitle": "Sales Manager", + "Address": "C/ Romero, 33", + "City": "Sevilla", + "Region": null, + "PostalCode": "41101", + "Country": "Spain", + "Phone": "(95) 555 82 82", + "Fax": null + }, + { + "CustomerID": "GOURL", + "CompanyName": "Gourmet Lanchonetes", + "ContactName": "André Fonseca", + "ContactTitle": "Sales Associate", + "Address": "Av. Brasil, 442", + "City": "Campinas", + "Region": "SP", + "PostalCode": "04876-786", + "Country": "Brazil", + "Phone": "(11) 555-9482", + "Fax": null + }, + { + "CustomerID": "GREAL", + "CompanyName": "Great Lakes Food Market", + "ContactName": "Howard Snyder", + "ContactTitle": "Marketing Manager", + "Address": "2732 Baker Blvd.", + "City": "Eugene", + "Region": "OR", + "PostalCode": "97403", + "Country": "USA", + "Phone": "(503) 555-7555", + "Fax": null + }, + { + "CustomerID": "GROSR", + "CompanyName": "GROSELLA-Restaurante", + "ContactName": "Manuel Pereira", + "ContactTitle": "Owner", + "Address": "5ª Ave. Los Palos Grandes", + "City": "Caracas", + "Region": "DF", + "PostalCode": "1081", + "Country": "Venezuela", + "Phone": "(2) 283-2951", + "Fax": "(2) 283-3397" + }, + { + "CustomerID": "HANAR", + "CompanyName": "Hanari Carnes", + "ContactName": "Mario Pontes", + "ContactTitle": "Accounting Manager", + "Address": "Rua do Paço, 67", + "City": "Rio de Janeiro", + "Region": "RJ", + "PostalCode": "05454-876", + "Country": "Brazil", + "Phone": "(21) 555-0091", + "Fax": "(21) 555-8765" + }, + { + "CustomerID": "HILAA", + "CompanyName": "HILARION-Abastos", + "ContactName": "Carlos Hernández", + "ContactTitle": "Sales Representative", + "Address": "Carrera 22 con Ave. Carlos Soublette #8-35", + "City": "San Cristóbal", + "Region": "Táchira", + "PostalCode": "5022", + "Country": "Venezuela", + "Phone": "(5) 555-1340", + "Fax": "(5) 555-1948" + }, + { + "CustomerID": "HUNGC", + "CompanyName": "Hungry Coyote Import Store", + "ContactName": "Yoshi Latimer", + "ContactTitle": "Sales Representative", + "Address": "City Center Plaza 516 Main St.", + "City": "Elgin", + "Region": "OR", + "PostalCode": "97827", + "Country": "USA", + "Phone": "(503) 555-6874", + "Fax": "(503) 555-2376" + }, + { + "CustomerID": "HUNGO", + "CompanyName": "Hungry Owl All-Night Grocers", + "ContactName": "Patricia McKenna", + "ContactTitle": "Sales Associate", + "Address": "8 Johnstown Road", + "City": "Cork", + "Region": "Co. Cork", + "PostalCode": null, + "Country": "Ireland", + "Phone": "2967 542", + "Fax": "2967 3333" + }, + { + "CustomerID": "ISLAT", + "CompanyName": "Island Trading", + "ContactName": "Helen Bennett", + "ContactTitle": "Marketing Manager", + "Address": "Garden House Crowther Way", + "City": "Cowes", + "Region": "Isle of Wight", + "PostalCode": "PO31 7PJ", + "Country": "UK", + "Phone": "(198) 555-8888", + "Fax": null + }, + { + "CustomerID": "KOENE", + "CompanyName": "Königlich Essen", + "ContactName": "Philip Cramer", + "ContactTitle": "Sales Associate", + "Address": "Maubelstr. 90", + "City": "Brandenburg", + "Region": null, + "PostalCode": "14776", + "Country": "Germany", + "Phone": "0555-09876", + "Fax": null + }, + { + "CustomerID": "LACOR", + "CompanyName": "La corne d'abondance", + "ContactName": "Daniel Tonini", + "ContactTitle": "Sales Representative", + "Address": "67, avenue de l'Europe", + "City": "Versailles", + "Region": null, + "PostalCode": "78000", + "Country": "France", + "Phone": "30.59.84.10", + "Fax": "30.59.85.11" + }, + { + "CustomerID": "LAMAI", + "CompanyName": "La maison d'Asie", + "ContactName": "Annette Roulet", + "ContactTitle": "Sales Manager", + "Address": "1 rue Alsace-Lorraine", + "City": "Toulouse", + "Region": null, + "PostalCode": "31000", + "Country": "France", + "Phone": "61.77.61.10", + "Fax": "61.77.61.11" + }, + { + "CustomerID": "LAUGB", + "CompanyName": "Laughing Bacchus Wine Cellars", + "ContactName": "Yoshi Tannamuri", + "ContactTitle": "Marketing Assistant", + "Address": "1900 Oak St.", + "City": "Vancouver", + "Region": "BC", + "PostalCode": "V3F 2K1", + "Country": "Canada", + "Phone": "(604) 555-3392", + "Fax": "(604) 555-7293" + }, + { + "CustomerID": "LAZYK", + "CompanyName": "Lazy K Kountry Store", + "ContactName": "John Steel", + "ContactTitle": "Marketing Manager", + "Address": "12 Orchestra Terrace", + "City": "Walla Walla", + "Region": "WA", + "PostalCode": "99362", + "Country": "USA", + "Phone": "(509) 555-7969", + "Fax": "(509) 555-6221" + }, + { + "CustomerID": "LEHMS", + "CompanyName": "Lehmanns Marktstand", + "ContactName": "Renate Messner", + "ContactTitle": "Sales Representative", + "Address": "Magazinweg 7", + "City": "Frankfurt a.M.", + "Region": null, + "PostalCode": "60528", + "Country": "Germany", + "Phone": "069-0245984", + "Fax": "069-0245874" + }, + { + "CustomerID": "LETSS", + "CompanyName": "Let's Stop N Shop", + "ContactName": "Jaime Yorres", + "ContactTitle": "Owner", + "Address": "87 Polk St. Suite 5", + "City": "San Francisco", + "Region": "CA", + "PostalCode": "94117", + "Country": "USA", + "Phone": "(415) 555-5938", + "Fax": null + }, + { + "CustomerID": "LILAS", + "CompanyName": "LILA-Supermercado", + "ContactName": "Carlos González", + "ContactTitle": "Accounting Manager", + "Address": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "City": "Barquisimeto", + "Region": "Lara", + "PostalCode": "3508", + "Country": "Venezuela", + "Phone": "(9) 331-6954", + "Fax": "(9) 331-7256" + }, + { + "CustomerID": "LINOD", + "CompanyName": "LINO-Delicateses", + "ContactName": "Felipe Izquierdo", + "ContactTitle": "Owner", + "Address": "Ave. 5 de Mayo Porlamar", + "City": "I. de Margarita", + "Region": "Nueva Esparta", + "PostalCode": "4980", + "Country": "Venezuela", + "Phone": "(8) 34-56-12", + "Fax": "(8) 34-93-93" + }, + { + "CustomerID": "LONEP", + "CompanyName": "Lonesome Pine Restaurant", + "ContactName": "Fran Wilson", + "ContactTitle": "Sales Manager", + "Address": "89 Chiaroscuro Rd.", + "City": "Portland", + "Region": "OR", + "PostalCode": "97219", + "Country": "USA", + "Phone": "(503) 555-9573", + "Fax": "(503) 555-9646" + }, + { + "CustomerID": "MAGAA", + "CompanyName": "Magazzini Alimentari Riuniti", + "ContactName": "Giovanni Rovelli", + "ContactTitle": "Marketing Manager", + "Address": "Via Ludovico il Moro 22", + "City": "Bergamo", + "Region": null, + "PostalCode": "24100", + "Country": "Italy", + "Phone": "035-640230", + "Fax": "035-640231" + }, + { + "CustomerID": "MAISD", + "CompanyName": "Maison Dewey", + "ContactName": "Catherine Dewey", + "ContactTitle": "Sales Agent", + "Address": "Rue Joseph-Bens 532", + "City": "Bruxelles", + "Region": null, + "PostalCode": "B-1180", + "Country": "Belgium", + "Phone": "(02) 201 24 67", + "Fax": "(02) 201 24 68" + }, + { + "CustomerID": "MEREP", + "CompanyName": "Mère Paillarde", + "ContactName": "Jean Fresnière", + "ContactTitle": "Marketing Assistant", + "Address": "43 rue St. Laurent", + "City": "Montréal", + "Region": "Québec", + "PostalCode": "H1J 1C3", + "Country": "Canada", + "Phone": "(514) 555-8054", + "Fax": "(514) 555-8055" + }, + { + "CustomerID": "MORGK", + "CompanyName": "Morgenstern Gesundkost", + "ContactName": "Alexander Feuer", + "ContactTitle": "Marketing Assistant", + "Address": "Heerstr. 22", + "City": "Leipzig", + "Region": null, + "PostalCode": "04179", + "Country": "Germany", + "Phone": "0342-023176", + "Fax": null + }, + { + "CustomerID": "NORTS", + "CompanyName": "North/South", + "ContactName": "Simon Crowther", + "ContactTitle": "Sales Associate", + "Address": "South House 300 Queensbridge", + "City": "London", + "Region": null, + "PostalCode": "SW7 1RZ", + "Country": "UK", + "Phone": "(171) 555-7733", + "Fax": "(171) 555-2530" + }, + { + "CustomerID": "OCEAN", + "CompanyName": "Océano Atlántico Ltda.", + "ContactName": "Yvonne Moncada", + "ContactTitle": "Sales Agent", + "Address": "Ing. Gustavo Moncada 8585 Piso 20-A", + "City": "Buenos Aires", + "Region": null, + "PostalCode": "1010", + "Country": "Argentina", + "Phone": "(1) 135-5333", + "Fax": "(1) 135-5535" + }, + { + "CustomerID": "OLDWO", + "CompanyName": "Old World Delicatessen", + "ContactName": "Rene Phillips", + "ContactTitle": "Sales Representative", + "Address": "2743 Bering St.", + "City": "Anchorage", + "Region": "AK", + "PostalCode": "99508", + "Country": "USA", + "Phone": "(907) 555-7584", + "Fax": "(907) 555-2880" + }, + { + "CustomerID": "OTTIK", + "CompanyName": "Ottilies Käseladen", + "ContactName": "Henriette Pfalzheim", + "ContactTitle": "Owner", + "Address": "Mehrheimerstr. 369", + "City": "Köln", + "Region": null, + "PostalCode": "50739", + "Country": "Germany", + "Phone": "0221-0644327", + "Fax": "0221-0765721" + }, + { + "CustomerID": "PARIS", + "CompanyName": "Paris spécialités", + "ContactName": "Marie Bertrand", + "ContactTitle": "Owner", + "Address": "265, boulevard Charonne", + "City": "Paris", + "Region": null, + "PostalCode": "75012", + "Country": "France", + "Phone": "(1) 42.34.22.66", + "Fax": "(1) 42.34.22.77" + }, + { + "CustomerID": "PERIC", + "CompanyName": "Pericles Comidas clásicas", + "ContactName": "Guillermo Fernández", + "ContactTitle": "Sales Representative", + "Address": "Calle Dr. Jorge Cash 321", + "City": "México D.F.", + "Region": null, + "PostalCode": "05033", + "Country": "Mexico", + "Phone": "(5) 552-3745", + "Fax": "(5) 545-3745" + }, + { + "CustomerID": "PICCO", + "CompanyName": "Piccolo und mehr", + "ContactName": "Georg Pipps", + "ContactTitle": "Sales Manager", + "Address": "Geislweg 14", + "City": "Salzburg", + "Region": null, + "PostalCode": "5020", + "Country": "Austria", + "Phone": "6562-9722", + "Fax": "6562-9723" + }, + { + "CustomerID": "PRINI", + "CompanyName": "Princesa Isabel Vinhos", + "ContactName": "Isabel de Castro", + "ContactTitle": "Sales Representative", + "Address": "Estrada da saúde n. 58", + "City": "Lisboa", + "Region": null, + "PostalCode": "1756", + "Country": "Portugal", + "Phone": "(1) 356-5634", + "Fax": null + }, + { + "CustomerID": "QUEDE", + "CompanyName": "Que Delícia", + "ContactName": "Bernardo Batista", + "ContactTitle": "Accounting Manager", + "Address": "Rua da Panificadora, 12", + "City": "Rio de Janeiro", + "Region": "RJ", + "PostalCode": "02389-673", + "Country": "Brazil", + "Phone": "(21) 555-4252", + "Fax": "(21) 555-4545" + }, + { + "CustomerID": "QUEEN", + "CompanyName": "Queen Cozinha", + "ContactName": "Lúcia Carvalho", + "ContactTitle": "Marketing Assistant", + "Address": "Alameda dos Canàrios, 891", + "City": "Sao Paulo", + "Region": "SP", + "PostalCode": "05487-020", + "Country": "Brazil", + "Phone": "(11) 555-1189", + "Fax": null + }, + { + "CustomerID": "QUICK", + "CompanyName": "QUICK-Stop", + "ContactName": "Horst Kloss", + "ContactTitle": "Accounting Manager", + "Address": "Taucherstraße 10", + "City": "Cunewalde", + "Region": null, + "PostalCode": "01307", + "Country": "Germany", + "Phone": "0372-035188", + "Fax": null + }, + { + "CustomerID": "RANCH", + "CompanyName": "Rancho grande", + "ContactName": "Sergio Gutiérrez", + "ContactTitle": "Sales Representative", + "Address": "Av. del Libertador 900", + "City": "Buenos Aires", + "Region": null, + "PostalCode": "1010", + "Country": "Argentina", + "Phone": "(1) 123-5555", + "Fax": "(1) 123-5556" + }, + { + "CustomerID": "RATTC", + "CompanyName": "Rattlesnake Canyon Grocery", + "ContactName": "Paula Wilson", + "ContactTitle": "Assistant Sales Representative", + "Address": "2817 Milton Dr.", + "City": "Albuquerque", + "Region": "NM", + "PostalCode": "87110", + "Country": "USA", + "Phone": "(505) 555-5939", + "Fax": "(505) 555-3620" + }, + { + "CustomerID": "REGGC", + "CompanyName": "Reggiani Caseifici", + "ContactName": "Maurizio Moroni", + "ContactTitle": "Sales Associate", + "Address": "Strada Provinciale 124", + "City": "Reggio Emilia", + "Region": null, + "PostalCode": "42100", + "Country": "Italy", + "Phone": "0522-556721", + "Fax": "0522-556722" + }, + { + "CustomerID": "RICAR", + "CompanyName": "Ricardo Adocicados", + "ContactName": "Janete Limeira", + "ContactTitle": "Assistant Sales Agent", + "Address": "Av. Copacabana, 267", + "City": "Rio de Janeiro", + "Region": "RJ", + "PostalCode": "02389-890", + "Country": "Brazil", + "Phone": "(21) 555-3412", + "Fax": null + }, + { + "CustomerID": "RICSU", + "CompanyName": "Richter Supermarkt", + "ContactName": "Michael Holz", + "ContactTitle": "Sales Manager", + "Address": "Grenzacherweg 237", + "City": "Genève", + "Region": null, + "PostalCode": "1203", + "Country": "Switzerland", + "Phone": "0897-034214", + "Fax": null + }, + { + "CustomerID": "ROMEY", + "CompanyName": "Romero y tomillo", + "ContactName": "Alejandra Camino", + "ContactTitle": "Accounting Manager", + "Address": "Gran Vía, 1", + "City": "Madrid", + "Region": null, + "PostalCode": "28001", + "Country": "Spain", + "Phone": "(91) 745 6200", + "Fax": "(91) 745 6210" + }, + { + "CustomerID": "SANTG", + "CompanyName": "Santé Gourmet", + "ContactName": "Jonas Bergulfsen", + "ContactTitle": "Owner", + "Address": "Erling Skakkes gate 78", + "City": "Stavern", + "Region": null, + "PostalCode": "4110", + "Country": "Norway", + "Phone": "07-98 92 35", + "Fax": "07-98 92 47" + }, + { + "CustomerID": "SAVEA", + "CompanyName": "Save-a-lot Markets", + "ContactName": "Jose Pavarotti", + "ContactTitle": "Sales Representative", + "Address": "187 Suffolk Ln.", + "City": "Boise", + "Region": "ID", + "PostalCode": "83720", + "Country": "USA", + "Phone": "(208) 555-8097", + "Fax": null + }, + { + "CustomerID": "SEVES", + "CompanyName": "Seven Seas Imports", + "ContactName": "Hari Kumar", + "ContactTitle": "Sales Manager", + "Address": "90 Wadhurst Rd.", + "City": "London", + "Region": null, + "PostalCode": "OX15 4NB", + "Country": "UK", + "Phone": "(171) 555-1717", + "Fax": "(171) 555-5646" + }, + { + "CustomerID": "SIMOB", + "CompanyName": "Simons bistro", + "ContactName": "Jytte Petersen", + "ContactTitle": "Owner", + "Address": "Vinbæltet 34", + "City": "Kobenhavn", + "Region": null, + "PostalCode": "1734", + "Country": "Denmark", + "Phone": "31 12 34 56", + "Fax": "31 13 35 57" + }, + { + "CustomerID": "SPECD", + "CompanyName": "Spécialités du monde", + "ContactName": "Dominique Perrier", + "ContactTitle": "Marketing Manager", + "Address": "25, rue Lauriston", + "City": "Paris", + "Region": null, + "PostalCode": "75016", + "Country": "France", + "Phone": "(1) 47.55.60.10", + "Fax": "(1) 47.55.60.20" + }, + { + "CustomerID": "SPLIR", + "CompanyName": "Split Rail Beer & Ale", + "ContactName": "Art Braunschweiger", + "ContactTitle": "Sales Manager", + "Address": "P.O. Box 555", + "City": "Lander", + "Region": "WY", + "PostalCode": "82520", + "Country": "USA", + "Phone": "(307) 555-4680", + "Fax": "(307) 555-6525" + }, + { + "CustomerID": "SUPRD", + "CompanyName": "Suprêmes délices", + "ContactName": "Pascale Cartrain", + "ContactTitle": "Accounting Manager", + "Address": "Boulevard Tirou, 255", + "City": "Charleroi", + "Region": null, + "PostalCode": "B-6000", + "Country": "Belgium", + "Phone": "(071) 23 67 22 20", + "Fax": "(071) 23 67 22 21" + }, + { + "CustomerID": "THEBI", + "CompanyName": "The Big Cheese", + "ContactName": "Liz Nixon", + "ContactTitle": "Marketing Manager", + "Address": "89 Jefferson Way Suite 2", + "City": "Portland", + "Region": "OR", + "PostalCode": "97201", + "Country": "USA", + "Phone": "(503) 555-3612", + "Fax": null + }, + { + "CustomerID": "THECR", + "CompanyName": "The Cracker Box", + "ContactName": "Liu Wong", + "ContactTitle": "Marketing Assistant", + "Address": "55 Grizzly Peak Rd.", + "City": "Butte", + "Region": "MT", + "PostalCode": "59801", + "Country": "USA", + "Phone": "(406) 555-5834", + "Fax": "(406) 555-8083" + }, + { + "CustomerID": "TOMSP", + "CompanyName": "Toms Spezialitäten", + "ContactName": "Karin Josephs", + "ContactTitle": "Marketing Manager", + "Address": "Luisenstr. 48", + "City": "Münster", + "Region": null, + "PostalCode": "44087", + "Country": "Germany", + "Phone": "0251-031259", + "Fax": "0251-035695" + }, + { + "CustomerID": "TORTU", + "CompanyName": "Tortuga Restaurante", + "ContactName": "Miguel Angel Paolino", + "ContactTitle": "Owner", + "Address": "Avda. Azteca 123", + "City": "México D.F.", + "Region": null, + "PostalCode": "05033", + "Country": "Mexico", + "Phone": "(5) 555-2933", + "Fax": null + }, + { + "CustomerID": "TRADH", + "CompanyName": "Tradição Hipermercados", + "ContactName": "Anabela Domingues", + "ContactTitle": "Sales Representative", + "Address": "Av. Inês de Castro, 414", + "City": "Sao Paulo", + "Region": "SP", + "PostalCode": "05634-030", + "Country": "Brazil", + "Phone": "(11) 555-2167", + "Fax": "(11) 555-2168" + }, + { + "CustomerID": "TRAIH", + "CompanyName": "Trail's Head Gourmet Provisioners", + "ContactName": "Helvetius Nagy", + "ContactTitle": "Sales Associate", + "Address": "722 DaVinci Blvd.", + "City": "Kirkland", + "Region": "WA", + "PostalCode": "98034", + "Country": "USA", + "Phone": "(206) 555-8257", + "Fax": "(206) 555-2174" + }, + { + "CustomerID": "VAFFE", + "CompanyName": "Vaffeljernet", + "ContactName": "Palle Ibsen", + "ContactTitle": "Sales Manager", + "Address": "Smagsloget 45", + "City": "Århus", + "Region": null, + "PostalCode": "8200", + "Country": "Denmark", + "Phone": "86 21 32 43", + "Fax": "86 22 33 44" + }, + { + "CustomerID": "VICTE", + "CompanyName": "Victuailles en stock", + "ContactName": "Mary Saveley", + "ContactTitle": "Sales Agent", + "Address": "2, rue du Commerce", + "City": "Lyon", + "Region": null, + "PostalCode": "69004", + "Country": "France", + "Phone": "78.32.54.86", + "Fax": "78.32.54.87" + }, + { + "CustomerID": "VINET", + "CompanyName": "Vins et alcools Chevalier", + "ContactName": "Paul Henriot", + "ContactTitle": "Accounting Manager", + "Address": "59 rue de l'Abbaye", + "City": "Reims", + "Region": null, + "PostalCode": "51100", + "Country": "France", + "Phone": "26.47.15.10", + "Fax": "26.47.15.11" + }, + { + "CustomerID": "WANDK", + "CompanyName": "Die Wandernde Kuh", + "ContactName": "Rita Müller", + "ContactTitle": "Sales Representative", + "Address": "Adenauerallee 900", + "City": "Stuttgart", + "Region": null, + "PostalCode": "70563", + "Country": "Germany", + "Phone": "0711-020361", + "Fax": "0711-035428" + }, + { + "CustomerID": "WARTH", + "CompanyName": "Wartian Herkku", + "ContactName": "Pirkko Koskitalo", + "ContactTitle": "Accounting Manager", + "Address": "Torikatu 38", + "City": "Oulu", + "Region": null, + "PostalCode": "90110", + "Country": "Finland", + "Phone": "981-443655", + "Fax": "981-443655" + }, + { + "CustomerID": "WELLI", + "CompanyName": "Wellington Importadora", + "ContactName": "Paula Parente", + "ContactTitle": "Sales Manager", + "Address": "Rua do Mercado, 12", + "City": "Resende", + "Region": "SP", + "PostalCode": "08737-363", + "Country": "Brazil", + "Phone": "(14) 555-8122", + "Fax": null + }, + { + "CustomerID": "WHITC", + "CompanyName": "White Clover Markets", + "ContactName": "Karl Jablonski", + "ContactTitle": "Owner", + "Address": "305 - 14th Ave. S. Suite 3B", + "City": "Seattle", + "Region": "WA", + "PostalCode": "98128", + "Country": "USA", + "Phone": "(206) 555-4112", + "Fax": "(206) 555-4115" + }, + { + "CustomerID": "WILMK", + "CompanyName": "Wilman Kala", + "ContactName": "Matti Karttunen", + "ContactTitle": "Owner/Marketing Assistant", + "Address": "Keskuskatu 45", + "City": "Helsinki", + "Region": null, + "PostalCode": "21240", + "Country": "Finland", + "Phone": "90-224 8858", + "Fax": "90-224 8858" + }, + { + "CustomerID": "WOLZA", + "CompanyName": "Wolski Zajazd", + "ContactName": "Zbyszek Piestrzeniewicz", + "ContactTitle": "Owner", + "Address": "ul. Filtrowa 68", + "City": "Warszawa", + "Region": null, + "PostalCode": "01-012", + "Country": "Poland", + "Phone": "(26) 642-7012", + "Fax": "(26) 642-7012" + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/scripts/db/Employees.json b/samples/msgext-copilot-handoff/ts/scripts/db/Employees.json new file mode 100644 index 0000000..7cb9a03 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/scripts/db/Employees.json @@ -0,0 +1,166 @@ +{ + "Employees": [ + { + "EmployeeID": 1, + "LastName": "Davolio", + "FirstName": "Nancy", + "Title": "Sales Representative", + "TitleOfCourtesy": "Ms.", + "BirthDate": "1958-12-08T00:00:00Z", + "HireDate": "2002-05-01T00:00:00Z", + "Address": "507 - 20th Ave. E.\r\nApt. 2A", + "City": "Seattle", + "Region": "WA", + "PostalCode": "98122", + "Country": "USA", + "HomePhone": "(206) 555-9857", + "Extension": "5467", + "Notes": "Education includes a BA in psychology from Colorado State University in 1970. She also completed \"The Art of the Cold Call.\" Nancy is a member of Toastmasters International.", + "ReportsTo": 2 + }, + { + "EmployeeID": 2, + "LastName": "Fuller", + "FirstName": "Andrew", + "Title": "Vice President, Sales", + "TitleOfCourtesy": "Dr.", + "BirthDate": "1962-02-19T00:00:00Z", + "HireDate": "2002-08-14T00:00:00Z", + "Address": "908 W. Capital Way", + "City": "Tacoma", + "Region": "WA", + "PostalCode": "98401", + "Country": "USA", + "HomePhone": "(206) 555-9482", + "Extension": "3457", + "Notes": "Andrew received his BTS commercial in 1974 and a Ph.D. in international marketing from the University of Dallas in 1981. He is fluent in French and Italian and reads German. He joined the company as a sales representative, was promoted to sales manager in January 1992 and to vice president of sales in March 1993. Andrew is a member of the Sales Management Roundtable, the Seattle Chamber of Commerce, and the Pacific Rim Importers Association.", + "ReportsTo": null + }, + { + "EmployeeID": 3, + "LastName": "Leverling", + "FirstName": "Janet", + "Title": "Sales Representative", + "TitleOfCourtesy": "Ms.", + "BirthDate": "1973-08-30T00:00:00Z", + "HireDate": "2012-04-01T00:00:00Z", + "Address": "722 Moss Bay Blvd.", + "City": "Kirkland", + "Region": "WA", + "PostalCode": "98033", + "Country": "USA", + "HomePhone": "(206) 555-3412", + "Extension": "3355", + "Notes": "Janet has a BS degree in chemistry from Boston College (1984). She has also completed a certificate program in food retailing management. Janet was hired as a sales associate in 1991 and promoted to sales representative in February 1992.", + "ReportsTo": 2 + }, + { + "EmployeeID": 4, + "LastName": "Peacock", + "FirstName": "Margaret", + "Title": "Sales Representative", + "TitleOfCourtesy": "Mrs.", + "BirthDate": "1957-09-19T00:00:00Z", + "HireDate": "2013-05-03T00:00:00Z", + "Address": "4110 Old Redmond Rd.", + "City": "Redmond", + "Region": "WA", + "PostalCode": "98052", + "Country": "USA", + "HomePhone": "(206) 555-8122", + "Extension": "5176", + "Notes": "Margaret holds a BA in English literature from Concordia College (1958) and an MA from the American Institute of Culinary Arts (1966). She was assigned to the London office temporarily from July through November 1992.", + "ReportsTo": 2 + }, + { + "EmployeeID": 5, + "LastName": "Buchanan", + "FirstName": "Steven", + "Title": "Sales Manager", + "TitleOfCourtesy": "Mr.", + "BirthDate": "1985-03-04T00:00:00Z", + "HireDate": "1993-10-17T00:00:00Z", + "Address": "14 Garrett Hill", + "City": "London", + "Region": null, + "PostalCode": "SW1 8JR", + "Country": "UK", + "HomePhone": "(71) 555-4848", + "Extension": "3453", + "Notes": "Steven Buchanan graduated from St. Andrews University, Scotland, with a BSC degree in 1976. Upon joining the company as a sales representative in 1992, he spent 6 months in an orientation program at the Seattle office and then returned to his permanent post in London. He was promoted to sales manager in March 1993. Mr. Buchanan has completed the courses \"Successful Telemarketing\" and \"International Sales Management.\" He is fluent in French.", + "ReportsTo": 2 + }, + { + "EmployeeID": 6, + "LastName": "Suyama", + "FirstName": "Michael", + "Title": "Sales Representative", + "TitleOfCourtesy": "Mr.", + "BirthDate": "1973-07-02T00:00:00Z", + "HireDate": "2008-10-17T00:00:00Z", + "Address": "Coventry House\r\nMiner Rd.", + "City": "London", + "Region": null, + "PostalCode": "EC2 7JR", + "Country": "UK", + "HomePhone": "(71) 555-7773", + "Extension": "428", + "Notes": "Michael is a graduate of Sussex University (MA, economics, 1983) and the University of California at Los Angeles (MBA, marketing, 1986). He has also taken the courses \"Multi-Cultural Selling\" and \"Time Management for the Sales Professional.\" He is fluent in Japanese and can read and write French, Portuguese, and Spanish.", + "ReportsTo": 5 + }, + { + "EmployeeID": 7, + "LastName": "King", + "FirstName": "Robert", + "Title": "Sales Representative", + "TitleOfCourtesy": "Mr.", + "BirthDate": "1960-05-29T00:00:00Z", + "HireDate": "1994-01-02T00:00:00Z", + "Address": "Edgeham Hollow\r\nWinchester Way", + "City": "London", + "Region": null, + "PostalCode": "RG1 9SP", + "Country": "UK", + "HomePhone": "(71) 555-5598", + "Extension": "465", + "Notes": "Robert King served in the Peace Corps and traveled extensively before completing his degree in English at the University of Michigan in 1992, the year he joined the company. After completing a course entitled \"Selling in Europe,\" he was transferred to the London office in March 1993.", + "ReportsTo": 5 + }, + { + "EmployeeID": 8, + "LastName": "Callahan", + "FirstName": "Laura", + "Title": "Inside Sales Coordinator", + "TitleOfCourtesy": "Ms.", + "BirthDate": "1988-01-09T00:00:00Z", + "HireDate": "1999-03-05T00:00:00Z", + "Address": "4726 - 11th Ave. N.E.", + "City": "Seattle", + "Region": "WA", + "PostalCode": "98105", + "Country": "USA", + "HomePhone": "(206) 555-1189", + "Extension": "2344", + "Notes": "Laura received a BA in psychology from the University of Washington. She has also completed a course in business French. She reads and writes French.", + "ReportsTo": 2 + }, + { + "EmployeeID": 9, + "LastName": "Dodsworth", + "FirstName": "Anne", + "Title": "Sales Representative", + "TitleOfCourtesy": "Ms.", + "BirthDate": "1976-01-27T00:00:00Z", + "HireDate": "2019-11-15T00:00:00Z", + "Address": "7 Houndstooth Rd.", + "City": "London", + "Region": null, + "PostalCode": "WG2 7LT", + "Country": "UK", + "HomePhone": "(71) 555-4444", + "Extension": "452", + "Notes": "Anne has a BA degree in English from St. Lawrence College. She is fluent in French and German.", + "ReportsTo": 5 + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/scripts/db/OrderDetails.json b/samples/msgext-copilot-handoff/ts/scripts/db/OrderDetails.json new file mode 100644 index 0000000..5463dfa --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/scripts/db/OrderDetails.json @@ -0,0 +1,15089 @@ +{ + "OrderDetails": [ + { + "OrderID": 10248, + "ProductID": 11, + "UnitPrice": 14, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10248, + "ProductID": 42, + "UnitPrice": 9.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10248, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10249, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10249, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10250, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10250, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 35, + "Discount": 0.15 + }, + { + "OrderID": 10250, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10251, + "ProductID": 22, + "UnitPrice": 16.8, + "Quantity": 6, + "Discount": 0.05 + }, + { + "OrderID": 10251, + "ProductID": 57, + "UnitPrice": 15.6, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10251, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10252, + "ProductID": 20, + "UnitPrice": 64.8, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 10252, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 25, + "Discount": 0.05 + }, + { + "OrderID": 10252, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10253, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10253, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 42, + "Discount": 0 + }, + { + "OrderID": 10253, + "ProductID": 49, + "UnitPrice": 16, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10254, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10254, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 21, + "Discount": 0.15 + }, + { + "OrderID": 10254, + "ProductID": 74, + "UnitPrice": 8, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10255, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10255, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10255, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10255, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10256, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10256, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10257, + "ProductID": 27, + "UnitPrice": 35.1, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10257, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10257, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10258, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10258, + "ProductID": 5, + "UnitPrice": 17, + "Quantity": 65, + "Discount": 0.2 + }, + { + "OrderID": 10258, + "ProductID": 32, + "UnitPrice": 25.6, + "Quantity": 6, + "Discount": 0.2 + }, + { + "OrderID": 10259, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10259, + "ProductID": 37, + "UnitPrice": 20.8, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10260, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 16, + "Discount": 0.25 + }, + { + "OrderID": 10260, + "ProductID": 57, + "UnitPrice": 15.6, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10260, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10260, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 21, + "Discount": 0.25 + }, + { + "OrderID": 10261, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10261, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10262, + "ProductID": 5, + "UnitPrice": 17, + "Quantity": 12, + "Discount": 0.2 + }, + { + "OrderID": 10262, + "ProductID": 7, + "UnitPrice": 24, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10262, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10263, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 60, + "Discount": 0.25 + }, + { + "OrderID": 10263, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10263, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 60, + "Discount": 0.25 + }, + { + "OrderID": 10263, + "ProductID": 74, + "UnitPrice": 8, + "Quantity": 36, + "Discount": 0.25 + }, + { + "OrderID": 10264, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10264, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 25, + "Discount": 0.15 + }, + { + "OrderID": 10265, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10265, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10266, + "ProductID": 12, + "UnitPrice": 30.4, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10267, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10267, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 70, + "Discount": 0.15 + }, + { + "OrderID": 10267, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10268, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10268, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10269, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 10269, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10270, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10270, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10271, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10272, + "ProductID": 20, + "UnitPrice": 64.8, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10272, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10272, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10273, + "ProductID": 10, + "UnitPrice": 24.8, + "Quantity": 24, + "Discount": 0.05 + }, + { + "OrderID": 10273, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10273, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10273, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 10273, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 33, + "Discount": 0.05 + }, + { + "OrderID": 10274, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10274, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10275, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10275, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 6, + "Discount": 0.05 + }, + { + "OrderID": 10276, + "ProductID": 10, + "UnitPrice": 24.8, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10276, + "ProductID": 13, + "UnitPrice": 4.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10277, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10277, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10278, + "ProductID": 44, + "UnitPrice": 15.5, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10278, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10278, + "ProductID": 63, + "UnitPrice": 35.1, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10278, + "ProductID": 73, + "UnitPrice": 12, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10279, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10280, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10280, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10280, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10281, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10281, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10281, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10282, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10282, + "ProductID": 57, + "UnitPrice": 15.6, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10283, + "ProductID": 15, + "UnitPrice": 12.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10283, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10283, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10283, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10284, + "ProductID": 27, + "UnitPrice": 35.1, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10284, + "ProductID": 44, + "UnitPrice": 15.5, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10284, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10284, + "ProductID": 67, + "UnitPrice": 11.2, + "Quantity": 5, + "Discount": 0.25 + }, + { + "OrderID": 10285, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 45, + "Discount": 0.2 + }, + { + "OrderID": 10285, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10285, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 36, + "Discount": 0.2 + }, + { + "OrderID": 10286, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 100, + "Discount": 0 + }, + { + "OrderID": 10286, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10287, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10287, + "ProductID": 34, + "UnitPrice": 11.2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10287, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10288, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10288, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 3, + "Discount": 0.1 + }, + { + "OrderID": 10289, + "ProductID": 3, + "UnitPrice": 8, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10289, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10290, + "ProductID": 5, + "UnitPrice": 17, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10290, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10290, + "ProductID": 49, + "UnitPrice": 16, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10290, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10291, + "ProductID": 13, + "UnitPrice": 4.8, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10291, + "ProductID": 44, + "UnitPrice": 15.5, + "Quantity": 24, + "Discount": 0.1 + }, + { + "OrderID": 10291, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 2, + "Discount": 0.1 + }, + { + "OrderID": 10292, + "ProductID": 20, + "UnitPrice": 64.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10293, + "ProductID": 18, + "UnitPrice": 50, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10293, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10293, + "ProductID": 63, + "UnitPrice": 35.1, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10293, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10294, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10294, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10294, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10294, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10294, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10295, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10296, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10296, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10296, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10297, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10297, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10298, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10298, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10298, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10298, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10299, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10299, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10300, + "ProductID": 66, + "UnitPrice": 13.6, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10300, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10301, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10301, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10302, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10302, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10302, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10303, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 10303, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10303, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10304, + "ProductID": 49, + "UnitPrice": 16, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10304, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10304, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10305, + "ProductID": 18, + "UnitPrice": 50, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10305, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10305, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10306, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10306, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10306, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10307, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10307, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10308, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10308, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10309, + "ProductID": 4, + "UnitPrice": 17.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10309, + "ProductID": 6, + "UnitPrice": 20, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10309, + "ProductID": 42, + "UnitPrice": 11.2, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10309, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10309, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10310, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10310, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10311, + "ProductID": 42, + "UnitPrice": 11.2, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10311, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10312, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10312, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10312, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10312, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10313, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10314, + "ProductID": 32, + "UnitPrice": 25.6, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 10314, + "ProductID": 58, + "UnitPrice": 10.6, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10314, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10315, + "ProductID": 34, + "UnitPrice": 11.2, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10315, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10316, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10316, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10317, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10318, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10318, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10319, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10319, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10319, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10320, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10321, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10322, + "ProductID": 52, + "UnitPrice": 5.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10323, + "ProductID": 15, + "UnitPrice": 12.4, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10323, + "ProductID": 25, + "UnitPrice": 11.2, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10323, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10324, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 21, + "Discount": 0.15 + }, + { + "OrderID": 10324, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 70, + "Discount": 0.15 + }, + { + "OrderID": 10324, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10324, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10324, + "ProductID": 63, + "UnitPrice": 35.1, + "Quantity": 80, + "Discount": 0.15 + }, + { + "OrderID": 10325, + "ProductID": 6, + "UnitPrice": 20, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10325, + "ProductID": 13, + "UnitPrice": 4.8, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10325, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10325, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10325, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10326, + "ProductID": 4, + "UnitPrice": 17.6, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10326, + "ProductID": 57, + "UnitPrice": 15.6, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10326, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10327, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 25, + "Discount": 0.2 + }, + { + "OrderID": 10327, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10327, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 35, + "Discount": 0.2 + }, + { + "OrderID": 10327, + "ProductID": 58, + "UnitPrice": 10.6, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10328, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10328, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10328, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10329, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10329, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 8, + "Discount": 0.05 + }, + { + "OrderID": 10329, + "ProductID": 38, + "UnitPrice": 210.8, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10329, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10330, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 50, + "Discount": 0.15 + }, + { + "OrderID": 10330, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 25, + "Discount": 0.15 + }, + { + "OrderID": 10331, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10332, + "ProductID": 18, + "UnitPrice": 50, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10332, + "ProductID": 42, + "UnitPrice": 11.2, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10332, + "ProductID": 47, + "UnitPrice": 7.6, + "Quantity": 16, + "Discount": 0.2 + }, + { + "OrderID": 10333, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10333, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10333, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 10334, + "ProductID": 52, + "UnitPrice": 5.6, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10334, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10335, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 7, + "Discount": 0.2 + }, + { + "OrderID": 10335, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 25, + "Discount": 0.2 + }, + { + "OrderID": 10335, + "ProductID": 32, + "UnitPrice": 25.6, + "Quantity": 6, + "Discount": 0.2 + }, + { + "OrderID": 10335, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 48, + "Discount": 0.2 + }, + { + "OrderID": 10336, + "ProductID": 4, + "UnitPrice": 17.6, + "Quantity": 18, + "Discount": 0.1 + }, + { + "OrderID": 10337, + "ProductID": 23, + "UnitPrice": 7.2, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10337, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10337, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10337, + "ProductID": 37, + "UnitPrice": 20.8, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10337, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10338, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10338, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10339, + "ProductID": 4, + "UnitPrice": 17.6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10339, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 70, + "Discount": 0.05 + }, + { + "OrderID": 10339, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10340, + "ProductID": 18, + "UnitPrice": 50, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10340, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10340, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 10341, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10341, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 9, + "Discount": 0.15 + }, + { + "OrderID": 10342, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 24, + "Discount": 0.2 + }, + { + "OrderID": 10342, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 56, + "Discount": 0.2 + }, + { + "OrderID": 10342, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10342, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10343, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10343, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 4, + "Discount": 0.05 + }, + { + "OrderID": 10343, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10344, + "ProductID": 4, + "UnitPrice": 17.6, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10344, + "ProductID": 8, + "UnitPrice": 32, + "Quantity": 70, + "Discount": 0.25 + }, + { + "OrderID": 10345, + "ProductID": 8, + "UnitPrice": 32, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10345, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 80, + "Discount": 0 + }, + { + "OrderID": 10345, + "ProductID": 42, + "UnitPrice": 11.2, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10346, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 36, + "Discount": 0.1 + }, + { + "OrderID": 10346, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10347, + "ProductID": 25, + "UnitPrice": 11.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10347, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 50, + "Discount": 0.15 + }, + { + "OrderID": 10347, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10347, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 6, + "Discount": 0.15 + }, + { + "OrderID": 10348, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10348, + "ProductID": 23, + "UnitPrice": 7.2, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10349, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10350, + "ProductID": 50, + "UnitPrice": 13, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10350, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 18, + "Discount": 0.1 + }, + { + "OrderID": 10351, + "ProductID": 38, + "UnitPrice": 210.8, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10351, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 13, + "Discount": 0 + }, + { + "OrderID": 10351, + "ProductID": 44, + "UnitPrice": 15.5, + "Quantity": 77, + "Discount": 0.05 + }, + { + "OrderID": 10351, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10352, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10352, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10353, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 12, + "Discount": 0.2 + }, + { + "OrderID": 10353, + "ProductID": 38, + "UnitPrice": 210.8, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10354, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10354, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10355, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10355, + "ProductID": 57, + "UnitPrice": 15.6, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10356, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10356, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10356, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10357, + "ProductID": 10, + "UnitPrice": 24.8, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10357, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10357, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 8, + "Discount": 0.2 + }, + { + "OrderID": 10358, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10358, + "ProductID": 34, + "UnitPrice": 11.2, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10358, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10359, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 56, + "Discount": 0.05 + }, + { + "OrderID": 10359, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 70, + "Discount": 0.05 + }, + { + "OrderID": 10359, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 80, + "Discount": 0.05 + }, + { + "OrderID": 10360, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10360, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10360, + "ProductID": 38, + "UnitPrice": 210.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10360, + "ProductID": 49, + "UnitPrice": 16, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10360, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10361, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 54, + "Discount": 0.1 + }, + { + "OrderID": 10361, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 55, + "Discount": 0.1 + }, + { + "OrderID": 10362, + "ProductID": 25, + "UnitPrice": 11.2, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10362, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10362, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10363, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10363, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10363, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10364, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10364, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10365, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10366, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10366, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10367, + "ProductID": 34, + "UnitPrice": 11.2, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10367, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10367, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10367, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10368, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 5, + "Discount": 0.1 + }, + { + "OrderID": 10368, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 13, + "Discount": 0.1 + }, + { + "OrderID": 10368, + "ProductID": 57, + "UnitPrice": 15.6, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10368, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 35, + "Discount": 0.1 + }, + { + "OrderID": 10369, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10369, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 18, + "Discount": 0.25 + }, + { + "OrderID": 10370, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10370, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10370, + "ProductID": 74, + "UnitPrice": 8, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10371, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 6, + "Discount": 0.2 + }, + { + "OrderID": 10372, + "ProductID": 20, + "UnitPrice": 64.8, + "Quantity": 12, + "Discount": 0.25 + }, + { + "OrderID": 10372, + "ProductID": 38, + "UnitPrice": 210.8, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10372, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 70, + "Discount": 0.25 + }, + { + "OrderID": 10372, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 42, + "Discount": 0.25 + }, + { + "OrderID": 10373, + "ProductID": 58, + "UnitPrice": 10.6, + "Quantity": 80, + "Discount": 0.2 + }, + { + "OrderID": 10373, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10374, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10374, + "ProductID": 58, + "UnitPrice": 10.6, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10375, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10375, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10376, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 42, + "Discount": 0.05 + }, + { + "OrderID": 10377, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10377, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10378, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10379, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 8, + "Discount": 0.1 + }, + { + "OrderID": 10379, + "ProductID": 63, + "UnitPrice": 35.1, + "Quantity": 16, + "Discount": 0.1 + }, + { + "OrderID": 10379, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10380, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 18, + "Discount": 0.1 + }, + { + "OrderID": 10380, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10380, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 6, + "Discount": 0.1 + }, + { + "OrderID": 10380, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10381, + "ProductID": 74, + "UnitPrice": 8, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10382, + "ProductID": 5, + "UnitPrice": 17, + "Quantity": 32, + "Discount": 0 + }, + { + "OrderID": 10382, + "ProductID": 18, + "UnitPrice": 50, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10382, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10382, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10382, + "ProductID": 74, + "UnitPrice": 8, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10383, + "ProductID": 13, + "UnitPrice": 4.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10383, + "ProductID": 50, + "UnitPrice": 13, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10383, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10384, + "ProductID": 20, + "UnitPrice": 64.8, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10384, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10385, + "ProductID": 7, + "UnitPrice": 24, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10385, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10385, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 8, + "Discount": 0.2 + }, + { + "OrderID": 10386, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10386, + "ProductID": 34, + "UnitPrice": 11.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10387, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10387, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10387, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10387, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10388, + "ProductID": 45, + "UnitPrice": 7.6, + "Quantity": 15, + "Discount": 0.2 + }, + { + "OrderID": 10388, + "ProductID": 52, + "UnitPrice": 5.6, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10388, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10389, + "ProductID": 10, + "UnitPrice": 24.8, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10389, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10389, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10389, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10390, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 60, + "Discount": 0.1 + }, + { + "OrderID": 10390, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 10390, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 10390, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 24, + "Discount": 0.1 + }, + { + "OrderID": 10391, + "ProductID": 13, + "UnitPrice": 4.8, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10392, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10393, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 25, + "Discount": 0.25 + }, + { + "OrderID": 10393, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 42, + "Discount": 0.25 + }, + { + "OrderID": 10393, + "ProductID": 25, + "UnitPrice": 11.2, + "Quantity": 7, + "Discount": 0.25 + }, + { + "OrderID": 10393, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 70, + "Discount": 0.25 + }, + { + "OrderID": 10393, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 32, + "Discount": 0 + }, + { + "OrderID": 10394, + "ProductID": 13, + "UnitPrice": 4.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10394, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10395, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 28, + "Discount": 0.1 + }, + { + "OrderID": 10395, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 70, + "Discount": 0.1 + }, + { + "OrderID": 10395, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10396, + "ProductID": 23, + "UnitPrice": 7.2, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10396, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10396, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10397, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 10, + "Discount": 0.15 + }, + { + "OrderID": 10397, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 18, + "Discount": 0.15 + }, + { + "OrderID": 10398, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10398, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 120, + "Discount": 0.1 + }, + { + "OrderID": 10399, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10399, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10399, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10399, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10400, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10400, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10400, + "ProductID": 49, + "UnitPrice": 16, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10401, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10401, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10401, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10401, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10402, + "ProductID": 23, + "UnitPrice": 7.2, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10402, + "ProductID": 63, + "UnitPrice": 35.1, + "Quantity": 65, + "Discount": 0 + }, + { + "OrderID": 10403, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 21, + "Discount": 0.15 + }, + { + "OrderID": 10403, + "ProductID": 48, + "UnitPrice": 10.2, + "Quantity": 70, + "Discount": 0.15 + }, + { + "OrderID": 10404, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10404, + "ProductID": 42, + "UnitPrice": 11.2, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 10404, + "ProductID": 49, + "UnitPrice": 16, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10405, + "ProductID": 3, + "UnitPrice": 8, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10406, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10406, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10406, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 42, + "Discount": 0.1 + }, + { + "OrderID": 10406, + "ProductID": 36, + "UnitPrice": 15.2, + "Quantity": 5, + "Discount": 0.1 + }, + { + "OrderID": 10406, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 2, + "Discount": 0.1 + }, + { + "OrderID": 10407, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10407, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10407, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10408, + "ProductID": 37, + "UnitPrice": 20.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10408, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10408, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10409, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10409, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10410, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 49, + "Discount": 0 + }, + { + "OrderID": 10410, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10411, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 25, + "Discount": 0.2 + }, + { + "OrderID": 10411, + "ProductID": 44, + "UnitPrice": 15.5, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10411, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 9, + "Discount": 0.2 + }, + { + "OrderID": 10412, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10413, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10413, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10413, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10414, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 18, + "Discount": 0.05 + }, + { + "OrderID": 10414, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10415, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10415, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10416, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10416, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10416, + "ProductID": 57, + "UnitPrice": 15.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10417, + "ProductID": 38, + "UnitPrice": 210.8, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10417, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 2, + "Discount": 0.25 + }, + { + "OrderID": 10417, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 36, + "Discount": 0.25 + }, + { + "OrderID": 10417, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10418, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10418, + "ProductID": 47, + "UnitPrice": 7.6, + "Quantity": 55, + "Discount": 0 + }, + { + "OrderID": 10418, + "ProductID": 61, + "UnitPrice": 22.8, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10418, + "ProductID": 74, + "UnitPrice": 8, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10419, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 10419, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10420, + "ProductID": 9, + "UnitPrice": 77.6, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10420, + "ProductID": 13, + "UnitPrice": 4.8, + "Quantity": 2, + "Discount": 0.1 + }, + { + "OrderID": 10420, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 8, + "Discount": 0.1 + }, + { + "OrderID": 10420, + "ProductID": 73, + "UnitPrice": 12, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10421, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 4, + "Discount": 0.15 + }, + { + "OrderID": 10421, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10421, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10421, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 10, + "Discount": 0.15 + }, + { + "OrderID": 10422, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10423, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10423, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10424, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 60, + "Discount": 0.2 + }, + { + "OrderID": 10424, + "ProductID": 38, + "UnitPrice": 210.8, + "Quantity": 49, + "Discount": 0.2 + }, + { + "OrderID": 10424, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10425, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 10, + "Discount": 0.25 + }, + { + "OrderID": 10425, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10426, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10426, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10427, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10428, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10429, + "ProductID": 50, + "UnitPrice": 13, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10429, + "ProductID": 63, + "UnitPrice": 35.1, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10430, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 45, + "Discount": 0.2 + }, + { + "OrderID": 10430, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10430, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10430, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 70, + "Discount": 0.2 + }, + { + "OrderID": 10431, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 50, + "Discount": 0.25 + }, + { + "OrderID": 10431, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 50, + "Discount": 0.25 + }, + { + "OrderID": 10431, + "ProductID": 47, + "UnitPrice": 7.6, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10432, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10432, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10433, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10434, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10434, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 18, + "Discount": 0.15 + }, + { + "OrderID": 10435, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10435, + "ProductID": 22, + "UnitPrice": 16.8, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10435, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10436, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10436, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 10436, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10436, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 24, + "Discount": 0.1 + }, + { + "OrderID": 10437, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10438, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 15, + "Discount": 0.2 + }, + { + "OrderID": 10438, + "ProductID": 34, + "UnitPrice": 11.2, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10438, + "ProductID": 57, + "UnitPrice": 15.6, + "Quantity": 15, + "Discount": 0.2 + }, + { + "OrderID": 10439, + "ProductID": 12, + "UnitPrice": 30.4, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10439, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10439, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10439, + "ProductID": 74, + "UnitPrice": 8, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10440, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 45, + "Discount": 0.15 + }, + { + "OrderID": 10440, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 49, + "Discount": 0.15 + }, + { + "OrderID": 10440, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 24, + "Discount": 0.15 + }, + { + "OrderID": 10440, + "ProductID": 61, + "UnitPrice": 22.8, + "Quantity": 90, + "Discount": 0.15 + }, + { + "OrderID": 10441, + "ProductID": 27, + "UnitPrice": 35.1, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10442, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10442, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 80, + "Discount": 0 + }, + { + "OrderID": 10442, + "ProductID": 66, + "UnitPrice": 13.6, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10443, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 6, + "Discount": 0.2 + }, + { + "OrderID": 10443, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10444, + "ProductID": 17, + "UnitPrice": 31.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10444, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10444, + "ProductID": 35, + "UnitPrice": 14.4, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10444, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10445, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10445, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10446, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 12, + "Discount": 0.1 + }, + { + "OrderID": 10446, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10446, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 3, + "Discount": 0.1 + }, + { + "OrderID": 10446, + "ProductID": 52, + "UnitPrice": 5.6, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10447, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10447, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10447, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10448, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10448, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10449, + "ProductID": 10, + "UnitPrice": 24.8, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10449, + "ProductID": 52, + "UnitPrice": 5.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10449, + "ProductID": 62, + "UnitPrice": 39.4, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10450, + "ProductID": 10, + "UnitPrice": 24.8, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10450, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 6, + "Discount": 0.2 + }, + { + "OrderID": 10451, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 120, + "Discount": 0.1 + }, + { + "OrderID": 10451, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 35, + "Discount": 0.1 + }, + { + "OrderID": 10451, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 28, + "Discount": 0.1 + }, + { + "OrderID": 10451, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 55, + "Discount": 0.1 + }, + { + "OrderID": 10452, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10452, + "ProductID": 44, + "UnitPrice": 15.5, + "Quantity": 100, + "Discount": 0.05 + }, + { + "OrderID": 10453, + "ProductID": 48, + "UnitPrice": 10.2, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10453, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10454, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10454, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10454, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10455, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10455, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10455, + "ProductID": 61, + "UnitPrice": 22.8, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10455, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10456, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10456, + "ProductID": 49, + "UnitPrice": 16, + "Quantity": 21, + "Discount": 0.15 + }, + { + "OrderID": 10457, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10458, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10458, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10458, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10458, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10458, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10459, + "ProductID": 7, + "UnitPrice": 24, + "Quantity": 16, + "Discount": 0.05 + }, + { + "OrderID": 10459, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10459, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10460, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 21, + "Discount": 0.25 + }, + { + "OrderID": 10460, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 4, + "Discount": 0.25 + }, + { + "OrderID": 10461, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10461, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 28, + "Discount": 0.25 + }, + { + "OrderID": 10461, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 60, + "Discount": 0.25 + }, + { + "OrderID": 10462, + "ProductID": 13, + "UnitPrice": 4.8, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10462, + "ProductID": 23, + "UnitPrice": 7.2, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10463, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10463, + "ProductID": 42, + "UnitPrice": 11.2, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10464, + "ProductID": 4, + "UnitPrice": 17.6, + "Quantity": 16, + "Discount": 0.2 + }, + { + "OrderID": 10464, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10464, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10464, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10465, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10465, + "ProductID": 29, + "UnitPrice": 99, + "Quantity": 18, + "Discount": 0.1 + }, + { + "OrderID": 10465, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10465, + "ProductID": 45, + "UnitPrice": 7.6, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10465, + "ProductID": 50, + "UnitPrice": 13, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10466, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10466, + "ProductID": 46, + "UnitPrice": 9.6, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10467, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10467, + "ProductID": 25, + "UnitPrice": 11.2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10468, + "ProductID": 30, + "UnitPrice": 20.7, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10468, + "ProductID": 43, + "UnitPrice": 36.8, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10469, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10469, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 35, + "Discount": 0.15 + }, + { + "OrderID": 10469, + "ProductID": 44, + "UnitPrice": 15.5, + "Quantity": 2, + "Discount": 0.15 + }, + { + "OrderID": 10470, + "ProductID": 18, + "UnitPrice": 50, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10470, + "ProductID": 23, + "UnitPrice": 7.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10470, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10471, + "ProductID": 7, + "UnitPrice": 24, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10471, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10472, + "ProductID": 24, + "UnitPrice": 3.6, + "Quantity": 80, + "Discount": 0.05 + }, + { + "OrderID": 10472, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10473, + "ProductID": 33, + "UnitPrice": 2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10473, + "ProductID": 71, + "UnitPrice": 17.2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10474, + "ProductID": 14, + "UnitPrice": 18.6, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10474, + "ProductID": 28, + "UnitPrice": 36.4, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10474, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10474, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10475, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 35, + "Discount": 0.15 + }, + { + "OrderID": 10475, + "ProductID": 66, + "UnitPrice": 13.6, + "Quantity": 60, + "Discount": 0.15 + }, + { + "OrderID": 10475, + "ProductID": 76, + "UnitPrice": 14.4, + "Quantity": 42, + "Discount": 0.15 + }, + { + "OrderID": 10476, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 2, + "Discount": 0.05 + }, + { + "OrderID": 10476, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10477, + "ProductID": 1, + "UnitPrice": 14.4, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10477, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 21, + "Discount": 0.25 + }, + { + "OrderID": 10477, + "ProductID": 39, + "UnitPrice": 14.4, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10478, + "ProductID": 10, + "UnitPrice": 24.8, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10479, + "ProductID": 38, + "UnitPrice": 210.8, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10479, + "ProductID": 53, + "UnitPrice": 26.2, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10479, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10479, + "ProductID": 64, + "UnitPrice": 26.6, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10480, + "ProductID": 47, + "UnitPrice": 7.6, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10480, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10481, + "ProductID": 49, + "UnitPrice": 16, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10481, + "ProductID": 60, + "UnitPrice": 27.2, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10482, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10483, + "ProductID": 34, + "UnitPrice": 11.2, + "Quantity": 35, + "Discount": 0.05 + }, + { + "OrderID": 10483, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10484, + "ProductID": 21, + "UnitPrice": 8, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10484, + "ProductID": 40, + "UnitPrice": 14.7, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10484, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10485, + "ProductID": 2, + "UnitPrice": 15.2, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10485, + "ProductID": 3, + "UnitPrice": 8, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10485, + "ProductID": 55, + "UnitPrice": 19.2, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10485, + "ProductID": 70, + "UnitPrice": 12, + "Quantity": 60, + "Discount": 0.1 + }, + { + "OrderID": 10486, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10486, + "ProductID": 51, + "UnitPrice": 42.4, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10486, + "ProductID": 74, + "UnitPrice": 8, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10487, + "ProductID": 19, + "UnitPrice": 7.3, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10487, + "ProductID": 26, + "UnitPrice": 24.9, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10487, + "ProductID": 54, + "UnitPrice": 5.9, + "Quantity": 24, + "Discount": 0.25 + }, + { + "OrderID": 10488, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10488, + "ProductID": 73, + "UnitPrice": 12, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10489, + "ProductID": 11, + "UnitPrice": 16.8, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10489, + "ProductID": 16, + "UnitPrice": 13.9, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10490, + "ProductID": 59, + "UnitPrice": 44, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10490, + "ProductID": 68, + "UnitPrice": 10, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10490, + "ProductID": 75, + "UnitPrice": 6.2, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10491, + "ProductID": 44, + "UnitPrice": 15.5, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10491, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 7, + "Discount": 0.15 + }, + { + "OrderID": 10492, + "ProductID": 25, + "UnitPrice": 11.2, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 10492, + "ProductID": 42, + "UnitPrice": 11.2, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10493, + "ProductID": 65, + "UnitPrice": 16.8, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10493, + "ProductID": 66, + "UnitPrice": 13.6, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10493, + "ProductID": 69, + "UnitPrice": 28.8, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10494, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10495, + "ProductID": 23, + "UnitPrice": 7.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10495, + "ProductID": 41, + "UnitPrice": 7.7, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10495, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10496, + "ProductID": 31, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10497, + "ProductID": 56, + "UnitPrice": 30.4, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10497, + "ProductID": 72, + "UnitPrice": 27.8, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10497, + "ProductID": 77, + "UnitPrice": 10.4, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10498, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10498, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10498, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10499, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10499, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10500, + "ProductID": 15, + "UnitPrice": 15.5, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10500, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 8, + "Discount": 0.05 + }, + { + "OrderID": 10501, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10502, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10502, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10502, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10503, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10503, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10504, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10504, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10504, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10504, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10505, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10506, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 18, + "Discount": 0.1 + }, + { + "OrderID": 10506, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 14, + "Discount": 0.1 + }, + { + "OrderID": 10507, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10507, + "ProductID": 48, + "UnitPrice": 12.75, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10508, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10508, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10509, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10510, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10510, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 36, + "Discount": 0.1 + }, + { + "OrderID": 10511, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 50, + "Discount": 0.15 + }, + { + "OrderID": 10511, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 50, + "Discount": 0.15 + }, + { + "OrderID": 10511, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 10, + "Discount": 0.15 + }, + { + "OrderID": 10512, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 10, + "Discount": 0.15 + }, + { + "OrderID": 10512, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 9, + "Discount": 0.15 + }, + { + "OrderID": 10512, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 6, + "Discount": 0.15 + }, + { + "OrderID": 10512, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 12, + "Discount": 0.15 + }, + { + "OrderID": 10513, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10513, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10513, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 15, + "Discount": 0.2 + }, + { + "OrderID": 10514, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 39, + "Discount": 0 + }, + { + "OrderID": 10514, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10514, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10514, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 39, + "Discount": 0 + }, + { + "OrderID": 10514, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10515, + "ProductID": 9, + "UnitPrice": 97, + "Quantity": 16, + "Discount": 0.15 + }, + { + "OrderID": 10515, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10515, + "ProductID": 27, + "UnitPrice": 43.9, + "Quantity": 120, + "Discount": 0 + }, + { + "OrderID": 10515, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 16, + "Discount": 0.15 + }, + { + "OrderID": 10515, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 84, + "Discount": 0.15 + }, + { + "OrderID": 10516, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10516, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 80, + "Discount": 0.1 + }, + { + "OrderID": 10516, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10517, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10517, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10517, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10518, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10518, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10518, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10519, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 16, + "Discount": 0.05 + }, + { + "OrderID": 10519, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10519, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10520, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10520, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10521, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10521, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10521, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10522, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10522, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10522, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10522, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 25, + "Discount": 0.2 + }, + { + "OrderID": 10523, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10523, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10523, + "ProductID": 37, + "UnitPrice": 26, + "Quantity": 18, + "Discount": 0.1 + }, + { + "OrderID": 10523, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 6, + "Discount": 0.1 + }, + { + "OrderID": 10524, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10524, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10524, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10524, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10525, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10525, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10526, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 8, + "Discount": 0.15 + }, + { + "OrderID": 10526, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10526, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10527, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 50, + "Discount": 0.1 + }, + { + "OrderID": 10527, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10528, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10528, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 8, + "Discount": 0.2 + }, + { + "OrderID": 10528, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10529, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10529, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10529, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10530, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10530, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10530, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10530, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10531, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10532, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10532, + "ProductID": 66, + "UnitPrice": 17, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10533, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10533, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10533, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 24, + "Discount": 0.05 + }, + { + "OrderID": 10534, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10534, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10534, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10535, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 50, + "Discount": 0.1 + }, + { + "OrderID": 10535, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10535, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 5, + "Discount": 0.1 + }, + { + "OrderID": 10535, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10536, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10536, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10536, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10536, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10537, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10537, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10537, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10537, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10537, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10538, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10538, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10539, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10539, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10539, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10539, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10540, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10540, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10540, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10540, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10541, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 35, + "Discount": 0.1 + }, + { + "OrderID": 10541, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 4, + "Discount": 0.1 + }, + { + "OrderID": 10541, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 36, + "Discount": 0.1 + }, + { + "OrderID": 10541, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 9, + "Discount": 0.1 + }, + { + "OrderID": 10542, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10542, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 24, + "Discount": 0.05 + }, + { + "OrderID": 10543, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10543, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 70, + "Discount": 0.15 + }, + { + "OrderID": 10544, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10544, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10545, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10546, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10546, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10546, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10547, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 24, + "Discount": 0.15 + }, + { + "OrderID": 10547, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10548, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 10, + "Discount": 0.25 + }, + { + "OrderID": 10548, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10549, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 55, + "Discount": 0.15 + }, + { + "OrderID": 10549, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 100, + "Discount": 0.15 + }, + { + "OrderID": 10549, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 48, + "Discount": 0.15 + }, + { + "OrderID": 10550, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 8, + "Discount": 0.1 + }, + { + "OrderID": 10550, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10550, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 6, + "Discount": 0.1 + }, + { + "OrderID": 10550, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10551, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10551, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10551, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10552, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10552, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10553, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10553, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10553, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10553, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10553, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10554, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10554, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10554, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10554, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10555, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10555, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 35, + "Discount": 0.2 + }, + { + "OrderID": 10555, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 18, + "Discount": 0.2 + }, + { + "OrderID": 10555, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10555, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10556, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10557, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10557, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10558, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10558, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10558, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10558, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10558, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10559, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10559, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 18, + "Discount": 0.05 + }, + { + "OrderID": 10560, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10560, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10561, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10561, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10562, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10562, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10563, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10563, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10564, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 16, + "Discount": 0.05 + }, + { + "OrderID": 10564, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 6, + "Discount": 0.05 + }, + { + "OrderID": 10564, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 25, + "Discount": 0.05 + }, + { + "OrderID": 10565, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10565, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 18, + "Discount": 0.1 + }, + { + "OrderID": 10566, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 35, + "Discount": 0.15 + }, + { + "OrderID": 10566, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 18, + "Discount": 0.15 + }, + { + "OrderID": 10566, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10567, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 60, + "Discount": 0.2 + }, + { + "OrderID": 10567, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10567, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10568, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10569, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 35, + "Discount": 0.2 + }, + { + "OrderID": 10569, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10570, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10570, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 10571, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 11, + "Discount": 0.15 + }, + { + "OrderID": 10571, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 28, + "Discount": 0.15 + }, + { + "OrderID": 10572, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 12, + "Discount": 0.1 + }, + { + "OrderID": 10572, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10572, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10572, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10573, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10573, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10573, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10574, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10574, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10574, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10574, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10575, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10575, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10575, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10575, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10576, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10576, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10576, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10577, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10577, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10577, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10578, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10578, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10579, + "ProductID": 15, + "UnitPrice": 15.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10579, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10580, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10580, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 9, + "Discount": 0.05 + }, + { + "OrderID": 10580, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10581, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10582, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10582, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10583, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10583, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 24, + "Discount": 0.15 + }, + { + "OrderID": 10583, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 10, + "Discount": 0.15 + }, + { + "OrderID": 10584, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10585, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10586, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 4, + "Discount": 0.15 + }, + { + "OrderID": 10587, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10587, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10587, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10588, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10588, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 100, + "Discount": 0.2 + }, + { + "OrderID": 10589, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10590, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10590, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 10591, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10591, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10591, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10592, + "ProductID": 15, + "UnitPrice": 15.5, + "Quantity": 25, + "Discount": 0.05 + }, + { + "OrderID": 10592, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 5, + "Discount": 0.05 + }, + { + "OrderID": 10593, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 21, + "Discount": 0.2 + }, + { + "OrderID": 10593, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10593, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 4, + "Discount": 0.2 + }, + { + "OrderID": 10594, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10594, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10595, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10595, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 120, + "Discount": 0.25 + }, + { + "OrderID": 10595, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 65, + "Discount": 0.25 + }, + { + "OrderID": 10596, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 5, + "Discount": 0.2 + }, + { + "OrderID": 10596, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 24, + "Discount": 0.2 + }, + { + "OrderID": 10596, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10597, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 35, + "Discount": 0.2 + }, + { + "OrderID": 10597, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10597, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 12, + "Discount": 0.2 + }, + { + "OrderID": 10598, + "ProductID": 27, + "UnitPrice": 43.9, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10598, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10599, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10600, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10600, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10601, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10601, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10602, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 5, + "Discount": 0.25 + }, + { + "OrderID": 10603, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 48, + "Discount": 0 + }, + { + "OrderID": 10603, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 25, + "Discount": 0.05 + }, + { + "OrderID": 10604, + "ProductID": 48, + "UnitPrice": 12.75, + "Quantity": 6, + "Discount": 0.1 + }, + { + "OrderID": 10604, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10605, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10605, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10605, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 70, + "Discount": 0.05 + }, + { + "OrderID": 10605, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10606, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10606, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10606, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10607, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 10607, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 100, + "Discount": 0 + }, + { + "OrderID": 10607, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10607, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 42, + "Discount": 0 + }, + { + "OrderID": 10607, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10608, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10609, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10609, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10609, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10610, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 21, + "Discount": 0.25 + }, + { + "OrderID": 10611, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10611, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10611, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10612, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10612, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 55, + "Discount": 0 + }, + { + "OrderID": 10612, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10612, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10612, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 80, + "Discount": 0 + }, + { + "OrderID": 10613, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 8, + "Discount": 0.1 + }, + { + "OrderID": 10613, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10614, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10614, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10614, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10615, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10616, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10616, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10616, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10616, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10617, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10618, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10618, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10618, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10619, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 42, + "Discount": 0 + }, + { + "OrderID": 10619, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10620, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10620, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10621, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10621, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10621, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10621, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10622, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10622, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 18, + "Discount": 0.2 + }, + { + "OrderID": 10623, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10623, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10623, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10623, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10623, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10624, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10624, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10624, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10625, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10625, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10625, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10626, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10626, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10626, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10627, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10627, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 35, + "Discount": 0.15 + }, + { + "OrderID": 10628, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10629, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10629, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10630, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10630, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10631, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 8, + "Discount": 0.1 + }, + { + "OrderID": 10632, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10632, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10633, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 36, + "Discount": 0.15 + }, + { + "OrderID": 10633, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 13, + "Discount": 0.15 + }, + { + "OrderID": 10633, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 35, + "Discount": 0.15 + }, + { + "OrderID": 10633, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 80, + "Discount": 0.15 + }, + { + "OrderID": 10634, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10634, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10634, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10634, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10635, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10635, + "ProductID": 5, + "UnitPrice": 21.35, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10635, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10636, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10636, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10637, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10637, + "ProductID": 50, + "UnitPrice": 16.25, + "Quantity": 25, + "Discount": 0.05 + }, + { + "OrderID": 10637, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 10638, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10638, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10638, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10639, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10640, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10640, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10641, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10641, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10642, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10642, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10643, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10643, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 21, + "Discount": 0.25 + }, + { + "OrderID": 10643, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 2, + "Discount": 0.25 + }, + { + "OrderID": 10644, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 4, + "Discount": 0.1 + }, + { + "OrderID": 10644, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10644, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 21, + "Discount": 0.1 + }, + { + "OrderID": 10645, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10645, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10646, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10646, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 18, + "Discount": 0.25 + }, + { + "OrderID": 10646, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10646, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10647, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10647, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10648, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10648, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10649, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10649, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10650, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10650, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 25, + "Discount": 0.05 + }, + { + "OrderID": 10650, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10651, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 12, + "Discount": 0.25 + }, + { + "OrderID": 10651, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10652, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 2, + "Discount": 0.25 + }, + { + "OrderID": 10652, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10653, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10653, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10654, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 12, + "Discount": 0.1 + }, + { + "OrderID": 10654, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10654, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 6, + "Discount": 0.1 + }, + { + "OrderID": 10655, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10656, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 3, + "Discount": 0.1 + }, + { + "OrderID": 10656, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 28, + "Discount": 0.1 + }, + { + "OrderID": 10656, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 6, + "Discount": 0.1 + }, + { + "OrderID": 10657, + "ProductID": 15, + "UnitPrice": 15.5, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10657, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10657, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 10657, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10657, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 10657, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10658, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10658, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 70, + "Discount": 0.05 + }, + { + "OrderID": 10658, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 55, + "Discount": 0.05 + }, + { + "OrderID": 10658, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 70, + "Discount": 0.05 + }, + { + "OrderID": 10659, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10659, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 24, + "Discount": 0.05 + }, + { + "OrderID": 10659, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 10660, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10661, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 3, + "Discount": 0.2 + }, + { + "OrderID": 10661, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 49, + "Discount": 0.2 + }, + { + "OrderID": 10662, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10663, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10663, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10663, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10664, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 24, + "Discount": 0.15 + }, + { + "OrderID": 10664, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 12, + "Discount": 0.15 + }, + { + "OrderID": 10664, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10665, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10665, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10665, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10666, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10666, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10667, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 45, + "Discount": 0.2 + }, + { + "OrderID": 10667, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 14, + "Discount": 0.2 + }, + { + "OrderID": 10668, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 8, + "Discount": 0.1 + }, + { + "OrderID": 10668, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 4, + "Discount": 0.1 + }, + { + "OrderID": 10668, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10669, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10670, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 32, + "Discount": 0 + }, + { + "OrderID": 10670, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10670, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10670, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10670, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10671, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10671, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10671, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10672, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10672, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10673, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10673, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10673, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10674, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10675, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10675, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10675, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10676, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10676, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10676, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10677, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10677, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 8, + "Discount": 0.15 + }, + { + "OrderID": 10678, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 100, + "Discount": 0 + }, + { + "OrderID": 10678, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10678, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 120, + "Discount": 0 + }, + { + "OrderID": 10678, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10679, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10680, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 50, + "Discount": 0.25 + }, + { + "OrderID": 10680, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10680, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10681, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10681, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 12, + "Discount": 0.1 + }, + { + "OrderID": 10681, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10682, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10682, + "ProductID": 66, + "UnitPrice": 17, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10682, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10683, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10684, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10684, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10684, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10685, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10685, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10685, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10686, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10686, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10687, + "ProductID": 9, + "UnitPrice": 97, + "Quantity": 50, + "Discount": 0.25 + }, + { + "OrderID": 10687, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10687, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 6, + "Discount": 0.25 + }, + { + "OrderID": 10688, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 18, + "Discount": 0.1 + }, + { + "OrderID": 10688, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 60, + "Discount": 0.1 + }, + { + "OrderID": 10688, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10689, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10690, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10690, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10691, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10691, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10691, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10691, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10691, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 48, + "Discount": 0 + }, + { + "OrderID": 10692, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10693, + "ProductID": 9, + "UnitPrice": 97, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10693, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 60, + "Discount": 0.15 + }, + { + "OrderID": 10693, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10693, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10694, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 90, + "Discount": 0 + }, + { + "OrderID": 10694, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10694, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10695, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10695, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10695, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10696, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10696, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10697, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 7, + "Discount": 0.25 + }, + { + "OrderID": 10697, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 9, + "Discount": 0.25 + }, + { + "OrderID": 10697, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10697, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10698, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10698, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 8, + "Discount": 0.05 + }, + { + "OrderID": 10698, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10698, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 65, + "Discount": 0.05 + }, + { + "OrderID": 10698, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 8, + "Discount": 0.05 + }, + { + "OrderID": 10699, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10700, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 5, + "Discount": 0.2 + }, + { + "OrderID": 10700, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 12, + "Discount": 0.2 + }, + { + "OrderID": 10700, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10700, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 60, + "Discount": 0.2 + }, + { + "OrderID": 10701, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 42, + "Discount": 0.15 + }, + { + "OrderID": 10701, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10701, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 35, + "Discount": 0.15 + }, + { + "OrderID": 10702, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10702, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10703, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10703, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10703, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10704, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10704, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10704, + "ProductID": 48, + "UnitPrice": 12.75, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10705, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10705, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10706, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10706, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10706, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10707, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10707, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10707, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 28, + "Discount": 0.15 + }, + { + "OrderID": 10708, + "ProductID": 5, + "UnitPrice": 21.35, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10708, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10709, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10709, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10709, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10710, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10710, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10711, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10711, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 42, + "Discount": 0 + }, + { + "OrderID": 10711, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 120, + "Discount": 0 + }, + { + "OrderID": 10712, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 3, + "Discount": 0.05 + }, + { + "OrderID": 10712, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10713, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10713, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10713, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 110, + "Discount": 0 + }, + { + "OrderID": 10713, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10714, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10714, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 27, + "Discount": 0.25 + }, + { + "OrderID": 10714, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 50, + "Discount": 0.25 + }, + { + "OrderID": 10714, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 18, + "Discount": 0.25 + }, + { + "OrderID": 10714, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 12, + "Discount": 0.25 + }, + { + "OrderID": 10715, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10715, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10716, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10716, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10716, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10717, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 32, + "Discount": 0.05 + }, + { + "OrderID": 10717, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10717, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 25, + "Discount": 0.05 + }, + { + "OrderID": 10718, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10718, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10718, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10718, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10719, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 12, + "Discount": 0.25 + }, + { + "OrderID": 10719, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 3, + "Discount": 0.25 + }, + { + "OrderID": 10719, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10720, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10720, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10721, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10722, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10722, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10722, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 10722, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 42, + "Discount": 0 + }, + { + "OrderID": 10723, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10724, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10724, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10725, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10725, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10725, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10726, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10726, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10727, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10727, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10727, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10728, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10728, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10728, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10728, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10729, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10729, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10729, + "ProductID": 50, + "UnitPrice": 16.25, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10730, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10730, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 3, + "Discount": 0.05 + }, + { + "OrderID": 10730, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10731, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 10731, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10732, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10733, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10733, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10733, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10734, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10734, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10734, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10735, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10735, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 2, + "Discount": 0.1 + }, + { + "OrderID": 10736, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10736, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10737, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10737, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10738, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10739, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10739, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10740, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 5, + "Discount": 0.2 + }, + { + "OrderID": 10740, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 35, + "Discount": 0.2 + }, + { + "OrderID": 10740, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10740, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 14, + "Discount": 0.2 + }, + { + "OrderID": 10741, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 15, + "Discount": 0.2 + }, + { + "OrderID": 10742, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10742, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10742, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10743, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 28, + "Discount": 0.05 + }, + { + "OrderID": 10744, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10745, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10745, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10745, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 10745, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10746, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10746, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10746, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10746, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10747, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10747, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10747, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10747, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10748, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 44, + "Discount": 0 + }, + { + "OrderID": 10748, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10748, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10749, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10749, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10749, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10750, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 5, + "Discount": 0.15 + }, + { + "OrderID": 10750, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10750, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 25, + "Discount": 0.15 + }, + { + "OrderID": 10751, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 12, + "Discount": 0.1 + }, + { + "OrderID": 10751, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10751, + "ProductID": 50, + "UnitPrice": 16.25, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10751, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10752, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10752, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10753, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10753, + "ProductID": 74, + "UnitPrice": 10, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10754, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10755, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10755, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10755, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 14, + "Discount": 0.25 + }, + { + "OrderID": 10755, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 25, + "Discount": 0.25 + }, + { + "OrderID": 10756, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 21, + "Discount": 0.2 + }, + { + "OrderID": 10756, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10756, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 6, + "Discount": 0.2 + }, + { + "OrderID": 10756, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10757, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10757, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10757, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10757, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10758, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10758, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10758, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10759, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10760, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 12, + "Discount": 0.25 + }, + { + "OrderID": 10760, + "ProductID": 27, + "UnitPrice": 43.9, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10760, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10761, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10761, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10762, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10762, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10762, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10762, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10763, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10763, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10763, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10764, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10764, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 130, + "Discount": 0.1 + }, + { + "OrderID": 10765, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 80, + "Discount": 0.1 + }, + { + "OrderID": 10766, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10766, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10766, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10767, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10768, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10768, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10768, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10768, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10769, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10769, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10769, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10769, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10770, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10771, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10772, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10772, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10773, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 33, + "Discount": 0 + }, + { + "OrderID": 10773, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 70, + "Discount": 0.2 + }, + { + "OrderID": 10773, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 7, + "Discount": 0.2 + }, + { + "OrderID": 10774, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 2, + "Discount": 0.25 + }, + { + "OrderID": 10774, + "ProductID": 66, + "UnitPrice": 17, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10775, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10775, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10776, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 16, + "Discount": 0.05 + }, + { + "OrderID": 10776, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10776, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 27, + "Discount": 0.05 + }, + { + "OrderID": 10776, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 120, + "Discount": 0.05 + }, + { + "OrderID": 10777, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10778, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10779, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10779, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10780, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10780, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10781, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 3, + "Discount": 0.2 + }, + { + "OrderID": 10781, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10781, + "ProductID": 74, + "UnitPrice": 10, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10782, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10783, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10783, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10784, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10784, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 2, + "Discount": 0.15 + }, + { + "OrderID": 10784, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10785, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10785, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10786, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10786, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 15, + "Discount": 0.2 + }, + { + "OrderID": 10786, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 42, + "Discount": 0.2 + }, + { + "OrderID": 10787, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10787, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10788, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10788, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 10789, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10789, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10789, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10789, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10790, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 3, + "Discount": 0.15 + }, + { + "OrderID": 10790, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10791, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 14, + "Discount": 0.05 + }, + { + "OrderID": 10791, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10792, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10792, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10792, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10793, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10793, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10794, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 15, + "Discount": 0.2 + }, + { + "OrderID": 10794, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 6, + "Discount": 0.2 + }, + { + "OrderID": 10795, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 65, + "Discount": 0 + }, + { + "OrderID": 10795, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10796, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 21, + "Discount": 0.2 + }, + { + "OrderID": 10796, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10796, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 35, + "Discount": 0.2 + }, + { + "OrderID": 10796, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 24, + "Discount": 0.2 + }, + { + "OrderID": 10797, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10798, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10798, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10799, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10799, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10799, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10800, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 50, + "Discount": 0.1 + }, + { + "OrderID": 10800, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 10800, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 7, + "Discount": 0.1 + }, + { + "OrderID": 10801, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10801, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10802, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 25, + "Discount": 0.25 + }, + { + "OrderID": 10802, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10802, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 60, + "Discount": 0.25 + }, + { + "OrderID": 10802, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 5, + "Discount": 0.25 + }, + { + "OrderID": 10803, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 24, + "Discount": 0.05 + }, + { + "OrderID": 10803, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10803, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10804, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10804, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10804, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 4, + "Discount": 0.15 + }, + { + "OrderID": 10805, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10805, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10806, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10806, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10806, + "ProductID": 74, + "UnitPrice": 10, + "Quantity": 15, + "Discount": 0.25 + }, + { + "OrderID": 10807, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10808, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10808, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 50, + "Discount": 0.15 + }, + { + "OrderID": 10809, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10810, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10810, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10810, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10811, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10811, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10811, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10812, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 16, + "Discount": 0.1 + }, + { + "OrderID": 10812, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 10812, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10813, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 12, + "Discount": 0.2 + }, + { + "OrderID": 10813, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10814, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10814, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10814, + "ProductID": 48, + "UnitPrice": 12.75, + "Quantity": 8, + "Discount": 0.15 + }, + { + "OrderID": 10814, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10815, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10816, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 30, + "Discount": 0.05 + }, + { + "OrderID": 10816, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10817, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10817, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10817, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 60, + "Discount": 0.15 + }, + { + "OrderID": 10817, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 25, + "Discount": 0.15 + }, + { + "OrderID": 10818, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10818, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10819, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10819, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10820, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10821, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10821, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10822, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10822, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10823, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10823, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10823, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 10823, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10824, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10824, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10825, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10825, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10826, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10826, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10827, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10827, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10828, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10828, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10829, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10829, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10829, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10829, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10830, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10830, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10830, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10830, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10831, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10831, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10831, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10831, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10832, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 3, + "Discount": 0.2 + }, + { + "OrderID": 10832, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10832, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 16, + "Discount": 0.2 + }, + { + "OrderID": 10832, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10833, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10833, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 9, + "Discount": 0.1 + }, + { + "OrderID": 10833, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 9, + "Discount": 0.1 + }, + { + "OrderID": 10834, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 8, + "Discount": 0.05 + }, + { + "OrderID": 10834, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10835, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10835, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 2, + "Discount": 0.2 + }, + { + "OrderID": 10836, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 52, + "Discount": 0 + }, + { + "OrderID": 10836, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10836, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10836, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10836, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10837, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10837, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10837, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10837, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 21, + "Discount": 0.25 + }, + { + "OrderID": 10838, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 4, + "Discount": 0.25 + }, + { + "OrderID": 10838, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 25, + "Discount": 0.25 + }, + { + "OrderID": 10838, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 50, + "Discount": 0.25 + }, + { + "OrderID": 10839, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10839, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 10840, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 6, + "Discount": 0.2 + }, + { + "OrderID": 10840, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10841, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10841, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10841, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10841, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10842, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10842, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10842, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10842, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10843, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 4, + "Discount": 0.25 + }, + { + "OrderID": 10844, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10845, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 70, + "Discount": 0.1 + }, + { + "OrderID": 10845, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 10845, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 42, + "Discount": 0.1 + }, + { + "OrderID": 10845, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 60, + "Discount": 0.1 + }, + { + "OrderID": 10845, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 48, + "Discount": 0 + }, + { + "OrderID": 10846, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10846, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10846, + "ProductID": 74, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10847, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 80, + "Discount": 0.2 + }, + { + "OrderID": 10847, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 12, + "Discount": 0.2 + }, + { + "OrderID": 10847, + "ProductID": 37, + "UnitPrice": 26, + "Quantity": 60, + "Discount": 0.2 + }, + { + "OrderID": 10847, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 36, + "Discount": 0.2 + }, + { + "OrderID": 10847, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 45, + "Discount": 0.2 + }, + { + "OrderID": 10847, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 55, + "Discount": 0.2 + }, + { + "OrderID": 10848, + "ProductID": 5, + "UnitPrice": 21.35, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10848, + "ProductID": 9, + "UnitPrice": 97, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10849, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 49, + "Discount": 0 + }, + { + "OrderID": 10849, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 18, + "Discount": 0.15 + }, + { + "OrderID": 10850, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10850, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 4, + "Discount": 0.15 + }, + { + "OrderID": 10850, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10851, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 5, + "Discount": 0.05 + }, + { + "OrderID": 10851, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10851, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10851, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 42, + "Discount": 0.05 + }, + { + "OrderID": 10852, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10852, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10852, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10853, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10854, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 100, + "Discount": 0.15 + }, + { + "OrderID": 10854, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 65, + "Discount": 0.15 + }, + { + "OrderID": 10855, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10855, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10855, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10855, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 10856, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10856, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10857, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10857, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10857, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 10, + "Discount": 0.25 + }, + { + "OrderID": 10858, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10858, + "ProductID": 27, + "UnitPrice": 43.9, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10858, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10859, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10859, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10859, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10860, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10860, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10861, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 42, + "Discount": 0 + }, + { + "OrderID": 10861, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10861, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10861, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10861, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10862, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10862, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10863, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10863, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 12, + "Discount": 0.15 + }, + { + "OrderID": 10864, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10864, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10865, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 10865, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 80, + "Discount": 0.05 + }, + { + "OrderID": 10866, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 21, + "Discount": 0.25 + }, + { + "OrderID": 10866, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 6, + "Discount": 0.25 + }, + { + "OrderID": 10866, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10867, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10868, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10868, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10868, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 42, + "Discount": 0.1 + }, + { + "OrderID": 10869, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10869, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10869, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10869, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10870, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10870, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10871, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10871, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10871, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 16, + "Discount": 0.05 + }, + { + "OrderID": 10872, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 10872, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10872, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10872, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 21, + "Discount": 0.05 + }, + { + "OrderID": 10873, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10873, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 10874, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10875, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10875, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 21, + "Discount": 0.1 + }, + { + "OrderID": 10875, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10876, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10876, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10877, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10877, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10878, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10879, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10879, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10879, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10880, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10880, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10880, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10881, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10882, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10882, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10882, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 32, + "Discount": 0.15 + }, + { + "OrderID": 10883, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10884, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 10884, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 21, + "Discount": 0.05 + }, + { + "OrderID": 10884, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 12, + "Discount": 0.05 + }, + { + "OrderID": 10885, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10885, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10885, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10885, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10886, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 10886, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10886, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10887, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10888, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10888, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10889, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10889, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10890, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10890, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10890, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10891, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10892, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 10893, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10893, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10893, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10893, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10893, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10894, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 28, + "Discount": 0.05 + }, + { + "OrderID": 10894, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10894, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 120, + "Discount": 0.05 + }, + { + "OrderID": 10895, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 110, + "Discount": 0 + }, + { + "OrderID": 10895, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 10895, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 91, + "Discount": 0 + }, + { + "OrderID": 10895, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 100, + "Discount": 0 + }, + { + "OrderID": 10896, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10896, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10897, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 80, + "Discount": 0 + }, + { + "OrderID": 10897, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10898, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10899, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 8, + "Discount": 0.15 + }, + { + "OrderID": 10900, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 3, + "Discount": 0.25 + }, + { + "OrderID": 10901, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10901, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10902, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 10902, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 6, + "Discount": 0.15 + }, + { + "OrderID": 10903, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10903, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10903, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10904, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10904, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10905, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10906, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10907, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10908, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10908, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 14, + "Discount": 0.05 + }, + { + "OrderID": 10909, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10909, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10909, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10910, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10910, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10910, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10911, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10911, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10911, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10912, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10912, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 60, + "Discount": 0.25 + }, + { + "OrderID": 10913, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10913, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 40, + "Discount": 0.25 + }, + { + "OrderID": 10913, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10914, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10915, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10915, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10915, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10916, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10916, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10916, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10917, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 10917, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10918, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 60, + "Discount": 0.25 + }, + { + "OrderID": 10918, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 25, + "Discount": 0.25 + }, + { + "OrderID": 10919, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10919, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10919, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10920, + "ProductID": 50, + "UnitPrice": 16.25, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10921, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10921, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10922, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10922, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10923, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10923, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 10923, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 24, + "Discount": 0.2 + }, + { + "OrderID": 10924, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10924, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10924, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10925, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 25, + "Discount": 0.15 + }, + { + "OrderID": 10925, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 12, + "Discount": 0.15 + }, + { + "OrderID": 10926, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10926, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10926, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10926, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10927, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10927, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10927, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10928, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10928, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10929, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10929, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 49, + "Discount": 0 + }, + { + "OrderID": 10929, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10930, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 36, + "Discount": 0 + }, + { + "OrderID": 10930, + "ProductID": 27, + "UnitPrice": 43.9, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10930, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 25, + "Discount": 0.2 + }, + { + "OrderID": 10930, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10931, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 42, + "Discount": 0.15 + }, + { + "OrderID": 10931, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10932, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 10932, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 14, + "Discount": 0.1 + }, + { + "OrderID": 10932, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10932, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 10933, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10933, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10934, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10935, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10935, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 4, + "Discount": 0.25 + }, + { + "OrderID": 10935, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 8, + "Discount": 0.25 + }, + { + "OrderID": 10936, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 10937, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10937, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10938, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10938, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 24, + "Discount": 0.25 + }, + { + "OrderID": 10938, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 49, + "Discount": 0.25 + }, + { + "OrderID": 10938, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10939, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 10, + "Discount": 0.15 + }, + { + "OrderID": 10939, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10940, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10940, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10941, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 44, + "Discount": 0.25 + }, + { + "OrderID": 10941, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 10941, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 80, + "Discount": 0.25 + }, + { + "OrderID": 10941, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10942, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 10943, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10943, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 10943, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10944, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 5, + "Discount": 0.25 + }, + { + "OrderID": 10944, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 18, + "Discount": 0.25 + }, + { + "OrderID": 10944, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10945, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10945, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10946, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10946, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 10946, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10947, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10948, + "ProductID": 50, + "UnitPrice": 16.25, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10948, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10948, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10949, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10949, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10949, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10949, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10950, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10951, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10951, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 6, + "Discount": 0.05 + }, + { + "OrderID": 10951, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10952, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 16, + "Discount": 0.05 + }, + { + "OrderID": 10952, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10953, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10953, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 10954, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 28, + "Discount": 0.15 + }, + { + "OrderID": 10954, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 25, + "Discount": 0.15 + }, + { + "OrderID": 10954, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10954, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 24, + "Discount": 0.15 + }, + { + "OrderID": 10955, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 12, + "Discount": 0.2 + }, + { + "OrderID": 10956, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10956, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10956, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10957, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10957, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10957, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10958, + "ProductID": 5, + "UnitPrice": 21.35, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10958, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10958, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10959, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10960, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 10, + "Discount": 0.25 + }, + { + "OrderID": 10960, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10961, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 6, + "Discount": 0.05 + }, + { + "OrderID": 10961, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10962, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 10962, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 77, + "Discount": 0 + }, + { + "OrderID": 10962, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10962, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10962, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 44, + "Discount": 0 + }, + { + "OrderID": 10963, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 2, + "Discount": 0.15 + }, + { + "OrderID": 10964, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10964, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10964, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10965, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10966, + "ProductID": 37, + "UnitPrice": 26, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 10966, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 12, + "Discount": 0.15 + }, + { + "OrderID": 10966, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 12, + "Discount": 0.15 + }, + { + "OrderID": 10967, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10967, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10968, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10968, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10968, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10969, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10970, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10971, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 10972, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10972, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10973, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 10973, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10973, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10974, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10975, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 10975, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10976, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10977, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10977, + "ProductID": 47, + "UnitPrice": 9.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10977, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10977, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10978, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 10978, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 10978, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10978, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 6, + "Discount": 0.15 + }, + { + "OrderID": 10979, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 10979, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10979, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 80, + "Discount": 0 + }, + { + "OrderID": 10979, + "ProductID": 27, + "UnitPrice": 43.9, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10979, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 10979, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 10980, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 40, + "Discount": 0.2 + }, + { + "OrderID": 10981, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10982, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10982, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 10983, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 84, + "Discount": 0.15 + }, + { + "OrderID": 10983, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10984, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 55, + "Discount": 0 + }, + { + "OrderID": 10984, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10984, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10985, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 36, + "Discount": 0.1 + }, + { + "OrderID": 10985, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 8, + "Discount": 0.1 + }, + { + "OrderID": 10985, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 35, + "Discount": 0.1 + }, + { + "OrderID": 10986, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10986, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10986, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 10986, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10987, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10987, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 10987, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10988, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 10988, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 10989, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10989, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 10989, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10990, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 65, + "Discount": 0 + }, + { + "OrderID": 10990, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 60, + "Discount": 0.15 + }, + { + "OrderID": 10990, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 65, + "Discount": 0.15 + }, + { + "OrderID": 10990, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 66, + "Discount": 0.15 + }, + { + "OrderID": 10991, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 50, + "Discount": 0.2 + }, + { + "OrderID": 10991, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 20, + "Discount": 0.2 + }, + { + "OrderID": 10991, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 90, + "Discount": 0.2 + }, + { + "OrderID": 10992, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 10993, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 50, + "Discount": 0.25 + }, + { + "OrderID": 10993, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 35, + "Discount": 0.25 + }, + { + "OrderID": 10994, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 18, + "Discount": 0.05 + }, + { + "OrderID": 10995, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10995, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 10996, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 10997, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 10997, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10997, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 10998, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 10998, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 10998, + "ProductID": 74, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 10998, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 10999, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 10999, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 10999, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 21, + "Discount": 0.05 + }, + { + "OrderID": 11000, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 25, + "Discount": 0.25 + }, + { + "OrderID": 11000, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 11000, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11001, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 11001, + "ProductID": 22, + "UnitPrice": 21, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 11001, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 11001, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 11002, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 56, + "Discount": 0 + }, + { + "OrderID": 11002, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 15, + "Discount": 0.15 + }, + { + "OrderID": 11002, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 24, + "Discount": 0.15 + }, + { + "OrderID": 11002, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 11003, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11003, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11003, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11004, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 11004, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 11005, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 11005, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11006, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 11006, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 2, + "Discount": 0.25 + }, + { + "OrderID": 11007, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11007, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11007, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 14, + "Discount": 0 + }, + { + "OrderID": 11008, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 70, + "Discount": 0.05 + }, + { + "OrderID": 11008, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 90, + "Discount": 0.05 + }, + { + "OrderID": 11008, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 11009, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 11009, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 18, + "Discount": 0.25 + }, + { + "OrderID": 11009, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 11010, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11010, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11011, + "ProductID": 58, + "UnitPrice": 13.25, + "Quantity": 40, + "Discount": 0.05 + }, + { + "OrderID": 11011, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11012, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 50, + "Discount": 0.05 + }, + { + "OrderID": 11012, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 36, + "Discount": 0.05 + }, + { + "OrderID": 11012, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 60, + "Discount": 0.05 + }, + { + "OrderID": 11013, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11013, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11013, + "ProductID": 45, + "UnitPrice": 9.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11013, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 11014, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 28, + "Discount": 0.1 + }, + { + "OrderID": 11015, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 11015, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 18, + "Discount": 0 + }, + { + "OrderID": 11016, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 11016, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 11017, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 11017, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 110, + "Discount": 0 + }, + { + "OrderID": 11017, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11018, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11018, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11018, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 5, + "Discount": 0 + }, + { + "OrderID": 11019, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 11019, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 11020, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 24, + "Discount": 0.15 + }, + { + "OrderID": 11021, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 11, + "Discount": 0.25 + }, + { + "OrderID": 11021, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 11021, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 63, + "Discount": 0 + }, + { + "OrderID": 11021, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 44, + "Discount": 0.25 + }, + { + "OrderID": 11021, + "ProductID": 72, + "UnitPrice": 34.8, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 11022, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 11022, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11023, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11023, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11024, + "ProductID": 26, + "UnitPrice": 31.23, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 11024, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11024, + "ProductID": 65, + "UnitPrice": 21.05, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 11024, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 11025, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0.1 + }, + { + "OrderID": 11025, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 20, + "Discount": 0.1 + }, + { + "OrderID": 11026, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 11026, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11027, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 11027, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 21, + "Discount": 0.25 + }, + { + "OrderID": 11028, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 11028, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 11029, + "ProductID": 56, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11029, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 11030, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 100, + "Discount": 0.25 + }, + { + "OrderID": 11030, + "ProductID": 5, + "UnitPrice": 21.35, + "Quantity": 70, + "Discount": 0 + }, + { + "OrderID": 11030, + "ProductID": 29, + "UnitPrice": 123.79, + "Quantity": 60, + "Discount": 0.25 + }, + { + "OrderID": 11030, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 100, + "Discount": 0.25 + }, + { + "OrderID": 11031, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 45, + "Discount": 0 + }, + { + "OrderID": 11031, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 80, + "Discount": 0 + }, + { + "OrderID": 11031, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 11031, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11031, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 16, + "Discount": 0 + }, + { + "OrderID": 11032, + "ProductID": 36, + "UnitPrice": 19, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 11032, + "ProductID": 38, + "UnitPrice": 263.5, + "Quantity": 25, + "Discount": 0 + }, + { + "OrderID": 11032, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11033, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 70, + "Discount": 0.1 + }, + { + "OrderID": 11033, + "ProductID": 69, + "UnitPrice": 36, + "Quantity": 36, + "Discount": 0.1 + }, + { + "OrderID": 11034, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 15, + "Discount": 0.1 + }, + { + "OrderID": 11034, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 11034, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 6, + "Discount": 0 + }, + { + "OrderID": 11035, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11035, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 11035, + "ProductID": 42, + "UnitPrice": 14, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11035, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11036, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 7, + "Discount": 0 + }, + { + "OrderID": 11036, + "ProductID": 59, + "UnitPrice": 55, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11037, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11038, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 5, + "Discount": 0.2 + }, + { + "OrderID": 11038, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 11038, + "ProductID": 71, + "UnitPrice": 21.5, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11039, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11039, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 11039, + "ProductID": 49, + "UnitPrice": 20, + "Quantity": 60, + "Discount": 0 + }, + { + "OrderID": 11039, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 28, + "Discount": 0 + }, + { + "OrderID": 11040, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11041, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 11041, + "ProductID": 63, + "UnitPrice": 43.9, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11042, + "ProductID": 44, + "UnitPrice": 19.45, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 11042, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11043, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11044, + "ProductID": 62, + "UnitPrice": 49.3, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 11045, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 11045, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 24, + "Discount": 0 + }, + { + "OrderID": 11046, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 20, + "Discount": 0.05 + }, + { + "OrderID": 11046, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 11046, + "ProductID": 35, + "UnitPrice": 18, + "Quantity": 18, + "Discount": 0.05 + }, + { + "OrderID": 11047, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 25, + "Discount": 0.25 + }, + { + "OrderID": 11047, + "ProductID": 5, + "UnitPrice": 21.35, + "Quantity": 30, + "Discount": 0.25 + }, + { + "OrderID": 11048, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 42, + "Discount": 0 + }, + { + "OrderID": 11049, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 11049, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 4, + "Discount": 0.2 + }, + { + "OrderID": 11050, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 50, + "Discount": 0.1 + }, + { + "OrderID": 11051, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 11052, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 30, + "Discount": 0.2 + }, + { + "OrderID": 11052, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 11053, + "ProductID": 18, + "UnitPrice": 62.5, + "Quantity": 35, + "Discount": 0.2 + }, + { + "OrderID": 11053, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11053, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 25, + "Discount": 0.2 + }, + { + "OrderID": 11054, + "ProductID": 33, + "UnitPrice": 2.5, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11054, + "ProductID": 67, + "UnitPrice": 14, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11055, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 11055, + "ProductID": 25, + "UnitPrice": 14, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 11055, + "ProductID": 51, + "UnitPrice": 53, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11055, + "ProductID": 57, + "UnitPrice": 19.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11056, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 11056, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 11056, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 50, + "Discount": 0 + }, + { + "OrderID": 11057, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 11058, + "ProductID": 21, + "UnitPrice": 10, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 11058, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 21, + "Discount": 0 + }, + { + "OrderID": 11058, + "ProductID": 61, + "UnitPrice": 28.5, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11059, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11059, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 11059, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 11060, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11060, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11061, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 15, + "Discount": 0 + }, + { + "OrderID": 11062, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 10, + "Discount": 0.2 + }, + { + "OrderID": 11062, + "ProductID": 70, + "UnitPrice": 15, + "Quantity": 12, + "Discount": 0.2 + }, + { + "OrderID": 11063, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 30, + "Discount": 0 + }, + { + "OrderID": 11063, + "ProductID": 40, + "UnitPrice": 18.4, + "Quantity": 40, + "Discount": 0.1 + }, + { + "OrderID": 11063, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 30, + "Discount": 0.1 + }, + { + "OrderID": 11064, + "ProductID": 17, + "UnitPrice": 39, + "Quantity": 77, + "Discount": 0.1 + }, + { + "OrderID": 11064, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 12, + "Discount": 0 + }, + { + "OrderID": 11064, + "ProductID": 53, + "UnitPrice": 32.8, + "Quantity": 25, + "Discount": 0.1 + }, + { + "OrderID": 11064, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 4, + "Discount": 0.1 + }, + { + "OrderID": 11064, + "ProductID": 68, + "UnitPrice": 12.5, + "Quantity": 55, + "Discount": 0 + }, + { + "OrderID": 11065, + "ProductID": 30, + "UnitPrice": 25.89, + "Quantity": 4, + "Discount": 0.25 + }, + { + "OrderID": 11065, + "ProductID": 54, + "UnitPrice": 7.45, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 11066, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 11066, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 42, + "Discount": 0 + }, + { + "OrderID": 11066, + "ProductID": 34, + "UnitPrice": 14, + "Quantity": 35, + "Discount": 0 + }, + { + "OrderID": 11067, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 9, + "Discount": 0 + }, + { + "OrderID": 11068, + "ProductID": 28, + "UnitPrice": 45.6, + "Quantity": 8, + "Discount": 0.15 + }, + { + "OrderID": 11068, + "ProductID": 43, + "UnitPrice": 46, + "Quantity": 36, + "Discount": 0.15 + }, + { + "OrderID": 11068, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 28, + "Discount": 0.15 + }, + { + "OrderID": 11069, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11070, + "ProductID": 1, + "UnitPrice": 18, + "Quantity": 40, + "Discount": 0.15 + }, + { + "OrderID": 11070, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 20, + "Discount": 0.15 + }, + { + "OrderID": 11070, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 11070, + "ProductID": 31, + "UnitPrice": 12.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11071, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 15, + "Discount": 0.05 + }, + { + "OrderID": 11071, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 10, + "Discount": 0.05 + }, + { + "OrderID": 11072, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 8, + "Discount": 0 + }, + { + "OrderID": 11072, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 40, + "Discount": 0 + }, + { + "OrderID": 11072, + "ProductID": 50, + "UnitPrice": 16.25, + "Quantity": 22, + "Discount": 0 + }, + { + "OrderID": 11072, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 130, + "Discount": 0 + }, + { + "OrderID": 11073, + "ProductID": 11, + "UnitPrice": 21, + "Quantity": 10, + "Discount": 0 + }, + { + "OrderID": 11073, + "ProductID": 24, + "UnitPrice": 4.5, + "Quantity": 20, + "Discount": 0 + }, + { + "OrderID": 11074, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 14, + "Discount": 0.05 + }, + { + "OrderID": 11075, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 10, + "Discount": 0.15 + }, + { + "OrderID": 11075, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 30, + "Discount": 0.15 + }, + { + "OrderID": 11075, + "ProductID": 76, + "UnitPrice": 18, + "Quantity": 2, + "Discount": 0.15 + }, + { + "OrderID": 11076, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 11076, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 20, + "Discount": 0.25 + }, + { + "OrderID": 11076, + "ProductID": 19, + "UnitPrice": 9.2, + "Quantity": 10, + "Discount": 0.25 + }, + { + "OrderID": 11077, + "ProductID": 2, + "UnitPrice": 19, + "Quantity": 24, + "Discount": 0.2 + }, + { + "OrderID": 11077, + "ProductID": 3, + "UnitPrice": 10, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 4, + "UnitPrice": 22, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 6, + "UnitPrice": 25, + "Quantity": 1, + "Discount": 0.02 + }, + { + "OrderID": 11077, + "ProductID": 7, + "UnitPrice": 30, + "Quantity": 1, + "Discount": 0.05 + }, + { + "OrderID": 11077, + "ProductID": 8, + "UnitPrice": 40, + "Quantity": 2, + "Discount": 0.1 + }, + { + "OrderID": 11077, + "ProductID": 10, + "UnitPrice": 31, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 12, + "UnitPrice": 38, + "Quantity": 2, + "Discount": 0.05 + }, + { + "OrderID": 11077, + "ProductID": 13, + "UnitPrice": 6, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 14, + "UnitPrice": 23.25, + "Quantity": 1, + "Discount": 0.03 + }, + { + "OrderID": 11077, + "ProductID": 16, + "UnitPrice": 17.45, + "Quantity": 2, + "Discount": 0.03 + }, + { + "OrderID": 11077, + "ProductID": 20, + "UnitPrice": 81, + "Quantity": 1, + "Discount": 0.04 + }, + { + "OrderID": 11077, + "ProductID": 23, + "UnitPrice": 9, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 32, + "UnitPrice": 32, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 39, + "UnitPrice": 18, + "Quantity": 2, + "Discount": 0.05 + }, + { + "OrderID": 11077, + "ProductID": 41, + "UnitPrice": 9.65, + "Quantity": 3, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 46, + "UnitPrice": 12, + "Quantity": 3, + "Discount": 0.02 + }, + { + "OrderID": 11077, + "ProductID": 52, + "UnitPrice": 7, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 55, + "UnitPrice": 24, + "Quantity": 2, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 60, + "UnitPrice": 34, + "Quantity": 2, + "Discount": 0.06 + }, + { + "OrderID": 11077, + "ProductID": 64, + "UnitPrice": 33.25, + "Quantity": 2, + "Discount": 0.03 + }, + { + "OrderID": 11077, + "ProductID": 66, + "UnitPrice": 17, + "Quantity": 1, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 73, + "UnitPrice": 15, + "Quantity": 2, + "Discount": 0.01 + }, + { + "OrderID": 11077, + "ProductID": 75, + "UnitPrice": 7.75, + "Quantity": 4, + "Discount": 0 + }, + { + "OrderID": 11077, + "ProductID": 77, + "UnitPrice": 13, + "Quantity": 2, + "Discount": 0 + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/scripts/db/Orders.json b/samples/msgext-copilot-handoff/ts/scripts/db/Orders.json new file mode 100644 index 0000000..f418732 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/scripts/db/Orders.json @@ -0,0 +1,14114 @@ +{ + "Orders": [ + { + "OrderID": 10248, + "CustomerID": "VINET", + "EmployeeID": 5, + "OrderDate": "2022-07-04T00:00:00Z", + "RequiredDate": "2022-08-01T00:00:00Z", + "ShippedDate": "2022-07-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 32.38, + "ShipName": "Vins et alcools Chevalier", + "ShipAddress": "59 rue de l'Abbaye", + "ShipCity": "Reims", + "ShipRegion": null, + "ShipPostalCode": "51100", + "ShipCountry": "France" + }, + { + "OrderID": 10249, + "CustomerID": "TOMSP", + "EmployeeID": 6, + "OrderDate": "2022-07-05T00:00:00Z", + "RequiredDate": "2022-08-16T00:00:00Z", + "ShippedDate": "2022-07-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 11.61, + "ShipName": "Toms Spezialitäten", + "ShipAddress": "Luisenstr. 48", + "ShipCity": "Münster", + "ShipRegion": null, + "ShipPostalCode": "44087", + "ShipCountry": "Germany" + }, + { + "OrderID": 10250, + "CustomerID": "HANAR", + "EmployeeID": 4, + "OrderDate": "2022-07-08T00:00:00Z", + "RequiredDate": "2022-08-05T00:00:00Z", + "ShippedDate": "2022-07-12T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 65.83, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10251, + "CustomerID": "VICTE", + "EmployeeID": 3, + "OrderDate": "2022-07-08T00:00:00Z", + "RequiredDate": "2022-08-05T00:00:00Z", + "ShippedDate": "2022-07-15T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 41.34, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10252, + "CustomerID": "SUPRD", + "EmployeeID": 4, + "OrderDate": "2022-07-09T00:00:00Z", + "RequiredDate": "2022-08-06T00:00:00Z", + "ShippedDate": "2022-07-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 51.3, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10253, + "CustomerID": "HANAR", + "EmployeeID": 3, + "OrderDate": "2022-07-10T00:00:00Z", + "RequiredDate": "2022-07-24T00:00:00Z", + "ShippedDate": "2022-07-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 58.17, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10254, + "CustomerID": "CHOPS", + "EmployeeID": 5, + "OrderDate": "2022-07-11T00:00:00Z", + "RequiredDate": "2022-08-08T00:00:00Z", + "ShippedDate": "2022-07-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 22.98, + "ShipName": "Chop-suey Chinese", + "ShipAddress": "Hauptstr. 31", + "ShipCity": "Bern", + "ShipRegion": null, + "ShipPostalCode": "3012", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10255, + "CustomerID": "RICSU", + "EmployeeID": 9, + "OrderDate": "2022-07-12T00:00:00Z", + "RequiredDate": "2022-08-09T00:00:00Z", + "ShippedDate": "2022-07-15T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 148.33, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10256, + "CustomerID": "WELLI", + "EmployeeID": 3, + "OrderDate": "2022-07-15T00:00:00Z", + "RequiredDate": "2022-08-12T00:00:00Z", + "ShippedDate": "2022-07-17T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 13.97, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10257, + "CustomerID": "HILAA", + "EmployeeID": 4, + "OrderDate": "2022-07-16T00:00:00Z", + "RequiredDate": "2022-08-13T00:00:00Z", + "ShippedDate": "2022-07-22T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 81.91, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10258, + "CustomerID": "ERNSH", + "EmployeeID": 1, + "OrderDate": "2022-07-17T00:00:00Z", + "RequiredDate": "2022-08-14T00:00:00Z", + "ShippedDate": "2022-07-23T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 140.51, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10259, + "CustomerID": "CENTC", + "EmployeeID": 4, + "OrderDate": "2022-07-18T00:00:00Z", + "RequiredDate": "2022-08-15T00:00:00Z", + "ShippedDate": "2022-07-25T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 3.25, + "ShipName": "Centro comercial Moctezuma", + "ShipAddress": "Sierras de Granada 9993", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05022", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10260, + "CustomerID": "OTTIK", + "EmployeeID": 4, + "OrderDate": "2022-07-19T00:00:00Z", + "RequiredDate": "2022-08-16T00:00:00Z", + "ShippedDate": "2022-07-29T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 55.09, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 10261, + "CustomerID": "QUEDE", + "EmployeeID": 4, + "OrderDate": "2022-07-19T00:00:00Z", + "RequiredDate": "2022-08-16T00:00:00Z", + "ShippedDate": "2022-07-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.05, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10262, + "CustomerID": "RATTC", + "EmployeeID": 8, + "OrderDate": "2022-07-22T00:00:00Z", + "RequiredDate": "2022-08-19T00:00:00Z", + "ShippedDate": "2022-07-25T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 48.29, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10263, + "CustomerID": "ERNSH", + "EmployeeID": 9, + "OrderDate": "2022-07-23T00:00:00Z", + "RequiredDate": "2022-08-20T00:00:00Z", + "ShippedDate": "2022-07-31T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 146.06, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10264, + "CustomerID": "FOLKO", + "EmployeeID": 6, + "OrderDate": "2022-07-24T00:00:00Z", + "RequiredDate": "2022-08-21T00:00:00Z", + "ShippedDate": "2022-08-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 3.67, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10265, + "CustomerID": "BLONP", + "EmployeeID": 2, + "OrderDate": "2022-07-25T00:00:00Z", + "RequiredDate": "2022-08-22T00:00:00Z", + "ShippedDate": "2022-08-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 55.28, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10266, + "CustomerID": "WARTH", + "EmployeeID": 3, + "OrderDate": "2022-07-26T00:00:00Z", + "RequiredDate": "2022-09-06T00:00:00Z", + "ShippedDate": "2022-07-31T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 25.73, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10267, + "CustomerID": "FRANK", + "EmployeeID": 4, + "OrderDate": "2022-07-29T00:00:00Z", + "RequiredDate": "2022-08-26T00:00:00Z", + "ShippedDate": "2022-08-06T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 208.58, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10268, + "CustomerID": "GROSR", + "EmployeeID": 8, + "OrderDate": "2022-07-30T00:00:00Z", + "RequiredDate": "2022-08-27T00:00:00Z", + "ShippedDate": "2022-08-02T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 66.29, + "ShipName": "GROSELLA-Restaurante", + "ShipAddress": "5ª Ave. Los Palos Grandes", + "ShipCity": "Caracas", + "ShipRegion": "DF", + "ShipPostalCode": "1081", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10269, + "CustomerID": "WHITC", + "EmployeeID": 5, + "OrderDate": "2022-07-31T00:00:00Z", + "RequiredDate": "2022-08-14T00:00:00Z", + "ShippedDate": "2022-08-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 4.56, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10270, + "CustomerID": "WARTH", + "EmployeeID": 1, + "OrderDate": "2022-08-01T00:00:00Z", + "RequiredDate": "2022-08-29T00:00:00Z", + "ShippedDate": "2022-08-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 136.54, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10271, + "CustomerID": "SPLIR", + "EmployeeID": 6, + "OrderDate": "2022-08-01T00:00:00Z", + "RequiredDate": "2022-08-29T00:00:00Z", + "ShippedDate": "2022-08-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.54, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10272, + "CustomerID": "RATTC", + "EmployeeID": 6, + "OrderDate": "2022-08-02T00:00:00Z", + "RequiredDate": "2022-08-30T00:00:00Z", + "ShippedDate": "2022-08-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 98.03, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10273, + "CustomerID": "QUICK", + "EmployeeID": 3, + "OrderDate": "2022-08-05T00:00:00Z", + "RequiredDate": "2022-09-02T00:00:00Z", + "ShippedDate": "2022-08-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 76.07, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10274, + "CustomerID": "VINET", + "EmployeeID": 6, + "OrderDate": "2022-08-06T00:00:00Z", + "RequiredDate": "2022-09-03T00:00:00Z", + "ShippedDate": "2022-08-16T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 6.01, + "ShipName": "Vins et alcools Chevalier", + "ShipAddress": "59 rue de l'Abbaye", + "ShipCity": "Reims", + "ShipRegion": null, + "ShipPostalCode": "51100", + "ShipCountry": "France" + }, + { + "OrderID": 10275, + "CustomerID": "MAGAA", + "EmployeeID": 1, + "OrderDate": "2022-08-07T00:00:00Z", + "RequiredDate": "2022-09-04T00:00:00Z", + "ShippedDate": "2022-08-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 26.93, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10276, + "CustomerID": "TORTU", + "EmployeeID": 8, + "OrderDate": "2022-08-08T00:00:00Z", + "RequiredDate": "2022-08-22T00:00:00Z", + "ShippedDate": "2022-08-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 13.84, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10277, + "CustomerID": "MORGK", + "EmployeeID": 2, + "OrderDate": "2022-08-09T00:00:00Z", + "RequiredDate": "2022-09-06T00:00:00Z", + "ShippedDate": "2022-08-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 125.77, + "ShipName": "Morgenstern Gesundkost", + "ShipAddress": "Heerstr. 22", + "ShipCity": "Leipzig", + "ShipRegion": null, + "ShipPostalCode": "04179", + "ShipCountry": "Germany" + }, + { + "OrderID": 10278, + "CustomerID": "BERGS", + "EmployeeID": 8, + "OrderDate": "2022-08-12T00:00:00Z", + "RequiredDate": "2022-09-09T00:00:00Z", + "ShippedDate": "2022-08-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 92.69, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10279, + "CustomerID": "LEHMS", + "EmployeeID": 8, + "OrderDate": "2022-08-13T00:00:00Z", + "RequiredDate": "2022-09-10T00:00:00Z", + "ShippedDate": "2022-08-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 25.83, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10280, + "CustomerID": "BERGS", + "EmployeeID": 2, + "OrderDate": "2022-08-14T00:00:00Z", + "RequiredDate": "2022-09-11T00:00:00Z", + "ShippedDate": "2022-09-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 8.98, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10281, + "CustomerID": "ROMEY", + "EmployeeID": 4, + "OrderDate": "2022-08-14T00:00:00Z", + "RequiredDate": "2022-08-28T00:00:00Z", + "ShippedDate": "2022-08-21T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 2.94, + "ShipName": "Romero y tomillo", + "ShipAddress": "Gran Vía, 1", + "ShipCity": "Madrid", + "ShipRegion": null, + "ShipPostalCode": "28001", + "ShipCountry": "Spain" + }, + { + "OrderID": 10282, + "CustomerID": "ROMEY", + "EmployeeID": 4, + "OrderDate": "2022-08-15T00:00:00Z", + "RequiredDate": "2022-09-12T00:00:00Z", + "ShippedDate": "2022-08-21T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 12.69, + "ShipName": "Romero y tomillo", + "ShipAddress": "Gran Vía, 1", + "ShipCity": "Madrid", + "ShipRegion": null, + "ShipPostalCode": "28001", + "ShipCountry": "Spain" + }, + { + "OrderID": 10283, + "CustomerID": "LILAS", + "EmployeeID": 3, + "OrderDate": "2022-08-16T00:00:00Z", + "RequiredDate": "2022-09-13T00:00:00Z", + "ShippedDate": "2022-08-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 84.81, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10284, + "CustomerID": "LEHMS", + "EmployeeID": 4, + "OrderDate": "2022-08-19T00:00:00Z", + "RequiredDate": "2022-09-16T00:00:00Z", + "ShippedDate": "2022-08-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 76.56, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10285, + "CustomerID": "QUICK", + "EmployeeID": 1, + "OrderDate": "2022-08-20T00:00:00Z", + "RequiredDate": "2022-09-17T00:00:00Z", + "ShippedDate": "2022-08-26T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 76.83, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10286, + "CustomerID": "QUICK", + "EmployeeID": 8, + "OrderDate": "2022-08-21T00:00:00Z", + "RequiredDate": "2022-09-18T00:00:00Z", + "ShippedDate": "2022-08-30T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 229.24, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10287, + "CustomerID": "RICAR", + "EmployeeID": 8, + "OrderDate": "2022-08-22T00:00:00Z", + "RequiredDate": "2022-09-19T00:00:00Z", + "ShippedDate": "2022-08-28T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 12.76, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10288, + "CustomerID": "REGGC", + "EmployeeID": 4, + "OrderDate": "2022-08-23T00:00:00Z", + "RequiredDate": "2022-09-20T00:00:00Z", + "ShippedDate": "2022-09-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 7.45, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10289, + "CustomerID": "BSBEV", + "EmployeeID": 7, + "OrderDate": "2022-08-26T00:00:00Z", + "RequiredDate": "2022-09-23T00:00:00Z", + "ShippedDate": "2022-08-28T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 22.77, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10290, + "CustomerID": "COMMI", + "EmployeeID": 8, + "OrderDate": "2022-08-27T00:00:00Z", + "RequiredDate": "2022-09-24T00:00:00Z", + "ShippedDate": "2022-09-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 79.7, + "ShipName": "Comércio Mineiro", + "ShipAddress": "Av. dos Lusíadas, 23", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05432-043", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10291, + "CustomerID": "QUEDE", + "EmployeeID": 6, + "OrderDate": "2022-08-27T00:00:00Z", + "RequiredDate": "2022-09-24T00:00:00Z", + "ShippedDate": "2022-09-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 6.4, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10292, + "CustomerID": "TRADH", + "EmployeeID": 1, + "OrderDate": "2022-08-28T00:00:00Z", + "RequiredDate": "2022-09-25T00:00:00Z", + "ShippedDate": "2022-09-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.35, + "ShipName": "Tradiçao Hipermercados", + "ShipAddress": "Av. Inês de Castro, 414", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05634-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10293, + "CustomerID": "TORTU", + "EmployeeID": 1, + "OrderDate": "2022-08-29T00:00:00Z", + "RequiredDate": "2022-09-26T00:00:00Z", + "ShippedDate": "2022-09-11T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 21.18, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10294, + "CustomerID": "RATTC", + "EmployeeID": 4, + "OrderDate": "2022-08-30T00:00:00Z", + "RequiredDate": "2022-09-27T00:00:00Z", + "ShippedDate": "2022-09-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 147.26, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10295, + "CustomerID": "VINET", + "EmployeeID": 2, + "OrderDate": "2022-09-02T00:00:00Z", + "RequiredDate": "2022-09-30T00:00:00Z", + "ShippedDate": "2022-09-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.15, + "ShipName": "Vins et alcools Chevalier", + "ShipAddress": "59 rue de l'Abbaye", + "ShipCity": "Reims", + "ShipRegion": null, + "ShipPostalCode": "51100", + "ShipCountry": "France" + }, + { + "OrderID": 10296, + "CustomerID": "LILAS", + "EmployeeID": 6, + "OrderDate": "2022-09-03T00:00:00Z", + "RequiredDate": "2022-10-01T00:00:00Z", + "ShippedDate": "2022-09-11T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.12, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10297, + "CustomerID": "BLONP", + "EmployeeID": 5, + "OrderDate": "2022-09-04T00:00:00Z", + "RequiredDate": "2022-10-16T00:00:00Z", + "ShippedDate": "2022-09-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 5.74, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10298, + "CustomerID": "HUNGO", + "EmployeeID": 6, + "OrderDate": "2022-09-05T00:00:00Z", + "RequiredDate": "2022-10-03T00:00:00Z", + "ShippedDate": "2022-09-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 168.22, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10299, + "CustomerID": "RICAR", + "EmployeeID": 4, + "OrderDate": "2022-09-06T00:00:00Z", + "RequiredDate": "2022-10-04T00:00:00Z", + "ShippedDate": "2022-09-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 29.76, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10300, + "CustomerID": "MAGAA", + "EmployeeID": 2, + "OrderDate": "2022-09-09T00:00:00Z", + "RequiredDate": "2022-10-07T00:00:00Z", + "ShippedDate": "2022-09-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 17.68, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10301, + "CustomerID": "WANDK", + "EmployeeID": 8, + "OrderDate": "2022-09-09T00:00:00Z", + "RequiredDate": "2022-10-07T00:00:00Z", + "ShippedDate": "2022-09-17T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 45.08, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10302, + "CustomerID": "SUPRD", + "EmployeeID": 4, + "OrderDate": "2022-09-10T00:00:00Z", + "RequiredDate": "2022-10-08T00:00:00Z", + "ShippedDate": "2022-10-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 6.27, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10303, + "CustomerID": "GODOS", + "EmployeeID": 7, + "OrderDate": "2022-09-11T00:00:00Z", + "RequiredDate": "2022-10-09T00:00:00Z", + "ShippedDate": "2022-09-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 107.83, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 10304, + "CustomerID": "TORTU", + "EmployeeID": 1, + "OrderDate": "2022-09-12T00:00:00Z", + "RequiredDate": "2022-10-10T00:00:00Z", + "ShippedDate": "2022-09-17T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 63.79, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10305, + "CustomerID": "OLDWO", + "EmployeeID": 8, + "OrderDate": "2022-09-13T00:00:00Z", + "RequiredDate": "2022-10-11T00:00:00Z", + "ShippedDate": "2022-10-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 257.62, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10306, + "CustomerID": "ROMEY", + "EmployeeID": 1, + "OrderDate": "2022-09-16T00:00:00Z", + "RequiredDate": "2022-10-14T00:00:00Z", + "ShippedDate": "2022-09-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 7.56, + "ShipName": "Romero y tomillo", + "ShipAddress": "Gran Vía, 1", + "ShipCity": "Madrid", + "ShipRegion": null, + "ShipPostalCode": "28001", + "ShipCountry": "Spain" + }, + { + "OrderID": 10307, + "CustomerID": "LONEP", + "EmployeeID": 2, + "OrderDate": "2022-09-17T00:00:00Z", + "RequiredDate": "2022-10-15T00:00:00Z", + "ShippedDate": "2022-09-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 0.56, + "ShipName": "Lonesome Pine Restaurant", + "ShipAddress": "89 Chiaroscuro Rd.", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97219", + "ShipCountry": "USA" + }, + { + "OrderID": 10308, + "CustomerID": "ANATR", + "EmployeeID": 7, + "OrderDate": "2022-09-18T00:00:00Z", + "RequiredDate": "2022-10-16T00:00:00Z", + "ShippedDate": "2022-09-24T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.61, + "ShipName": "Ana Trujillo Emparedados y helados", + "ShipAddress": "Avda. de la Constitución 2222", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05021", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10309, + "CustomerID": "HUNGO", + "EmployeeID": 3, + "OrderDate": "2022-09-19T00:00:00Z", + "RequiredDate": "2022-10-17T00:00:00Z", + "ShippedDate": "2022-10-23T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 47.3, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10310, + "CustomerID": "THEBI", + "EmployeeID": 8, + "OrderDate": "2022-09-20T00:00:00Z", + "RequiredDate": "2022-10-18T00:00:00Z", + "ShippedDate": "2022-09-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 17.52, + "ShipName": "The Big Cheese", + "ShipAddress": "89 Jefferson Way Suite 2", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97201", + "ShipCountry": "USA" + }, + { + "OrderID": 10311, + "CustomerID": "DUMON", + "EmployeeID": 1, + "OrderDate": "2022-09-20T00:00:00Z", + "RequiredDate": "2022-10-04T00:00:00Z", + "ShippedDate": "2022-09-26T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 24.69, + "ShipName": "Du monde entier", + "ShipAddress": "67, rue des Cinquante Otages", + "ShipCity": "Nantes", + "ShipRegion": null, + "ShipPostalCode": "44000", + "ShipCountry": "France" + }, + { + "OrderID": 10312, + "CustomerID": "WANDK", + "EmployeeID": 2, + "OrderDate": "2022-09-23T00:00:00Z", + "RequiredDate": "2022-10-21T00:00:00Z", + "ShippedDate": "2022-10-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 40.26, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10313, + "CustomerID": "QUICK", + "EmployeeID": 2, + "OrderDate": "2022-09-24T00:00:00Z", + "RequiredDate": "2022-10-22T00:00:00Z", + "ShippedDate": "2022-10-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.96, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10314, + "CustomerID": "RATTC", + "EmployeeID": 1, + "OrderDate": "2022-09-25T00:00:00Z", + "RequiredDate": "2022-10-23T00:00:00Z", + "ShippedDate": "2022-10-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 74.16, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10315, + "CustomerID": "ISLAT", + "EmployeeID": 4, + "OrderDate": "2022-09-26T00:00:00Z", + "RequiredDate": "2022-10-24T00:00:00Z", + "ShippedDate": "2022-10-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 41.76, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10316, + "CustomerID": "RATTC", + "EmployeeID": 1, + "OrderDate": "2022-09-27T00:00:00Z", + "RequiredDate": "2022-10-25T00:00:00Z", + "ShippedDate": "2022-10-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 150.15, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10317, + "CustomerID": "LONEP", + "EmployeeID": 6, + "OrderDate": "2022-09-30T00:00:00Z", + "RequiredDate": "2022-10-28T00:00:00Z", + "ShippedDate": "2022-10-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 12.69, + "ShipName": "Lonesome Pine Restaurant", + "ShipAddress": "89 Chiaroscuro Rd.", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97219", + "ShipCountry": "USA" + }, + { + "OrderID": 10318, + "CustomerID": "ISLAT", + "EmployeeID": 8, + "OrderDate": "2022-10-01T00:00:00Z", + "RequiredDate": "2022-10-29T00:00:00Z", + "ShippedDate": "2022-10-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.73, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10319, + "CustomerID": "TORTU", + "EmployeeID": 7, + "OrderDate": "2022-10-02T00:00:00Z", + "RequiredDate": "2022-10-30T00:00:00Z", + "ShippedDate": "2022-10-11T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 64.5, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10320, + "CustomerID": "WARTH", + "EmployeeID": 5, + "OrderDate": "2022-10-03T00:00:00Z", + "RequiredDate": "2022-10-17T00:00:00Z", + "ShippedDate": "2022-10-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 34.57, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10321, + "CustomerID": "ISLAT", + "EmployeeID": 3, + "OrderDate": "2022-10-03T00:00:00Z", + "RequiredDate": "2022-10-31T00:00:00Z", + "ShippedDate": "2022-10-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.43, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10322, + "CustomerID": "PERIC", + "EmployeeID": 7, + "OrderDate": "2022-10-04T00:00:00Z", + "RequiredDate": "2022-11-01T00:00:00Z", + "ShippedDate": "2022-10-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 0.4, + "ShipName": "Pericles Comidas clásicas", + "ShipAddress": "Calle Dr. Jorge Cash 321", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10323, + "CustomerID": "KOENE", + "EmployeeID": 4, + "OrderDate": "2022-10-07T00:00:00Z", + "RequiredDate": "2022-11-04T00:00:00Z", + "ShippedDate": "2022-10-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 4.88, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10324, + "CustomerID": "SAVEA", + "EmployeeID": 9, + "OrderDate": "2022-10-08T00:00:00Z", + "RequiredDate": "2022-11-05T00:00:00Z", + "ShippedDate": "2022-10-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 214.27, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10325, + "CustomerID": "KOENE", + "EmployeeID": 1, + "OrderDate": "2022-10-09T00:00:00Z", + "RequiredDate": "2022-10-23T00:00:00Z", + "ShippedDate": "2022-10-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 64.86, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10326, + "CustomerID": "BOLID", + "EmployeeID": 4, + "OrderDate": "2022-10-10T00:00:00Z", + "RequiredDate": "2022-11-07T00:00:00Z", + "ShippedDate": "2022-10-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 77.92, + "ShipName": "Bólido Comidas preparadas", + "ShipAddress": "C/ Araquil, 67", + "ShipCity": "Madrid", + "ShipRegion": null, + "ShipPostalCode": "28023", + "ShipCountry": "Spain" + }, + { + "OrderID": 10327, + "CustomerID": "FOLKO", + "EmployeeID": 2, + "OrderDate": "2022-10-11T00:00:00Z", + "RequiredDate": "2022-11-08T00:00:00Z", + "ShippedDate": "2022-10-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 63.36, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10328, + "CustomerID": "FURIB", + "EmployeeID": 4, + "OrderDate": "2022-10-14T00:00:00Z", + "RequiredDate": "2022-11-11T00:00:00Z", + "ShippedDate": "2022-10-17T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 87.03, + "ShipName": "Furia Bacalhau e Frutos do Mar", + "ShipAddress": "Jardim das rosas n. 32", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1675", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10329, + "CustomerID": "SPLIR", + "EmployeeID": 4, + "OrderDate": "2022-10-15T00:00:00Z", + "RequiredDate": "2022-11-26T00:00:00Z", + "ShippedDate": "2022-10-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 191.67, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10330, + "CustomerID": "LILAS", + "EmployeeID": 3, + "OrderDate": "2022-10-16T00:00:00Z", + "RequiredDate": "2022-11-13T00:00:00Z", + "ShippedDate": "2022-10-28T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 12.75, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10331, + "CustomerID": "BONAP", + "EmployeeID": 9, + "OrderDate": "2022-10-16T00:00:00Z", + "RequiredDate": "2022-11-27T00:00:00Z", + "ShippedDate": "2022-10-21T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 10.19, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10332, + "CustomerID": "MEREP", + "EmployeeID": 3, + "OrderDate": "2022-10-17T00:00:00Z", + "RequiredDate": "2022-11-28T00:00:00Z", + "ShippedDate": "2022-10-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 52.84, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10333, + "CustomerID": "WARTH", + "EmployeeID": 5, + "OrderDate": "2022-10-18T00:00:00Z", + "RequiredDate": "2022-11-15T00:00:00Z", + "ShippedDate": "2022-10-25T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 0.59, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10334, + "CustomerID": "VICTE", + "EmployeeID": 8, + "OrderDate": "2022-10-21T00:00:00Z", + "RequiredDate": "2022-11-18T00:00:00Z", + "ShippedDate": "2022-10-28T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 8.56, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10335, + "CustomerID": "HUNGO", + "EmployeeID": 7, + "OrderDate": "2022-10-22T00:00:00Z", + "RequiredDate": "2022-11-19T00:00:00Z", + "ShippedDate": "2022-10-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 42.11, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10336, + "CustomerID": "PRINI", + "EmployeeID": 7, + "OrderDate": "2022-10-23T00:00:00Z", + "RequiredDate": "2022-11-20T00:00:00Z", + "ShippedDate": "2022-10-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 15.51, + "ShipName": "Princesa Isabel Vinhos", + "ShipAddress": "Estrada da saúde n. 58", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1756", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10337, + "CustomerID": "FRANK", + "EmployeeID": 4, + "OrderDate": "2022-10-24T00:00:00Z", + "RequiredDate": "2022-11-21T00:00:00Z", + "ShippedDate": "2022-10-29T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 108.26, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10338, + "CustomerID": "OLDWO", + "EmployeeID": 4, + "OrderDate": "2022-10-25T00:00:00Z", + "RequiredDate": "2022-11-22T00:00:00Z", + "ShippedDate": "2022-10-29T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 84.21, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10339, + "CustomerID": "MEREP", + "EmployeeID": 2, + "OrderDate": "2022-10-28T00:00:00Z", + "RequiredDate": "2022-11-25T00:00:00Z", + "ShippedDate": "2022-11-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 15.66, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10340, + "CustomerID": "BONAP", + "EmployeeID": 1, + "OrderDate": "2022-10-29T00:00:00Z", + "RequiredDate": "2022-11-26T00:00:00Z", + "ShippedDate": "2022-11-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 166.31, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10341, + "CustomerID": "SIMOB", + "EmployeeID": 7, + "OrderDate": "2022-10-29T00:00:00Z", + "RequiredDate": "2022-11-26T00:00:00Z", + "ShippedDate": "2022-11-05T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 26.78, + "ShipName": "Simons bistro", + "ShipAddress": "Vinbæltet 34", + "ShipCity": "Kobenhavn", + "ShipRegion": null, + "ShipPostalCode": "1734", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10342, + "CustomerID": "FRANK", + "EmployeeID": 4, + "OrderDate": "2022-10-30T00:00:00Z", + "RequiredDate": "2022-11-13T00:00:00Z", + "ShippedDate": "2022-11-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 54.83, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10343, + "CustomerID": "LEHMS", + "EmployeeID": 4, + "OrderDate": "2022-10-31T00:00:00Z", + "RequiredDate": "2022-11-28T00:00:00Z", + "ShippedDate": "2022-11-06T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 110.37, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10344, + "CustomerID": "WHITC", + "EmployeeID": 4, + "OrderDate": "2022-11-01T00:00:00Z", + "RequiredDate": "2022-11-29T00:00:00Z", + "ShippedDate": "2022-11-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 23.29, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10345, + "CustomerID": "QUICK", + "EmployeeID": 2, + "OrderDate": "2022-11-04T00:00:00Z", + "RequiredDate": "2022-12-02T00:00:00Z", + "ShippedDate": "2022-11-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 249.06, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10346, + "CustomerID": "RATTC", + "EmployeeID": 3, + "OrderDate": "2022-11-05T00:00:00Z", + "RequiredDate": "2022-12-17T00:00:00Z", + "ShippedDate": "2022-11-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 142.08, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10347, + "CustomerID": "FAMIA", + "EmployeeID": 4, + "OrderDate": "2022-11-06T00:00:00Z", + "RequiredDate": "2022-12-04T00:00:00Z", + "ShippedDate": "2022-11-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 3.1, + "ShipName": "Familia Arquibaldo", + "ShipAddress": "Rua Orós, 92", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05442-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10348, + "CustomerID": "WANDK", + "EmployeeID": 4, + "OrderDate": "2022-11-07T00:00:00Z", + "RequiredDate": "2022-12-05T00:00:00Z", + "ShippedDate": "2022-11-15T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 0.78, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10349, + "CustomerID": "SPLIR", + "EmployeeID": 7, + "OrderDate": "2022-11-08T00:00:00Z", + "RequiredDate": "2022-12-06T00:00:00Z", + "ShippedDate": "2022-11-15T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 8.63, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10350, + "CustomerID": "LAMAI", + "EmployeeID": 6, + "OrderDate": "2022-11-11T00:00:00Z", + "RequiredDate": "2022-12-09T00:00:00Z", + "ShippedDate": "2022-12-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 64.19, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10351, + "CustomerID": "ERNSH", + "EmployeeID": 1, + "OrderDate": "2022-11-11T00:00:00Z", + "RequiredDate": "2022-12-09T00:00:00Z", + "ShippedDate": "2022-11-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 162.33, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10352, + "CustomerID": "FURIB", + "EmployeeID": 3, + "OrderDate": "2022-11-12T00:00:00Z", + "RequiredDate": "2022-11-26T00:00:00Z", + "ShippedDate": "2022-11-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.3, + "ShipName": "Furia Bacalhau e Frutos do Mar", + "ShipAddress": "Jardim das rosas n. 32", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1675", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10353, + "CustomerID": "PICCO", + "EmployeeID": 7, + "OrderDate": "2022-11-13T00:00:00Z", + "RequiredDate": "2022-12-11T00:00:00Z", + "ShippedDate": "2022-11-25T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 360.63, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10354, + "CustomerID": "PERIC", + "EmployeeID": 8, + "OrderDate": "2022-11-14T00:00:00Z", + "RequiredDate": "2022-12-12T00:00:00Z", + "ShippedDate": "2022-11-20T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 53.8, + "ShipName": "Pericles Comidas clásicas", + "ShipAddress": "Calle Dr. Jorge Cash 321", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10355, + "CustomerID": "AROUT", + "EmployeeID": 6, + "OrderDate": "2022-11-15T00:00:00Z", + "RequiredDate": "2022-12-13T00:00:00Z", + "ShippedDate": "2022-11-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 41.95, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10356, + "CustomerID": "WANDK", + "EmployeeID": 6, + "OrderDate": "2022-11-18T00:00:00Z", + "RequiredDate": "2022-12-16T00:00:00Z", + "ShippedDate": "2022-11-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 36.71, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10357, + "CustomerID": "LILAS", + "EmployeeID": 1, + "OrderDate": "2022-11-19T00:00:00Z", + "RequiredDate": "2022-12-17T00:00:00Z", + "ShippedDate": "2022-12-02T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 34.88, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10358, + "CustomerID": "LAMAI", + "EmployeeID": 5, + "OrderDate": "2022-11-20T00:00:00Z", + "RequiredDate": "2022-12-18T00:00:00Z", + "ShippedDate": "2022-11-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 19.64, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10359, + "CustomerID": "SEVES", + "EmployeeID": 5, + "OrderDate": "2022-11-21T00:00:00Z", + "RequiredDate": "2022-12-19T00:00:00Z", + "ShippedDate": "2022-11-26T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 288.43, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10360, + "CustomerID": "BLONP", + "EmployeeID": 4, + "OrderDate": "2022-11-22T00:00:00Z", + "RequiredDate": "2022-12-20T00:00:00Z", + "ShippedDate": "2022-12-02T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 131.7, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10361, + "CustomerID": "QUICK", + "EmployeeID": 1, + "OrderDate": "2022-11-22T00:00:00Z", + "RequiredDate": "2022-12-20T00:00:00Z", + "ShippedDate": "2022-12-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 183.17, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10362, + "CustomerID": "BONAP", + "EmployeeID": 3, + "OrderDate": "2022-11-25T00:00:00Z", + "RequiredDate": "2022-12-23T00:00:00Z", + "ShippedDate": "2022-11-28T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 96.04, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10363, + "CustomerID": "DRACD", + "EmployeeID": 4, + "OrderDate": "2022-11-26T00:00:00Z", + "RequiredDate": "2022-12-24T00:00:00Z", + "ShippedDate": "2022-12-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 30.54, + "ShipName": "Drachenblut Delikatessen", + "ShipAddress": "Walserweg 21", + "ShipCity": "Aachen", + "ShipRegion": null, + "ShipPostalCode": "52066", + "ShipCountry": "Germany" + }, + { + "OrderID": 10364, + "CustomerID": "EASTC", + "EmployeeID": 1, + "OrderDate": "2022-11-26T00:00:00Z", + "RequiredDate": "2023-01-07T00:00:00Z", + "ShippedDate": "2022-12-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 71.97, + "ShipName": "Eastern Connection", + "ShipAddress": "35 King George", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX3 6FW", + "ShipCountry": "UK" + }, + { + "OrderID": 10365, + "CustomerID": "ANTON", + "EmployeeID": 3, + "OrderDate": "2022-11-27T00:00:00Z", + "RequiredDate": "2022-12-25T00:00:00Z", + "ShippedDate": "2022-12-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 22, + "ShipName": "Antonio Moreno Taquería", + "ShipAddress": "Mataderos 2312", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05023", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10366, + "CustomerID": "GALED", + "EmployeeID": 8, + "OrderDate": "2022-11-28T00:00:00Z", + "RequiredDate": "2023-01-09T00:00:00Z", + "ShippedDate": "2022-12-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 10.14, + "ShipName": "Galería del gastronómo", + "ShipAddress": "Rambla de Cataluña, 23", + "ShipCity": "Barcelona", + "ShipRegion": null, + "ShipPostalCode": "8022", + "ShipCountry": "Spain" + }, + { + "OrderID": 10367, + "CustomerID": "VAFFE", + "EmployeeID": 7, + "OrderDate": "2022-11-28T00:00:00Z", + "RequiredDate": "2022-12-26T00:00:00Z", + "ShippedDate": "2022-12-02T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 13.55, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10368, + "CustomerID": "ERNSH", + "EmployeeID": 2, + "OrderDate": "2022-11-29T00:00:00Z", + "RequiredDate": "2022-12-27T00:00:00Z", + "ShippedDate": "2022-12-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 101.95, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10369, + "CustomerID": "SPLIR", + "EmployeeID": 8, + "OrderDate": "2022-12-02T00:00:00Z", + "RequiredDate": "2022-12-30T00:00:00Z", + "ShippedDate": "2022-12-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 195.68, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10370, + "CustomerID": "CHOPS", + "EmployeeID": 6, + "OrderDate": "2022-12-03T00:00:00Z", + "RequiredDate": "2022-12-31T00:00:00Z", + "ShippedDate": "2022-12-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.17, + "ShipName": "Chop-suey Chinese", + "ShipAddress": "Hauptstr. 31", + "ShipCity": "Bern", + "ShipRegion": null, + "ShipPostalCode": "3012", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10371, + "CustomerID": "LAMAI", + "EmployeeID": 1, + "OrderDate": "2022-12-03T00:00:00Z", + "RequiredDate": "2022-12-31T00:00:00Z", + "ShippedDate": "2022-12-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.45, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10372, + "CustomerID": "QUEEN", + "EmployeeID": 5, + "OrderDate": "2022-12-04T00:00:00Z", + "RequiredDate": "2023-01-01T00:00:00Z", + "ShippedDate": "2022-12-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 890.78, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10373, + "CustomerID": "HUNGO", + "EmployeeID": 4, + "OrderDate": "2022-12-05T00:00:00Z", + "RequiredDate": "2023-01-02T00:00:00Z", + "ShippedDate": "2022-12-11T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 124.12, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10374, + "CustomerID": "WOLZA", + "EmployeeID": 1, + "OrderDate": "2022-12-05T00:00:00Z", + "RequiredDate": "2023-01-02T00:00:00Z", + "ShippedDate": "2022-12-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 3.94, + "ShipName": "Wolski Zajazd", + "ShipAddress": "ul. Filtrowa 68", + "ShipCity": "Warszawa", + "ShipRegion": null, + "ShipPostalCode": "01-012", + "ShipCountry": "Poland" + }, + { + "OrderID": 10375, + "CustomerID": "HUNGC", + "EmployeeID": 3, + "OrderDate": "2022-12-06T00:00:00Z", + "RequiredDate": "2023-01-03T00:00:00Z", + "ShippedDate": "2022-12-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 20.12, + "ShipName": "Hungry Coyote Import Store", + "ShipAddress": "City Center Plaza 516 Main St.", + "ShipCity": "Elgin", + "ShipRegion": "OR", + "ShipPostalCode": "97827", + "ShipCountry": "USA" + }, + { + "OrderID": 10376, + "CustomerID": "MEREP", + "EmployeeID": 1, + "OrderDate": "2022-12-09T00:00:00Z", + "RequiredDate": "2023-01-06T00:00:00Z", + "ShippedDate": "2022-12-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 20.39, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10377, + "CustomerID": "SEVES", + "EmployeeID": 1, + "OrderDate": "2022-12-09T00:00:00Z", + "RequiredDate": "2023-01-06T00:00:00Z", + "ShippedDate": "2022-12-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 22.21, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10378, + "CustomerID": "FOLKO", + "EmployeeID": 5, + "OrderDate": "2022-12-10T00:00:00Z", + "RequiredDate": "2023-01-07T00:00:00Z", + "ShippedDate": "2022-12-19T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 5.44, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10379, + "CustomerID": "QUEDE", + "EmployeeID": 2, + "OrderDate": "2022-12-11T00:00:00Z", + "RequiredDate": "2023-01-08T00:00:00Z", + "ShippedDate": "2022-12-13T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 45.03, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10380, + "CustomerID": "HUNGO", + "EmployeeID": 8, + "OrderDate": "2022-12-12T00:00:00Z", + "RequiredDate": "2023-01-09T00:00:00Z", + "ShippedDate": "2023-01-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 35.03, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10381, + "CustomerID": "LILAS", + "EmployeeID": 3, + "OrderDate": "2022-12-12T00:00:00Z", + "RequiredDate": "2023-01-09T00:00:00Z", + "ShippedDate": "2022-12-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 7.99, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10382, + "CustomerID": "ERNSH", + "EmployeeID": 4, + "OrderDate": "2022-12-13T00:00:00Z", + "RequiredDate": "2023-01-10T00:00:00Z", + "ShippedDate": "2022-12-16T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 94.77, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10383, + "CustomerID": "AROUT", + "EmployeeID": 8, + "OrderDate": "2022-12-16T00:00:00Z", + "RequiredDate": "2023-01-13T00:00:00Z", + "ShippedDate": "2022-12-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 34.24, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10384, + "CustomerID": "BERGS", + "EmployeeID": 3, + "OrderDate": "2022-12-16T00:00:00Z", + "RequiredDate": "2023-01-13T00:00:00Z", + "ShippedDate": "2022-12-20T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 168.64, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10385, + "CustomerID": "SPLIR", + "EmployeeID": 1, + "OrderDate": "2022-12-17T00:00:00Z", + "RequiredDate": "2023-01-14T00:00:00Z", + "ShippedDate": "2022-12-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 30.96, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10386, + "CustomerID": "FAMIA", + "EmployeeID": 9, + "OrderDate": "2022-12-18T00:00:00Z", + "RequiredDate": "2023-01-01T00:00:00Z", + "ShippedDate": "2022-12-25T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 13.99, + "ShipName": "Familia Arquibaldo", + "ShipAddress": "Rua Orós, 92", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05442-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10387, + "CustomerID": "SANTG", + "EmployeeID": 1, + "OrderDate": "2022-12-18T00:00:00Z", + "RequiredDate": "2023-01-15T00:00:00Z", + "ShippedDate": "2022-12-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 93.63, + "ShipName": "Santé Gourmet", + "ShipAddress": "Erling Skakkes gate 78", + "ShipCity": "Stavern", + "ShipRegion": null, + "ShipPostalCode": "4110", + "ShipCountry": "Norway" + }, + { + "OrderID": 10388, + "CustomerID": "SEVES", + "EmployeeID": 2, + "OrderDate": "2022-12-19T00:00:00Z", + "RequiredDate": "2023-01-16T00:00:00Z", + "ShippedDate": "2022-12-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 34.86, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10389, + "CustomerID": "BOTTM", + "EmployeeID": 4, + "OrderDate": "2022-12-20T00:00:00Z", + "RequiredDate": "2023-01-17T00:00:00Z", + "ShippedDate": "2022-12-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 47.42, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10390, + "CustomerID": "ERNSH", + "EmployeeID": 6, + "OrderDate": "2022-12-23T00:00:00Z", + "RequiredDate": "2023-01-20T00:00:00Z", + "ShippedDate": "2022-12-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 126.38, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10391, + "CustomerID": "DRACD", + "EmployeeID": 3, + "OrderDate": "2022-12-23T00:00:00Z", + "RequiredDate": "2023-01-20T00:00:00Z", + "ShippedDate": "2022-12-31T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 5.45, + "ShipName": "Drachenblut Delikatessen", + "ShipAddress": "Walserweg 21", + "ShipCity": "Aachen", + "ShipRegion": null, + "ShipPostalCode": "52066", + "ShipCountry": "Germany" + }, + { + "OrderID": 10392, + "CustomerID": "PICCO", + "EmployeeID": 2, + "OrderDate": "2022-12-24T00:00:00Z", + "RequiredDate": "2023-01-21T00:00:00Z", + "ShippedDate": "2023-01-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 122.46, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10393, + "CustomerID": "SAVEA", + "EmployeeID": 1, + "OrderDate": "2022-12-25T00:00:00Z", + "RequiredDate": "2023-01-22T00:00:00Z", + "ShippedDate": "2023-01-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 126.56, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10394, + "CustomerID": "HUNGC", + "EmployeeID": 1, + "OrderDate": "2022-12-25T00:00:00Z", + "RequiredDate": "2023-01-22T00:00:00Z", + "ShippedDate": "2023-01-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 30.34, + "ShipName": "Hungry Coyote Import Store", + "ShipAddress": "City Center Plaza 516 Main St.", + "ShipCity": "Elgin", + "ShipRegion": "OR", + "ShipPostalCode": "97827", + "ShipCountry": "USA" + }, + { + "OrderID": 10395, + "CustomerID": "HILAA", + "EmployeeID": 6, + "OrderDate": "2022-12-26T00:00:00Z", + "RequiredDate": "2023-01-23T00:00:00Z", + "ShippedDate": "2023-01-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 184.41, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10396, + "CustomerID": "FRANK", + "EmployeeID": 1, + "OrderDate": "2022-12-27T00:00:00Z", + "RequiredDate": "2023-01-10T00:00:00Z", + "ShippedDate": "2023-01-06T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 135.35, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10397, + "CustomerID": "PRINI", + "EmployeeID": 5, + "OrderDate": "2022-12-27T00:00:00Z", + "RequiredDate": "2023-01-24T00:00:00Z", + "ShippedDate": "2023-01-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 60.26, + "ShipName": "Princesa Isabel Vinhos", + "ShipAddress": "Estrada da saúde n. 58", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1756", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10398, + "CustomerID": "SAVEA", + "EmployeeID": 2, + "OrderDate": "2022-12-30T00:00:00Z", + "RequiredDate": "2023-01-27T00:00:00Z", + "ShippedDate": "2023-01-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 89.16, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10399, + "CustomerID": "VAFFE", + "EmployeeID": 8, + "OrderDate": "2022-12-31T00:00:00Z", + "RequiredDate": "2023-01-14T00:00:00Z", + "ShippedDate": "2023-01-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 27.36, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10400, + "CustomerID": "EASTC", + "EmployeeID": 1, + "OrderDate": "2023-01-01T00:00:00Z", + "RequiredDate": "2023-01-29T00:00:00Z", + "ShippedDate": "2023-01-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 83.93, + "ShipName": "Eastern Connection", + "ShipAddress": "35 King George", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX3 6FW", + "ShipCountry": "UK" + }, + { + "OrderID": 10401, + "CustomerID": "RATTC", + "EmployeeID": 1, + "OrderDate": "2023-01-01T00:00:00Z", + "RequiredDate": "2023-01-29T00:00:00Z", + "ShippedDate": "2023-01-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 12.51, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10402, + "CustomerID": "ERNSH", + "EmployeeID": 8, + "OrderDate": "2023-01-02T00:00:00Z", + "RequiredDate": "2023-02-13T00:00:00Z", + "ShippedDate": "2023-01-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 67.88, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10403, + "CustomerID": "ERNSH", + "EmployeeID": 4, + "OrderDate": "2023-01-03T00:00:00Z", + "RequiredDate": "2023-01-31T00:00:00Z", + "ShippedDate": "2023-01-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 73.79, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10404, + "CustomerID": "MAGAA", + "EmployeeID": 2, + "OrderDate": "2023-01-03T00:00:00Z", + "RequiredDate": "2023-01-31T00:00:00Z", + "ShippedDate": "2023-01-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 155.97, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10405, + "CustomerID": "LINOD", + "EmployeeID": 1, + "OrderDate": "2023-01-06T00:00:00Z", + "RequiredDate": "2023-02-03T00:00:00Z", + "ShippedDate": "2023-01-22T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 34.82, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10406, + "CustomerID": "QUEEN", + "EmployeeID": 7, + "OrderDate": "2023-01-07T00:00:00Z", + "RequiredDate": "2023-02-18T00:00:00Z", + "ShippedDate": "2023-01-13T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 108.04, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10407, + "CustomerID": "OTTIK", + "EmployeeID": 2, + "OrderDate": "2023-01-07T00:00:00Z", + "RequiredDate": "2023-02-04T00:00:00Z", + "ShippedDate": "2023-01-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 91.48, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 10408, + "CustomerID": "FOLIG", + "EmployeeID": 8, + "OrderDate": "2023-01-08T00:00:00Z", + "RequiredDate": "2023-02-05T00:00:00Z", + "ShippedDate": "2023-01-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 11.26, + "ShipName": "Folies gourmandes", + "ShipAddress": "184, chaussée de Tournai", + "ShipCity": "Lille", + "ShipRegion": null, + "ShipPostalCode": "59000", + "ShipCountry": "France" + }, + { + "OrderID": 10409, + "CustomerID": "OCEAN", + "EmployeeID": 3, + "OrderDate": "2023-01-09T00:00:00Z", + "RequiredDate": "2023-02-06T00:00:00Z", + "ShippedDate": "2023-01-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 29.83, + "ShipName": "Océano Atlántico Ltda.", + "ShipAddress": "Ing. Gustavo Moncada 8585 Piso 20-A", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10410, + "CustomerID": "BOTTM", + "EmployeeID": 3, + "OrderDate": "2023-01-10T00:00:00Z", + "RequiredDate": "2023-02-07T00:00:00Z", + "ShippedDate": "2023-01-15T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 2.4, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10411, + "CustomerID": "BOTTM", + "EmployeeID": 9, + "OrderDate": "2023-01-10T00:00:00Z", + "RequiredDate": "2023-02-07T00:00:00Z", + "ShippedDate": "2023-01-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 23.65, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10412, + "CustomerID": "WARTH", + "EmployeeID": 8, + "OrderDate": "2023-01-13T00:00:00Z", + "RequiredDate": "2023-02-10T00:00:00Z", + "ShippedDate": "2023-01-15T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.77, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10413, + "CustomerID": "LAMAI", + "EmployeeID": 3, + "OrderDate": "2023-01-14T00:00:00Z", + "RequiredDate": "2023-02-11T00:00:00Z", + "ShippedDate": "2023-01-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 95.66, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10414, + "CustomerID": "FAMIA", + "EmployeeID": 2, + "OrderDate": "2023-01-14T00:00:00Z", + "RequiredDate": "2023-02-11T00:00:00Z", + "ShippedDate": "2023-01-17T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 21.48, + "ShipName": "Familia Arquibaldo", + "ShipAddress": "Rua Orós, 92", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05442-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10415, + "CustomerID": "HUNGC", + "EmployeeID": 3, + "OrderDate": "2023-01-15T00:00:00Z", + "RequiredDate": "2023-02-12T00:00:00Z", + "ShippedDate": "2023-01-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.2, + "ShipName": "Hungry Coyote Import Store", + "ShipAddress": "City Center Plaza 516 Main St.", + "ShipCity": "Elgin", + "ShipRegion": "OR", + "ShipPostalCode": "97827", + "ShipCountry": "USA" + }, + { + "OrderID": 10416, + "CustomerID": "WARTH", + "EmployeeID": 8, + "OrderDate": "2023-01-16T00:00:00Z", + "RequiredDate": "2023-02-13T00:00:00Z", + "ShippedDate": "2023-01-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 22.72, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10417, + "CustomerID": "SIMOB", + "EmployeeID": 4, + "OrderDate": "2023-01-16T00:00:00Z", + "RequiredDate": "2023-02-13T00:00:00Z", + "ShippedDate": "2023-01-28T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 70.29, + "ShipName": "Simons bistro", + "ShipAddress": "Vinbæltet 34", + "ShipCity": "Kobenhavn", + "ShipRegion": null, + "ShipPostalCode": "1734", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10418, + "CustomerID": "QUICK", + "EmployeeID": 4, + "OrderDate": "2023-01-17T00:00:00Z", + "RequiredDate": "2023-02-14T00:00:00Z", + "ShippedDate": "2023-01-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 17.55, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10419, + "CustomerID": "RICSU", + "EmployeeID": 4, + "OrderDate": "2023-01-20T00:00:00Z", + "RequiredDate": "2023-02-17T00:00:00Z", + "ShippedDate": "2023-01-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 137.35, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10420, + "CustomerID": "WELLI", + "EmployeeID": 3, + "OrderDate": "2023-01-21T00:00:00Z", + "RequiredDate": "2023-02-18T00:00:00Z", + "ShippedDate": "2023-01-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 44.12, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10421, + "CustomerID": "QUEDE", + "EmployeeID": 8, + "OrderDate": "2023-01-21T00:00:00Z", + "RequiredDate": "2023-03-04T00:00:00Z", + "ShippedDate": "2023-01-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 99.23, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10422, + "CustomerID": "FRANS", + "EmployeeID": 2, + "OrderDate": "2023-01-22T00:00:00Z", + "RequiredDate": "2023-02-19T00:00:00Z", + "ShippedDate": "2023-01-31T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 3.02, + "ShipName": "Franchi S.p.A.", + "ShipAddress": "Via Monte Bianco 34", + "ShipCity": "Torino", + "ShipRegion": null, + "ShipPostalCode": "10100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10423, + "CustomerID": "GOURL", + "EmployeeID": 6, + "OrderDate": "2023-01-23T00:00:00Z", + "RequiredDate": "2023-02-06T00:00:00Z", + "ShippedDate": "2023-02-24T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 24.5, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10424, + "CustomerID": "MEREP", + "EmployeeID": 7, + "OrderDate": "2023-01-23T00:00:00Z", + "RequiredDate": "2023-02-20T00:00:00Z", + "ShippedDate": "2023-01-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 370.61, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10425, + "CustomerID": "LAMAI", + "EmployeeID": 6, + "OrderDate": "2023-01-24T00:00:00Z", + "RequiredDate": "2023-02-21T00:00:00Z", + "ShippedDate": "2023-02-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 7.93, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10426, + "CustomerID": "GALED", + "EmployeeID": 4, + "OrderDate": "2023-01-27T00:00:00Z", + "RequiredDate": "2023-02-24T00:00:00Z", + "ShippedDate": "2023-02-06T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 18.69, + "ShipName": "Galería del gastronómo", + "ShipAddress": "Rambla de Cataluña, 23", + "ShipCity": "Barcelona", + "ShipRegion": null, + "ShipPostalCode": "8022", + "ShipCountry": "Spain" + }, + { + "OrderID": 10427, + "CustomerID": "PICCO", + "EmployeeID": 4, + "OrderDate": "2023-01-27T00:00:00Z", + "RequiredDate": "2023-02-24T00:00:00Z", + "ShippedDate": "2023-03-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 31.29, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10428, + "CustomerID": "REGGC", + "EmployeeID": 7, + "OrderDate": "2023-01-28T00:00:00Z", + "RequiredDate": "2023-02-25T00:00:00Z", + "ShippedDate": "2023-02-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 11.09, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10429, + "CustomerID": "HUNGO", + "EmployeeID": 3, + "OrderDate": "2023-01-29T00:00:00Z", + "RequiredDate": "2023-03-12T00:00:00Z", + "ShippedDate": "2023-02-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 56.63, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10430, + "CustomerID": "ERNSH", + "EmployeeID": 4, + "OrderDate": "2023-01-30T00:00:00Z", + "RequiredDate": "2023-02-13T00:00:00Z", + "ShippedDate": "2023-02-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 458.78, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10431, + "CustomerID": "BOTTM", + "EmployeeID": 4, + "OrderDate": "2023-01-30T00:00:00Z", + "RequiredDate": "2023-02-13T00:00:00Z", + "ShippedDate": "2023-02-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 44.17, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10432, + "CustomerID": "SPLIR", + "EmployeeID": 3, + "OrderDate": "2023-01-31T00:00:00Z", + "RequiredDate": "2023-02-14T00:00:00Z", + "ShippedDate": "2023-02-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.34, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10433, + "CustomerID": "PRINI", + "EmployeeID": 3, + "OrderDate": "2023-02-03T00:00:00Z", + "RequiredDate": "2023-03-03T00:00:00Z", + "ShippedDate": "2023-03-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 73.83, + "ShipName": "Princesa Isabel Vinhos", + "ShipAddress": "Estrada da saúde n. 58", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1756", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10434, + "CustomerID": "FOLKO", + "EmployeeID": 3, + "OrderDate": "2023-02-03T00:00:00Z", + "RequiredDate": "2023-03-03T00:00:00Z", + "ShippedDate": "2023-02-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 17.92, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10435, + "CustomerID": "CONSH", + "EmployeeID": 8, + "OrderDate": "2023-02-04T00:00:00Z", + "RequiredDate": "2023-03-18T00:00:00Z", + "ShippedDate": "2023-02-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 9.21, + "ShipName": "Consolidated Holdings", + "ShipAddress": "Berkeley Gardens 12 Brewery", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX1 6LT", + "ShipCountry": "UK" + }, + { + "OrderID": 10436, + "CustomerID": "BLONP", + "EmployeeID": 3, + "OrderDate": "2023-02-05T00:00:00Z", + "RequiredDate": "2023-03-05T00:00:00Z", + "ShippedDate": "2023-02-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 156.66, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10437, + "CustomerID": "WARTH", + "EmployeeID": 8, + "OrderDate": "2023-02-05T00:00:00Z", + "RequiredDate": "2023-03-05T00:00:00Z", + "ShippedDate": "2023-02-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 19.97, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10438, + "CustomerID": "TOMSP", + "EmployeeID": 3, + "OrderDate": "2023-02-06T00:00:00Z", + "RequiredDate": "2023-03-06T00:00:00Z", + "ShippedDate": "2023-02-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 8.24, + "ShipName": "Toms Spezialitäten", + "ShipAddress": "Luisenstr. 48", + "ShipCity": "Münster", + "ShipRegion": null, + "ShipPostalCode": "44087", + "ShipCountry": "Germany" + }, + { + "OrderID": 10439, + "CustomerID": "MEREP", + "EmployeeID": 6, + "OrderDate": "2023-02-07T00:00:00Z", + "RequiredDate": "2023-03-07T00:00:00Z", + "ShippedDate": "2023-02-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.07, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10440, + "CustomerID": "SAVEA", + "EmployeeID": 4, + "OrderDate": "2023-02-10T00:00:00Z", + "RequiredDate": "2023-03-10T00:00:00Z", + "ShippedDate": "2023-02-28T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 86.53, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10441, + "CustomerID": "OLDWO", + "EmployeeID": 3, + "OrderDate": "2023-02-10T00:00:00Z", + "RequiredDate": "2023-03-24T00:00:00Z", + "ShippedDate": "2023-03-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 73.02, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10442, + "CustomerID": "ERNSH", + "EmployeeID": 3, + "OrderDate": "2023-02-11T00:00:00Z", + "RequiredDate": "2023-03-11T00:00:00Z", + "ShippedDate": "2023-02-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 47.94, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10443, + "CustomerID": "REGGC", + "EmployeeID": 8, + "OrderDate": "2023-02-12T00:00:00Z", + "RequiredDate": "2023-03-12T00:00:00Z", + "ShippedDate": "2023-02-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 13.95, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10444, + "CustomerID": "BERGS", + "EmployeeID": 3, + "OrderDate": "2023-02-12T00:00:00Z", + "RequiredDate": "2023-03-12T00:00:00Z", + "ShippedDate": "2023-02-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 3.5, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10445, + "CustomerID": "BERGS", + "EmployeeID": 3, + "OrderDate": "2023-02-13T00:00:00Z", + "RequiredDate": "2023-03-13T00:00:00Z", + "ShippedDate": "2023-02-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 9.3, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10446, + "CustomerID": "TOMSP", + "EmployeeID": 6, + "OrderDate": "2023-02-14T00:00:00Z", + "RequiredDate": "2023-03-14T00:00:00Z", + "ShippedDate": "2023-02-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 14.68, + "ShipName": "Toms Spezialitäten", + "ShipAddress": "Luisenstr. 48", + "ShipCity": "Münster", + "ShipRegion": null, + "ShipPostalCode": "44087", + "ShipCountry": "Germany" + }, + { + "OrderID": 10447, + "CustomerID": "RICAR", + "EmployeeID": 4, + "OrderDate": "2023-02-14T00:00:00Z", + "RequiredDate": "2023-03-14T00:00:00Z", + "ShippedDate": "2023-03-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 68.66, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10448, + "CustomerID": "RANCH", + "EmployeeID": 4, + "OrderDate": "2023-02-17T00:00:00Z", + "RequiredDate": "2023-03-17T00:00:00Z", + "ShippedDate": "2023-02-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 38.82, + "ShipName": "Rancho grande", + "ShipAddress": "Av. del Libertador 900", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10449, + "CustomerID": "BLONP", + "EmployeeID": 3, + "OrderDate": "2023-02-18T00:00:00Z", + "RequiredDate": "2023-03-18T00:00:00Z", + "ShippedDate": "2023-02-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 53.3, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10450, + "CustomerID": "VICTE", + "EmployeeID": 8, + "OrderDate": "2023-02-19T00:00:00Z", + "RequiredDate": "2023-03-19T00:00:00Z", + "ShippedDate": "2023-03-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 7.23, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10451, + "CustomerID": "QUICK", + "EmployeeID": 4, + "OrderDate": "2023-02-19T00:00:00Z", + "RequiredDate": "2023-03-05T00:00:00Z", + "ShippedDate": "2023-03-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 189.09, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10452, + "CustomerID": "SAVEA", + "EmployeeID": 8, + "OrderDate": "2023-02-20T00:00:00Z", + "RequiredDate": "2023-03-20T00:00:00Z", + "ShippedDate": "2023-02-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 140.26, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10453, + "CustomerID": "AROUT", + "EmployeeID": 1, + "OrderDate": "2023-02-21T00:00:00Z", + "RequiredDate": "2023-03-21T00:00:00Z", + "ShippedDate": "2023-02-26T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 25.36, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10454, + "CustomerID": "LAMAI", + "EmployeeID": 4, + "OrderDate": "2023-02-21T00:00:00Z", + "RequiredDate": "2023-03-21T00:00:00Z", + "ShippedDate": "2023-02-25T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 2.74, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10455, + "CustomerID": "WARTH", + "EmployeeID": 8, + "OrderDate": "2023-02-24T00:00:00Z", + "RequiredDate": "2023-04-07T00:00:00Z", + "ShippedDate": "2023-03-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 180.45, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10456, + "CustomerID": "KOENE", + "EmployeeID": 8, + "OrderDate": "2023-02-25T00:00:00Z", + "RequiredDate": "2023-04-08T00:00:00Z", + "ShippedDate": "2023-02-28T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 8.12, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10457, + "CustomerID": "KOENE", + "EmployeeID": 2, + "OrderDate": "2023-02-25T00:00:00Z", + "RequiredDate": "2023-03-25T00:00:00Z", + "ShippedDate": "2023-03-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 11.57, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10458, + "CustomerID": "SUPRD", + "EmployeeID": 7, + "OrderDate": "2023-02-26T00:00:00Z", + "RequiredDate": "2023-03-26T00:00:00Z", + "ShippedDate": "2023-03-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 147.06, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10459, + "CustomerID": "VICTE", + "EmployeeID": 4, + "OrderDate": "2023-02-27T00:00:00Z", + "RequiredDate": "2023-03-27T00:00:00Z", + "ShippedDate": "2023-02-28T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 25.09, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10460, + "CustomerID": "FOLKO", + "EmployeeID": 8, + "OrderDate": "2023-02-28T00:00:00Z", + "RequiredDate": "2023-03-28T00:00:00Z", + "ShippedDate": "2023-03-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 16.27, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10461, + "CustomerID": "LILAS", + "EmployeeID": 1, + "OrderDate": "2023-02-28T00:00:00Z", + "RequiredDate": "2023-03-28T00:00:00Z", + "ShippedDate": "2023-03-05T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 148.61, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10462, + "CustomerID": "CONSH", + "EmployeeID": 2, + "OrderDate": "2023-03-03T00:00:00Z", + "RequiredDate": "2023-03-31T00:00:00Z", + "ShippedDate": "2023-03-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 6.17, + "ShipName": "Consolidated Holdings", + "ShipAddress": "Berkeley Gardens 12 Brewery", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX1 6LT", + "ShipCountry": "UK" + }, + { + "OrderID": 10463, + "CustomerID": "SUPRD", + "EmployeeID": 5, + "OrderDate": "2023-03-04T00:00:00Z", + "RequiredDate": "2023-04-01T00:00:00Z", + "ShippedDate": "2023-03-06T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 14.78, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10464, + "CustomerID": "FURIB", + "EmployeeID": 4, + "OrderDate": "2023-03-04T00:00:00Z", + "RequiredDate": "2023-04-01T00:00:00Z", + "ShippedDate": "2023-03-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 89, + "ShipName": "Furia Bacalhau e Frutos do Mar", + "ShipAddress": "Jardim das rosas n. 32", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1675", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10465, + "CustomerID": "VAFFE", + "EmployeeID": 1, + "OrderDate": "2023-03-05T00:00:00Z", + "RequiredDate": "2023-04-02T00:00:00Z", + "ShippedDate": "2023-03-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 145.04, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10466, + "CustomerID": "COMMI", + "EmployeeID": 4, + "OrderDate": "2023-03-06T00:00:00Z", + "RequiredDate": "2023-04-03T00:00:00Z", + "ShippedDate": "2023-03-13T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 11.93, + "ShipName": "Comércio Mineiro", + "ShipAddress": "Av. dos Lusíadas, 23", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05432-043", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10467, + "CustomerID": "MAGAA", + "EmployeeID": 8, + "OrderDate": "2023-03-06T00:00:00Z", + "RequiredDate": "2023-04-03T00:00:00Z", + "ShippedDate": "2023-03-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.93, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10468, + "CustomerID": "KOENE", + "EmployeeID": 3, + "OrderDate": "2023-03-07T00:00:00Z", + "RequiredDate": "2023-04-04T00:00:00Z", + "ShippedDate": "2023-03-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 44.12, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10469, + "CustomerID": "WHITC", + "EmployeeID": 1, + "OrderDate": "2023-03-10T00:00:00Z", + "RequiredDate": "2023-04-07T00:00:00Z", + "ShippedDate": "2023-03-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 60.18, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10470, + "CustomerID": "BONAP", + "EmployeeID": 4, + "OrderDate": "2023-03-11T00:00:00Z", + "RequiredDate": "2023-04-08T00:00:00Z", + "ShippedDate": "2023-03-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 64.56, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10471, + "CustomerID": "BSBEV", + "EmployeeID": 2, + "OrderDate": "2023-03-11T00:00:00Z", + "RequiredDate": "2023-04-08T00:00:00Z", + "ShippedDate": "2023-03-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 45.59, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10472, + "CustomerID": "SEVES", + "EmployeeID": 8, + "OrderDate": "2023-03-12T00:00:00Z", + "RequiredDate": "2023-04-09T00:00:00Z", + "ShippedDate": "2023-03-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 4.2, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10473, + "CustomerID": "ISLAT", + "EmployeeID": 1, + "OrderDate": "2023-03-13T00:00:00Z", + "RequiredDate": "2023-03-27T00:00:00Z", + "ShippedDate": "2023-03-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 16.37, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10474, + "CustomerID": "PERIC", + "EmployeeID": 5, + "OrderDate": "2023-03-13T00:00:00Z", + "RequiredDate": "2023-04-10T00:00:00Z", + "ShippedDate": "2023-03-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 83.49, + "ShipName": "Pericles Comidas clásicas", + "ShipAddress": "Calle Dr. Jorge Cash 321", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10475, + "CustomerID": "SUPRD", + "EmployeeID": 9, + "OrderDate": "2023-03-14T00:00:00Z", + "RequiredDate": "2023-04-11T00:00:00Z", + "ShippedDate": "2023-04-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 68.52, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10476, + "CustomerID": "HILAA", + "EmployeeID": 8, + "OrderDate": "2023-03-17T00:00:00Z", + "RequiredDate": "2023-04-14T00:00:00Z", + "ShippedDate": "2023-03-24T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.41, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10477, + "CustomerID": "PRINI", + "EmployeeID": 5, + "OrderDate": "2023-03-17T00:00:00Z", + "RequiredDate": "2023-04-14T00:00:00Z", + "ShippedDate": "2023-03-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 13.02, + "ShipName": "Princesa Isabel Vinhos", + "ShipAddress": "Estrada da saúde n. 58", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1756", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10478, + "CustomerID": "VICTE", + "EmployeeID": 2, + "OrderDate": "2023-03-18T00:00:00Z", + "RequiredDate": "2023-04-01T00:00:00Z", + "ShippedDate": "2023-03-26T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.81, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10479, + "CustomerID": "RATTC", + "EmployeeID": 3, + "OrderDate": "2023-03-19T00:00:00Z", + "RequiredDate": "2023-04-16T00:00:00Z", + "ShippedDate": "2023-03-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 708.95, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10480, + "CustomerID": "FOLIG", + "EmployeeID": 6, + "OrderDate": "2023-03-20T00:00:00Z", + "RequiredDate": "2023-04-17T00:00:00Z", + "ShippedDate": "2023-03-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.35, + "ShipName": "Folies gourmandes", + "ShipAddress": "184, chaussée de Tournai", + "ShipCity": "Lille", + "ShipRegion": null, + "ShipPostalCode": "59000", + "ShipCountry": "France" + }, + { + "OrderID": 10481, + "CustomerID": "RICAR", + "EmployeeID": 8, + "OrderDate": "2023-03-20T00:00:00Z", + "RequiredDate": "2023-04-17T00:00:00Z", + "ShippedDate": "2023-03-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 64.33, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10482, + "CustomerID": "LAZYK", + "EmployeeID": 1, + "OrderDate": "2023-03-21T00:00:00Z", + "RequiredDate": "2023-04-18T00:00:00Z", + "ShippedDate": "2023-04-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 7.48, + "ShipName": "Lazy K Kountry Store", + "ShipAddress": "12 Orchestra Terrace", + "ShipCity": "Walla Walla", + "ShipRegion": "WA", + "ShipPostalCode": "99362", + "ShipCountry": "USA" + }, + { + "OrderID": 10483, + "CustomerID": "WHITC", + "EmployeeID": 7, + "OrderDate": "2023-03-24T00:00:00Z", + "RequiredDate": "2023-04-21T00:00:00Z", + "ShippedDate": "2023-04-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 15.28, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10484, + "CustomerID": "BSBEV", + "EmployeeID": 3, + "OrderDate": "2023-03-24T00:00:00Z", + "RequiredDate": "2023-04-21T00:00:00Z", + "ShippedDate": "2023-04-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 6.88, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10485, + "CustomerID": "LINOD", + "EmployeeID": 4, + "OrderDate": "2023-03-25T00:00:00Z", + "RequiredDate": "2023-04-08T00:00:00Z", + "ShippedDate": "2023-03-31T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 64.45, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10486, + "CustomerID": "HILAA", + "EmployeeID": 1, + "OrderDate": "2023-03-26T00:00:00Z", + "RequiredDate": "2023-04-23T00:00:00Z", + "ShippedDate": "2023-04-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 30.53, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10487, + "CustomerID": "QUEEN", + "EmployeeID": 2, + "OrderDate": "2023-03-26T00:00:00Z", + "RequiredDate": "2023-04-23T00:00:00Z", + "ShippedDate": "2023-03-28T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 71.07, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10488, + "CustomerID": "FRANK", + "EmployeeID": 8, + "OrderDate": "2023-03-27T00:00:00Z", + "RequiredDate": "2023-04-24T00:00:00Z", + "ShippedDate": "2023-04-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.93, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10489, + "CustomerID": "PICCO", + "EmployeeID": 6, + "OrderDate": "2023-03-28T00:00:00Z", + "RequiredDate": "2023-04-25T00:00:00Z", + "ShippedDate": "2023-04-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 5.29, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10490, + "CustomerID": "HILAA", + "EmployeeID": 7, + "OrderDate": "2023-03-31T00:00:00Z", + "RequiredDate": "2023-04-28T00:00:00Z", + "ShippedDate": "2023-04-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 210.19, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10491, + "CustomerID": "FURIB", + "EmployeeID": 8, + "OrderDate": "2023-03-31T00:00:00Z", + "RequiredDate": "2023-04-28T00:00:00Z", + "ShippedDate": "2023-04-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 16.96, + "ShipName": "Furia Bacalhau e Frutos do Mar", + "ShipAddress": "Jardim das rosas n. 32", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1675", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10492, + "CustomerID": "BOTTM", + "EmployeeID": 3, + "OrderDate": "2023-04-01T00:00:00Z", + "RequiredDate": "2023-04-29T00:00:00Z", + "ShippedDate": "2023-04-11T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 62.89, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10493, + "CustomerID": "LAMAI", + "EmployeeID": 4, + "OrderDate": "2023-04-02T00:00:00Z", + "RequiredDate": "2023-04-30T00:00:00Z", + "ShippedDate": "2023-04-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 10.64, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10494, + "CustomerID": "COMMI", + "EmployeeID": 4, + "OrderDate": "2023-04-02T00:00:00Z", + "RequiredDate": "2023-04-30T00:00:00Z", + "ShippedDate": "2023-04-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 65.99, + "ShipName": "Comércio Mineiro", + "ShipAddress": "Av. dos Lusíadas, 23", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05432-043", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10495, + "CustomerID": "LAUGB", + "EmployeeID": 3, + "OrderDate": "2023-04-03T00:00:00Z", + "RequiredDate": "2023-05-01T00:00:00Z", + "ShippedDate": "2023-04-11T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.65, + "ShipName": "Laughing Bacchus Wine Cellars", + "ShipAddress": "2319 Elm St.", + "ShipCity": "Vancouver", + "ShipRegion": "BC", + "ShipPostalCode": "V3F 2K1", + "ShipCountry": "Canada" + }, + { + "OrderID": 10496, + "CustomerID": "TRADH", + "EmployeeID": 7, + "OrderDate": "2023-04-04T00:00:00Z", + "RequiredDate": "2023-05-02T00:00:00Z", + "ShippedDate": "2023-04-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 46.77, + "ShipName": "Tradiçao Hipermercados", + "ShipAddress": "Av. Inês de Castro, 414", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05634-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10497, + "CustomerID": "LEHMS", + "EmployeeID": 7, + "OrderDate": "2023-04-04T00:00:00Z", + "RequiredDate": "2023-05-02T00:00:00Z", + "ShippedDate": "2023-04-07T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 36.21, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10498, + "CustomerID": "HILAA", + "EmployeeID": 8, + "OrderDate": "2023-04-07T00:00:00Z", + "RequiredDate": "2023-05-05T00:00:00Z", + "ShippedDate": "2023-04-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 29.75, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10499, + "CustomerID": "LILAS", + "EmployeeID": 4, + "OrderDate": "2023-04-08T00:00:00Z", + "RequiredDate": "2023-05-06T00:00:00Z", + "ShippedDate": "2023-04-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 102.02, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10500, + "CustomerID": "LAMAI", + "EmployeeID": 6, + "OrderDate": "2023-04-09T00:00:00Z", + "RequiredDate": "2023-05-07T00:00:00Z", + "ShippedDate": "2023-04-17T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 42.68, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10501, + "CustomerID": "BLAUS", + "EmployeeID": 9, + "OrderDate": "2023-04-09T00:00:00Z", + "RequiredDate": "2023-05-07T00:00:00Z", + "ShippedDate": "2023-04-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 8.85, + "ShipName": "Blauer See Delikatessen", + "ShipAddress": "Forsterstr. 57", + "ShipCity": "Mannheim", + "ShipRegion": null, + "ShipPostalCode": "68306", + "ShipCountry": "Germany" + }, + { + "OrderID": 10502, + "CustomerID": "PERIC", + "EmployeeID": 2, + "OrderDate": "2023-04-10T00:00:00Z", + "RequiredDate": "2023-05-08T00:00:00Z", + "ShippedDate": "2023-04-29T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 69.32, + "ShipName": "Pericles Comidas clásicas", + "ShipAddress": "Calle Dr. Jorge Cash 321", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10503, + "CustomerID": "HUNGO", + "EmployeeID": 6, + "OrderDate": "2023-04-11T00:00:00Z", + "RequiredDate": "2023-05-09T00:00:00Z", + "ShippedDate": "2023-04-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 16.74, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10504, + "CustomerID": "WHITC", + "EmployeeID": 4, + "OrderDate": "2023-04-11T00:00:00Z", + "RequiredDate": "2023-05-09T00:00:00Z", + "ShippedDate": "2023-04-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 59.13, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10505, + "CustomerID": "MEREP", + "EmployeeID": 3, + "OrderDate": "2023-04-14T00:00:00Z", + "RequiredDate": "2023-05-12T00:00:00Z", + "ShippedDate": "2023-04-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 7.13, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10506, + "CustomerID": "KOENE", + "EmployeeID": 9, + "OrderDate": "2023-04-15T00:00:00Z", + "RequiredDate": "2023-05-13T00:00:00Z", + "ShippedDate": "2023-05-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 21.19, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10507, + "CustomerID": "ANTON", + "EmployeeID": 7, + "OrderDate": "2023-04-15T00:00:00Z", + "RequiredDate": "2023-05-13T00:00:00Z", + "ShippedDate": "2023-04-22T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 47.45, + "ShipName": "Antonio Moreno Taquería", + "ShipAddress": "Mataderos 2312", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05023", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10508, + "CustomerID": "OTTIK", + "EmployeeID": 1, + "OrderDate": "2023-04-16T00:00:00Z", + "RequiredDate": "2023-05-14T00:00:00Z", + "ShippedDate": "2023-05-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.99, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 10509, + "CustomerID": "BLAUS", + "EmployeeID": 4, + "OrderDate": "2023-04-17T00:00:00Z", + "RequiredDate": "2023-05-15T00:00:00Z", + "ShippedDate": "2023-04-29T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.15, + "ShipName": "Blauer See Delikatessen", + "ShipAddress": "Forsterstr. 57", + "ShipCity": "Mannheim", + "ShipRegion": null, + "ShipPostalCode": "68306", + "ShipCountry": "Germany" + }, + { + "OrderID": 10510, + "CustomerID": "SAVEA", + "EmployeeID": 6, + "OrderDate": "2023-04-18T00:00:00Z", + "RequiredDate": "2023-05-16T00:00:00Z", + "ShippedDate": "2023-04-28T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 367.63, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10511, + "CustomerID": "BONAP", + "EmployeeID": 4, + "OrderDate": "2023-04-18T00:00:00Z", + "RequiredDate": "2023-05-16T00:00:00Z", + "ShippedDate": "2023-04-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 350.64, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10512, + "CustomerID": "FAMIA", + "EmployeeID": 7, + "OrderDate": "2023-04-21T00:00:00Z", + "RequiredDate": "2023-05-19T00:00:00Z", + "ShippedDate": "2023-04-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.53, + "ShipName": "Familia Arquibaldo", + "ShipAddress": "Rua Orós, 92", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05442-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10513, + "CustomerID": "WANDK", + "EmployeeID": 7, + "OrderDate": "2023-04-22T00:00:00Z", + "RequiredDate": "2023-06-03T00:00:00Z", + "ShippedDate": "2023-04-28T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 105.65, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10514, + "CustomerID": "ERNSH", + "EmployeeID": 3, + "OrderDate": "2023-04-22T00:00:00Z", + "RequiredDate": "2023-05-20T00:00:00Z", + "ShippedDate": "2023-05-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 789.95, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10515, + "CustomerID": "QUICK", + "EmployeeID": 2, + "OrderDate": "2023-04-23T00:00:00Z", + "RequiredDate": "2023-05-07T00:00:00Z", + "ShippedDate": "2023-05-23T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 204.47, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10516, + "CustomerID": "HUNGO", + "EmployeeID": 2, + "OrderDate": "2023-04-24T00:00:00Z", + "RequiredDate": "2023-05-22T00:00:00Z", + "ShippedDate": "2023-05-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 62.78, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10517, + "CustomerID": "NORTS", + "EmployeeID": 3, + "OrderDate": "2023-04-24T00:00:00Z", + "RequiredDate": "2023-05-22T00:00:00Z", + "ShippedDate": "2023-04-29T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 32.07, + "ShipName": "North/South", + "ShipAddress": "South House 300 Queensbridge", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "SW7 1RZ", + "ShipCountry": "UK" + }, + { + "OrderID": 10518, + "CustomerID": "TORTU", + "EmployeeID": 4, + "OrderDate": "2023-04-25T00:00:00Z", + "RequiredDate": "2023-05-09T00:00:00Z", + "ShippedDate": "2023-05-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 218.15, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10519, + "CustomerID": "CHOPS", + "EmployeeID": 6, + "OrderDate": "2023-04-28T00:00:00Z", + "RequiredDate": "2023-05-26T00:00:00Z", + "ShippedDate": "2023-05-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 91.76, + "ShipName": "Chop-suey Chinese", + "ShipAddress": "Hauptstr. 31", + "ShipCity": "Bern", + "ShipRegion": null, + "ShipPostalCode": "3012", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10520, + "CustomerID": "SANTG", + "EmployeeID": 7, + "OrderDate": "2023-04-29T00:00:00Z", + "RequiredDate": "2023-05-27T00:00:00Z", + "ShippedDate": "2023-05-01T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 13.37, + "ShipName": "Santé Gourmet", + "ShipAddress": "Erling Skakkes gate 78", + "ShipCity": "Stavern", + "ShipRegion": null, + "ShipPostalCode": "4110", + "ShipCountry": "Norway" + }, + { + "OrderID": 10521, + "CustomerID": "CACTU", + "EmployeeID": 8, + "OrderDate": "2023-04-29T00:00:00Z", + "RequiredDate": "2023-05-27T00:00:00Z", + "ShippedDate": "2023-05-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 17.22, + "ShipName": "Cactus Comidas para llevar", + "ShipAddress": "Cerrito 333", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10522, + "CustomerID": "LEHMS", + "EmployeeID": 4, + "OrderDate": "2023-04-30T00:00:00Z", + "RequiredDate": "2023-05-28T00:00:00Z", + "ShippedDate": "2023-05-06T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 45.33, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10523, + "CustomerID": "SEVES", + "EmployeeID": 7, + "OrderDate": "2023-05-01T00:00:00Z", + "RequiredDate": "2023-05-29T00:00:00Z", + "ShippedDate": "2023-05-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 77.63, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10524, + "CustomerID": "BERGS", + "EmployeeID": 1, + "OrderDate": "2023-05-01T00:00:00Z", + "RequiredDate": "2023-05-29T00:00:00Z", + "ShippedDate": "2023-05-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 244.79, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10525, + "CustomerID": "BONAP", + "EmployeeID": 1, + "OrderDate": "2023-05-02T00:00:00Z", + "RequiredDate": "2023-05-30T00:00:00Z", + "ShippedDate": "2023-05-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 11.06, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10526, + "CustomerID": "WARTH", + "EmployeeID": 4, + "OrderDate": "2023-05-05T00:00:00Z", + "RequiredDate": "2023-06-02T00:00:00Z", + "ShippedDate": "2023-05-15T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 58.59, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10527, + "CustomerID": "QUICK", + "EmployeeID": 7, + "OrderDate": "2023-05-05T00:00:00Z", + "RequiredDate": "2023-06-02T00:00:00Z", + "ShippedDate": "2023-05-07T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 41.9, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10528, + "CustomerID": "GREAL", + "EmployeeID": 6, + "OrderDate": "2023-05-06T00:00:00Z", + "RequiredDate": "2023-05-20T00:00:00Z", + "ShippedDate": "2023-05-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.35, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 10529, + "CustomerID": "MAISD", + "EmployeeID": 5, + "OrderDate": "2023-05-07T00:00:00Z", + "RequiredDate": "2023-06-04T00:00:00Z", + "ShippedDate": "2023-05-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 66.69, + "ShipName": "Maison Dewey", + "ShipAddress": "Rue Joseph-Bens 532", + "ShipCity": "Bruxelles", + "ShipRegion": null, + "ShipPostalCode": "B-1180", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10530, + "CustomerID": "PICCO", + "EmployeeID": 3, + "OrderDate": "2023-05-08T00:00:00Z", + "RequiredDate": "2023-06-05T00:00:00Z", + "ShippedDate": "2023-05-12T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 339.22, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10531, + "CustomerID": "OCEAN", + "EmployeeID": 7, + "OrderDate": "2023-05-08T00:00:00Z", + "RequiredDate": "2023-06-05T00:00:00Z", + "ShippedDate": "2023-05-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 8.12, + "ShipName": "Océano Atlántico Ltda.", + "ShipAddress": "Ing. Gustavo Moncada 8585 Piso 20-A", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10532, + "CustomerID": "EASTC", + "EmployeeID": 7, + "OrderDate": "2023-05-09T00:00:00Z", + "RequiredDate": "2023-06-06T00:00:00Z", + "ShippedDate": "2023-05-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 74.46, + "ShipName": "Eastern Connection", + "ShipAddress": "35 King George", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX3 6FW", + "ShipCountry": "UK" + }, + { + "OrderID": 10533, + "CustomerID": "FOLKO", + "EmployeeID": 8, + "OrderDate": "2023-05-12T00:00:00Z", + "RequiredDate": "2023-06-09T00:00:00Z", + "ShippedDate": "2023-05-22T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 188.04, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10534, + "CustomerID": "LEHMS", + "EmployeeID": 8, + "OrderDate": "2023-05-12T00:00:00Z", + "RequiredDate": "2023-06-09T00:00:00Z", + "ShippedDate": "2023-05-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 27.94, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10535, + "CustomerID": "ANTON", + "EmployeeID": 4, + "OrderDate": "2023-05-13T00:00:00Z", + "RequiredDate": "2023-06-10T00:00:00Z", + "ShippedDate": "2023-05-21T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 15.64, + "ShipName": "Antonio Moreno Taquería", + "ShipAddress": "Mataderos 2312", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05023", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10536, + "CustomerID": "LEHMS", + "EmployeeID": 3, + "OrderDate": "2023-05-14T00:00:00Z", + "RequiredDate": "2023-06-11T00:00:00Z", + "ShippedDate": "2023-06-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 58.88, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10537, + "CustomerID": "RICSU", + "EmployeeID": 1, + "OrderDate": "2023-05-14T00:00:00Z", + "RequiredDate": "2023-05-28T00:00:00Z", + "ShippedDate": "2023-05-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 78.85, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10538, + "CustomerID": "BSBEV", + "EmployeeID": 9, + "OrderDate": "2023-05-15T00:00:00Z", + "RequiredDate": "2023-06-12T00:00:00Z", + "ShippedDate": "2023-05-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.87, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10539, + "CustomerID": "BSBEV", + "EmployeeID": 6, + "OrderDate": "2023-05-16T00:00:00Z", + "RequiredDate": "2023-06-13T00:00:00Z", + "ShippedDate": "2023-05-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 12.36, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10540, + "CustomerID": "QUICK", + "EmployeeID": 3, + "OrderDate": "2023-05-19T00:00:00Z", + "RequiredDate": "2023-06-16T00:00:00Z", + "ShippedDate": "2023-06-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1007.64, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10541, + "CustomerID": "HANAR", + "EmployeeID": 2, + "OrderDate": "2023-05-19T00:00:00Z", + "RequiredDate": "2023-06-16T00:00:00Z", + "ShippedDate": "2023-05-29T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 68.65, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10542, + "CustomerID": "KOENE", + "EmployeeID": 1, + "OrderDate": "2023-05-20T00:00:00Z", + "RequiredDate": "2023-06-17T00:00:00Z", + "ShippedDate": "2023-05-26T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 10.95, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10543, + "CustomerID": "LILAS", + "EmployeeID": 8, + "OrderDate": "2023-05-21T00:00:00Z", + "RequiredDate": "2023-06-18T00:00:00Z", + "ShippedDate": "2023-05-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 48.17, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10544, + "CustomerID": "LONEP", + "EmployeeID": 4, + "OrderDate": "2023-05-21T00:00:00Z", + "RequiredDate": "2023-06-18T00:00:00Z", + "ShippedDate": "2023-05-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 24.91, + "ShipName": "Lonesome Pine Restaurant", + "ShipAddress": "89 Chiaroscuro Rd.", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97219", + "ShipCountry": "USA" + }, + { + "OrderID": 10545, + "CustomerID": "LAZYK", + "EmployeeID": 8, + "OrderDate": "2023-05-22T00:00:00Z", + "RequiredDate": "2023-06-19T00:00:00Z", + "ShippedDate": "2023-06-26T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 11.92, + "ShipName": "Lazy K Kountry Store", + "ShipAddress": "12 Orchestra Terrace", + "ShipCity": "Walla Walla", + "ShipRegion": "WA", + "ShipPostalCode": "99362", + "ShipCountry": "USA" + }, + { + "OrderID": 10546, + "CustomerID": "VICTE", + "EmployeeID": 1, + "OrderDate": "2023-05-23T00:00:00Z", + "RequiredDate": "2023-06-20T00:00:00Z", + "ShippedDate": "2023-05-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 194.72, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10547, + "CustomerID": "SEVES", + "EmployeeID": 3, + "OrderDate": "2023-05-23T00:00:00Z", + "RequiredDate": "2023-06-20T00:00:00Z", + "ShippedDate": "2023-06-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 178.43, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10548, + "CustomerID": "TOMSP", + "EmployeeID": 3, + "OrderDate": "2023-05-26T00:00:00Z", + "RequiredDate": "2023-06-23T00:00:00Z", + "ShippedDate": "2023-06-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.43, + "ShipName": "Toms Spezialitäten", + "ShipAddress": "Luisenstr. 48", + "ShipCity": "Münster", + "ShipRegion": null, + "ShipPostalCode": "44087", + "ShipCountry": "Germany" + }, + { + "OrderID": 10549, + "CustomerID": "QUICK", + "EmployeeID": 5, + "OrderDate": "2023-05-27T00:00:00Z", + "RequiredDate": "2023-06-10T00:00:00Z", + "ShippedDate": "2023-05-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 171.24, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10550, + "CustomerID": "GODOS", + "EmployeeID": 7, + "OrderDate": "2023-05-28T00:00:00Z", + "RequiredDate": "2023-06-25T00:00:00Z", + "ShippedDate": "2023-06-06T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.32, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 10551, + "CustomerID": "FURIB", + "EmployeeID": 4, + "OrderDate": "2023-05-28T00:00:00Z", + "RequiredDate": "2023-07-09T00:00:00Z", + "ShippedDate": "2023-06-06T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 72.95, + "ShipName": "Furia Bacalhau e Frutos do Mar", + "ShipAddress": "Jardim das rosas n. 32", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1675", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10552, + "CustomerID": "HILAA", + "EmployeeID": 2, + "OrderDate": "2023-05-29T00:00:00Z", + "RequiredDate": "2023-06-26T00:00:00Z", + "ShippedDate": "2023-06-05T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 83.22, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10553, + "CustomerID": "WARTH", + "EmployeeID": 2, + "OrderDate": "2023-05-30T00:00:00Z", + "RequiredDate": "2023-06-27T00:00:00Z", + "ShippedDate": "2023-06-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 149.49, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10554, + "CustomerID": "OTTIK", + "EmployeeID": 4, + "OrderDate": "2023-05-30T00:00:00Z", + "RequiredDate": "2023-06-27T00:00:00Z", + "ShippedDate": "2023-06-05T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 120.97, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 10555, + "CustomerID": "SAVEA", + "EmployeeID": 6, + "OrderDate": "2023-06-02T00:00:00Z", + "RequiredDate": "2023-06-30T00:00:00Z", + "ShippedDate": "2023-06-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 252.49, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10556, + "CustomerID": "SIMOB", + "EmployeeID": 2, + "OrderDate": "2023-06-03T00:00:00Z", + "RequiredDate": "2023-07-15T00:00:00Z", + "ShippedDate": "2023-06-13T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 9.8, + "ShipName": "Simons bistro", + "ShipAddress": "Vinbæltet 34", + "ShipCity": "Kobenhavn", + "ShipRegion": null, + "ShipPostalCode": "1734", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10557, + "CustomerID": "LEHMS", + "EmployeeID": 9, + "OrderDate": "2023-06-03T00:00:00Z", + "RequiredDate": "2023-06-17T00:00:00Z", + "ShippedDate": "2023-06-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 96.72, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10558, + "CustomerID": "AROUT", + "EmployeeID": 1, + "OrderDate": "2023-06-04T00:00:00Z", + "RequiredDate": "2023-07-02T00:00:00Z", + "ShippedDate": "2023-06-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 72.97, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10559, + "CustomerID": "BLONP", + "EmployeeID": 6, + "OrderDate": "2023-06-05T00:00:00Z", + "RequiredDate": "2023-07-03T00:00:00Z", + "ShippedDate": "2023-06-13T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 8.05, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10560, + "CustomerID": "FRANK", + "EmployeeID": 8, + "OrderDate": "2023-06-06T00:00:00Z", + "RequiredDate": "2023-07-04T00:00:00Z", + "ShippedDate": "2023-06-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 36.65, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10561, + "CustomerID": "FOLKO", + "EmployeeID": 2, + "OrderDate": "2023-06-06T00:00:00Z", + "RequiredDate": "2023-07-04T00:00:00Z", + "ShippedDate": "2023-06-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 242.21, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10562, + "CustomerID": "REGGC", + "EmployeeID": 1, + "OrderDate": "2023-06-09T00:00:00Z", + "RequiredDate": "2023-07-07T00:00:00Z", + "ShippedDate": "2023-06-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 22.95, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10563, + "CustomerID": "RICAR", + "EmployeeID": 2, + "OrderDate": "2023-06-10T00:00:00Z", + "RequiredDate": "2023-07-22T00:00:00Z", + "ShippedDate": "2023-06-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 60.43, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10564, + "CustomerID": "RATTC", + "EmployeeID": 4, + "OrderDate": "2023-06-10T00:00:00Z", + "RequiredDate": "2023-07-08T00:00:00Z", + "ShippedDate": "2023-06-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 13.75, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10565, + "CustomerID": "MEREP", + "EmployeeID": 8, + "OrderDate": "2023-06-11T00:00:00Z", + "RequiredDate": "2023-07-09T00:00:00Z", + "ShippedDate": "2023-06-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 7.15, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10566, + "CustomerID": "BLONP", + "EmployeeID": 9, + "OrderDate": "2023-06-12T00:00:00Z", + "RequiredDate": "2023-07-10T00:00:00Z", + "ShippedDate": "2023-06-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 88.4, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10567, + "CustomerID": "HUNGO", + "EmployeeID": 1, + "OrderDate": "2023-06-12T00:00:00Z", + "RequiredDate": "2023-07-10T00:00:00Z", + "ShippedDate": "2023-06-17T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 33.97, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10568, + "CustomerID": "GALED", + "EmployeeID": 3, + "OrderDate": "2023-06-13T00:00:00Z", + "RequiredDate": "2023-07-11T00:00:00Z", + "ShippedDate": "2023-07-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 6.54, + "ShipName": "Galería del gastronómo", + "ShipAddress": "Rambla de Cataluña, 23", + "ShipCity": "Barcelona", + "ShipRegion": null, + "ShipPostalCode": "8022", + "ShipCountry": "Spain" + }, + { + "OrderID": 10569, + "CustomerID": "RATTC", + "EmployeeID": 5, + "OrderDate": "2023-06-16T00:00:00Z", + "RequiredDate": "2023-07-14T00:00:00Z", + "ShippedDate": "2023-07-11T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 58.98, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10570, + "CustomerID": "MEREP", + "EmployeeID": 3, + "OrderDate": "2023-06-17T00:00:00Z", + "RequiredDate": "2023-07-15T00:00:00Z", + "ShippedDate": "2023-06-19T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 188.99, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10571, + "CustomerID": "ERNSH", + "EmployeeID": 8, + "OrderDate": "2023-06-17T00:00:00Z", + "RequiredDate": "2023-07-29T00:00:00Z", + "ShippedDate": "2023-07-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 26.06, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10572, + "CustomerID": "BERGS", + "EmployeeID": 3, + "OrderDate": "2023-06-18T00:00:00Z", + "RequiredDate": "2023-07-16T00:00:00Z", + "ShippedDate": "2023-06-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 116.43, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10573, + "CustomerID": "ANTON", + "EmployeeID": 7, + "OrderDate": "2023-06-19T00:00:00Z", + "RequiredDate": "2023-07-17T00:00:00Z", + "ShippedDate": "2023-06-20T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 84.84, + "ShipName": "Antonio Moreno Taquería", + "ShipAddress": "Mataderos 2312", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05023", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10574, + "CustomerID": "TRAIH", + "EmployeeID": 4, + "OrderDate": "2023-06-19T00:00:00Z", + "RequiredDate": "2023-07-17T00:00:00Z", + "ShippedDate": "2023-06-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 37.6, + "ShipName": "Trail's Head Gourmet Provisioners", + "ShipAddress": "722 DaVinci Blvd.", + "ShipCity": "Kirkland", + "ShipRegion": "WA", + "ShipPostalCode": "98034", + "ShipCountry": "USA" + }, + { + "OrderID": 10575, + "CustomerID": "MORGK", + "EmployeeID": 5, + "OrderDate": "2023-06-20T00:00:00Z", + "RequiredDate": "2023-07-04T00:00:00Z", + "ShippedDate": "2023-06-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 127.34, + "ShipName": "Morgenstern Gesundkost", + "ShipAddress": "Heerstr. 22", + "ShipCity": "Leipzig", + "ShipRegion": null, + "ShipPostalCode": "04179", + "ShipCountry": "Germany" + }, + { + "OrderID": 10576, + "CustomerID": "TORTU", + "EmployeeID": 3, + "OrderDate": "2023-06-23T00:00:00Z", + "RequiredDate": "2023-07-07T00:00:00Z", + "ShippedDate": "2023-06-30T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 18.56, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10577, + "CustomerID": "TRAIH", + "EmployeeID": 9, + "OrderDate": "2023-06-23T00:00:00Z", + "RequiredDate": "2023-08-04T00:00:00Z", + "ShippedDate": "2023-06-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 25.41, + "ShipName": "Trail's Head Gourmet Provisioners", + "ShipAddress": "722 DaVinci Blvd.", + "ShipCity": "Kirkland", + "ShipRegion": "WA", + "ShipPostalCode": "98034", + "ShipCountry": "USA" + }, + { + "OrderID": 10578, + "CustomerID": "BSBEV", + "EmployeeID": 4, + "OrderDate": "2023-06-24T00:00:00Z", + "RequiredDate": "2023-07-22T00:00:00Z", + "ShippedDate": "2023-07-25T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 29.6, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10579, + "CustomerID": "LETSS", + "EmployeeID": 1, + "OrderDate": "2023-06-25T00:00:00Z", + "RequiredDate": "2023-07-23T00:00:00Z", + "ShippedDate": "2023-07-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 13.73, + "ShipName": "Let's Stop N Shop", + "ShipAddress": "87 Polk St. Suite 5", + "ShipCity": "San Francisco", + "ShipRegion": "CA", + "ShipPostalCode": "94117", + "ShipCountry": "USA" + }, + { + "OrderID": 10580, + "CustomerID": "OTTIK", + "EmployeeID": 4, + "OrderDate": "2023-06-26T00:00:00Z", + "RequiredDate": "2023-07-24T00:00:00Z", + "ShippedDate": "2023-07-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 75.89, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 10581, + "CustomerID": "FAMIA", + "EmployeeID": 3, + "OrderDate": "2023-06-26T00:00:00Z", + "RequiredDate": "2023-07-24T00:00:00Z", + "ShippedDate": "2023-07-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 3.01, + "ShipName": "Familia Arquibaldo", + "ShipAddress": "Rua Orós, 92", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05442-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10582, + "CustomerID": "BLAUS", + "EmployeeID": 3, + "OrderDate": "2023-06-27T00:00:00Z", + "RequiredDate": "2023-07-25T00:00:00Z", + "ShippedDate": "2023-07-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 27.71, + "ShipName": "Blauer See Delikatessen", + "ShipAddress": "Forsterstr. 57", + "ShipCity": "Mannheim", + "ShipRegion": null, + "ShipPostalCode": "68306", + "ShipCountry": "Germany" + }, + { + "OrderID": 10583, + "CustomerID": "WARTH", + "EmployeeID": 2, + "OrderDate": "2023-06-30T00:00:00Z", + "RequiredDate": "2023-07-28T00:00:00Z", + "ShippedDate": "2023-07-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 7.28, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10584, + "CustomerID": "BLONP", + "EmployeeID": 4, + "OrderDate": "2023-06-30T00:00:00Z", + "RequiredDate": "2023-07-28T00:00:00Z", + "ShippedDate": "2023-07-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 59.14, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10585, + "CustomerID": "WELLI", + "EmployeeID": 7, + "OrderDate": "2023-07-01T00:00:00Z", + "RequiredDate": "2023-07-29T00:00:00Z", + "ShippedDate": "2023-07-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 13.41, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10586, + "CustomerID": "REGGC", + "EmployeeID": 9, + "OrderDate": "2023-07-02T00:00:00Z", + "RequiredDate": "2023-07-30T00:00:00Z", + "ShippedDate": "2023-07-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.48, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10587, + "CustomerID": "QUEDE", + "EmployeeID": 1, + "OrderDate": "2023-07-02T00:00:00Z", + "RequiredDate": "2023-07-30T00:00:00Z", + "ShippedDate": "2023-07-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 62.52, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10588, + "CustomerID": "QUICK", + "EmployeeID": 2, + "OrderDate": "2023-07-03T00:00:00Z", + "RequiredDate": "2023-07-31T00:00:00Z", + "ShippedDate": "2023-07-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 194.67, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10589, + "CustomerID": "GREAL", + "EmployeeID": 8, + "OrderDate": "2023-07-04T00:00:00Z", + "RequiredDate": "2023-08-01T00:00:00Z", + "ShippedDate": "2023-07-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.42, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 10590, + "CustomerID": "MEREP", + "EmployeeID": 4, + "OrderDate": "2023-07-07T00:00:00Z", + "RequiredDate": "2023-08-04T00:00:00Z", + "ShippedDate": "2023-07-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 44.77, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10591, + "CustomerID": "VAFFE", + "EmployeeID": 1, + "OrderDate": "2023-07-07T00:00:00Z", + "RequiredDate": "2023-07-21T00:00:00Z", + "ShippedDate": "2023-07-16T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 55.92, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10592, + "CustomerID": "LEHMS", + "EmployeeID": 3, + "OrderDate": "2023-07-08T00:00:00Z", + "RequiredDate": "2023-08-05T00:00:00Z", + "ShippedDate": "2023-07-16T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 32.1, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10593, + "CustomerID": "LEHMS", + "EmployeeID": 7, + "OrderDate": "2023-07-09T00:00:00Z", + "RequiredDate": "2023-08-06T00:00:00Z", + "ShippedDate": "2023-08-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 174.2, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10594, + "CustomerID": "OLDWO", + "EmployeeID": 3, + "OrderDate": "2023-07-09T00:00:00Z", + "RequiredDate": "2023-08-06T00:00:00Z", + "ShippedDate": "2023-07-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 5.24, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10595, + "CustomerID": "ERNSH", + "EmployeeID": 2, + "OrderDate": "2023-07-10T00:00:00Z", + "RequiredDate": "2023-08-07T00:00:00Z", + "ShippedDate": "2023-07-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 96.78, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10596, + "CustomerID": "WHITC", + "EmployeeID": 8, + "OrderDate": "2023-07-11T00:00:00Z", + "RequiredDate": "2023-08-08T00:00:00Z", + "ShippedDate": "2023-08-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 16.34, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10597, + "CustomerID": "PICCO", + "EmployeeID": 7, + "OrderDate": "2023-07-11T00:00:00Z", + "RequiredDate": "2023-08-08T00:00:00Z", + "ShippedDate": "2023-07-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 35.12, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10598, + "CustomerID": "RATTC", + "EmployeeID": 1, + "OrderDate": "2023-07-14T00:00:00Z", + "RequiredDate": "2023-08-11T00:00:00Z", + "ShippedDate": "2023-07-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 44.42, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10599, + "CustomerID": "BSBEV", + "EmployeeID": 6, + "OrderDate": "2023-07-15T00:00:00Z", + "RequiredDate": "2023-08-26T00:00:00Z", + "ShippedDate": "2023-07-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 29.98, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10600, + "CustomerID": "HUNGC", + "EmployeeID": 4, + "OrderDate": "2023-07-16T00:00:00Z", + "RequiredDate": "2023-08-13T00:00:00Z", + "ShippedDate": "2023-07-21T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 45.13, + "ShipName": "Hungry Coyote Import Store", + "ShipAddress": "City Center Plaza 516 Main St.", + "ShipCity": "Elgin", + "ShipRegion": "OR", + "ShipPostalCode": "97827", + "ShipCountry": "USA" + }, + { + "OrderID": 10601, + "CustomerID": "HILAA", + "EmployeeID": 7, + "OrderDate": "2023-07-16T00:00:00Z", + "RequiredDate": "2023-08-27T00:00:00Z", + "ShippedDate": "2023-07-22T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 58.3, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10602, + "CustomerID": "VAFFE", + "EmployeeID": 8, + "OrderDate": "2023-07-17T00:00:00Z", + "RequiredDate": "2023-08-14T00:00:00Z", + "ShippedDate": "2023-07-22T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 2.92, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10603, + "CustomerID": "SAVEA", + "EmployeeID": 8, + "OrderDate": "2023-07-18T00:00:00Z", + "RequiredDate": "2023-08-15T00:00:00Z", + "ShippedDate": "2023-08-08T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 48.77, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10604, + "CustomerID": "FURIB", + "EmployeeID": 1, + "OrderDate": "2023-07-18T00:00:00Z", + "RequiredDate": "2023-08-15T00:00:00Z", + "ShippedDate": "2023-07-29T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 7.46, + "ShipName": "Furia Bacalhau e Frutos do Mar", + "ShipAddress": "Jardim das rosas n. 32", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1675", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10605, + "CustomerID": "MEREP", + "EmployeeID": 1, + "OrderDate": "2023-07-21T00:00:00Z", + "RequiredDate": "2023-08-18T00:00:00Z", + "ShippedDate": "2023-07-29T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 379.13, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10606, + "CustomerID": "TRADH", + "EmployeeID": 4, + "OrderDate": "2023-07-22T00:00:00Z", + "RequiredDate": "2023-08-19T00:00:00Z", + "ShippedDate": "2023-07-31T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 79.4, + "ShipName": "Tradiçao Hipermercados", + "ShipAddress": "Av. Inês de Castro, 414", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05634-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10607, + "CustomerID": "SAVEA", + "EmployeeID": 5, + "OrderDate": "2023-07-22T00:00:00Z", + "RequiredDate": "2023-08-19T00:00:00Z", + "ShippedDate": "2023-07-25T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 200.24, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10608, + "CustomerID": "TOMSP", + "EmployeeID": 4, + "OrderDate": "2023-07-23T00:00:00Z", + "RequiredDate": "2023-08-20T00:00:00Z", + "ShippedDate": "2023-08-01T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 27.79, + "ShipName": "Toms Spezialitäten", + "ShipAddress": "Luisenstr. 48", + "ShipCity": "Münster", + "ShipRegion": null, + "ShipPostalCode": "44087", + "ShipCountry": "Germany" + }, + { + "OrderID": 10609, + "CustomerID": "DUMON", + "EmployeeID": 7, + "OrderDate": "2023-07-24T00:00:00Z", + "RequiredDate": "2023-08-21T00:00:00Z", + "ShippedDate": "2023-07-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.85, + "ShipName": "Du monde entier", + "ShipAddress": "67, rue des Cinquante Otages", + "ShipCity": "Nantes", + "ShipRegion": null, + "ShipPostalCode": "44000", + "ShipCountry": "France" + }, + { + "OrderID": 10610, + "CustomerID": "LAMAI", + "EmployeeID": 8, + "OrderDate": "2023-07-25T00:00:00Z", + "RequiredDate": "2023-08-22T00:00:00Z", + "ShippedDate": "2023-08-06T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 26.78, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10611, + "CustomerID": "WOLZA", + "EmployeeID": 6, + "OrderDate": "2023-07-25T00:00:00Z", + "RequiredDate": "2023-08-22T00:00:00Z", + "ShippedDate": "2023-08-01T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 80.65, + "ShipName": "Wolski Zajazd", + "ShipAddress": "ul. Filtrowa 68", + "ShipCity": "Warszawa", + "ShipRegion": null, + "ShipPostalCode": "01-012", + "ShipCountry": "Poland" + }, + { + "OrderID": 10612, + "CustomerID": "SAVEA", + "EmployeeID": 1, + "OrderDate": "2023-07-28T00:00:00Z", + "RequiredDate": "2023-08-25T00:00:00Z", + "ShippedDate": "2023-08-01T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 544.08, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10613, + "CustomerID": "HILAA", + "EmployeeID": 4, + "OrderDate": "2023-07-29T00:00:00Z", + "RequiredDate": "2023-08-26T00:00:00Z", + "ShippedDate": "2023-08-01T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 8.11, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10614, + "CustomerID": "BLAUS", + "EmployeeID": 8, + "OrderDate": "2023-07-29T00:00:00Z", + "RequiredDate": "2023-08-26T00:00:00Z", + "ShippedDate": "2023-08-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.93, + "ShipName": "Blauer See Delikatessen", + "ShipAddress": "Forsterstr. 57", + "ShipCity": "Mannheim", + "ShipRegion": null, + "ShipPostalCode": "68306", + "ShipCountry": "Germany" + }, + { + "OrderID": 10615, + "CustomerID": "WILMK", + "EmployeeID": 2, + "OrderDate": "2023-07-30T00:00:00Z", + "RequiredDate": "2023-08-27T00:00:00Z", + "ShippedDate": "2023-08-06T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 0.75, + "ShipName": "Wilman Kala", + "ShipAddress": "Keskuskatu 45", + "ShipCity": "Helsinki", + "ShipRegion": null, + "ShipPostalCode": "21240", + "ShipCountry": "Finland" + }, + { + "OrderID": 10616, + "CustomerID": "GREAL", + "EmployeeID": 1, + "OrderDate": "2023-07-31T00:00:00Z", + "RequiredDate": "2023-08-28T00:00:00Z", + "ShippedDate": "2023-08-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 116.53, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 10617, + "CustomerID": "GREAL", + "EmployeeID": 4, + "OrderDate": "2023-07-31T00:00:00Z", + "RequiredDate": "2023-08-28T00:00:00Z", + "ShippedDate": "2023-08-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 18.53, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 10618, + "CustomerID": "MEREP", + "EmployeeID": 1, + "OrderDate": "2023-08-01T00:00:00Z", + "RequiredDate": "2023-09-12T00:00:00Z", + "ShippedDate": "2023-08-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 154.68, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10619, + "CustomerID": "MEREP", + "EmployeeID": 3, + "OrderDate": "2023-08-04T00:00:00Z", + "RequiredDate": "2023-09-01T00:00:00Z", + "ShippedDate": "2023-08-07T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 91.05, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10620, + "CustomerID": "LAUGB", + "EmployeeID": 2, + "OrderDate": "2023-08-05T00:00:00Z", + "RequiredDate": "2023-09-02T00:00:00Z", + "ShippedDate": "2023-08-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 0.94, + "ShipName": "Laughing Bacchus Wine Cellars", + "ShipAddress": "2319 Elm St.", + "ShipCity": "Vancouver", + "ShipRegion": "BC", + "ShipPostalCode": "V3F 2K1", + "ShipCountry": "Canada" + }, + { + "OrderID": 10621, + "CustomerID": "ISLAT", + "EmployeeID": 4, + "OrderDate": "2023-08-05T00:00:00Z", + "RequiredDate": "2023-09-02T00:00:00Z", + "ShippedDate": "2023-08-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 23.73, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10622, + "CustomerID": "RICAR", + "EmployeeID": 4, + "OrderDate": "2023-08-06T00:00:00Z", + "RequiredDate": "2023-09-03T00:00:00Z", + "ShippedDate": "2023-08-11T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 50.97, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10623, + "CustomerID": "FRANK", + "EmployeeID": 8, + "OrderDate": "2023-08-07T00:00:00Z", + "RequiredDate": "2023-09-04T00:00:00Z", + "ShippedDate": "2023-08-12T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 97.18, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10624, + "CustomerID": "THECR", + "EmployeeID": 4, + "OrderDate": "2023-08-07T00:00:00Z", + "RequiredDate": "2023-09-04T00:00:00Z", + "ShippedDate": "2023-08-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 94.8, + "ShipName": "The Cracker Box", + "ShipAddress": "55 Grizzly Peak Rd.", + "ShipCity": "Butte", + "ShipRegion": "MT", + "ShipPostalCode": "59801", + "ShipCountry": "USA" + }, + { + "OrderID": 10625, + "CustomerID": "ANATR", + "EmployeeID": 3, + "OrderDate": "2023-08-08T00:00:00Z", + "RequiredDate": "2023-09-05T00:00:00Z", + "ShippedDate": "2023-08-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 43.9, + "ShipName": "Ana Trujillo Emparedados y helados", + "ShipAddress": "Avda. de la Constitución 2222", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05021", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10626, + "CustomerID": "BERGS", + "EmployeeID": 1, + "OrderDate": "2023-08-11T00:00:00Z", + "RequiredDate": "2023-09-08T00:00:00Z", + "ShippedDate": "2023-08-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 138.69, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10627, + "CustomerID": "SAVEA", + "EmployeeID": 8, + "OrderDate": "2023-08-11T00:00:00Z", + "RequiredDate": "2023-09-22T00:00:00Z", + "ShippedDate": "2023-08-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 107.46, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10628, + "CustomerID": "BLONP", + "EmployeeID": 4, + "OrderDate": "2023-08-12T00:00:00Z", + "RequiredDate": "2023-09-09T00:00:00Z", + "ShippedDate": "2023-08-20T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 30.36, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10629, + "CustomerID": "GODOS", + "EmployeeID": 4, + "OrderDate": "2023-08-12T00:00:00Z", + "RequiredDate": "2023-09-09T00:00:00Z", + "ShippedDate": "2023-08-20T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 85.46, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 10630, + "CustomerID": "KOENE", + "EmployeeID": 1, + "OrderDate": "2023-08-13T00:00:00Z", + "RequiredDate": "2023-09-10T00:00:00Z", + "ShippedDate": "2023-08-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 32.35, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10631, + "CustomerID": "LAMAI", + "EmployeeID": 8, + "OrderDate": "2023-08-14T00:00:00Z", + "RequiredDate": "2023-09-11T00:00:00Z", + "ShippedDate": "2023-08-15T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.87, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10632, + "CustomerID": "WANDK", + "EmployeeID": 8, + "OrderDate": "2023-08-14T00:00:00Z", + "RequiredDate": "2023-09-11T00:00:00Z", + "ShippedDate": "2023-08-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 41.38, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10633, + "CustomerID": "ERNSH", + "EmployeeID": 7, + "OrderDate": "2023-08-15T00:00:00Z", + "RequiredDate": "2023-09-12T00:00:00Z", + "ShippedDate": "2023-08-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 477.9, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10634, + "CustomerID": "FOLIG", + "EmployeeID": 4, + "OrderDate": "2023-08-15T00:00:00Z", + "RequiredDate": "2023-09-12T00:00:00Z", + "ShippedDate": "2023-08-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 487.38, + "ShipName": "Folies gourmandes", + "ShipAddress": "184, chaussée de Tournai", + "ShipCity": "Lille", + "ShipRegion": null, + "ShipPostalCode": "59000", + "ShipCountry": "France" + }, + { + "OrderID": 10635, + "CustomerID": "MAGAA", + "EmployeeID": 8, + "OrderDate": "2023-08-18T00:00:00Z", + "RequiredDate": "2023-09-15T00:00:00Z", + "ShippedDate": "2023-08-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 47.46, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10636, + "CustomerID": "WARTH", + "EmployeeID": 4, + "OrderDate": "2023-08-19T00:00:00Z", + "RequiredDate": "2023-09-16T00:00:00Z", + "ShippedDate": "2023-08-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 1.15, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10637, + "CustomerID": "QUEEN", + "EmployeeID": 6, + "OrderDate": "2023-08-19T00:00:00Z", + "RequiredDate": "2023-09-16T00:00:00Z", + "ShippedDate": "2023-08-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 201.29, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10638, + "CustomerID": "LINOD", + "EmployeeID": 3, + "OrderDate": "2023-08-20T00:00:00Z", + "RequiredDate": "2023-09-17T00:00:00Z", + "ShippedDate": "2023-09-01T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 158.44, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10639, + "CustomerID": "SANTG", + "EmployeeID": 7, + "OrderDate": "2023-08-20T00:00:00Z", + "RequiredDate": "2023-09-17T00:00:00Z", + "ShippedDate": "2023-08-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 38.64, + "ShipName": "Santé Gourmet", + "ShipAddress": "Erling Skakkes gate 78", + "ShipCity": "Stavern", + "ShipRegion": null, + "ShipPostalCode": "4110", + "ShipCountry": "Norway" + }, + { + "OrderID": 10640, + "CustomerID": "WANDK", + "EmployeeID": 4, + "OrderDate": "2023-08-21T00:00:00Z", + "RequiredDate": "2023-09-18T00:00:00Z", + "ShippedDate": "2023-08-28T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 23.55, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10641, + "CustomerID": "HILAA", + "EmployeeID": 4, + "OrderDate": "2023-08-22T00:00:00Z", + "RequiredDate": "2023-09-19T00:00:00Z", + "ShippedDate": "2023-08-26T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 179.61, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10642, + "CustomerID": "SIMOB", + "EmployeeID": 7, + "OrderDate": "2023-08-22T00:00:00Z", + "RequiredDate": "2023-09-19T00:00:00Z", + "ShippedDate": "2023-09-05T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 41.89, + "ShipName": "Simons bistro", + "ShipAddress": "Vinbæltet 34", + "ShipCity": "Kobenhavn", + "ShipRegion": null, + "ShipPostalCode": "1734", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10643, + "CustomerID": "ALFKI", + "EmployeeID": 6, + "OrderDate": "2023-08-25T00:00:00Z", + "RequiredDate": "2023-09-22T00:00:00Z", + "ShippedDate": "2023-09-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 29.46, + "ShipName": "Alfreds Futterkiste", + "ShipAddress": "Obere Str. 57", + "ShipCity": "Berlin", + "ShipRegion": null, + "ShipPostalCode": "12209", + "ShipCountry": "Germany" + }, + { + "OrderID": 10644, + "CustomerID": "WELLI", + "EmployeeID": 3, + "OrderDate": "2023-08-25T00:00:00Z", + "RequiredDate": "2023-09-22T00:00:00Z", + "ShippedDate": "2023-09-01T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 0.14, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10645, + "CustomerID": "HANAR", + "EmployeeID": 4, + "OrderDate": "2023-08-26T00:00:00Z", + "RequiredDate": "2023-09-23T00:00:00Z", + "ShippedDate": "2023-09-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 12.41, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10646, + "CustomerID": "HUNGO", + "EmployeeID": 9, + "OrderDate": "2023-08-27T00:00:00Z", + "RequiredDate": "2023-10-08T00:00:00Z", + "ShippedDate": "2023-09-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 142.33, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10647, + "CustomerID": "QUEDE", + "EmployeeID": 4, + "OrderDate": "2023-08-27T00:00:00Z", + "RequiredDate": "2023-09-10T00:00:00Z", + "ShippedDate": "2023-09-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 45.54, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10648, + "CustomerID": "RICAR", + "EmployeeID": 5, + "OrderDate": "2023-08-28T00:00:00Z", + "RequiredDate": "2023-10-09T00:00:00Z", + "ShippedDate": "2023-09-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 14.25, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10649, + "CustomerID": "MAISD", + "EmployeeID": 5, + "OrderDate": "2023-08-28T00:00:00Z", + "RequiredDate": "2023-09-25T00:00:00Z", + "ShippedDate": "2023-08-29T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 6.2, + "ShipName": "Maison Dewey", + "ShipAddress": "Rue Joseph-Bens 532", + "ShipCity": "Bruxelles", + "ShipRegion": null, + "ShipPostalCode": "B-1180", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10650, + "CustomerID": "FAMIA", + "EmployeeID": 5, + "OrderDate": "2023-08-29T00:00:00Z", + "RequiredDate": "2023-09-26T00:00:00Z", + "ShippedDate": "2023-09-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 176.81, + "ShipName": "Familia Arquibaldo", + "ShipAddress": "Rua Orós, 92", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05442-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10651, + "CustomerID": "WANDK", + "EmployeeID": 8, + "OrderDate": "2023-09-01T00:00:00Z", + "RequiredDate": "2023-09-29T00:00:00Z", + "ShippedDate": "2023-09-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 20.6, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10652, + "CustomerID": "GOURL", + "EmployeeID": 4, + "OrderDate": "2023-09-01T00:00:00Z", + "RequiredDate": "2023-09-29T00:00:00Z", + "ShippedDate": "2023-09-08T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 7.14, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10653, + "CustomerID": "FRANK", + "EmployeeID": 1, + "OrderDate": "2023-09-02T00:00:00Z", + "RequiredDate": "2023-09-30T00:00:00Z", + "ShippedDate": "2023-09-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 93.25, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10654, + "CustomerID": "BERGS", + "EmployeeID": 5, + "OrderDate": "2023-09-02T00:00:00Z", + "RequiredDate": "2023-09-30T00:00:00Z", + "ShippedDate": "2023-09-11T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 55.26, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10655, + "CustomerID": "REGGC", + "EmployeeID": 1, + "OrderDate": "2023-09-03T00:00:00Z", + "RequiredDate": "2023-10-01T00:00:00Z", + "ShippedDate": "2023-09-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.41, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10656, + "CustomerID": "GREAL", + "EmployeeID": 6, + "OrderDate": "2023-09-04T00:00:00Z", + "RequiredDate": "2023-10-02T00:00:00Z", + "ShippedDate": "2023-09-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 57.15, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 10657, + "CustomerID": "SAVEA", + "EmployeeID": 2, + "OrderDate": "2023-09-04T00:00:00Z", + "RequiredDate": "2023-10-02T00:00:00Z", + "ShippedDate": "2023-09-15T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 352.69, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10658, + "CustomerID": "QUICK", + "EmployeeID": 4, + "OrderDate": "2023-09-05T00:00:00Z", + "RequiredDate": "2023-10-03T00:00:00Z", + "ShippedDate": "2023-09-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 364.15, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10659, + "CustomerID": "QUEEN", + "EmployeeID": 7, + "OrderDate": "2023-09-05T00:00:00Z", + "RequiredDate": "2023-10-03T00:00:00Z", + "ShippedDate": "2023-09-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 105.81, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10660, + "CustomerID": "HUNGC", + "EmployeeID": 8, + "OrderDate": "2023-09-08T00:00:00Z", + "RequiredDate": "2023-10-06T00:00:00Z", + "ShippedDate": "2023-10-15T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 111.29, + "ShipName": "Hungry Coyote Import Store", + "ShipAddress": "City Center Plaza 516 Main St.", + "ShipCity": "Elgin", + "ShipRegion": "OR", + "ShipPostalCode": "97827", + "ShipCountry": "USA" + }, + { + "OrderID": 10661, + "CustomerID": "HUNGO", + "EmployeeID": 7, + "OrderDate": "2023-09-09T00:00:00Z", + "RequiredDate": "2023-10-07T00:00:00Z", + "ShippedDate": "2023-09-15T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 17.55, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10662, + "CustomerID": "LONEP", + "EmployeeID": 3, + "OrderDate": "2023-09-09T00:00:00Z", + "RequiredDate": "2023-10-07T00:00:00Z", + "ShippedDate": "2023-09-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.28, + "ShipName": "Lonesome Pine Restaurant", + "ShipAddress": "89 Chiaroscuro Rd.", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97219", + "ShipCountry": "USA" + }, + { + "OrderID": 10663, + "CustomerID": "BONAP", + "EmployeeID": 2, + "OrderDate": "2023-09-10T00:00:00Z", + "RequiredDate": "2023-09-24T00:00:00Z", + "ShippedDate": "2023-10-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 113.15, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10664, + "CustomerID": "FURIB", + "EmployeeID": 1, + "OrderDate": "2023-09-10T00:00:00Z", + "RequiredDate": "2023-10-08T00:00:00Z", + "ShippedDate": "2023-09-19T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.27, + "ShipName": "Furia Bacalhau e Frutos do Mar", + "ShipAddress": "Jardim das rosas n. 32", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1675", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10665, + "CustomerID": "LONEP", + "EmployeeID": 1, + "OrderDate": "2023-09-11T00:00:00Z", + "RequiredDate": "2023-10-09T00:00:00Z", + "ShippedDate": "2023-09-17T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 26.31, + "ShipName": "Lonesome Pine Restaurant", + "ShipAddress": "89 Chiaroscuro Rd.", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97219", + "ShipCountry": "USA" + }, + { + "OrderID": 10666, + "CustomerID": "RICSU", + "EmployeeID": 7, + "OrderDate": "2023-09-12T00:00:00Z", + "RequiredDate": "2023-10-10T00:00:00Z", + "ShippedDate": "2023-09-22T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 232.42, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10667, + "CustomerID": "ERNSH", + "EmployeeID": 7, + "OrderDate": "2023-09-12T00:00:00Z", + "RequiredDate": "2023-10-10T00:00:00Z", + "ShippedDate": "2023-09-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 78.09, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10668, + "CustomerID": "WANDK", + "EmployeeID": 1, + "OrderDate": "2023-09-15T00:00:00Z", + "RequiredDate": "2023-10-13T00:00:00Z", + "ShippedDate": "2023-09-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 47.22, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 10669, + "CustomerID": "SIMOB", + "EmployeeID": 2, + "OrderDate": "2023-09-15T00:00:00Z", + "RequiredDate": "2023-10-13T00:00:00Z", + "ShippedDate": "2023-09-22T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 24.39, + "ShipName": "Simons bistro", + "ShipAddress": "Vinbæltet 34", + "ShipCity": "Kobenhavn", + "ShipRegion": null, + "ShipPostalCode": "1734", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10670, + "CustomerID": "FRANK", + "EmployeeID": 4, + "OrderDate": "2023-09-16T00:00:00Z", + "RequiredDate": "2023-10-14T00:00:00Z", + "ShippedDate": "2023-09-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 203.48, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10671, + "CustomerID": "FRANR", + "EmployeeID": 1, + "OrderDate": "2023-09-17T00:00:00Z", + "RequiredDate": "2023-10-15T00:00:00Z", + "ShippedDate": "2023-09-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 30.34, + "ShipName": "France restauration", + "ShipAddress": "54, rue Royale", + "ShipCity": "Nantes", + "ShipRegion": null, + "ShipPostalCode": "44000", + "ShipCountry": "France" + }, + { + "OrderID": 10672, + "CustomerID": "BERGS", + "EmployeeID": 9, + "OrderDate": "2023-09-17T00:00:00Z", + "RequiredDate": "2023-10-01T00:00:00Z", + "ShippedDate": "2023-09-26T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 95.75, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10673, + "CustomerID": "WILMK", + "EmployeeID": 2, + "OrderDate": "2023-09-18T00:00:00Z", + "RequiredDate": "2023-10-16T00:00:00Z", + "ShippedDate": "2023-09-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 22.76, + "ShipName": "Wilman Kala", + "ShipAddress": "Keskuskatu 45", + "ShipCity": "Helsinki", + "ShipRegion": null, + "ShipPostalCode": "21240", + "ShipCountry": "Finland" + }, + { + "OrderID": 10674, + "CustomerID": "ISLAT", + "EmployeeID": 4, + "OrderDate": "2023-09-18T00:00:00Z", + "RequiredDate": "2023-10-16T00:00:00Z", + "ShippedDate": "2023-09-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 0.9, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10675, + "CustomerID": "FRANK", + "EmployeeID": 5, + "OrderDate": "2023-09-19T00:00:00Z", + "RequiredDate": "2023-10-17T00:00:00Z", + "ShippedDate": "2023-09-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 31.85, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10676, + "CustomerID": "TORTU", + "EmployeeID": 2, + "OrderDate": "2023-09-22T00:00:00Z", + "RequiredDate": "2023-10-20T00:00:00Z", + "ShippedDate": "2023-09-29T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 2.01, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10677, + "CustomerID": "ANTON", + "EmployeeID": 1, + "OrderDate": "2023-09-22T00:00:00Z", + "RequiredDate": "2023-10-20T00:00:00Z", + "ShippedDate": "2023-09-26T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.03, + "ShipName": "Antonio Moreno Taquería", + "ShipAddress": "Mataderos 2312", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05023", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10678, + "CustomerID": "SAVEA", + "EmployeeID": 7, + "OrderDate": "2023-09-23T00:00:00Z", + "RequiredDate": "2023-10-21T00:00:00Z", + "ShippedDate": "2023-10-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 388.98, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10679, + "CustomerID": "BLONP", + "EmployeeID": 8, + "OrderDate": "2023-09-23T00:00:00Z", + "RequiredDate": "2023-10-21T00:00:00Z", + "ShippedDate": "2023-09-30T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 27.94, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10680, + "CustomerID": "OLDWO", + "EmployeeID": 1, + "OrderDate": "2023-09-24T00:00:00Z", + "RequiredDate": "2023-10-22T00:00:00Z", + "ShippedDate": "2023-09-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 26.61, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10681, + "CustomerID": "GREAL", + "EmployeeID": 3, + "OrderDate": "2023-09-25T00:00:00Z", + "RequiredDate": "2023-10-23T00:00:00Z", + "ShippedDate": "2023-09-30T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 76.13, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 10682, + "CustomerID": "ANTON", + "EmployeeID": 3, + "OrderDate": "2023-09-25T00:00:00Z", + "RequiredDate": "2023-10-23T00:00:00Z", + "ShippedDate": "2023-10-01T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 36.13, + "ShipName": "Antonio Moreno Taquería", + "ShipAddress": "Mataderos 2312", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05023", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10683, + "CustomerID": "DUMON", + "EmployeeID": 2, + "OrderDate": "2023-09-26T00:00:00Z", + "RequiredDate": "2023-10-24T00:00:00Z", + "ShippedDate": "2023-10-01T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 4.4, + "ShipName": "Du monde entier", + "ShipAddress": "67, rue des Cinquante Otages", + "ShipCity": "Nantes", + "ShipRegion": null, + "ShipPostalCode": "44000", + "ShipCountry": "France" + }, + { + "OrderID": 10684, + "CustomerID": "OTTIK", + "EmployeeID": 3, + "OrderDate": "2023-09-26T00:00:00Z", + "RequiredDate": "2023-10-24T00:00:00Z", + "ShippedDate": "2023-09-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 145.63, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 10685, + "CustomerID": "GOURL", + "EmployeeID": 4, + "OrderDate": "2023-09-29T00:00:00Z", + "RequiredDate": "2023-10-13T00:00:00Z", + "ShippedDate": "2023-10-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 33.75, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10686, + "CustomerID": "PICCO", + "EmployeeID": 2, + "OrderDate": "2023-09-30T00:00:00Z", + "RequiredDate": "2023-10-28T00:00:00Z", + "ShippedDate": "2023-10-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 96.5, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10687, + "CustomerID": "HUNGO", + "EmployeeID": 9, + "OrderDate": "2023-09-30T00:00:00Z", + "RequiredDate": "2023-10-28T00:00:00Z", + "ShippedDate": "2023-10-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 296.43, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10688, + "CustomerID": "VAFFE", + "EmployeeID": 4, + "OrderDate": "2023-10-01T00:00:00Z", + "RequiredDate": "2023-10-15T00:00:00Z", + "ShippedDate": "2023-10-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 299.09, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10689, + "CustomerID": "BERGS", + "EmployeeID": 1, + "OrderDate": "2023-10-01T00:00:00Z", + "RequiredDate": "2023-10-29T00:00:00Z", + "ShippedDate": "2023-10-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 13.42, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10690, + "CustomerID": "HANAR", + "EmployeeID": 1, + "OrderDate": "2023-10-02T00:00:00Z", + "RequiredDate": "2023-10-30T00:00:00Z", + "ShippedDate": "2023-10-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 15.8, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10691, + "CustomerID": "QUICK", + "EmployeeID": 2, + "OrderDate": "2023-10-03T00:00:00Z", + "RequiredDate": "2023-11-14T00:00:00Z", + "ShippedDate": "2023-10-22T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 810.05, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10692, + "CustomerID": "ALFKI", + "EmployeeID": 4, + "OrderDate": "2023-10-03T00:00:00Z", + "RequiredDate": "2023-10-31T00:00:00Z", + "ShippedDate": "2023-10-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 61.02, + "ShipName": "Alfred's Futterkiste", + "ShipAddress": "Obere Str. 57", + "ShipCity": "Berlin", + "ShipRegion": null, + "ShipPostalCode": "12209", + "ShipCountry": "Germany" + }, + { + "OrderID": 10693, + "CustomerID": "WHITC", + "EmployeeID": 3, + "OrderDate": "2023-10-06T00:00:00Z", + "RequiredDate": "2023-10-20T00:00:00Z", + "ShippedDate": "2023-10-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 139.34, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10694, + "CustomerID": "QUICK", + "EmployeeID": 8, + "OrderDate": "2023-10-06T00:00:00Z", + "RequiredDate": "2023-11-03T00:00:00Z", + "ShippedDate": "2023-10-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 398.36, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10695, + "CustomerID": "WILMK", + "EmployeeID": 7, + "OrderDate": "2023-10-07T00:00:00Z", + "RequiredDate": "2023-11-18T00:00:00Z", + "ShippedDate": "2023-10-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 16.72, + "ShipName": "Wilman Kala", + "ShipAddress": "Keskuskatu 45", + "ShipCity": "Helsinki", + "ShipRegion": null, + "ShipPostalCode": "21240", + "ShipCountry": "Finland" + }, + { + "OrderID": 10696, + "CustomerID": "WHITC", + "EmployeeID": 8, + "OrderDate": "2023-10-08T00:00:00Z", + "RequiredDate": "2023-11-19T00:00:00Z", + "ShippedDate": "2023-10-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 102.55, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10697, + "CustomerID": "LINOD", + "EmployeeID": 3, + "OrderDate": "2023-10-08T00:00:00Z", + "RequiredDate": "2023-11-05T00:00:00Z", + "ShippedDate": "2023-10-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 45.52, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10698, + "CustomerID": "ERNSH", + "EmployeeID": 4, + "OrderDate": "2023-10-09T00:00:00Z", + "RequiredDate": "2023-11-06T00:00:00Z", + "ShippedDate": "2023-10-17T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 272.47, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10699, + "CustomerID": "MORGK", + "EmployeeID": 3, + "OrderDate": "2023-10-09T00:00:00Z", + "RequiredDate": "2023-11-06T00:00:00Z", + "ShippedDate": "2023-10-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 0.58, + "ShipName": "Morgenstern Gesundkost", + "ShipAddress": "Heerstr. 22", + "ShipCity": "Leipzig", + "ShipRegion": null, + "ShipPostalCode": "04179", + "ShipCountry": "Germany" + }, + { + "OrderID": 10700, + "CustomerID": "SAVEA", + "EmployeeID": 3, + "OrderDate": "2023-10-10T00:00:00Z", + "RequiredDate": "2023-11-07T00:00:00Z", + "ShippedDate": "2023-10-16T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 65.1, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10701, + "CustomerID": "HUNGO", + "EmployeeID": 6, + "OrderDate": "2023-10-13T00:00:00Z", + "RequiredDate": "2023-10-27T00:00:00Z", + "ShippedDate": "2023-10-15T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 220.31, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10702, + "CustomerID": "ALFKI", + "EmployeeID": 4, + "OrderDate": "2023-10-13T00:00:00Z", + "RequiredDate": "2023-11-24T00:00:00Z", + "ShippedDate": "2023-10-21T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 23.94, + "ShipName": "Alfred's Futterkiste", + "ShipAddress": "Obere Str. 57", + "ShipCity": "Berlin", + "ShipRegion": null, + "ShipPostalCode": "12209", + "ShipCountry": "Germany" + }, + { + "OrderID": 10703, + "CustomerID": "FOLKO", + "EmployeeID": 6, + "OrderDate": "2023-10-14T00:00:00Z", + "RequiredDate": "2023-11-11T00:00:00Z", + "ShippedDate": "2023-10-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 152.3, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10704, + "CustomerID": "QUEEN", + "EmployeeID": 6, + "OrderDate": "2023-10-14T00:00:00Z", + "RequiredDate": "2023-11-11T00:00:00Z", + "ShippedDate": "2023-11-07T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 4.78, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10705, + "CustomerID": "HILAA", + "EmployeeID": 9, + "OrderDate": "2023-10-15T00:00:00Z", + "RequiredDate": "2023-11-12T00:00:00Z", + "ShippedDate": "2023-11-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.52, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10706, + "CustomerID": "OLDWO", + "EmployeeID": 8, + "OrderDate": "2023-10-16T00:00:00Z", + "RequiredDate": "2023-11-13T00:00:00Z", + "ShippedDate": "2023-10-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 135.63, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10707, + "CustomerID": "AROUT", + "EmployeeID": 4, + "OrderDate": "2023-10-16T00:00:00Z", + "RequiredDate": "2023-10-30T00:00:00Z", + "ShippedDate": "2023-10-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 21.74, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10708, + "CustomerID": "THEBI", + "EmployeeID": 6, + "OrderDate": "2023-10-17T00:00:00Z", + "RequiredDate": "2023-11-28T00:00:00Z", + "ShippedDate": "2023-11-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 2.96, + "ShipName": "The Big Cheese", + "ShipAddress": "89 Jefferson Way Suite 2", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97201", + "ShipCountry": "USA" + }, + { + "OrderID": 10709, + "CustomerID": "GOURL", + "EmployeeID": 1, + "OrderDate": "2023-10-17T00:00:00Z", + "RequiredDate": "2023-11-14T00:00:00Z", + "ShippedDate": "2023-11-20T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 210.8, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10710, + "CustomerID": "FRANS", + "EmployeeID": 1, + "OrderDate": "2023-10-20T00:00:00Z", + "RequiredDate": "2023-11-17T00:00:00Z", + "ShippedDate": "2023-10-23T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 4.98, + "ShipName": "Franchi S.p.A.", + "ShipAddress": "Via Monte Bianco 34", + "ShipCity": "Torino", + "ShipRegion": null, + "ShipPostalCode": "10100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10711, + "CustomerID": "SAVEA", + "EmployeeID": 5, + "OrderDate": "2023-10-21T00:00:00Z", + "RequiredDate": "2023-12-02T00:00:00Z", + "ShippedDate": "2023-10-29T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 52.41, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10712, + "CustomerID": "HUNGO", + "EmployeeID": 3, + "OrderDate": "2023-10-21T00:00:00Z", + "RequiredDate": "2023-11-18T00:00:00Z", + "ShippedDate": "2023-10-31T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 89.93, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10713, + "CustomerID": "SAVEA", + "EmployeeID": 1, + "OrderDate": "2023-10-22T00:00:00Z", + "RequiredDate": "2023-11-19T00:00:00Z", + "ShippedDate": "2023-10-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 167.05, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10714, + "CustomerID": "SAVEA", + "EmployeeID": 5, + "OrderDate": "2023-10-22T00:00:00Z", + "RequiredDate": "2023-11-19T00:00:00Z", + "ShippedDate": "2023-10-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 24.49, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10715, + "CustomerID": "BONAP", + "EmployeeID": 3, + "OrderDate": "2023-10-23T00:00:00Z", + "RequiredDate": "2023-11-06T00:00:00Z", + "ShippedDate": "2023-10-29T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 63.2, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10716, + "CustomerID": "RANCH", + "EmployeeID": 4, + "OrderDate": "2023-10-24T00:00:00Z", + "RequiredDate": "2023-11-21T00:00:00Z", + "ShippedDate": "2023-10-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 22.57, + "ShipName": "Rancho grande", + "ShipAddress": "Av. del Libertador 900", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10717, + "CustomerID": "FRANK", + "EmployeeID": 1, + "OrderDate": "2023-10-24T00:00:00Z", + "RequiredDate": "2023-11-21T00:00:00Z", + "ShippedDate": "2023-10-29T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 59.25, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10718, + "CustomerID": "KOENE", + "EmployeeID": 1, + "OrderDate": "2023-10-27T00:00:00Z", + "RequiredDate": "2023-11-24T00:00:00Z", + "ShippedDate": "2023-10-29T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 170.88, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10719, + "CustomerID": "LETSS", + "EmployeeID": 8, + "OrderDate": "2023-10-27T00:00:00Z", + "RequiredDate": "2023-11-24T00:00:00Z", + "ShippedDate": "2023-11-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 51.44, + "ShipName": "Let's Stop N Shop", + "ShipAddress": "87 Polk St. Suite 5", + "ShipCity": "San Francisco", + "ShipRegion": "CA", + "ShipPostalCode": "94117", + "ShipCountry": "USA" + }, + { + "OrderID": 10720, + "CustomerID": "QUEDE", + "EmployeeID": 8, + "OrderDate": "2023-10-28T00:00:00Z", + "RequiredDate": "2023-11-11T00:00:00Z", + "ShippedDate": "2023-11-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 9.53, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10721, + "CustomerID": "QUICK", + "EmployeeID": 5, + "OrderDate": "2023-10-29T00:00:00Z", + "RequiredDate": "2023-11-26T00:00:00Z", + "ShippedDate": "2023-10-31T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 48.92, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10722, + "CustomerID": "SAVEA", + "EmployeeID": 8, + "OrderDate": "2023-10-29T00:00:00Z", + "RequiredDate": "2023-12-10T00:00:00Z", + "ShippedDate": "2023-11-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 74.58, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10723, + "CustomerID": "WHITC", + "EmployeeID": 3, + "OrderDate": "2023-10-30T00:00:00Z", + "RequiredDate": "2023-11-27T00:00:00Z", + "ShippedDate": "2023-11-25T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 21.72, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10724, + "CustomerID": "MEREP", + "EmployeeID": 8, + "OrderDate": "2023-10-30T00:00:00Z", + "RequiredDate": "2023-12-11T00:00:00Z", + "ShippedDate": "2023-11-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 57.75, + "ShipName": "Mère Paillarde", + "ShipAddress": "43 rue St. Laurent", + "ShipCity": "Montréal", + "ShipRegion": "Québec", + "ShipPostalCode": "H1J 1C3", + "ShipCountry": "Canada" + }, + { + "OrderID": 10725, + "CustomerID": "FAMIA", + "EmployeeID": 4, + "OrderDate": "2023-10-31T00:00:00Z", + "RequiredDate": "2023-11-28T00:00:00Z", + "ShippedDate": "2023-11-05T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 10.83, + "ShipName": "Familia Arquibaldo", + "ShipAddress": "Rua Orós, 92", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05442-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10726, + "CustomerID": "EASTC", + "EmployeeID": 4, + "OrderDate": "2023-11-03T00:00:00Z", + "RequiredDate": "2023-11-17T00:00:00Z", + "ShippedDate": "2023-12-05T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 16.56, + "ShipName": "Eastern Connection", + "ShipAddress": "35 King George", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX3 6FW", + "ShipCountry": "UK" + }, + { + "OrderID": 10727, + "CustomerID": "REGGC", + "EmployeeID": 2, + "OrderDate": "2023-11-03T00:00:00Z", + "RequiredDate": "2023-12-01T00:00:00Z", + "ShippedDate": "2023-12-05T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 89.9, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10728, + "CustomerID": "QUEEN", + "EmployeeID": 4, + "OrderDate": "2023-11-04T00:00:00Z", + "RequiredDate": "2023-12-02T00:00:00Z", + "ShippedDate": "2023-11-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 58.33, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10729, + "CustomerID": "LINOD", + "EmployeeID": 8, + "OrderDate": "2023-11-04T00:00:00Z", + "RequiredDate": "2023-12-16T00:00:00Z", + "ShippedDate": "2023-11-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 141.06, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10730, + "CustomerID": "BONAP", + "EmployeeID": 5, + "OrderDate": "2023-11-05T00:00:00Z", + "RequiredDate": "2023-12-03T00:00:00Z", + "ShippedDate": "2023-11-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 20.12, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10731, + "CustomerID": "CHOPS", + "EmployeeID": 7, + "OrderDate": "2023-11-06T00:00:00Z", + "RequiredDate": "2023-12-04T00:00:00Z", + "ShippedDate": "2023-11-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 96.65, + "ShipName": "Chop-suey Chinese", + "ShipAddress": "Hauptstr. 31", + "ShipCity": "Bern", + "ShipRegion": null, + "ShipPostalCode": "3012", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10732, + "CustomerID": "BONAP", + "EmployeeID": 3, + "OrderDate": "2023-11-06T00:00:00Z", + "RequiredDate": "2023-12-04T00:00:00Z", + "ShippedDate": "2023-11-07T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 16.97, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10733, + "CustomerID": "BERGS", + "EmployeeID": 1, + "OrderDate": "2023-11-07T00:00:00Z", + "RequiredDate": "2023-12-05T00:00:00Z", + "ShippedDate": "2023-11-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 110.11, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10734, + "CustomerID": "GOURL", + "EmployeeID": 2, + "OrderDate": "2023-11-07T00:00:00Z", + "RequiredDate": "2023-12-05T00:00:00Z", + "ShippedDate": "2023-11-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.63, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10735, + "CustomerID": "LETSS", + "EmployeeID": 6, + "OrderDate": "2023-11-10T00:00:00Z", + "RequiredDate": "2023-12-08T00:00:00Z", + "ShippedDate": "2023-11-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 45.97, + "ShipName": "Let's Stop N Shop", + "ShipAddress": "87 Polk St. Suite 5", + "ShipCity": "San Francisco", + "ShipRegion": "CA", + "ShipPostalCode": "94117", + "ShipCountry": "USA" + }, + { + "OrderID": 10736, + "CustomerID": "HUNGO", + "EmployeeID": 9, + "OrderDate": "2023-11-11T00:00:00Z", + "RequiredDate": "2023-12-09T00:00:00Z", + "ShippedDate": "2023-11-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 44.1, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10737, + "CustomerID": "VINET", + "EmployeeID": 2, + "OrderDate": "2023-11-11T00:00:00Z", + "RequiredDate": "2023-12-09T00:00:00Z", + "ShippedDate": "2023-11-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 7.79, + "ShipName": "Vins et alcools Chevalier", + "ShipAddress": "59 rue de l'Abbaye", + "ShipCity": "Reims", + "ShipRegion": null, + "ShipPostalCode": "51100", + "ShipCountry": "France" + }, + { + "OrderID": 10738, + "CustomerID": "SPECD", + "EmployeeID": 2, + "OrderDate": "2023-11-12T00:00:00Z", + "RequiredDate": "2023-12-10T00:00:00Z", + "ShippedDate": "2023-11-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 2.91, + "ShipName": "Spécialités du monde", + "ShipAddress": "25, rue Lauriston", + "ShipCity": "Paris", + "ShipRegion": null, + "ShipPostalCode": "75016", + "ShipCountry": "France" + }, + { + "OrderID": 10739, + "CustomerID": "VINET", + "EmployeeID": 3, + "OrderDate": "2023-11-12T00:00:00Z", + "RequiredDate": "2023-12-10T00:00:00Z", + "ShippedDate": "2023-11-17T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 11.08, + "ShipName": "Vins et alcools Chevalier", + "ShipAddress": "59 rue de l'Abbaye", + "ShipCity": "Reims", + "ShipRegion": null, + "ShipPostalCode": "51100", + "ShipCountry": "France" + }, + { + "OrderID": 10740, + "CustomerID": "WHITC", + "EmployeeID": 4, + "OrderDate": "2023-11-13T00:00:00Z", + "RequiredDate": "2023-12-11T00:00:00Z", + "ShippedDate": "2023-11-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 81.88, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10741, + "CustomerID": "AROUT", + "EmployeeID": 4, + "OrderDate": "2023-11-14T00:00:00Z", + "RequiredDate": "2023-11-28T00:00:00Z", + "ShippedDate": "2023-11-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 10.96, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10742, + "CustomerID": "BOTTM", + "EmployeeID": 3, + "OrderDate": "2023-11-14T00:00:00Z", + "RequiredDate": "2023-12-12T00:00:00Z", + "ShippedDate": "2023-11-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 243.73, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10743, + "CustomerID": "AROUT", + "EmployeeID": 1, + "OrderDate": "2023-11-17T00:00:00Z", + "RequiredDate": "2023-12-15T00:00:00Z", + "ShippedDate": "2023-11-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 23.72, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10744, + "CustomerID": "VAFFE", + "EmployeeID": 6, + "OrderDate": "2023-11-17T00:00:00Z", + "RequiredDate": "2023-12-15T00:00:00Z", + "ShippedDate": "2023-11-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 69.19, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10745, + "CustomerID": "QUICK", + "EmployeeID": 9, + "OrderDate": "2023-11-18T00:00:00Z", + "RequiredDate": "2023-12-16T00:00:00Z", + "ShippedDate": "2023-11-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 3.52, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10746, + "CustomerID": "CHOPS", + "EmployeeID": 1, + "OrderDate": "2023-11-19T00:00:00Z", + "RequiredDate": "2023-12-17T00:00:00Z", + "ShippedDate": "2023-11-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 31.43, + "ShipName": "Chop-suey Chinese", + "ShipAddress": "Hauptstr. 31", + "ShipCity": "Bern", + "ShipRegion": null, + "ShipPostalCode": "3012", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10747, + "CustomerID": "PICCO", + "EmployeeID": 6, + "OrderDate": "2023-11-19T00:00:00Z", + "RequiredDate": "2023-12-17T00:00:00Z", + "ShippedDate": "2023-11-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 117.33, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10748, + "CustomerID": "SAVEA", + "EmployeeID": 3, + "OrderDate": "2023-11-20T00:00:00Z", + "RequiredDate": "2023-12-18T00:00:00Z", + "ShippedDate": "2023-11-28T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 232.55, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10749, + "CustomerID": "ISLAT", + "EmployeeID": 4, + "OrderDate": "2023-11-20T00:00:00Z", + "RequiredDate": "2023-12-18T00:00:00Z", + "ShippedDate": "2023-12-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 61.53, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10750, + "CustomerID": "WARTH", + "EmployeeID": 9, + "OrderDate": "2023-11-21T00:00:00Z", + "RequiredDate": "2023-12-19T00:00:00Z", + "ShippedDate": "2023-11-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 79.3, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10751, + "CustomerID": "RICSU", + "EmployeeID": 3, + "OrderDate": "2023-11-24T00:00:00Z", + "RequiredDate": "2023-12-22T00:00:00Z", + "ShippedDate": "2023-12-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 130.79, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10752, + "CustomerID": "NORTS", + "EmployeeID": 2, + "OrderDate": "2023-11-24T00:00:00Z", + "RequiredDate": "2023-12-22T00:00:00Z", + "ShippedDate": "2023-11-28T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.39, + "ShipName": "North/South", + "ShipAddress": "South House 300 Queensbridge", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "SW7 1RZ", + "ShipCountry": "UK" + }, + { + "OrderID": 10753, + "CustomerID": "FRANS", + "EmployeeID": 3, + "OrderDate": "2023-11-25T00:00:00Z", + "RequiredDate": "2023-12-23T00:00:00Z", + "ShippedDate": "2023-11-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 7.7, + "ShipName": "Franchi S.p.A.", + "ShipAddress": "Via Monte Bianco 34", + "ShipCity": "Torino", + "ShipRegion": null, + "ShipPostalCode": "10100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10754, + "CustomerID": "MAGAA", + "EmployeeID": 6, + "OrderDate": "2023-11-25T00:00:00Z", + "RequiredDate": "2023-12-23T00:00:00Z", + "ShippedDate": "2023-11-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 2.38, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10755, + "CustomerID": "BONAP", + "EmployeeID": 4, + "OrderDate": "2023-11-26T00:00:00Z", + "RequiredDate": "2023-12-24T00:00:00Z", + "ShippedDate": "2023-11-28T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 16.71, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10756, + "CustomerID": "SPLIR", + "EmployeeID": 8, + "OrderDate": "2023-11-27T00:00:00Z", + "RequiredDate": "2023-12-25T00:00:00Z", + "ShippedDate": "2023-12-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 73.21, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10757, + "CustomerID": "SAVEA", + "EmployeeID": 6, + "OrderDate": "2023-11-27T00:00:00Z", + "RequiredDate": "2023-12-25T00:00:00Z", + "ShippedDate": "2023-12-15T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 8.19, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10758, + "CustomerID": "RICSU", + "EmployeeID": 3, + "OrderDate": "2023-11-28T00:00:00Z", + "RequiredDate": "2023-12-26T00:00:00Z", + "ShippedDate": "2023-12-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 138.17, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10759, + "CustomerID": "ANATR", + "EmployeeID": 3, + "OrderDate": "2023-11-28T00:00:00Z", + "RequiredDate": "2023-12-26T00:00:00Z", + "ShippedDate": "2023-12-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 11.99, + "ShipName": "Ana Trujillo Emparedados y helados", + "ShipAddress": "Avda. de la Constitución 2222", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05021", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10760, + "CustomerID": "MAISD", + "EmployeeID": 4, + "OrderDate": "2023-12-01T00:00:00Z", + "RequiredDate": "2023-12-29T00:00:00Z", + "ShippedDate": "2023-12-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 155.64, + "ShipName": "Maison Dewey", + "ShipAddress": "Rue Joseph-Bens 532", + "ShipCity": "Bruxelles", + "ShipRegion": null, + "ShipPostalCode": "B-1180", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10761, + "CustomerID": "RATTC", + "EmployeeID": 5, + "OrderDate": "2023-12-02T00:00:00Z", + "RequiredDate": "2023-12-30T00:00:00Z", + "ShippedDate": "2023-12-08T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 18.66, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10762, + "CustomerID": "FOLKO", + "EmployeeID": 3, + "OrderDate": "2023-12-02T00:00:00Z", + "RequiredDate": "2023-12-30T00:00:00Z", + "ShippedDate": "2023-12-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 328.74, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10763, + "CustomerID": "FOLIG", + "EmployeeID": 3, + "OrderDate": "2023-12-03T00:00:00Z", + "RequiredDate": "2023-12-31T00:00:00Z", + "ShippedDate": "2023-12-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 37.35, + "ShipName": "Folies gourmandes", + "ShipAddress": "184, chaussée de Tournai", + "ShipCity": "Lille", + "ShipRegion": null, + "ShipPostalCode": "59000", + "ShipCountry": "France" + }, + { + "OrderID": 10764, + "CustomerID": "ERNSH", + "EmployeeID": 6, + "OrderDate": "2023-12-03T00:00:00Z", + "RequiredDate": "2023-12-31T00:00:00Z", + "ShippedDate": "2023-12-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 145.45, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10765, + "CustomerID": "QUICK", + "EmployeeID": 3, + "OrderDate": "2023-12-04T00:00:00Z", + "RequiredDate": "2024-01-01T00:00:00Z", + "ShippedDate": "2023-12-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 42.74, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10766, + "CustomerID": "OTTIK", + "EmployeeID": 4, + "OrderDate": "2023-12-05T00:00:00Z", + "RequiredDate": "2024-01-02T00:00:00Z", + "ShippedDate": "2023-12-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 157.55, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 10767, + "CustomerID": "SUPRD", + "EmployeeID": 4, + "OrderDate": "2023-12-05T00:00:00Z", + "RequiredDate": "2024-01-02T00:00:00Z", + "ShippedDate": "2023-12-15T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.59, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10768, + "CustomerID": "AROUT", + "EmployeeID": 3, + "OrderDate": "2023-12-08T00:00:00Z", + "RequiredDate": "2024-01-05T00:00:00Z", + "ShippedDate": "2023-12-15T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 146.32, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10769, + "CustomerID": "VAFFE", + "EmployeeID": 3, + "OrderDate": "2023-12-08T00:00:00Z", + "RequiredDate": "2024-01-05T00:00:00Z", + "ShippedDate": "2023-12-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 65.06, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10770, + "CustomerID": "HANAR", + "EmployeeID": 8, + "OrderDate": "2023-12-09T00:00:00Z", + "RequiredDate": "2024-01-06T00:00:00Z", + "ShippedDate": "2023-12-17T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 5.32, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10771, + "CustomerID": "ERNSH", + "EmployeeID": 9, + "OrderDate": "2023-12-10T00:00:00Z", + "RequiredDate": "2024-01-07T00:00:00Z", + "ShippedDate": "2024-01-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 11.19, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10772, + "CustomerID": "LEHMS", + "EmployeeID": 3, + "OrderDate": "2023-12-10T00:00:00Z", + "RequiredDate": "2024-01-07T00:00:00Z", + "ShippedDate": "2023-12-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 91.28, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10773, + "CustomerID": "ERNSH", + "EmployeeID": 1, + "OrderDate": "2023-12-11T00:00:00Z", + "RequiredDate": "2024-01-08T00:00:00Z", + "ShippedDate": "2023-12-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 96.43, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10774, + "CustomerID": "FOLKO", + "EmployeeID": 4, + "OrderDate": "2023-12-11T00:00:00Z", + "RequiredDate": "2023-12-25T00:00:00Z", + "ShippedDate": "2023-12-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 48.2, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10775, + "CustomerID": "THECR", + "EmployeeID": 7, + "OrderDate": "2023-12-12T00:00:00Z", + "RequiredDate": "2024-01-09T00:00:00Z", + "ShippedDate": "2023-12-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 20.25, + "ShipName": "The Cracker Box", + "ShipAddress": "55 Grizzly Peak Rd.", + "ShipCity": "Butte", + "ShipRegion": "MT", + "ShipPostalCode": "59801", + "ShipCountry": "USA" + }, + { + "OrderID": 10776, + "CustomerID": "ERNSH", + "EmployeeID": 1, + "OrderDate": "2023-12-15T00:00:00Z", + "RequiredDate": "2024-01-12T00:00:00Z", + "ShippedDate": "2023-12-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 351.53, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10777, + "CustomerID": "GOURL", + "EmployeeID": 7, + "OrderDate": "2023-12-15T00:00:00Z", + "RequiredDate": "2023-12-29T00:00:00Z", + "ShippedDate": "2024-01-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.01, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10778, + "CustomerID": "BERGS", + "EmployeeID": 3, + "OrderDate": "2023-12-16T00:00:00Z", + "RequiredDate": "2024-01-13T00:00:00Z", + "ShippedDate": "2023-12-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 6.79, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10779, + "CustomerID": "MORGK", + "EmployeeID": 3, + "OrderDate": "2023-12-16T00:00:00Z", + "RequiredDate": "2024-01-13T00:00:00Z", + "ShippedDate": "2024-01-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 58.13, + "ShipName": "Morgenstern Gesundkost", + "ShipAddress": "Heerstr. 22", + "ShipCity": "Leipzig", + "ShipRegion": null, + "ShipPostalCode": "04179", + "ShipCountry": "Germany" + }, + { + "OrderID": 10780, + "CustomerID": "LILAS", + "EmployeeID": 2, + "OrderDate": "2023-12-16T00:00:00Z", + "RequiredDate": "2023-12-30T00:00:00Z", + "ShippedDate": "2023-12-25T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 42.13, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10781, + "CustomerID": "WARTH", + "EmployeeID": 2, + "OrderDate": "2023-12-17T00:00:00Z", + "RequiredDate": "2024-01-14T00:00:00Z", + "ShippedDate": "2023-12-19T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 73.16, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 10782, + "CustomerID": "CACTU", + "EmployeeID": 9, + "OrderDate": "2023-12-17T00:00:00Z", + "RequiredDate": "2024-01-14T00:00:00Z", + "ShippedDate": "2023-12-22T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.1, + "ShipName": "Cactus Comidas para llevar", + "ShipAddress": "Cerrito 333", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10783, + "CustomerID": "HANAR", + "EmployeeID": 4, + "OrderDate": "2023-12-18T00:00:00Z", + "RequiredDate": "2024-01-15T00:00:00Z", + "ShippedDate": "2023-12-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 124.98, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10784, + "CustomerID": "MAGAA", + "EmployeeID": 4, + "OrderDate": "2023-12-18T00:00:00Z", + "RequiredDate": "2024-01-15T00:00:00Z", + "ShippedDate": "2023-12-22T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 70.09, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10785, + "CustomerID": "GROSR", + "EmployeeID": 1, + "OrderDate": "2023-12-18T00:00:00Z", + "RequiredDate": "2024-01-15T00:00:00Z", + "ShippedDate": "2023-12-24T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.51, + "ShipName": "GROSELLA-Restaurante", + "ShipAddress": "5ª Ave. Los Palos Grandes", + "ShipCity": "Caracas", + "ShipRegion": "DF", + "ShipPostalCode": "1081", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10786, + "CustomerID": "QUEEN", + "EmployeeID": 8, + "OrderDate": "2023-12-19T00:00:00Z", + "RequiredDate": "2024-01-16T00:00:00Z", + "ShippedDate": "2023-12-23T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 110.87, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10787, + "CustomerID": "LAMAI", + "EmployeeID": 2, + "OrderDate": "2023-12-19T00:00:00Z", + "RequiredDate": "2024-01-02T00:00:00Z", + "ShippedDate": "2023-12-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 249.93, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10788, + "CustomerID": "QUICK", + "EmployeeID": 1, + "OrderDate": "2023-12-22T00:00:00Z", + "RequiredDate": "2024-01-19T00:00:00Z", + "ShippedDate": "2024-01-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 42.7, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10789, + "CustomerID": "FOLIG", + "EmployeeID": 1, + "OrderDate": "2023-12-22T00:00:00Z", + "RequiredDate": "2024-01-19T00:00:00Z", + "ShippedDate": "2023-12-31T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 100.6, + "ShipName": "Folies gourmandes", + "ShipAddress": "184, chaussée de Tournai", + "ShipCity": "Lille", + "ShipRegion": null, + "ShipPostalCode": "59000", + "ShipCountry": "France" + }, + { + "OrderID": 10790, + "CustomerID": "GOURL", + "EmployeeID": 6, + "OrderDate": "2023-12-22T00:00:00Z", + "RequiredDate": "2024-01-19T00:00:00Z", + "ShippedDate": "2023-12-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 28.23, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10791, + "CustomerID": "FRANK", + "EmployeeID": 6, + "OrderDate": "2023-12-23T00:00:00Z", + "RequiredDate": "2024-01-20T00:00:00Z", + "ShippedDate": "2024-01-01T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 16.85, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10792, + "CustomerID": "WOLZA", + "EmployeeID": 1, + "OrderDate": "2023-12-23T00:00:00Z", + "RequiredDate": "2024-01-20T00:00:00Z", + "ShippedDate": "2023-12-31T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 23.79, + "ShipName": "Wolski Zajazd", + "ShipAddress": "ul. Filtrowa 68", + "ShipCity": "Warszawa", + "ShipRegion": null, + "ShipPostalCode": "01-012", + "ShipCountry": "Poland" + }, + { + "OrderID": 10793, + "CustomerID": "AROUT", + "EmployeeID": 3, + "OrderDate": "2023-12-24T00:00:00Z", + "RequiredDate": "2024-01-21T00:00:00Z", + "ShippedDate": "2024-01-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.52, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10794, + "CustomerID": "QUEDE", + "EmployeeID": 6, + "OrderDate": "2023-12-24T00:00:00Z", + "RequiredDate": "2024-01-21T00:00:00Z", + "ShippedDate": "2024-01-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 21.49, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10795, + "CustomerID": "ERNSH", + "EmployeeID": 8, + "OrderDate": "2023-12-24T00:00:00Z", + "RequiredDate": "2024-01-21T00:00:00Z", + "ShippedDate": "2024-01-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 126.66, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10796, + "CustomerID": "HILAA", + "EmployeeID": 3, + "OrderDate": "2023-12-25T00:00:00Z", + "RequiredDate": "2024-01-22T00:00:00Z", + "ShippedDate": "2024-01-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 26.52, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10797, + "CustomerID": "DRACD", + "EmployeeID": 7, + "OrderDate": "2023-12-25T00:00:00Z", + "RequiredDate": "2024-01-22T00:00:00Z", + "ShippedDate": "2024-01-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 33.35, + "ShipName": "Drachenblut Delikatessen", + "ShipAddress": "Walserweg 21", + "ShipCity": "Aachen", + "ShipRegion": null, + "ShipPostalCode": "52066", + "ShipCountry": "Germany" + }, + { + "OrderID": 10798, + "CustomerID": "ISLAT", + "EmployeeID": 2, + "OrderDate": "2023-12-26T00:00:00Z", + "RequiredDate": "2024-01-23T00:00:00Z", + "ShippedDate": "2024-01-05T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 2.33, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10799, + "CustomerID": "KOENE", + "EmployeeID": 9, + "OrderDate": "2023-12-26T00:00:00Z", + "RequiredDate": "2024-02-06T00:00:00Z", + "ShippedDate": "2024-01-05T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 30.76, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10800, + "CustomerID": "SEVES", + "EmployeeID": 1, + "OrderDate": "2023-12-26T00:00:00Z", + "RequiredDate": "2024-01-23T00:00:00Z", + "ShippedDate": "2024-01-05T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 137.44, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10801, + "CustomerID": "BOLID", + "EmployeeID": 4, + "OrderDate": "2023-12-29T00:00:00Z", + "RequiredDate": "2024-01-26T00:00:00Z", + "ShippedDate": "2023-12-31T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 97.09, + "ShipName": "Bólido Comidas preparadas", + "ShipAddress": "C/ Araquil, 67", + "ShipCity": "Madrid", + "ShipRegion": null, + "ShipPostalCode": "28023", + "ShipCountry": "Spain" + }, + { + "OrderID": 10802, + "CustomerID": "SIMOB", + "EmployeeID": 4, + "OrderDate": "2023-12-29T00:00:00Z", + "RequiredDate": "2024-01-26T00:00:00Z", + "ShippedDate": "2024-01-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 257.26, + "ShipName": "Simons bistro", + "ShipAddress": "Vinbæltet 34", + "ShipCity": "Kobenhavn", + "ShipRegion": null, + "ShipPostalCode": "1734", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10803, + "CustomerID": "WELLI", + "EmployeeID": 4, + "OrderDate": "2023-12-30T00:00:00Z", + "RequiredDate": "2024-01-27T00:00:00Z", + "ShippedDate": "2024-01-06T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 55.23, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10804, + "CustomerID": "SEVES", + "EmployeeID": 6, + "OrderDate": "2023-12-30T00:00:00Z", + "RequiredDate": "2024-01-27T00:00:00Z", + "ShippedDate": "2024-01-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 27.33, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10805, + "CustomerID": "THEBI", + "EmployeeID": 2, + "OrderDate": "2023-12-30T00:00:00Z", + "RequiredDate": "2024-01-27T00:00:00Z", + "ShippedDate": "2024-01-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 237.34, + "ShipName": "The Big Cheese", + "ShipAddress": "89 Jefferson Way Suite 2", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97201", + "ShipCountry": "USA" + }, + { + "OrderID": 10806, + "CustomerID": "VICTE", + "EmployeeID": 3, + "OrderDate": "2023-12-31T00:00:00Z", + "RequiredDate": "2024-01-28T00:00:00Z", + "ShippedDate": "2024-01-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 22.11, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10807, + "CustomerID": "FRANS", + "EmployeeID": 4, + "OrderDate": "2023-12-31T00:00:00Z", + "RequiredDate": "2024-01-28T00:00:00Z", + "ShippedDate": "2024-01-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 1.36, + "ShipName": "Franchi S.p.A.", + "ShipAddress": "Via Monte Bianco 34", + "ShipCity": "Torino", + "ShipRegion": null, + "ShipPostalCode": "10100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10808, + "CustomerID": "OLDWO", + "EmployeeID": 2, + "OrderDate": "2024-01-01T00:00:00Z", + "RequiredDate": "2024-01-29T00:00:00Z", + "ShippedDate": "2024-01-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 45.53, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10809, + "CustomerID": "WELLI", + "EmployeeID": 7, + "OrderDate": "2024-01-01T00:00:00Z", + "RequiredDate": "2024-01-29T00:00:00Z", + "ShippedDate": "2024-01-07T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 4.87, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10810, + "CustomerID": "LAUGB", + "EmployeeID": 2, + "OrderDate": "2024-01-01T00:00:00Z", + "RequiredDate": "2024-01-29T00:00:00Z", + "ShippedDate": "2024-01-07T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.33, + "ShipName": "Laughing Bacchus Wine Cellars", + "ShipAddress": "2319 Elm St.", + "ShipCity": "Vancouver", + "ShipRegion": "BC", + "ShipPostalCode": "V3F 2K1", + "ShipCountry": "Canada" + }, + { + "OrderID": 10811, + "CustomerID": "LINOD", + "EmployeeID": 8, + "OrderDate": "2024-01-02T00:00:00Z", + "RequiredDate": "2024-01-30T00:00:00Z", + "ShippedDate": "2024-01-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 31.22, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10812, + "CustomerID": "REGGC", + "EmployeeID": 5, + "OrderDate": "2024-01-02T00:00:00Z", + "RequiredDate": "2024-01-30T00:00:00Z", + "ShippedDate": "2024-01-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 59.78, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10813, + "CustomerID": "RICAR", + "EmployeeID": 1, + "OrderDate": "2024-01-05T00:00:00Z", + "RequiredDate": "2024-02-02T00:00:00Z", + "ShippedDate": "2024-01-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 47.38, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10814, + "CustomerID": "VICTE", + "EmployeeID": 3, + "OrderDate": "2024-01-05T00:00:00Z", + "RequiredDate": "2024-02-02T00:00:00Z", + "ShippedDate": "2024-01-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 130.94, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10815, + "CustomerID": "SAVEA", + "EmployeeID": 2, + "OrderDate": "2024-01-05T00:00:00Z", + "RequiredDate": "2024-02-02T00:00:00Z", + "ShippedDate": "2024-01-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 14.62, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10816, + "CustomerID": "GREAL", + "EmployeeID": 4, + "OrderDate": "2024-01-06T00:00:00Z", + "RequiredDate": "2024-02-03T00:00:00Z", + "ShippedDate": "2024-02-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 719.78, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 10817, + "CustomerID": "KOENE", + "EmployeeID": 3, + "OrderDate": "2024-01-06T00:00:00Z", + "RequiredDate": "2024-01-20T00:00:00Z", + "ShippedDate": "2024-01-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 306.07, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10818, + "CustomerID": "MAGAA", + "EmployeeID": 7, + "OrderDate": "2024-01-07T00:00:00Z", + "RequiredDate": "2024-02-04T00:00:00Z", + "ShippedDate": "2024-01-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 65.48, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10819, + "CustomerID": "CACTU", + "EmployeeID": 2, + "OrderDate": "2024-01-07T00:00:00Z", + "RequiredDate": "2024-02-04T00:00:00Z", + "ShippedDate": "2024-01-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 19.76, + "ShipName": "Cactus Comidas para llevar", + "ShipAddress": "Cerrito 333", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10820, + "CustomerID": "RATTC", + "EmployeeID": 3, + "OrderDate": "2024-01-07T00:00:00Z", + "RequiredDate": "2024-02-04T00:00:00Z", + "ShippedDate": "2024-01-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 37.52, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10821, + "CustomerID": "SPLIR", + "EmployeeID": 1, + "OrderDate": "2024-01-08T00:00:00Z", + "RequiredDate": "2024-02-05T00:00:00Z", + "ShippedDate": "2024-01-15T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 36.68, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10822, + "CustomerID": "TRAIH", + "EmployeeID": 6, + "OrderDate": "2024-01-08T00:00:00Z", + "RequiredDate": "2024-02-05T00:00:00Z", + "ShippedDate": "2024-01-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 7, + "ShipName": "Trail's Head Gourmet Provisioners", + "ShipAddress": "722 DaVinci Blvd.", + "ShipCity": "Kirkland", + "ShipRegion": "WA", + "ShipPostalCode": "98034", + "ShipCountry": "USA" + }, + { + "OrderID": 10823, + "CustomerID": "LILAS", + "EmployeeID": 5, + "OrderDate": "2024-01-09T00:00:00Z", + "RequiredDate": "2024-02-06T00:00:00Z", + "ShippedDate": "2024-01-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 163.97, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10824, + "CustomerID": "FOLKO", + "EmployeeID": 8, + "OrderDate": "2024-01-09T00:00:00Z", + "RequiredDate": "2024-02-06T00:00:00Z", + "ShippedDate": "2024-01-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 1.23, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10825, + "CustomerID": "DRACD", + "EmployeeID": 1, + "OrderDate": "2024-01-09T00:00:00Z", + "RequiredDate": "2024-02-06T00:00:00Z", + "ShippedDate": "2024-01-14T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 79.25, + "ShipName": "Drachenblut Delikatessen", + "ShipAddress": "Walserweg 21", + "ShipCity": "Aachen", + "ShipRegion": null, + "ShipPostalCode": "52066", + "ShipCountry": "Germany" + }, + { + "OrderID": 10826, + "CustomerID": "BLONP", + "EmployeeID": 6, + "OrderDate": "2024-01-12T00:00:00Z", + "RequiredDate": "2024-02-09T00:00:00Z", + "ShippedDate": "2024-02-06T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 7.09, + "ShipName": "Blondel père et fils", + "ShipAddress": "24, place Kléber", + "ShipCity": "Strasbourg", + "ShipRegion": null, + "ShipPostalCode": "67000", + "ShipCountry": "France" + }, + { + "OrderID": 10827, + "CustomerID": "BONAP", + "EmployeeID": 1, + "OrderDate": "2024-01-12T00:00:00Z", + "RequiredDate": "2024-01-26T00:00:00Z", + "ShippedDate": "2024-02-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 63.54, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10828, + "CustomerID": "RANCH", + "EmployeeID": 9, + "OrderDate": "2024-01-13T00:00:00Z", + "RequiredDate": "2024-01-27T00:00:00Z", + "ShippedDate": "2024-02-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 90.85, + "ShipName": "Rancho grande", + "ShipAddress": "Av. del Libertador 900", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10829, + "CustomerID": "ISLAT", + "EmployeeID": 9, + "OrderDate": "2024-01-13T00:00:00Z", + "RequiredDate": "2024-02-10T00:00:00Z", + "ShippedDate": "2024-01-23T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 154.72, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10830, + "CustomerID": "TRADH", + "EmployeeID": 4, + "OrderDate": "2024-01-13T00:00:00Z", + "RequiredDate": "2024-02-24T00:00:00Z", + "ShippedDate": "2024-01-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 81.83, + "ShipName": "Tradiçao Hipermercados", + "ShipAddress": "Av. Inês de Castro, 414", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05634-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10831, + "CustomerID": "SANTG", + "EmployeeID": 3, + "OrderDate": "2024-01-14T00:00:00Z", + "RequiredDate": "2024-02-11T00:00:00Z", + "ShippedDate": "2024-01-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 72.19, + "ShipName": "Santé Gourmet", + "ShipAddress": "Erling Skakkes gate 78", + "ShipCity": "Stavern", + "ShipRegion": null, + "ShipPostalCode": "4110", + "ShipCountry": "Norway" + }, + { + "OrderID": 10832, + "CustomerID": "LAMAI", + "EmployeeID": 2, + "OrderDate": "2024-01-14T00:00:00Z", + "RequiredDate": "2024-02-11T00:00:00Z", + "ShippedDate": "2024-01-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 43.26, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10833, + "CustomerID": "OTTIK", + "EmployeeID": 6, + "OrderDate": "2024-01-15T00:00:00Z", + "RequiredDate": "2024-02-12T00:00:00Z", + "ShippedDate": "2024-01-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 71.49, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 10834, + "CustomerID": "TRADH", + "EmployeeID": 1, + "OrderDate": "2024-01-15T00:00:00Z", + "RequiredDate": "2024-02-12T00:00:00Z", + "ShippedDate": "2024-01-19T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 29.78, + "ShipName": "Tradiçao Hipermercados", + "ShipAddress": "Av. Inês de Castro, 414", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05634-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10835, + "CustomerID": "ALFKI", + "EmployeeID": 1, + "OrderDate": "2024-01-15T00:00:00Z", + "RequiredDate": "2024-02-12T00:00:00Z", + "ShippedDate": "2024-01-21T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 69.53, + "ShipName": "Alfred's Futterkiste", + "ShipAddress": "Obere Str. 57", + "ShipCity": "Berlin", + "ShipRegion": null, + "ShipPostalCode": "12209", + "ShipCountry": "Germany" + }, + { + "OrderID": 10836, + "CustomerID": "ERNSH", + "EmployeeID": 7, + "OrderDate": "2024-01-16T00:00:00Z", + "RequiredDate": "2024-02-13T00:00:00Z", + "ShippedDate": "2024-01-21T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 411.88, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10837, + "CustomerID": "BERGS", + "EmployeeID": 9, + "OrderDate": "2024-01-16T00:00:00Z", + "RequiredDate": "2024-02-13T00:00:00Z", + "ShippedDate": "2024-01-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 13.32, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10838, + "CustomerID": "LINOD", + "EmployeeID": 3, + "OrderDate": "2024-01-19T00:00:00Z", + "RequiredDate": "2024-02-16T00:00:00Z", + "ShippedDate": "2024-01-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 59.28, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10839, + "CustomerID": "TRADH", + "EmployeeID": 3, + "OrderDate": "2024-01-19T00:00:00Z", + "RequiredDate": "2024-02-16T00:00:00Z", + "ShippedDate": "2024-01-22T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 35.43, + "ShipName": "Tradiçao Hipermercados", + "ShipAddress": "Av. Inês de Castro, 414", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05634-030", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10840, + "CustomerID": "LINOD", + "EmployeeID": 4, + "OrderDate": "2024-01-19T00:00:00Z", + "RequiredDate": "2024-03-02T00:00:00Z", + "ShippedDate": "2024-02-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 2.71, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10841, + "CustomerID": "SUPRD", + "EmployeeID": 5, + "OrderDate": "2024-01-20T00:00:00Z", + "RequiredDate": "2024-02-17T00:00:00Z", + "ShippedDate": "2024-01-29T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 424.3, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10842, + "CustomerID": "TORTU", + "EmployeeID": 1, + "OrderDate": "2024-01-20T00:00:00Z", + "RequiredDate": "2024-02-17T00:00:00Z", + "ShippedDate": "2024-01-29T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 54.42, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10843, + "CustomerID": "VICTE", + "EmployeeID": 4, + "OrderDate": "2024-01-21T00:00:00Z", + "RequiredDate": "2024-02-18T00:00:00Z", + "ShippedDate": "2024-01-26T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 9.26, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10844, + "CustomerID": "PICCO", + "EmployeeID": 8, + "OrderDate": "2024-01-21T00:00:00Z", + "RequiredDate": "2024-02-18T00:00:00Z", + "ShippedDate": "2024-01-26T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 25.22, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 10845, + "CustomerID": "QUICK", + "EmployeeID": 8, + "OrderDate": "2024-01-21T00:00:00Z", + "RequiredDate": "2024-02-04T00:00:00Z", + "ShippedDate": "2024-01-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 212.98, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10846, + "CustomerID": "SUPRD", + "EmployeeID": 2, + "OrderDate": "2024-01-22T00:00:00Z", + "RequiredDate": "2024-03-05T00:00:00Z", + "ShippedDate": "2024-01-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 56.46, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10847, + "CustomerID": "SAVEA", + "EmployeeID": 4, + "OrderDate": "2024-01-22T00:00:00Z", + "RequiredDate": "2024-02-05T00:00:00Z", + "ShippedDate": "2024-02-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 487.57, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10848, + "CustomerID": "CONSH", + "EmployeeID": 7, + "OrderDate": "2024-01-23T00:00:00Z", + "RequiredDate": "2024-02-20T00:00:00Z", + "ShippedDate": "2024-01-29T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 38.24, + "ShipName": "Consolidated Holdings", + "ShipAddress": "Berkeley Gardens 12 Brewery", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX1 6LT", + "ShipCountry": "UK" + }, + { + "OrderID": 10849, + "CustomerID": "KOENE", + "EmployeeID": 9, + "OrderDate": "2024-01-23T00:00:00Z", + "RequiredDate": "2024-02-20T00:00:00Z", + "ShippedDate": "2024-01-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 0.56, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10850, + "CustomerID": "VICTE", + "EmployeeID": 1, + "OrderDate": "2024-01-23T00:00:00Z", + "RequiredDate": "2024-03-06T00:00:00Z", + "ShippedDate": "2024-01-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 49.19, + "ShipName": "Victuailles en stock", + "ShipAddress": "2, rue du Commerce", + "ShipCity": "Lyon", + "ShipRegion": null, + "ShipPostalCode": "69004", + "ShipCountry": "France" + }, + { + "OrderID": 10851, + "CustomerID": "RICAR", + "EmployeeID": 5, + "OrderDate": "2024-01-26T00:00:00Z", + "RequiredDate": "2024-02-23T00:00:00Z", + "ShippedDate": "2024-02-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 160.55, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10852, + "CustomerID": "RATTC", + "EmployeeID": 8, + "OrderDate": "2024-01-26T00:00:00Z", + "RequiredDate": "2024-02-09T00:00:00Z", + "ShippedDate": "2024-01-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 174.05, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10853, + "CustomerID": "BLAUS", + "EmployeeID": 9, + "OrderDate": "2024-01-27T00:00:00Z", + "RequiredDate": "2024-02-24T00:00:00Z", + "ShippedDate": "2024-02-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 53.83, + "ShipName": "Blauer See Delikatessen", + "ShipAddress": "Forsterstr. 57", + "ShipCity": "Mannheim", + "ShipRegion": null, + "ShipPostalCode": "68306", + "ShipCountry": "Germany" + }, + { + "OrderID": 10854, + "CustomerID": "ERNSH", + "EmployeeID": 3, + "OrderDate": "2024-01-27T00:00:00Z", + "RequiredDate": "2024-02-24T00:00:00Z", + "ShippedDate": "2024-02-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 100.22, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10855, + "CustomerID": "OLDWO", + "EmployeeID": 3, + "OrderDate": "2024-01-27T00:00:00Z", + "RequiredDate": "2024-02-24T00:00:00Z", + "ShippedDate": "2024-02-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 170.97, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10856, + "CustomerID": "ANTON", + "EmployeeID": 3, + "OrderDate": "2024-01-28T00:00:00Z", + "RequiredDate": "2024-02-25T00:00:00Z", + "ShippedDate": "2024-02-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 58.43, + "ShipName": "Antonio Moreno Taquería", + "ShipAddress": "Mataderos 2312", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05023", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10857, + "CustomerID": "BERGS", + "EmployeeID": 8, + "OrderDate": "2024-01-28T00:00:00Z", + "RequiredDate": "2024-02-25T00:00:00Z", + "ShippedDate": "2024-02-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 188.85, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10858, + "CustomerID": "LACOR", + "EmployeeID": 2, + "OrderDate": "2024-01-29T00:00:00Z", + "RequiredDate": "2024-02-26T00:00:00Z", + "ShippedDate": "2024-02-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 52.51, + "ShipName": "La corne d'abondance", + "ShipAddress": "67, avenue de l'Europe", + "ShipCity": "Versailles", + "ShipRegion": null, + "ShipPostalCode": "78000", + "ShipCountry": "France" + }, + { + "OrderID": 10859, + "CustomerID": "FRANK", + "EmployeeID": 1, + "OrderDate": "2024-01-29T00:00:00Z", + "RequiredDate": "2024-02-26T00:00:00Z", + "ShippedDate": "2024-02-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 76.1, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10860, + "CustomerID": "FRANR", + "EmployeeID": 3, + "OrderDate": "2024-01-29T00:00:00Z", + "RequiredDate": "2024-02-26T00:00:00Z", + "ShippedDate": "2024-02-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 19.26, + "ShipName": "France restauration", + "ShipAddress": "54, rue Royale", + "ShipCity": "Nantes", + "ShipRegion": null, + "ShipPostalCode": "44000", + "ShipCountry": "France" + }, + { + "OrderID": 10861, + "CustomerID": "WHITC", + "EmployeeID": 4, + "OrderDate": "2024-01-30T00:00:00Z", + "RequiredDate": "2024-02-27T00:00:00Z", + "ShippedDate": "2024-02-17T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 14.93, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10862, + "CustomerID": "LEHMS", + "EmployeeID": 8, + "OrderDate": "2024-01-30T00:00:00Z", + "RequiredDate": "2024-03-13T00:00:00Z", + "ShippedDate": "2024-02-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 53.23, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10863, + "CustomerID": "HILAA", + "EmployeeID": 4, + "OrderDate": "2024-02-02T00:00:00Z", + "RequiredDate": "2024-03-02T00:00:00Z", + "ShippedDate": "2024-02-17T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 30.26, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10864, + "CustomerID": "AROUT", + "EmployeeID": 4, + "OrderDate": "2024-02-02T00:00:00Z", + "RequiredDate": "2024-03-02T00:00:00Z", + "ShippedDate": "2024-02-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.04, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10865, + "CustomerID": "QUICK", + "EmployeeID": 2, + "OrderDate": "2024-02-02T00:00:00Z", + "RequiredDate": "2024-02-16T00:00:00Z", + "ShippedDate": "2024-02-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 348.14, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10866, + "CustomerID": "BERGS", + "EmployeeID": 5, + "OrderDate": "2024-02-03T00:00:00Z", + "RequiredDate": "2024-03-03T00:00:00Z", + "ShippedDate": "2024-02-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 109.11, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10867, + "CustomerID": "LONEP", + "EmployeeID": 6, + "OrderDate": "2024-02-03T00:00:00Z", + "RequiredDate": "2024-03-17T00:00:00Z", + "ShippedDate": "2024-02-11T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 1.93, + "ShipName": "Lonesome Pine Restaurant", + "ShipAddress": "89 Chiaroscuro Rd.", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97219", + "ShipCountry": "USA" + }, + { + "OrderID": 10868, + "CustomerID": "QUEEN", + "EmployeeID": 7, + "OrderDate": "2024-02-04T00:00:00Z", + "RequiredDate": "2024-03-04T00:00:00Z", + "ShippedDate": "2024-02-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 191.27, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10869, + "CustomerID": "SEVES", + "EmployeeID": 5, + "OrderDate": "2024-02-04T00:00:00Z", + "RequiredDate": "2024-03-04T00:00:00Z", + "ShippedDate": "2024-02-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 143.28, + "ShipName": "Seven Seas Imports", + "ShipAddress": "90 Wadhurst Rd.", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "OX15 4NB", + "ShipCountry": "UK" + }, + { + "OrderID": 10870, + "CustomerID": "WOLZA", + "EmployeeID": 5, + "OrderDate": "2024-02-04T00:00:00Z", + "RequiredDate": "2024-03-04T00:00:00Z", + "ShippedDate": "2024-02-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 12.04, + "ShipName": "Wolski Zajazd", + "ShipAddress": "ul. Filtrowa 68", + "ShipCity": "Warszawa", + "ShipRegion": null, + "ShipPostalCode": "01-012", + "ShipCountry": "Poland" + }, + { + "OrderID": 10871, + "CustomerID": "BONAP", + "EmployeeID": 9, + "OrderDate": "2024-02-05T00:00:00Z", + "RequiredDate": "2024-03-05T00:00:00Z", + "ShippedDate": "2024-02-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 112.27, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10872, + "CustomerID": "GODOS", + "EmployeeID": 5, + "OrderDate": "2024-02-05T00:00:00Z", + "RequiredDate": "2024-03-05T00:00:00Z", + "ShippedDate": "2024-02-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 175.32, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 10873, + "CustomerID": "WILMK", + "EmployeeID": 4, + "OrderDate": "2024-02-06T00:00:00Z", + "RequiredDate": "2024-03-06T00:00:00Z", + "ShippedDate": "2024-02-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.82, + "ShipName": "Wilman Kala", + "ShipAddress": "Keskuskatu 45", + "ShipCity": "Helsinki", + "ShipRegion": null, + "ShipPostalCode": "21240", + "ShipCountry": "Finland" + }, + { + "OrderID": 10874, + "CustomerID": "GODOS", + "EmployeeID": 5, + "OrderDate": "2024-02-06T00:00:00Z", + "RequiredDate": "2024-03-06T00:00:00Z", + "ShippedDate": "2024-02-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 19.58, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 10875, + "CustomerID": "BERGS", + "EmployeeID": 4, + "OrderDate": "2024-02-06T00:00:00Z", + "RequiredDate": "2024-03-06T00:00:00Z", + "ShippedDate": "2024-03-03T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 32.37, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10876, + "CustomerID": "BONAP", + "EmployeeID": 7, + "OrderDate": "2024-02-09T00:00:00Z", + "RequiredDate": "2024-03-09T00:00:00Z", + "ShippedDate": "2024-02-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 60.42, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10877, + "CustomerID": "RICAR", + "EmployeeID": 1, + "OrderDate": "2024-02-09T00:00:00Z", + "RequiredDate": "2024-03-09T00:00:00Z", + "ShippedDate": "2024-02-19T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 38.06, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10878, + "CustomerID": "QUICK", + "EmployeeID": 4, + "OrderDate": "2024-02-10T00:00:00Z", + "RequiredDate": "2024-03-10T00:00:00Z", + "ShippedDate": "2024-02-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 46.69, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10879, + "CustomerID": "WILMK", + "EmployeeID": 3, + "OrderDate": "2024-02-10T00:00:00Z", + "RequiredDate": "2024-03-10T00:00:00Z", + "ShippedDate": "2024-02-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 8.5, + "ShipName": "Wilman Kala", + "ShipAddress": "Keskuskatu 45", + "ShipCity": "Helsinki", + "ShipRegion": null, + "ShipPostalCode": "21240", + "ShipCountry": "Finland" + }, + { + "OrderID": 10880, + "CustomerID": "FOLKO", + "EmployeeID": 7, + "OrderDate": "2024-02-10T00:00:00Z", + "RequiredDate": "2024-03-24T00:00:00Z", + "ShippedDate": "2024-02-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 88.01, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10881, + "CustomerID": "CACTU", + "EmployeeID": 4, + "OrderDate": "2024-02-11T00:00:00Z", + "RequiredDate": "2024-03-11T00:00:00Z", + "ShippedDate": "2024-02-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 2.84, + "ShipName": "Cactus Comidas para llevar", + "ShipAddress": "Cerrito 333", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10882, + "CustomerID": "SAVEA", + "EmployeeID": 4, + "OrderDate": "2024-02-11T00:00:00Z", + "RequiredDate": "2024-03-11T00:00:00Z", + "ShippedDate": "2024-02-20T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 23.1, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10883, + "CustomerID": "LONEP", + "EmployeeID": 8, + "OrderDate": "2024-02-12T00:00:00Z", + "RequiredDate": "2024-03-12T00:00:00Z", + "ShippedDate": "2024-02-20T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 0.53, + "ShipName": "Lonesome Pine Restaurant", + "ShipAddress": "89 Chiaroscuro Rd.", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97219", + "ShipCountry": "USA" + }, + { + "OrderID": 10884, + "CustomerID": "LETSS", + "EmployeeID": 4, + "OrderDate": "2024-02-12T00:00:00Z", + "RequiredDate": "2024-03-12T00:00:00Z", + "ShippedDate": "2024-02-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 90.97, + "ShipName": "Let's Stop N Shop", + "ShipAddress": "87 Polk St. Suite 5", + "ShipCity": "San Francisco", + "ShipRegion": "CA", + "ShipPostalCode": "94117", + "ShipCountry": "USA" + }, + { + "OrderID": 10885, + "CustomerID": "SUPRD", + "EmployeeID": 6, + "OrderDate": "2024-02-12T00:00:00Z", + "RequiredDate": "2024-03-12T00:00:00Z", + "ShippedDate": "2024-02-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 5.64, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10886, + "CustomerID": "HANAR", + "EmployeeID": 1, + "OrderDate": "2024-02-13T00:00:00Z", + "RequiredDate": "2024-03-13T00:00:00Z", + "ShippedDate": "2024-03-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 4.99, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10887, + "CustomerID": "GALED", + "EmployeeID": 8, + "OrderDate": "2024-02-13T00:00:00Z", + "RequiredDate": "2024-03-13T00:00:00Z", + "ShippedDate": "2024-02-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.25, + "ShipName": "Galería del gastronómo", + "ShipAddress": "Rambla de Cataluña, 23", + "ShipCity": "Barcelona", + "ShipRegion": null, + "ShipPostalCode": "8022", + "ShipCountry": "Spain" + }, + { + "OrderID": 10888, + "CustomerID": "GODOS", + "EmployeeID": 1, + "OrderDate": "2024-02-16T00:00:00Z", + "RequiredDate": "2024-03-16T00:00:00Z", + "ShippedDate": "2024-02-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 51.87, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 10889, + "CustomerID": "RATTC", + "EmployeeID": 9, + "OrderDate": "2024-02-16T00:00:00Z", + "RequiredDate": "2024-03-16T00:00:00Z", + "ShippedDate": "2024-02-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 280.61, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10890, + "CustomerID": "DUMON", + "EmployeeID": 7, + "OrderDate": "2024-02-16T00:00:00Z", + "RequiredDate": "2024-03-16T00:00:00Z", + "ShippedDate": "2024-02-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 32.76, + "ShipName": "Du monde entier", + "ShipAddress": "67, rue des Cinquante Otages", + "ShipCity": "Nantes", + "ShipRegion": null, + "ShipPostalCode": "44000", + "ShipCountry": "France" + }, + { + "OrderID": 10891, + "CustomerID": "LEHMS", + "EmployeeID": 7, + "OrderDate": "2024-02-17T00:00:00Z", + "RequiredDate": "2024-03-17T00:00:00Z", + "ShippedDate": "2024-02-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 20.37, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10892, + "CustomerID": "MAISD", + "EmployeeID": 4, + "OrderDate": "2024-02-17T00:00:00Z", + "RequiredDate": "2024-03-17T00:00:00Z", + "ShippedDate": "2024-02-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 120.27, + "ShipName": "Maison Dewey", + "ShipAddress": "Rue Joseph-Bens 532", + "ShipCity": "Bruxelles", + "ShipRegion": null, + "ShipPostalCode": "B-1180", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10893, + "CustomerID": "KOENE", + "EmployeeID": 9, + "OrderDate": "2024-02-18T00:00:00Z", + "RequiredDate": "2024-03-18T00:00:00Z", + "ShippedDate": "2024-02-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 77.78, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 10894, + "CustomerID": "SAVEA", + "EmployeeID": 1, + "OrderDate": "2024-02-18T00:00:00Z", + "RequiredDate": "2024-03-18T00:00:00Z", + "ShippedDate": "2024-02-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 116.13, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10895, + "CustomerID": "ERNSH", + "EmployeeID": 3, + "OrderDate": "2024-02-18T00:00:00Z", + "RequiredDate": "2024-03-18T00:00:00Z", + "ShippedDate": "2024-02-23T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 162.75, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10896, + "CustomerID": "MAISD", + "EmployeeID": 7, + "OrderDate": "2024-02-19T00:00:00Z", + "RequiredDate": "2024-03-19T00:00:00Z", + "ShippedDate": "2024-02-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 32.45, + "ShipName": "Maison Dewey", + "ShipAddress": "Rue Joseph-Bens 532", + "ShipCity": "Bruxelles", + "ShipRegion": null, + "ShipPostalCode": "B-1180", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10897, + "CustomerID": "HUNGO", + "EmployeeID": 3, + "OrderDate": "2024-02-19T00:00:00Z", + "RequiredDate": "2024-03-19T00:00:00Z", + "ShippedDate": "2024-02-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 603.54, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10898, + "CustomerID": "OCEAN", + "EmployeeID": 4, + "OrderDate": "2024-02-20T00:00:00Z", + "RequiredDate": "2024-03-20T00:00:00Z", + "ShippedDate": "2024-03-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.27, + "ShipName": "Océano Atlántico Ltda.", + "ShipAddress": "Ing. Gustavo Moncada 8585 Piso 20-A", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10899, + "CustomerID": "LILAS", + "EmployeeID": 5, + "OrderDate": "2024-02-20T00:00:00Z", + "RequiredDate": "2024-03-20T00:00:00Z", + "ShippedDate": "2024-02-26T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 1.21, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10900, + "CustomerID": "WELLI", + "EmployeeID": 1, + "OrderDate": "2024-02-20T00:00:00Z", + "RequiredDate": "2024-03-20T00:00:00Z", + "ShippedDate": "2024-03-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.66, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10901, + "CustomerID": "HILAA", + "EmployeeID": 4, + "OrderDate": "2024-02-23T00:00:00Z", + "RequiredDate": "2024-03-23T00:00:00Z", + "ShippedDate": "2024-02-26T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 62.09, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10902, + "CustomerID": "FOLKO", + "EmployeeID": 1, + "OrderDate": "2024-02-23T00:00:00Z", + "RequiredDate": "2024-03-23T00:00:00Z", + "ShippedDate": "2024-03-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 44.15, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10903, + "CustomerID": "HANAR", + "EmployeeID": 3, + "OrderDate": "2024-02-24T00:00:00Z", + "RequiredDate": "2024-03-24T00:00:00Z", + "ShippedDate": "2024-03-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 36.71, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10904, + "CustomerID": "WHITC", + "EmployeeID": 3, + "OrderDate": "2024-02-24T00:00:00Z", + "RequiredDate": "2024-03-24T00:00:00Z", + "ShippedDate": "2024-02-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 162.95, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 10905, + "CustomerID": "WELLI", + "EmployeeID": 9, + "OrderDate": "2024-02-24T00:00:00Z", + "RequiredDate": "2024-03-24T00:00:00Z", + "ShippedDate": "2024-03-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 13.72, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10906, + "CustomerID": "WOLZA", + "EmployeeID": 4, + "OrderDate": "2024-02-25T00:00:00Z", + "RequiredDate": "2024-03-11T00:00:00Z", + "ShippedDate": "2024-03-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 26.29, + "ShipName": "Wolski Zajazd", + "ShipAddress": "ul. Filtrowa 68", + "ShipCity": "Warszawa", + "ShipRegion": null, + "ShipPostalCode": "01-012", + "ShipCountry": "Poland" + }, + { + "OrderID": 10907, + "CustomerID": "SPECD", + "EmployeeID": 6, + "OrderDate": "2024-02-25T00:00:00Z", + "RequiredDate": "2024-03-25T00:00:00Z", + "ShippedDate": "2024-02-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 9.19, + "ShipName": "Spécialités du monde", + "ShipAddress": "25, rue Lauriston", + "ShipCity": "Paris", + "ShipRegion": null, + "ShipPostalCode": "75016", + "ShipCountry": "France" + }, + { + "OrderID": 10908, + "CustomerID": "REGGC", + "EmployeeID": 4, + "OrderDate": "2024-02-26T00:00:00Z", + "RequiredDate": "2024-03-26T00:00:00Z", + "ShippedDate": "2024-03-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 32.96, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10909, + "CustomerID": "SANTG", + "EmployeeID": 1, + "OrderDate": "2024-02-26T00:00:00Z", + "RequiredDate": "2024-03-26T00:00:00Z", + "ShippedDate": "2024-03-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 53.05, + "ShipName": "Santé Gourmet", + "ShipAddress": "Erling Skakkes gate 78", + "ShipCity": "Stavern", + "ShipRegion": null, + "ShipPostalCode": "4110", + "ShipCountry": "Norway" + }, + { + "OrderID": 10910, + "CustomerID": "WILMK", + "EmployeeID": 1, + "OrderDate": "2024-02-26T00:00:00Z", + "RequiredDate": "2024-03-26T00:00:00Z", + "ShippedDate": "2024-03-04T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 38.11, + "ShipName": "Wilman Kala", + "ShipAddress": "Keskuskatu 45", + "ShipCity": "Helsinki", + "ShipRegion": null, + "ShipPostalCode": "21240", + "ShipCountry": "Finland" + }, + { + "OrderID": 10911, + "CustomerID": "GODOS", + "EmployeeID": 3, + "OrderDate": "2024-02-26T00:00:00Z", + "RequiredDate": "2024-03-26T00:00:00Z", + "ShippedDate": "2024-03-05T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 38.19, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 10912, + "CustomerID": "HUNGO", + "EmployeeID": 2, + "OrderDate": "2024-02-26T00:00:00Z", + "RequiredDate": "2024-03-26T00:00:00Z", + "ShippedDate": "2024-03-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 580.91, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10913, + "CustomerID": "QUEEN", + "EmployeeID": 4, + "OrderDate": "2024-02-26T00:00:00Z", + "RequiredDate": "2024-03-26T00:00:00Z", + "ShippedDate": "2024-03-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 33.05, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10914, + "CustomerID": "QUEEN", + "EmployeeID": 6, + "OrderDate": "2024-02-27T00:00:00Z", + "RequiredDate": "2024-03-27T00:00:00Z", + "ShippedDate": "2024-03-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 21.19, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10915, + "CustomerID": "TORTU", + "EmployeeID": 2, + "OrderDate": "2024-02-27T00:00:00Z", + "RequiredDate": "2024-03-27T00:00:00Z", + "ShippedDate": "2024-03-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.51, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10916, + "CustomerID": "RANCH", + "EmployeeID": 1, + "OrderDate": "2024-02-27T00:00:00Z", + "RequiredDate": "2024-03-27T00:00:00Z", + "ShippedDate": "2024-03-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 63.77, + "ShipName": "Rancho grande", + "ShipAddress": "Av. del Libertador 900", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10917, + "CustomerID": "ROMEY", + "EmployeeID": 4, + "OrderDate": "2024-03-02T00:00:00Z", + "RequiredDate": "2024-03-30T00:00:00Z", + "ShippedDate": "2024-03-11T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 8.29, + "ShipName": "Romero y tomillo", + "ShipAddress": "Gran Vía, 1", + "ShipCity": "Madrid", + "ShipRegion": null, + "ShipPostalCode": "28001", + "ShipCountry": "Spain" + }, + { + "OrderID": 10918, + "CustomerID": "BOTTM", + "EmployeeID": 3, + "OrderDate": "2024-03-02T00:00:00Z", + "RequiredDate": "2024-03-30T00:00:00Z", + "ShippedDate": "2024-03-11T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 48.83, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10919, + "CustomerID": "LINOD", + "EmployeeID": 2, + "OrderDate": "2024-03-02T00:00:00Z", + "RequiredDate": "2024-03-30T00:00:00Z", + "ShippedDate": "2024-03-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 19.8, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10920, + "CustomerID": "AROUT", + "EmployeeID": 4, + "OrderDate": "2024-03-03T00:00:00Z", + "RequiredDate": "2024-03-31T00:00:00Z", + "ShippedDate": "2024-03-09T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 29.61, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10921, + "CustomerID": "VAFFE", + "EmployeeID": 1, + "OrderDate": "2024-03-03T00:00:00Z", + "RequiredDate": "2024-04-14T00:00:00Z", + "ShippedDate": "2024-03-09T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 176.48, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10922, + "CustomerID": "HANAR", + "EmployeeID": 5, + "OrderDate": "2024-03-03T00:00:00Z", + "RequiredDate": "2024-03-31T00:00:00Z", + "ShippedDate": "2024-03-05T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 62.74, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10923, + "CustomerID": "LAMAI", + "EmployeeID": 7, + "OrderDate": "2024-03-03T00:00:00Z", + "RequiredDate": "2024-04-14T00:00:00Z", + "ShippedDate": "2024-03-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 68.26, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 10924, + "CustomerID": "BERGS", + "EmployeeID": 3, + "OrderDate": "2024-03-04T00:00:00Z", + "RequiredDate": "2024-04-01T00:00:00Z", + "ShippedDate": "2024-04-08T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 151.52, + "ShipName": "Berglunds snabbköp", + "ShipAddress": "Berguvsvägen 8", + "ShipCity": "Luleå", + "ShipRegion": null, + "ShipPostalCode": "S-958 22", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10925, + "CustomerID": "HANAR", + "EmployeeID": 3, + "OrderDate": "2024-03-04T00:00:00Z", + "RequiredDate": "2024-04-01T00:00:00Z", + "ShippedDate": "2024-03-13T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 2.27, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10926, + "CustomerID": "ANATR", + "EmployeeID": 4, + "OrderDate": "2024-03-04T00:00:00Z", + "RequiredDate": "2024-04-01T00:00:00Z", + "ShippedDate": "2024-03-11T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 39.92, + "ShipName": "Ana Trujillo Emparedados y helados", + "ShipAddress": "Avda. de la Constitución 2222", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05021", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10927, + "CustomerID": "LACOR", + "EmployeeID": 4, + "OrderDate": "2024-03-05T00:00:00Z", + "RequiredDate": "2024-04-02T00:00:00Z", + "ShippedDate": "2024-04-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 19.79, + "ShipName": "La corne d'abondance", + "ShipAddress": "67, avenue de l'Europe", + "ShipCity": "Versailles", + "ShipRegion": null, + "ShipPostalCode": "78000", + "ShipCountry": "France" + }, + { + "OrderID": 10928, + "CustomerID": "GALED", + "EmployeeID": 1, + "OrderDate": "2024-03-05T00:00:00Z", + "RequiredDate": "2024-04-02T00:00:00Z", + "ShippedDate": "2024-03-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 1.36, + "ShipName": "Galería del gastronómo", + "ShipAddress": "Rambla de Cataluña, 23", + "ShipCity": "Barcelona", + "ShipRegion": null, + "ShipPostalCode": "8022", + "ShipCountry": "Spain" + }, + { + "OrderID": 10929, + "CustomerID": "FRANK", + "EmployeeID": 6, + "OrderDate": "2024-03-05T00:00:00Z", + "RequiredDate": "2024-04-02T00:00:00Z", + "ShippedDate": "2024-03-12T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 33.93, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 10930, + "CustomerID": "SUPRD", + "EmployeeID": 4, + "OrderDate": "2024-03-06T00:00:00Z", + "RequiredDate": "2024-04-17T00:00:00Z", + "ShippedDate": "2024-03-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 15.55, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10931, + "CustomerID": "RICSU", + "EmployeeID": 4, + "OrderDate": "2024-03-06T00:00:00Z", + "RequiredDate": "2024-03-20T00:00:00Z", + "ShippedDate": "2024-03-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 13.6, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10932, + "CustomerID": "BONAP", + "EmployeeID": 8, + "OrderDate": "2024-03-06T00:00:00Z", + "RequiredDate": "2024-04-03T00:00:00Z", + "ShippedDate": "2024-03-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 134.64, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10933, + "CustomerID": "ISLAT", + "EmployeeID": 6, + "OrderDate": "2024-03-06T00:00:00Z", + "RequiredDate": "2024-04-03T00:00:00Z", + "ShippedDate": "2024-03-16T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 54.15, + "ShipName": "Island Trading", + "ShipAddress": "Garden House Crowther Way", + "ShipCity": "Cowes", + "ShipRegion": "Isle of Wight", + "ShipPostalCode": "PO31 7PJ", + "ShipCountry": "UK" + }, + { + "OrderID": 10934, + "CustomerID": "LEHMS", + "EmployeeID": 3, + "OrderDate": "2024-03-09T00:00:00Z", + "RequiredDate": "2024-04-06T00:00:00Z", + "ShippedDate": "2024-03-12T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 32.01, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 10935, + "CustomerID": "WELLI", + "EmployeeID": 4, + "OrderDate": "2024-03-09T00:00:00Z", + "RequiredDate": "2024-04-06T00:00:00Z", + "ShippedDate": "2024-03-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 47.59, + "ShipName": "Wellington Importadora", + "ShipAddress": "Rua do Mercado, 12", + "ShipCity": "Resende", + "ShipRegion": "SP", + "ShipPostalCode": "08737-363", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10936, + "CustomerID": "GREAL", + "EmployeeID": 3, + "OrderDate": "2024-03-09T00:00:00Z", + "RequiredDate": "2024-04-06T00:00:00Z", + "ShippedDate": "2024-03-18T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 33.68, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 10937, + "CustomerID": "CACTU", + "EmployeeID": 7, + "OrderDate": "2024-03-10T00:00:00Z", + "RequiredDate": "2024-03-24T00:00:00Z", + "ShippedDate": "2024-03-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 31.51, + "ShipName": "Cactus Comidas para llevar", + "ShipAddress": "Cerrito 333", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10938, + "CustomerID": "QUICK", + "EmployeeID": 3, + "OrderDate": "2024-03-10T00:00:00Z", + "RequiredDate": "2024-04-07T00:00:00Z", + "ShippedDate": "2024-03-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 31.89, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10939, + "CustomerID": "MAGAA", + "EmployeeID": 2, + "OrderDate": "2024-03-10T00:00:00Z", + "RequiredDate": "2024-04-07T00:00:00Z", + "ShippedDate": "2024-03-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 76.33, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10940, + "CustomerID": "BONAP", + "EmployeeID": 8, + "OrderDate": "2024-03-11T00:00:00Z", + "RequiredDate": "2024-04-08T00:00:00Z", + "ShippedDate": "2024-03-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 19.77, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 10941, + "CustomerID": "SAVEA", + "EmployeeID": 7, + "OrderDate": "2024-03-11T00:00:00Z", + "RequiredDate": "2024-04-08T00:00:00Z", + "ShippedDate": "2024-03-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 400.81, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10942, + "CustomerID": "REGGC", + "EmployeeID": 9, + "OrderDate": "2024-03-11T00:00:00Z", + "RequiredDate": "2024-04-08T00:00:00Z", + "ShippedDate": "2024-03-18T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 17.95, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10943, + "CustomerID": "BSBEV", + "EmployeeID": 4, + "OrderDate": "2024-03-11T00:00:00Z", + "RequiredDate": "2024-04-08T00:00:00Z", + "ShippedDate": "2024-03-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 2.17, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10944, + "CustomerID": "BOTTM", + "EmployeeID": 6, + "OrderDate": "2024-03-12T00:00:00Z", + "RequiredDate": "2024-03-26T00:00:00Z", + "ShippedDate": "2024-03-13T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 52.92, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10945, + "CustomerID": "MORGK", + "EmployeeID": 4, + "OrderDate": "2024-03-12T00:00:00Z", + "RequiredDate": "2024-04-09T00:00:00Z", + "ShippedDate": "2024-03-18T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 10.22, + "ShipName": "Morgenstern Gesundkost", + "ShipAddress": "Heerstr. 22", + "ShipCity": "Leipzig", + "ShipRegion": null, + "ShipPostalCode": "04179", + "ShipCountry": "Germany" + }, + { + "OrderID": 10946, + "CustomerID": "VAFFE", + "EmployeeID": 1, + "OrderDate": "2024-03-12T00:00:00Z", + "RequiredDate": "2024-04-09T00:00:00Z", + "ShippedDate": "2024-03-19T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 27.2, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10947, + "CustomerID": "BSBEV", + "EmployeeID": 3, + "OrderDate": "2024-03-13T00:00:00Z", + "RequiredDate": "2024-04-10T00:00:00Z", + "ShippedDate": "2024-03-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.26, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 10948, + "CustomerID": "GODOS", + "EmployeeID": 3, + "OrderDate": "2024-03-13T00:00:00Z", + "RequiredDate": "2024-04-10T00:00:00Z", + "ShippedDate": "2024-03-19T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 23.39, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 10949, + "CustomerID": "BOTTM", + "EmployeeID": 2, + "OrderDate": "2024-03-13T00:00:00Z", + "RequiredDate": "2024-04-10T00:00:00Z", + "ShippedDate": "2024-03-17T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 74.44, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10950, + "CustomerID": "MAGAA", + "EmployeeID": 1, + "OrderDate": "2024-03-16T00:00:00Z", + "RequiredDate": "2024-04-13T00:00:00Z", + "ShippedDate": "2024-03-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 2.5, + "ShipName": "Magazzini Alimentari Riuniti", + "ShipAddress": "Via Ludovico il Moro 22", + "ShipCity": "Bergamo", + "ShipRegion": null, + "ShipPostalCode": "24100", + "ShipCountry": "Italy" + }, + { + "OrderID": 10951, + "CustomerID": "RICSU", + "EmployeeID": 9, + "OrderDate": "2024-03-16T00:00:00Z", + "RequiredDate": "2024-04-27T00:00:00Z", + "ShippedDate": "2024-04-07T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 30.85, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10952, + "CustomerID": "ALFKI", + "EmployeeID": 1, + "OrderDate": "2024-03-16T00:00:00Z", + "RequiredDate": "2024-04-27T00:00:00Z", + "ShippedDate": "2024-03-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 40.42, + "ShipName": "Alfred's Futterkiste", + "ShipAddress": "Obere Str. 57", + "ShipCity": "Berlin", + "ShipRegion": null, + "ShipPostalCode": "12209", + "ShipCountry": "Germany" + }, + { + "OrderID": 10953, + "CustomerID": "AROUT", + "EmployeeID": 9, + "OrderDate": "2024-03-16T00:00:00Z", + "RequiredDate": "2024-03-30T00:00:00Z", + "ShippedDate": "2024-03-25T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 23.72, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 10954, + "CustomerID": "LINOD", + "EmployeeID": 5, + "OrderDate": "2024-03-17T00:00:00Z", + "RequiredDate": "2024-04-28T00:00:00Z", + "ShippedDate": "2024-03-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 27.91, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10955, + "CustomerID": "FOLKO", + "EmployeeID": 8, + "OrderDate": "2024-03-17T00:00:00Z", + "RequiredDate": "2024-04-14T00:00:00Z", + "ShippedDate": "2024-03-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 3.26, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10956, + "CustomerID": "BLAUS", + "EmployeeID": 6, + "OrderDate": "2024-03-17T00:00:00Z", + "RequiredDate": "2024-04-28T00:00:00Z", + "ShippedDate": "2024-03-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 44.65, + "ShipName": "Blauer See Delikatessen", + "ShipAddress": "Forsterstr. 57", + "ShipCity": "Mannheim", + "ShipRegion": null, + "ShipPostalCode": "68306", + "ShipCountry": "Germany" + }, + { + "OrderID": 10957, + "CustomerID": "HILAA", + "EmployeeID": 8, + "OrderDate": "2024-03-18T00:00:00Z", + "RequiredDate": "2024-04-15T00:00:00Z", + "ShippedDate": "2024-03-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 105.36, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10958, + "CustomerID": "OCEAN", + "EmployeeID": 7, + "OrderDate": "2024-03-18T00:00:00Z", + "RequiredDate": "2024-04-15T00:00:00Z", + "ShippedDate": "2024-03-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 49.56, + "ShipName": "Océano Atlántico Ltda.", + "ShipAddress": "Ing. Gustavo Moncada 8585 Piso 20-A", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10959, + "CustomerID": "GOURL", + "EmployeeID": 6, + "OrderDate": "2024-03-18T00:00:00Z", + "RequiredDate": "2024-04-29T00:00:00Z", + "ShippedDate": "2024-03-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.98, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10960, + "CustomerID": "HILAA", + "EmployeeID": 3, + "OrderDate": "2024-03-19T00:00:00Z", + "RequiredDate": "2024-04-02T00:00:00Z", + "ShippedDate": "2024-04-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 2.08, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10961, + "CustomerID": "QUEEN", + "EmployeeID": 8, + "OrderDate": "2024-03-19T00:00:00Z", + "RequiredDate": "2024-04-16T00:00:00Z", + "ShippedDate": "2024-03-30T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 104.47, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10962, + "CustomerID": "QUICK", + "EmployeeID": 8, + "OrderDate": "2024-03-19T00:00:00Z", + "RequiredDate": "2024-04-16T00:00:00Z", + "ShippedDate": "2024-03-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 275.79, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10963, + "CustomerID": "FURIB", + "EmployeeID": 9, + "OrderDate": "2024-03-19T00:00:00Z", + "RequiredDate": "2024-04-16T00:00:00Z", + "ShippedDate": "2024-03-26T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 2.7, + "ShipName": "Furia Bacalhau e Frutos do Mar", + "ShipAddress": "Jardim das rosas n. 32", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1675", + "ShipCountry": "Portugal" + }, + { + "OrderID": 10964, + "CustomerID": "SPECD", + "EmployeeID": 3, + "OrderDate": "2024-03-20T00:00:00Z", + "RequiredDate": "2024-04-17T00:00:00Z", + "ShippedDate": "2024-03-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 87.38, + "ShipName": "Spécialités du monde", + "ShipAddress": "25, rue Lauriston", + "ShipCity": "Paris", + "ShipRegion": null, + "ShipPostalCode": "75016", + "ShipCountry": "France" + }, + { + "OrderID": 10965, + "CustomerID": "OLDWO", + "EmployeeID": 6, + "OrderDate": "2024-03-20T00:00:00Z", + "RequiredDate": "2024-04-17T00:00:00Z", + "ShippedDate": "2024-03-30T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 144.38, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 10966, + "CustomerID": "CHOPS", + "EmployeeID": 4, + "OrderDate": "2024-03-20T00:00:00Z", + "RequiredDate": "2024-04-17T00:00:00Z", + "ShippedDate": "2024-04-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 27.19, + "ShipName": "Chop-suey Chinese", + "ShipAddress": "Hauptstr. 31", + "ShipCity": "Bern", + "ShipRegion": null, + "ShipPostalCode": "3012", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 10967, + "CustomerID": "TOMSP", + "EmployeeID": 2, + "OrderDate": "2024-03-23T00:00:00Z", + "RequiredDate": "2024-04-20T00:00:00Z", + "ShippedDate": "2024-04-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 62.22, + "ShipName": "Toms Spezialitäten", + "ShipAddress": "Luisenstr. 48", + "ShipCity": "Münster", + "ShipRegion": null, + "ShipPostalCode": "44087", + "ShipCountry": "Germany" + }, + { + "OrderID": 10968, + "CustomerID": "ERNSH", + "EmployeeID": 1, + "OrderDate": "2024-03-23T00:00:00Z", + "RequiredDate": "2024-04-20T00:00:00Z", + "ShippedDate": "2024-04-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 74.6, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10969, + "CustomerID": "COMMI", + "EmployeeID": 1, + "OrderDate": "2024-03-23T00:00:00Z", + "RequiredDate": "2024-04-20T00:00:00Z", + "ShippedDate": "2024-03-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 0.21, + "ShipName": "Comércio Mineiro", + "ShipAddress": "Av. dos Lusíadas, 23", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05432-043", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10970, + "CustomerID": "BOLID", + "EmployeeID": 9, + "OrderDate": "2024-03-24T00:00:00Z", + "RequiredDate": "2024-04-07T00:00:00Z", + "ShippedDate": "2024-04-24T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 16.16, + "ShipName": "Bólido Comidas preparadas", + "ShipAddress": "C/ Araquil, 67", + "ShipCity": "Madrid", + "ShipRegion": null, + "ShipPostalCode": "28023", + "ShipCountry": "Spain" + }, + { + "OrderID": 10971, + "CustomerID": "FRANR", + "EmployeeID": 2, + "OrderDate": "2024-03-24T00:00:00Z", + "RequiredDate": "2024-04-21T00:00:00Z", + "ShippedDate": "2024-04-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 121.82, + "ShipName": "France restauration", + "ShipAddress": "54, rue Royale", + "ShipCity": "Nantes", + "ShipRegion": null, + "ShipPostalCode": "44000", + "ShipCountry": "France" + }, + { + "OrderID": 10972, + "CustomerID": "LACOR", + "EmployeeID": 4, + "OrderDate": "2024-03-24T00:00:00Z", + "RequiredDate": "2024-04-21T00:00:00Z", + "ShippedDate": "2024-03-26T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 0.02, + "ShipName": "La corne d'abondance", + "ShipAddress": "67, avenue de l'Europe", + "ShipCity": "Versailles", + "ShipRegion": null, + "ShipPostalCode": "78000", + "ShipCountry": "France" + }, + { + "OrderID": 10973, + "CustomerID": "LACOR", + "EmployeeID": 6, + "OrderDate": "2024-03-24T00:00:00Z", + "RequiredDate": "2024-04-21T00:00:00Z", + "ShippedDate": "2024-03-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 15.17, + "ShipName": "La corne d'abondance", + "ShipAddress": "67, avenue de l'Europe", + "ShipCity": "Versailles", + "ShipRegion": null, + "ShipPostalCode": "78000", + "ShipCountry": "France" + }, + { + "OrderID": 10974, + "CustomerID": "SPLIR", + "EmployeeID": 3, + "OrderDate": "2024-03-25T00:00:00Z", + "RequiredDate": "2024-04-08T00:00:00Z", + "ShippedDate": "2024-04-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 12.96, + "ShipName": "Split Rail Beer & Ale", + "ShipAddress": "P.O. Box 555", + "ShipCity": "Lander", + "ShipRegion": "WY", + "ShipPostalCode": "82520", + "ShipCountry": "USA" + }, + { + "OrderID": 10975, + "CustomerID": "BOTTM", + "EmployeeID": 1, + "OrderDate": "2024-03-25T00:00:00Z", + "RequiredDate": "2024-04-22T00:00:00Z", + "ShippedDate": "2024-03-27T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 32.27, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10976, + "CustomerID": "HILAA", + "EmployeeID": 1, + "OrderDate": "2024-03-25T00:00:00Z", + "RequiredDate": "2024-05-06T00:00:00Z", + "ShippedDate": "2024-04-03T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 37.97, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10977, + "CustomerID": "FOLKO", + "EmployeeID": 8, + "OrderDate": "2024-03-26T00:00:00Z", + "RequiredDate": "2024-04-23T00:00:00Z", + "ShippedDate": "2024-04-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 208.5, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10978, + "CustomerID": "MAISD", + "EmployeeID": 9, + "OrderDate": "2024-03-26T00:00:00Z", + "RequiredDate": "2024-04-23T00:00:00Z", + "ShippedDate": "2024-04-23T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 32.82, + "ShipName": "Maison Dewey", + "ShipAddress": "Rue Joseph-Bens 532", + "ShipCity": "Bruxelles", + "ShipRegion": null, + "ShipPostalCode": "B-1180", + "ShipCountry": "Belgium" + }, + { + "OrderID": 10979, + "CustomerID": "ERNSH", + "EmployeeID": 8, + "OrderDate": "2024-03-26T00:00:00Z", + "RequiredDate": "2024-04-23T00:00:00Z", + "ShippedDate": "2024-03-31T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 353.07, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10980, + "CustomerID": "FOLKO", + "EmployeeID": 4, + "OrderDate": "2024-03-27T00:00:00Z", + "RequiredDate": "2024-05-08T00:00:00Z", + "ShippedDate": "2024-04-17T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 1.26, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10981, + "CustomerID": "HANAR", + "EmployeeID": 1, + "OrderDate": "2024-03-27T00:00:00Z", + "RequiredDate": "2024-04-24T00:00:00Z", + "ShippedDate": "2024-04-02T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 193.37, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10982, + "CustomerID": "BOTTM", + "EmployeeID": 2, + "OrderDate": "2024-03-27T00:00:00Z", + "RequiredDate": "2024-04-24T00:00:00Z", + "ShippedDate": "2024-04-08T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 14.01, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 10983, + "CustomerID": "SAVEA", + "EmployeeID": 2, + "OrderDate": "2024-03-27T00:00:00Z", + "RequiredDate": "2024-04-24T00:00:00Z", + "ShippedDate": "2024-04-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 657.54, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10984, + "CustomerID": "SAVEA", + "EmployeeID": 1, + "OrderDate": "2024-03-30T00:00:00Z", + "RequiredDate": "2024-04-27T00:00:00Z", + "ShippedDate": "2024-04-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 211.22, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 10985, + "CustomerID": "HUNGO", + "EmployeeID": 2, + "OrderDate": "2024-03-30T00:00:00Z", + "RequiredDate": "2024-04-27T00:00:00Z", + "ShippedDate": "2024-04-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 91.51, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 10986, + "CustomerID": "OCEAN", + "EmployeeID": 8, + "OrderDate": "2024-03-30T00:00:00Z", + "RequiredDate": "2024-04-27T00:00:00Z", + "ShippedDate": "2024-04-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 217.86, + "ShipName": "Océano Atlántico Ltda.", + "ShipAddress": "Ing. Gustavo Moncada 8585 Piso 20-A", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 10987, + "CustomerID": "EASTC", + "EmployeeID": 8, + "OrderDate": "2024-03-31T00:00:00Z", + "RequiredDate": "2024-04-28T00:00:00Z", + "ShippedDate": "2024-04-06T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 185.48, + "ShipName": "Eastern Connection", + "ShipAddress": "35 King George", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX3 6FW", + "ShipCountry": "UK" + }, + { + "OrderID": 10988, + "CustomerID": "RATTC", + "EmployeeID": 3, + "OrderDate": "2024-03-31T00:00:00Z", + "RequiredDate": "2024-04-28T00:00:00Z", + "ShippedDate": "2024-04-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 61.14, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 10989, + "CustomerID": "QUEDE", + "EmployeeID": 2, + "OrderDate": "2024-03-31T00:00:00Z", + "RequiredDate": "2024-04-28T00:00:00Z", + "ShippedDate": "2024-04-02T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 34.76, + "ShipName": "Que Delícia", + "ShipAddress": "Rua da Panificadora, 12", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-673", + "ShipCountry": "Brazil" + }, + { + "OrderID": 10990, + "CustomerID": "ERNSH", + "EmployeeID": 2, + "OrderDate": "2024-04-01T00:00:00Z", + "RequiredDate": "2024-05-13T00:00:00Z", + "ShippedDate": "2024-04-07T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 117.61, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 10991, + "CustomerID": "QUICK", + "EmployeeID": 1, + "OrderDate": "2024-04-01T00:00:00Z", + "RequiredDate": "2024-04-29T00:00:00Z", + "ShippedDate": "2024-04-07T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 38.51, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10992, + "CustomerID": "THEBI", + "EmployeeID": 1, + "OrderDate": "2024-04-01T00:00:00Z", + "RequiredDate": "2024-04-29T00:00:00Z", + "ShippedDate": "2024-04-03T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.27, + "ShipName": "The Big Cheese", + "ShipAddress": "89 Jefferson Way Suite 2", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97201", + "ShipCountry": "USA" + }, + { + "OrderID": 10993, + "CustomerID": "FOLKO", + "EmployeeID": 7, + "OrderDate": "2024-04-01T00:00:00Z", + "RequiredDate": "2024-04-29T00:00:00Z", + "ShippedDate": "2024-04-10T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 8.81, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 10994, + "CustomerID": "VAFFE", + "EmployeeID": 2, + "OrderDate": "2024-04-02T00:00:00Z", + "RequiredDate": "2024-04-16T00:00:00Z", + "ShippedDate": "2024-04-09T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 65.53, + "ShipName": "Vaffeljernet", + "ShipAddress": "Smagsloget 45", + "ShipCity": "Århus", + "ShipRegion": null, + "ShipPostalCode": "8200", + "ShipCountry": "Denmark" + }, + { + "OrderID": 10995, + "CustomerID": "PERIC", + "EmployeeID": 1, + "OrderDate": "2024-04-02T00:00:00Z", + "RequiredDate": "2024-04-30T00:00:00Z", + "ShippedDate": "2024-04-06T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 46, + "ShipName": "Pericles Comidas clásicas", + "ShipAddress": "Calle Dr. Jorge Cash 321", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 10996, + "CustomerID": "QUICK", + "EmployeeID": 4, + "OrderDate": "2024-04-02T00:00:00Z", + "RequiredDate": "2024-04-30T00:00:00Z", + "ShippedDate": "2024-04-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 1.12, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 10997, + "CustomerID": "LILAS", + "EmployeeID": 8, + "OrderDate": "2024-04-03T00:00:00Z", + "RequiredDate": "2024-05-15T00:00:00Z", + "ShippedDate": "2024-04-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 73.91, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 10998, + "CustomerID": "WOLZA", + "EmployeeID": 8, + "OrderDate": "2024-04-03T00:00:00Z", + "RequiredDate": "2024-04-17T00:00:00Z", + "ShippedDate": "2024-04-17T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 20.31, + "ShipName": "Wolski Zajazd", + "ShipAddress": "ul. Filtrowa 68", + "ShipCity": "Warszawa", + "ShipRegion": null, + "ShipPostalCode": "01-012", + "ShipCountry": "Poland" + }, + { + "OrderID": 10999, + "CustomerID": "OTTIK", + "EmployeeID": 6, + "OrderDate": "2024-04-03T00:00:00Z", + "RequiredDate": "2024-05-01T00:00:00Z", + "ShippedDate": "2024-04-10T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 96.35, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 11000, + "CustomerID": "RATTC", + "EmployeeID": 2, + "OrderDate": "2024-04-06T00:00:00Z", + "RequiredDate": "2024-05-04T00:00:00Z", + "ShippedDate": "2024-04-14T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 55.12, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + }, + { + "OrderID": 11001, + "CustomerID": "FOLKO", + "EmployeeID": 2, + "OrderDate": "2024-04-06T00:00:00Z", + "RequiredDate": "2024-05-04T00:00:00Z", + "ShippedDate": "2024-04-14T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 197.3, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 11002, + "CustomerID": "SAVEA", + "EmployeeID": 4, + "OrderDate": "2024-04-06T00:00:00Z", + "RequiredDate": "2024-05-04T00:00:00Z", + "ShippedDate": "2024-04-16T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 141.16, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 11003, + "CustomerID": "THECR", + "EmployeeID": 3, + "OrderDate": "2024-04-06T00:00:00Z", + "RequiredDate": "2024-05-04T00:00:00Z", + "ShippedDate": "2024-04-08T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 14.91, + "ShipName": "The Cracker Box", + "ShipAddress": "55 Grizzly Peak Rd.", + "ShipCity": "Butte", + "ShipRegion": "MT", + "ShipPostalCode": "59801", + "ShipCountry": "USA" + }, + { + "OrderID": 11004, + "CustomerID": "MAISD", + "EmployeeID": 3, + "OrderDate": "2024-04-07T00:00:00Z", + "RequiredDate": "2024-05-05T00:00:00Z", + "ShippedDate": "2024-04-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 44.84, + "ShipName": "Maison Dewey", + "ShipAddress": "Rue Joseph-Bens 532", + "ShipCity": "Bruxelles", + "ShipRegion": null, + "ShipPostalCode": "B-1180", + "ShipCountry": "Belgium" + }, + { + "OrderID": 11005, + "CustomerID": "WILMK", + "EmployeeID": 2, + "OrderDate": "2024-04-07T00:00:00Z", + "RequiredDate": "2024-05-05T00:00:00Z", + "ShippedDate": "2024-04-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.75, + "ShipName": "Wilman Kala", + "ShipAddress": "Keskuskatu 45", + "ShipCity": "Helsinki", + "ShipRegion": null, + "ShipPostalCode": "21240", + "ShipCountry": "Finland" + }, + { + "OrderID": 11006, + "CustomerID": "GREAL", + "EmployeeID": 3, + "OrderDate": "2024-04-07T00:00:00Z", + "RequiredDate": "2024-05-05T00:00:00Z", + "ShippedDate": "2024-04-15T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 25.19, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 11007, + "CustomerID": "PRINI", + "EmployeeID": 8, + "OrderDate": "2024-04-08T00:00:00Z", + "RequiredDate": "2024-05-06T00:00:00Z", + "ShippedDate": "2024-04-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 202.24, + "ShipName": "Princesa Isabel Vinhos", + "ShipAddress": "Estrada da saúde n. 58", + "ShipCity": "Lisboa", + "ShipRegion": null, + "ShipPostalCode": "1756", + "ShipCountry": "Portugal" + }, + { + "OrderID": 11008, + "CustomerID": "ERNSH", + "EmployeeID": 7, + "OrderDate": "2024-04-08T00:00:00Z", + "RequiredDate": "2024-05-06T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 79.46, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 11009, + "CustomerID": "GODOS", + "EmployeeID": 2, + "OrderDate": "2024-04-08T00:00:00Z", + "RequiredDate": "2024-05-06T00:00:00Z", + "ShippedDate": "2024-04-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 59.11, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 11010, + "CustomerID": "REGGC", + "EmployeeID": 2, + "OrderDate": "2024-04-09T00:00:00Z", + "RequiredDate": "2024-05-07T00:00:00Z", + "ShippedDate": "2024-04-21T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 28.71, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 11011, + "CustomerID": "ALFKI", + "EmployeeID": 3, + "OrderDate": "2024-04-09T00:00:00Z", + "RequiredDate": "2024-05-07T00:00:00Z", + "ShippedDate": "2024-04-13T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 1.21, + "ShipName": "Alfred's Futterkiste", + "ShipAddress": "Obere Str. 57", + "ShipCity": "Berlin", + "ShipRegion": null, + "ShipPostalCode": "12209", + "ShipCountry": "Germany" + }, + { + "OrderID": 11012, + "CustomerID": "FRANK", + "EmployeeID": 1, + "OrderDate": "2024-04-09T00:00:00Z", + "RequiredDate": "2024-04-23T00:00:00Z", + "ShippedDate": "2024-04-17T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 242.95, + "ShipName": "Frankenversand", + "ShipAddress": "Berliner Platz 43", + "ShipCity": "München", + "ShipRegion": null, + "ShipPostalCode": "80805", + "ShipCountry": "Germany" + }, + { + "OrderID": 11013, + "CustomerID": "ROMEY", + "EmployeeID": 2, + "OrderDate": "2024-04-09T00:00:00Z", + "RequiredDate": "2024-05-07T00:00:00Z", + "ShippedDate": "2024-04-10T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 32.99, + "ShipName": "Romero y tomillo", + "ShipAddress": "Gran Vía, 1", + "ShipCity": "Madrid", + "ShipRegion": null, + "ShipPostalCode": "28001", + "ShipCountry": "Spain" + }, + { + "OrderID": 11014, + "CustomerID": "LINOD", + "EmployeeID": 2, + "OrderDate": "2024-04-10T00:00:00Z", + "RequiredDate": "2024-05-08T00:00:00Z", + "ShippedDate": "2024-04-15T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 23.6, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 11015, + "CustomerID": "SANTG", + "EmployeeID": 2, + "OrderDate": "2024-04-10T00:00:00Z", + "RequiredDate": "2024-04-24T00:00:00Z", + "ShippedDate": "2024-04-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 4.62, + "ShipName": "Santé Gourmet", + "ShipAddress": "Erling Skakkes gate 78", + "ShipCity": "Stavern", + "ShipRegion": null, + "ShipPostalCode": "4110", + "ShipCountry": "Norway" + }, + { + "OrderID": 11016, + "CustomerID": "AROUT", + "EmployeeID": 9, + "OrderDate": "2024-04-10T00:00:00Z", + "RequiredDate": "2024-05-08T00:00:00Z", + "ShippedDate": "2024-04-13T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 33.8, + "ShipName": "Around the Horn", + "ShipAddress": "Brook Farm Stratford St. Mary", + "ShipCity": "Colchester", + "ShipRegion": "Essex", + "ShipPostalCode": "CO7 6JX", + "ShipCountry": "UK" + }, + { + "OrderID": 11017, + "CustomerID": "ERNSH", + "EmployeeID": 9, + "OrderDate": "2024-04-13T00:00:00Z", + "RequiredDate": "2024-05-11T00:00:00Z", + "ShippedDate": "2024-04-20T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 754.26, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 11018, + "CustomerID": "LONEP", + "EmployeeID": 4, + "OrderDate": "2024-04-13T00:00:00Z", + "RequiredDate": "2024-05-11T00:00:00Z", + "ShippedDate": "2024-04-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 11.65, + "ShipName": "Lonesome Pine Restaurant", + "ShipAddress": "89 Chiaroscuro Rd.", + "ShipCity": "Portland", + "ShipRegion": "OR", + "ShipPostalCode": "97219", + "ShipCountry": "USA" + }, + { + "OrderID": 11019, + "CustomerID": "RANCH", + "EmployeeID": 6, + "OrderDate": "2024-04-13T00:00:00Z", + "RequiredDate": "2024-05-11T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 3.17, + "ShipName": "Rancho grande", + "ShipAddress": "Av. del Libertador 900", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 11020, + "CustomerID": "OTTIK", + "EmployeeID": 2, + "OrderDate": "2024-04-14T00:00:00Z", + "RequiredDate": "2024-05-12T00:00:00Z", + "ShippedDate": "2024-04-16T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 43.3, + "ShipName": "Ottilies Käseladen", + "ShipAddress": "Mehrheimerstr. 369", + "ShipCity": "Köln", + "ShipRegion": null, + "ShipPostalCode": "50739", + "ShipCountry": "Germany" + }, + { + "OrderID": 11021, + "CustomerID": "QUICK", + "EmployeeID": 3, + "OrderDate": "2024-04-14T00:00:00Z", + "RequiredDate": "2024-05-12T00:00:00Z", + "ShippedDate": "2024-04-21T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 297.18, + "ShipName": "QUICK-Stop", + "ShipAddress": "Taucherstraße 10", + "ShipCity": "Cunewalde", + "ShipRegion": null, + "ShipPostalCode": "01307", + "ShipCountry": "Germany" + }, + { + "OrderID": 11022, + "CustomerID": "HANAR", + "EmployeeID": 9, + "OrderDate": "2024-04-14T00:00:00Z", + "RequiredDate": "2024-05-12T00:00:00Z", + "ShippedDate": "2024-05-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 6.27, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 11023, + "CustomerID": "BSBEV", + "EmployeeID": 1, + "OrderDate": "2024-04-14T00:00:00Z", + "RequiredDate": "2024-04-28T00:00:00Z", + "ShippedDate": "2024-04-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 123.83, + "ShipName": "B's Beverages", + "ShipAddress": "Fauntleroy Circus", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "EC2 5NT", + "ShipCountry": "UK" + }, + { + "OrderID": 11024, + "CustomerID": "EASTC", + "EmployeeID": 4, + "OrderDate": "2024-04-15T00:00:00Z", + "RequiredDate": "2024-05-13T00:00:00Z", + "ShippedDate": "2024-04-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 74.36, + "ShipName": "Eastern Connection", + "ShipAddress": "35 King George", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX3 6FW", + "ShipCountry": "UK" + }, + { + "OrderID": 11025, + "CustomerID": "WARTH", + "EmployeeID": 6, + "OrderDate": "2024-04-15T00:00:00Z", + "RequiredDate": "2024-05-13T00:00:00Z", + "ShippedDate": "2024-04-24T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 29.17, + "ShipName": "Wartian Herkku", + "ShipAddress": "Torikatu 38", + "ShipCity": "Oulu", + "ShipRegion": null, + "ShipPostalCode": "90110", + "ShipCountry": "Finland" + }, + { + "OrderID": 11026, + "CustomerID": "FRANS", + "EmployeeID": 4, + "OrderDate": "2024-04-15T00:00:00Z", + "RequiredDate": "2024-05-13T00:00:00Z", + "ShippedDate": "2024-04-28T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 47.09, + "ShipName": "Franchi S.p.A.", + "ShipAddress": "Via Monte Bianco 34", + "ShipCity": "Torino", + "ShipRegion": null, + "ShipPostalCode": "10100", + "ShipCountry": "Italy" + }, + { + "OrderID": 11027, + "CustomerID": "BOTTM", + "EmployeeID": 1, + "OrderDate": "2024-04-16T00:00:00Z", + "RequiredDate": "2024-05-14T00:00:00Z", + "ShippedDate": "2024-04-20T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 52.52, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 11028, + "CustomerID": "KOENE", + "EmployeeID": 2, + "OrderDate": "2024-04-16T00:00:00Z", + "RequiredDate": "2024-05-14T00:00:00Z", + "ShippedDate": "2024-04-22T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 29.59, + "ShipName": "Königlich Essen", + "ShipAddress": "Maubelstr. 90", + "ShipCity": "Brandenburg", + "ShipRegion": null, + "ShipPostalCode": "14776", + "ShipCountry": "Germany" + }, + { + "OrderID": 11029, + "CustomerID": "CHOPS", + "EmployeeID": 4, + "OrderDate": "2024-04-16T00:00:00Z", + "RequiredDate": "2024-05-14T00:00:00Z", + "ShippedDate": "2024-04-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 47.84, + "ShipName": "Chop-suey Chinese", + "ShipAddress": "Hauptstr. 31", + "ShipCity": "Bern", + "ShipRegion": null, + "ShipPostalCode": "3012", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 11030, + "CustomerID": "SAVEA", + "EmployeeID": 7, + "OrderDate": "2024-04-17T00:00:00Z", + "RequiredDate": "2024-05-15T00:00:00Z", + "ShippedDate": "2024-04-27T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 830.75, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 11031, + "CustomerID": "SAVEA", + "EmployeeID": 6, + "OrderDate": "2024-04-17T00:00:00Z", + "RequiredDate": "2024-05-15T00:00:00Z", + "ShippedDate": "2024-04-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 227.22, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 11032, + "CustomerID": "WHITC", + "EmployeeID": 2, + "OrderDate": "2024-04-17T00:00:00Z", + "RequiredDate": "2024-05-15T00:00:00Z", + "ShippedDate": "2024-04-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 606.19, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 11033, + "CustomerID": "RICSU", + "EmployeeID": 7, + "OrderDate": "2024-04-17T00:00:00Z", + "RequiredDate": "2024-05-15T00:00:00Z", + "ShippedDate": "2024-04-23T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 84.74, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 11034, + "CustomerID": "OLDWO", + "EmployeeID": 8, + "OrderDate": "2024-04-20T00:00:00Z", + "RequiredDate": "2024-06-01T00:00:00Z", + "ShippedDate": "2024-04-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 40.32, + "ShipName": "Old World Delicatessen", + "ShipAddress": "2743 Bering St.", + "ShipCity": "Anchorage", + "ShipRegion": "AK", + "ShipPostalCode": "99508", + "ShipCountry": "USA" + }, + { + "OrderID": 11035, + "CustomerID": "SUPRD", + "EmployeeID": 2, + "OrderDate": "2024-04-20T00:00:00Z", + "RequiredDate": "2024-05-18T00:00:00Z", + "ShippedDate": "2024-04-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 0.17, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 11036, + "CustomerID": "DRACD", + "EmployeeID": 8, + "OrderDate": "2024-04-20T00:00:00Z", + "RequiredDate": "2024-05-18T00:00:00Z", + "ShippedDate": "2024-04-22T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 149.47, + "ShipName": "Drachenblut Delikatessen", + "ShipAddress": "Walserweg 21", + "ShipCity": "Aachen", + "ShipRegion": null, + "ShipPostalCode": "52066", + "ShipCountry": "Germany" + }, + { + "OrderID": 11037, + "CustomerID": "GODOS", + "EmployeeID": 7, + "OrderDate": "2024-04-21T00:00:00Z", + "RequiredDate": "2024-05-19T00:00:00Z", + "ShippedDate": "2024-04-27T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 3.2, + "ShipName": "Godos Cocina Típica", + "ShipAddress": "C/ Romero, 33", + "ShipCity": "Sevilla", + "ShipRegion": null, + "ShipPostalCode": "41101", + "ShipCountry": "Spain" + }, + { + "OrderID": 11038, + "CustomerID": "SUPRD", + "EmployeeID": 1, + "OrderDate": "2024-04-21T00:00:00Z", + "RequiredDate": "2024-05-19T00:00:00Z", + "ShippedDate": "2024-04-30T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 29.59, + "ShipName": "Suprêmes délices", + "ShipAddress": "Boulevard Tirou, 255", + "ShipCity": "Charleroi", + "ShipRegion": null, + "ShipPostalCode": "B-6000", + "ShipCountry": "Belgium" + }, + { + "OrderID": 11039, + "CustomerID": "LINOD", + "EmployeeID": 1, + "OrderDate": "2024-04-21T00:00:00Z", + "RequiredDate": "2024-05-19T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 65, + "ShipName": "LINO-Delicateses", + "ShipAddress": "Ave. 5 de Mayo Porlamar", + "ShipCity": "I. de Margarita", + "ShipRegion": "Nueva Esparta", + "ShipPostalCode": "4980", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 11040, + "CustomerID": "GREAL", + "EmployeeID": 4, + "OrderDate": "2024-04-22T00:00:00Z", + "RequiredDate": "2024-05-20T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 18.84, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 11041, + "CustomerID": "CHOPS", + "EmployeeID": 3, + "OrderDate": "2024-04-22T00:00:00Z", + "RequiredDate": "2024-05-20T00:00:00Z", + "ShippedDate": "2024-04-28T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 48.22, + "ShipName": "Chop-suey Chinese", + "ShipAddress": "Hauptstr. 31", + "ShipCity": "Bern", + "ShipRegion": null, + "ShipPostalCode": "3012", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 11042, + "CustomerID": "COMMI", + "EmployeeID": 2, + "OrderDate": "2024-04-22T00:00:00Z", + "RequiredDate": "2024-05-06T00:00:00Z", + "ShippedDate": "2024-05-01T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 29.99, + "ShipName": "Comércio Mineiro", + "ShipAddress": "Av. dos Lusíadas, 23", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05432-043", + "ShipCountry": "Brazil" + }, + { + "OrderID": 11043, + "CustomerID": "SPECD", + "EmployeeID": 5, + "OrderDate": "2024-04-22T00:00:00Z", + "RequiredDate": "2024-05-20T00:00:00Z", + "ShippedDate": "2024-04-29T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 8.8, + "ShipName": "Spécialités du monde", + "ShipAddress": "25, rue Lauriston", + "ShipCity": "Paris", + "ShipRegion": null, + "ShipPostalCode": "75016", + "ShipCountry": "France" + }, + { + "OrderID": 11044, + "CustomerID": "WOLZA", + "EmployeeID": 4, + "OrderDate": "2024-04-23T00:00:00Z", + "RequiredDate": "2024-05-21T00:00:00Z", + "ShippedDate": "2024-05-01T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 8.72, + "ShipName": "Wolski Zajazd", + "ShipAddress": "ul. Filtrowa 68", + "ShipCity": "Warszawa", + "ShipRegion": null, + "ShipPostalCode": "01-012", + "ShipCountry": "Poland" + }, + { + "OrderID": 11045, + "CustomerID": "BOTTM", + "EmployeeID": 6, + "OrderDate": "2024-04-23T00:00:00Z", + "RequiredDate": "2024-05-21T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 70.58, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 11046, + "CustomerID": "WANDK", + "EmployeeID": 8, + "OrderDate": "2024-04-23T00:00:00Z", + "RequiredDate": "2024-05-21T00:00:00Z", + "ShippedDate": "2024-04-24T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 71.64, + "ShipName": "Die Wandernde Kuh", + "ShipAddress": "Adenauerallee 900", + "ShipCity": "Stuttgart", + "ShipRegion": null, + "ShipPostalCode": "70563", + "ShipCountry": "Germany" + }, + { + "OrderID": 11047, + "CustomerID": "EASTC", + "EmployeeID": 7, + "OrderDate": "2024-04-24T00:00:00Z", + "RequiredDate": "2024-05-22T00:00:00Z", + "ShippedDate": "2024-05-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 46.62, + "ShipName": "Eastern Connection", + "ShipAddress": "35 King George", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX3 6FW", + "ShipCountry": "UK" + }, + { + "OrderID": 11048, + "CustomerID": "BOTTM", + "EmployeeID": 7, + "OrderDate": "2024-04-24T00:00:00Z", + "RequiredDate": "2024-05-22T00:00:00Z", + "ShippedDate": "2024-04-30T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 24.12, + "ShipName": "Bottom-Dollar Markets", + "ShipAddress": "23 Tsawassen Blvd.", + "ShipCity": "Tsawassen", + "ShipRegion": "BC", + "ShipPostalCode": "T2F 8M4", + "ShipCountry": "Canada" + }, + { + "OrderID": 11049, + "CustomerID": "GOURL", + "EmployeeID": 3, + "OrderDate": "2024-04-24T00:00:00Z", + "RequiredDate": "2024-05-22T00:00:00Z", + "ShippedDate": "2024-05-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 8.34, + "ShipName": "Gourmet Lanchonetes", + "ShipAddress": "Av. Brasil, 442", + "ShipCity": "Campinas", + "ShipRegion": "SP", + "ShipPostalCode": "04876-786", + "ShipCountry": "Brazil" + }, + { + "OrderID": 11050, + "CustomerID": "FOLKO", + "EmployeeID": 8, + "OrderDate": "2024-04-27T00:00:00Z", + "RequiredDate": "2024-05-25T00:00:00Z", + "ShippedDate": "2024-05-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 59.41, + "ShipName": "Folk och fä HB", + "ShipAddress": "Åkergatan 24", + "ShipCity": "Bräcke", + "ShipRegion": null, + "ShipPostalCode": "S-844 67", + "ShipCountry": "Sweden" + }, + { + "OrderID": 11051, + "CustomerID": "LAMAI", + "EmployeeID": 7, + "OrderDate": "2024-04-27T00:00:00Z", + "RequiredDate": "2024-05-25T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 2.79, + "ShipName": "La maison d'Asie", + "ShipAddress": "1 rue Alsace-Lorraine", + "ShipCity": "Toulouse", + "ShipRegion": null, + "ShipPostalCode": "31000", + "ShipCountry": "France" + }, + { + "OrderID": 11052, + "CustomerID": "HANAR", + "EmployeeID": 3, + "OrderDate": "2024-04-27T00:00:00Z", + "RequiredDate": "2024-05-25T00:00:00Z", + "ShippedDate": "2024-05-01T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 67.26, + "ShipName": "Hanari Carnes", + "ShipAddress": "Rua do Paço, 67", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "05454-876", + "ShipCountry": "Brazil" + }, + { + "OrderID": 11053, + "CustomerID": "PICCO", + "EmployeeID": 2, + "OrderDate": "2024-04-27T00:00:00Z", + "RequiredDate": "2024-05-25T00:00:00Z", + "ShippedDate": "2024-04-29T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 53.05, + "ShipName": "Piccolo und mehr", + "ShipAddress": "Geislweg 14", + "ShipCity": "Salzburg", + "ShipRegion": null, + "ShipPostalCode": "5020", + "ShipCountry": "Austria" + }, + { + "OrderID": 11054, + "CustomerID": "CACTU", + "EmployeeID": 8, + "OrderDate": "2024-04-28T00:00:00Z", + "RequiredDate": "2024-05-26T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.33, + "ShipName": "Cactus Comidas para llevar", + "ShipAddress": "Cerrito 333", + "ShipCity": "Buenos Aires", + "ShipRegion": null, + "ShipPostalCode": "1010", + "ShipCountry": "Argentina" + }, + { + "OrderID": 11055, + "CustomerID": "HILAA", + "EmployeeID": 7, + "OrderDate": "2024-04-28T00:00:00Z", + "RequiredDate": "2024-05-26T00:00:00Z", + "ShippedDate": "2024-05-05T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 120.92, + "ShipName": "HILARION-Abastos", + "ShipAddress": "Carrera 22 con Ave. Carlos Soublette #8-35", + "ShipCity": "San Cristóbal", + "ShipRegion": "Táchira", + "ShipPostalCode": "5022", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 11056, + "CustomerID": "EASTC", + "EmployeeID": 8, + "OrderDate": "2024-04-28T00:00:00Z", + "RequiredDate": "2024-05-12T00:00:00Z", + "ShippedDate": "2024-05-01T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 278.96, + "ShipName": "Eastern Connection", + "ShipAddress": "35 King George", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "WX3 6FW", + "ShipCountry": "UK" + }, + { + "OrderID": 11057, + "CustomerID": "NORTS", + "EmployeeID": 3, + "OrderDate": "2024-04-29T00:00:00Z", + "RequiredDate": "2024-05-27T00:00:00Z", + "ShippedDate": "2024-05-01T00:00:00Z", + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 4.13, + "ShipName": "North/South", + "ShipAddress": "South House 300 Queensbridge", + "ShipCity": "London", + "ShipRegion": null, + "ShipPostalCode": "SW7 1RZ", + "ShipCountry": "UK" + }, + { + "OrderID": 11058, + "CustomerID": "BLAUS", + "EmployeeID": 9, + "OrderDate": "2024-04-29T00:00:00Z", + "RequiredDate": "2024-05-27T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 31.14, + "ShipName": "Blauer See Delikatessen", + "ShipAddress": "Forsterstr. 57", + "ShipCity": "Mannheim", + "ShipRegion": null, + "ShipPostalCode": "68306", + "ShipCountry": "Germany" + }, + { + "OrderID": 11059, + "CustomerID": "RICAR", + "EmployeeID": 2, + "OrderDate": "2024-04-29T00:00:00Z", + "RequiredDate": "2024-06-10T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 85.8, + "ShipName": "Ricardo Adocicados", + "ShipAddress": "Av. Copacabana, 267", + "ShipCity": "Rio de Janeiro", + "ShipRegion": "RJ", + "ShipPostalCode": "02389-890", + "ShipCountry": "Brazil" + }, + { + "OrderID": 11060, + "CustomerID": "FRANS", + "EmployeeID": 2, + "OrderDate": "2024-04-30T00:00:00Z", + "RequiredDate": "2024-05-28T00:00:00Z", + "ShippedDate": "2024-05-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 10.98, + "ShipName": "Franchi S.p.A.", + "ShipAddress": "Via Monte Bianco 34", + "ShipCity": "Torino", + "ShipRegion": null, + "ShipPostalCode": "10100", + "ShipCountry": "Italy" + }, + { + "OrderID": 11061, + "CustomerID": "GREAL", + "EmployeeID": 4, + "OrderDate": "2024-04-30T00:00:00Z", + "RequiredDate": "2024-06-11T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Federal Shipping", + "ShipperPhone": "(503) 555-8844", + "Freight": 14.01, + "ShipName": "Great Lakes Food Market", + "ShipAddress": "2732 Baker Blvd.", + "ShipCity": "Eugene", + "ShipRegion": "OR", + "ShipPostalCode": "97403", + "ShipCountry": "USA" + }, + { + "OrderID": 11062, + "CustomerID": "REGGC", + "EmployeeID": 4, + "OrderDate": "2024-04-30T00:00:00Z", + "RequiredDate": "2024-05-28T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 29.93, + "ShipName": "Reggiani Caseifici", + "ShipAddress": "Strada Provinciale 124", + "ShipCity": "Reggio Emilia", + "ShipRegion": null, + "ShipPostalCode": "42100", + "ShipCountry": "Italy" + }, + { + "OrderID": 11063, + "CustomerID": "HUNGO", + "EmployeeID": 3, + "OrderDate": "2024-04-30T00:00:00Z", + "RequiredDate": "2024-05-28T00:00:00Z", + "ShippedDate": "2024-05-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 81.73, + "ShipName": "Hungry Owl All-Night Grocers", + "ShipAddress": "8 Johnstown Road", + "ShipCity": "Cork", + "ShipRegion": "Co. Cork", + "ShipPostalCode": null, + "ShipCountry": "Ireland" + }, + { + "OrderID": 11064, + "CustomerID": "SAVEA", + "EmployeeID": 1, + "OrderDate": "2024-05-01T00:00:00Z", + "RequiredDate": "2024-05-29T00:00:00Z", + "ShippedDate": "2024-05-04T00:00:00Z", + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 30.09, + "ShipName": "Save-a-lot Markets", + "ShipAddress": "187 Suffolk Ln.", + "ShipCity": "Boise", + "ShipRegion": "ID", + "ShipPostalCode": "83720", + "ShipCountry": "USA" + }, + { + "OrderID": 11065, + "CustomerID": "LILAS", + "EmployeeID": 8, + "OrderDate": "2024-05-01T00:00:00Z", + "RequiredDate": "2024-05-29T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 12.91, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 11066, + "CustomerID": "WHITC", + "EmployeeID": 7, + "OrderDate": "2024-05-01T00:00:00Z", + "RequiredDate": "2024-05-29T00:00:00Z", + "ShippedDate": "2024-05-04T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 44.72, + "ShipName": "White Clover Markets", + "ShipAddress": "1029 - 12th Ave. S.", + "ShipCity": "Seattle", + "ShipRegion": "WA", + "ShipPostalCode": "98124", + "ShipCountry": "USA" + }, + { + "OrderID": 11067, + "CustomerID": "DRACD", + "EmployeeID": 1, + "OrderDate": "2024-05-04T00:00:00Z", + "RequiredDate": "2024-05-18T00:00:00Z", + "ShippedDate": "2024-05-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 7.98, + "ShipName": "Drachenblut Delikatessen", + "ShipAddress": "Walserweg 21", + "ShipCity": "Aachen", + "ShipRegion": null, + "ShipPostalCode": "52066", + "ShipCountry": "Germany" + }, + { + "OrderID": 11068, + "CustomerID": "QUEEN", + "EmployeeID": 8, + "OrderDate": "2024-05-04T00:00:00Z", + "RequiredDate": "2024-06-01T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 81.75, + "ShipName": "Queen Cozinha", + "ShipAddress": "Alameda dos Canàrios, 891", + "ShipCity": "Sao Paulo", + "ShipRegion": "SP", + "ShipPostalCode": "05487-020", + "ShipCountry": "Brazil" + }, + { + "OrderID": 11069, + "CustomerID": "TORTU", + "EmployeeID": 1, + "OrderDate": "2024-05-04T00:00:00Z", + "RequiredDate": "2024-06-01T00:00:00Z", + "ShippedDate": "2024-05-06T00:00:00Z", + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 15.67, + "ShipName": "Tortuga Restaurante", + "ShipAddress": "Avda. Azteca 123", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 11070, + "CustomerID": "LEHMS", + "EmployeeID": 2, + "OrderDate": "2024-05-05T00:00:00Z", + "RequiredDate": "2024-06-02T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 136, + "ShipName": "Lehmanns Marktstand", + "ShipAddress": "Magazinweg 7", + "ShipCity": "Frankfurt a.M.", + "ShipRegion": null, + "ShipPostalCode": "60528", + "ShipCountry": "Germany" + }, + { + "OrderID": 11071, + "CustomerID": "LILAS", + "EmployeeID": 1, + "OrderDate": "2024-05-05T00:00:00Z", + "RequiredDate": "2024-06-02T00:00:00Z", + "ShippedDate": null, + "ShipVia": "Speedy Express", + "ShipperPhone": "(503) 555-9831", + "Freight": 0.93, + "ShipName": "LILA-Supermercado", + "ShipAddress": "Carrera 52 con Ave. Bolívar #65-98 Llano Largo", + "ShipCity": "Barquisimeto", + "ShipRegion": "Lara", + "ShipPostalCode": "3508", + "ShipCountry": "Venezuela" + }, + { + "OrderID": 11072, + "CustomerID": "ERNSH", + "EmployeeID": 4, + "OrderDate": "2024-05-05T00:00:00Z", + "RequiredDate": "2024-06-02T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 258.64, + "ShipName": "Ernst Handel", + "ShipAddress": "Kirchgasse 6", + "ShipCity": "Graz", + "ShipRegion": null, + "ShipPostalCode": "8010", + "ShipCountry": "Austria" + }, + { + "OrderID": 11073, + "CustomerID": "PERIC", + "EmployeeID": 2, + "OrderDate": "2024-05-05T00:00:00Z", + "RequiredDate": "2024-06-02T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 24.95, + "ShipName": "Pericles Comidas clásicas", + "ShipAddress": "Calle Dr. Jorge Cash 321", + "ShipCity": "México D.F.", + "ShipRegion": null, + "ShipPostalCode": "05033", + "ShipCountry": "Mexico" + }, + { + "OrderID": 11074, + "CustomerID": "SIMOB", + "EmployeeID": 7, + "OrderDate": "2024-05-06T00:00:00Z", + "RequiredDate": "2024-06-03T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 18.44, + "ShipName": "Simons bistro", + "ShipAddress": "Vinbæltet 34", + "ShipCity": "Kobenhavn", + "ShipRegion": null, + "ShipPostalCode": "1734", + "ShipCountry": "Denmark" + }, + { + "OrderID": 11075, + "CustomerID": "RICSU", + "EmployeeID": 8, + "OrderDate": "2024-05-06T00:00:00Z", + "RequiredDate": "2024-06-03T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 6.19, + "ShipName": "Richter Supermarkt", + "ShipAddress": "Starenweg 5", + "ShipCity": "Genève", + "ShipRegion": null, + "ShipPostalCode": "1204", + "ShipCountry": "Switzerland" + }, + { + "OrderID": 11076, + "CustomerID": "BONAP", + "EmployeeID": 4, + "OrderDate": "2024-05-06T00:00:00Z", + "RequiredDate": "2024-06-03T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 38.28, + "ShipName": "Bon app'", + "ShipAddress": "12, rue des Bouchers", + "ShipCity": "Marseille", + "ShipRegion": null, + "ShipPostalCode": "13008", + "ShipCountry": "France" + }, + { + "OrderID": 11077, + "CustomerID": "RATTC", + "EmployeeID": 1, + "OrderDate": "2024-05-06T00:00:00Z", + "RequiredDate": "2024-06-03T00:00:00Z", + "ShippedDate": null, + "ShipVia": "United Package", + "ShipperPhone": "(503) 555-3199", + "Freight": 8.53, + "ShipName": "Rattlesnake Canyon Grocery", + "ShipAddress": "2817 Milton Dr.", + "ShipCity": "Albuquerque", + "ShipRegion": "NM", + "ShipPostalCode": "87110", + "ShipCountry": "USA" + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/scripts/db/Products.json b/samples/msgext-copilot-handoff/ts/scripts/db/Products.json new file mode 100644 index 0000000..a0fb6fe --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/scripts/db/Products.json @@ -0,0 +1,929 @@ +{ + "Products": [ + { + "ProductID": 1, + "ProductName": "Chai", + "ImageUrl": "https://picsum.photos/id/431/200/300", + "SupplierID": 1, + "CategoryID": 1, + "QuantityPerUnit": "10 boxes x 20 bags", + "UnitPrice": 18, + "UnitsInStock": 350, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 2, + "ProductName": "Protein Shake", + "SupplierID": 1, + "CategoryID": 1, + "QuantityPerUnit": "24 - 12 oz bottles", + "UnitPrice": 19, + "UnitsInStock": 17, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 3, + "ProductName": "Aniseed Syrup", + "SupplierID": 1, + "CategoryID": 2, + "QuantityPerUnit": "12 - 550 ml bottles", + "UnitPrice": 10, + "UnitsInStock": 13, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 4, + "ProductName": "Chef Anton's Cajun Seasoning", + "SupplierID": 2, + "CategoryID": 2, + "QuantityPerUnit": "48 - 6 oz jars", + "UnitPrice": 22, + "UnitsInStock": 53, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 5, + "ProductName": "Chef Anton's Gumbo Mix", + "SupplierID": 2, + "CategoryID": 2, + "QuantityPerUnit": "36 boxes", + "UnitPrice": 21.35, + "UnitsInStock": 0, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": true + }, + { + "ProductID": 6, + "ProductName": "Grandma's Boysenberry Spread", + "SupplierID": 3, + "CategoryID": 2, + "QuantityPerUnit": "12 - 8 oz jars", + "UnitPrice": 25, + "UnitsInStock": 120, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 7, + "ProductName": "Uncle Bob's Organic Dried Pears", + "SupplierID": 3, + "CategoryID": 7, + "QuantityPerUnit": "12 - 1 lb pkgs.", + "UnitPrice": 30, + "UnitsInStock": 15, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": false + }, + { + "ProductID": 8, + "ProductName": "Northwoods Cranberry Sauce", + "SupplierID": 3, + "CategoryID": 2, + "QuantityPerUnit": "12 - 12 oz jars", + "UnitPrice": 40, + "UnitsInStock": 6, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 9, + "ProductName": "Mishi Kobe Niku", + "SupplierID": 4, + "CategoryID": 6, + "QuantityPerUnit": "18 - 500 g pkgs.", + "UnitPrice": 97, + "UnitsInStock": 29, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": true + }, + { + "ProductID": 10, + "ProductName": "Ikura", + "SupplierID": 4, + "CategoryID": 8, + "QuantityPerUnit": "12 - 200 ml jars", + "UnitPrice": 31, + "UnitsInStock": 31, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 11, + "ProductName": "Queso Cabrales", + "SupplierID": 5, + "CategoryID": 4, + "QuantityPerUnit": "1 kg pkg.", + "UnitPrice": 21, + "UnitsInStock": 52, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": false + }, + { + "ProductID": 12, + "ProductName": "Queso Manchego La Pastora", + "SupplierID": 5, + "CategoryID": 4, + "QuantityPerUnit": "10 - 500 g pkgs.", + "UnitPrice": 38, + "UnitsInStock": 86, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 13, + "ProductName": "Konbu", + "SupplierID": 6, + "CategoryID": 8, + "QuantityPerUnit": "2 kg box", + "UnitPrice": 6, + "UnitsInStock": 24, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": false + }, + { + "ProductID": 14, + "ProductName": "Tofu", + "SupplierID": 6, + "CategoryID": 7, + "QuantityPerUnit": "40 - 100 g pkgs.", + "UnitPrice": 23.25, + "UnitsInStock": 35, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 15, + "ProductName": "Genen Shouyu", + "SupplierID": 6, + "CategoryID": 2, + "QuantityPerUnit": "24 - 250 ml bottles", + "UnitPrice": 15.5, + "UnitsInStock": 39, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": false + }, + { + "ProductID": 16, + "ProductName": "Pavlova", + "SupplierID": 7, + "CategoryID": 3, + "QuantityPerUnit": "32 - 500 g boxes", + "UnitPrice": 17.45, + "UnitsInStock": 29, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": false + }, + { + "ProductID": 17, + "ProductName": "Alice Mutton", + "SupplierID": 7, + "CategoryID": 6, + "QuantityPerUnit": "20 - 1 kg tins", + "UnitPrice": 39, + "UnitsInStock": 0, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": true + }, + { + "ProductID": 18, + "ProductName": "Carnarvon Tigers", + "SupplierID": 7, + "CategoryID": 8, + "QuantityPerUnit": "16 kg pkg.", + "UnitPrice": 62.5, + "UnitsInStock": 42, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 19, + "ProductName": "Teatime Chocolate Biscuits", + "SupplierID": 8, + "CategoryID": 3, + "QuantityPerUnit": "10 boxes x 12 pieces", + "UnitPrice": 9.2, + "UnitsInStock": 25, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": false + }, + { + "ProductID": 20, + "ProductName": "Sir Rodney's Marmalade", + "SupplierID": 8, + "CategoryID": 3, + "QuantityPerUnit": "30 gift boxes", + "UnitPrice": 81, + "UnitsInStock": 40, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 21, + "ProductName": "Sir Rodney's Scones", + "SupplierID": 8, + "CategoryID": 3, + "QuantityPerUnit": "24 pkgs. x 4 pieces", + "UnitPrice": 10, + "UnitsInStock": 3, + "UnitsOnOrder": 40, + "ReorderLevel": 5, + "Discontinued": false + }, + { + "ProductID": 22, + "ProductName": "Gustaf's Knäckebröd", + "SupplierID": 9, + "CategoryID": 5, + "QuantityPerUnit": "24 - 500 g pkgs.", + "UnitPrice": 21, + "UnitsInStock": 104, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 23, + "ProductName": "Tunnbröd", + "SupplierID": 9, + "CategoryID": 5, + "QuantityPerUnit": "12 - 250 g pkgs.", + "UnitPrice": 9, + "UnitsInStock": 61, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 24, + "ProductName": "Guaraná Fantástica", + "SupplierID": 10, + "CategoryID": 1, + "QuantityPerUnit": "12 - 355 ml cans", + "UnitPrice": 4.5, + "UnitsInStock": 200, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": true + }, + { + "ProductID": 25, + "ProductName": "NuNuCa Nuß-Nougat-Creme", + "SupplierID": 11, + "CategoryID": 3, + "QuantityPerUnit": "20 - 450 g glasses", + "UnitPrice": 14, + "UnitsInStock": 76, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": false + }, + { + "ProductID": 26, + "ProductName": "Gumbär Gummibärchen", + "SupplierID": 11, + "CategoryID": 3, + "QuantityPerUnit": "100 - 250 g bags", + "UnitPrice": 31.23, + "UnitsInStock": 15, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 27, + "ProductName": "Schoggi Schokolade", + "SupplierID": 11, + "CategoryID": 3, + "QuantityPerUnit": "100 - 100 g pieces", + "UnitPrice": 43.9, + "UnitsInStock": 49, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": false + }, + { + "ProductID": 28, + "ProductName": "Rössle Sauerkraut", + "SupplierID": 12, + "CategoryID": 7, + "QuantityPerUnit": "25 - 825 g cans", + "UnitPrice": 45.6, + "UnitsInStock": 26, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": true + }, + { + "ProductID": 29, + "ProductName": "Thuringer Rostbratwurst", + "SupplierID": 12, + "CategoryID": 6, + "QuantityPerUnit": "50 bags x 30 sausgs.", + "UnitPrice": 123.79, + "UnitsInStock": 0, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": true + }, + { + "ProductID": 30, + "ProductName": "Nord-Ost Matjeshering", + "SupplierID": 13, + "CategoryID": 8, + "QuantityPerUnit": "10 - 200 g glasses", + "UnitPrice": 25.89, + "UnitsInStock": 10, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 31, + "ProductName": "Gorgonzola Telino", + "SupplierID": 14, + "CategoryID": 4, + "QuantityPerUnit": "12 - 100 g pkgs", + "UnitPrice": 12.5, + "UnitsInStock": 0, + "UnitsOnOrder": 70, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 32, + "ProductName": "Mascarpone Fabioli", + "SupplierID": 14, + "CategoryID": 4, + "QuantityPerUnit": "24 - 200 g pkgs.", + "UnitPrice": 32, + "UnitsInStock": 9, + "UnitsOnOrder": 40, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 33, + "ProductName": "Geitost", + "SupplierID": 15, + "CategoryID": 4, + "QuantityPerUnit": "500 g", + "UnitPrice": 2.5, + "UnitsInStock": 112, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 34, + "ProductName": "Sasquatch Ale", + "SupplierID": 16, + "CategoryID": 1, + "QuantityPerUnit": "24 - 12 oz bottles", + "UnitPrice": 14, + "UnitsInStock": 111, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 35, + "ProductName": "Steeleye Stout", + "SupplierID": 16, + "CategoryID": 1, + "QuantityPerUnit": "24 - 12 oz bottles", + "UnitPrice": 18, + "UnitsInStock": 183, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 36, + "ProductName": "Inlagd Sill", + "SupplierID": 17, + "CategoryID": 8, + "QuantityPerUnit": "24 - 250 g jars", + "UnitPrice": 19, + "UnitsInStock": 112, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 37, + "ProductName": "Gravad lax", + "SupplierID": 17, + "CategoryID": 8, + "QuantityPerUnit": "12 - 500 g pkgs.", + "UnitPrice": 26, + "UnitsInStock": 11, + "UnitsOnOrder": 50, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 38, + "ProductName": "Cote de Blaye", + "SupplierID": 18, + "CategoryID": 1, + "QuantityPerUnit": "12 - 75 cl bottles", + "UnitPrice": 263.5, + "UnitsInStock": 17, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 39, + "ProductName": "Chartreuse verte", + "SupplierID": 18, + "CategoryID": 1, + "QuantityPerUnit": "750 cc per bottle", + "UnitPrice": 18, + "UnitsInStock": 69, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": false + }, + { + "ProductID": 40, + "ProductName": "Boston Crab Meat", + "SupplierID": 19, + "CategoryID": 8, + "QuantityPerUnit": "24 - 4 oz tins", + "UnitPrice": 18.4, + "UnitsInStock": 123, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": false + }, + { + "ProductID": 41, + "ProductName": "Jack's New England Clam Chowder", + "SupplierID": 19, + "CategoryID": 8, + "QuantityPerUnit": "12 - 12 oz cans", + "UnitPrice": 9.65, + "UnitsInStock": 85, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": false + }, + { + "ProductID": 42, + "ProductName": "Singaporean Hokkien Fried Mee", + "SupplierID": 20, + "CategoryID": 5, + "QuantityPerUnit": "32 - 1 kg pkgs.", + "UnitPrice": 14, + "UnitsInStock": 26, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": true + }, + { + "ProductID": 43, + "ProductName": "Ipoh Coffee", + "SupplierID": 20, + "CategoryID": 1, + "QuantityPerUnit": "16 - 500 g tins", + "UnitPrice": 46, + "UnitsInStock": 17, + "UnitsOnOrder": 10, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 44, + "ProductName": "Gula Malacca", + "SupplierID": 20, + "CategoryID": 2, + "QuantityPerUnit": "20 - 2 kg bags", + "UnitPrice": 19.45, + "UnitsInStock": 27, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 45, + "ProductName": "Rogede sild", + "SupplierID": 21, + "CategoryID": 8, + "QuantityPerUnit": "1k pkg.", + "UnitPrice": 9.5, + "UnitsInStock": 5, + "UnitsOnOrder": 70, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 46, + "ProductName": "Spegesild", + "SupplierID": 21, + "CategoryID": 8, + "QuantityPerUnit": "4 - 450 g glasses", + "UnitPrice": 12, + "UnitsInStock": 95, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 47, + "ProductName": "Zaanse koeken", + "SupplierID": 22, + "CategoryID": 3, + "QuantityPerUnit": "10 - 4 oz boxes", + "UnitPrice": 9.5, + "UnitsInStock": 36, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 48, + "ProductName": "Chocolade", + "SupplierID": 22, + "CategoryID": 3, + "QuantityPerUnit": "10 pkgs.", + "UnitPrice": 12.75, + "UnitsInStock": 15, + "UnitsOnOrder": 70, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 49, + "ProductName": "Maxilaku", + "SupplierID": 23, + "CategoryID": 3, + "QuantityPerUnit": "24 - 50 g pkgs.", + "UnitPrice": 20, + "UnitsInStock": 10, + "UnitsOnOrder": 60, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 50, + "ProductName": "Valkoinen suklaa", + "SupplierID": 23, + "CategoryID": 3, + "QuantityPerUnit": "12 - 100 g bars", + "UnitPrice": 16.25, + "UnitsInStock": 65, + "UnitsOnOrder": 0, + "ReorderLevel": 30, + "Discontinued": false + }, + { + "ProductID": 51, + "ProductName": "Manjimup Dried Apples", + "SupplierID": 24, + "CategoryID": 7, + "QuantityPerUnit": "50 - 300 g pkgs.", + "UnitPrice": 53, + "UnitsInStock": 20, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": false + }, + { + "ProductID": 52, + "ProductName": "Filo Mix", + "SupplierID": 24, + "CategoryID": 5, + "QuantityPerUnit": "16 - 2 kg boxes", + "UnitPrice": 7, + "UnitsInStock": 38, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 53, + "ProductName": "Perth Pasties", + "SupplierID": 24, + "CategoryID": 6, + "QuantityPerUnit": "48 pieces", + "UnitPrice": 32.8, + "UnitsInStock": 0, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": true + }, + { + "ProductID": 54, + "ProductName": "Tourtière", + "SupplierID": 25, + "CategoryID": 6, + "QuantityPerUnit": "16 pies", + "UnitPrice": 7.45, + "UnitsInStock": 21, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": false + }, + { + "ProductID": 55, + "ProductName": "Pâté chinois", + "SupplierID": 25, + "CategoryID": 6, + "QuantityPerUnit": "24 boxes x 2 pies", + "UnitPrice": 24, + "UnitsInStock": 115, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 56, + "ProductName": "Gnocchi di nonna Alice", + "SupplierID": 26, + "CategoryID": 5, + "QuantityPerUnit": "24 - 250 g pkgs.", + "UnitPrice": 38, + "UnitsInStock": 21, + "UnitsOnOrder": 10, + "ReorderLevel": 30, + "Discontinued": false + }, + { + "ProductID": 57, + "ProductName": "Ravioli Angelo", + "SupplierID": 26, + "CategoryID": 5, + "QuantityPerUnit": "24 - 250 g pkgs.", + "UnitPrice": 19.5, + "UnitsInStock": 36, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 58, + "ProductName": "Escargots de Bourgogne", + "SupplierID": 27, + "CategoryID": 8, + "QuantityPerUnit": "24 pieces", + "UnitPrice": 13.25, + "UnitsInStock": 62, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 59, + "ProductName": "Raclette Courdavault", + "SupplierID": 28, + "CategoryID": 4, + "QuantityPerUnit": "5 kg pkg.", + "UnitPrice": 55, + "UnitsInStock": 79, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 60, + "ProductName": "Camembert Pierrot", + "SupplierID": 28, + "CategoryID": 4, + "QuantityPerUnit": "15 - 300 g rounds", + "UnitPrice": 34, + "UnitsInStock": 19, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 61, + "ProductName": "Sirop d'érable", + "SupplierID": 29, + "CategoryID": 2, + "QuantityPerUnit": "24 - 500 ml bottles", + "UnitPrice": 28.5, + "UnitsInStock": 113, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 62, + "ProductName": "Tarte au sucre", + "SupplierID": 29, + "CategoryID": 3, + "QuantityPerUnit": "48 pies", + "UnitPrice": 49.3, + "UnitsInStock": 17, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 63, + "ProductName": "Vegie-spread", + "SupplierID": 7, + "CategoryID": 2, + "QuantityPerUnit": "15 - 625 g jars", + "UnitPrice": 43.9, + "UnitsInStock": 24, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": false + }, + { + "ProductID": 64, + "ProductName": "Wimmers gute Semmelknödel", + "SupplierID": 12, + "CategoryID": 5, + "QuantityPerUnit": "20 bags x 4 pieces", + "UnitPrice": 33.25, + "UnitsInStock": 22, + "UnitsOnOrder": 80, + "ReorderLevel": 30, + "Discontinued": false + }, + { + "ProductID": 65, + "ProductName": "Louisiana Fiery Hot Pepper Sauce", + "SupplierID": 2, + "CategoryID": 2, + "QuantityPerUnit": "32 - 8 oz bottles", + "UnitPrice": 21.05, + "UnitsInStock": 76, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 66, + "ProductName": "Louisiana Hot Spiced Okra", + "SupplierID": 2, + "CategoryID": 2, + "QuantityPerUnit": "24 - 8 oz jars", + "UnitPrice": 17, + "UnitsInStock": 4, + "UnitsOnOrder": 100, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 67, + "ProductName": "Laughing Lumberjack Lager", + "SupplierID": 16, + "CategoryID": 1, + "QuantityPerUnit": "24 - 12 oz bottles", + "UnitPrice": 14, + "UnitsInStock": 52, + "UnitsOnOrder": 0, + "ReorderLevel": 10, + "Discontinued": false + }, + { + "ProductID": 68, + "ProductName": "Scottish Longbreads", + "SupplierID": 8, + "CategoryID": 3, + "QuantityPerUnit": "10 boxes x 8 pieces", + "UnitPrice": 12.5, + "UnitsInStock": 6, + "UnitsOnOrder": 10, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 69, + "ProductName": "Gudbrandsdalsost", + "SupplierID": 15, + "CategoryID": 4, + "QuantityPerUnit": "10 kg pkg.", + "UnitPrice": 36, + "UnitsInStock": 26, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": false + }, + { + "ProductID": 70, + "ProductName": "Outback Lager", + "SupplierID": 7, + "CategoryID": 1, + "QuantityPerUnit": "24 - 355 ml bottles", + "UnitPrice": 15, + "UnitsInStock": 15, + "UnitsOnOrder": 10, + "ReorderLevel": 30, + "Discontinued": false + }, + { + "ProductID": 71, + "ProductName": "Flotemysost", + "SupplierID": 15, + "CategoryID": 4, + "QuantityPerUnit": "10 - 500 g pkgs.", + "UnitPrice": 21.5, + "UnitsInStock": 26, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 72, + "ProductName": "Mozzarella di Giovanni", + "SupplierID": 14, + "CategoryID": 4, + "QuantityPerUnit": "24 - 200 g pkgs.", + "UnitPrice": 34.8, + "UnitsInStock": 14, + "UnitsOnOrder": 35, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 73, + "ProductName": "Röd Kaviar", + "SupplierID": 17, + "CategoryID": 8, + "QuantityPerUnit": "24 - 150 g jars", + "UnitPrice": 15, + "UnitsInStock": 101, + "UnitsOnOrder": 0, + "ReorderLevel": 5, + "Discontinued": false + }, + { + "ProductID": 74, + "ProductName": "Longlife Tofu", + "SupplierID": 4, + "CategoryID": 7, + "QuantityPerUnit": "5 kg pkg.", + "UnitPrice": 10, + "UnitsInStock": 4, + "UnitsOnOrder": 20, + "ReorderLevel": 5, + "Discontinued": false + }, + { + "ProductID": 75, + "ProductName": "Rhönbräu Klosterbier", + "SupplierID": 12, + "CategoryID": 1, + "QuantityPerUnit": "24 - 0.5 l bottles", + "UnitPrice": 7.75, + "UnitsInStock": 27, + "UnitsOnOrder": 0, + "ReorderLevel": 25, + "Discontinued": false + }, + { + "ProductID": 76, + "ProductName": "Lakkalikööri", + "SupplierID": 23, + "CategoryID": 1, + "QuantityPerUnit": "500 ml", + "UnitPrice": 18, + "UnitsInStock": 57, + "UnitsOnOrder": 0, + "ReorderLevel": 20, + "Discontinued": false + }, + { + "ProductID": 77, + "ProductName": "Original Frankfurter grüne Soße", + "SupplierID": 12, + "CategoryID": 2, + "QuantityPerUnit": "12 boxes", + "UnitPrice": 13, + "UnitsInStock": 32, + "UnitsOnOrder": 0, + "ReorderLevel": 15, + "Discontinued": false + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/scripts/db/Suppliers.json b/samples/msgext-copilot-handoff/ts/scripts/db/Suppliers.json new file mode 100644 index 0000000..b25854b --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/scripts/db/Suppliers.json @@ -0,0 +1,410 @@ +{ + "Suppliers": [ + { + "SupplierID": 1, + "CompanyName": "Contoso Beverage Company", + "ContactName": "Charlotte Cooper", + "ContactTitle": "Purchasing Manager", + "Address": "49 Gilbert St.", + "City": "London", + "Region": null, + "PostalCode": "EC1 4SD", + "Country": "UK", + "Phone": "(171) 555-2222", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 2, + "CompanyName": "New Orleans Cajun Delights", + "ContactName": "Shelley Burke", + "ContactTitle": "Order Administrator", + "Address": "P.O. Box 78934", + "City": "New Orleans", + "Region": "LA", + "PostalCode": "70117", + "Country": "USA", + "Phone": "(100) 555-4822", + "Fax": null, + "HomePage": "#CAJUN.HTM#" + }, + { + "SupplierID": 3, + "CompanyName": "Grandma Kelly's Homestead", + "ContactName": "Regina Murphy", + "ContactTitle": "Sales Representative", + "Address": "707 Oxford Rd.", + "City": "London", + "Region": null, + "PostalCode": "EC1 4SD", + "Country": "UK", + "Phone": "(171) 555-3333", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 4, + "CompanyName": "Tokyo Traders", + "ContactName": "Yoshi Nagase", + "ContactTitle": "Marketing Manager", + "Address": "9-8 Sekimai Musashino-shi", + "City": "Tokyo", + "Region": null, + "PostalCode": "100", + "Country": "Japan", + "Phone": "(03) 3555-5011", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 5, + "CompanyName": "Cooperativa de Quesos 'Las Cabras'", + "ContactName": "Antonio del Valle Saavedra", + "ContactTitle": "Export Administrator", + "Address": "Calle del Rosal 4", + "City": "Oviedo", + "Region": "Asturias", + "PostalCode": "33007", + "Country": "Spain", + "Phone": "(98) 598 76 54", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 6, + "CompanyName": "Mayumi's", + "ContactName": "Mayumi Ohno", + "ContactTitle": "Marketing Representative", + "Address": "92 Setsuko Chuo-ku", + "City": "Osaka", + "Region": null, + "PostalCode": "545", + "Country": "Japan", + "Phone": "(06) 431-7877", + "Fax": null, + "HomePage": "Mayumi's (on the World Wide Web)#http://www.microsoft.com/accessdev/sampleapps/mayumi.htm#" + }, + { + "SupplierID": 7, + "CompanyName": "Pavlova, Ltd.", + "ContactName": "Ian Devling", + "ContactTitle": "Marketing Manager", + "Address": "74 Rose St. Moonie Ponds", + "City": "Melbourne", + "Region": "Victoria", + "PostalCode": "3058", + "Country": "Australia", + "Phone": "(03) 444-2343", + "Fax": "(03) 444-6588", + "HomePage": null + }, + { + "SupplierID": 8, + "CompanyName": "Specialty Biscuits, Ltd.", + "ContactName": "Peter Wilson", + "ContactTitle": "Sales Representative", + "Address": "29 King's Way", + "City": "Manchester", + "Region": null, + "PostalCode": "M14 GSD", + "Country": "UK", + "Phone": "(161) 555-4448", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 9, + "CompanyName": "PB Knäckebröd AB", + "ContactName": "Lars Peterson", + "ContactTitle": "Sales Agent", + "Address": "Kaloadagatan 13", + "City": "Göteborg", + "Region": null, + "PostalCode": "S-345 67", + "Country": "Sweden", + "Phone": "031-987 65 43", + "Fax": "031-987 65 91", + "HomePage": null + }, + { + "SupplierID": 10, + "CompanyName": "Refrescos Americanas LTDA", + "ContactName": "Carlos Diaz", + "ContactTitle": "Marketing Manager", + "Address": "Av. das Americanas 12.890", + "City": "Sao Paulo", + "Region": null, + "PostalCode": "5442", + "Country": "Brazil", + "Phone": "(11) 555 4640", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 11, + "CompanyName": "Heli Süßwaren GmbH & Co. KG", + "ContactName": "Petra Winkler", + "ContactTitle": "Sales Manager", + "Address": "Tiergartenstraße 5", + "City": "Berlin", + "Region": null, + "PostalCode": "10785", + "Country": "Germany", + "Phone": "(010) 9984510", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 12, + "CompanyName": "Plutzer Lebensmittelgroßmärkte AG", + "ContactName": "Martin Bein", + "ContactTitle": "International Marketing Mgr.", + "Address": "Bogenallee 51", + "City": "Frankfurt", + "Region": null, + "PostalCode": "60439", + "Country": "Germany", + "Phone": "(069) 992755", + "Fax": null, + "HomePage": "Plutzer (on the World Wide Web)#http://www.microsoft.com/accessdev/sampleapps/plutzer.htm#" + }, + { + "SupplierID": 13, + "CompanyName": "Nord-Ost-Fisch Handelsgesellschaft mbH", + "ContactName": "Sven Petersen", + "ContactTitle": "Coordinator Foreign Markets", + "Address": "Frahmredder 112a", + "City": "Cuxhaven", + "Region": null, + "PostalCode": "27478", + "Country": "Germany", + "Phone": "(04721) 8713", + "Fax": "(04721) 8714", + "HomePage": null + }, + { + "SupplierID": 14, + "CompanyName": "Formaggi Fortini s.r.l.", + "ContactName": "Elio Rossi", + "ContactTitle": "Sales Representative", + "Address": "Viale Dante, 75", + "City": "Ravenna", + "Region": null, + "PostalCode": "48100", + "Country": "Italy", + "Phone": "(0544) 60323", + "Fax": "(0544) 60603", + "HomePage": "#FORMAGGI.HTM#" + }, + { + "SupplierID": 15, + "CompanyName": "Norske Meierier", + "ContactName": "Beate Vileid", + "ContactTitle": "Marketing Manager", + "Address": "Hatlevegen 5", + "City": "Sandvika", + "Region": null, + "PostalCode": "1320", + "Country": "Norway", + "Phone": "(0)2-953010", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 16, + "CompanyName": "Bigfoot Breweries", + "ContactName": "Cheryl Saylor", + "ContactTitle": "Regional Account Rep.", + "Address": "3400 - 8th Avenue Suite 210", + "City": "Bend", + "Region": "OR", + "PostalCode": "97101", + "Country": "USA", + "Phone": "(503) 555-9931", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 17, + "CompanyName": "Svensk Sjöföda AB", + "ContactName": "Michael Björn", + "ContactTitle": "Sales Representative", + "Address": "Brovallavägen 231", + "City": "Stockholm", + "Region": null, + "PostalCode": "S-123 45", + "Country": "Sweden", + "Phone": "08-123 45 67", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 18, + "CompanyName": "Aux joyeux ecclésiastiques", + "ContactName": "Guylène Nodier", + "ContactTitle": "Sales Manager", + "Address": "203, Rue des Francs-Bourgeois", + "City": "Paris", + "Region": null, + "PostalCode": "75004", + "Country": "France", + "Phone": "(1) 03.83.00.68", + "Fax": "(1) 03.83.00.62", + "HomePage": null + }, + { + "SupplierID": 19, + "CompanyName": "New England Seafood Cannery", + "ContactName": "Robb Merchant", + "ContactTitle": "Wholesale Account Agent", + "Address": "Order Processing Dept. 2100 Paul Revere Blvd.", + "City": "Boston", + "Region": "MA", + "PostalCode": "02134", + "Country": "USA", + "Phone": "(617) 555-3267", + "Fax": "(617) 555-3389", + "HomePage": null + }, + { + "SupplierID": 20, + "CompanyName": "Leka Trading", + "ContactName": "Chandra Leka", + "ContactTitle": "Owner", + "Address": "471 Serangoon Loop, Suite #402", + "City": "Singapore", + "Region": null, + "PostalCode": "0512", + "Country": "Singapore", + "Phone": "555-8787", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 21, + "CompanyName": "Lyngbysild", + "ContactName": "Niels Petersen", + "ContactTitle": "Sales Manager", + "Address": "Lyngbysild Fiskebakken 10", + "City": "Lyngby", + "Region": null, + "PostalCode": "2800", + "Country": "Denmark", + "Phone": "43844108", + "Fax": "43844115", + "HomePage": null + }, + { + "SupplierID": 22, + "CompanyName": "Zaanse Snoepfabriek", + "ContactName": "Dirk Luchte", + "ContactTitle": "Accounting Manager", + "Address": "Verkoop Rijnweg 22", + "City": "Zaandam", + "Region": null, + "PostalCode": "9999 ZZ", + "Country": "Netherlands", + "Phone": "(12345) 1212", + "Fax": "(12345) 1210", + "HomePage": null + }, + { + "SupplierID": 23, + "CompanyName": "Karkki Oy", + "ContactName": "Anne Heikkonen", + "ContactTitle": "Product Manager", + "Address": "Valtakatu 12", + "City": "Lappeenranta", + "Region": null, + "PostalCode": "53120", + "Country": "Finland", + "Phone": "(953) 10956", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 24, + "CompanyName": "G'day, Mate", + "ContactName": "Wendy Mackenzie", + "ContactTitle": "Sales Representative", + "Address": "170 Prince Edward Parade Hunter's Hill", + "City": "Sydney", + "Region": "NSW", + "PostalCode": "2042", + "Country": "Australia", + "Phone": "(02) 555-5914", + "Fax": "(02) 555-4873", + "HomePage": "G'day Mate (on the World Wide Web)#http://www.microsoft.com/accessdev/sampleapps/gdaymate.htm#" + }, + { + "SupplierID": 25, + "CompanyName": "Ma Maison", + "ContactName": "Jean-Guy Lauzon", + "ContactTitle": "Marketing Manager", + "Address": "2960 Rue St. Laurent", + "City": "Montréal", + "Region": "Québec", + "PostalCode": "H1J 1C3", + "Country": "Canada", + "Phone": "(514) 555-9022", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 26, + "CompanyName": "Pasta Buttini s.r.l.", + "ContactName": "Giovanni Giudici", + "ContactTitle": "Order Administrator", + "Address": "Via dei Gelsomini, 153", + "City": "Salerno", + "Region": null, + "PostalCode": "84100", + "Country": "Italy", + "Phone": "(089) 6547665", + "Fax": "(089) 6547667", + "HomePage": null + }, + { + "SupplierID": 27, + "CompanyName": "Escargots Nouveaux", + "ContactName": "Marie Delamare", + "ContactTitle": "Sales Manager", + "Address": "22, rue H. Voiron", + "City": "Montceau", + "Region": null, + "PostalCode": "71300", + "Country": "France", + "Phone": "85.57.00.07", + "Fax": null, + "HomePage": null + }, + { + "SupplierID": 28, + "CompanyName": "Gai pâturage", + "ContactName": "Eliane Noz", + "ContactTitle": "Sales Representative", + "Address": "Bat. B 3, rue des Alpes", + "City": "Annecy", + "Region": null, + "PostalCode": "74000", + "Country": "France", + "Phone": "38.76.98.06", + "Fax": "38.76.98.58", + "HomePage": null + }, + { + "SupplierID": 29, + "CompanyName": "Forêts d'érables", + "ContactName": "Chantal Goulet", + "ContactTitle": "Accounting Manager", + "Address": "148 rue Chasseur", + "City": "Ste-Hyacinthe", + "Region": "Québec", + "PostalCode": "J2S 7S8", + "Country": "Canada", + "Phone": "(514) 555-2955", + "Fax": "(514) 555-2921", + "HomePage": null + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/src/adaptiveCards/cardHandler.ts b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/cardHandler.ts new file mode 100644 index 0000000..3884ffe --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/cardHandler.ts @@ -0,0 +1,264 @@ +import { + TurnContext, + CardFactory +} from "botbuilder"; +import { updateProduct, getProductEx } from "../northwindDB/products"; +import { ProductEx } from '../northwindDB/model'; +import editCard from './editCard.json'; +import successCard from './successCard.json'; +import successCardHandoff from "./successCardHandoff.json"; +import * as ACData from "adaptivecards-templating"; + +import { CreateActionErrorResponse, CreateAdaptiveCardInvokeResponse, getInventoryStatus } from './utils'; + +function getEditCard(product: ProductEx, context: TurnContext): any { + + var template = new ACData.Template(editCard); + var card = template.expand({ + $root: { + productName: product.ProductName, + unitsInStock: product.UnitsInStock, + productId: product.ProductID, + categoryId: product.CategoryID, + imageUrl: product.ImageUrl, + supplierName: product.SupplierName, + supplierCity: product.SupplierCity, + categoryName: product.CategoryName, + inventoryStatus: product.InventoryStatus, + unitPrice: product.UnitPrice, + quantityPerUnit: product.QuantityPerUnit, + unitsOnOrder: product.UnitsOnOrder, + reorderLevel: product.ReorderLevel, + unitSales: product.UnitSales, + inventoryValue: product.InventoryValue, + revenue: product.Revenue, + averageDiscount: product.AverageDiscount, + botId: getBotMri(context), + continuationToken: product.ProductName + "-continuation", + } + }); + return CardFactory.adaptiveCard(card); +} + +async function handleTeamsCardActionRefreshCard(context: TurnContext) { + const request = context.activity.value; + const data = request.action.data; + console.log(`🎬 Handling refresh action, productId=${data.productId}`); + + if (data.productId) { + const product = await getProductEx(data.productId); + + var template = new ACData.Template(successCard); + var card = template.expand({ + $root: { + productName: product.ProductName, + unitsInStock: product.UnitsInStock, + productId: product.ProductID, + categoryId: product.CategoryID, + imageUrl: product.ImageUrl, + supplierName: product.SupplierName, + supplierCity: product.SupplierCity, + categoryName: product.CategoryName, + inventoryStatus: getInventoryStatus(product), + unitPrice: product.UnitPrice, + quantityPerUnit: product.QuantityPerUnit, + unitsOnOrder: product.UnitsOnOrder, + reorderLevel: product.ReorderLevel, + unitSales: product.UnitSales, + inventoryValue: product.UnitsInStock * product.UnitPrice, + revenue: product.Revenue, + averageDiscount: product.AverageDiscount, + botId: getBotMri(context), + continuationToken: product.ProductName + "-continuation", + // Card message + message: `Card refreshed successfully!`, + }, + }); + + return CreateAdaptiveCardInvokeResponse(200, card); + } else { + return CreateActionErrorResponse(400, 0, "Invalid request"); + } + } + +async function handleTeamsCardActionUpdateStock(context: TurnContext) { + + const request = context.activity.value; + const data = request.action.data; + console.log(`🎬 Handling update stock action, quantity=${data.txtStock}`); + + if (data.txtStock && data.productId) { + + const product = await getProductEx(data.productId); + product.UnitsInStock = Number(data.txtStock); + await updateProduct(product); + + var template = new ACData.Template(successCard); + var card = template.expand({ + $root: { + productName: product.ProductName, + unitsInStock: product.UnitsInStock, + productId: product.ProductID, + categoryId: product.CategoryID, + imageUrl: product.ImageUrl, + supplierName: product.SupplierName, + supplierCity: product.SupplierCity, + categoryName: product.CategoryName, + inventoryStatus: getInventoryStatus(product), + unitPrice: product.UnitPrice, + quantityPerUnit: product.QuantityPerUnit, + unitsOnOrder: product.UnitsOnOrder, + reorderLevel: product.ReorderLevel, + unitSales: product.UnitSales, + inventoryValue: product.UnitsInStock * product.UnitPrice, + revenue: product.Revenue, + averageDiscount: product.AverageDiscount, + botId: getBotMri(context), + continuationToken: product.ProductName + "-continuation", + // Card message + message: `Stock updated for ${product.ProductName} to ${product.UnitsInStock}!` + } + }); + + return CreateAdaptiveCardInvokeResponse(200, card ); + + } else { + + return CreateActionErrorResponse(400,0, "Invalid request"); + } +} + +async function handleTeamsCardActionCancelRestock(context: TurnContext) { + + const request = context.activity.value; + const data = request.action.data; + console.log(`🎬 Handling cancel restock action`) + + if (data.productId) { + + const product = await getProductEx(data.productId); + product.UnitsOnOrder = 0; + await updateProduct(product); + + var template = new ACData.Template(successCard); + var card = template.expand({ + $root: { + productName: product.ProductName, + unitsInStock: product.UnitsInStock, + productId: product.ProductID, + categoryId: product.CategoryID, + imageUrl: product.ImageUrl, + supplierName: product.SupplierName, + supplierCity: product.SupplierCity, + categoryName: product.CategoryName, + inventoryStatus: getInventoryStatus(product), + unitPrice: product.UnitPrice, + quantityPerUnit: product.QuantityPerUnit, + unitsOnOrder: product.UnitsOnOrder, + reorderLevel: product.ReorderLevel, + unitSales: product.UnitSales, + inventoryValue: product.UnitsInStock * product.UnitPrice, + revenue: product.Revenue, + averageDiscount: product.AverageDiscount, + botId: getBotMri(context), + continuationToken: product.ProductName + "-continuation", + // Card message + message: `Restock cancelled for ${product.ProductName}.` + } + }); + return CreateAdaptiveCardInvokeResponse(200,card); + + } else { + return CreateActionErrorResponse(400,0, "Invalid request"); + } +} +async function handleTeamsCardActionRestock(context: TurnContext) { + const request = context.activity.value; + const data = request.action.data; + console.log(`🎬 Handling restock action, quantity=${data.txtStock}`) + if (data.productId) { + + const product = await getProductEx(data.productId); + product.UnitsOnOrder = Number(product.UnitsOnOrder) + Number(data.txtStock); + await updateProduct(product); + + var template = new ACData.Template(successCard); + var card = template.expand({ + $root: { + productName: product.ProductName, + unitsInStock: product.UnitsInStock, + productId: product.ProductID, + categoryId: product.CategoryID, + imageUrl: product.ImageUrl, + supplierName: product.SupplierName, + supplierCity: product.SupplierCity, + categoryName: product.CategoryName, + inventoryStatus: getInventoryStatus(product), + unitPrice: product.UnitPrice, + quantityPerUnit: product.QuantityPerUnit, + unitsOnOrder: product.UnitsOnOrder, + reorderLevel: product.ReorderLevel, + unitSales: product.UnitSales, + inventoryValue: product.UnitsInStock * product.UnitPrice, + revenue: product.Revenue, + averageDiscount: product.AverageDiscount, + botId: getBotMri(context), + continuationToken: product.ProductName + "-continuation", + // Card message + message: `Restocking ${product.ProductName} placed order for ${data.txtStock ?? 0} units.` + } + }); + return CreateAdaptiveCardInvokeResponse(200, card); + + } else { + return CreateActionErrorResponse(400,0, "Invalid request"); + } +} + +// Function to return bot MRI +function getBotMri(context: TurnContext): string { + return context.activity.channelData?.source?.name?.toLowerCase() === + "copilot" && !context.activity.recipient.id.startsWith("28:") + ? `28:${context.activity.recipient.id}` + : context.activity.recipient.id; + } + + async function handleTeamsCardActionHandOff(context: TurnContext) { + const request = context.activity.value; + const data = request.action.data; + console.log( + `🎬 Handling copilot handoff case, continuationToken=${data.continuationToken}` + ); + + if (data.continuationToken) { + var template = new ACData.Template(successCardHandoff); + var card = template.expand({ + $root: { + continuationToken: data.continuationToken, + }, + }); + + return CreateAdaptiveCardInvokeResponse(200, card); + } else { + return CreateActionErrorResponse(400, 0, "Invalid request"); + } + } + + function handleTeamsCardActionHandOffWithContinuation( + continuationToken: string + ) { + console.log( + `🎬 Handling copilot handoff case, continuationToken=${continuationToken}` + ); + + var template = new ACData.Template(successCardHandoff); + var card = template.expand({ + $root: { + continuationToken, + }, + }); + + return CardFactory.adaptiveCard(card); + } + +export default { getEditCard, handleTeamsCardActionRefreshCard, handleTeamsCardActionUpdateStock, handleTeamsCardActionRestock, handleTeamsCardActionCancelRestock, handleTeamsCardActionHandOff, handleTeamsCardActionHandOffWithContinuation } diff --git a/samples/msgext-copilot-handoff/ts/src/adaptiveCards/editCard.json b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/editCard.json new file mode 100644 index 0000000..8cf6e50 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/editCard.json @@ -0,0 +1,241 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "refresh": { + "userIds": [], + "action": { + "type": "Action.Execute", + "verb": "refresh", + "title": "Refresh", + "data": { + "productId": "${productId}" + } + } + }, + "body": [ + { + "type": "Container", + "separator": true, + "items": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "size": "large", + "weight": "bolder", + "text": "📦 ${productName}", + "wrap": true, + "style": "heading" + } + ], + "width": "60" + }, + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "text": "${inventoryStatus}", + "wrap": true, + "horizontalAlignment": "Right", + "isSubtle": true, + "color": "${if(inventoryStatus == 'In stock', 'good', if(inventoryStatus == 'low stock', 'warning', 'attention'))}" + } + ], + "width": "40" + } + ] + } + + ], + "bleed": true + }, + { + "type": "Container", + "style": "emphasis", + "items": [ + { + "type": "TextBlock", + "weight": "Bolder", + "text": "**📍Supplier information**", + "wrap": true, + + "size": "Medium", + "isSubtle": false + }, + { + "type": "ColumnSet", + "separator": true, + "columns": [ + { + "type": "Column", + "width": "stretch", + + "items": [ + { + "type": "FactSet", + "spacing": "Large", + "facts": [ + { + "title": "Name", + "value": "${supplierName}" + }, + { + "title": "City", + "value": "${supplierCity}" + } + + ], + "separator": true + } + ] + } + + ] + }, + { + "type": "TextBlock", + "weight": "Bolder", + "text": "**🛒 Stock information**", + "wrap": true, + "size": "Medium", + "isSubtle": false + }, + { + "type": "ColumnSet", + "separator": true, + "columns": [ + { + "type": "Column", + "width": "stretch", + + "items": [ + { + "type": "FactSet", + "spacing": "Large", + "facts": [ + { + "title": "Category", + "value": "${categoryName}" + }, + { + "title": "Unit price", + "value": "${unitPrice} USD" + }, + { + "title": "Avg discount", + "value": "${string(averageDiscount)} %" + }, + { + "title": "Inventory valuation", + "value": "${string(inventoryValue)} USD" + } + ], + "separator": true + } + ] + }, + { + "type": "Column", + "width": "stretch", + + "items": [ + { + "type": "FactSet", + "spacing": "Large", + "facts": [ + + { + "title": "Units in stock", + "value": "${string(unitsInStock)}" + }, + { + "title": "Units on order", + "value": "${string(unitsOnOrder)}" + }, + { + "title": "Reorder Level", + "value": "${string(reorderLevel)}" + }, + { + "title": "Revenue this period", + "value": "${string(revenue)} USD" + } + ], + "separator": true + } + ] + } + + + ] + }] + }, + { + "type": "Container", + "items": [ + { + "type": "ActionSet", + "actions": [ + { + "type": "Action.ShowCard", + "title": "Take action", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "Input.Text", + "id": "txtStock", + "label": "Quantity", + "min": 0, + "max": 9999, + "errorMessage": "Invalid input, use whole positive number", + "style": "Tel" + } + ], + "actions": [ + { + "type": "Action.Execute", + "title": "Update stock ✅", + "verb": "ok", + "data": { + "productId": "${productId}" + } + }, + { + "type": "Action.Execute", + "title": "Restock 📦", + "verb": "restock", + "data": { + "productId": "${productId}" + } + + }, + { + "type": "Action.Execute", + "title": "Cancel restock ❌", + "verb": "cancel", + "data": { + "productId": "${productId}" + } + }, + { + "type": "Action.OpenUrl", + "title": "Handoff to bot", + "url": "https://teams.microsoft.com/l/chat/0/0?users=${botId}&continuation=${continuationToken}" + } + ] + } + } + ] + } + ] + } + ] +} + diff --git a/samples/msgext-copilot-handoff/ts/src/adaptiveCards/errorCard.json b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/errorCard.json new file mode 100644 index 0000000..8013320 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/errorCard.json @@ -0,0 +1,21 @@ +{ + "type": "AdaptiveCard", + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "version": "1.5", + "body": [ + { + "type": "TextBlock", + "text": "Oops! Something went wrong:", + "wrap": true + }, + { + "type": "Graph", + "someProperty": "foo", + "fallback": { + "type": "TextBlock", + "text": "Could not update stock at this time", + "wrap": true + } + } + ] + } \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/src/adaptiveCards/sampleData.json b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/sampleData.json new file mode 100644 index 0000000..1fa60c7 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/sampleData.json @@ -0,0 +1,19 @@ +{ + "productName": "Chai", + "unitsInStock": "130", + "productId": 1, + "categoryId": 1, + "imageUrl": "https://picsum.photos/id/431/200/300", + "supplierName": "Contoso Beverage Company", + "supplierCity": "London", + "categoryName": "Beverages", + "inventoryStatus": "In stock", + "unitPrice": "18", + "quantityPerUnit": "10 boxes x 20 bags", + "unitsOnOrder": "25", + "reorderLevel": "25", + "unitSales": "828", + "inventoryValue": "2,340", + "revenue": "12,788", + "averageDiscount": "8.6%" +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/src/adaptiveCards/successCard.json b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/successCard.json new file mode 100644 index 0000000..a4c2eff --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/successCard.json @@ -0,0 +1,254 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "refresh": { + "userIds": [], + "action": { + "type": "Action.Execute", + "verb": "refresh", + "title": "Refresh", + "data": { + "productId": "${productId}" + } + } + }, + "body": [ + { + "type": "Container", + "style": "good", + "separator": true, + "items": [ + { + "type": "TextBlock", + "text": "${message}", + "weight": "Bolder", + "size": "Medium", + "color": "Good" + }] + }, + { + "type": "Container", + "separator": true, + "items": [ + { + "type": "ColumnSet", + "columns": [ + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "size": "large", + "weight": "bolder", + "text": "📦 ${productName}", + "wrap": true, + "style": "heading" + } + ], + "width": "60" + }, + { + "type": "Column", + "items": [ + { + "type": "TextBlock", + "text": "${inventoryStatus}", + "wrap": true, + "horizontalAlignment": "Right", + "isSubtle": true, + "color": "${if(inventoryStatus == 'In stock', 'good', if(inventoryStatus == 'low stock', 'warning', 'attention'))}" + } + ], + "width": "40" + } + ] + } + + ], + "bleed": true + }, + { + "type": "Container", + "style": "emphasis", + "items": [ + { + "type": "TextBlock", + "weight": "Bolder", + "text": "**📍Supplier information**", + "wrap": true, + + "size": "Medium", + "isSubtle": false + }, + { + "type": "ColumnSet", + "separator": true, + "columns": [ + { + "type": "Column", + "width": "stretch", + + "items": [ + { + "type": "FactSet", + "spacing": "Large", + "facts": [ + { + "title": "Name", + "value": "${supplierName}" + }, + { + "title": "City", + "value": "${supplierCity}" + } + + ], + "separator": true + } + ] + } + + ] + }, + { + "type": "TextBlock", + "weight": "Bolder", + "text": "**🛒 Stock information**", + "wrap": true, + + "size": "Medium", + "isSubtle": false + }, + { + "type": "ColumnSet", + "separator": true, + "columns": [ + { + "type": "Column", + "width": "stretch", + + "items": [ + { + "type": "FactSet", + "spacing": "Large", + "facts": [ + { + "title": "Category", + "value": "${categoryName}" + }, + + { + "title": "Unit price", + "value": "${unitPrice} USD" + }, + { + "title": "Avg discount", + "value": "${string(averageDiscount)} %" + }, + { + "title": "Inventory valuation", + "value": "${string(inventoryValue)} USD" + } + ], + "separator": true + } + ] + }, + { + "type": "Column", + "width": "stretch", + + "items": [ + { + "type": "FactSet", + "spacing": "Large", + "facts": [ + + { + "title": "Units in stock", + "value": "${string(unitsInStock)}" + }, + { + "title": "Units on order", + "value": "${string(unitsOnOrder)}" + }, + { + "title": "Reorder Level", + "value": "${string(reorderLevel)}" + }, + { + "title": "Revenue this period", + "value": "${string(revenue)} USD" + } + ], + "separator": true + } + ] + } + + + ] + }] + }, + { + "type": "Container", + "items": [ + { + "type": "ActionSet", + "actions": [ + { + "type": "Action.ShowCard", + "title": "Take action", + "card": { + "type": "AdaptiveCard", + "body": [ + { + "type": "Input.Text", + "id": "txtStock", + "label": "Quantity", + "min": 0, + "max": 9999, + "errorMessage": "Invalid input, use whole positive number", + "style": "Tel" + } + ], + "actions": [ + { + "type": "Action.Execute", + "title": "Update stock ✅", + "verb": "ok", + "data": { + "productId": "${productId}" + } + }, + { + "type": "Action.Execute", + "title": "Restock 📦", + "verb": "restock", + "data": { + "productId": "${productId}" + } + }, + { + "type": "Action.Execute", + "title": "Cancel restock ❌", + "verb": "cancel", + "data": { + "productId": "${productId}" + } + }, + { + "type": "Action.OpenUrl", + "title": "Handoff to bot", + "url": "https://teams.microsoft.com/l/chat/0/0?users=${botId}&continuation=${continuationToken}" + } + ] + } + } + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/samples/msgext-copilot-handoff/ts/src/adaptiveCards/successCardHandoff.json b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/successCardHandoff.json new file mode 100644 index 0000000..7c07b2b --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/successCardHandoff.json @@ -0,0 +1,32 @@ +{ + "$schema": "http://adaptivecards.io/schemas/adaptive-card.json", + "type": "AdaptiveCard", + "version": "1.5", + "body": [ + { + "type": "Container", + "style": "good", + "separator": true, + "items": [ + { + "type": "TextBlock", + "text": "Prkare Inventory", + "weight": "Bolder", + "size": "Medium", + "color": "Good" + } + ] + }, + { + "type": "TextBlock", + "text": "The continuation token received is: ${continuationToken}" + } + ], + "actions": [ + { + "type": "Action.OpenUrl", + "title": "Handoff Successful!", + "url": "https://microsoft.com" + } + ] +} diff --git a/samples/msgext-copilot-handoff/ts/src/adaptiveCards/utils.ts b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/utils.ts new file mode 100644 index 0000000..1290b6c --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/adaptiveCards/utils.ts @@ -0,0 +1,39 @@ +import { Product } from "../northwindDB/model"; +import { AdaptiveCardInvokeResponse, InvokeResponse } from "botbuilder"; + +export const CreateInvokeResponse = (status: number, body?: unknown): InvokeResponse => { + return { status, body }; +}; +export const CreateAdaptiveCardInvokeResponse = (statusCode: number, body?: Record): AdaptiveCardInvokeResponse => { + return { + statusCode: statusCode, + type: 'application/vnd.microsoft.card.adaptive', + value: body + }; +}; +export const CreateActionErrorResponse = ( statusCode: number, errorCode: number = -1, errorMessage: string = 'Unknown error') => { + return { + statusCode: statusCode, + type: 'application/vnd.microsoft.error', + value: { + error: { + code: errorCode, + message: errorMessage, + }, + }, + }; +}; + +export const getInventoryStatus = (product: Product) => { + if (Number(product.UnitsInStock) >= Number(product.ReorderLevel)) { + return "In stock"; + } else if (Number(product.UnitsInStock) < Number(product.ReorderLevel) && Number(product.UnitsOnOrder) === 0) { + return "Low stock"; + } else if (Number(product.UnitsInStock) < Number(product.ReorderLevel) && Number(product.UnitsOnOrder) > 0) { + return "On order"; + } else if (Number(product.UnitsInStock) === 0) { + return "Out of stock"; + } else { + return "Unknown"; //fall back + } +} diff --git a/samples/msgext-copilot-handoff/ts/src/completed.zip b/samples/msgext-copilot-handoff/ts/src/completed.zip new file mode 100644 index 0000000..a4949d6 Binary files /dev/null and b/samples/msgext-copilot-handoff/ts/src/completed.zip differ diff --git a/samples/msgext-copilot-handoff/ts/src/config.ts b/samples/msgext-copilot-handoff/ts/src/config.ts new file mode 100644 index 0000000..bbb5056 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/config.ts @@ -0,0 +1,7 @@ +const config = { + botId: process.env.BOT_ID, + botPassword: process.env.BOT_PASSWORD, + storageAccountConnectionString: process.env.STORAGE_ACCOUNT_CONNECTION_STRING +}; + +export default config; diff --git a/samples/msgext-copilot-handoff/ts/src/index.ts b/samples/msgext-copilot-handoff/ts/src/index.ts new file mode 100644 index 0000000..c5a1148 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/index.ts @@ -0,0 +1,110 @@ +// Import required packages +import * as restify from "restify"; + +// Import required bot services. +// See https://aka.ms/bot-services to learn more about the different parts of a bot. +import { + CloudAdapter, + ConfigurationServiceClientCredentialFactory, + ConfigurationBotFrameworkAuthentication, + TurnContext, + ActivityTypes, +} from "botbuilder"; + +// This bot's main dialog. +import { SearchApp } from "./searchApp"; +import config from "./config"; + +// Create adapter. +// See https://aka.ms/about-bot-adapter to learn more about adapters. +const credentialsFactory = new ConfigurationServiceClientCredentialFactory({ + MicrosoftAppId: config.botId, + MicrosoftAppPassword: config.botPassword, + MicrosoftAppType: "MultiTenant", +}); + +const botFrameworkAuthentication = new ConfigurationBotFrameworkAuthentication( + {}, + credentialsFactory +); + +const adapter = new CloudAdapter(botFrameworkAuthentication); + +// Catch-all for errors. +const onTurnErrorHandler = async (context: TurnContext, error: Error) => { + // This check writes out errors to console log .vs. app insights. + // NOTE: In production environment, you should consider logging this to Azure + // application insights. + console.error(`\n [onTurnError] unhandled error: ${error}`); + + // Send a trace activity, which will be displayed in Bot Framework Emulator + await context.sendTraceActivity( + "OnTurnError Trace", + `${error}`, + "https://www.botframework.com/schemas/error", + "TurnError" + ); + + // Send a message to the user + await context.sendActivity(`The bot encountered unhandled error:\n ${error.message}`); + await context.sendActivity("To continue to run this bot, please fix the bot source code."); +}; + +// Set the onTurnError for the singleton CloudAdapter. +adapter.onTurnError = onTurnErrorHandler; + +// Create the bot that will handle incoming messages. +// const conversationReferences = {}; +const continuationParameters: {} = {}; +const searchApp = new SearchApp(async () => { + console.log( + `Handling continuation - ${JSON.stringify(continuationParameters)}` + ); + for (const continuationParameter of Object.values(continuationParameters)) { + const conversationReference = (continuationParameter as any) + .conversationReference; + + await adapter.continueConversationAsync( + (continuationParameter as any).claimsIdentity, + conversationReference, + (continuationParameter as any).oAuthScope, + async (context) => { + const continuationToken = (continuationParameter as any) + .continuationToken; + await context.sendActivities([ + { + type: ActivityTypes.Message, + text: "Continuing conversation from copilot...", + }, + { type: ActivityTypes.Typing }, + { type: "delay", value: 1000 }, + { + type: ActivityTypes.Message, + text: `Fetching more details using the continuation token passed: ${continuationToken}`, + }, + { type: ActivityTypes.Typing }, + { type: "delay", value: 4000 }, + { + type: ActivityTypes.Message, + text: `Handoff successful!`, + attachments: [(continuationParameter as any).cardAttachment], + }, + ]); + } + ); + } +}, continuationParameters /* conversationReferences */); + +// Create HTTP server. +const server = restify.createServer(); +server.use(restify.plugins.bodyParser()); +server.listen(process.env.port || process.env.PORT || 3978, () => { + console.log(`\nBot Started, ${server.name} listening to ${server.url}`); +}); + +// Listen for incoming requests. +server.post("/api/messages", async (req, res) => { + await adapter.process(req, res, async (context) => { + await searchApp.run(context); + }); +}); diff --git a/samples/msgext-copilot-handoff/ts/src/messageExtensions/discountSearchCommand.ts b/samples/msgext-copilot-handoff/ts/src/messageExtensions/discountSearchCommand.ts new file mode 100644 index 0000000..019cfa4 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/messageExtensions/discountSearchCommand.ts @@ -0,0 +1,57 @@ +import { + CardFactory, + TurnContext, + MessagingExtensionQuery, + MessagingExtensionResponse, +} from "botbuilder"; +import { getDiscountedProductsByCategory } from "../northwindDB/products"; +import cardHandler from "../adaptiveCards/cardHandler"; + +const COMMAND_ID = "discountSearch"; + +let queryCount = 0; +async function handleTeamsMessagingExtensionQuery( + context: TurnContext, + query: MessagingExtensionQuery +): Promise { + + // Seek the parameter by name, don't assume it's in element 0 of the array + let categoryName = cleanupParam(query.parameters.find((element) => element.name === "categoryName")?.value); + + console.log(`💰 Discount query #${++queryCount}: Discounted products with categoryName=${categoryName}`); + + const products = await getDiscountedProductsByCategory(categoryName); + + console.log(`Found ${products.length} products in the Northwind database`) + const attachments = []; + products.forEach((product) => { + const preview = CardFactory.heroCard(product.ProductName, + `Avg discount ${product.AverageDiscount}%
Supplied by ${product.SupplierName} of ${product.SupplierCity}`, + [product.ImageUrl]); + + const resultCard = cardHandler.getEditCard(product, context); + const attachment = { ...resultCard, preview }; + attachments.push(attachment); + }); + return { + composeExtension: { + type: "result", + attachmentLayout: "list", + attachments: attachments, + }, + }; +} + +function cleanupParam(value: string): string { + + if (!value) { + return ""; + } else { + let result = value.trim(); + result = result.split(',')[0]; // Remove extra data + result = result.replace("*", ""); // Remove wildcard characters from Copilot + return result; + } +} + +export default { COMMAND_ID, handleTeamsMessagingExtensionQuery } diff --git a/samples/msgext-copilot-handoff/ts/src/messageExtensions/productSearchCommand.ts b/samples/msgext-copilot-handoff/ts/src/messageExtensions/productSearchCommand.ts new file mode 100644 index 0000000..1dd9d35 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/messageExtensions/productSearchCommand.ts @@ -0,0 +1,68 @@ +import { + CardFactory, + TurnContext, + MessagingExtensionQuery, + MessagingExtensionResponse, +} from "botbuilder"; +import { searchProducts } from "../northwindDB/products"; +import cardHandler from "../adaptiveCards/cardHandler"; + +const COMMAND_ID = "inventorySearch"; + +let queryCount = 0; +async function handleTeamsMessagingExtensionQuery( + context: TurnContext, + query: MessagingExtensionQuery +): Promise { + + let productName, categoryName, inventoryStatus, supplierCity, stockLevel; + + // For now we have the ability to pass parameters comma separated for testing until the UI supports it. + // So try to unpack the parameters but when issued from Copilot or the multi-param UI they will come + // in the parameters array. + if (query.parameters.length === 1 && query.parameters[0]?.name === "productName") { + [productName, categoryName, inventoryStatus, supplierCity, stockLevel] = (query.parameters[0]?.value.split(',')); + } else { + productName = cleanupParam(query.parameters.find((element) => element.name === "productName")?.value); + categoryName = cleanupParam(query.parameters.find((element) => element.name === "categoryName")?.value); + inventoryStatus = cleanupParam(query.parameters.find((element) => element.name === "inventoryStatus")?.value); + supplierCity = cleanupParam(query.parameters.find((element) => element.name === "supplierCity")?.value); + stockLevel = cleanupParam(query.parameters.find((element) => element.name === "stockQuery")?.value); + } + console.log(`🔎 Query #${++queryCount}:\nproductName=${productName}, categoryName=${categoryName}, inventoryStatus=${inventoryStatus}, supplierCity=${supplierCity}, stockLevel=${stockLevel}`); + + const products = await searchProducts(productName, categoryName, inventoryStatus, supplierCity, stockLevel); + + console.log(`Found ${products.length} products in the Northwind database`) + const attachments = []; + products.forEach((product) => { + const preview = CardFactory.heroCard(product.ProductName, + `Supplied by ${product.SupplierName} of ${product.SupplierCity}
${product.UnitsInStock} in stock`, + [product.ImageUrl]); + + const resultCard = cardHandler.getEditCard(product, context); + const attachment = { ...resultCard, preview }; + attachments.push(attachment); + }); + return { + composeExtension: { + type: "result", + attachmentLayout: "list", + attachments: attachments, + }, + }; +} + +function cleanupParam(value: string): string { + + if (!value) { + return ""; + } else { + let result = value.trim(); + result = result.split(',')[0]; // Remove extra data + result = result.replace("*", ""); // Remove wildcard characters from Copilot + return result; + } +} + +export default { COMMAND_ID, handleTeamsMessagingExtensionQuery } diff --git a/samples/msgext-copilot-handoff/ts/src/northwindDB/model.ts b/samples/msgext-copilot-handoff/ts/src/northwindDB/model.ts new file mode 100644 index 0000000..3c1922e --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/northwindDB/model.ts @@ -0,0 +1,129 @@ +export const TABLE_NAME = { + CATEGORY: "Categories", + CUSTOMER: "Customers", + EMPLOYEE: "Employees", + ORDER: "Orders", + ORDER_DETAIL: "OrderDetails", + PRODUCT: "Products", + SUPPLIER: "Suppliers" +} + +interface Row { + etag: string; + partitionKey: string; + rowKey: string; + timestamp: Date; +} + +export interface Category extends Row { + CategoryID: string; + CategoryName: string; + Description: string; + Picture: string; +} + +export interface Customer extends Row { + CustomerID: string; + CompanyName: string; + ContactName: string; + ContactTitle: string; + Address: string; + City: string; + Region: string; + PostalCode: string; + Country: string; + Phone: string; + Fax: string; + ImageUrl: string; + FlagUrl: string; +} + +export interface Employee extends Row { + EmployeeID: number; + LastName: string; + FirstName: string; + Title: string; + TitleOfCourtesy: string; + BirthDate: Date; + HireDate: Date; + Address: string; + City: string; + Region: string; + PostalCode: string; + Country: string; + HomePhone: string; + Extension: string; + Photo: string; + Notes: string; + ReportsTo: number; + PhotoPath: string; + ImageUrl: string; + FlagUrl: string; +} + +export interface OrderDetail extends Row { + OrderID: number; + ProductID: string; + UnitPrice: number; + Quantity: number; + Discount: number; +} + +export interface Order extends Row { + OrderID: number, + CustomerID: string, + EmployeeID: number, + OrderDate: string, + RequiredDate?: string, + ShippedDate?: string, + OrderDetails: OrderDetail[], + ShipVia: string, + Freight: 11.61, + ShipName: "Toms Spezialitäten", + ShipAddress: "Luisenstr. 48", + ShipCity: "Münster", + ShipRegion: null, + ShipPostalCode: "44087", + ShipCountry: "Germany" +} + +export interface Product extends Row { + ProductID: string; + ProductName: string; + SupplierID: string; + CategoryID: string; + QuantityPerUnit: string; + UnitPrice: number; + UnitsInStock: number; + UnitsOnOrder: number; + ReorderLevel: number; + Discontinued: boolean; + ImageUrl: string; +} + +// Denormalized version of product +export interface ProductEx extends Product { + CategoryName: string, + SupplierName: string, + SupplierCity: string, + InventoryStatus: string, + InventoryValue: number, + UnitSales: number, + Revenue: number, + AverageDiscount: number +} +export interface Supplier extends Row { + SupplierID: string; + CompanyName: string; + ContactName: string; + ContactTitle: string; + Address: string; + City: string; + Region: string; + PostalCode: string; + Country: string; + Phone: string; + Fax: string; + HomePage: string; +} + diff --git a/samples/msgext-copilot-handoff/ts/src/northwindDB/products.ts b/samples/msgext-copilot-handoff/ts/src/northwindDB/products.ts new file mode 100644 index 0000000..9a1f999 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/northwindDB/products.ts @@ -0,0 +1,283 @@ +import { + TABLE_NAME, Product, ProductEx, Supplier, Category, OrderDetail +} from './model'; + +import { TableClient, TableEntityResult } from "@azure/data-tables"; +import config from "../config"; +import { getInventoryStatus } from '../adaptiveCards/utils'; + +// NOTE: We're force fitting a relational database into a non-relational database so please +// forgive the inefficiencies. This is just for demonstration purposes. + +// #region searchProducts() and supporting functions + +export async function searchProducts(productName: string, categoryName: string, inventoryStatus: string, + supplierCity: string, stockLevel: string): Promise { + + let result = await getAllProductsEx(); + + // Filter products + if (productName) { + result = result.filter((p) => p.ProductName.toLowerCase().startsWith(productName.toLowerCase())); + } + if (categoryName) { + result = result.filter((p) => p.CategoryName.toLowerCase().startsWith(categoryName.toLowerCase())); + } + if (inventoryStatus) { + result = result.filter((p) => isMatchingStatus(inventoryStatus, p)); + } + if (supplierCity) { + result = result.filter((p) => p.SupplierCity.toLowerCase().startsWith(supplierCity.toLowerCase())); + } + if (stockLevel) { + result = result.filter((p) => isInRange(stockLevel, p.UnitsInStock)); + } + + return result; +} + +export async function getDiscountedProductsByCategory(categoryName: string): Promise { + + let result = await getAllProductsEx(); + + // Anything with >5% average discount counts as discounted + result = result.filter((p) => p.AverageDiscount > 5); + if (categoryName) { + result = result.filter((p) => p.CategoryName.toLowerCase().startsWith(categoryName.toLowerCase())); + } + + return result; +} + +export async function getProductsByRevenueRange(revenueRange: string): Promise { + + let result = await getAllProductsEx(); + + if (revenueRange) { + let range = revenueRange; + // Handle "low" and "high" keywords + if (revenueRange.toLowerCase().startsWith('l')) range = "0-5000"; + if (revenueRange.toLowerCase().startsWith('h')) range = "50000-" + // Filter by numeric range + result = result.filter((p) => isInRange(range, p.Revenue)); + } + + return result; +} + +// Returns true if the inventory status in a product matches the query using +// the inventory data rather than just a text match for better accuracy +function isMatchingStatus(inventoryStatusQuery: string, product: ProductEx): boolean { + + const query = inventoryStatusQuery.toLowerCase(); + if (query.startsWith("out")) { + // Out of stock + return product.UnitsInStock === 0; + } else if (query.startsWith("low")) { + // Low stock + return product.UnitsInStock <= product.ReorderLevel; + } else if (query.startsWith("on")) { + // On order + return product.UnitsOnOrder > 0; + } else { + // In stock + return product.UnitsInStock > 0; + } +} + +// Used to filter based on a range entered in the stockLevel parameter +// Returns true iff a value is within the range specified in the range expression +function isInRange(rangeExpression: string, value: number) { + + let result = false; // Return false if the expression is malformed + + if (rangeExpression.indexOf('-')< 0) { + // If here, we have a single value or a malformed expression + const val = Number(rangeExpression); + if (!isNaN(val)) { + result = value === val; + } + } else if (rangeExpression.indexOf('-') === rangeExpression.length-1) { + // If here we have a single lower bound or a malformed expression + const lowerBound = Number(rangeExpression.slice(0,-1)); + if (!isNaN(lowerBound)) { + result = value >= lowerBound; + } + } else { + // If here we have a range or a malformed expression + const bounds = rangeExpression.split('-'); + const lowerBound = Number(bounds[0]); + const upperBound = Number(bounds[1]); + if (!isNaN(lowerBound) && !isNaN(upperBound)) { + result = lowerBound <= value && upperBound >= value; + } + } + return result; +} + +// #endregion + +// #region Reference data handling + +interface ReferenceData { + [index: string]: DataType; +} + +async function loadReferenceData(tableName): Promise> { + + const tableClient = TableClient.fromConnectionString(config.storageAccountConnectionString, tableName); + + const entities = tableClient.listEntities(); + + let result = {}; + for await (const entity of entities) { + result[entity.rowKey] = entity; + } + return result; + +} + +interface OrderTotals { + [productId: string]: { + totalQuantity: number, + totalRevenue: number, + totalDiscount: number + } +} + +async function loadOrderTotals(): Promise { + + const tableClient = TableClient.fromConnectionString(config.storageAccountConnectionString, TABLE_NAME.ORDER_DETAIL); + + const entities = tableClient.listEntities(); + + let totals: OrderTotals = {}; + for await (const entity of entities) { + const p = entity.ProductID as string; + if (!totals[p]) { + totals[p] = { + totalQuantity: Number(entity.Quantity), + totalRevenue: Number(entity.Quantity) * Number(entity.UnitPrice) * (1-Number(entity.Discount)), + totalDiscount: Number(entity.Quantity) * Number(entity.UnitPrice) * Number(entity.Discount) + } + } else { + totals[p].totalQuantity += Number(entity.Quantity); + totals[p].totalRevenue += Number(entity.Quantity) * Number(entity.UnitPrice) * (1-Number(entity.Discount)); + totals[p].totalDiscount += Number(entity.Quantity) * Number(entity.UnitPrice) * Number(entity.Discount); + } + } + return totals; + +} + +// Reference tables never change in this demo app - so they're cached here +let categories: ReferenceData = null; +let suppliers: ReferenceData = null; +let orderTotals: OrderTotals = null; + +// #endregion + +// #region Data Access functions + +async function getAllProductsEx(): Promise { + + // Ensure reference data are loaded + categories = categories ?? await loadReferenceData(TABLE_NAME.CATEGORY); + suppliers = suppliers ?? await loadReferenceData(TABLE_NAME.SUPPLIER); + orderTotals = orderTotals ?? await loadOrderTotals(); + + // We always read the products fresh in case somebody made a change + const result: ProductEx[] = []; + const tableClient = TableClient.fromConnectionString(config.storageAccountConnectionString, TABLE_NAME.PRODUCT); + + const entities = tableClient.listEntities(); + + for await (const entity of entities) { + const p = getProductExForEntity(entity); + result.push(p); + } + return result; +} + +function getProductExForEntity(entity: TableEntityResult>): ProductEx { + + let result: ProductEx = { + etag: entity.etag as string, + partitionKey: entity.partitionKey as string, + rowKey: entity.rowKey as string, + timestamp: new Date(entity.timestamp), + ProductID: entity.ProductID as string, + ProductName: entity.ProductName as string, + SupplierID: entity.SupplierID as string, + CategoryID: entity.CategoryID as string, + QuantityPerUnit: entity.QuantityPerUnit as string, + UnitPrice: Number(entity.UnitPrice), + UnitsInStock: Number(entity.UnitsInStock), + UnitsOnOrder: Number(entity.UnitsOnOrder), + ReorderLevel: Number(entity.ReorderLevel), + Discontinued: entity.Discontinued as boolean, + ImageUrl: entity.ImageUrl as string, + CategoryName: "", + SupplierName: "", + SupplierCity: "", + InventoryStatus: "", + InventoryValue: 0, + UnitSales: 0, + Revenue: 0, + AverageDiscount: 0 + }; + + // Fill in extended properties + result.CategoryName = categories[result.CategoryID].CategoryName; + result.SupplierName = suppliers[result.SupplierID].CompanyName; + result.SupplierCity = suppliers[result.SupplierID].City; + result.UnitSales = orderTotals[result.ProductID].totalQuantity; + result.InventoryValue = Math.round(result.UnitsInStock * result.UnitPrice); + result.Revenue = Math.round(orderTotals[result.ProductID].totalRevenue); + result.AverageDiscount = +(result.Revenue / orderTotals[result.ProductID].totalDiscount).toFixed(1); + + // 'in stock', 'low stock', 'on order', or 'out of stock' + result.InventoryStatus = getInventoryStatus(result); + + return result; +} + +export async function getProductEx(productId: number): Promise { + const tableClient = TableClient.fromConnectionString(config.storageAccountConnectionString, TABLE_NAME.PRODUCT); + const entity = await tableClient.getEntity(TABLE_NAME.PRODUCT, productId.toString()); + const p = getProductExForEntity(entity); + + return p; +} + +export async function updateProduct(updatedProduct: Product): Promise { + const tableClient = TableClient.fromConnectionString(config.storageAccountConnectionString, TABLE_NAME.PRODUCT); + const product = await tableClient.getEntity(TABLE_NAME.PRODUCT, updatedProduct.ProductID.toString()) as Product; + if (!product) { + throw new Error("Product not found"); + } + await tableClient.updateEntity({ ...product, ...updatedProduct }, "Merge"); +} + +// #endregion + +// #region -- NOT USED, NOT TESTED --------------------------------------------------------- + +// export async function createProduct (product: Product): Promise { +// const newProduct: Product = { +// partitionKey: TABLE_NAME.PRODUCT, +// rowKey: product.ProductID, +// ...product, +// } +// const tableClient = TableClient.fromConnectionString(config.storageAccountConnectionString, TABLE_NAME.PRODUCT); +// await tableClient.createEntity(newProduct); +// }; + +// export async function deleteProduct (productId: number): Promise { +// const tableClient = TableClient.fromConnectionString(config.storageAccountConnectionString, TABLE_NAME.PRODUCT); +// await tableClient.deleteEntity(TABLE_NAME.PRODUCT, productId.toString()); +// }; + +//#endregion + + diff --git a/samples/msgext-copilot-handoff/ts/src/searchApp.ts b/samples/msgext-copilot-handoff/ts/src/searchApp.ts new file mode 100644 index 0000000..6315b45 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/src/searchApp.ts @@ -0,0 +1,157 @@ +import { + TeamsActivityHandler, + TurnContext, + MessagingExtensionQuery, + MessagingExtensionResponse, + InvokeResponse, + AdaptiveCardInvokeResponse +} from "botbuilder"; +import productSearchCommand from "./messageExtensions/productSearchCommand"; +import discountedSearchCommand from "./messageExtensions/discountSearchCommand"; +import actionHandler from "./adaptiveCards/cardHandler"; +import { CreateActionErrorResponse } from "./adaptiveCards/utils"; + +export class SearchApp extends TeamsActivityHandler { + + notifyContinuationActivity: any; + continuationParameters: any; + constructor( + notifyContinuationActivity: any, + continuationParameters: any = {} /*conversations: any = {}*/ + ) { + super(); + this.notifyContinuationActivity = notifyContinuationActivity; + this.continuationParameters = continuationParameters; + } + + // Handle search message extension + public async handleTeamsMessagingExtensionQuery( + context: TurnContext, + query: MessagingExtensionQuery + ): Promise { + + switch (query.commandId) { + case productSearchCommand.COMMAND_ID: { + return productSearchCommand.handleTeamsMessagingExtensionQuery(context, query); + } + case discountedSearchCommand.COMMAND_ID: { + return discountedSearchCommand.handleTeamsMessagingExtensionQuery(context, query); + } + } + + } + + // Handle adaptive card actions + public async onAdaptiveCardInvoke(context: TurnContext): Promise { + try { + + switch (context.activity.value.action.verb) { + case 'ok': { + return actionHandler.handleTeamsCardActionUpdateStock(context); + } + case 'restock': { + return actionHandler.handleTeamsCardActionRestock(context); + } + case 'cancel': { + return actionHandler.handleTeamsCardActionCancelRestock(context); + } + case "handoff": { + return actionHandler.handleTeamsCardActionHandOff(context); + } + case "refresh": { + return actionHandler.handleTeamsCardActionRefreshCard(context); + } + default: + return CreateActionErrorResponse( + 400, + 0, + `ActionVerbNotSupported: ${context.activity.value.action.verb} is not a supported action verb.` + ); + + } + + } catch (err) { + return CreateActionErrorResponse(500, 0, err.message); + } + } + + // Handle invoke activities + + public async onInvokeActivity(context: TurnContext): Promise { + + try { + + switch (context.activity.name) { + + case "handoff/action": { + + this.addOrUpdateContinuationParameters(context); + setTimeout(async () => await this.notifyContinuationActivity(), 10); + + return { status: 200 }; // return just the http status + + } + + case "composeExtension/query": + + return { + + status: 200, + + body: await this.handleTeamsMessagingExtensionQuery( + + context, + + context.activity.value + + ), + + }; + + default: + + return { + + status: 200, + + body: `Unknown invoke activity handled as default- ${context.activity.name}`, + + }; + + } + + } catch (err) { + + console.log(`Error in onInvokeActivity: ${err}`); + + return { + + status: 500, + + body: `Invoke activity received- ${context.activity.name}`, + + }; + + } + + } + + private addOrUpdateContinuationParameters(context): void { + console.log( + `Adding continuation parameters for context: ${JSON.stringify(context)}` + ); + this.continuationParameters[context.activity.from.id] = { + claimsIdentity: context.turnState.get(context.adapter.BotIdentityKey), + conversationReference: TurnContext.getConversationReference( + context.activity + ), + oAuthScope: context.turnState.get(context.adapter.OAuthScopeKey), + continuationToken: context.activity.value.continuation, + cardAttachment: + actionHandler.handleTeamsCardActionHandOffWithContinuation( + context.activity.value.continuation + ), + }; + } +} + diff --git a/samples/msgext-copilot-handoff/ts/teamsapp.local.yml b/samples/msgext-copilot-handoff/ts/teamsapp.local.yml new file mode 100644 index 0000000..1a917f9 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/teamsapp.local.yml @@ -0,0 +1,93 @@ +# yaml-language-server: $schema=https://aka.ms/teams-toolkit/1.0.0/yaml.schema.json +# Visit https://aka.ms/teamsfx-v5.0-guide for details on this file +# Visit https://aka.ms/teamsfx-actions for details on actions +version: 1.0.0 + +provision: + + - uses: script + name: Ensure database + with: + run: node db-setup.js + workingDirectory: scripts + + # Creates a Teams app + - uses: teamsApp/create + with: + # Teams app name + name: NorthwindProducts-${{TEAMSFX_ENV}} + # Write the information of created resources into environment file for + # the specified environment variable(s). + writeToEnvironmentFile: + teamsAppId: TEAMS_APP_ID + + # Create or reuse an existing Azure Active Directory application for bot. + - uses: botAadApp/create + with: + # The Azure Active Directory application's display name + name: NorthwindProducts-${{TEAMSFX_ENV}} + writeToEnvironmentFile: + # The Azure Active Directory application's client id created for bot. + botId: BOT_ID + # The Azure Active Directory application's client secret created for bot. + botPassword: SECRET_BOT_PASSWORD + + # Create or update the bot registration on dev.botframework.com + - uses: botFramework/create + with: + botId: ${{BOT_ID}} + name: NorthwindProducts + messagingEndpoint: ${{BOT_ENDPOINT}}/api/messages + description: "" + channels: + - name: msteams + - name: m365extensions + + # Validate using manifest schema + - uses: teamsApp/validateManifest + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + + # Build Teams app package with latest env value + - uses: teamsApp/zipAppPackage + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + outputJsonPath: ./appPackage/build/manifest.${{TEAMSFX_ENV}}.json + # Validate app package using validation rules + - uses: teamsApp/validateAppPackage + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + + # Apply the Teams app manifest to an existing Teams app in + # Teams Developer Portal. + # Will use the app id in manifest file to determine which Teams app to update. + - uses: teamsApp/update + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + + # Extend your Teams app to Outlook and the Microsoft 365 app + - uses: teamsApp/extendToM365 + with: + # Relative path to the build app package. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + # Write the information of created resources into environment file for + # the specified environment variable(s). + writeToEnvironmentFile: + titleId: M365_TITLE_ID + appId: M365_APP_ID + +deploy: + + # Generate runtime environment variables + - uses: file/createOrUpdateEnvironmentFile + with: + target: ./.localConfigs + envs: + BOT_ID: ${{BOT_ID}} + BOT_PASSWORD: ${{SECRET_BOT_PASSWORD}} + STORAGE_ACCOUNT_CONNECTION_STRING: ${{SECRET_STORAGE_ACCOUNT_CONNECTION_STRING}} diff --git a/samples/msgext-copilot-handoff/ts/teamsapp.yml b/samples/msgext-copilot-handoff/ts/teamsapp.yml new file mode 100644 index 0000000..4ba4f84 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/teamsapp.yml @@ -0,0 +1,158 @@ +# yaml-language-server: $schema=https://aka.ms/teams-toolkit/1.0.0/yaml.schema.json +# Visit https://aka.ms/teamsfx-v5.0-guide for details on this file +# Visit https://aka.ms/teamsfx-actions for details on actions +version: 1.0.0 + +environmentFolderPath: ./env + +# Triggered when 'teamsfx provision' is executed +provision: + # Creates a Teams app + - uses: teamsApp/create + with: + # Teams app name + name: NorthwindProducts-${{TEAMSFX_ENV}} + # Write the information of created resources into environment file for + # the specified environment variable(s). + writeToEnvironmentFile: + teamsAppId: TEAMS_APP_ID + + # Create or reuse an existing Azure Active Directory application for bot. + - uses: botAadApp/create + with: + # The Azure Active Directory application's display name + name: NorthwindProducts-${{TEAMSFX_ENV}} + writeToEnvironmentFile: + # The Azure Active Directory application's client id created for bot. + botId: BOT_ID + # The Azure Active Directory application's client secret created for bot. + botPassword: SECRET_BOT_PASSWORD + + - uses: arm/deploy # Deploy given ARM templates parallelly. + with: + # AZURE_SUBSCRIPTION_ID is a built-in environment variable, + # if its value is empty, TeamsFx will prompt you to select a subscription. + # Referencing other environment variables with empty values + # will skip the subscription selection prompt. + subscriptionId: ${{AZURE_SUBSCRIPTION_ID}} + # AZURE_RESOURCE_GROUP_NAME is a built-in environment variable, + # if its value is empty, TeamsFx will prompt you to select or create one + # resource group. + # Referencing other environment variables with empty values + # will skip the resource group selection prompt. + resourceGroupName: ${{AZURE_RESOURCE_GROUP_NAME}} + templates: + - path: ./infra/azure.bicep # Relative path to this file + # Relative path to this yaml file. + # Placeholders will be replaced with corresponding environment + # variable before ARM deployment. + parameters: ./infra/azure.parameters.json + # Required when deploying ARM template + deploymentName: Create-resources-for-me + # Teams Toolkit will download this bicep CLI version from github for you, + # will use bicep CLI in PATH if you remove this config. + bicepCliVersion: v0.9.1 + + - uses: script + name: Ensure database + with: + run: node db-setup.js ${{SECRET_STORAGE_ACCOUNT_CONNECTION_STRING}} + workingDirectory: scripts + + # Validate using manifest schema + - uses: teamsApp/validateManifest + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + # Build Teams app package with latest env value + - uses: teamsApp/zipAppPackage + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + outputJsonPath: ./appPackage/build/manifest.${{TEAMSFX_ENV}}.json + # Validate app package using validation rules + - uses: teamsApp/validateAppPackage + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + # Apply the Teams app manifest to an existing Teams app in + # Teams Developer Portal. + # Will use the app id in manifest file to determine which Teams app to update. + - uses: teamsApp/update + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + # Extend your Teams app to Outlook and the Microsoft 365 app + - uses: teamsApp/extendToM365 + with: + # Relative path to the build app package. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + # Write the information of created resources into environment file for + # the specified environment variable(s). + writeToEnvironmentFile: + titleId: M365_TITLE_ID + appId: M365_APP_ID + +# Triggered when 'teamsfx deploy' is executed +deploy: + # Run npm command + - uses: cli/runNpmCommand + name: install dependencies + with: + args: install + - uses: cli/runNpmCommand + name: build app + with: + args: run build --if-present + # Deploy your application to Azure App Service using the zip deploy feature. + # For additional details, refer to https://aka.ms/zip-deploy-to-app-services. + - uses: azureAppService/zipDeploy + with: + # Deploy base folder + artifactFolder: . + # Ignore file location, leave blank will ignore nothing + ignoreFile: .webappignore + # The resource id of the cloud resource to be deployed to. + # This key will be generated by arm/deploy action automatically. + # You can replace it with your existing Azure Resource id + # or add it to your environment variable file. + resourceId: ${{BOT_AZURE_APP_SERVICE_RESOURCE_ID}} + +# Triggered when 'teamsfx publish' is executed +publish: + # Validate using manifest schema + - uses: teamsApp/validateManifest + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + # Build Teams app package with latest env value + - uses: teamsApp/zipAppPackage + with: + # Path to manifest template + manifestPath: ./appPackage/manifest.json + outputZipPath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + outputJsonPath: ./appPackage/build/manifest.${{TEAMSFX_ENV}}.json + # Validate app package using validation rules + - uses: teamsApp/validateAppPackage + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + # Apply the Teams app manifest to an existing Teams app in + # Teams Developer Portal. + # Will use the app id in manifest file to determine which Teams app to update. + - uses: teamsApp/update + with: + # Relative path to this file. This is the path for built zip file. + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + # Publish the app to + # Teams Admin Center (https://admin.teams.microsoft.com/policies/manage-apps) + # for review and approval + - uses: teamsApp/publishAppPackage + with: + appPackagePath: ./appPackage/build/appPackage.${{TEAMSFX_ENV}}.zip + # Write the information of created resources into environment file for + # the specified environment variable(s). + writeToEnvironmentFile: + publishedAppId: TEAMS_APP_PUBLISHED_APP_ID +projectId: a30eff89-ba39-4156-82be-772131fc6bf8 diff --git a/samples/msgext-copilot-handoff/ts/tsconfig.json b/samples/msgext-copilot-handoff/ts/tsconfig.json new file mode 100644 index 0000000..7797258 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "declaration": true, + "target": "es2017", + "module": "commonjs", + "outDir": "./lib", + "rootDir": "./", + "sourceMap": true, + "incremental": true, + "tsBuildInfoFile": "./lib/.tsbuildinfo", + "resolveJsonModule": true, + "esModuleInterop": true, + } +} diff --git a/samples/msgext-copilot-handoff/ts/web.config b/samples/msgext-copilot-handoff/ts/web.config new file mode 100644 index 0000000..28463f6 --- /dev/null +++ b/samples/msgext-copilot-handoff/ts/web.config @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +